From 7f42ec76bca3725b37924b08ab30d28d82145af9 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 10:35:03 +0800 Subject: [PATCH 01/18] Fix task status enum collision --- bindings/api.json | 8 +++--- bindings/overrides.json | 3 ++- docs/API-SURFACE.txt | 26 ++++++++++---------- samples/CuiSharp.Gallery/Pages/Ai.cs | 16 ++++++------ skills/cui-dotnet/api/Options.md | 4 +-- skills/cui-dotnet/api/Records.md | 2 +- src/CuiSharp.Tests/DeveloperToolTests.cs | 31 ++++++++++++++++++++++++ src/CuiSharp.Tests/EnumContractTests.cs | 23 ++++++++++++++++++ src/CuiSharp.Tests/OptionMappings.g.cs | 4 +-- src/CuiSharp/Interop/Enums.g.cs | 2 +- src/CuiSharp/Interop/Structs.g.cs | 6 ++--- src/CuiSharp/Ui/Options.g.cs | 4 +-- src/CuiSharp/Ui/Records.g.cs | 4 +-- 13 files changed, 94 insertions(+), 39 deletions(-) diff --git a/bindings/api.json b/bindings/api.json index 4302a4e..78b7cc5 100644 --- a/bindings/api.json +++ b/bindings/api.json @@ -12074,7 +12074,7 @@ { "CName": "status", "CsName": "Status", - "CsType": "TaskStatus", + "CsType": "CuiTaskStatus", "CType": "cui_task_status", "Offset": 4, "Type": { @@ -12207,7 +12207,7 @@ { "CName": "status", "CsName": "Status", - "CsType": "TaskStatus", + "CsType": "CuiTaskStatus", "CType": "cui_task_status", "Offset": 16, "Type": { @@ -12274,7 +12274,7 @@ { "CName": "status", "CsName": "Status", - "CsType": "TaskStatus", + "CsType": "CuiTaskStatus", "CType": "cui_task_status", "Offset": 4, "Type": { @@ -25514,7 +25514,7 @@ }, { "CName": "cui_task_status", - "CsName": "TaskStatus", + "CsName": "CuiTaskStatus", "Values": [ { "CName": "CUI_TASK_PENDING", diff --git a/bindings/overrides.json b/bindings/overrides.json index 510211e..3ebd0dd 100644 --- a/bindings/overrides.json +++ b/bindings/overrides.json @@ -5,7 +5,8 @@ "cui_size_kind": "SizeKind", "cui_renderer_kind": "Renderer", "cui_sw_format": "SwFormat", - "cui_token": "Token" + "cui_token": "Token", + "cui_task_status": "CuiTaskStatus" }, "memberRenames": { "CUI_RENDERER_OPENGL": "OpenGL" diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 8ec9913..7e910ea 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -11,9 +11,9 @@ enum CuiSharp.Accent struct CuiSharp.AgentPlanOpts field String Title struct CuiSharp.AgentStatusOpts + field CuiTaskStatus Status field Single Seconds field String Icon - field TaskStatus Status class CuiSharp.AiInterfacesUiExtensions static Boolean Citation(Ui, Int32, in Source) static Boolean ModelPicker(Ui, UiText, ReadOnlySpan, ref Int32, ModelPickerOpts) @@ -685,6 +685,12 @@ class CuiSharp.CuiSurface property Single Scale { get; } property Ui Ui { get; } static CuiSurface Create(Int32, Int32, Single, Int32, Theme, Accent) +enum CuiSharp.CuiTaskStatus + Done + Failed + Pending + Running + Skipped class CuiSharp.CuiTree static Int32 Sort(TreeNode[], Int32, Comparison, String) class CuiSharp.CuiWindow @@ -2236,10 +2242,10 @@ struct CuiSharp.Interop.NativeAgentPlanOpts field Int32 Sentinel field IntPtr Title struct CuiSharp.Interop.NativeAgentStatusOpts + field CuiTaskStatus Status field Int32 Sentinel field IntPtr Icon field Single Seconds - field TaskStatus Status struct CuiSharp.Interop.NativeAlertOpts field Byte Dismissible field Int32 Sentinel @@ -3420,9 +3426,9 @@ struct CuiSharp.Interop.NativePipelineResult field Int32 Clicked field Int32 Hovered struct CuiSharp.Interop.NativePlanStep + field CuiTaskStatus Status field IntPtr Detail field IntPtr Title - field TaskStatus Status struct CuiSharp.Interop.NativePlatformIface field IntPtr DrawEmoji field IntPtr GetClipboard @@ -4043,13 +4049,13 @@ struct CuiSharp.Interop.NativeToggleGroupOpts field Int32 Sentinel field IntPtr Icons struct CuiSharp.Interop.NativeToolCallOpts + field CuiTaskStatus Status field Int32 Sentinel field IntPtr Detail field IntPtr Icon field IntPtr Input field IntPtr Output field Single Seconds - field TaskStatus Status struct CuiSharp.Interop.NativeToolOpts field Byte Disabled field Int32 Sentinel @@ -4934,10 +4940,10 @@ enum CuiSharp.Placement TopEnd TopStart struct CuiSharp.PlanStep - ctor(String, String, TaskStatus) + ctor(String, String, CuiTaskStatus) + field CuiTaskStatus Status field String Detail field String Title - field TaskStatus Status class CuiSharp.PlanningUiExtensions static Boolean Kanban(Ui, UiText, out KanbanMove, DrawFn) static Int32 Gantt(Ui, UiText, Span, Date, Int32, GanttOpts) @@ -5467,12 +5473,6 @@ struct CuiSharp.TagOpts field Size Width field String Label field String Placeholder -enum CuiSharp.TaskStatus - Done - Failed - Pending - Running - Skipped class CuiSharp.Terminal Void Clear() Void Dispose() @@ -5739,12 +5739,12 @@ enum CuiSharp.Tone Violet Warning struct CuiSharp.ToolCallOpts + field CuiTaskStatus Status field Single Seconds field String Detail field String Icon field String Input field String Output - field TaskStatus Status struct CuiSharp.ToolOpts field Boolean Disabled field String Label diff --git a/samples/CuiSharp.Gallery/Pages/Ai.cs b/samples/CuiSharp.Gallery/Pages/Ai.cs index 913cf1a..ff7506e 100644 --- a/samples/CuiSharp.Gallery/Pages/Ai.cs +++ b/samples/CuiSharp.Gallery/Pages/Ai.cs @@ -75,7 +75,7 @@ private void PageAi(Ui ui) { Icon = Icons.Globe, Detail = "immediate mode gui performance", - Status = TaskStatus.Done, + Status = CuiTaskStatus.Done, Seconds = 1.4f, Input = """{"query": "immediate mode gui performance", "limit": 5}""", Output = """{"results": [{"title": "Immediate mode GUIs", "url": "https://fieldnotes.dev/immediate-mode"}], "took_ms": 1380}""", @@ -84,10 +84,10 @@ private void PageAi(Ui ui) { Icon = Icons.FileText, Detail = "quarterly-report.pdf", - Status = _aiBusy ? TaskStatus.Running : TaskStatus.Done, + Status = _aiBusy ? CuiTaskStatus.Running : CuiTaskStatus.Done, Seconds = _aiBusy ? elapsed : 2.1f, }); - if (_aiBusy) ui.AgentStatus("Reading quarterly-report.pdf", new AgentStatusOpts { Status = TaskStatus.Running, Seconds = elapsed }); + if (_aiBusy) ui.AgentStatus("Reading quarterly-report.pdf", new AgentStatusOpts { Status = CuiTaskStatus.Running, Seconds = elapsed }); ui.Typewriter("answer", "They do very little work per frame: the interface is rebuilt from your data, laid out once and drawn in a " + "handful of batches, so there is no tree of objects to keep in sync. Text is the expensive part, which is " + @@ -144,11 +144,11 @@ private void PageAi(Ui ui) using (ui.Column(new Box { Width = Size.Grow(1), Gap = 14 })) { Section(ui, "Agent plan", "Steps and their status."); - _aiSteps[0] = new PlanStep("Search for sources", "3 results", TaskStatus.Done); - _aiSteps[1] = new PlanStep("Read the attached report", _aiBusy ? "Page 12 of 40" : "40 pages", _aiBusy ? TaskStatus.Running : TaskStatus.Done); - _aiSteps[2] = new PlanStep("Compare the numbers with last quarter", null, _aiBusy ? TaskStatus.Pending : TaskStatus.Done); - _aiSteps[3] = new PlanStep("Draft the summary", null, _aiBusy ? TaskStatus.Pending : TaskStatus.Running); - _aiSteps[4] = new PlanStep("Check the citations", null, TaskStatus.Pending); + _aiSteps[0] = new PlanStep("Search for sources", "3 results", CuiTaskStatus.Done); + _aiSteps[1] = new PlanStep("Read the attached report", _aiBusy ? "Page 12 of 40" : "40 pages", _aiBusy ? CuiTaskStatus.Running : CuiTaskStatus.Done); + _aiSteps[2] = new PlanStep("Compare the numbers with last quarter", null, _aiBusy ? CuiTaskStatus.Pending : CuiTaskStatus.Done); + _aiSteps[3] = new PlanStep("Draft the summary", null, _aiBusy ? CuiTaskStatus.Pending : CuiTaskStatus.Running); + _aiSteps[4] = new PlanStep("Check the citations", null, CuiTaskStatus.Pending); ui.AgentPlan("plan", _aiSteps, new AgentPlanOpts { Title = "Research plan" }); Section(ui, "Voice", "Idle, listening, thinking and speaking."); diff --git a/skills/cui-dotnet/api/Options.md b/skills/cui-dotnet/api/Options.md index 58ef035..4fd184e 100644 --- a/skills/cui-dotnet/api/Options.md +++ b/skills/cui-dotnet/api/Options.md @@ -15,7 +15,7 @@ C `cui_agent_plan_opts`. C `cui_agent_status_opts`. -- `Status`: TaskStatus (default `Status`) +- `Status`: CuiTaskStatus (default `Status`) - `Seconds`: float (default `Seconds`) - `Icon`: string? (default `Utf8.Get(Icon)`) @@ -1522,7 +1522,7 @@ C `cui_toggle_group_opts`. C `cui_tool_call_opts`. -- `Status`: TaskStatus (default `Status`) +- `Status`: CuiTaskStatus (default `Status`) - `Icon`: string? (default `Utf8.Get(Icon)`) - `Detail`: string? (default `Utf8.Get(Detail)`) - `Input`: string? (default `Utf8.Get(Input)`) diff --git a/skills/cui-dotnet/api/Records.md b/skills/cui-dotnet/api/Records.md index a737acd..ccbe90f 100644 --- a/skills/cui-dotnet/api/Records.md +++ b/skills/cui-dotnet/api/Records.md @@ -442,7 +442,7 @@ Value types for the widgets that take an array of items. - `Title`: string? - `Detail`: string? -- `Status`: TaskStatus +- `Status`: CuiTaskStatus ## `PresenceUser` diff --git a/src/CuiSharp.Tests/DeveloperToolTests.cs b/src/CuiSharp.Tests/DeveloperToolTests.cs index 27037e8..c45694b 100644 --- a/src/CuiSharp.Tests/DeveloperToolTests.cs +++ b/src/CuiSharp.Tests/DeveloperToolTests.cs @@ -1,3 +1,5 @@ +using System.Threading.Tasks; + namespace CuiSharp.Tests; /// @@ -89,6 +91,35 @@ public void TheAnalysisToolsDrawAndReportNothingWhenNothingWasClicked() Assert.Equal(-1, pipelineSelected); } + [Fact] + public void AgentWidgetsRenderWithUnambiguousTaskStatusTypes() + { + // The plan/status widgets take CuiTaskStatus by name: the rename from TaskStatus + // removed the collision with System.Threading.Tasks.TaskStatus, so this file uses + // both types unqualified (the BCL one below, the CUI one in the steps) and draws a + // real frame. EnumContractTests pins the old ambiguity itself; reverting the rename + // would stop either file from compiling. + if (!OperatingSystem.IsWindows()) return; + + using var surface = CuiSurface.Create(Width, Height); + var steps = new PlanStep[] + { + new("Fetch sources", "3 results", CuiTaskStatus.Done), + new("Draft the summary", null, CuiTaskStatus.Running), + new("Check the citations", null, CuiTaskStatus.Pending), + }; + + var pixels = Frame(surface, ui => + { + Assert.Equal(-1, ui.AgentPlan("plan", steps)); + ui.AgentStatus("Reading report.pdf", new AgentStatusOpts { Status = CuiTaskStatus.Running, Seconds = 3 }); + // The BCL enum still resolves unqualified beside the renamed CUI one. + Assert.Equal(6, (int)TaskStatus.Canceled); + }); + + Assert.Contains(pixels, b => b != 0); + } + [Fact] public void TheEditorToolsKeepWhatTheCallerPassed() { diff --git a/src/CuiSharp.Tests/EnumContractTests.cs b/src/CuiSharp.Tests/EnumContractTests.cs index fbf4d39..185b6df 100644 --- a/src/CuiSharp.Tests/EnumContractTests.cs +++ b/src/CuiSharp.Tests/EnumContractTests.cs @@ -1,3 +1,6 @@ +using System.Threading.Tasks; +using CuiSharp; + namespace CuiSharp.Tests; /// @@ -100,6 +103,26 @@ public void ModsAreBitFlagsWithCtrlAsPrimaryOnWindows() Assert.Equal(Mods.Ctrl, Mods.Primary); } + [Fact] + public void CuiTaskStatusCoexistsWithBclTaskStatus() + { + // CuiSharp.TaskStatus used to collide with System.Threading.Tasks.TaskStatus: + // with both usings in scope, an unqualified TaskStatus was ambiguous. The + // binding is renamed CuiTaskStatus, so both names resolve unqualified here. + Assert.NotEqual(typeof(CuiTaskStatus), typeof(TaskStatus)); + + // cui_task_status: the ABI numbers the C side casts to. + Assert.Equal(0, (int)CuiTaskStatus.Pending); + Assert.Equal(1, (int)CuiTaskStatus.Running); + Assert.Equal(2, (int)CuiTaskStatus.Done); + Assert.Equal(3, (int)CuiTaskStatus.Failed); + Assert.Equal(4, (int)CuiTaskStatus.Skipped); + + // The BCL enum keeps its own, different numbering (Canceled = 6, not in CUI). + Assert.Equal(0, (int)TaskStatus.Created); + Assert.Equal(6, (int)TaskStatus.Canceled); + } + [Fact] public void PlacementAndSidesMatch() { diff --git a/src/CuiSharp.Tests/OptionMappings.g.cs b/src/CuiSharp.Tests/OptionMappings.g.cs index 855f805..17e933f 100644 --- a/src/CuiSharp.Tests/OptionMappings.g.cs +++ b/src/CuiSharp.Tests/OptionMappings.g.cs @@ -2194,7 +2194,7 @@ public void EveryGeneratedOptionMapsItsFields() { var value = new ToolCallOpts { - Status = (TaskStatus)1, + Status = (CuiTaskStatus)1, Icon = "é", Detail = "é", Input = "é", @@ -2231,7 +2231,7 @@ public void EveryGeneratedOptionMapsItsFields() { var value = new AgentStatusOpts { - Status = (TaskStatus)1, + Status = (CuiTaskStatus)1, Seconds = 2.5f, Icon = "é", }; diff --git a/src/CuiSharp/Interop/Enums.g.cs b/src/CuiSharp/Interop/Enums.g.cs index 2dc69eb..2927f02 100644 --- a/src/CuiSharp/Interop/Enums.g.cs +++ b/src/CuiSharp/Interop/Enums.g.cs @@ -349,7 +349,7 @@ public enum LoaderStyle } /// cui_task_status -public enum TaskStatus +public enum CuiTaskStatus { Pending = 0, Running = 1, diff --git a/src/CuiSharp/Interop/Structs.g.cs b/src/CuiSharp/Interop/Structs.g.cs index 49ae744..3ccadd4 100644 --- a/src/CuiSharp/Interop/Structs.g.cs +++ b/src/CuiSharp/Interop/Structs.g.cs @@ -2541,7 +2541,7 @@ public unsafe struct NativeToolCallOpts /// int (offset 0) public int Sentinel; /// cui_task_status (offset 4) - public TaskStatus Status; + public CuiTaskStatus Status; /// const char * (offset 8) public nint Icon; /// const char * (offset 16) @@ -2563,7 +2563,7 @@ public unsafe struct NativePlanStep /// const char * (offset 8) public nint Detail; /// cui_task_status (offset 16) - public TaskStatus Status; + public CuiTaskStatus Status; } /// cui_agent_plan_opts, 16 bytes. @@ -2583,7 +2583,7 @@ public unsafe struct NativeAgentStatusOpts /// int (offset 0) public int Sentinel; /// cui_task_status (offset 4) - public TaskStatus Status; + public CuiTaskStatus Status; /// float (offset 8) public float Seconds; /// const char * (offset 16) diff --git a/src/CuiSharp/Ui/Options.g.cs b/src/CuiSharp/Ui/Options.g.cs index 32c6b95..860ff0f 100644 --- a/src/CuiSharp/Ui/Options.g.cs +++ b/src/CuiSharp/Ui/Options.g.cs @@ -2398,7 +2398,7 @@ public partial struct ReasoningOpts public partial struct ToolCallOpts { /// cui_task_status status - public TaskStatus Status; + public CuiTaskStatus Status; /// const char * icon public string? Icon; /// const char * detail @@ -2439,7 +2439,7 @@ public partial struct AgentPlanOpts public partial struct AgentStatusOpts { /// cui_task_status status - public TaskStatus Status; + public CuiTaskStatus Status; /// float seconds public float Seconds; /// const char * icon diff --git a/src/CuiSharp/Ui/Records.g.cs b/src/CuiSharp/Ui/Records.g.cs index 94384a2..15f7a32 100644 --- a/src/CuiSharp/Ui/Records.g.cs +++ b/src/CuiSharp/Ui/Records.g.cs @@ -3638,9 +3638,9 @@ public unsafe partial struct PlanStep /// const char * detail public string? Detail; /// cui_task_status status - public TaskStatus Status; + public CuiTaskStatus Status; - public PlanStep(string? Title, string? Detail = null, TaskStatus Status = default) { this.Title = Title; this.Detail = Detail; this.Status = Status; } + public PlanStep(string? Title, string? Detail = null, CuiTaskStatus Status = default) { this.Title = Title; this.Detail = Detail; this.Status = Status; } internal readonly NativePlanStep ToNative() => new() { From 55a1a08560e02db9c2bea61d8d5664d5ab22c134 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 10:38:46 +0800 Subject: [PATCH 02/18] WIP issue5: named boxes and scroll areas record their own native id A begin that returns a cui_id now hands it to the recorder (generated), and a named scroll recomputes the pure cui_make_id hash CUI derived, only while recording. No synthetic ids, no native change: a named Box/Row/Column/Scroll reports its own rect instead of the last widget's. Generated files changed via tools/regen.ps1 only. --- bindings/overrides.json | 6 ++++++ src/CuiSharp/Semantics/WidgetRecorder.cs | 23 +++++++++++++++++++---- src/CuiSharp/Ui/Layout.g.cs | 8 ++++---- src/CuiSharp/Ui/Ui.Scopes.cs | 10 ++++++---- tools/bindgen.cs | 24 ++++++++++++++++++++---- 5 files changed, 55 insertions(+), 16 deletions(-) diff --git a/bindings/overrides.json b/bindings/overrides.json index 3ebd0dd..1b4309c 100644 --- a/bindings/overrides.json +++ b/bindings/overrides.json @@ -253,6 +253,12 @@ "clicked": true, "why": "The bool return reports clicked, not openness; cui_card_begin always opens its layout container." }, + "cui_scroll_begin": { + "end": "cui_scroll_end", + "clicked": false, + "deriveNamedId": true, + "why": "cui_scroll_begin returns void although it derives a named area's id as cui_make_id(id); the recorder recomputes that pure hash only while recording, so a named Scroll reports its own rect instead of the last widget's." + }, "cui_kanban_column_begin_ex": { "end": "cui_kanban_column_end", "clicked": true, diff --git a/src/CuiSharp/Semantics/WidgetRecorder.cs b/src/CuiSharp/Semantics/WidgetRecorder.cs index 9ae5a92..dc471ef 100644 --- a/src/CuiSharp/Semantics/WidgetRecorder.cs +++ b/src/CuiSharp/Semantics/WidgetRecorder.cs @@ -121,12 +121,17 @@ internal static void NoteItems(nint ui, string kind, string item, UiText id, Rea } /// A container opened; the widgets drawn from here on sit inside it. + /// + /// is the id CUI returned for this container when its begin + /// reports one; marks a container whose id CUI derives + /// purely from the name (cui_make_id) although its begin returns void. + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Push(nint ui, string kind, string? id) + internal static void Push(nint ui, string kind, string? id, uint? nativeId = null, bool deriveNamedId = false) { FrameRecorder? frame = _current; if (frame is null) return; - frame.Push(ui, kind, id); + frame.Push(ui, kind, id, nativeId, deriveNamedId); } /// A container opened under a markup id, which is the name most of them take. @@ -258,9 +263,19 @@ internal void Begin() _controls.Clear(); } - internal void Push(nint ui, string kind, string? id) + internal void Push(nint ui, string kind, string? id, uint? nativeId = null, bool deriveNamedId = false) { - if (!string.IsNullOrEmpty(id)) Add(ui, kind, default, 0, id, container: true); + if (!string.IsNullOrEmpty(id)) + { + // The container's own native id when its begin reported one (a box - even an + // explicit 0 there stays 0, so no stale last_id is ever borrowed), else the pure + // cui_make_id of the app's name when that is how CUI derives it (a named scroll), + // else the last_id the container set for itself. + uint native = nativeId ?? (deriveNamedId + ? Native.MakeId(ui, Utf8.Get(id)) + : Native.LastId(ui)); + _pending.Add(new Pending(kind, default, 0, id, native, _depth, container: true)); + } _depth++; } diff --git a/src/CuiSharp/Ui/Layout.g.cs b/src/CuiSharp/Ui/Layout.g.cs index c6b39fc..094be6a 100644 --- a/src/CuiSharp/Ui/Layout.g.cs +++ b/src/CuiSharp/Ui/Layout.g.cs @@ -18,7 +18,7 @@ public LayoutScope Box(Box o = default) { var __opts = o.ToNative(); var __result = Native.BoxBegin(ui.Handle, in __opts); - return new LayoutScope(ui.Handle, &Native.BoxEnd, "Box", o.Id); + return new LayoutScope(ui.Handle, &Native.BoxEnd, "Box", o.Id, nativeId: __result); } /// cui_row_begin @@ -26,7 +26,7 @@ public LayoutScope Row(Box o = default) { var __opts = o.ToNative(); var __result = Native.RowBegin(ui.Handle, in __opts); - return new LayoutScope(ui.Handle, &Native.BoxEnd, "Row", o.Id); + return new LayoutScope(ui.Handle, &Native.BoxEnd, "Row", o.Id, nativeId: __result); } /// cui_column_begin @@ -34,7 +34,7 @@ public LayoutScope Column(Box o = default) { var __opts = o.ToNative(); var __result = Native.ColumnBegin(ui.Handle, in __opts); - return new LayoutScope(ui.Handle, &Native.BoxEnd, "Column", o.Id); + return new LayoutScope(ui.Handle, &Native.BoxEnd, "Column", o.Id, nativeId: __result); } /// cui_spacer @@ -76,7 +76,7 @@ public LayoutScope Scroll(ScrollOpts o = default) { var __opts = o.ToNative(); Native.ScrollBegin(ui.Handle, in __opts); - return new LayoutScope(ui.Handle, &Native.ScrollEnd, "Scroll", o.Id); + return new LayoutScope(ui.Handle, &Native.ScrollEnd, "Scroll", o.Id, deriveNamedId: true); } /// cui_scroll_to diff --git a/src/CuiSharp/Ui/Ui.Scopes.cs b/src/CuiSharp/Ui/Ui.Scopes.cs index 78f871c..95b2eae 100644 --- a/src/CuiSharp/Ui/Ui.Scopes.cs +++ b/src/CuiSharp/Ui/Ui.Scopes.cs @@ -16,13 +16,15 @@ namespace CuiSharp; /// The native call that closes this container, e.g. &Native.BoxEnd. /// The wrapper that opened it, for a recorded tree. /// The name the app gave it, if any: only a named container is a node. - internal LayoutScope(nint ui, delegate* end, string name, string? id = null) + /// The id CUI returned for this container, when its begin reports one. + /// True when CUI derives the id purely from the name (cui_make_id) but returns void. + internal LayoutScope(nint ui, delegate* end, string name, string? id = null, uint? nativeId = null, bool deriveNamedId = false) { _ui = ui; _end = end; // Recorded widgets are a tree, and the tree is the nesting the app wrote: a widget // drawn inside this container is one level deeper than the container itself. - WidgetRecorder.Push(ui, name, id); + WidgetRecorder.Push(ui, name, id, nativeId, deriveNamedId); } /// The frame the container belongs to. @@ -53,10 +55,10 @@ public void Dispose() { private LayoutScope _scope; - internal OpenScope(nint ui, delegate* end, string name, string? id, bool open) + internal OpenScope(nint ui, delegate* end, string name, string? id, bool open, uint? nativeId = null, bool deriveNamedId = false) { Open = open; - _scope = open ? new LayoutScope(ui, end, name, id) : default; + _scope = open ? new LayoutScope(ui, end, name, id, nativeId, deriveNamedId) : default; } internal OpenScope(nint ui, delegate* end, string name, UiText id, bool open, uint? nativeId = null) diff --git a/tools/bindgen.cs b/tools/bindgen.cs index 7af3fde..543af25 100644 --- a/tools/bindgen.cs +++ b/tools/bindgen.cs @@ -302,7 +302,7 @@ sealed record CType(string Spelling, string Kind, bool IsConst, CType? Element); sealed record NameOverride(string Name, string Why); sealed record DefaultOverride(string Value, string Why); -sealed record ScopeOverride(string End, bool Clicked, string Why); +sealed record ScopeOverride(string End, bool Clicked, string Why, bool DeriveNamedId = false); sealed record InjectedField(string Type, string Why) { /// The wrapper parameter name, e.g. "sort". @@ -1645,6 +1645,11 @@ private void ValidateOverrides() throw new InvalidOperationException($"Unknown scope pair: {key} / {value.End}"); if (end.CsReturn != "void" || end.Params.Length != 1 || value.Clicked && begin.ReturnType.Kind != "Bool") throw new InvalidOperationException($"Unsupported scope semantics: {key} / {value.End}"); + // deriveNamedId stands in for a begin that hides the id it derived from the app's + // name; a begin that returns or reports more has other rules, so fail if the pair + // ever changes shape. + if (value.DeriveNamedId && (begin.ReturnType.Kind != "Void" || value.Clicked)) + throw new InvalidOperationException($"deriveNamedId needs a void, always-open begin: {key}"); } foreach (var (key, reason) in _overrides.ManualWidgets) { @@ -2558,10 +2563,21 @@ private static uint TextKeySalt(string overrideKey) private string ScopeNew(WidgetPlan widget, string result, string scopeReturn) { string extra = scopeReturn == "OpenScope" ? $", {result} != 0" : ""; - string id = widget.Params.FirstOrDefault(p => p.Type == "UiText" && p.Mode != "out ") is { } namer - ? namer.Name + bool namedByMarkup = widget.Params.Any(p => p.Type == "UiText" && p.Mode != "out "); + string id = namedByMarkup + ? widget.Params.First(p => p.Type == "UiText" && p.Mode != "out ").Name : ContainerIdArg(widget); - return $"new {scopeReturn}(ui.Handle, &Native.{widget.End!.CsName}, \"{widget.Name}\", {id}{extra})"; + // Hand the recorder the id CUI lays this container out under, so it reads back the + // container's own rect instead of guessing from last_id (which a box begin never + // touches). A begin that returns a cui_id states it exactly; a deriveNamedId + // container derives it purely from the app's name (cui_make_id), and the recorder + // recomputes that hash only while recording, so an idle frame calls nothing new. + string nativeId = !namedByMarkup && widget.Native.ReturnType.Spelling == "cui_id" + ? $", nativeId: {result}" + : !namedByMarkup && _overrides.Scopes.TryGetValue(widget.Native.CName, out var scope) && scope.DeriveNamedId + ? ", deriveNamedId: true" + : ""; + return $"new {scopeReturn}(ui.Handle, &Native.{widget.End!.CsName}, \"{widget.Name}\", {id}{extra}{nativeId})"; } /// From 8271f507348cb8da1cb6dfb32ced8acd062341db Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 10:54:05 +0800 Subject: [PATCH 03/18] issue5: layout view that prints what CUI proved and names the rest unknown LayoutFormatter renders a recorded frame with verified rects only where the widget owns the id it was laid out under, observed bounds labelled union>= (a lower bound of recorded rects, never a content extent), extent:UNKNOWN for scrolled/virtualized content CUI keeps private, and a header warning above every view. HeadlessApp.PrintLayout and a headless 'layout' command expose it; the tree and query ranking are untouched. --- docs/API-SURFACE.txt | 4 + src/CuiSharp.Tests/LayoutInspectionTests.cs | 147 ++++++++++++++++++++ src/CuiSharp.Tests/SemanticTreeTests.cs | 63 +++++++++ src/CuiSharp/Hosting/HeadlessApp.cs | 6 + src/CuiSharp/Hosting/HeadlessLoop.cs | 3 +- src/CuiSharp/Semantics/LayoutFormatter.cs | 114 +++++++++++++++ 6 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 src/CuiSharp.Tests/LayoutInspectionTests.cs create mode 100644 src/CuiSharp/Semantics/LayoutFormatter.cs diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 7e910ea..82ef736 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -1456,6 +1456,7 @@ class CuiSharp.Hosting.HeadlessApp HeadlessApp Type(String) Int32 Settle(Int32, Nullable) String Print(Boolean) + String PrintLayout() String SavePng(String, Boolean) String ToString() Void Dispose() @@ -4388,6 +4389,9 @@ struct CuiSharp.KvEditorOpts field Size Width field String KeyPlaceholder field String ValuePlaceholder +class CuiSharp.LayoutFormatter + field String Header + static String Print(SemanticNode) struct CuiSharp.LayoutScope Void Dispose() class CuiSharp.LayoutUiExtensions diff --git a/src/CuiSharp.Tests/LayoutInspectionTests.cs b/src/CuiSharp.Tests/LayoutInspectionTests.cs new file mode 100644 index 0000000..bba4ba3 --- /dev/null +++ b/src/CuiSharp.Tests/LayoutInspectionTests.cs @@ -0,0 +1,147 @@ +using System.Globalization; +using CuiSharp.Hosting; +using CuiSharp.Testing; + +namespace CuiSharp.Tests; + +/// +/// The layout view: what it prints must be exactly what CUI proved, and everything it cannot +/// prove — true scroll extents, virtualized content, unnamed containers, text-only widgets — +/// must be printed as an unknown, never as a number that looks like an answer. +/// +public class LayoutInspectionTests +{ + private sealed class LayoutPage : Component + { + protected override void Draw(Ui ui) + { + using (ui.Column(new() { Id = "root", Width = Size.Fill, Height = Size.Fill, Pad = 12, Gap = 8 })) + { + if (ui.Button("Go")) Clicks++; + ui.Heading("Title", 2); + ui.Button("Second"); + using (ui.Scroll(new() { Id = "area", Height = Size.Px(60) })) + ui.Button("Deep"); + using (ui.VirtualList("rows", 1000, 28, Size.Px(90), out int first, out int last)) + for (int r = first; r < last; r++) + ui.ListItem($"Row {r}"); + } + } + + public int Clicks; + } + + private static string[] LayoutLines(TestApp app) => + app.PrintLayout().ReplaceLineEndings("\n").Split('\n'); + + [Fact] + public void EveryLayoutViewStartsWithItsWarning() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new LayoutPage(), 420, 480); + + string[] lines = LayoutLines(app); + // The disclaimer is line one, so no line below it can read as more than it is. + Assert.Equal(LayoutFormatter.Header, lines[0]); + Assert.Contains("lower bound", LayoutFormatter.Header, StringComparison.Ordinal); + Assert.Contains("UNKNOWN", LayoutFormatter.Header, StringComparison.Ordinal); + Assert.Contains("unnamed", LayoutFormatter.Header, StringComparison.Ordinal); + } + + [Fact] + public void ScrolledAndVirtualizedNodesReportTheirExtentAsUnknown() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new LayoutPage(), 420, 480); + + string scroll = Assert.Single(LayoutLines(app), l => l.Contains("Scroll \"area\"", StringComparison.Ordinal)); + string list = Assert.Single(LayoutLines(app), l => l.Contains("VirtualList \"rows\"", StringComparison.Ordinal)); + Assert.Contains("extent:UNKNOWN", scroll, StringComparison.Ordinal); + Assert.Contains("extent:UNKNOWN", list, StringComparison.Ordinal); + + // The named scroll's own viewport rect is still verified — it is the extent, not the + // viewport, that is unknown — and it is the scroll area's own, not a borrowed one. + SemanticNode area = app.Tree.Find("area"); + Assert.Contains($"[{area.Rect}]", scroll, StringComparison.Ordinal); + Assert.NotEqual(app.Tree.Find("Second").Rect, area.Rect); + } + + [Fact] + public void ATextOnlyWidgetHasNoVerifiedRect() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new LayoutPage(), 420, 480); + + // A heading after an action widget records under the button's id, so its rect is + // someone else's and the view says so instead of printing it as a fact. + string heading = Assert.Single(LayoutLines(app), l => l.Contains("Heading \"Title\"", StringComparison.Ordinal)); + Assert.Contains("[rect:unverified]", heading, StringComparison.Ordinal); + Assert.DoesNotContain($"[{app.Tree.Find("Title").Rect}]", heading, StringComparison.Ordinal); + } + + [Fact] + public void ObservedBoundsAreTheUnionOfTheVerifiedRectsAndSaySo() + { + if (!OperatingSystem.IsWindows()) return; + + // A page small enough for the union to be hand-checked: two buttons in a named box. + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "pair", Width = Size.Fill, Pad = 10, Gap = 6 })) + { + ui.Button("A"); + ui.Button("B"); + } + }, 300, 200); + + RectF a = app.Tree.Find("A").Rect; + RectF b = app.Tree.Find("B").Rect; + float x = MathF.Min(a.X, b.X), y = MathF.Min(a.Y, b.Y); + float right = MathF.Max(a.X + a.W, b.X + b.W), bottom = MathF.Max(a.Y + a.H, b.Y + b.H); + var expected = new RectF(x, y, right - x, bottom - y); + + string pair = Assert.Single( + app.PrintLayout().ReplaceLineEndings("\n").Split('\n'), + l => l.Contains("Column \"pair\"", StringComparison.Ordinal)); + Assert.Contains($"union≥[{expected}] (lower-bound, recorded rects)", pair, StringComparison.Ordinal); + } + + [Fact] + public void TheTreeAndItsRankingAreNotRewrittenByTheLayoutView() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new LayoutPage(), 420, 480); + + // The layout view is additive: the plain tree still names the same nodes in the same + // nesting, and a control still outranks a heading that repeats its text. + Assert.Contains("Column \"root\"", app.Print(), StringComparison.Ordinal); + Assert.Contains("Button \"Go\"", app.Print(), StringComparison.Ordinal); + Assert.Equal("Button", app.Tree.Find("Go").Kind); + } + + [Fact] + public void TheHeadlessWireAnswersLayoutWithTheHeaderView() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new LayoutPage(), 420, 480); + string answer = Wire(app, "layout"); + Assert.StartsWith(LayoutFormatter.Header, answer, StringComparison.Ordinal); + Assert.Contains("extent:UNKNOWN", answer, StringComparison.Ordinal); + } + + /// One command down the headless protocol, the answer payload back — the loop's own wire. + private static string Wire(HeadlessApp app, string command) + { + var output = new StringWriter(); + HeadlessLoop.Run(app, new StringReader(command + "\nquit\n"), output); + string wire = output.ToString(); + string[] lines = wire.ReplaceLineEndings("\n").Split('\n'); + int length = int.Parse(lines[1]["CUI-OK ".Length..], CultureInfo.InvariantCulture); + return string.Join('\n', lines[2..])[..length]; + } +} diff --git a/src/CuiSharp.Tests/SemanticTreeTests.cs b/src/CuiSharp.Tests/SemanticTreeTests.cs index 85199fd..b1bdb4a 100644 --- a/src/CuiSharp.Tests/SemanticTreeTests.cs +++ b/src/CuiSharp.Tests/SemanticTreeTests.cs @@ -257,6 +257,69 @@ public void ClickingASegmentSwitchesWhatTheAppDraws() Assert.Contains(app.Tree.Descendants(), n => n.Text == "dark"); } + /// + /// A named box, row, column or scroll area must be recorded under the id CUI laid it out + /// under. A begin that reports no last_id used to leave the container borrowing the previous + /// widget's id, which made it claim someone else's rectangle. + /// + private sealed class NamedBoxes : Component + { + protected override void Draw(Ui ui) + { + ui.Button("Before"); + using (ui.Column(new() { Id = "panel", Width = Size.Fill, Pad = 10, Gap = 6 })) + { + ui.Button("Inside"); + } + + using (ui.Scroll(new() { Id = "area", Height = Size.Px(60) })) + { + ui.Button("Scrolled"); + } + } + } + + [Fact] + public void ANamedBoxReportsItsOwnRectNotTheLastWidgets() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new NamedBoxes(), 400, 300); + + SemanticNode before = app.Tree.Find("Before"); + SemanticNode panel = app.Tree.Find("panel"); + SemanticNode inside = panel.Find("Inside"); + SemanticNode area = app.Tree.Find("area"); + + // Before the identity fix these two pairs were the same rectangle. + Assert.NotEqual(before.Rect, panel.Rect); + Assert.NotEqual(before.Rect, area.Rect); + Assert.True(panel.Rect.W > 0 && panel.Rect.H > 0); + Assert.True(area.Rect.W > 0 && area.Rect.H > 0); + + // And the rect is the box the app drew: the child sits inside it, the scroll area follows. + Assert.InRange(inside.Rect.Y, panel.Rect.Y, panel.Rect.Y + panel.Rect.H); + Assert.True(area.Rect.Y >= panel.Rect.Y + panel.Rect.H); + } + + [Fact] + public void ANamedBoxFirstInTheFrameHasARealRectToo() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(ui => + { + using (ui.Box(new() { Id = "first", Width = Size.Fill, Height = Size.Px(50), Pad = 8 })) + ui.Button("Only"); + }, 300, 160); + + // Nothing has reported an id before this box, so a borrowed last_id was 0 and the box + // had no rect at all; the id CUI returned for the box itself has one. + SemanticNode first = app.Tree.Find("first"); + Assert.NotEqual(0u, first.Id); + Assert.True(first.Rect.W > 0 && first.Rect.H > 0); + } + [Fact] public void RecordingAFrameCostsTheDrawNothing() { diff --git a/src/CuiSharp/Hosting/HeadlessApp.cs b/src/CuiSharp/Hosting/HeadlessApp.cs index 7cef4e1..7b93255 100644 --- a/src/CuiSharp/Hosting/HeadlessApp.cs +++ b/src/CuiSharp/Hosting/HeadlessApp.cs @@ -480,6 +480,12 @@ public string SavePng(string? path = null, bool parked = true) /// The last frame's tree as text, which is also what gives. public string Print(bool rects = false) => Tree.Print(rects); + /// + /// The view of the last frame: verified rectangles, observed + /// bounds labelled as the lower bounds they are, and unknown extents named as unknowns. + /// + public string PrintLayout() => LayoutFormatter.Print(Tree); + /// public override string ToString() => Print(); diff --git a/src/CuiSharp/Hosting/HeadlessLoop.cs b/src/CuiSharp/Hosting/HeadlessLoop.cs index 6d1c868..3f5c5c8 100644 --- a/src/CuiSharp/Hosting/HeadlessLoop.cs +++ b/src/CuiSharp/Hosting/HeadlessLoop.cs @@ -48,7 +48,7 @@ public static class HeadlessLoop private static readonly string[] Commands = [ - "tree", "print", "find", "click", "type", "key", "focus", "move", "wheel", "frame", "pulse", "faults", "png", "quit", + "tree", "print", "layout", "find", "click", "type", "key", "focus", "move", "wheel", "frame", "pulse", "faults", "png", "quit", ]; /// True when this process was asked to run without a window. @@ -184,6 +184,7 @@ public static int Run(HeadlessApp app, TextReader? input = null, TextWriter? out private static string Execute(HeadlessApp app, string command, string argument) => command switch { "tree" or "print" => app.Print(), + "layout" => app.PrintLayout(), "find" => Find(app, argument), "click" => Click(app, argument), "type" => app.Type(argument).Print(), diff --git a/src/CuiSharp/Semantics/LayoutFormatter.cs b/src/CuiSharp/Semantics/LayoutFormatter.cs new file mode 100644 index 0000000..22d680b --- /dev/null +++ b/src/CuiSharp/Semantics/LayoutFormatter.cs @@ -0,0 +1,114 @@ +using System.Text; + +namespace CuiSharp; + +/// +/// A layout view of a recorded frame: each named node with the rectangle CUI laid it out under +/// its own id where one is known, the observed bounds of what a container holds where any +/// descendant has a verified rect, and the unknowns named as unknowns. +/// +/// +/// +/// What CUI does not expose, this does not invent. A true content extent lives in CUI's private +/// per-id scroll state and a wheel-scrolled widget reports an unbounded sentinel there, so a +/// scrolled or virtualized node prints extent:UNKNOWN instead of a child union pretending +/// to be an extent. A widget recorded by text alone (a heading, a label) is laid out under no id +/// of its own, so its rectangle is not verified and its bounds are excluded from every union. +/// An unnamed container has no native id at all and cannot appear. +/// +/// +/// Observed bounds are written union≥: they are the union of the verified recorded rects +/// inside a node, a lower bound on what the node actually holds, not the layout's content extent. +/// +/// +public static class LayoutFormatter +{ + /// The warning line every layout view carries, so no line below it reads as more than it is. + public const string Header = + "layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and text-only " + + "widgets have no verified rect; union≥ is a lower bound of recorded rects, not a " + + "content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them private)."; + + /// + /// The wrappers CUI keeps its content scrolled behind: the rect is the viewport, the real + /// extent is private state, and for wheel-scrolled widgets CUI itself models it as unbounded. + /// + /// + /// Each entry was read out of the pinned native source: scroll areas and the virtual list + /// derive per-id scroll state (cui_widgets.c, cui_data.c), the table/tree/grid and code views + /// scroll their own window (cui_data.c, cui_code.c), and the terminal, flame and graph views + /// report unbounded wheel content (cui_terminal.c, cui_flame.c, cui_graph.c). The header + /// disclaimer covers any scrolled widget this list has not met yet: a missing entry means a + /// line loses its UNKNOWN annotation, never a false extent. + /// + private static readonly HashSet ScrolledContentKinds = + [ + "Scroll", "VirtualList", "Table", "Tree", "TreeTable", "DataGrid", + "CodeEditor", "HexView", "DiffView", "LogView", "Terminal", + "FlameGraph", "GraphView", + ]; + + /// Renders the layout view of one recorded frame tree, header line first. + public static string Print(SemanticNode frame) + { + ArgumentNullException.ThrowIfNull(frame); + var sb = new StringBuilder(); + sb.AppendLine(Header); + Walk(frame, 0); + return sb.ToString().TrimEnd('\n'); + + void Walk(SemanticNode node, int indent) + { + sb.Append(' ', indent * 2).Append(Label(node)); + + // The frame root is not a widget: it never asked for a rect. + if (node.Parent is not null) + sb.Append(' ').Append(HasVerifiedRect(node) ? $"[{node.Rect}]" : RectDoubt(node)); + + if (ScrolledContentKinds.Contains(node.Kind)) + sb.Append(" extent:UNKNOWN(scrolled or virtualized content is not exposed)"); + + if (node.Children.Count > 0 && ObservedBounds(node) is { } bounds) + sb.Append(" union≥[").Append(bounds).Append("] (lower-bound, recorded rects)"); + + sb.Append('\n'); + foreach (SemanticNode child in node.Children) Walk(child, indent + 1); + } + } + + /// + /// True when the id this node was recorded under is the widget's own: CUI laid it out under + /// that id and only that widget's rect can be there. A text-only widget records under + /// whatever id the last action set, which makes its rect someone else's. + /// + private static bool HasVerifiedRect(SemanticNode node) => + node.Id != 0 && !SemanticNode.IsStatic(node.Kind); + + private static string RectDoubt(SemanticNode node) => + node.Id == 0 ? "[rect:none]" : "[rect:unverified]"; + + /// The union of the verified rects of everything below this node, or null if none has one. + private static RectF? ObservedBounds(SemanticNode node) + { + RectF? acc = null; + foreach (SemanticNode descendant in node.Descendants()) + { + if (!HasVerifiedRect(descendant)) continue; + acc = acc is { } current ? Expand(current, descendant.Rect) : descendant.Rect; + } + + return acc; + } + + private static RectF Expand(RectF a, RectF b) + { + float x = MathF.Min(a.X, b.X); + float y = MathF.Min(a.Y, b.Y); + float right = MathF.Max(a.X + a.W, b.X + b.W); + float bottom = MathF.Max(a.Y + a.H, b.Y + b.H); + return new RectF(x, y, right - x, bottom - y); + } + + private static string Label(SemanticNode node) => + node.Text.Length == 0 ? node.Kind : $"{node.Kind} \"{node.Text}\""; +} From 1788b3d7e03157a835b8bca7ac6918b9373dff70 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 11:01:19 +0800 Subject: [PATCH 04/18] Correct virtual layout identity and report observed overflow --- bindings/overrides.json | 12 ++++ src/CuiSharp.Tests/LayoutInspectionTests.cs | 73 +++++++++++++++++++-- src/CuiSharp/Semantics/LayoutFormatter.cs | 11 +++- src/CuiSharp/Semantics/WidgetRecorder.cs | 11 ++-- src/CuiSharp/Ui/DataDisplay.g.cs | 2 +- src/CuiSharp/Ui/Layout.g.cs | 2 +- src/CuiSharp/Ui/Ui.Scopes.cs | 9 +-- tools/bindgen.cs | 2 +- 8 files changed, 106 insertions(+), 16 deletions(-) diff --git a/bindings/overrides.json b/bindings/overrides.json index 1b4309c..036b703 100644 --- a/bindings/overrides.json +++ b/bindings/overrides.json @@ -259,6 +259,18 @@ "deriveNamedId": true, "why": "cui_scroll_begin returns void although it derives a named area's id as cui_make_id(id); the recorder recomputes that pure hash only while recording, so a named Scroll reports its own rect instead of the last widget's." }, + "cui_virtual_list_begin": { + "end": "cui_virtual_list_end", + "clicked": false, + "deriveNamedId": true, + "why": "The viewport is laid out under cui_make_id(id), but begin returns void and does not set last_id; the recorder derives that same id without changing native identity." + }, + "cui_split_begin": { + "end": "cui_split_end", + "clicked": false, + "deriveNamedId": true, + "why": "The split container uses cui_make_id(id) without setting last_id; derive its own recorded id rather than borrow the preceding widget's rectangle." + }, "cui_kanban_column_begin_ex": { "end": "cui_kanban_column_end", "clicked": true, diff --git a/src/CuiSharp.Tests/LayoutInspectionTests.cs b/src/CuiSharp.Tests/LayoutInspectionTests.cs index bba4ba3..9aee473 100644 --- a/src/CuiSharp.Tests/LayoutInspectionTests.cs +++ b/src/CuiSharp.Tests/LayoutInspectionTests.cs @@ -1,4 +1,5 @@ using System.Globalization; +using System.Text; using CuiSharp.Hosting; using CuiSharp.Testing; @@ -134,14 +135,78 @@ public void TheHeadlessWireAnswersLayoutWithTheHeaderView() Assert.Contains("extent:UNKNOWN", answer, StringComparison.Ordinal); } + [Fact] + public void NamedVirtualAndSplitContainersDoNotBorrowThePreviousWidgetsRectangle() + { + uint rowsId = 0, panesId = 0; + float ratio = 0.5f; + using var app = TestApp.Start(ui => + { + ui.Button("before"); + using (ui.Id(42)) + { + rowsId = ui.MakeId("rows"); + using (ui.VirtualList("rows", 50, 24, Size.Px(100), out int first, out int last)) + for (int i = first; i < last; i++) ui.ListItem($"row {i}"); + panesId = ui.MakeId("panes"); + using (ui.Split("panes", ref ratio, new SplitOpts { Height = Size.Px(80) })) + { + ui.Button("Left"); + ui.SplitNext(); + ui.Button("Right"); + } + } + }, 400, 400); + + SemanticNode rows = app.Tree.Find("rows"); + SemanticNode panes = app.Tree.Find("panes"); + Assert.Equal(rowsId, rows.Id); + Assert.Equal(panesId, panes.Id); + Assert.NotEqual(app.Tree.Find("before").Id, rows.Id); + Assert.Equal(100, rows.Rect.H); + Assert.Equal(80, panes.Rect.H); + Assert.True(panes.Rect.W > 240); + } + + [Fact] + public void ObservedChildrenBeyondAFixedContainerAreMarkedAsOverflow() + { + using var app = TestApp.Start(ui => + { + using (ui.Column(new Box { Id = "clip", Height = Size.Px(40), Clip = true })) + { + ui.Button("A"); + ui.Gap(24); + ui.Button("B"); + } + }, 300, 200); + string line = Assert.Single(LayoutLines(app), l => l.Contains("Column \"clip\"", StringComparison.Ordinal)); + Assert.Contains("OVERFLOW(observed bounds)", line, StringComparison.Ordinal); + Assert.True(app.Tree.Find("B").Rect.Y + app.Tree.Find("B").Rect.H > app.Tree.Find("clip").Rect.Y + 40); + } + + [Fact] + public void AUnicodeLayoutPayloadRoundTripsExactlyByItsByteCount() + { + using var app = TestApp.Start(ui => + { + using (ui.Column(new Box { Id = "布局" })) ui.Button("保存"); + }, 300, 200); + Assert.Equal(app.PrintLayout(), Wire(app, "layout")); + } + /// One command down the headless protocol, the answer payload back — the loop's own wire. private static string Wire(HeadlessApp app, string command) { var output = new StringWriter(); HeadlessLoop.Run(app, new StringReader(command + "\nquit\n"), output); - string wire = output.ToString(); - string[] lines = wire.ReplaceLineEndings("\n").Split('\n'); - int length = int.Parse(lines[1]["CUI-OK ".Length..], CultureInfo.InvariantCulture); - return string.Join('\n', lines[2..])[..length]; + byte[] wire = Encoding.UTF8.GetBytes(output.ToString()); + int bannerEnd = Array.IndexOf(wire, (byte)'\n'); + int headerEnd = Array.IndexOf(wire, (byte)'\n', bannerEnd + 1); + string header = Encoding.UTF8.GetString(wire, bannerEnd + 1, headerEnd - bannerEnd - 1); + Assert.StartsWith("CUI-OK ", header, StringComparison.Ordinal); + int length = int.Parse(header["CUI-OK ".Length..], CultureInfo.InvariantCulture); + Assert.Equal((byte)'\n', wire[headerEnd + 1 + length]); + return Encoding.UTF8.GetString(wire, headerEnd + 1, length); } } diff --git a/src/CuiSharp/Semantics/LayoutFormatter.cs b/src/CuiSharp/Semantics/LayoutFormatter.cs index 22d680b..f5b1d52 100644 --- a/src/CuiSharp/Semantics/LayoutFormatter.cs +++ b/src/CuiSharp/Semantics/LayoutFormatter.cs @@ -53,7 +53,7 @@ public static string Print(SemanticNode frame) { ArgumentNullException.ThrowIfNull(frame); var sb = new StringBuilder(); - sb.AppendLine(Header); + sb.Append(Header).Append('\n'); Walk(frame, 0); return sb.ToString().TrimEnd('\n'); @@ -69,7 +69,11 @@ void Walk(SemanticNode node, int indent) sb.Append(" extent:UNKNOWN(scrolled or virtualized content is not exposed)"); if (node.Children.Count > 0 && ObservedBounds(node) is { } bounds) + { sb.Append(" union≥[").Append(bounds).Append("] (lower-bound, recorded rects)"); + if (HasVerifiedRect(node) && Exceeds(bounds, node.Rect)) + sb.Append(" OVERFLOW(observed bounds)"); + } sb.Append('\n'); foreach (SemanticNode child in node.Children) Walk(child, indent + 1); @@ -100,6 +104,11 @@ private static string RectDoubt(SemanticNode node) => return acc; } + private static bool Exceeds(RectF content, RectF box) => + content.X < box.X - 0.5f || content.Y < box.Y - 0.5f + || content.X + content.W > box.X + box.W + 0.5f + || content.Y + content.H > box.Y + box.H + 0.5f; + private static RectF Expand(RectF a, RectF b) { float x = MathF.Min(a.X, b.X); diff --git a/src/CuiSharp/Semantics/WidgetRecorder.cs b/src/CuiSharp/Semantics/WidgetRecorder.cs index dc471ef..4b83185 100644 --- a/src/CuiSharp/Semantics/WidgetRecorder.cs +++ b/src/CuiSharp/Semantics/WidgetRecorder.cs @@ -136,11 +136,11 @@ internal static void Push(nint ui, string kind, string? id, uint? nativeId = nul /// A container opened under a markup id, which is the name most of them take. [MethodImpl(MethodImplOptions.AggressiveInlining)] - internal static void Push(nint ui, string kind, UiText id, uint? nativeId = null) + internal static void Push(nint ui, string kind, UiText id, uint? nativeId = null, bool deriveNamedId = false) { FrameRecorder? frame = _current; if (frame is null) return; - frame.Push(ui, kind, id, nativeId); + frame.Push(ui, kind, id, nativeId, deriveNamedId); } /// @@ -279,11 +279,14 @@ internal void Push(nint ui, string kind, string? id, uint? nativeId = null, bool _depth++; } - internal void Push(nint ui, string kind, UiText id, uint? nativeId = null) + internal void Push(nint ui, string kind, UiText id, uint? nativeId = null, bool deriveNamedId = false) { nint pointer = id.GetPointer(out int length); if (length > 0) - _pending.Add(new Pending(kind, pointer, length, null, nativeId ?? Native.LastId(ui), _depth, container: true)); + { + uint native = nativeId ?? (deriveNamedId ? Native.MakeId(ui, pointer) : Native.LastId(ui)); + _pending.Add(new Pending(kind, pointer, length, null, native, _depth, container: true)); + } _depth++; } diff --git a/src/CuiSharp/Ui/DataDisplay.g.cs b/src/CuiSharp/Ui/DataDisplay.g.cs index 9105428..3f44340 100644 --- a/src/CuiSharp/Ui/DataDisplay.g.cs +++ b/src/CuiSharp/Ui/DataDisplay.g.cs @@ -72,7 +72,7 @@ public LayoutScope VirtualList(UiText id, int count, float rowHeight, Size heigh Native.VirtualListBegin(ui.Handle, Utf8.Get(id), count, rowHeight, UiMarshal.ToNative(height), ref __first, ref __last); first = __first; last = __last; - return new LayoutScope(ui.Handle, &Native.VirtualListEnd, "VirtualList", id); + return new LayoutScope(ui.Handle, &Native.VirtualListEnd, "VirtualList", id, deriveNamedId: true); } /// cui_table_begin_ex diff --git a/src/CuiSharp/Ui/Layout.g.cs b/src/CuiSharp/Ui/Layout.g.cs index 094be6a..6f5b3c1 100644 --- a/src/CuiSharp/Ui/Layout.g.cs +++ b/src/CuiSharp/Ui/Layout.g.cs @@ -94,7 +94,7 @@ public LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default) var __opts = o.ToNative(); Native.SplitBegin(ui.Handle, Utf8.Get(id), ref *__ratio, in __opts); ratio = *__ratio; - return new LayoutScope(ui.Handle, &Native.SplitEnd, "Split", id); + return new LayoutScope(ui.Handle, &Native.SplitEnd, "Split", id, deriveNamedId: true); } /// cui_split_next diff --git a/src/CuiSharp/Ui/Ui.Scopes.cs b/src/CuiSharp/Ui/Ui.Scopes.cs index 95b2eae..9fe9f0e 100644 --- a/src/CuiSharp/Ui/Ui.Scopes.cs +++ b/src/CuiSharp/Ui/Ui.Scopes.cs @@ -32,11 +32,12 @@ internal LayoutScope(nint ui, delegate* end, string name, string? id /// The wrapper that opened it, for a recorded tree. /// The markup id the app gave it: the name a test finds it by. /// Explicit id for a container that sets last_id only when it closes. - internal LayoutScope(nint ui, delegate* end, string name, UiText id, uint? nativeId = null) + /// Use the same name-derived id as native rather than last_id. + internal LayoutScope(nint ui, delegate* end, string name, UiText id, uint? nativeId = null, bool deriveNamedId = false) { _ui = ui; _end = end; - WidgetRecorder.Push(ui, name, id, nativeId); + WidgetRecorder.Push(ui, name, id, nativeId, deriveNamedId); } /// Closes this container. Disposing the same instance again does nothing. @@ -61,10 +62,10 @@ internal OpenScope(nint ui, delegate* end, string name, string? id, _scope = open ? new LayoutScope(ui, end, name, id, nativeId, deriveNamedId) : default; } - internal OpenScope(nint ui, delegate* end, string name, UiText id, bool open, uint? nativeId = null) + internal OpenScope(nint ui, delegate* end, string name, UiText id, bool open, uint? nativeId = null, bool deriveNamedId = false) { Open = open; - _scope = open ? new LayoutScope(ui, end, name, id, nativeId) : default; + _scope = open ? new LayoutScope(ui, end, name, id, nativeId, deriveNamedId) : default; } /// Whether the native container opened and its body should be drawn. diff --git a/tools/bindgen.cs b/tools/bindgen.cs index 543af25..33393e3 100644 --- a/tools/bindgen.cs +++ b/tools/bindgen.cs @@ -2574,7 +2574,7 @@ private string ScopeNew(WidgetPlan widget, string result, string scopeReturn) // recomputes that hash only while recording, so an idle frame calls nothing new. string nativeId = !namedByMarkup && widget.Native.ReturnType.Spelling == "cui_id" ? $", nativeId: {result}" - : !namedByMarkup && _overrides.Scopes.TryGetValue(widget.Native.CName, out var scope) && scope.DeriveNamedId + : _overrides.Scopes.TryGetValue(widget.Native.CName, out var scope) && scope.DeriveNamedId ? ", deriveNamedId: true" : ""; return $"new {scopeReturn}(ui.Handle, &Native.{widget.End!.CsName}, \"{widget.Name}\", {id}{extra}{nativeId})"; From 5c05c72f7f27cb9f72b2840f3470ca5124892ee6 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 11:03:50 +0800 Subject: [PATCH 05/18] Add concise option constructors for hot layout and text fields (#9) ui.Row(new(gap: 12, align: Align.Center)), ui.Column(new(pad: 18, gap: 12, height: Size.Fill)), ui.Text("Live", new(size: 12, color: ...)), ui.Badge("Updating", new(Tone.Danger)) and ui.Card(new(pad: 16, gap: 12, dir: Dir.Column)) as partial-struct constructors on Box, Card, TextOpts and BadgeOpts. Constructors rather than optional-parameter overloads: no new candidate competes with the generated wrappers, so Row(), Row(default), Card(new()) and Text("x", default) keep their exact current binding, which ConvenienceCompilerTests pins with real-compiler symbol assertions. Layout parity, native byte parity, post-throw sibling placement and steady-state 0 B are asserted on real surfaces. Co-Authored-By: pi --- docs/API-SURFACE.txt | 4 + src/CuiSharp.Tests/ConvenienceApiTests.cs | 161 ++++++++++++++++++ .../ConvenienceCompilerTests.cs | 128 ++++++++++++++ src/CuiSharp/Ui/Ui.Convenience.cs | 69 ++++++++ 4 files changed, 362 insertions(+) create mode 100644 src/CuiSharp.Tests/ConvenienceCompilerTests.cs create mode 100644 src/CuiSharp/Ui/Ui.Convenience.cs diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 82ef736..c1d7f45 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -116,6 +116,7 @@ struct CuiSharp.AvatarOpts field String Status field UInt64 Image struct CuiSharp.BadgeOpts + ctor(Tone) field Boolean Dot field Boolean Solid field ControlSize Size @@ -154,6 +155,7 @@ class CuiSharp.BlameUiExtensions+$2E78AC6C4589E2D26F56ACB2C0F932B4 BlameResult Blame(UiText, ReadOnlySpan, ReadOnlySpan, ReadOnlySpan, BlameOpts) class CuiSharp.BlameUiExtensions+$2E78AC6C4589E2D26F56ACB2C0F932B4+$D152016828D0F2CB0A8B78500F4F70D3 struct CuiSharp.Box + ctor(Single, Single, Align, Size, Size) field Align Align field Boolean Clip field Boolean ScrollX @@ -269,6 +271,7 @@ class CuiSharp.CaptureUiExtensions+$2E78AC6C4589E2D26F56ACB2C0F932B4 Void SignatureClear(UiText) class CuiSharp.CaptureUiExtensions+$2E78AC6C4589E2D26F56ACB2C0F932B4+$D152016828D0F2CB0A8B78500F4F70D3 struct CuiSharp.Card + ctor(Single, Single, Dir, Size, Size) field Align Align field Boolean Hoverable field Boolean Muted @@ -5565,6 +5568,7 @@ struct CuiSharp.TextMetrics field Single LineHeight field Single Width struct CuiSharp.TextOpts + ctor(Single, Color) field Boolean NoWrap field Boolean Selectable field Boolean Tabular diff --git a/src/CuiSharp.Tests/ConvenienceApiTests.cs b/src/CuiSharp.Tests/ConvenienceApiTests.cs index 00c7b7e..5d74d82 100644 --- a/src/CuiSharp.Tests/ConvenienceApiTests.cs +++ b/src/CuiSharp.Tests/ConvenienceApiTests.cs @@ -135,6 +135,167 @@ public void ConvenienceControlsAllocateNothingInSteadyState() } } + [Fact] + public void ConciseLayoutOptionsMoveChildrenExactlyWhereTheCanonicalStructDoes() + { + using var app = TestApp.Start(new LayoutParityPage(), 480, 640); + + // Row gap: the space between children is the requested gap, whichever struct built it. + static float Gap(TestApp app, string first, string second) => + (int)Math.Round(app.FindButton(second).Rect.X + - (app.FindButton(first).Rect.X + app.FindButton(first).Rect.W)); + Assert.Equal(24, Gap(app, "gap canon a", "gap canon b")); + Assert.Equal(24, Gap(app, "gap concise a", "gap concise b")); + Assert.Equal(Gap(app, "gap canon a", "gap canon b"), Gap(app, "gap concise a", "gap concise b")); + + // Column pad: the first child starts one pad below where an unpadded stack would put it. + static float Drop(TestApp app, string from, string to) => + (int)Math.Round(app.FindButton(to).Rect.Y - (app.FindButton(from).Rect.Y + app.FindButton(from).Rect.H)); + float baseDrop = Drop(app, "pad base a", "pad base b"); + Assert.Equal(18 + baseDrop, Drop(app, "pad base b", "pad canon")); + Assert.Equal(Drop(app, "pad base b", "pad canon"), Drop(app, "pad base c", "pad concise")); + + // Card dir + gap: Dir.Row puts the children side by side twelve points apart. + var canonA = app.FindButton("card canon a").Rect; + var canonB = app.FindButton("card canon b").Rect; + var conciseA = app.FindButton("card concise a").Rect; + var conciseB = app.FindButton("card concise b").Rect; + // Labels differ per variant, so compare intra-card geometry, never absolute X. + Assert.Equal((int)Math.Round(canonB.X - (canonA.X + canonA.W)), (int)Math.Round(conciseB.X - (conciseA.X + conciseA.W))); + Assert.Equal(12, (int)Math.Round(conciseB.X - (conciseA.X + conciseA.W))); + Assert.Equal(conciseA.Y, conciseB.Y, 1); + // Without Dir.Row the same pad and gap stacks the children, so the axis is the ctor's doing. + var stackA = app.FindButton("card stack a").Rect; + var stackB = app.FindButton("card stack b").Rect; + Assert.True(stackB.Y > stackA.Y + stackA.H - 1); + + // Text size: the next widget sits where the sized line ends, identically for both spellings. + static float LineDrop(TestApp app, string text, string after) => + (int)Math.Round(app.FindButton(after).Rect.Y - app.Find("Text", text).Rect.Y); + Assert.Equal(LineDrop(app, "size canon", "after size canon"), LineDrop(app, "size concise", "after size concise")); + Assert.True(LineDrop(app, "size concise", "after size concise") + > LineDrop(app, "size base", "after size base")); + } + + [Fact] + public void ConciseConstructorsHandNativeExactlyWhatTheEquivalentInitializerDoes() + { + AssertSameBytes(new Box(gap: 12, pad: 4, align: Align.Center, width: Size.Px(240), height: Size.Px(100)).ToNative(), + new Box { Gap = 12, Pad = 4, Align = Align.Center, Width = Size.Px(240), Height = Size.Px(100) }.ToNative()); + AssertSameBytes(new Box().ToNative(), default(Box).ToNative()); + AssertSameBytes(new Card(pad: 16, gap: 12, dir: Dir.Row, width: Size.Px(300), height: Size.Px(200)).ToNative(), + new Card { Pad = 16, Gap = 12, Dir = Dir.Row, Width = Size.Px(300), Height = Size.Px(200) }.ToNative()); + AssertSameBytes(new Card().ToNative(), default(Card).ToNative()); + AssertSameBytes(new TextOpts(size: 12, color: Color.TextSecondary).ToNative(), + new TextOpts { Size = 12, Color = Color.TextSecondary }.ToNative()); + AssertSameBytes(new BadgeOpts(Tone.Danger).ToNative(), new BadgeOpts { Tone = Tone.Danger }.ToNative()); + AssertSameBytes(new BadgeOpts().ToNative(), default(BadgeOpts).ToNative()); + } + + [Fact] + public void AFrameContinuesInItsParentLayoutAfterAConciseContainerBodyThrows() + { + var page = new DoomedColumnPage(); + using var app = TestApp.Start(page, 400, 300); + Assert.True(page.Threw); + + // The sibling drew in the same frame after the throw. The doomed column's using closed on + // the way out, so the sibling sits in the root column below the padded box: at least the + // column's 24 bottom pad under the last child it drew. A leaked container would have + // adopted the sibling inside its padding, placing it right under "doomed". + var doomed = app.FindButton("doomed").Rect; + var sibling = app.FindButton("sibling").Rect; + Assert.True(sibling.Y > doomed.Y + doomed.H, + "the sibling drew back over the doomed container's last child"); + Assert.True(sibling.Y - (doomed.Y + doomed.H) >= 24, + $"the sibling sits only {sibling.Y - (doomed.Y + doomed.H):0} px under the doomed column's last child; a disposed pad-24 column owes at least its bottom padding"); + } + + [Fact] + public void ConciseContainersAllocateNothingInSteadyState() + { + using var app = TestApp.Start(new ConciseSteadyPage(), 400, 240); + app.Frame(5); + for (int i = 0; i < 10; i++) + { + app.Frame(); + Assert.Equal(0, app.Surface.LastFrame.AllocatedBytes); + } + } + + private static void AssertSameBytes(in T actual, in T expected) where T : struct => + Assert.True( + MemoryMarshal.AsBytes(MemoryMarshal.CreateReadOnlySpan(in actual, 1)) + .SequenceEqual(MemoryMarshal.AsBytes(MemoryMarshal.CreateReadOnlySpan(in expected, 1))), + $"{typeof(T).Name}: the concise ctor and the equivalent initializer do not hand native the same bytes"); + + private sealed class LayoutParityPage : Component + { + protected override void Draw(Ui ui) + { + using (ui.Column(new Box { Gap = 6 })) + { + using (ui.Row(new Box { Gap = 24 })) { ui.Button("gap canon a"); ui.Button("gap canon b"); } + using (ui.Row(new(gap: 24))) { ui.Button("gap concise a"); ui.Button("gap concise b"); } + + ui.Button("pad base a"); + ui.Button("pad base b"); + using (ui.Column(new Box { Pad = 18 })) ui.Button("pad canon"); + ui.Button("pad base c"); + using (ui.Column(new(pad: 18))) ui.Button("pad concise"); + + using (ui.Card(new Card { Pad = 16, Gap = 12, Dir = Dir.Row })) { ui.Button("card canon a"); ui.Button("card canon b"); } + using (ui.Card(new(pad: 16, gap: 12, dir: Dir.Row))) { ui.Button("card concise a"); ui.Button("card concise b"); } + using (ui.Card(new Card { Pad = 16, Gap = 12 })) { ui.Button("card stack a"); ui.Button("card stack b"); } + + ui.Text("size base"); + ui.Button("after size base"); + ui.Text("size canon", new TextOpts { Size = 28 }); + ui.Button("after size canon"); + ui.Text("size concise", new(size: 28)); + ui.Button("after size concise"); + } + } + } + + private sealed class DoomedColumnPage : Component + { + public bool Threw; + + protected override void Draw(Ui ui) + { + using (ui.Column(new Box { Gap = 6 })) + { + ui.Button("anchor"); + try + { + using var doomed = ui.Column(new(pad: 24)); + ui.Button("doomed"); + throw new ApplicationException(); + } + catch (ApplicationException) + { + Threw = true; + } + using (ui.Row(new(gap: 12))) ui.Button("sibling"); + } + } + } + + private sealed class ConciseSteadyPage : Component + { + protected override void Draw(Ui ui) + { + using (ui.Column(new(pad: 8, gap: 4, height: Size.Fill))) + { + using (ui.Row(new(gap: 12, align: Align.Center))) { ui.Button("one"); ui.Button("two"); } + using (ui.Card(new(pad: 16, gap: 12, dir: Dir.Column))) ui.Text("body"); + ui.Text("Live", new(size: 12, color: Color.TextSecondary)); + ui.Badge("Updating", new(Tone.Danger)); + } + } + } + private sealed class ValueSegments : Component { private static readonly string[] Items = ["Light", "Dark"]; diff --git a/src/CuiSharp.Tests/ConvenienceCompilerTests.cs b/src/CuiSharp.Tests/ConvenienceCompilerTests.cs new file mode 100644 index 0000000..980ae4e --- /dev/null +++ b/src/CuiSharp.Tests/ConvenienceCompilerTests.cs @@ -0,0 +1,128 @@ +using Microsoft.CodeAnalysis; +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; + +namespace CuiSharp.Tests; + +/// +/// Issue #9 chose option constructors for the concise authoring shapes. These snippets compile +/// consumer code with the real compiler: the concise shapes and the existing call shapes, +/// together with the symbol each one binds to, so a change that quietly redirects an existing +/// call to another member is a red test rather than a silent break. +/// +public class ConvenienceCompilerTests +{ + private static readonly MetadataReference[] References = + ((string)AppContext.GetData("TRUSTED_PLATFORM_ASSEMBLIES")!).Split(Path.PathSeparator) + .Append(typeof(Ui).Assembly.Location).Distinct() + .Select(path => MetadataReference.CreateFromFile(path)).ToArray(); + + [Fact] + public void TheConciseAuthoringShapesCompile() + { + AssertNoErrors(""" + class Page + { + void Draw(Ui ui) + { + using (ui.Row(new(gap: 12, align: Align.Center))) { ui.Button("Cancel"); ui.Button("Save"); } + using (ui.Column(new(pad: 18, gap: 12, height: Size.Fill))) ui.Text("note"); + ui.Text("Live", new(size: 12, color: Color.TextSecondary)); + ui.Badge("Updating", new(Tone.Danger)); + using (ui.Card(new(pad: 16, gap: 12, dir: Dir.Column))) ui.Text("body"); + } + } + """); + } + + [Fact] + public void TheConciseArgumentsBindToTheOptionConstructors() + { + AssertConstructorBinding("Box", ["Single", "Single", "Align", "Size", "Size"], + "void Draw(Ui ui) { using (ui.Row(new(gap: 12, align: Align.Center))) ui.Button(\"a\"); }"); + AssertConstructorBinding("Box", ["Single", "Single", "Align", "Size", "Size"], + "void Draw(Ui ui) { using (ui.Column(new(pad: 18, gap: 12, height: Size.Fill))) ui.Text(\"a\"); }"); + AssertConstructorBinding("Card", ["Single", "Single", "Dir", "Size", "Size"], + "void Draw(Ui ui) { using (ui.Card(new(pad: 16, gap: 12, dir: Dir.Column))) ui.Text(\"a\"); }"); + AssertConstructorBinding("TextOpts", ["Single", "Color"], + "void Draw(Ui ui) => ui.Text(\"Live\", new(size: 12, color: Color.TextSecondary));"); + AssertConstructorBinding("BadgeOpts", ["Tone"], + "void Draw(Ui ui) => ui.Badge(\"Updating\", new(Tone.Danger));"); + } + + [Fact] + public void EveryExistingCallShapeStillBindsToTheGeneratedWrapper() + { + AssertCallBinding("void Draw(Ui ui) { ui.Row(); }", ["Box"]); + AssertCallBinding("void Draw(Ui ui) { ui.Row(default); }", ["Box"]); + AssertCallBinding("void Draw(Ui ui) { ui.Row(new()); }", ["Box"]); + AssertCallBinding("void Draw(Ui ui) { ui.Row(new Box { Gap = 4 }); }", ["Box"]); + AssertCallBinding("void Draw(Ui ui) { ui.Column(); }", ["Box"]); + AssertCallBinding("void Draw(Ui ui) { ui.Card(new()); }", ["Card"]); + AssertCallBinding("void Draw(Ui ui) { ui.Text(\"x\"); }", ["UiText", "TextOpts"]); + AssertCallBinding("void Draw(Ui ui) { ui.Text(\"x\", default); }", ["UiText", "TextOpts"]); + AssertCallBinding("void Draw(Ui ui) { ui.Badge(\"x\", default); }", ["UiText", "BadgeOpts"]); + AssertCallBinding("void Draw(Ui ui) { ui.Badge(\"x\", new BadgeOpts()); }", ["UiText", "BadgeOpts"]); + } + + [Fact] + public void TheOptionsKeepTheirObjectInitializerApi() + { + AssertNoErrors(""" + class Page + { + void Draw(Ui ui) + { + using (ui.Row(new Box { Gap = 12, Id = "r" })) ui.Text("a"); + using (ui.Card(new Card { Pad = 16, Hoverable = true })) ui.Text("b"); + ui.Text("c", new TextOpts { Size = 12, NoWrap = true }); + ui.Badge("d", new BadgeOpts { Dot = true }); + } + } + """); + } + + private static void AssertNoErrors(string source) => Assert.Empty(Errors(source)); + + /// The single invocation in the snippet binds to a method with exactly these parameter types. + private static void AssertCallBinding(string member, string[] parameterTypes) + { + var (compilation, tree) = Compile("class Page { " + member + " }"); + Assert.Empty(Errors(compilation)); + var node = tree.GetRoot().DescendantNodes().OfType().Single(); + var symbol = (IMethodSymbol?)compilation.GetSemanticModel(tree).GetSymbolInfo(node).Symbol; + Assert.NotNull(symbol); + // A receiver-form extension call binds to the reduced form: the Ui receiver is the instance. + Assert.Equal(parameterTypes, symbol!.Parameters.Select(p => p.Type.Name).ToArray()); + } + + /// The snippet's new(...) binds to a constructor of this type with exactly these parameter types. + private static void AssertConstructorBinding(string owner, string[] parameterTypes, string member) + { + var (compilation, tree) = Compile("class Page { " + member + " }"); + Assert.Empty(Errors(compilation)); + var node = tree.GetRoot().DescendantNodes().OfType().Single(); + var symbol = (IMethodSymbol?)compilation.GetSemanticModel(tree).GetSymbolInfo(node).Symbol; + Assert.NotNull(symbol); + Assert.Equal(owner, symbol!.ContainingType.Name); + Assert.Equal(parameterTypes, symbol.Parameters.Select(p => p.Type.Name).ToArray()); + } + + private static Diagnostic[] Errors(string source) => Errors(Compile(source).compilation); + + private static Diagnostic[] Errors(Compilation compilation) + { + using var output = new MemoryStream(); + return compilation.Emit(output).Diagnostics + .Where(d => d.Severity == DiagnosticSeverity.Error).ToArray(); + } + + private static (Compilation compilation, SyntaxTree tree) Compile(string source) + { + var tree = CSharpSyntaxTree.ParseText( + "using System; using CuiSharp;\n" + source, + new CSharpParseOptions(LanguageVersion.CSharp14)); + return (CSharpCompilation.Create("Consumer", [tree], References, + new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary)), tree); + } +} diff --git a/src/CuiSharp/Ui/Ui.Convenience.cs b/src/CuiSharp/Ui/Ui.Convenience.cs new file mode 100644 index 0000000..d978ede --- /dev/null +++ b/src/CuiSharp/Ui/Ui.Convenience.cs @@ -0,0 +1,69 @@ +// Concise authoring for the hot fields of the layout and text option structs (issue #9). +// These are constructors, not a second set of method overloads: no new candidate competes with +// the generated wrappers, so Row(), Row(default), Card(new()) and Text("x", default) keep their +// exact current binding. ConvenienceCompilerTests pins that compatibility and the concise shapes. + +namespace CuiSharp; + +public partial struct Box +{ + /// + /// A box with its hot layout fields set: ui.Row(new(gap: 12, align: Align.Center)), + /// ui.Column(new(pad: 18, gap: 12, height: Size.Fill)). Every other field keeps its + /// native default, exactly as the equivalent object initializer. + /// + public Box(float gap = 0, float pad = 0, Align align = default, Size width = default, Size height = default) + : this() + { + Gap = gap; + Pad = pad; + Align = align; + Width = width; + Height = height; + } +} + +public partial struct Card +{ + /// + /// A card with its hot fields set: ui.Card(new(pad: 16, gap: 12, dir: Dir.Column)). + /// Every other field keeps its native default, exactly as the equivalent object initializer. + /// + public Card(float pad = 0, float gap = 0, Dir dir = default, Size width = default, Size height = default) + : this() + { + Pad = pad; + Gap = gap; + Dir = dir; + Width = width; + Height = height; + } +} + +public partial struct TextOpts +{ + /// + /// Text options with the two fields a call site reaches for most: + /// ui.Text("Live", new(size: 12, color: Color.TextSecondary)). Every other field keeps + /// its native default, exactly as the equivalent object initializer. + /// + public TextOpts(float size = 0, Color color = default) + : this() + { + Size = size; + Color = color; + } +} + +public partial struct BadgeOpts +{ + /// + /// A badge in one word: ui.Badge("Updating", new(Tone.Danger)). Every other field keeps + /// its native default, exactly as the equivalent object initializer. + /// + public BadgeOpts(Tone tone = default) + : this() + { + Tone = tone; + } +} From 0e7ce1464450eaa8f5ae58fc176bd841dfd01023 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 12:19:57 +0800 Subject: [PATCH 06/18] Strengthen task status consumer and rendering tests --- src/CuiSharp.Tests/DeveloperToolTests.cs | 46 +++++++++++++++++------- src/CuiSharp.Tests/EnumContractTests.cs | 3 ++ src/CuiSharp.Tests/UiCompilerTests.cs | 30 ++++++++++++++++ 3 files changed, 67 insertions(+), 12 deletions(-) diff --git a/src/CuiSharp.Tests/DeveloperToolTests.cs b/src/CuiSharp.Tests/DeveloperToolTests.cs index c45694b..69dbe20 100644 --- a/src/CuiSharp.Tests/DeveloperToolTests.cs +++ b/src/CuiSharp.Tests/DeveloperToolTests.cs @@ -96,28 +96,50 @@ public void AgentWidgetsRenderWithUnambiguousTaskStatusTypes() { // The plan/status widgets take CuiTaskStatus by name: the rename from TaskStatus // removed the collision with System.Threading.Tasks.TaskStatus, so this file uses - // both types unqualified (the BCL one below, the CUI one in the steps) and draws a - // real frame. EnumContractTests pins the old ambiguity itself; reverting the rename - // would stop either file from compiling. + // both types unqualified (the BCL one below, the CUI one in the steps). Each widget + // is measured against an empty frame: the renderer clears to an opaque background, + // so nonzero pixels prove nothing - only bytes the widget moved away from that + // baseline show it painted. Removing either call fails that widget's assertion. if (!OperatingSystem.IsWindows()) return; - using var surface = CuiSurface.Create(Width, Height); var steps = new PlanStep[] { new("Fetch sources", "3 results", CuiTaskStatus.Done), new("Draft the summary", null, CuiTaskStatus.Running), new("Check the citations", null, CuiTaskStatus.Pending), }; + // The BCL enum resolves unqualified beside the renamed CUI one. + Assert.NotEqual(TaskStatus.Canceled, TaskStatus.Created); + + var empty = RenderPage(static _ => { }); + var plan = RenderPage(ui => Assert.Equal(-1, ui.AgentPlan("plan", steps))); + var status = RenderPage(ui => + ui.AgentStatus("Reading report.pdf", new AgentStatusOpts { Status = CuiTaskStatus.Running, Seconds = 3 })); + + // The plan is a full-width card and the status a bordered pill: each covers far + // more than a thousand bytes. The threshold rejects noise without naming any + // glyph colour or pixel position, so theming and layout drift cannot flip it. + Assert.True(DifferingBytes(empty, plan) > 1000, "AgentPlan left the frame as empty as the baseline"); + Assert.True(DifferingBytes(empty, status) > 1000, "AgentStatus left the frame as empty as the baseline"); + } - var pixels = Frame(surface, ui => - { - Assert.Equal(-1, ui.AgentPlan("plan", steps)); - ui.AgentStatus("Reading report.pdf", new AgentStatusOpts { Status = CuiTaskStatus.Running, Seconds = 3 }); - // The BCL enum still resolves unqualified beside the renamed CUI one. - Assert.Equal(6, (int)TaskStatus.Canceled); - }); + /// One headless frame at the standard size, faults checked, returned as pixels. + private static byte[] RenderPage(DrawFn draw) + { + using var surface = CuiSurface.Create(Width, Height); + var pixels = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + surface.Draw(draw, pixels); + Assert.Empty(surface.Faults); + return pixels; + } - Assert.Contains(pixels, b => b != 0); + /// Bytes a frame moved away from the baseline, so "it painted" is observable. + private static int DifferingBytes(byte[] baseline, byte[] pixels) + { + var changed = 0; + for (var i = 0; i < pixels.Length; i++) + if (pixels[i] != baseline[i]) changed++; + return changed; } [Fact] diff --git a/src/CuiSharp.Tests/EnumContractTests.cs b/src/CuiSharp.Tests/EnumContractTests.cs index 185b6df..4dcb138 100644 --- a/src/CuiSharp.Tests/EnumContractTests.cs +++ b/src/CuiSharp.Tests/EnumContractTests.cs @@ -109,6 +109,9 @@ public void CuiTaskStatusCoexistsWithBclTaskStatus() // CuiSharp.TaskStatus used to collide with System.Threading.Tasks.TaskStatus: // with both usings in scope, an unqualified TaskStatus was ambiguous. The // binding is renamed CuiTaskStatus, so both names resolve unqualified here. + // This file's own namespace would hide the old collision (the enclosing + // CuiSharp namespace wins over a using), so UiCompilerTests pins the external + // consumer's CS0104; what is pinned here is the ABI and the types staying apart. Assert.NotEqual(typeof(CuiTaskStatus), typeof(TaskStatus)); // cui_task_status: the ABI numbers the C side casts to. diff --git a/src/CuiSharp.Tests/UiCompilerTests.cs b/src/CuiSharp.Tests/UiCompilerTests.cs index 02cb601..ef4a5d4 100644 --- a/src/CuiSharp.Tests/UiCompilerTests.cs +++ b/src/CuiSharp.Tests/UiCompilerTests.cs @@ -105,6 +105,36 @@ public void GeneratedOptionsRejectWrongTypes() AssertError("class Bad { void Draw(Ui ui) => ui.Button(\"x\", new ChartOpts()); }", "CS1503"); } + /// + /// Issue #10: the old CuiSharp.TaskStatus made an unqualified TaskStatus ambiguous with + /// System.Threading.Tasks.TaskStatus for every consumer that used both namespaces. Renamed + /// CuiTaskStatus, both resolve unqualified in one consumer file; restoring the old name + /// would make this snippet fail with CS0104 before either member could even be read. + /// + [Fact] + public void BothTaskStatusTypesResolveUnqualifiedInAConsumer() + { + // An unrelated namespace on purpose: inside CuiSharp's own hierarchy the enclosing + // namespace finds CuiSharp.TaskStatus before any using, so it hides the ambiguity + // instead of reporting it - a consumer is where the collision was observable. + var errors = Compile(""" + namespace Consumer + { + class Page + { + void Draw(Ui ui) + { + var bcl = TaskStatus.Canceled; + ui.AgentStatus("working", new AgentStatusOpts { Status = CuiTaskStatus.Running }); + ui.AgentPlan("plan", [new PlanStep("read", null, CuiTaskStatus.Done)]); + if (bcl == TaskStatus.RanToCompletion) ui.Text("done"); + } + } + } + """); + Assert.Empty(errors); + } + /// /// The published guide's own snippets, compiled. A reader pastes them, so a wrong shape in /// SKILL.md is a build error in someone else's project — and nothing else in the suite reads From 98adf88904e43e6e5bef6d8c1a4848963172ec34 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 12:27:00 +0800 Subject: [PATCH 07/18] Support file-based apps and install dotnet-cui --- src/CuiSharp.Tests/ToolResolutionTests.cs | 277 ++++++++++++++ src/CuiSharp.Tools/AppLocator.cs | 433 +++++++++++++++++++--- src/CuiSharp.Tools/Cli.cs | 8 +- src/CuiSharp.Tools/CuiSharp.Tools.csproj | 9 +- src/CuiSharp.Tools/Program.cs | 32 +- tools/verify-template.ps1 | 59 ++- 6 files changed, 759 insertions(+), 59 deletions(-) diff --git a/src/CuiSharp.Tests/ToolResolutionTests.cs b/src/CuiSharp.Tests/ToolResolutionTests.cs index ac2da2a..a7f710d 100644 --- a/src/CuiSharp.Tests/ToolResolutionTests.cs +++ b/src/CuiSharp.Tests/ToolResolutionTests.cs @@ -81,6 +81,156 @@ public void TheBuildTargetIsReadFromMSBuildRatherThanGuessed() Assert.Equal("", target.Rid); } + [Fact] + public void AMSBuildAnswerThatIsNotJSONIsReportedNotThrown() + { + // A JSON-shaped answer that fails to parse is a host or version problem; the user gets + // the raw text back, not a JsonException stack trace. + var error = Assert.Throws(() => AppLocator.ParseDescription("{ properties: broken", framework: null)); + Assert.Contains("Could not read MSBuild's answer", error.Message, StringComparison.Ordinal); + Assert.Contains("properties: broken", error.Message, StringComparison.Ordinal); + } + + [Theory] + // Valid JSON whose shape is not the shape MSBuild answers in: reading it would otherwise + // throw InvalidOperationException out of the JSON reader. + [InlineData("""{"Properties":[]}""", "`Properties` is Array")] + [InlineData("""{"Properties":{"TargetPath":42}}""", "`TargetPath` is Number")] + [InlineData("""[1,2]""", "not an object")] + public void AnAnswerOfTheWrongShapeIsReportedNotThrown(string report, string expected) + { + var error = Assert.Throws(() => AppLocator.ParseDescription(report, framework: null)); + Assert.Contains("Could not read MSBuild's answer", error.Message, StringComparison.Ordinal); + Assert.Contains(expected, error.Message, StringComparison.Ordinal); + } + + [Fact] + public void ALongUnreadableAnswerIsQuotedUpToItsBound() + { + string report = "{" + new string('x', 900); + + var error = Assert.Throws(() => AppLocator.ParseDescription(report, framework: null)); + + Assert.Contains("Could not read MSBuild's answer", error.Message, StringComparison.Ordinal); + Assert.True(error.Message.Length < 1000, $"the raw text was not bounded: {error.Message.Length} characters"); + } + + [Fact] + public void AnOversizedNameInAnAnswerDoesNotStretchTheDiagnosis() + { + // The answer is where the property names come from, so a hostile or broken host can put + // five thousand characters into one: the quoted name and the whole message are bounded, + // and what is left still says which property and what was wrong with it. + string name = new('p', 5000); + string report = @"{""Properties"":{""" + name + @""":42}}"; + + var error = Assert.Throws(() => AppLocator.ParseDescription(report, framework: null)); + + Assert.Contains("Could not read MSBuild's answer", error.Message, StringComparison.Ordinal); + Assert.Contains("is Number, not a string", error.Message, StringComparison.Ordinal); + // The reason is still readable end to end, which only holds because the name was cut. + Assert.Contains(new string('p', 60) + "…` is Number, not a string", error.Message, StringComparison.Ordinal); + Assert.True(error.Message.Length < 800, $"the diagnosis was not bounded: {error.Message.Length} characters"); + } + + [Fact] + public void ADrainFailureIsDiagnosedOnlyWhenAllOfItIsTheChildsOwn() + { + string[] arguments = ["build", "App.cs"]; + + // The child's own failure — its pipe broke, it went away — is something the user can act on. + var own = Assert.IsType( + AppLocator.DrainFailure("dotnet", arguments, new IOException("pipe closed"), cleanup: null)); + Assert.Contains("dotnet build App.cs", own.Message, StringComparison.Ordinal); + Assert.Contains("pipe closed", own.Message, StringComparison.Ordinal); + + // A bug mixed in with the child's failure is still a bug: nothing to report in its place, + // so Run rethrows the aggregate with its stack instead of dressing it up as a build + // problem. + Assert.Null(AppLocator.DrainFailure("dotnet", arguments, + new AggregateException(new IOException("pipe closed"), new NotSupportedException("a bug here")), + cleanup: null)); + + // An aggregate that names nothing proves nothing. + Assert.Null(AppLocator.DrainFailure("dotnet", arguments, new AggregateException(), cleanup: null)); + } + + [Fact] + public void AFailingCleanupIsToldAlongsideTheFailureItFollowed() + { + string[] arguments = ["build", "App.cs"]; + Exception cleanup = new AggregateException( + new System.ComponentModel.Win32Exception(5, "a descendant would not die")); + + // The child's own failure, and the stop failing too: one diagnosis naming both, because a + // process left running is the user's problem and the build report is their clue. + var both = Assert.IsType( + AppLocator.DrainFailure("dotnet", arguments, new IOException("pipe closed"), cleanup)); + Assert.Contains("pipe closed", both.Message, StringComparison.Ordinal); + Assert.Contains("a descendant would not die", both.Message, StringComparison.Ordinal); + + // A bug of this tool's, and a failed stop: the bug keeps its place at the front and the + // cleanup travels with it, so neither is lost and neither is quietly relabelled. + Exception bug = new NotSupportedException("a bug here"); + var pair = Assert.IsType( + AppLocator.DrainFailure("dotnet", arguments, bug, cleanup)); + Assert.Same(bug, pair.InnerExceptions[0]); + Assert.Same(cleanup, pair.InnerExceptions[1]); + + // A failure of either kind whose long message comes from the child is still quoted to a + // bound, cleanup included. + var bounded = Assert.IsType(AppLocator.DrainFailure("dotnet", arguments, + new IOException(new string('y', 5000)), new IOException(new string('x', 5000)))); + Assert.Contains("Stopping it failed too", bounded.Message, StringComparison.Ordinal); + Assert.Contains(new string('y', 400) + "…", bounded.Message, StringComparison.Ordinal); + Assert.Contains(new string('x', 400) + "…", bounded.Message, StringComparison.Ordinal); + Assert.DoesNotContain(new string('y', 401), bounded.Message, StringComparison.Ordinal); + Assert.DoesNotContain(new string('x', 401), bounded.Message, StringComparison.Ordinal); + Assert.True( + bounded.Message.Length < 1000, + $"the failure was not bounded: {bounded.Message.Length} characters"); + } + + [Fact] + public void ASoleProjectIsTheAppEvenWhenItsNameSaysTests() + { + // One project in a folder is the app whoever it is called: "Contests" and "Latest" contain + // the letters of a test-project name without being one, and there is nothing to choose. + using var folder = new Scratch(); + string only = folder.Project("Contests"); + + Assert.Equal(only, AppLocator.FindProject(folder.Path)); + } + + [Fact] + public void AShebangAndACommentHeaderDoNotHideTheDirectives() + { + Assert.True(AppLocator.HasFileBasedDirective( + ["#!/usr/bin/env dotnet", "#:property TargetFramework=net10.0", "System.Console.WriteLine();"])); + Assert.True(AppLocator.HasFileBasedDirective( + ["/* one app,", " one file */", "#:package CuiSharp@*"])); + Assert.True(AppLocator.HasFileBasedDirective( + ["#!/usr/bin/env dotnet", "// a note", "/* done */", "", "#:sdk Microsoft.NET.Sdk"])); + + // The same header over ordinary code is still not a file-based app, and code before the + // header ends the search: a directive below real statements is not the SDK's to read. + Assert.False(AppLocator.HasFileBasedDirective(["#!/usr/bin/env dotnet", "System.Console.WriteLine();"])); + Assert.False(AppLocator.HasFileBasedDirective(["System.Console.WriteLine();", "#:package CuiSharp@*"])); + Assert.False(AppLocator.HasFileBasedDirective(["/* unterminated", "#:package CuiSharp@*"])); + } + + [Fact] + public void AShebangAppIsChosenFromAFolderOfSources() + { + using var folder = new Scratch(); + folder.Source("Helpers", "public static class Helpers { public static void Help() { } }"); + string app = folder.Source( + "App", + "#!/usr/bin/env dotnet\n#:property TargetFramework=net10.0\nSystem.Console.WriteLine();\n"); + + Assert.Equal(app, AppLocator.FindProject(folder.Path)); + } + [Fact] public void AnAppThatWasNeverBuiltIsReportedInsteadOfRunningSomethingElse() { @@ -95,6 +245,126 @@ public void AnAppThatWasNeverBuiltIsReportedInsteadOfRunningSomethingElse() Assert.Contains("Never.dll", error.Message, StringComparison.Ordinal); } + [Fact] + public void ANamedCsFileIsTheAppEvenBesideAProject() + { + using var folder = new Scratch(); + folder.Project("Library"); + string source = folder.Source("Chosen"); + + Assert.Equal(source, AppLocator.FindProject(source)); + } + + [Fact] + public void AProjectFolderWinsOverLooseSources() + { + using var folder = new Scratch(); + string project = folder.Project("Shop"); + folder.Source("Program"); + + Assert.Equal(project, AppLocator.FindProject(folder.Path)); + } + + [Fact] + public void TheOnlySourceFileInAProjectlessFolderIsTheApp() + { + using var folder = new Scratch(); + string source = folder.Source("Program"); + + Assert.Equal(source, AppLocator.FindProject(folder.Path)); + } + + [Fact] + public void ADirectiveNamesTheAppWhenSeveralSourcesShareTheFolder() + { + using var folder = new Scratch(); + folder.Source("Helpers", "public static class Helpers { public static void Help() { } }"); + string app = folder.Source("demo_app", "#:package CuiSharp@*\nSystem.Console.WriteLine();"); + + Assert.Equal(app, AppLocator.FindProject(folder.Path)); + } + + [Fact] + public void SeveralSourcesWithoutDirectivesAreNotGuessed() + { + using var folder = new Scratch(); + folder.Source("Alpha"); + folder.Source("Beta"); + + var error = Assert.Throws(() => AppLocator.FindProject(folder.Path)); + Assert.Contains("Alpha.cs", error.Message, StringComparison.Ordinal); + Assert.Contains("Beta.cs", error.Message, StringComparison.Ordinal); + Assert.Contains("--project", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void AFileThatIsNotAnAppIsReportedNotCrashed() + { + using var folder = new Scratch(); + string notes = Path.Combine(folder.Path, "notes.txt"); + File.WriteAllText(notes, "hello"); + + var error = Assert.Throws(() => AppLocator.FindProject(notes)); + Assert.Contains("notes.txt", error.Message, StringComparison.Ordinal); + Assert.Contains(".csproj", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void APathThatDoesNotExistIsReportedNotCrashed() + { + string missing = Path.Combine(Path.GetTempPath(), "cui-tool-tests", "no-such-place-" + Guid.NewGuid().ToString("N")); + + var error = Assert.Throws(() => AppLocator.FindProject(missing)); + Assert.Contains("neither a file nor a folder", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void AFileBasedAppBuildsAndItsTargetPathIsVerified() + { + // The real thing, not a stub: a package-free file-based app built by the same SDK the + // tool would use, resolved through the same build-and-describe path a user takes. + using var folder = new Scratch(); + string source = folder.Source("CuiFileApp" + Guid.NewGuid().ToString("N"), "System.Console.WriteLine();"); + + string built = AppLocator.Resolve(source, noBuild: false, TextWriter.Null)!; + + Assert.EndsWith(".dll", built, StringComparison.Ordinal); + Assert.True(File.Exists(built), $"the build did not produce {built}"); + Assert.True( + File.Exists(Path.ChangeExtension(built, ".runtimeconfig.json")), + "the resolved target is not a runnable app"); + + // The evaluation the --no-build path uses must find the same target without building. + Assert.Equal(built, AppLocator.Resolve(source, noBuild: true, TextWriter.Null)); + } + + [Fact] + public void AFileBasedAppToldNotToBuildIsReportedInsteadOfBuilt() + { + using var folder = new Scratch(); + string source = folder.Source("NeverBuilt" + Guid.NewGuid().ToString("N"), "System.Console.WriteLine();"); + + var error = Assert.Throws(() => AppLocator.Resolve(source, noBuild: true, TextWriter.Null)); + Assert.Contains("has not been built", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void TheSourceFoldersGlobalJsonSelectsTheSdk() + { + // The tool runs the SDK from the app's folder, so a global.json beside the app applies + // even though the tool process itself sits somewhere else. An SDK nobody has cannot be + // satisfied, and the version in the failure is the proof the right global.json was read. + using var folder = new Scratch(); + folder.Source("Program"); + File.WriteAllText( + Path.Combine(folder.Path, "global.json"), + """{"sdk":{"version":"99.0.0"}}"""); + + var error = Assert.Throws(() => + AppLocator.Resolve(folder.Path, noBuild: false, TextWriter.Null)); + Assert.Contains("99.0.0", error.Message, StringComparison.Ordinal); + } + /// A temporary folder of synthetic projects, deleted with the test. private sealed class Scratch : IDisposable { @@ -113,6 +383,13 @@ internal string Project(string name) return file; } + internal string Source(string name, string content = "System.Console.WriteLine();") + { + string file = System.IO.Path.Combine(Path, name + ".cs"); + File.WriteAllText(file, content); + return file; + } + public void Dispose() { try diff --git a/src/CuiSharp.Tools/AppLocator.cs b/src/CuiSharp.Tools/AppLocator.cs index 74a6628..ef8bb53 100644 --- a/src/CuiSharp.Tools/AppLocator.cs +++ b/src/CuiSharp.Tools/AppLocator.cs @@ -1,4 +1,5 @@ using System.Diagnostics; +using System.Text; using System.Text.Json; namespace CuiSharp.Tools; @@ -19,6 +20,14 @@ namespace CuiSharp.Tools; /// a runtimeconfig.json under bin/Release — ran the wrong app whenever a dependency /// was newer than the app, and could not tell a RID-specific folder from an ordinary one. /// +/// +/// A file-based app (a bare .cs) is found the way dotnet run finds one — its +/// #:directive header read past any shebang and comments — and is evaluated with +/// dotnet build … -getProperty:…; dotnet msbuild cannot read it because a .cs file +/// is not XML (MSB4025). Both helper processes run with the source directory as their working +/// directory, so a global.json or NuGet.config beside the app selects the SDK and +/// feeds the restore, exactly as it would for the developer. +/// /// internal static class AppLocator { @@ -35,19 +44,31 @@ internal sealed record BuildRequest( string? BaseOutputPath = null); /// The assembly to run, or null when there is no project here. - /// A project file, or the directory to look in. + /// A project file, a file-based .cs app, or the directory to look in. /// Use the last build instead of building. /// Where a failed build's own report goes. /// Configuration, framework and output directory for the build. internal static string? Resolve(string? path, bool noBuild, TextWriter log, BuildRequest? request = null) { request ??= new BuildRequest(); - string directory = Path.GetFullPath(path ?? Directory.GetCurrentDirectory()); + string directory; + try + { + directory = Path.GetFullPath(path ?? Directory.GetCurrentDirectory()); + } + catch (Exception failure) when (failure is ArgumentException or IOException or UnauthorizedAccessException) + { + throw new ToolException($"`{path}` is not a path this tool can look in: {failure.Message}"); + } + string? project = FindProject(directory); if (project is null) return null; if (!noBuild) Build(project, request, log); + // --no-build must stay honest: Describe only evaluates, so on a .cs app it reads the + // TargetPath the SDK *would* use without building anything, and a missing file below is + // the real "never built" answer rather than a secretly rebuilt one. BuildTarget target = Describe(project, request); if (target.TargetPath.Length == 0) throw new ToolException($"`{Path.GetFileName(project)}` did not say what it builds (`TargetPath` is empty)."); @@ -69,56 +90,194 @@ internal sealed record BuildRequest( return target.TargetPath; } - /// A project file in , preferring the only one there. - internal static string? FindProject(string directory) + /// + /// The app at : a named .csproj or .cs, or in a directory + /// the project there — the only one, or the one that is not a test project when several sit + /// together — or, with no project at all, the file-based app. Ambiguity and unknown files are + /// reported, never guessed. + /// + internal static string? FindProject(string path) { - if (File.Exists(directory) && directory.EndsWith(".csproj", StringComparison.OrdinalIgnoreCase)) - return directory; + if (File.Exists(path)) return ExplicitProject(path); + if (!Directory.Exists(path)) + { + throw new ToolException( + $"`{path}` is neither a file nor a folder. Name a .csproj, a file-based .cs app, " + + "or the folder that holds one."); + } - string[] projects = Directory.GetFiles(directory, "*.csproj"); - if (projects.Length == 0) return null; + // A project wins over loose sources: a folder with a .csproj *is* a project, whatever .cs + // files sit beside it. + string[] projects = ListFiles(path, "*.csproj"); if (projects.Length == 1) return projects[0]; + if (projects.Length > 1) + { + // More than one project: a test project is never the app, and the name is all this has + // to go on. Picking one of two app projects silently can drive the wrong program, so + // the tool asks instead. + string[] candidates = + [ + .. projects.Where(p => !Path.GetFileNameWithoutExtension(p) + .Contains("Tests", StringComparison.OrdinalIgnoreCase)), + ]; + if (candidates.Length == 1) return candidates[0]; + if (candidates.Length > 1) + { + throw new ToolException( + $"More than one project could be the app: {string.Join(", ", candidates.Select(Path.GetFileName))}. " + + "Name one with --project."); + } - // A test project is never the app. Everything else is a real question: picking one of two - // app projects silently can drive the wrong program, so the tool asks instead. - string[] candidates = - [ - .. projects.Where(p => !Path.GetFileNameWithoutExtension(p) - .Contains("Tests", StringComparison.OrdinalIgnoreCase)), - ]; - if (candidates.Length == 1) return candidates[0]; + throw new ToolException( + $"`{path}` holds only test projects ({string.Join(", ", projects.Select(Path.GetFileName))}). " + + "Name the app with --project."); + } + + // No project: a file-based app is the .cs with file directives (`#:package`, `#:sdk`, + // `#:property`), or — in a folder kept to one source — the only .cs there. Anything + // looser is a question, not a guess. + string[] sources = ListFiles(path, "*.cs"); + if (sources.Length == 0) return null; + string[] withDirectives = [.. sources.Where(IsFileBasedApp)]; + string[] appCandidates = withDirectives.Length > 0 ? withDirectives : sources; + if (appCandidates.Length == 1) return appCandidates[0]; + + throw new ToolException( + $"More than one C# file could be the app: {string.Join(", ", appCandidates.Select(Path.GetFileName))}. " + + "Name the one to run with --project."); + } + + /// A file the caller named, checked so a wrong one is a message rather than a crash. + private static string ExplicitProject(string path) + { + if (path.EndsWith(".csproj", StringComparison.OrdinalIgnoreCase) + || path.EndsWith(".cs", StringComparison.OrdinalIgnoreCase)) + return path; throw new ToolException( - $"More than one project could be the app: {string.Join(", ", candidates.Select(Path.GetFileName))}. " + - "Name one with --project."); + $"`{Path.GetFileName(path)}` is not something the tool can run. Name a .csproj, a " + + "file-based .cs app, or the folder that holds one."); + } + + /// + /// Lists a folder, turning an unreadable one into a message about that folder. Silently + /// returning fewer files here would quietly change which app the tool picks. + /// + private static string[] ListFiles(string directory, string pattern) + { + try + { + return Directory.GetFiles(directory, pattern); + } + catch (Exception failure) when (failure is IOException or UnauthorizedAccessException or ArgumentException) + { + throw new ToolException($"Could not look for an app in `{directory}`: {failure.Message}"); + } + } + + /// + /// Whether a source file opens with file-based-app directives before any code, reading them + /// past the header a real file-based app carries: a #! shebang line, // lines and + /// /* … */ blocks all come before the first #:directive. + /// + private static bool IsFileBasedApp(string file) + { + try + { + return HasFileBasedDirective(File.ReadLines(file)); + } + catch (Exception failure) when (failure is IOException or UnauthorizedAccessException) + { + // Guessing here would decide the app on the strength of a file it could not read. + throw new ToolException( + $"Could not read `{Path.GetFileName(file)}` to see whether it is the app: {failure.Message}"); + } + } + + /// The directive test on lines, so the header handling is testable without a disk. + internal static bool HasFileBasedDirective(IEnumerable lines) + { + bool insideBlockComment = false; + foreach (string raw in lines) + { + string text = raw; + while (true) + { + if (insideBlockComment) + { + int closed = text.IndexOf("*/", StringComparison.Ordinal); + if (closed < 0) break; // the whole line is still comment + text = text[(closed + 2)..]; + insideBlockComment = false; + continue; + } + + text = text.TrimStart(); + // A shebang or a line comment says nothing: it is the line, not the first content. + if (text.Length == 0 + || text.StartsWith("#!", StringComparison.Ordinal) + || text.StartsWith("//", StringComparison.Ordinal)) + { + break; + } + + if (text.StartsWith("/*", StringComparison.Ordinal)) + { + int closed = text.IndexOf("*/", 2, StringComparison.Ordinal); + if (closed < 0) + { + insideBlockComment = true; + break; + } + + text = text[(closed + 2)..]; + continue; + } + + // First real content: a file-based app names itself with a directive here. + return text.StartsWith("#:package", StringComparison.OrdinalIgnoreCase) + || text.StartsWith("#:sdk", StringComparison.OrdinalIgnoreCase) + || text.StartsWith("#:property", StringComparison.OrdinalIgnoreCase); + } + } + + return false; } /// What a project builds, as MSBuild itself evaluates it. internal sealed record BuildTarget(string TargetPath, string Framework, string Frameworks, string Rid); /// - /// Asks MSBuild where the app lands. Evaluation only, so this answers for a project that was - /// built by something else — a CI build, a publish, an IDE. + /// Asks the SDK where the app lands. Evaluation only, so this answers for a project that was + /// built by something else — a CI build, a publish, an IDE — and never builds anything itself. + /// A .cs file is evaluated with dotnet build -getProperty:; dotnet msbuild + /// refuses it (MSB4025) because a .cs file is not XML. /// internal static BuildTarget Describe(string project, BuildRequest request) { - List arguments = + bool fileBased = project.EndsWith(".cs", StringComparison.OrdinalIgnoreCase); + List arguments = fileBased + ? ["build", project, "-c", request.Configuration, "--nologo"] + : ["msbuild", project, "-nologo", $"-p:Configuration={request.Configuration}"]; + arguments.AddRange( [ - "msbuild", project, "-nologo", "-getProperty:TargetPath", "-getProperty:TargetFramework", "-getProperty:TargetFrameworks", "-getProperty:RuntimeIdentifier", - $"-p:Configuration={request.Configuration}", - ]; + ]); if (request.Framework is not null) arguments.Add($"-p:TargetFramework={request.Framework}"); if (request.BaseOutputPath is not null) arguments.Add($"-p:BaseOutputPath={request.BaseOutputPath}"); - (int exit, string report, string complaints) = Run("dotnet", arguments); + (int exit, string report, string complaints) = Run("dotnet", arguments, SourceDirectory(project)); if (exit != 0) { + // MSBuild reports some failures (and the SDK resolution error of a bad global.json) + // on stdout, some on stderr: the user has to see both, not whichever pipe happened + // to carry the one line that explains the failure. throw new ToolException( - $"Could not read what `{Path.GetFileName(project)}` builds:{Environment.NewLine}{complaints.Trim()}"); + $"Could not read what `{Path.GetFileName(project)}` builds:" + + $"{Environment.NewLine}{complaints.Trim()}{Environment.NewLine}{report.Trim()}"); } return ParseDescription(report, request.Framework); @@ -131,20 +290,21 @@ internal static BuildTarget Describe(string project, BuildRequest request) internal static BuildTarget ParseDescription(string report, string? framework) { string text = report.Trim(); - if (!text.StartsWith('{')) + if (!text.StartsWith('{') && !text.StartsWith('[')) { - // A single property: the value, or nothing when MSBuild had none to give. + // A single property: the value, or nothing when MSBuild had none to give. Anything + // JSON-shaped goes to the reader, which reports a shape it cannot use. return new BuildTarget(text, framework ?? "", "", ""); } - var properties = new Dictionary(StringComparer.Ordinal); - using (JsonDocument document = JsonDocument.Parse(text)) + Dictionary properties; + try { - if (document.RootElement.TryGetProperty("Properties", out JsonElement found)) - { - foreach (JsonProperty property in found.EnumerateObject()) - properties[property.Name] = property.Value.GetString() ?? ""; - } + properties = ReadProperties(text); + } + catch (JsonException malformed) + { + throw new ToolException(UnreadableAnswer(text, malformed.Message)); } string value(string name) => properties.GetValueOrDefault(name, ""); @@ -159,6 +319,77 @@ internal static BuildTarget ParseDescription(string report, string? framework) return new BuildTarget(value("TargetPath"), resolved, frameworks, value("RuntimeIdentifier")); } + /// + /// The Properties object of MSBuild's JSON answer. Anything shaped differently — an + /// array where the object belongs, a number where a string belongs — is a host or version + /// problem and is answered with the text that proves it, not with a framework exception. + /// + private static Dictionary ReadProperties(string text) + { + var properties = new Dictionary(StringComparer.Ordinal); + using JsonDocument document = JsonDocument.Parse(text); + if (document.RootElement.ValueKind != JsonValueKind.Object) + { + throw new ToolException(UnreadableAnswer( + text, $"the answer is {document.RootElement.ValueKind}, not an object")); + } + + if (!document.RootElement.TryGetProperty("Properties", out JsonElement found)) return properties; + if (found.ValueKind != JsonValueKind.Object) + { + throw new ToolException(UnreadableAnswer( + text, $"`Properties` is {found.ValueKind}, not an object of properties")); + } + + foreach (JsonProperty property in found.EnumerateObject()) + { + if (property.Value.ValueKind is not (JsonValueKind.String or JsonValueKind.Null)) + { + throw new ToolException(UnreadableAnswer( + text, $"`{ShortName(property.Name)}` is {property.Value.ValueKind}, not a string")); + } + + properties[property.Name] = property.Value.GetString() ?? ""; + } + + return properties; + } + + /// + /// The one failure wording for an answer this tool cannot read. Both halves of it come from + /// outside — the quoted text and any name quoted inside the reason — so the whole diagnostic + /// carries one budget: the reason is what the user acts on, the quote is only evidence. + /// + private static string UnreadableAnswer(string text, string why) + { + string diagnostic = + $"Could not read MSBuild's answer about what the project builds ({why}):" + + $"{Environment.NewLine}" + + ShortText(text); + return diagnostic.Length > DiagnosticBudget ? diagnostic[..DiagnosticBudget] + "…" : diagnostic; + } + + /// + /// How much of a broken answer gets quoted, how long the whole message may be, and how long a + /// name quoted inside it may be. + /// + private const int ExcerptBudget = 400; + private const int DiagnosticBudget = 640; + private const int NameBudget = 60; + + /// + /// A name out of a broken answer, quoted up to a bound. It identifies the property, and past + /// that bound it is just bytes the answer happened to contain. + /// + private static string ShortName(string name) => ShortText(name, NameBudget); + + /// + /// Text from outside this tool — a build report, one exception's message — quoted up to a + /// bound, so no one can decide how long the tool's own diagnosis is. + /// + private static string ShortText(string text, int budget = ExcerptBudget) => + text.Length > budget ? text[..budget] + "…" : text; + /// /// Builds the project in Release. A quiet build says nothing on success, so the report is kept /// only for the failure message. @@ -178,7 +409,7 @@ private static void Build(string project, BuildRequest request, TextWriter log) // Both outputs are drained at the same time: reading one to the end before the other // deadlocks a child that fills the pipe it is not being read from, which is exactly what a // failing build does. - (int exit, string report, string complaints) = Run("dotnet", arguments); + (int exit, string report, string complaints) = Run("dotnet", arguments, SourceDirectory(project)); if (exit != 0) { log.Write(report); @@ -187,25 +418,137 @@ private static void Build(string project, BuildRequest request, TextWriter log) } } - /// Runs a helper process, draining both of its outputs at once. - private static (int Exit, string Out, string Error) Run(string host, IReadOnlyList arguments) + /// The folder the SDK should be run from: the one holding the app's configuration. + private static string SourceDirectory(string project) => + Path.GetDirectoryName(Path.GetFullPath(project)) ?? Directory.GetCurrentDirectory(); + + /// + /// Runs a helper process, draining both of its outputs at once. The outputs are read as UTF-8 + /// whatever this console's code page is: a build report with a non-ASCII path or message must + /// arrive intact, on Windows especially. + /// + private static (int Exit, string Out, string Error) Run(string host, IReadOnlyList arguments, string? workingDirectory = null) { var info = new ProcessStartInfo(host) { RedirectStandardOutput = true, RedirectStandardError = true, UseShellExecute = false, + StandardOutputEncoding = Encoding.UTF8, + StandardErrorEncoding = Encoding.UTF8, }; + if (workingDirectory is not null) info.WorkingDirectory = workingDirectory; foreach (string argument in arguments) info.ArgumentList.Add(argument); - using Process? process = Process.Start(info); - if (process is null) throw new ToolException($"Could not run `{host} {string.Join(' ', arguments)}`."); + // A helper that cannot start or whose pipes break is a diagnosis the user can act on — + // "dotnet is not on the PATH", a deleted folder — not a stack trace. Only the IO-shaped + // failures are translated; anything else is a bug and stays visible. + Process process; + try + { + process = Process.Start(info) ?? throw new InvalidOperationException($"`{host}` produced no process."); + } + catch (Exception failure) when (failure is System.ComponentModel.Win32Exception or InvalidOperationException) + { + throw new ToolException($"Could not run `{host} {string.Join(' ', arguments)}`: {failure.Message}"); + } + + using (process) + { + Task output = process.StandardOutput.ReadToEndAsync(); + Task errors = process.StandardError.ReadToEndAsync(); + try + { + Task.WaitAll(output, errors); + process.WaitForExit(); + } + catch (Exception failure) + { + // The child is stopped first, whatever the failure turns out to be: disposing a + // Process does not stop it, and a hung dotnet must not outlive the message. What + // stopping failed with, if anything, is carried alongside the original rather + // than instead of it — the failure that started this is the one to act on. + Exception? cleanup = StopHelper(process); - Task output = process.StandardOutput.ReadToEndAsync(); - Task errors = process.StandardError.ReadToEndAsync(); - Task.WaitAll(output, errors); - process.WaitForExit(); + if (DrainFailure(host, arguments, failure, cleanup) is { } broken) throw broken; + + // Not the child's doing, and nothing left over: this tool's own bug, rethrown so + // the stack that says where survives. + throw; + } + + return (process.ExitCode, output.Result, errors.Result); + } + } + + /// + /// Stops a helper process that outlived its output and hands back what stopping failed with, + /// if anything. The caller is already failing for another reason: swallowing here would hide + /// a child that is still running, and letting it fly would replace the failure that matters. + /// + private static Exception? StopHelper(Process process) + { + try + { + process.Kill(entireProcessTree: true); + return null; + } + catch (Exception gone) + when (gone is InvalidOperationException + or System.ComponentModel.Win32Exception + or NotSupportedException + or AggregateException) + { + // Exactly what Kill is documented to throw for: nothing to stop, the process could + // not be terminated, it is not a local process, or not every descendant went down + // with it. The try holds the Kill and nothing else, so nothing of ours hides here. + return gone; + } + } + + /// + /// What a helper whose output could not be read ends up throwing, once the attempt to stop it + /// is accounted for — or null when the caller must rethrow the failure itself because it is + /// not the helper's doing. + /// + /// Every failure the child's own: a saying so, with the + /// cleanup failure named too when stopping the child failed, since a stray process is the + /// user's problem now. + /// A bug among them and no cleanup failure: null, so the caller's bare rethrow keeps the + /// stack that explains the bug. + /// A bug and a failed cleanup: an carrying both, with + /// the bug first — neither story is dropped and neither replaces the other. + /// + /// + internal static Exception? DrainFailure( + string host, IReadOnlyList arguments, Exception failure, Exception? cleanup) + { + string? diagnosis = DrainDiagnosis(host, arguments, failure); + if (diagnosis is not null) + { + return new ToolException(cleanup is null + ? diagnosis + : diagnosis + $" Stopping it failed too: {ShortText(cleanup.Message)}"); + } + + return cleanup is null ? null : new AggregateException(failure, cleanup); + } + + /// + /// The user-actionable wording when every one of a helper's failures is the helper's own — its + /// pipe breaking, the child going away — and null when one of them is not, which means this + /// tool broke and dressing the failure up as a build problem would hide where. An aggregate + /// that names nothing proves nothing. + /// + private static string? DrainDiagnosis(string host, IReadOnlyList arguments, Exception failure) + { + Exception[] inners = failure is AggregateException aggregate + ? [.. aggregate.Flatten().InnerExceptions] + : [failure]; + if (inners.Length == 0 || inners.Any(e => e is not (IOException or InvalidOperationException))) + return null; - return (process.ExitCode, output.Result, errors.Result); + return $"`{host} {string.Join(' ', arguments)}` broke while its output was read: " + + $"{ShortText(inners[0].Message)}"; } } diff --git a/src/CuiSharp.Tools/Cli.cs b/src/CuiSharp.Tools/Cli.cs index d50ed16..0f31ac4 100644 --- a/src/CuiSharp.Tools/Cli.cs +++ b/src/CuiSharp.Tools/Cli.cs @@ -18,6 +18,7 @@ namespace CuiSharp.Tools; /// dotnet cui type Milk # type into the focused field /// dotnet cui png shot.png # the frame as a PNG /// dotnet cui tree --project src/App # another app +/// dotnet cui tree --project app.cs # a file-based app /// dotnet cui tree --app bin/App.exe # a published build, not a rebuild /// dotnet cui tree -- --page=2 # arguments for the app itself /// @@ -47,7 +48,8 @@ pulse [count] draw frames without printing the tree (answers: count, heap heap, working-set and private bytes Options: - -p, --project the app to run (a project file or its directory). Default: here + -p, --project the app to run: a directory, a .csproj, or a file-based .cs + app. Default: here --app run a published build instead of building --framework the target framework, when the project has more than one --frames draw this many frames before the command @@ -74,7 +76,9 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text ? (exe, options.AppArgs) : AppLocator.Resolve(options.Project, options.NoBuild, error, new(Framework: options.Framework)) is { } assembly ? ("dotnet", [assembly, .. options.AppArgs]) - : throw new ToolException($"No .NET app found at \"{options.Project ?? Directory.GetCurrentDirectory()}\"."); + : throw new ToolException( + $"No app found at \"{options.Project ?? Directory.GetCurrentDirectory()}\": " + + "no .csproj and no file-based .cs app there."); // The app's own output is the app's own business: it goes where a shell would send // the app's diagnostics, and the protocol on stdout stays clean. diff --git a/src/CuiSharp.Tools/CuiSharp.Tools.csproj b/src/CuiSharp.Tools/CuiSharp.Tools.csproj index 3963432..50e5adc 100644 --- a/src/CuiSharp.Tools/CuiSharp.Tools.csproj +++ b/src/CuiSharp.Tools/CuiSharp.Tools.csproj @@ -4,8 +4,7 @@ Exe net10.0 CuiSharp.Tools - + CuiSharp.Tools enable enable @@ -15,7 +14,11 @@ in Directory.Build.props, so it has to be turned back on here. --> true true - cui + + dotnet-cui CuiSharp.Tools CuiSharp.Tools - drive a CuiSharp app from the command line Screenshot a CuiSharp app, print the controls of its last frame, and click or type into it - without a window, an agent or a test project. diff --git a/src/CuiSharp.Tools/Program.cs b/src/CuiSharp.Tools/Program.cs index 23fdc4f..6a7f7ae 100644 --- a/src/CuiSharp.Tools/Program.cs +++ b/src/CuiSharp.Tools/Program.cs @@ -1,14 +1,30 @@ using System.Text; using CuiSharp.Tools; -// A redirected stdout is read by a tool, a script or an agent, so it is UTF-8 — the encoding the -// protocol is defined in. `Console.Out` follows the Windows console code page instead, which turns -// a label like "Ctrl+Tab · theme" into bytes that are not UTF-8 at all. A terminal keeps its own -// encoding, because a person is looking at it. -if (Console.IsOutputRedirected) +// Everything this tool prints — protocol payloads, labels, build reports — is UTF-8, and the +// Windows legacy code page turns a label like "Ctrl+Tab · theme" into mojibake for both a person +// and an agent. A real console is fixed at the source by switching its output encoding; that +// throws IOException when the handle is not a console (redirected, piped, or detached), which is +// exactly when the explicit writers below are needed. Both paths end in UTF-8, and the writers +// are disposed on exit so nothing buffered is lost. +try { - using var stdout = new StreamWriter(Console.OpenStandardOutput(), new UTF8Encoding(false)) { AutoFlush = true }; - return Cli.Run(args, stdout, Console.Error, Console.In); + Console.OutputEncoding = Encoding.UTF8; } +catch (IOException) +{ + // Not a console handle: the redirected writers below carry the encoding instead. +} + +TextWriter output = Console.Out; +TextWriter error = Console.Error; +using StreamWriter? redirectedOut = Console.IsOutputRedirected + ? new StreamWriter(Console.OpenStandardOutput(), new UTF8Encoding(false)) { AutoFlush = true } + : null; +using StreamWriter? redirectedErr = Console.IsErrorRedirected + ? new StreamWriter(Console.OpenStandardError(), new UTF8Encoding(false)) { AutoFlush = true } + : null; +if (redirectedOut is not null) output = redirectedOut; +if (redirectedErr is not null) error = redirectedErr; -return Cli.Run(args, Console.Out, Console.Error, Console.In); +return Cli.Run(args, output, error, Console.In); diff --git a/tools/verify-template.ps1 b/tools/verify-template.ps1 index 8c0fcb7..c3e8393 100644 --- a/tools/verify-template.ps1 +++ b/tools/verify-template.ps1 @@ -12,7 +12,9 @@ 1. pack CuiSharp and CuiSharp.Templates into a temporary folder 2. install the template, `dotnet new cui-app`, and point the app at that folder 3. build, test, and (unless -NoPublish) publish a NativeAOT single file - 4. generate cui-mini, run its named .cs file and check its button through the headless protocol + 4. generate cui-mini, run its named .cs file and check its button through the headless protocol, + then drive the same .cs file through the built tool, and install the packed tool into an + isolated --tool-path folder to check the command name it ships 5. on Windows, observe the file-based app's native window and close it -Keep leaves the generated app and packages in place for inspection. @@ -195,6 +197,33 @@ internal static class AnalyzerProbe $lines = ($tree -split "`n" | Select-Object -Skip 1 -First 4 | ForEach-Object { $_.Trim() }) Write-Host (' ' + ($lines -join ' / ')) -ForegroundColor Green + # The packaged command must be `dotnet-cui`: `dotnet cui ` works by the dotnet CLI + # running a program named dotnet-cui, so a pack that ships `cui` leaves the documented verb + # unresolved. Isolated: a local pack, an install into $work, and a PATH prepend that is + # undone right after — nothing global is touched. + Step 'checking the installed tool package' + & dotnet pack (Join-Path $PSScriptRoot '../src/CuiSharp.Tools/CuiSharp.Tools.csproj') -c $Configuration -o $packages -p:Version=$version | Out-Null + if ($LASTEXITCODE -ne 0) { throw 'packing CuiSharp.Tools failed' } + $toolPath = Join-Path $work 'installed-tool' + & dotnet tool install CuiSharp.Tools --version $version --tool-path $toolPath --add-source $packages | Out-Null + if ($LASTEXITCODE -ne 0) { throw 'installing CuiSharp.Tools into the isolated tool path failed' } + $shimName = if ($IsWindows) { 'dotnet-cui.exe' } else { 'dotnet-cui' } + $shim = Join-Path $toolPath $shimName + if (-not (Test-Path $shim)) { + throw "the installed tool must ship a $shimName command; found: $((Get-ChildItem $toolPath).Name -join ', ')" + } + $shimHelp = (& $shim --help | Out-String) + if ($LASTEXITCODE -ne 0 -or $shimHelp -notmatch 'dotnet cui ') { throw "the installed command did not print its usage: $shimHelp" } + $savedPath = $env:PATH + try { + $env:PATH = "$toolPath$([System.IO.Path]::PathSeparator)$savedPath" + $dispatchHelp = (& dotnet cui --help | Out-String) + if ($LASTEXITCODE -ne 0 -or $dispatchHelp -notmatch 'dotnet cui ') { + throw "dotnet cui did not dispatch to the installed tool: $dispatchHelp" + } + } finally { $env:PATH = $savedPath } + Write-Host " $shimName installed, and dotnet cui resolves through it" -ForegroundColor Green + Step 'generating and running a file-based app' $defaultMini = Join-Path $work 'demo1' & dotnet new cui-mini -o $defaultMini | Out-Null @@ -247,6 +276,34 @@ internal static class AnalyzerProbe $mini.Dispose() } + # The template's other promise: `dotnet cui` drives that same file with no csproj anywhere. + # This is the whole tool path on a file-based app — Release build through the SDK's file + # handling, a headless launch, one command — checked on the app the template actually ships. + Step 'driving the file-based app with dotnet cui' + $fileToolInfo = [System.Diagnostics.ProcessStartInfo]::new($cui) + foreach ($argument in @('tree', '--project', (Join-Path $miniApp $miniFile), '--frames', '2')) { $fileToolInfo.ArgumentList.Add($argument) } + $fileToolInfo.UseShellExecute = $false + $fileToolInfo.RedirectStandardOutput = $true + $fileToolInfo.RedirectStandardError = $true + $fileToolInfo.StandardOutputEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $fileTool = [System.Diagnostics.Process]::Start($fileToolInfo) + try { + $stdout = $fileTool.StandardOutput.ReadToEndAsync() + $stderr = $fileTool.StandardError.ReadToEndAsync() + if (-not $fileTool.WaitForExit(300000)) { throw 'dotnet cui tree on the file-based app timed out after 5 minutes' } + $tree = $stdout.GetAwaiter().GetResult() + $errors = $stderr.GetAwaiter().GetResult() + if ($fileTool.ExitCode -ne 0) { throw "dotnet cui tree on $miniFile failed: $errors" } + if ($tree -notmatch 'Frame' -or $tree -notmatch 'Increment') { + throw "dotnet cui did not see the file-based app's button: $tree" + } + Write-Host " dotnet cui built and drove $miniFile without a project file" -ForegroundColor Green + } + finally { + if (-not $fileTool.HasExited) { $fileTool.Kill($true); $fileTool.WaitForExit() } + $fileTool.Dispose() + } + # The template's promise is one binary, and a publish that leaves a .pdb beside it is how that # breaks quietly: the app still runs, and the folder has two things in it. DebugType=none is # what suppresses the native symbols on every platform: .pdb, .dbg or .dSYM. From 9b992adf0ef281ff37d7fdacaf68f1f9b36b4304 Mon Sep 17 00:00:00 2001 From: contributor Date: Wed, 11 Nov 2026 10:41:16 +0800 Subject: [PATCH 08/18] Add ChartNormalizer: baseline rules for Index100/Percent with explicit rejection Normalization rescales chart series against their first finite nonzero sample. A requested mode rejects nonfinite samples, a baseline-less series, out-of-range results and unknown enum values rather than draw a line that silently lies; None keeps the old pass-through copy. Allocation-free like SeriesDecimator. --- docs/API-SURFACE.txt | 7 + src/CuiSharp.Tests/ChartNormalizerTests.cs | 192 +++++++++++++++++++++ src/CuiSharp/Charting/ChartNormalizer.cs | 124 +++++++++++++ 3 files changed, 323 insertions(+) create mode 100644 src/CuiSharp.Tests/ChartNormalizerTests.cs create mode 100644 src/CuiSharp/Charting/ChartNormalizer.cs diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index c1d7f45..3a133a8 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -298,6 +298,9 @@ struct CuiSharp.CarouselOpts field Single AutoAdvance field Single Gap field Single Height +class CuiSharp.ChartNormalizer + static Int32 Normalize(ReadOnlySpan, Span, NormalizeMode) + static Single FindBaseline(ReadOnlySpan) struct CuiSharp.ChartOpts field Boolean Area field Boolean NoGrid @@ -4849,6 +4852,10 @@ struct CuiSharp.NodeView field Single X field Single Y field Single Zoom +enum CuiSharp.NormalizeMode + Index100 + None + Percent struct CuiSharp.NowPlayingOpts field Boolean Compact field Size Width diff --git a/src/CuiSharp.Tests/ChartNormalizerTests.cs b/src/CuiSharp.Tests/ChartNormalizerTests.cs new file mode 100644 index 0000000..2f82446 --- /dev/null +++ b/src/CuiSharp.Tests/ChartNormalizerTests.cs @@ -0,0 +1,192 @@ +namespace CuiSharp.Tests; + +/// Normalization rescales a series against its baseline without touching the source. +public class ChartNormalizerTests +{ + [Fact] + public void Index100OfABaseHundredSeriesIsTheIdentity() + { + // Rebased to its own first value, a series already starting at 100 is unchanged — + // the double pass must not smear it with rounding. + float[] source = [100f, 125f, 150f, 200f]; + var destination = new float[4]; + + float[] expected = [100f, 125f, 150f, 200f]; + + int n = ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); + + Assert.Equal(4, n); + Assert.Equal(expected, destination); + } + + [Fact] + public void PercentSubtractsTheBaselineSoZeroMeansUnchanged() + { + float[] source = [100f, 125f, 150f, 200f]; + var destination = new float[4]; + + float[] expected = [0f, 25f, 50f, 100f]; + + ChartNormalizer.Normalize(source, destination, NormalizeMode.Percent); + + Assert.Equal(expected, destination); + } + + [Fact] + public void TheBaselineSkipsLeadingZeros() + { + float[] source = [0f, 0f, 50f, 25f]; + var destination = new float[4]; + + float[] expected = [0f, 0f, 100f, 50f]; + + ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); + + Assert.Equal(expected, destination); + } + + [Fact] + public void ANegativeBaselineScalesHonestlyAndInvertsDirection() + { + // -200 against -100 is twice the magnitude (200), +50 against -100 is -50: + // the arithmetic is the documented one even where the semantics need a footnote. + float[] source = [-100f, -200f, 50f]; + var destination = new float[3]; + + float[] expected = [100f, 200f, -50f]; + + ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); + + Assert.Equal(expected, destination); + } + + [Fact] + public void AFailedNormalizationIsAnArgumentErrorNotARawSeries() + { + var destination = new float[8]; + + // A series of zeros has no baseline; passing it through raw would mix unnormalized + // units into a chart of normalized siblings. + Assert.Throws(() => ChartNormalizer.Normalize([0f, 0f, 0f], destination, NormalizeMode.Index100)); + Assert.Throws(() => ChartNormalizer.Normalize([float.NaN, 5f], destination, NormalizeMode.Percent)); + Assert.Throws(() => ChartNormalizer.Normalize([float.PositiveInfinity], destination, NormalizeMode.Index100)); + } + + [Fact] + public void NaNInTheMiddleOfASeriesIsRejectedNotImpliedAsAGap() + { + float[] source = [100f, float.NaN, 150f]; + var destination = new float[3]; + + Assert.Throws(() => ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100)); + } + + [Fact] + public void AResultBeyondTheFiniteRangeIsRejected() + { + // 3.4e38 / 1e-30 * 100 fits a double and overflows a float: the contract is that no + // nonfinite number reaches the chart, whichever side the range is left from. + float[] source = [1e-30f, float.MaxValue]; + var destination = new float[2]; + + Assert.Throws(() => ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100)); + } + + [Fact] + public void TheSourceSeriesIsNeverMutated() + { + float[] source = [100f, 125f, 150f, 200f]; + float[] snapshot = [.. source]; + + ChartNormalizer.Normalize(source, new float[4], NormalizeMode.Index100); + ChartNormalizer.Normalize(source, new float[4], NormalizeMode.Percent); + + Assert.Equal(snapshot, source); + } + + [Fact] + public void NoneCopiesEverythingIncludingWhatNormalizationRejects() + { + // Opting out must be exactly the old pass-through: a NaN-only-plus-values series + // copies bit for bit, because None asks for no behavior at all. + float[] source = [1f, float.NaN, 3f]; + var destination = new float[3]; + + int n = ChartNormalizer.Normalize(source, destination, NormalizeMode.None); + + Assert.Equal(3, n); + Assert.Equal(1f, destination[0]); + Assert.True(float.IsNaN(destination[1])); + Assert.Equal(3f, destination[2]); + } + + [Fact] + public void TheEmptySeriesWritesNothingInEveryMode() + { + float[] destination = [1f, 2f, 3f]; + float[] unchanged = [1f, 2f, 3f]; + + foreach (NormalizeMode mode in Enum.GetValues()) + Assert.Equal(0, ChartNormalizer.Normalize(ReadOnlySpan.Empty, destination, mode)); + + // "Nothing to draw" must not scribble on the caller's buffer either. + Assert.Equal(unchanged, destination); + } + + [Fact] + public void RejectsAnUndersizedDestination() + { + Assert.Throws(() => ChartNormalizer.Normalize([1f, 2f, 3f], new float[2], NormalizeMode.None)); + Assert.Throws(() => ChartNormalizer.Normalize([1f, 2f, 3f], new float[2], NormalizeMode.Index100)); + } + + [Fact] + public void FindBaselineReportsTheNumberTheScaleWillUse() + { + Assert.Equal(7.5f, ChartNormalizer.FindBaseline([0f, 0f, 7.5f, -3f])); + Assert.Throws(() => ChartNormalizer.FindBaseline([])); + Assert.Throws(() => ChartNormalizer.FindBaseline([0f, 0f])); + } + + [Fact] + public void TheScaleIsOneDoublePassNotTwoFloatRounds() + { + // 1/3 in float then times 100 in float drifts off (double)1/3*100 rounded once; + // the exact expected value pins which arithmetic actually ran. + float[] source = [3f, 1f]; + var destination = new float[2]; + + ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); + + Assert.Equal(100f, destination[0]); + Assert.Equal((float)((double)1 / 3 * 100), destination[1]); + } + + [Fact] + public void AnUnknownModeIsRejectedRatherThanDrawnAsPercent() + { + // The enum is int-backed and crosses an option struct, so an unset or future value + // must fail loudly instead of quietly scaling like Percent. + var destination = new float[4]; + Assert.Throws(() => ChartNormalizer.Normalize([100f, 125f], destination, (NormalizeMode)42)); + Assert.Throws(() => ChartNormalizer.Normalize(ReadOnlySpan.Empty, destination, (NormalizeMode)42)); + Assert.Throws(() => ChartNormalizer.Normalize([100f, 125f], destination, (NormalizeMode)(-1))); + } + + [Fact] + public void NormalizingIntoAReusedBufferAllocatesNothing() + { + var source = new float[10_000]; + var destination = new float[source.Length]; + for (int i = 0; i < source.Length; i++) source[i] = 1f + i * 1e-4f; + + ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); // warm the paths + + long before = GC.GetAllocatedBytesForCurrentThread(); + for (int pass = 0; pass < 100; pass++) + ChartNormalizer.Normalize(source, destination, NormalizeMode.Index100); + long allocated = GC.GetAllocatedBytesForCurrentThread() - before; + + Assert.Equal(0, allocated); + } +} diff --git a/src/CuiSharp/Charting/ChartNormalizer.cs b/src/CuiSharp/Charting/ChartNormalizer.cs new file mode 100644 index 0000000..ebeb8ea --- /dev/null +++ b/src/CuiSharp/Charting/ChartNormalizer.cs @@ -0,0 +1,124 @@ +namespace CuiSharp; + +/// +/// How a chart scales each series against its own baseline, so series of very different +/// magnitudes can be compared by shape. A baseline is the first finite nonzero sample of +/// the series; see for the exact rules. +/// +public enum NormalizeMode +{ + /// No scaling: the samples are drawn as they are. + None, + + /// Rebase to 100 at the baseline, like a total-return index: 100 is "unchanged". + Index100, + + /// Percent change from the baseline: 0 is "unchanged". + Percent, +} + +/// +/// Rescales a series against its baseline so several series share a comparable y range. +/// +/// The baseline is the first finite nonzero sample. A negative baseline is allowed and +/// inverts the scale (-200 against -100 is Index100 200, not 50). The math is done in +/// double and rounded to float once, so scaling does not compound rounding. +/// +/// +/// A requested normalization rejects samples it cannot scale: NaN or infinity anywhere in +/// the series, a series with no finite nonzero baseline (all zero, say), and results beyond +/// the finite float range all throw rather +/// than draw a line that silently lies. NaN is not a gap marker; the renderer has no gap +/// concept. +/// +/// +/// Copy-based and allocation-free like : the source is never +/// mutated, results go into a caller-owned destination, and reuse keeps a frame at 0 B. +/// The empty series is not an error — it means "nothing to draw" and returns 0. +/// keeps the old pass-through behavior, validation +/// included, so opting out opts out of everything. +/// +/// +public static class ChartNormalizer +{ + /// + /// The baseline a normalization would use: the first nonzero sample of + /// . + /// + /// The window to scale, already clipped to the points that will draw. + /// + /// The span is empty, holds a nonfinite value at or before the baseline, or holds no + /// nonzero value at all. + /// + public static float FindBaseline(ReadOnlySpan values) + { + foreach (float v in values) + { + if (!float.IsFinite(v)) + throw new ArgumentException( + "a normalized series must not contain NaN or infinity; NaN is not a gap marker", nameof(values)); + if (v != 0f) + return v; + } + + throw values.IsEmpty + ? new ArgumentException("an empty series has no baseline", nameof(values)) + : new ArgumentException("a normalized series needs a finite nonzero baseline; a series of zeros has none", nameof(values)); + } + + /// + /// Writes scaled against their baseline into + /// and returns the number of points written. + /// + /// + /// The samples to scale, already clipped to the points that will draw. Never mutated. + /// + /// + /// Output with room for one point per sample. Contents are unspecified if a throw + /// interrupts the pass. + /// + /// How to scale. is a plain copy. + /// + /// is too small, is not a + /// value, or is not + /// and the series has no finite nonzero baseline, holds + /// NaN or infinity, or produces a result beyond the finite float range. + /// + public static int Normalize(ReadOnlySpan values, Span destination, NormalizeMode mode) + { + if (mode is not (NormalizeMode.None or NormalizeMode.Index100 or NormalizeMode.Percent)) + throw new ArgumentOutOfRangeException(nameof(mode), mode, "not a NormalizeMode value"); + if (values.IsEmpty) return 0; + if (destination.Length < values.Length) + throw new ArgumentException("destination needs one point per source value", nameof(destination)); + + if (mode == NormalizeMode.None) + { + // Opting out opts out of everything, validation included: this is exactly what + // an unnormalized chart received before normalization existed. + values.CopyTo(destination); + return values.Length; + } + + double baseline = FindBaseline(values); + for (int i = 0; i < values.Length; i++) + { + float v = values[i]; + if (!float.IsFinite(v)) + throw new ArgumentException( + "a normalized series must not contain NaN or infinity; NaN is not a gap marker", nameof(values)); + + // double throughout: a float chain would round at the divide and again at the + // multiply, and Index100 would fail to be the identity it promises at b = 100. + double ratio = (double)v / baseline; + double result = mode == NormalizeMode.Index100 ? ratio * 100.0 : (ratio - 1.0) * 100.0; + if (!double.IsFinite(result) || result > float.MaxValue || result < float.MinValue) + throw new ArgumentException( + $"scaling {v} against baseline {baseline:F6} leaves the finite range", nameof(values)); + + destination[i] = (float)result; + } + + return values.Length; + } +} From 020dc901221659bcbe344f93a0e3514616f5e298 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 12:30:31 +0800 Subject: [PATCH 09/18] Add chart baseline normalization modes --- bindings/overrides.json | 5 + docs/API-SURFACE.txt | 1 + .../ChartNormalizeIntegrationTests.cs | 347 ++++++++++++++++++ src/CuiSharp/Charting/ChartNormalizer.cs | 59 ++- src/CuiSharp/Ui/Options.g.cs | 2 + src/CuiSharp/Ui/Ui.cs | 47 ++- 6 files changed, 449 insertions(+), 12 deletions(-) create mode 100644 src/CuiSharp.Tests/ChartNormalizeIntegrationTests.cs diff --git a/bindings/overrides.json b/bindings/overrides.json index 036b703..eecc40b 100644 --- a/bindings/overrides.json +++ b/bindings/overrides.json @@ -1277,6 +1277,11 @@ "name": "MaxPoints", "type": "int", "why": "Upper bound on drawn points. 0 derives twice the viewport width; longer series are min/max decimated into the frame arena." + }, + { + "name": "Normalize", + "type": "NormalizeMode", + "why": "Scale each series against its own first finite nonzero sample so series of different magnitudes compare by shape; see ChartNormalizer." } ] }, diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 3a133a8..7cf9bad 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -308,6 +308,7 @@ struct CuiSharp.ChartOpts field Boolean Smooth field Boolean Stacked field Int32 MaxPoints + field NormalizeMode Normalize field Single Height field Single Max field Single Min diff --git a/src/CuiSharp.Tests/ChartNormalizeIntegrationTests.cs b/src/CuiSharp.Tests/ChartNormalizeIntegrationTests.cs new file mode 100644 index 0000000..c2f2bc9 --- /dev/null +++ b/src/CuiSharp.Tests/ChartNormalizeIntegrationTests.cs @@ -0,0 +1,347 @@ +namespace CuiSharp.Tests; + +/// +/// Normalization inside the real chart path. Pixel identity is the claim: a normalized +/// render must be indistinguishable from drawing the same numbers normalized by hand, +/// and the wrapper's validation must fail the frame on samples decimation would hide. +/// +public class ChartNormalizeIntegrationTests +{ + private static bool NeedsNative => OperatingSystem.IsWindows(); + + [Fact] + public void NormalizedSeriesDrawsPixelIdenticalToTheSameSeriesNormalizedByHand() + { + if (!NeedsNative) return; + + // [200,250,300,400] rebased to its first value is [100,125,150,200] exactly; + // the two charts occupy equal boxes in one frame, so identical pixels is the + // strongest statement that Index100 introduced no arithmetic or placement drift. + float[] handNormalized = [100f, 125f, 150f, 200f]; + float[] source = [200f, 250f, 300f, 400f]; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", handNormalized, Chart(NormalizeMode.None)), + ui => ui.LineChart("twin", source, Chart(NormalizeMode.Index100))); + } + + [Fact] + public void PercentOnAFixedRangeDrawsPixelIdenticalToItsHandNormalizedTwin() + { + if (!NeedsNative) return; + + // The same fixed y range is interpreted in normalized units on both charts, + // because Min/Max reach native untouched: that is the documented contract, and + // pixel identity over a clamped range is what proves it. + float[] handNormalized = [0f, 25f, 50f, 100f]; + float[] source = [200f, 250f, 300f, 400f]; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", handNormalized, new ChartOpts + { + Height = 200, + Width = Size.Px(280), + Min = -20f, + Max = 120f, + }), + ui => ui.LineChart("twin", source, new ChartOpts + { + Height = 200, + Width = Size.Px(280), + Min = -20f, + Max = 120f, + Normalize = NormalizeMode.Percent, + })); + } + + [Fact] + public void EachSeriesScalesAgainstItsOwnBaseline() + { + if (!NeedsNative) return; + + // A $0.06T cap and a $5.1T cap on one chart: rebased independently, both are + // [100,150], so the normalized pair must draw exactly like the hand-normalized + // pair - same shapes, same palette, one y axis. + var source = new Series[] + { + new() { Values = [100f, 150f] }, + new() { Values = [1000f, 1500f] }, + }; + var handNormalized = new Series[] + { + new() { Values = [100f, 150f] }, + new() { Values = [100f, 150f] }, + }; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", handNormalized, Chart(NormalizeMode.None)), + ui => ui.LineChart("twin", source, Chart(NormalizeMode.Index100))); + } + + [Fact] + public void TheBaselineComesFromTheCountWindowNotTheWholeArray() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(640, 240); + var pixels = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + + // The window Count keeps is [0,0,0]; the nonzero values live beyond it. A baseline + // read off the whole array would normalize happily - which would draw numbers the + // Count window never contained - so the frame must fail instead. + var series = new Series[] { new() { Values = [0f, 0f, 0f, 100f, 125f], Count = 3 } }; + + surface.BeginFrame(); + var outer = Assert.Throws(() => + surface.Ui.LineChart("window", series, new ChartOpts { Normalize = NormalizeMode.Index100 })); + surface.EndFrame(); + surface.Render(pixels); + Assert.Contains("baseline", outer.Message, StringComparison.Ordinal); + } + + [Fact] + public void ACountWindowDrawsItsOwnNormalizedWindow() + { + if (!NeedsNative) return; + + // [0,100,125] against its baseline 100 is [0,100,125]: three points, identity. + // The twin draws those three raw; a whole-array (four-point) normalization could + // not match it pixel for pixel. + var source = new Series[] { new() { Values = [0f, 100f, 125f, 150f], Count = 3 } }; + var handNormalized = new Series[] { new() { Values = [0f, 100f, 125f] } }; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", handNormalized, Chart(NormalizeMode.None)), + ui => ui.LineChart("twin", source, Chart(NormalizeMode.Index100))); + } + + [Fact] + public void ANaNNTheDecimatorWouldHaveHiddenStillFailsTheFrame() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(320, 200); + + // One NaN among a thousand samples, with MaxPoints 8: the min/max pairs drop it + // and the chart would draw a clean line over a hole. Validation sees the source, + // not the decimated residue, so the hole cannot be laundered by decimation. + var feed = new float[1000]; + for (int i = 0; i < feed.Length; i++) feed[i] = 100f + i * 0.1f; + feed[500] = float.NaN; + + surface.BeginFrame(); + var outer = Assert.Throws(() => surface.Ui.LineChart("feed", feed, new ChartOpts + { + Height = 120, + MaxPoints = 8, + Normalize = NormalizeMode.Index100, + })); + surface.EndFrame(); + Assert.Contains("gap", outer.Message, StringComparison.Ordinal); + } + + [Fact] + public void AResultBeyondTheFloatRangeFailsTheFrame() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(320, 200); + + float[] source = [1e-30f, float.MaxValue]; + surface.BeginFrame(); + Assert.Throws(() => surface.Ui.LineChart("overflow", source, new ChartOpts + { + Height = 120, + Normalize = NormalizeMode.Index100, + })); + surface.EndFrame(); + } + + [Fact] + public void AnUnknownModeFailsTheFrameEvenOnAnEmptySeries() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(320, 200); + + // The enum is int-backed and arrives through an option struct; an unset or future + // value must not take the "draws nothing" shortcut nor any other mode's math. + surface.BeginFrame(); + Assert.Throws(() => surface.Ui.LineChart("empty", + ReadOnlySpan.Empty, new ChartOpts { Normalize = (NormalizeMode)42 })); + surface.EndFrame(); + + surface.BeginFrame(); + Assert.Throws(() => surface.Ui.LineChart("series", + new Series[] { new() { Values = [1f, 2f] } }, new ChartOpts { Normalize = (NormalizeMode)(-1) })); + surface.EndFrame(); + } + + [Fact] + public void NormalizingALiveFeedStillAllocatesNothingPerFrame() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(320, 200); + var pixels = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + + // The same million-sample shape the unnormalized 0 B benchmark draws, normalized: + // validation runs over the source and the scale over the few hundred retained + // points, both in the arena, so the steady state must stay 0 B. + var feed = new float[1_000_000]; + for (int i = 0; i < feed.Length; i++) feed[i] = 1f + MathF.Sin(i * 0.001f); + var series = new Series[] { new() { Values = feed } }; + + void Frame() + { + surface.BeginFrame(); + surface.Ui.LineChart("feed", series, new ChartOpts { Height = 120, Normalize = NormalizeMode.Index100 }); + surface.EndFrame(); + surface.Render(pixels); + } + + for (int i = 0; i < 10; i++) Frame(); + + long before = GC.GetAllocatedBytesForCurrentThread(); + for (int i = 0; i < 20; i++) Frame(); + long allocated = GC.GetAllocatedBytesForCurrentThread() - before; + + Assert.Equal(0, allocated); + } + + [Fact] + public void FiveSamplesAtAnOddMaxPointsOfFiveDrawTheirTrueValues() + { + if (!NeedsNative) return; + + // count == MaxPoints takes the pass-through path, which once reserved only + // RequiredCapacity(maxPoints / 2) = 4 floats and then copied 5, scribbling the + // arena neighbor and reading garbage as the fifth value. A pass-through must + // draw exactly the samples it was given, budget or no budget. + float[] samples = [100f, 140f, 120f, 180f, 160f]; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", samples, new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = 5 }), + ui => ui.LineChart("twin", samples, new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = 100 })); + } + + [Fact] + public void FiveSeriesSamplesAtAnOddMaxPointsOfFiveDrawTheirTrueValues() + { + if (!NeedsNative) return; + + // The Series[] path shared the reservation bug; the same parity claim through + // the multi-series marshalling the app writes most. + var samples = new Series[] { new() { Values = [100f, 140f, 120f, 180f, 160f] } }; + + DrawSameSlotTwice( + ui => ui.LineChart("twin", samples, new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = 5 }), + ui => ui.LineChart("twin", samples, new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = 100 })); + } + + [Fact] + public void ADecimatedFeedDrawsIdenticallyToTheSameFeedRebasedByHand() + { + if (!NeedsNative) return; + + // Three thousand samples into a 64-point budget: the decimator keeps a min/max + // pair per bucket and the scale then runs over those retained points only, while + // the twin hands over samples that are already in index units. The multipliers + // are dyadic - 25m/64 is exact in binary - so the hand rebasing cannot land one + // rounding step away from the framework's double-intermediate scale; any + // disagreement can only come from normalizing the wrong samples. + const int Samples = 3000; + const int MaxPoints = 64; + + var source = new float[Samples]; + for (int i = 0; i < Samples; i++) + source[i] = 256f + (i * 37 % 256) - (i % 5) * 24; + var untouched = (float[])source.Clone(); + + // The baseline is source[0] = 256, so the rebased series is v / 256 * 100. + var rebased = new float[Samples]; + for (int i = 0; i < Samples; i++) + rebased[i] = source[i] / 256f * 100f; + + // Two twins that were the same numbers would make pixel identity meaningless, + // and a budget above the count would quietly test the pass-through instead. + Assert.NotEqual(source[1], rebased[1]); + Assert.True(SeriesDecimator.Decimate(source, MaxPoints / 2).Length < Samples, + "this sample count and budget are not a decimated pair"); + + byte[] pixels = DrawSameSlotTwice( + ui => ui.LineChart("twin", rebased, + new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = MaxPoints }), + ui => ui.LineChart("twin", source, + new ChartOpts { Height = 160, Width = Size.Px(280), MaxPoints = MaxPoints, Normalize = NormalizeMode.Index100 })); + + // Two empty buffers are identical too; the parity has to be about drawn ink. + Assert.True(HasInk(pixels), "the decimated chart drew nothing, so parity proves nothing"); + + // The caller's array is a live feed the app owns: scaling happens on arena copies. + Assert.Equal(untouched, source); + } + + [Fact] + public void ADonutRefusesANormalizeItWouldSilentlyIgnore() + { + if (!NeedsNative) return; + using var surface = CuiSurface.Create(320, 200); + var pixels = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + + // Slices are the values; rebasing them against a baseline is meaningless, so the + // shared option must fail at the call rather than draw an ignored-mode donut. + surface.BeginFrame(); + var outer = Assert.Throws(() => surface.Ui.DonutChart( + "share", [3f, 2f, 1f], null, new ChartOpts { Normalize = NormalizeMode.Index100 })); + surface.EndFrame(); + Assert.Contains("LineChart or BarChart", outer.Message, StringComparison.Ordinal); + + // None keeps drawing the donut it always drew. + surface.BeginFrame(); + surface.Ui.DonutChart("share", [3f, 2f, 1f]); + surface.EndFrame(); + surface.Render(pixels); + } + + private static ChartOpts Chart(NormalizeMode mode) => + new() { Height = 200, Width = Size.Px(280), Normalize = mode }; + + /// + /// Draws one chart id in one surface slot across two runs of equal length and + /// requires the settled frames to agree byte for byte. Same surface, same id, same + /// rect and same animation state means exact equality is the honest bar: any + /// difference at all can only come from the values that reached the plot. + /// + /// Draws both charts and returns the first run's pixels, so a caller can + /// check that what it compared was actually a drawing. + private static byte[] DrawSameSlotTwice(Action first, Action second) + { + using var surface = CuiSurface.Create(480, 260); + var pa = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + var pb = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + + void Frame(Action draw, byte[] into) + { + surface.BeginFrame(); + using (surface.Ui.Column(new Box { Pad = 8 })) + draw(surface.Ui); + surface.EndFrame(); + surface.Render(into); + } + + // 12 frames each: the intro spring is at rest long before the sampled frame, + // so only the values can make the two buffers disagree. + for (int i = 0; i < 12; i++) Frame(first, pa); + for (int i = 0; i < 12; i++) Frame(second, pb); + + int count = 0; + for (int i = 0; i < pa.Length; i++) + if (pa[i] != pb[i]) count++; + Assert.True(count == 0, $"{count} of {pa.Length} bytes differ between raw and normalized renders"); + return pa; + } + + /// Whether any byte differs from the top-left pixel, i.e. something was drawn. + private static bool HasInk(byte[] pixels) + { + for (int i = 4; i < pixels.Length; i++) + if (pixels[i] != pixels[i % 4]) return true; + return false; + } +} diff --git a/src/CuiSharp/Charting/ChartNormalizer.cs b/src/CuiSharp/Charting/ChartNormalizer.cs index ebeb8ea..19fb578 100644 --- a/src/CuiSharp/Charting/ChartNormalizer.cs +++ b/src/CuiSharp/Charting/ChartNormalizer.cs @@ -100,25 +100,68 @@ public static int Normalize(ReadOnlySpan values, Span destination, return values.Length; } - double baseline = FindBaseline(values); - for (int i = 0; i < values.Length; i++) + float baseline = ValidateAndFindBaseline(values); + values.CopyTo(destination); + Scale(destination[..values.Length], baseline, mode); + return values.Length; + } + + /// + /// Throws unless is a real value. + /// The chart path checks once per call, before any empty shortcut, so an unset or + /// unknown mode cannot take a fast path around validation. + /// + internal static void ValidateMode(NormalizeMode mode) => + _ = mode is NormalizeMode.None or NormalizeMode.Index100 or NormalizeMode.Percent + ? 0 + : throw new ArgumentOutOfRangeException(nameof(mode), mode, "not a NormalizeMode value"); + + /// + /// Validates a whole series for normalization and returns the baseline it would use: + /// the first nonzero sample. The whole span is scanned because a chart may decimate + /// a sample away, and a value decimation would hide is still a value the caller's + /// normalization was asked for. + /// + internal static float ValidateAndFindBaseline(ReadOnlySpan values) + { + float baseline = 0f; + bool found = false; + foreach (float v in values) { - float v = values[i]; if (!float.IsFinite(v)) throw new ArgumentException( "a normalized series must not contain NaN or infinity; NaN is not a gap marker", nameof(values)); + if (!found && v != 0f) + { + baseline = v; + found = true; + } + } + + if (!found) + throw new ArgumentException("a normalized series needs a finite nonzero baseline; a series of zeros has none", nameof(values)); + return baseline; + } + /// + /// Rescales already-retained samples in place against a validated baseline. The samples + /// are the ones a chart will actually draw - typically decimated output - so the scale + /// runs over a few hundred points whatever the source length was. + /// + internal static void Scale(Span points, float baseline, NormalizeMode mode) + { + double b = baseline; + for (int i = 0; i < points.Length; i++) + { // double throughout: a float chain would round at the divide and again at the // multiply, and Index100 would fail to be the identity it promises at b = 100. - double ratio = (double)v / baseline; + double ratio = (double)points[i] / b; double result = mode == NormalizeMode.Index100 ? ratio * 100.0 : (ratio - 1.0) * 100.0; if (!double.IsFinite(result) || result > float.MaxValue || result < float.MinValue) throw new ArgumentException( - $"scaling {v} against baseline {baseline:F6} leaves the finite range", nameof(values)); + $"scaling {points[i]} against baseline {b:F6} leaves the finite range"); - destination[i] = (float)result; + points[i] = (float)result; } - - return values.Length; } } diff --git a/src/CuiSharp/Ui/Options.g.cs b/src/CuiSharp/Ui/Options.g.cs index 860ff0f..0c08ff9 100644 --- a/src/CuiSharp/Ui/Options.g.cs +++ b/src/CuiSharp/Ui/Options.g.cs @@ -981,6 +981,8 @@ public partial struct ChartOpts public float Max; /// C# only: Upper bound on drawn points. 0 derives twice the viewport width; longer series are min/max decimated into the frame arena. public int MaxPoints; + /// C# only: Scale each series against its own first finite nonzero sample so series of different magnitudes compare by shape; see ChartNormalizer. + public NormalizeMode Normalize; internal readonly NativeChartOpts ToNative() => new() { diff --git a/src/CuiSharp/Ui/Ui.cs b/src/CuiSharp/Ui/Ui.cs index 467eae8..71308ee 100644 --- a/src/CuiSharp/Ui/Ui.cs +++ b/src/CuiSharp/Ui/Ui.cs @@ -101,23 +101,40 @@ public void BarChart(UiText id, ReadOnlySpan values, ChartOpts o = defaul private void ChartOne(UiText id, ReadOnlySpan values, ChartOpts o, Color color, bool line) { + // An invalid mode is a caller error, not an empty-feed state: check it before the + // empty shortcut so a bogus mode cannot ride the "draws nothing" path. + if (o.Normalize != NormalizeMode.None) ChartNormalizer.ValidateMode(o.Normalize); + // An empty span is a normal state (a feed that has not arrived yet) and it // must draw nothing: passing it on would give the chart a zero-length series. if (values.IsEmpty) return; + // Normalization validates and measures the whole clipped source before decimation + // (a decimated-away NaN must not evade validation) and scales the retained arena + // points after it, so the cost tracks the source once and the scale once. + float baseline = o.Normalize == NormalizeMode.None + ? 0f + : ChartNormalizer.ValidateAndFindBaseline(values); + int maxPoints = o.MaxPoints > 0 ? o.MaxPoints : Math.Max(64, (int)(ViewportSize().X * 2)); int buckets = Math.Max(1, maxPoints / 2); int capacity = SeriesDecimator.RequiredCapacity(buckets); + // Decimation needs the bucket capacity; a pass-through needs exactly its own + // length. Reserving the smaller of the two and writing the larger walked past + // the block whenever a pass-through count exceeded an odd maxPoints' capacity. + bool decimate = values.Length > maxPoints; int count; - float* block = Utf8.AllocFrame(Math.Max(1, Math.Min(values.Length, capacity))); - if (values.Length > maxPoints) + float* block = Utf8.AllocFrame(Math.Max(1, decimate ? capacity : values.Length)); + if (decimate) count = SeriesDecimator.Decimate(values, new Span(block, capacity), buckets); else { count = values.Length; values.CopyTo(new Span(block, count)); } + if (o.Normalize != NormalizeMode.None) + ChartNormalizer.Scale(new Span(block, count), baseline, o.Normalize); var native = (NativeSeries*)Arena(sizeof(NativeSeries)); native[0] = new NativeSeries @@ -138,6 +155,9 @@ private void ChartOne(UiText id, ReadOnlySpan values, ChartOpts o, Color private void Chart(UiText id, Series[] series, ChartOpts o, bool line) { + // Same rule as ChartOne: an invalid mode fails even when every series is empty. + if (o.Normalize != NormalizeMode.None) ChartNormalizer.ValidateMode(o.Normalize); + int maxPoints = o.MaxPoints > 0 ? o.MaxPoints : Math.Max(64, (int)(ViewportSize().X * 2)); int buckets = Math.Max(1, maxPoints / 2); int capacity = SeriesDecimator.RequiredCapacity(buckets); @@ -153,12 +173,23 @@ private void Chart(UiText id, Series[] series, ChartOpts o, bool line) : default; if (values.IsEmpty) { native[i] = default; continue; } + // Baseline and validation see the Count-clipped source, before decimation + // hides anything; the scale below sees only the retained arena points. + float baseline = o.Normalize == NormalizeMode.None + ? 0f + : ChartNormalizer.ValidateAndFindBaseline(values); + int count = values.Length; - float* block = Utf8.AllocFrame(Math.Max(1, Math.Min(count, capacity))); - if (count > maxPoints) + // Exact length for a pass-through, bucket capacity only when decimating; + // see ChartOne for what mixing the two did to the arena's neighbors. + bool decimate = count > maxPoints; + float* block = Utf8.AllocFrame(Math.Max(1, decimate ? capacity : count)); + if (decimate) count = SeriesDecimator.Decimate(values, new Span(block, capacity), buckets); else values.CopyTo(new Span(block, count)); + if (o.Normalize != NormalizeMode.None) + ChartNormalizer.Scale(new Span(block, count), baseline, o.Normalize); native[i] = new NativeSeries { @@ -176,6 +207,14 @@ private void Chart(UiText id, Series[] series, ChartOpts o, bool line) public void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default) { + // Slices are the values themselves; there is no series-vs-baseline relation a + // normalization could mean. Fail loudly rather than draw an unnormalized donut + // that the caller believes is rebased. + if (o.Normalize != NormalizeMode.None) + throw new ArgumentException( + "Normalize scales line and bar series against a baseline; a donut's slices are its values - use it with LineChart or BarChart only", + nameof(o)); + o.Labels = labels; var opts = o.ToNative(); Native.DonutChart(Handle, Utf8.Get(id), (nint)FloatBlock(values), opts.Labels, values.Length, in opts); From 37942b1d729845212a39ccc2c5761a229234f4f5 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 12:56:22 +0800 Subject: [PATCH 10/18] Add readiness-aware waits for headless apps --- docs/API-SURFACE.txt | 10 + src/CuiSharp.Tests/CuiSharp.Tests.csproj | 10 + src/CuiSharp.Tests/HeadlessLoopTests.cs | 167 ++++++- src/CuiSharp.Tests/ReadinessTests.cs | 406 +++++++++++++++++ .../TestApps/ReadyProbe/Program.cs | 21 + .../TestApps/ReadyProbe/ReadyProbe.csproj | 39 ++ src/CuiSharp.Tests/ToolArgumentTests.cs | 421 ++++++++++++++++++ src/CuiSharp.Tools/Cli.cs | 200 ++++++++- src/CuiSharp.Tools/HeadlessClient.cs | 52 ++- src/CuiSharp/CuiSurface.cs | 18 + src/CuiSharp/Hosting/HeadlessApp.cs | 150 +++++++ src/CuiSharp/Hosting/HeadlessLoop.cs | 78 +++- src/CuiSharp/Runtime/UiFrameState.cs | 18 + src/CuiSharp/Ui/Ui.Frame.cs | 19 + 14 files changed, 1574 insertions(+), 35 deletions(-) create mode 100644 src/CuiSharp.Tests/ReadinessTests.cs create mode 100644 src/CuiSharp.Tests/TestApps/ReadyProbe/Program.cs create mode 100644 src/CuiSharp.Tests/TestApps/ReadyProbe/ReadyProbe.csproj diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 7cf9bad..65c5a6c 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -677,6 +677,7 @@ class CuiSharp.CuiSurface Void Type(UiText) property Boolean FileDragActive { get; } property Boolean Incremental { get; set; } + property Boolean LastFrameReady { get; } property Boolean RecordWidgets { get; set; } property FrameSample LastFrame { get; set; } property IReadOnlyList Faults { get; } @@ -1467,6 +1468,8 @@ class CuiSharp.Hosting.HeadlessApp String SavePng(String, Boolean) String ToString() Void Dispose() + WaitOutcome WaitFor(String, TimeSpan, CancellationToken) + WaitOutcome WaitReady(TimeSpan, CancellationToken) WidgetTarget Find(String) WidgetTarget Find(String, String) WidgetTarget FindButton(String) @@ -1474,6 +1477,7 @@ class CuiSharp.Hosting.HeadlessApp WidgetTarget FindInput(String) WidgetTarget FindItem(String, Int32) property Boolean Animating { get; } + property Boolean Ready { get; } property Component Root { get; } property CuiSurface Surface { get; } property IReadOnlyList Widgets { get; } @@ -1484,6 +1488,11 @@ class CuiSharp.Hosting.HeadlessApp property SemanticNode Tree { get; } static HeadlessApp Start(Component, Int32, Int32, Single, Theme, Accent) static HeadlessApp Start(DrawFn, Int32, Int32, Single, Theme, Accent) +struct CuiSharp.Hosting.HeadlessApp+WaitOutcome + String ToString() + property Boolean Satisfied { get; } + property Int32 Frames { get; } + property TimeSpan Elapsed { get; } class CuiSharp.Hosting.HeadlessLoop field String EnvironmentVariable property IReadOnlyList Known { get; } @@ -5954,6 +5963,7 @@ struct CuiSharp.Ui Void Icon(UiText, Single, Color) Void LineChart(UiText, ReadOnlySpan, ChartOpts, Color) Void LineChart(UiText, Series[], ChartOpts) + Void MarkReady() Void PopClip() Void PushClip(RectF) Void ReorderBegin(UiText, Int32[]) diff --git a/src/CuiSharp.Tests/CuiSharp.Tests.csproj b/src/CuiSharp.Tests/CuiSharp.Tests.csproj index 4e3cde7..25a03f4 100644 --- a/src/CuiSharp.Tests/CuiSharp.Tests.csproj +++ b/src/CuiSharp.Tests/CuiSharp.Tests.csproj @@ -46,6 +46,16 @@ + + + + + + diff --git a/src/CuiSharp.Tests/HeadlessLoopTests.cs b/src/CuiSharp.Tests/HeadlessLoopTests.cs index 0bb97df..f651c46 100644 --- a/src/CuiSharp.Tests/HeadlessLoopTests.cs +++ b/src/CuiSharp.Tests/HeadlessLoopTests.cs @@ -1,3 +1,5 @@ +using System.Globalization; +using System.Text; using CuiSharp.Hosting; using CuiSharp.Testing; @@ -25,14 +27,58 @@ protected override void Draw(Ui ui) } } - private static string Wire(HeadlessApp app, string command) + /// + /// Speaks the wire the way the client does: the banner and the header are lines, but the + /// payload is exactly the announced number of bytes, sliced as bytes and decoded + /// after — never characters sliced by a byte count, which would cut a unicode answer in + /// half and eat the next answer's header. An answer that is not CUI-OK fails the premise + /// here, so a positive test can never be satisfied by an error message that happens to + /// repeat the words it is looking for. + /// + private static string Wire(HeadlessApp app, string command) => Framed(app, command, "CUI-OK"); + + /// + /// The same framing read against a command that must fail: the header has to say CUI-ERR, + /// the announced byte count has to survive decoding, and the block has to end on its + /// newline. Diagnostic prose is an answer only when it is framed as one. + /// + private static string ErrorWire(HeadlessApp app, string command) => Framed(app, command, "CUI-ERR"); + + private static string Framed(HeadlessApp app, string command, string expectedStatus) { - var output = new StringWriter(); - HeadlessLoop.Run(app, new StringReader(command + "\nquit\n"), output); - string wire = output.ToString(); - string[] lines = wire.ReplaceLineEndings("\n").Split('\n'); - int length = int.Parse(lines[1]["CUI-OK ".Length..], System.Globalization.CultureInfo.InvariantCulture); - return string.Join('\n', lines[2..])[..length]; + var buffer = new MemoryStream(); + using (var sink = new StreamWriter(buffer, new UTF8Encoding(false), leaveOpen: true)) + HeadlessLoop.Run(app, new StringReader(command + "\nquit\n"), sink); + byte[] wire = buffer.ToArray(); + + int offset = ReadLine(wire, 0, out string banner); + if (!banner.StartsWith("CUI-READY ", StringComparison.Ordinal)) + throw new InvalidOperationException($"the loop never announced itself: {banner}"); + + offset = ReadLine(wire, offset, out string header); + int space = header.IndexOf(' ', StringComparison.Ordinal); + if (space < 0) throw new InvalidOperationException($"not an answer header: {header}"); + int length = int.Parse(header[(space + 1)..], CultureInfo.InvariantCulture); + string payload = Read(wire, offset, length); + + if (!header.StartsWith(expectedStatus + " ", StringComparison.Ordinal)) + throw new InvalidOperationException($"\"{command}\" answered {header}: {payload}"); + if (Encoding.UTF8.GetByteCount(payload) != length) + throw new InvalidOperationException($"the {length}-byte answer did not survive decoding whole"); + if (wire[offset + length] != (byte)'\n') + throw new InvalidOperationException($"the answer did not end its block: {header}"); + + return payload; + } + + private static string Read(byte[] wire, int offset, int length) => Encoding.UTF8.GetString(wire, offset, length); + + private static int ReadLine(byte[] wire, int start, out string line) + { + int end = Array.IndexOf(wire, (byte)'\n', start); + if (end < 0) throw new InvalidOperationException("the wire ended in the middle of a line"); + line = Read(wire, start, end - start); + return end + 1; } [Fact] @@ -146,7 +192,7 @@ public void WheelIsACommandAndAnswersWithTheFrameItProduced() Assert.DoesNotContain("Unknown command", answer, StringComparison.Ordinal); Assert.Contains("Button \"Add\"", answer, StringComparison.Ordinal); - Assert.Contains("needs three numbers", Wire(app, "wheel 200"), StringComparison.Ordinal); + Assert.Contains("needs three numbers", ErrorWire(app, "wheel 200"), StringComparison.Ordinal); } [Fact] @@ -217,6 +263,109 @@ public void ClickOnAWordLandsOnTheControlNotTheHeading() Assert.StartsWith("Heading", Wire(app, "find Heading \"Save\""), StringComparison.Ordinal); } + /// A page whose frames mark ready and draw a label only once a flag flips. + private sealed class ReadyPage : Component + { + public bool Loaded; + + protected override void Draw(Ui ui) + { + if (Loaded) + { + ui.Label("data 7"); + ui.Label("添加 数据 3"); + ui.MarkReady(); + } + else + { + ui.Label("loading"); + } + } + } + + /// Runs commands and returns the whole wire, headers included. + private static string RawWire(HeadlessApp app, string commands) + { + var output = new StringWriter(); + HeadlessLoop.Run(app, new StringReader(commands + "\nquit\n"), output); + return output.ToString().ReplaceLineEndings("\n"); + } + + [Fact] + public void WaitAnswersWithTheFrameThatBecameReady() + { + if (!OperatingSystem.IsWindows()) return; + + var page = new ReadyPage(); + using var app = TestApp.Start(page, 400, 300); + + // The banner says the channel is open; `wait` says the app's data is there, and an app + // that never marks ready is answered by the clock, not left hanging the session. The + // miss is a framed CUI-ERR naming its window, and the session keeps serving after it. + Assert.Contains("within 0.2s", ErrorWire(app, "wait 0.2"), StringComparison.Ordinal); + Assert.Contains("CUI-OK 0\n", RawWire(app, "wait 0.2"), StringComparison.Ordinal); // quit answered + + page.Loaded = true; + Assert.Contains("data 7", Wire(app, "wait 2"), StringComparison.Ordinal); + } + + [Fact] + public void WaitTextDrawsWithWhateverTheUserTypedAndTimesOutWithWhatWasDrawn() + { + if (!OperatingSystem.IsWindows()) return; + + var page = new ReadyPage(); + using var app = TestApp.Start(page, 400, 300); + + // A miss is a framed CUI-ERR saying what was waited for and what the frame really drew, + // so the client can retry without guessing — the payload sliced by its announced byte + // count, not prose that merely contains the words. + string miss = ErrorWire(app, "waittext 0.2 data 8"); + Assert.Contains("data 8", miss, StringComparison.Ordinal); + Assert.Contains("loading", miss, StringComparison.Ordinal); + + // The miss is a framed answer, not prose that merely contains the words: CUI-ERR, an + // announced byte count that survives decoding a quoted unicode query, and its delimiter. + Assert.Contains("不存在的文本", ErrorWire(app, "waittext 0.1 不存在的文本"), StringComparison.Ordinal); + + page.Loaded = true; + + // Spaces, a numeric tail and unicode all stay query text: only the first token after + // the command is the timeout, and a number inside the text is never parsed as one. + Assert.Contains("data 7", Wire(app, "waittext 2 data 7"), StringComparison.Ordinal); + Assert.Contains("data 7", Wire(app, "waittext 2 7"), StringComparison.Ordinal); + + // The exact payload, byte-framed and decoded: the tree with its unicode label is what + // the answered frame printed, whole — proof the slice was in bytes, not in characters. + Assert.Equal( + "Frame\n Label \"data 7\"\n Label \"添加 数据 3\"", + Wire(app, "waittext 2 添加 数据 3")); + } + + [Theory] + [InlineData("wait -1", "wait needs")] + [InlineData("wait 0", "wait needs")] + [InlineData("wait NaN", "wait needs")] + [InlineData("wait Infinity", "wait needs")] + [InlineData("wait 3601", "wait needs")] + [InlineData("wait soon", "wait needs")] + [InlineData("waittext", "waittext needs a timeout")] + [InlineData("waittext 5", "waittext needs a timeout")] + [InlineData("waittext 99999 data 7", "wait needs")] + [InlineData("waittext five data 7", "wait needs")] + public void AWaitWindowThatCannotBoundAWaitIsAnAnswerNotACrash(string command, string refusal) + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(new ReadyPage(), 400, 300); + + // The refusal is a framed CUI-ERR carrying its reason as the announced bytes — an error + // that only looks like prose in the stream is not an answer — and the session is still + // serving after it, which the quit's own answer in the same wire says out loud. + Assert.Contains(refusal, ErrorWire(app, command), StringComparison.Ordinal); + Assert.Contains("CUI-OK 0\n", RawWire(app, command), StringComparison.Ordinal); + } + [Fact] public void AKeyIsNamedTheWayAPersonWould() { @@ -232,7 +381,7 @@ public void AKeyIsNamedTheWayAPersonWould() Wire(app, "key PageDown"); // A key the loop does not know is an answer, not a crash: the client reads why. - Assert.Contains("Unknown key", Wire(app, "key NoSuchKey"), StringComparison.Ordinal); + Assert.Contains("Unknown key", ErrorWire(app, "key NoSuchKey"), StringComparison.Ordinal); } [Fact] diff --git a/src/CuiSharp.Tests/ReadinessTests.cs b/src/CuiSharp.Tests/ReadinessTests.cs new file mode 100644 index 0000000..22f381e --- /dev/null +++ b/src/CuiSharp.Tests/ReadinessTests.cs @@ -0,0 +1,406 @@ +using System.Diagnostics; +using CuiSharp.Hosting; + +namespace CuiSharp.Tests; + +/// +/// Readiness and bounded waiting. Readiness is one frame's claim that its app data is complete +/// (ui.MarkReady), and a wait is the loop a tool builds on that claim: draw real frames, +/// look between completed frames, stop by the wall clock. Every wait here releases on an +/// observable signal — a completion that drains at a frame boundary — never on an arbitrary +/// sleep. +/// +public class ReadinessTests +{ + /// A page whose frames mark themselves ready exactly while holds. + private sealed class Hand + { + public bool Loaded { get; set; } + + public void Draw(Ui ui) + { + ui.Label(Loaded ? "data 7" : "loading"); + if (Loaded) ui.MarkReady(); + } + } + + /// + /// A page whose data arrives the way the framework delivers it: a pool thread posts to + /// and the next frame boundary applies it, and only the frames + /// after that mark ready. This is the shape a real app has, and the reason a wait needs no + /// polling of its own. + /// + private sealed class Loader + { + private readonly Mutation _load; + private string? _data; + + public Loader() => _load = new Mutation(_ => Task.FromResult(""), value => _data = value); + + /// + /// The release signal: the operation finishes on a pool thread when the test says so, + /// through the same completion path a mutation's continuation uses. The mutation is + /// never Run — this is about the drain at the frame boundary, not about an + /// operation's process-wide bookkeeping, which a sibling test class counts exactly. + /// + public void Deliver(string value) => Task.Run(() => Completions.Post(_load, value, 0)); + + public void Draw(Ui ui) + { + if (_data is { } data) + { + ui.Label($"loaded {data}"); + ui.MarkReady(); + } + else + { + ui.Label("loading"); + } + } + } + + [Fact] + public void ACompletedFrameThatAlreadyAnswersEndsTheWaitWithoutDrawing() + { + if (!OperatingSystem.IsWindows()) return; + + // The readiness lives on the latest completed frame, so a wait for what is already on + // screen needs no new frame and leaves the app exactly as it found it. + var hand = new Hand { Loaded = true }; + using var app = HeadlessApp.Start(hand.Draw, 400, 300); + + HeadlessApp.WaitOutcome outcome = app.WaitReady(TimeSpan.FromSeconds(10)); + Assert.True(outcome.Satisfied); + Assert.Equal(0, outcome.Frames); + + HeadlessApp.WaitOutcome text = app.WaitFor("data 7", TimeSpan.FromSeconds(10)); + Assert.True(text.Satisfied); + Assert.Equal(0, text.Frames); + } + + [Fact] + public void AFrameThatAbandonsTheWaitLosesEvenWhenItMarksReady() + { + if (!OperatingSystem.IsWindows()) return; + + // The token outranks the frame's own verdict, and an abandoned wait draws no next + // frame: against a 30 s window, stopping at exactly the cancelling frame is what a + // wait that honours both rules looks like. (The cancelling frame also marked itself + // ready; had the verdict been believed, the wait would have exited 0 with a third + // frame still in hand.) + int draws = 0; + using var gone = new CancellationTokenSource(); + using var app = HeadlessApp.Start(ui => + { + ui.Label("loading"); + if (++draws == 2) + { + gone.Cancel(); + ui.MarkReady(); + } + }, 400, 300); + + Assert.Throws( + () => app.WaitReady(TimeSpan.FromSeconds(30), gone.Token)); + Assert.Equal(2, draws); + } + + [Fact] + public void AReadinessThatArrivesAfterTheDeadlineIsAMissAndNotALateSuccess() + { + if (!OperatingSystem.IsWindows()) return; + + // The overrun comes from the draw itself, not from machine speed: the wait's own frame + // spins until the window has certainly passed before it marks, so the mark happens + // after the deadline however the test thread is scheduled. A synchronous draw cannot be + // interrupted, but its answer must not be reported as an in-time success. + int draws = 0; + using var app = HeadlessApp.Start(ui => + { + ui.Label(++draws > 1 ? "data" : "loading"); + if (draws > 1) + { +#pragma warning disable CUI001 // the whole point: this frame blocks until its wait's window has passed + long until = Stopwatch.GetTimestamp() + Stopwatch.Frequency / 10; + while (Stopwatch.GetTimestamp() < until) Thread.SpinWait(1000); +#pragma warning restore CUI001 + ui.MarkReady(); + } + }, 400, 300); + + var timeout = TimeSpan.FromMilliseconds(20); + HeadlessApp.WaitOutcome outcome = app.WaitReady(timeout); + + Assert.False(outcome.Satisfied); + Assert.Equal(1, outcome.Frames); + Assert.True(outcome.Elapsed >= timeout, $"the wait claims it ended after {outcome.Elapsed}"); + Assert.True(app.Ready, "the frame really marked; the wait just refuses to call a late mark in time"); + } + + [Fact] + public void AWindowSpentBeforeTheFirstFrameDrawsNothing() + { + if (!OperatingSystem.IsWindows()) return; + + // The wait's first act is asking the completed frame, and asking is real work: the + // tree search over this page's two hundred rows spends a one-tick window by orders of + // magnitude. The loop must then report a miss having drawn nothing — the counter was 1 + // when the wait started (the frame Start itself drew) and stays 1. + int draws = 0; + using var app = HeadlessApp.Start(ui => + { + draws++; + for (int i = 0; i < 200; i++) ui.Label($"row {i}"); + }, 400, 300); + + var window = TimeSpan.FromTicks(1); + HeadlessApp.WaitOutcome outcome = app.WaitFor("never drawn", window); + + Assert.False(outcome.Satisfied); + Assert.Equal(0, outcome.Frames); + Assert.True(draws == 1, "an expired window buys no frames, not even one"); + Assert.True(outcome.Elapsed >= window, $"the wait claims it ended after {outcome.Elapsed}"); + } + + [Fact] + public void ACancellationDuringTheFinalPaceIsACancellationAndNotATimeout() + { + if (!OperatingSystem.IsWindows()) return; + + // The clock and the pace in the test's hand turn the deadline's last instant into + // staged events instead of a millisecond race: the wait's frame comes back with one + // millisecond of window left, so the next pace is the last the loop can ever take, and + // the test cancels inside that pace while the clock runs past the deadline before the + // pace hands back. Cancellation and expiry arriving together is exactly what no + // real-time test can stage — and the token must still win, at the pace, with no + // further frame drawn. + int draws = 0; + using var gone = new CancellationTokenSource(); + using var app = HeadlessApp.Start(ui => + { + ui.Label("loading"); + draws++; + }, 400, 300); + + var window = TimeSpan.FromMilliseconds(50); + var spent = TimeSpan.FromMilliseconds(49); + + Assert.Throws(() => app.Wait( + () => app.Ready, + window, + gone.Token, + () => spent, + _ => + { + gone.Cancel(); // abandoned while the final pace is being taken… + spent = window; // …and the window expires before the pace hands back + })); + + Assert.True(draws == 2, $"the token ended the wait at the pace, but {draws} draws happened"); + Assert.False(app.Ready, "nothing marked itself ready on the way out"); + } + + [Fact] + public void ReadinessIsPublishedOnlyWhenThePaintThatEarnedItIsDone() + { + if (!OperatingSystem.IsWindows()) return; + + // CUI runs canvas painters inside EndFrame, after the draw body has finished. Two rules + // follow and are checked here: mid-paint a reader still sees the previous completed + // frame's verdict, and a mark made from inside the paint counts for the frame being + // painted — visible once EndFrame completes, and reset by the frame after it. + bool markFromPaint = false; + bool? seenMidPaint = null; + HeadlessApp? app = null; + app = HeadlessApp.Start(ui => + { + ui.Label("canvas"); + ui.Canvas("paint", Size.Percent(100), Size.Px(40), (paintUi, _) => + { + if (markFromPaint) + { + seenMidPaint ??= app?.Ready; + paintUi.MarkReady(); + } + }); + }, 400, 300); + + try + { + Assert.False(app.Ready); + + markFromPaint = true; + app.Frame(); + Assert.NotNull(seenMidPaint); + Assert.False(seenMidPaint.Value, + "mid-paint the reader still sees the previous completed frame's verdict, not this frame's mark"); + Assert.True(app.Ready, "a mark made from the deferred paint counts for the frame it painted"); + + markFromPaint = false; + app.Frame(); + Assert.False(app.Ready, "and the mark resets with the frame, like any other"); + } + finally + { + app.Dispose(); + } + } + + [Fact] + public void AFrameThatMarksItselfReadyIsReadyFromItsFirstFrame() + { + if (!OperatingSystem.IsWindows()) return; + + var hand = new Hand { Loaded = true }; + using var app = HeadlessApp.Start(hand.Draw, 400, 300); + + Assert.True(app.Ready); + Assert.True(app.Surface.LastFrameReady); + } + + [Fact] + public void AFrameThatDoesNotMarkIsNotReadyHoweverManyFramesPass() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = HeadlessApp.Start(new Hand().Draw, 400, 300); + app.Frame(5); + + Assert.False(app.Ready); + Assert.False(app.Surface.LastFrameReady); + } + + [Fact] + public void ReadinessArrivesWithTheFrameThatMarksAndLeavesWithTheFrameThatDoesNot() + { + if (!OperatingSystem.IsWindows()) return; + + var hand = new Hand(); + using var app = HeadlessApp.Start(hand.Draw, 400, 300); + Assert.False(app.Ready); + + hand.Loaded = true; + app.Frame(); + Assert.True(app.Ready); + + // A frame that goes back to loading is not ready on the strength of an earlier mark: + // the marker resets at the frame boundary, so the verdict always describes the latest + // completed frame, not the most dramatic one so far. + hand.Loaded = false; + app.Frame(); + Assert.False(app.Ready); + + hand.Loaded = true; + app.Frame(); + Assert.True(app.Ready); + } + + [Fact] + public void AWaitSeesTheFrameThatArrivedThroughACompletion() + { + if (!OperatingSystem.IsWindows()) return; + + var loader = new Loader(); + using var app = HeadlessApp.Start(loader.Draw, 400, 300); + Assert.False(app.Ready); + Assert.True(app.TryFind("loading", out _)); + + // The pool posts the completion; the wait releases because each frame drains Completions + // at its boundary, so no timing assumption is built into this test. + loader.Deliver("42 rows"); + + HeadlessApp.WaitOutcome ready = app.WaitReady(TimeSpan.FromSeconds(10)); + Assert.True(ready.Satisfied, ready.ToString()); + Assert.True(ready.Frames >= 1); + Assert.True(app.Ready); + Assert.True(app.TryFind("loaded 42 rows", out _)); + + // The same arrival, seen through the query side of the wait. + Assert.True(app.WaitFor("loaded 42 rows", TimeSpan.FromSeconds(10)).Satisfied); + } + + [Fact] + public void AWaitThatNeverSeesAReadyFrameEndsByTheClockAndReportsWhatItDrew() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = HeadlessApp.Start(new Hand().Draw, 400, 300); + var timeout = TimeSpan.FromMilliseconds(250); + + var clock = Stopwatch.StartNew(); + HeadlessApp.WaitOutcome outcome = app.WaitReady(timeout); + clock.Stop(); + + Assert.False(outcome.Satisfied); + Assert.True(outcome.Frames >= 1, $"a bounded wait gave up after {outcome.Frames} frames"); + + // What a miss must guarantee is observable, not how many frames a particular machine + // draws in it: the deadline was honoured, and no frame ever claimed a readiness the + // app never marked. + Assert.True(outcome.Elapsed >= timeout, $"the wait gave up after {outcome.Elapsed}"); + Assert.True(clock.Elapsed >= timeout); + Assert.False(app.Ready); + } + + [Fact] + public void AWaitForTextTimesOutAloneWhenOnlyOtherTextIsDrawn() + { + if (!OperatingSystem.IsWindows()) return; + + var hand = new Hand { Loaded = true }; + using var app = HeadlessApp.Start(hand.Draw, 400, 300); + + Assert.True(app.WaitFor("data 7", TimeSpan.FromSeconds(10)).Satisfied); + Assert.False(app.WaitFor("data 8", TimeSpan.FromMilliseconds(200)).Satisfied); + } + + [Fact] + public void ACancelledWaitEndsByTheTokenAndNotByTheClock() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = HeadlessApp.Start(new Hand().Draw, 400, 300); + + // Already cancelled: the wait never draws its first frame. + using var gone = new CancellationTokenSource(); + gone.Cancel(); + Assert.Throws( + () => app.WaitReady(TimeSpan.FromSeconds(30), gone.Token)); + + // Cancelled mid-wait: the loop asks the token every frame, so it ends at the next one. + using var soon = new CancellationTokenSource(TimeSpan.FromMilliseconds(50)); + Assert.Throws( + () => app.WaitFor("never drawn", TimeSpan.FromSeconds(30), soon.Token)); + } + + [Fact] + public void ATimeoutThatCannotBoundAWaitIsRefused() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = HeadlessApp.Start(new Hand().Draw, 400, 300); + + Assert.Throws(() => app.WaitReady(TimeSpan.Zero)); + Assert.Throws(() => app.WaitReady(TimeSpan.FromSeconds(-1))); + Assert.Throws( + () => app.WaitReady(Timeout.InfiniteTimeSpan)); + Assert.Throws(() => app.WaitFor("", TimeSpan.FromSeconds(1))); + } + + [Fact] + public void ReadinessIsNotTheHeadlessBanner() + { + if (!OperatingSystem.IsWindows()) return; + + // An app that never marks anything still serves the protocol: CUI-READY only proves the + // channel is open, and conflating the two would make every headless app look loaded. + using var app = HeadlessApp.Start(new Hand().Draw, 400, 300); + Assert.False(app.Ready); + + var output = new StringWriter(); + HeadlessLoop.Run(app, new StringReader("tree\nquit\n"), output); + + Assert.StartsWith("CUI-READY 400 300\n", output.ToString(), StringComparison.Ordinal); + Assert.Contains("CUI-OK", output.ToString(), StringComparison.Ordinal); + } +} diff --git a/src/CuiSharp.Tests/TestApps/ReadyProbe/Program.cs b/src/CuiSharp.Tests/TestApps/ReadyProbe/Program.cs new file mode 100644 index 0000000..93e36cc --- /dev/null +++ b/src/CuiSharp.Tests/TestApps/ReadyProbe/Program.cs @@ -0,0 +1,21 @@ +using CuiSharp; + +// A benign headless app for the tool's real-process tests. It draws "loading" for the first +// N frames and then "data ", marking those frames ready with ui.MarkReady. N comes from +// `--ready-after`; 0 means never ready, which is how a test proves an unsatisfied wait stops +// the command that asked for it instead of letting it through. +string[] argv = Environment.GetCommandLineArgs(); +int readyAfter = 0; +for (int i = 0; i < argv.Length - 1; i++) +{ + if (argv[i] == "--ready-after") readyAfter = int.Parse(argv[i + 1]); +} + +int drawn = 0; +return CuiApp.Run(new CuiAppOptions { Title = "ReadyProbe", Width = 320, Height = 200 }, ui => +{ + drawn++; + bool ready = readyAfter > 0 && drawn >= readyAfter; + ui.Label(ready ? $"data {readyAfter}" : "loading"); + if (ready) ui.MarkReady(); +}); diff --git a/src/CuiSharp.Tests/TestApps/ReadyProbe/ReadyProbe.csproj b/src/CuiSharp.Tests/TestApps/ReadyProbe/ReadyProbe.csproj new file mode 100644 index 0000000..eeea2bb --- /dev/null +++ b/src/CuiSharp.Tests/TestApps/ReadyProbe/ReadyProbe.csproj @@ -0,0 +1,39 @@ + + + + + + net10.0 + Exe + ReadyProbe + ReadyProbe + + + + + + + + + + + + + + + + + + + + diff --git a/src/CuiSharp.Tests/ToolArgumentTests.cs b/src/CuiSharp.Tests/ToolArgumentTests.cs index 417e767..8d3703f 100644 --- a/src/CuiSharp.Tests/ToolArgumentTests.cs +++ b/src/CuiSharp.Tests/ToolArgumentTests.cs @@ -1,3 +1,5 @@ +using System.Diagnostics; +using System.Text; using CuiSharp.Tools; namespace CuiSharp.Tests; @@ -68,6 +70,425 @@ public void RunningTheToolWithoutACommandExplainsItself() Assert.Contains("tree", output.ToString(), StringComparison.Ordinal); } + [Fact] + public void AWaitIsAPreconditionAndNotTheCommand() + { + // `png out.png --wait ready`: png is the command and keeps the payload; the wait is a + // gate the way --frames is, so the line the command travels on stays untouched. + Cli.Options options = Cli.Options.Parse(["png", "out.png", "--wait", "ready"]); + + Assert.False(options.Help); + Assert.Equal("png out.png", options.Line); + Assert.Equal("wait 10", options.WaitLine); + Assert.Equal(Cli.Options.DefaultWaitSeconds, options.WaitSeconds); + } + + [Fact] + public void AWaitWithNoCommandWaitsForTheTreeItPrints() + { + Cli.Options options = Cli.Options.Parse(["--wait", "ready", "--wait-timeout", "30"]); + + Assert.False(options.Help); + Assert.Equal("tree", options.Line); + Assert.Equal("wait 30", options.WaitLine); + Assert.Equal(30, options.WaitSeconds); + } + + [Fact] + public void AWaitTextCarriesItsTimeoutAndItsTextUnchanged() + { + Cli.Options options = Cli.Options.Parse( + ["click", "Save", "--wait-text", "添加 \"Save now\" 3", "--wait-timeout", "2.5"]); + + Assert.Equal("click Save", options.Line); + Assert.Equal(2.5, options.WaitSeconds); + // The query is verbatim after the timeout: spaces, quotes and a numeric tail all stay + // user text, and the number in front is the only one the app parses. + Assert.Equal("waittext 2.5 添加 \"Save now\" 3", options.WaitLine); + } + + [Fact] + public void AWaitCoexistsWithFramesAndStdin() + { + Cli.Options options = Cli.Options.Parse( + ["--frames", "3", "--wait", "ready", "--stdin"]); + + Assert.Equal(3, options.Frames); + Assert.True(options.Streaming); + Assert.False(options.Help); + // In a session the gate passes before any stdin line is relayed, and no command word + // is invented for it — stdin carries the commands. + Assert.Equal("wait 10", options.WaitLine); + Assert.Equal("", options.Line); + } + + [Fact] + public void AWaitOptionThatContradictsItselfIsRefused() + { + Assert.Throws(() => Cli.Options.Parse(["--wait", "busy"])); + Assert.Throws(() => Cli.Options.Parse(["--wait", "ready", "--wait-text", "Save"])); + Assert.Throws(() => Cli.Options.Parse(["--wait-timeout", "3"])); + } + + [Theory] + [InlineData("NaN")] + [InlineData("Infinity")] + [InlineData("-1")] + [InlineData("0")] + [InlineData("soon")] + [InlineData("3601")] + public void AWaitTimeoutThatCannotBoundAWaitIsRefusedNotThrown(string value) + { + // TryParse takes NaN and Infinity, a raw parse throws FormatException at the user, and + // an unbounded timeout overflows the answer deadline downstream — all of them are + // typos, and a typo is a sentence with exit=1. + var error = Assert.Throws( + () => Cli.Options.Parse(["--wait", "ready", "--wait-timeout", value])); + Assert.Contains("wait-timeout", error.Message, StringComparison.Ordinal); + } + + [Theory] + [InlineData("soon")] + [InlineData("-1")] + [InlineData("99999999999")] + public void AFramesCountThatCannotDrawIsRefusedNotThrown(string value) + { + // int.Parse used to throw FormatException and OverflowException out of the parser for + // these; a negative count drew nothing while claiming it had drawn. + var error = Assert.Throws(() => Cli.Options.Parse(["tree", "--frames", value])); + Assert.Contains("frames", error.Message, StringComparison.Ordinal); + } + + [Theory] + [InlineData("wait 61", 91)] + [InlineData("waittext 61 添加 \"Save now\" 3", 91)] + [InlineData("Wait 61", 91)] + [InlineData("wait 0.1", 30.1)] + [InlineData("waittext 3600 data", 3630)] + [InlineData("tree", 0)] + [InlineData("png out.png", 0)] + [InlineData("dwell 600", 0)] + [InlineData("wait", 0)] + [InlineData("waittext", 0)] + [InlineData("wait soon", 0)] + [InlineData("wait 3601", 0)] + [InlineData("waittext 0.1", 0)] + [InlineData("waittext 0.1 x 3", 30.1)] + public void AWaitCommandBuysItsOwnAnswerDeadline(string line, double expectedSeconds) + { + // The app answers a wait no later than its own timeout; a client fixed at a minute + // would give up on a 61-second wait the app is still honouring, and refuse a 3600. So + // the two wait commands buy timeout plus slack — from the first token only, because + // everything after it is query text and never a number. Everything else, including a + // wait the app will reject immediately, keeps the default: the answer is instant. + TimeSpan? timeout = Cli.AnswerTimeoutFor(line); + if (expectedSeconds == 0) + { + Assert.Null(timeout); + return; + } + + Assert.NotNull(timeout); + Assert.Equal(expectedSeconds, timeout!.Value.TotalSeconds, 6); + } + + [Fact] + public void TheToolWaitsForReadinessBeforeItLetsTheCommandThrough() + { + if (!OperatingSystem.IsWindows()) return; + + // The whole chain, not the parser: build a real app, start it headless, pass the gate, + // then run the command. The probe draws "loading" until its third frame, so a png that + // exists afterwards is a png that was taken after readiness, not merely one that parsed. + string project = Path.Combine(TestPaths.RepositoryRoot, "src", "CuiSharp.Tests", "TestApps", "ReadyProbe"); + string png = Path.Combine(Path.GetTempPath(), $"cui-ready-{Guid.NewGuid():N}.png"); + string late = Path.Combine(Path.GetTempPath(), $"cui-late-{Guid.NewGuid():N}.png"); + + try + { + var output = new StringWriter(); + var error = new StringWriter(); + int exit = Cli.Run( + ["--project", project, "--wait", "ready", "--wait-timeout", "20", "png", png, "--", "--ready-after", "3"], + output, + error); + + Assert.True(exit == 0, $"the run should have passed its gate: {error}"); + Assert.Contains(png, output.ToString(), StringComparison.Ordinal); + Assert.True(File.Exists(png), "the wait's payload is discarded and the command's own answer is the payload"); + + // The order proof: against a probe that never marks ready, the same command must + // not run — a tool that screenshotted first would exit 0 and lie about the frame. + var missError = new StringWriter(); + int miss = Cli.Run( + ["--project", project, "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"], + new StringWriter(), + missError); + + Assert.Equal(1, miss); + Assert.False(File.Exists(late), "an unsatisfied wait must stop the command before it draws anything"); + Assert.Contains("ready", missError.ToString(), StringComparison.Ordinal); + + // A direct `wait` as the command, not the precondition: the answer that comes back + // is the app's own bounded verdict — server CUI-ERR, not the client giving up — and + // the miss still exits 1 with the reason. + var directError = new StringWriter(); + int direct = Cli.Run( + ["--project", project, "wait", "0.1", "--", "--ready-after", "0"], + new StringWriter(), + directError); + Assert.Equal(1, direct); + Assert.Contains("No frame marked itself ready within 0.1s", directError.ToString(), StringComparison.Ordinal); + } + finally + { + if (File.Exists(png)) File.Delete(png); + if (File.Exists(late)) File.Delete(late); + } + } + + [Fact] + public void ACommandThatOutlivesTheDefaultDeadlineIsAnsweredWhenItBoughtItsOwn() + { + // The server answers a tenth of a second later — past a default deadline narrowed to a + // thirtieth for the test — and the only difference between an answer and a give-up is + // the per-command override the wait's grammar buys. The verdict that comes back is the + // server's own miss, not the client's timeout dressed up as one. + using var client = HeadlessClient.Attach( + new DelayedAnswer("CUI-READY 800 600\n", "CUI-ERR 12\nnot within 3\n"), + new MemoryStream(), + answerTimeout: TimeSpan.FromMilliseconds(30)); + + Answer answer = client.Send("wait 3", answerTimeout: TimeSpan.FromSeconds(3)); + + Assert.False(answer.Ok); + Assert.Equal("not within 3", answer.Payload); + } + + [Fact] + public void ATimeoutNamesTheDeadlineThatActuallyRanOut() + { + // The silent app: the message has to say which deadline expired. The old text quoted + // the default minute even when the command had bought three quarters of a second, so a + // reader went looking for a minute-long hang that never existed. + using var client = HeadlessClient.Attach( + new DelayedAnswer("CUI-READY 800 600\n"), + new MemoryStream(), + answerTimeout: TimeSpan.FromMilliseconds(30)); + + var error = Assert.Throws( + () => client.Send("wait 3", answerTimeout: TimeSpan.FromMilliseconds(450))); + Assert.Contains("did not answer within 0.45s", error.Message, StringComparison.Ordinal); + Assert.DoesNotContain("60s", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void ARelayedWaitBuysItsOwnDeadlineToo() + { + // The per-command deadline is not a one-shot-only rule. The same slow server sits + // behind a --stdin session: the relayed `wait 3` has to get the override its grammar + // asks for, or the session dies of the client's default give-up while the app is + // still answering honestly. + using var client = HeadlessClient.Attach( + new DelayedAnswer("CUI-READY 800 600\n", "CUI-ERR 12\nnot within 3\n"), + new MemoryStream(), + answerTimeout: TimeSpan.FromMilliseconds(30)); + var output = new StringWriter(); + var error = new StringWriter(); + + int exit = Cli.Relay(client, new StringReader("wait 3\n"), output, error); + + // The server's miss ends the session with the server's words; a relay stuck on the + // default deadline would have said the app did not answer instead. + Assert.Equal(1, exit); + Assert.Contains("not within 3", error.ToString(), StringComparison.Ordinal); + Assert.DoesNotContain("did not answer", error.ToString(), StringComparison.Ordinal); + } + + [Fact] + public void AFramePreconditionTheAppRefusesStopsTheRunBeforeAnythingElse() + { + // The app refuses the --frames draw with a real framed error. That verdict ends the + // run: the gate, the command, and a whole relayed session would act on frames the app + // never drew, and reading the error and carrying on can finish a lie with exit 0. The + // bytes the client wrote are the proof — after the refusal, nothing else was offered. + var sent = new MemoryStream(); + using var client = HeadlessClient.Attach( + new DelayedAnswer("CUI-READY 800 600\n", "CUI-ERR 13\nthe app threw\n"), + sent); + var error = new StringWriter(); + Cli.Options options = Cli.Options.Parse(["tree", "--frames", "2", "--wait", "ready"]); + + Assert.False(Cli.PassPreconditions(client, options, error)); + + Assert.Contains("the app threw", error.ToString(), StringComparison.Ordinal); + Assert.Equal("frame 2\n", Encoding.UTF8.GetString(sent.ToArray())); + } + + /// + /// A server stream that answers on a delay: the banner arrives after the same tenth of a + /// second as every later block — long enough for a default deadline narrowed for the test + /// to run out, short enough that no test waits on it. + /// + private sealed class DelayedAnswer(params string[] blocks) : Stream + { + private readonly Queue _blocks = new(blocks.Select(Encoding.UTF8.GetBytes)); + + private byte[] _current = []; + + public override bool CanRead => true; + + public override bool CanSeek => false; + + public override bool CanWrite => false; + + public override long Length => throw new NotSupportedException(); + + public override long Position { get => throw new NotSupportedException(); set => throw new NotSupportedException(); } + + public override void Flush() { } + + public override long Seek(long offset, SeekOrigin origin) => throw new NotSupportedException(); + + public override void SetLength(long value) => throw new NotSupportedException(); + + public override void Write(byte[] buffer, int offset, int count) => throw new NotSupportedException(); + + // The client reads only through ReadAsync, and that is the one path whose waits the + // caller's deadline can end. A synchronous read past the last block would park on a + // delay no token can cancel — so here it is a loud failure instead of a silent hang. + public override int Read(byte[] buffer, int offset, int count) => throw new NotSupportedException(); + + public override async ValueTask ReadAsync(Memory buffer, CancellationToken cancellationToken = default) + { + while (_current.Length == 0) + { + if (_blocks.Count == 0) + { + // A live app with nothing more to say: only the caller's deadline ends this. + await Task.Delay(Timeout.Infinite, cancellationToken).ConfigureAwait(false); + return 0; + } + + await Task.Delay(TimeSpan.FromMilliseconds(100), cancellationToken).ConfigureAwait(false); + _current = _blocks.Dequeue(); + } + + int take = Math.Min(buffer.Length, _current.Length); + _current.AsSpan(0, take).CopyTo(buffer.Span); + _current = _current[take..]; + return take; + } + } + + [Fact] + public void TheFixtureCarriesItsNativePayloadIntoAnyWorkingDirectory() + { + if (!OperatingSystem.IsWindows()) return; + + // The probe must run wherever the tool happens to stand. A cui.dll inherited from the + // launcher's current directory lets an in-process run pass while the same app fails on + // a user's machine, so the tool runs here as a real process from a scratch directory + // that has no DLL of any kind to borrow — the process's own cwd is never touched, which + // parallel tests would share. + // The tool that runs is the one for the configuration under test: the test assembly + // lives in bin\\net10.0, and the tool the same build produced for that + // configuration answers for the code under review — a stale Release build can no + // longer review Debug changes, and a clean Debug run finds its own binary. + string tool = ToolUnderTest(ConfigurationUnderTest()); + string project = Path.Combine(TestPaths.RepositoryRoot, "src", "CuiSharp.Tests", "TestApps", "ReadyProbe"); + string scratch = Directory.CreateTempSubdirectory("cui-scratch-").FullName; + + try + { + Assert.Empty(Directory.GetFiles(scratch, "*.dll")); + + string png = Path.Combine(scratch, "ready.png"); + (int exit, _, string errors) = RunFrom( + scratch, tool, + ["--project", project, "--wait", "ready", "--wait-timeout", "20", "png", png, "--", "--ready-after", "3"]); + Assert.True(exit == 0, $"a ready-marking probe should pass its gate from an empty cwd: {errors}"); + Assert.True(File.Exists(png), "the PNG is the proof the app ran on its own native payload"); + + string late = Path.Combine(scratch, "late.png"); + (int miss, _, string missErrors) = RunFrom( + scratch, tool, + ["--project", project, "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"]); + Assert.Equal(1, miss); + Assert.Contains("ready", missErrors, StringComparison.Ordinal); + Assert.False(File.Exists(late), "an unsatisfied gate must still stop the command from a foreign cwd"); + } + finally + { + Directory.Delete(scratch, recursive: true); + } + } + + /// + /// The configuration the tests are running from: the directory segment after bin in + /// this assembly's own path is the only answer that cannot review a stale build. + /// + private static string ConfigurationUnderTest() + { + string? directory = Path.GetDirectoryName(typeof(ToolArgumentTests).Assembly.Location); + ArgumentException.ThrowIfNullOrEmpty(directory); + string[] parts = directory.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + for (int i = 0; i < parts.Length - 1; i++) + { + if (parts[i].Equals("bin", StringComparison.OrdinalIgnoreCase)) return parts[i + 1]; + } + + throw new InvalidOperationException($"{directory} does not live under a bin{Path.DirectorySeparatorChar} directory"); + } + + /// + /// The tool for the configuration under test. dotnet test has already built the + /// ProjectReference in this configuration, so the test only selects and asserts that + /// output — a nested dotnet build from inside the testhost re-enters MSBuild on + /// outputs the running build owns, which is how a fixture turns into a hang. + /// + private static string ToolUnderTest(string configuration) + { + string tool = Path.Combine( + TestPaths.RepositoryRoot, "src", "CuiSharp.Tools", "bin", configuration, "net10.0", "CuiSharp.Tools.dll"); + Assert.True( + File.Exists(tool), + $"{tool} is missing: build the solution in {configuration} (dotnet test does, through the ProjectReference)"); + return tool; + } + + /// + /// Runs the real tool as a child with an explicit working directory, so the fixture is + /// judged where it will actually be launched rather than where the test host happens to + /// be. Both outputs are drained at once: a tool that fails loudly fills the pipe nobody is + /// reading and deadlocks the reader that waits on the other one first. + /// + private static (int Exit, string Out, string Error) RunFrom(string workingDirectory, string toolDll, string[] arguments) => + Run(workingDirectory, "dotnet", [toolDll, .. arguments]); + + private static (int Exit, string Out, string Error) Run(string workingDirectory, string host, string[] arguments) + { + var info = new ProcessStartInfo(host) + { + WorkingDirectory = workingDirectory, + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false, + }; + foreach (string argument in arguments) info.ArgumentList.Add(argument); + + using Process process = Process.Start(info) ?? throw new InvalidOperationException("could not start the tool"); + Task output = process.StandardOutput.ReadToEndAsync(); + Task errors = process.StandardError.ReadToEndAsync(); + if (!process.WaitForExit(TimeSpan.FromMinutes(3))) + { + process.Kill(entireProcessTree: true); + throw new InvalidOperationException("the tool did not answer within three minutes"); + } + + return (process.ExitCode, output.GetAwaiter().GetResult(), errors.GetAwaiter().GetResult()); + } + [Fact] public void OnlyAFramedAnswerLooksLikeOne() { diff --git a/src/CuiSharp.Tools/Cli.cs b/src/CuiSharp.Tools/Cli.cs index 0f31ac4..c6427a5 100644 --- a/src/CuiSharp.Tools/Cli.cs +++ b/src/CuiSharp.Tools/Cli.cs @@ -39,6 +39,8 @@ focus report that the window has focus (needed before typing) wheel [dx] scroll at a point, in wheel notches (negative dy goes down) frame [count] draw more frames, then print the tree pulse [count] draw frames without printing the tree (answers: count, heap bytes) + wait [seconds] keep drawing until a frame marks itself ready (ui.MarkReady) + waittext keep drawing until a frame draws this text or query faults what the app threw while drawing, if anything png save the last frame as a PNG @@ -55,6 +57,13 @@ pulse [count] draw frames without printing the tree (answers: count, heap --frames draw this many frames before the command -s, --stdin read commands from stdin and print each answer, one process -q, --quiet only print the payload + --wait ready precondition: draw until a frame marks itself ready (ui.MarkReady) + --wait-text precondition: draw until a frame draws this text or query + --wait-timeout wait window for the two above, in seconds (default 10, max 3600) + + A wait is a precondition, not a command: `dotnet cui png out.png --wait ready` screenshots + the frame that proved the app ready, and an unsatisfied wait ends the run with exit=1 + before the command is sent. `--wait ready` alone waits and then prints the tree. Anything after `--` goes to the app. """; @@ -84,7 +93,8 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text // the app's diagnostics, and the protocol on stdout stays clean. using HeadlessClient client = HeadlessClient.Start( host, hostArgs, echo: options.Quiet ? null : error.WriteLine); - if (options.Frames > 0) client.Send($"frame {options.Frames}"); + + if (!PassPreconditions(client, options, error)) return 1; if (options.Streaming) return Relay(client, input, output, error); @@ -93,7 +103,7 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text if (TryReadDwell(options.Line, out double seconds)) return Dwell(client, output, error, seconds) ? 0 : 1; - Answer answer = client.Send(options.Line); + Answer answer = Ask(client, options.Line); if (!answer.Ok) { error.WriteLine(answer.Payload); @@ -110,11 +120,50 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text } } + /// + /// Draws and waits through everything that must be true before the command runs: the + /// --frames draw, then the wait gate. A refused precondition is a real answer with a + /// real reason, and it ends the run — the command, the gate behind it, and a whole relayed + /// session would otherwise act on frames the app never drew, and a tool that reads an error + /// and carries on can finish a lie with exit 0. Internal so a fake server can prove the + /// stop without an app to refuse. + /// + internal static bool PassPreconditions(HeadlessClient client, Options options, TextWriter error) + { + if (options.Frames > 0) + { + Answer drawn = Ask(client, $"frame {options.Frames}"); + if (!drawn.Ok) + { + error.WriteLine(drawn.Payload); + return false; + } + } + + // A wait is a precondition, like --frames, not the command: the app must reach the + // state before the command acts on it. A miss ends the run with exit=1 and the command + // is never sent; a satisfied wait stays out of the way — its payload is discarded + // because the command's own answer is the payload. In a --stdin session the gate passes + // first, before any line is relayed. + if (options.WaitLine is { } gate) + { + Answer waited = Ask(client, gate); + if (!waited.Ok) + { + error.WriteLine(waited.Payload); + return false; + } + } + + return true; + } + /// /// Feeds commands from stdin to one app process, so a session of ten commands pays for one - /// startup instead of ten. Answers go to stdout in order. + /// startup instead of ten. Answers go to stdout in order. Internal so a fake server can + /// stand behind the session and show a relayed wait gets the deadline its grammar asks for. /// - private static int Relay(HeadlessClient client, TextReader? input, TextWriter output, TextWriter error) + internal static int Relay(HeadlessClient client, TextReader? input, TextWriter output, TextWriter error) { TextReader source = input ?? Console.In; while (source.ReadLine() is { } line) @@ -126,7 +175,7 @@ private static int Relay(HeadlessClient client, TextReader? input, TextWriter ou continue; } - Answer answer = client.Send(line.Trim()); + Answer answer = Ask(client, line.Trim()); if (!answer.Ok) { error.WriteLine(answer.Payload); @@ -206,6 +255,50 @@ private static bool Dwell(HeadlessClient client, TextWriter output, TextWriter e return true; } + /// + /// Room on top of a wait command's own timeout before the client stops listening: the wait + /// answers within its timeout, and the slack covers the real frames drawn around it. + /// + private static readonly TimeSpan WaitAnswerSlack = TimeSpan.FromSeconds(30); + + /// + /// Sends one command with the answer deadline its own grammar asks for. A direct + /// wait 60 answers no later than its sixty seconds, and a client fixed at the + /// default deadline would give up on an app that is answering exactly as promised. + /// + private static Answer Ask(HeadlessClient client, string line) => + client.Send(line, answerTimeout: AnswerTimeoutFor(line)); + + /// + /// The answer deadline a command line needs, or null for the default. Only wait and + /// waittext wait on something, and only their first timeout token is read — the query + /// after it is user text and never a number. A malformed or impossible wait gets the + /// default, because the app answers one immediately, with the reason. + /// + internal static TimeSpan? AnswerTimeoutFor(string line) + { + string[] words = line.Split([' ', '\t'], StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + string? token = words.Length > 0 + ? words[0].ToLowerInvariant() switch + { + // `wait` alone takes the app's own default window, which the default covers; a + // `waittext` without a query is answered with its usage immediately. + "wait" => words.Length > 1 ? words[1] : "", + "waittext" => words.Length > 2 ? words[1] : null, + _ => null, + } + : null; + + if (token is null + || !double.TryParse(token, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) + || !double.IsFinite(seconds) || seconds <= 0 || seconds > Options.MaxWaitSeconds) + { + return null; + } + + return TimeSpan.FromSeconds(seconds) + WaitAnswerSlack; + } + /// /// What the tool was asked for. Parsing is separate from running so that flag handling is /// testable without spawning a process. @@ -243,11 +336,33 @@ internal sealed record Options /// The line the app receives: its command and the argument. internal string Line => Argument.Length == 0 ? Command : $"{Command} {Argument}"; + /// The wait window the caller asked for, in seconds; 0 when nothing waits. + internal double WaitSeconds { get; init; } + + /// + /// The gate line sent to the app before the command, or null when nothing waits. A wait + /// is a precondition like , never the command itself: the command + /// keeps and its answer keeps the payload. + /// + internal string? WaitLine { get; init; } + + /// The window a wait gets when no --wait-timeout narrows it, in seconds. + internal const double DefaultWaitSeconds = 10; + + /// + /// The longest wait the tool will set. A wait bounds the client's answer deadline + /// downstream, and a number near would overflow it; a + /// wait measured in hours is not a wait, it is a hung app with extra steps. + /// + internal const double MaxWaitSeconds = 3600; + internal static Options Parse(string[] args) { if (args.Length == 0) return new Options { Help = true }; string? project = null, host = null, framework = null; + string? wait = null, waitText = null; + double? waitTimeout = null; var appArgs = new List(); var words = new List(); int frames = 0; @@ -271,7 +386,16 @@ internal static Options Parse(string[] args) framework = Value(args, ref i); break; case "--frames": - frames = int.Parse(Value(args, ref i), CultureInfo.InvariantCulture); + frames = ParseFrames(Value(args, ref i)); + break; + case "--wait": + wait = Value(args, ref i); + break; + case "--wait-text": + waitText = Value(args, ref i); + break; + case "--wait-timeout": + waitTimeout = ParseWaitTimeout(Value(args, ref i)); break; case "-q" or "--quiet": quiet = true; @@ -296,22 +420,80 @@ internal static Options Parse(string[] args) } } + // A wait is a precondition, so it composes with any command instead of replacing + // one. The gate line carries an explicit timeout and the query verbatim after it, + // so text with spaces, unicode or a numeric tail reaches the app exactly as typed. + bool waiting = wait is not null || waitText is not null; + if (wait is not null && !wait.Equals("ready", StringComparison.OrdinalIgnoreCase)) + throw new ToolException($"--wait needs \"ready\", not \"{wait}\"."); + if (wait is not null && waitText is not null) + throw new ToolException("Choose one wait: --wait ready or --wait-text , not both."); + if (waitTimeout is not null && !waiting) + throw new ToolException("--wait-timeout needs --wait or --wait-text to bound."); + + double waitSeconds = waitTimeout ?? DefaultWaitSeconds; + string? waitLine = null; + if (waiting) + { + string seconds = waitSeconds.ToString("R", CultureInfo.InvariantCulture); + waitLine = waitText is not null ? $"waittext {seconds} {waitText}" : $"wait {seconds}"; + } + + // A wait with no command still has to answer with something: the tree the wait + // waited for is the smallest honest payload. + string command = words.Count > 0 + ? words[0] + : waiting && !streaming ? "tree" : ""; + string argument = words.Count > 1 ? string.Join(' ', words.Skip(1)) : ""; + return new Options { - Command = words.Count > 0 ? words[0] : "", - Argument = words.Count > 1 ? string.Join(' ', words.Skip(1)) : "", + Command = command, + Argument = argument, Frames = frames, Quiet = quiet, Streaming = streaming, NoBuild = noBuild, - Help = help || (words.Count == 0 && !streaming), + Help = help || (words.Count == 0 && !streaming && !waiting), Project = project, Host = host, Framework = framework, AppArgs = [.. appArgs], + WaitSeconds = waiting ? waitSeconds : 0, + WaitLine = waitLine, }; } + /// + /// A frame count the app can draw. A bare int.Parse threw FormatException and + /// OverflowException at the user for a typo that deserves a sentence, and a negative + /// count drew nothing while claiming otherwise. + /// + private static int ParseFrames(string value) + { + if (!int.TryParse(value, NumberStyles.None, CultureInfo.InvariantCulture, out int frames) || frames < 0) + throw new ToolException($"--frames needs a count of at least 0, not \"{value}\"."); + + return frames; + } + + /// + /// A wait window the tool can honour. TryParse accepts NaN and Infinity, and neither is + /// a bound anyone could wait by; the ceiling keeps the deadline arithmetic downstream + /// finite. Every typo here is an exit=1, not a crash. + /// + private static double ParseWaitTimeout(string value) + { + if (!double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) + || !double.IsFinite(seconds) || seconds <= 0 || seconds > MaxWaitSeconds) + { + throw new ToolException( + $"--wait-timeout needs a finite number of seconds between 0 and {MaxWaitSeconds:0}, not \"{value}\"."); + } + + return seconds; + } + private static string Value(string[] args, ref int index) { if (index + 1 >= args.Length) throw new ToolException($"{args[index]} needs a value."); diff --git a/src/CuiSharp.Tools/HeadlessClient.cs b/src/CuiSharp.Tools/HeadlessClient.cs index 9a81ad4..8f1e2e8 100644 --- a/src/CuiSharp.Tools/HeadlessClient.cs +++ b/src/CuiSharp.Tools/HeadlessClient.cs @@ -96,6 +96,10 @@ internal static HeadlessClient Start( RedirectStandardError = true, UseShellExecute = false, StandardInputEncoding = new UTF8Encoding(false), + // The app's stderr is diagnostics a person must be able to read, and on Windows the + // console code page would mangle a non-English message into question marks. stdout + // stays raw bytes: that is the protocol, and its byte counts are the contract. + StandardErrorEncoding = new UTF8Encoding(false), }; foreach (string argument in arguments) info.ArgumentList.Add(argument); info.Environment[CuiSharpEnvironmentVariable] = "1"; @@ -148,7 +152,7 @@ private void WaitReady(CancellationToken cancellation) var skipped = new StringBuilder(); while (true) { - string line = ReadLine(timeout.Token, Waiting.Ready); + string line = ReadLine(timeout.Token, Waiting.Ready, ReadyTimeout); if (line.StartsWith("CUI-READY ", StringComparison.Ordinal)) { string[] parts = line.Split(' '); @@ -196,33 +200,44 @@ private void WaitReady(CancellationToken cancellation) } } - /// Sends one command and reads its answer. - internal Answer Send(string command, CancellationToken cancellation = default) + /// + /// Sends one command and reads its answer. + /// + /// + /// A deadline for this one answer, for a caller that knows the command waits on something: + /// wait answers no later than its own timeout, so the client has to listen past it. + /// Null keeps , whose minute says a plain frame that long is a + /// deadlock. The deadline governs every read of the answer — header, payload and delimiter — + /// and a timeout names it, so the message says which wait ran out rather than quoting a + /// default the command never had. + /// + internal Answer Send(string command, CancellationToken cancellation = default, TimeSpan? answerTimeout = null) { byte[] bytes = Encoding.UTF8.GetBytes(command + "\n"); _in.Write(bytes); _in.Flush(); + TimeSpan deadline = answerTimeout ?? AnswerTimeout; using var timeout = CancellationTokenSource.CreateLinkedTokenSource(cancellation); - timeout.CancelAfter(AnswerTimeout); - string header = ReadHeader(timeout.Token); + timeout.CancelAfter(deadline); + string header = ReadHeader(timeout.Token, deadline); // The status is in the header, not in whether it parsed: CUI-ERR is a well-formed answer // that says the command failed, and reading it as success prints an error to stdout and // exits 0, which no script can tell from a good run. TryParseHeader(header, out bool ok, out int length); - string payload = ReadExactly(length, timeout.Token); + string payload = ReadExactly(length, timeout.Token, deadline); // The answer ends with a newline so a person reading the raw stream sees one answer per // block; consume it or the next header would look empty. - ReadLine(timeout.Token, Waiting.Answer); + ReadLine(timeout.Token, Waiting.Answer, deadline); return new Answer(ok, payload); } /// /// Reads until a line looks like a header, skipping anything else the app printed. /// - private string ReadHeader(CancellationToken token) + private string ReadHeader(CancellationToken token, TimeSpan deadline) { - for (string line = ReadLine(token, Waiting.Answer); ; line = ReadLine(token, Waiting.Answer)) + for (string line = ReadLine(token, Waiting.Answer, deadline); ; line = ReadLine(token, Waiting.Answer, deadline)) { if (IsHeader(line)) return line; Relay(line); @@ -269,7 +284,7 @@ private enum Waiting Answer, } - private string ReadLine(CancellationToken token, Waiting waiting) + private string ReadLine(CancellationToken token, Waiting waiting, TimeSpan deadline) { var line = new List(128); var one = new byte[1]; @@ -285,7 +300,7 @@ private string ReadLine(CancellationToken token, Waiting waiting) } catch (OperationCanceledException) { - throw Timeout(waiting); + throw Timeout(waiting, deadline); } if (read == 0) throw new ToolException($"The app closed its output.{Tail()}"); @@ -311,21 +326,26 @@ private string ReadLine(CancellationToken token, Waiting waiting) } } - private ToolException Timeout(Waiting waiting) => waiting switch + /// + /// Why the read gave up, naming the deadline that actually ran out — the readiness window + /// for the banner, the command's own deadline for an answer, whatever that deadline was + /// when the caller bought a longer one. + /// + private ToolException Timeout(Waiting waiting, TimeSpan deadline) => waiting switch { // The most likely cause of a missing banner is a binary the headless channel was never // built into: the package trims it out of a self-contained AOT publish (docs/SIZE.md), so // a published app has to ask for it back before this tool can say anything about it. Waiting.Ready => new ToolException( - $"The app was not ready after {ReadyTimeout.TotalSeconds:0}s: it never printed CUI-READY.{Tail()}" + + $"The app was not ready after {deadline.TotalSeconds:0}s: it never printed CUI-READY.{Tail()}" + Environment.NewLine + "A published app carries the headless channel only when it was published for it: " + "add -p:CuiSharpHeadless=true to the publish. `dotnet cui` passes it for the builds it runs itself."), _ => new ToolException( - $"The app did not answer within {AnswerTimeout.TotalSeconds:0}s.{Tail()}"), + $"The app did not answer within {deadline.TotalSeconds:0.###}s.{Tail()}"), }; - private string ReadExactly(int length, CancellationToken token) + private string ReadExactly(int length, CancellationToken token, TimeSpan deadline) { var payload = new byte[length]; int offset = 0; @@ -339,7 +359,7 @@ private string ReadExactly(int length, CancellationToken token) } catch (OperationCanceledException) { - throw Timeout(Waiting.Answer); + throw Timeout(Waiting.Answer, deadline); } if (read == 0) throw new ToolException($"The app closed its output mid-answer.{Tail()}"); diff --git a/src/CuiSharp/CuiSurface.cs b/src/CuiSharp/CuiSurface.cs index 4cefd4d..32f350c 100644 --- a/src/CuiSharp/CuiSurface.cs +++ b/src/CuiSharp/CuiSurface.cs @@ -97,6 +97,19 @@ public Ui Ui /// public FrameSample LastFrame { get; private set; } + /// + /// Whether the latest completed frame declared its app data complete with + /// . + /// + /// + /// Readiness belongs to the frame, not to the app: a frame that goes back to loading is not + /// ready however ready its predecessor was, and this says nothing about the headless banner + /// (which only proves the channel is open) or about an animation settling. While a frame is + /// drawing — including in its deferred paint phase — this is still the previous completed + /// frame's verdict; the frame being drawn publishes its own only once its paint is done. + /// + public bool LastFrameReady => _frame.LastFrameReady; + /// /// Exceptions a component threw while this surface drew. A component's error /// boundary keeps the frame going, which would otherwise make a broken page look @@ -199,6 +212,11 @@ public void EndFrame() _recorderBelow = null; _current = _previous; _previous = null; + + // Readiness is published here, last, rather than at MarkReady or before CUI paints: + // the deferred canvas painters run inside EndFrame and may mark the frame they paint, + // and until this line a reader still sees the previous completed frame's verdict. + _frame.LastFrameReady = _frame.FrameReady; } } diff --git a/src/CuiSharp/Hosting/HeadlessApp.cs b/src/CuiSharp/Hosting/HeadlessApp.cs index 7b93255..71139bc 100644 --- a/src/CuiSharp/Hosting/HeadlessApp.cs +++ b/src/CuiSharp/Hosting/HeadlessApp.cs @@ -1,3 +1,4 @@ +using System.Diagnostics; using CuiSharp.Interop; namespace CuiSharp.Hosting; @@ -118,6 +119,155 @@ protected HeadlessApp(CuiSurface surface, Component? root, DrawFn? draw = null) /// Exceptions a component threw while drawing; an empty list is a healthy frame. public IReadOnlyList Faults => _faults; + /// + /// Whether the latest completed frame declared its data ready with + /// . A frame that did not mark itself is not ready, whatever the + /// frame before it claimed. + /// + public bool Ready => _surface.LastFrameReady; + + /// + /// The gap between the frames of a bounded wait. Frames are free but not instant, and a wait + /// that never sleeps turns into a busy spin between real draws; a few milliseconds keeps the + /// core honest without making a satisfied wait slow. + /// + private static readonly TimeSpan WaitPace = TimeSpan.FromMilliseconds(2); + + /// + /// Draws real frames until one completes that called , or until + /// has passed on the wall clock. Every frame drains completed + /// background work first, so data that arrives on a pool thread becomes visible on the frame + /// that draws after it — which is what a wait is for. The latest completed frame may answer + /// without another one being drawn: a wait that needs no frames reports + /// of 0 — and a window already spent when the first frame would have started is a miss that + /// drew nothing. A draw cannot be interrupted, but a condition that turns true only after the + /// window has passed is reported as a miss, not as a late success. + /// + /// How long to keep drawing. Must be finite and positive. + /// + /// Ends the wait early: it is asked before anything draws, after every draw (ahead of the + /// frame's own verdict), and after pacing before the next frame begins. + /// + public WaitOutcome WaitReady(TimeSpan timeout, CancellationToken cancellationToken = default) => + Wait(() => Ready, timeout, cancellationToken); + + /// + /// Draws real frames until one draws a control that answers (the + /// same vocabulary as ), or until passes. + /// The latest completed frame is asked first, so a wait for what is already on screen draws + /// no frames at all. + /// + /// The label, kind-and-label or path to wait for, taken verbatim. + /// How long to keep drawing. Must be finite and positive. + /// + /// Ends the wait early: it is asked before anything draws, after every draw (ahead of the + /// frame's own verdict), and after pacing before the next frame begins. + /// + public WaitOutcome WaitFor(string query, TimeSpan timeout, CancellationToken cancellationToken = default) + { + ArgumentException.ThrowIfNullOrEmpty(query); + return Wait(() => TryFind(query, out _), timeout, cancellationToken); + } + + /// + /// The wait both public waits share: ask the completed frame, then draw, look, stop by the + /// clock. The condition is read only between completed frames, so it never observes a + /// half-drawn frame, and nothing here touches a from another thread — + /// background results arrive because the next frame drains them, not because this loop polls + /// them. + /// + private WaitOutcome Wait(Func condition, TimeSpan timeout, CancellationToken cancellationToken) + { + // The clock starts before the first look: asking the latest completed frame is real + // work, and a window spent by it is a miss that drew nothing — never a zero-frame success. + var clock = Stopwatch.StartNew(); + return Wait(condition, timeout, cancellationToken, () => clock.Elapsed, Thread.Sleep); + } + + /// + /// The loop with its clock and its pacing handed to it. The public waits read the wall clock + /// and sleep for real; a test hands the same loop a clock and a pace it controls, so the + /// instant a pace lands on the deadline — cancellation inside it included — is staged rather + /// than raced. Nothing else differs: the token is asked before every frame and before an + /// expired window is reported, and the deadline is asked before every frame, the loop's + /// first included. + /// + internal WaitOutcome Wait( + Func condition, + TimeSpan timeout, + CancellationToken cancellationToken, + Func elapsed, + Action pace) + { + ObjectDisposedException.ThrowIf(_disposed, this); + ArgumentOutOfRangeException.ThrowIfLessThanOrEqual(timeout, TimeSpan.Zero); + + // The token first: a wait that is already abandoned must not draw even one frame. + cancellationToken.ThrowIfCancellationRequested(); + + // A frame already completed may answer without another being drawn; the window still + // governs, so a look that spent it reports a miss, not a zero-frame success. + if (condition()) return new WaitOutcome(elapsed() < timeout, 0, elapsed()); + + int frames = 0; + while (true) + { + // Both bounds are asked before every frame, this loop's first included: an + // abandoned wait draws nothing, and neither does one whose window passed while the + // last verdict was believed or a pace was being taken. The token is asked first, + // so a cancellation that arrived during the final pace outranks a clock that + // expired in the same instant. + cancellationToken.ThrowIfCancellationRequested(); + TimeSpan spent = elapsed(); + if (spent >= timeout) return new WaitOutcome(false, frames, spent); + + Frame(); + frames++; + + // The token is asked before the frame's verdict is believed: a callback that + // abandoned the wait and marked ready in the same breath has abandoned it. + cancellationToken.ThrowIfCancellationRequested(); + + bool satisfied = condition(); + spent = elapsed(); + + // A synchronous draw cannot be interrupted, but an answer that turns true only + // after the window has passed is a miss, not a success reported after expiry. + if (satisfied) return new WaitOutcome(spent < timeout, frames, spent); + + // Pace toward the next frame without pacing past the deadline; the loop head then + // asks the token before it reports the spent window, and draws nothing. + TimeSpan remaining = timeout - spent; + if (remaining > TimeSpan.Zero) pace(remaining < WaitPace ? remaining : WaitPace); + } + } + + /// What a bounded wait cost: whether the frame arrived, and how much it took. + public readonly struct WaitOutcome + { + internal WaitOutcome(bool satisfied, int frames, TimeSpan elapsed) + { + Satisfied = satisfied; + Frames = frames; + Elapsed = elapsed; + } + + /// Whether a frame answering the wait appeared within the timeout. + public bool Satisfied { get; } + + /// How many real frames the app drew while waiting; 0 when the completed frame + /// answered, or when the window was through before the wait's first frame. + public int Frames { get; } + + /// The wall clock spent drawing them. + public TimeSpan Elapsed { get; } + + /// + public override string ToString() => Satisfied + ? $"satisfied after {Frames} frames in {Elapsed.TotalSeconds:0.###}s" + : $"not satisfied after {Frames} frames in {Elapsed.TotalSeconds:0.###}s"; + } + /// The component being drawn, if this app draws one. public Component? Root => _root; diff --git a/src/CuiSharp/Hosting/HeadlessLoop.cs b/src/CuiSharp/Hosting/HeadlessLoop.cs index 3f5c5c8..6bf1304 100644 --- a/src/CuiSharp/Hosting/HeadlessLoop.cs +++ b/src/CuiSharp/Hosting/HeadlessLoop.cs @@ -48,7 +48,7 @@ public static class HeadlessLoop private static readonly string[] Commands = [ - "tree", "print", "layout", "find", "click", "type", "key", "focus", "move", "wheel", "frame", "pulse", "faults", "png", "quit", + "tree", "print", "layout", "find", "click", "type", "key", "focus", "move", "wheel", "frame", "pulse", "wait", "waittext", "faults", "png", "quit", ]; /// True when this process was asked to run without a window. @@ -194,6 +194,8 @@ public static int Run(HeadlessApp app, TextReader? input = null, TextWriter? out "wheel" => Wheel(app, argument), "frame" => Frame(app, argument), "pulse" => Pulse(app, argument), + "wait" => WaitCommand(app, argument), + "waittext" => WaitText(app, argument), "faults" => app.Faults.Count == 0 ? "" : string.Join("\n", app.Faults), "png" => SavePng(app, argument), _ => throw new InvalidOperationException($"Unknown command \"{command}\". Known: {string.Join(", ", Commands)}."), @@ -219,6 +221,80 @@ private static string Pulse(HeadlessApp app, string argument) return $"{frames} heap {GC.GetTotalMemory(false)}"; } + /// The window a wait gets when its command does not name one, in seconds. + private const double DefaultWaitSeconds = 10; + + /// + /// The longest wait this protocol serves. A wait binds the answer deadline of the client on + /// the other end, so the trust boundary needs a ceiling as well as a floor. + /// + private const double MaxWaitSeconds = 3600; + + /// + /// Draws real frames until one marks itself ready (ui.MarkReady). The answer is the + /// frame that proved the wait right; a miss is an error that names what never happened. + /// + private static string WaitCommand(HeadlessApp app, string argument) + { + double seconds = argument.Length == 0 ? DefaultWaitSeconds : ParseWaitSeconds(argument); + HeadlessApp.WaitOutcome outcome = app.WaitReady(TimeSpan.FromSeconds(seconds)); + if (!outcome.Satisfied) + { + throw new InvalidOperationException( + $"No frame marked itself ready within {seconds}s ({outcome.Frames} frames drawn). " + + "The app declares readiness with ui.MarkReady() once its data is complete."); + } + + return app.Print(); + } + + /// + /// Draws real frames until one draws the given text or query. The timeout is the command's + /// first token by contract and the query is everything after it, verbatim: text with spaces, + /// unicode, or a numeric tail (waittext 5 共 3 items) is never mistaken for a number. + /// + private static string WaitText(HeadlessApp app, string argument) + { + int space = argument.IndexOf(' ', StringComparison.Ordinal); + if (space < 0) + { + throw new ArgumentException( + "waittext needs a timeout in seconds and a query: `waittext 5 Button \"Save\"`.", + nameof(argument)); + } + + double seconds = ParseWaitSeconds(argument[..space]); + string query = argument[(space + 1)..]; + if (query.Trim().Length == 0) throw new ArgumentException("waittext needs a query after the timeout.", nameof(argument)); + + HeadlessApp.WaitOutcome outcome = app.WaitFor(query, TimeSpan.FromSeconds(seconds)); + if (!outcome.Satisfied) + { + throw new InvalidOperationException( + $"No frame drew \"{query}\" within {seconds}s ({outcome.Frames} frames drawn). " + + $"The last frame drew:\n{app.Print()}"); + } + + return app.Print(); + } + + /// + /// A wait window in seconds. TryParse accepts NaN and Infinity, and neither bounds a + /// wait anyone could observe, so only finite positive numbers up to the ceiling pass. + /// + private static double ParseWaitSeconds(string token) + { + if (!double.TryParse(token, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) + || !double.IsFinite(seconds) || seconds <= 0 || seconds > MaxWaitSeconds) + { + throw new ArgumentException( + $"wait needs a finite number of seconds between 0 and {MaxWaitSeconds:0}, not \"{token}\".", + nameof(token)); + } + + return seconds; + } + private static string Click(HeadlessApp app, string argument) { // Clicking answers with the frame the click produced: that is what the caller wants to diff --git a/src/CuiSharp/Runtime/UiFrameState.cs b/src/CuiSharp/Runtime/UiFrameState.cs index abc7cdc..e7420b8 100644 --- a/src/CuiSharp/Runtime/UiFrameState.cs +++ b/src/CuiSharp/Runtime/UiFrameState.cs @@ -27,6 +27,21 @@ internal sealed class UiFrameState /// Per-id UTF-8 buffers for the pooled ref string text inputs. internal readonly TextFieldPool Text = new(); + /// + /// Whether the frame drawing right now has called Ui.MarkReady. Cleared at every + /// , so a frame that goes back to loading is not ready on the strength of + /// an earlier frame's mark. + /// + internal bool FrameReady; + + /// + /// Whether the latest completed frame was ready. Published at the very end of + /// EndFrame — after CUI's deferred painters and the recorder are done — so a mark + /// made from a painter counts for the frame being painted, and mid-frame a reader still + /// sees the previous completed frame's verdict. + /// + internal bool LastFrameReady; + /// /// The name table this surface published. Kept for two reasons: it is what keeps the table's /// unmanaged block alive while CUI holds the pointer, and it is the one that is asked for the @@ -98,11 +113,14 @@ internal void Release() Localization = null; LocalizationBlock = 0; _localizationClear = false; + FrameReady = false; + LastFrameReady = false; FreeRetired(); } internal void Reset() { + FrameReady = false; Painters.Clear(); ReorderOrder = null; unsafe { ReorderStorage = null; } diff --git a/src/CuiSharp/Ui/Ui.Frame.cs b/src/CuiSharp/Ui/Ui.Frame.cs index 6a6af0d..da755cf 100644 --- a/src/CuiSharp/Ui/Ui.Frame.cs +++ b/src/CuiSharp/Ui/Ui.Frame.cs @@ -24,6 +24,25 @@ public unsafe ref partial struct Ui /// Device pixels per logical point for the window this frame draws into. public float DpiScale => Native.DpiScale(Handle); + // ---- readiness --------------------------------------------------------- + + /// + /// Declares that this frame shows complete, current app data. This is what + /// dotnet cui --wait ready waits for: readiness is a property of the frame that marks + /// it, so the next frame starts unready and a screen that goes back to loading is never seen + /// as ready on the strength of an older mark. + /// + /// + /// Mark it in the branch that decides the frame has drawn everything it was waiting for. + /// This is not the headless banner, which only says the channel is open, and not an animation + /// settling — it is the app's own claim about its own data. + /// + /// + /// ui.Label(page.Data); + /// if (page.IsLoaded) ui.MarkReady(); + /// + public void MarkReady() => _frame.FrameReady = true; + // ---- pointer and keyboard --------------------------------------------- /// Pointer position in points, top-left origin. From 48aa568334a66d7c73b84922440e207680042cc7 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 13:53:19 +0800 Subject: [PATCH 11/18] Track layout rectangle provenance and floating layers --- docs/API-SURFACE.txt | 4 + src/CuiSharp.Tests/LayoutInspectionTests.cs | 666 +++++++++++++++++++- src/CuiSharp.Tests/SemanticTreeTests.cs | 149 +++++ src/CuiSharp/Semantics/LayoutFormatter.cs | 50 +- src/CuiSharp/Semantics/SemanticNode.cs | 37 +- src/CuiSharp/Semantics/WidgetRecorder.cs | 260 +++++++- src/CuiSharp/Ui/Ui.BoolGroups.cs | 4 +- 7 files changed, 1130 insertions(+), 40 deletions(-) diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 65c5a6c..fa3b537 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -5297,6 +5297,8 @@ class CuiSharp.SemanticNode SemanticNode Find(String) String Print(Boolean) String ToString() + property Boolean Detached { get; } + property Boolean HasOwnRect { get; } property Boolean IsContainer { get; set; } property IReadOnlyList Children { get; } property Int32 Depth { get; } @@ -5309,6 +5311,8 @@ class CuiSharp.SemanticNode struct CuiSharp.SemanticWidget Boolean Contains(Single, Single) String ToString() + field Boolean Detached + field Boolean HasOwnRect field Boolean IsContainer field Int32 Depth field RectF Rect diff --git a/src/CuiSharp.Tests/LayoutInspectionTests.cs b/src/CuiSharp.Tests/LayoutInspectionTests.cs index 9aee473..0750d07 100644 --- a/src/CuiSharp.Tests/LayoutInspectionTests.cs +++ b/src/CuiSharp.Tests/LayoutInspectionTests.cs @@ -12,6 +12,8 @@ namespace CuiSharp.Tests; /// public class LayoutInspectionTests { + private int Counter; + private sealed class LayoutPage : Component { protected override void Draw(Ui ui) @@ -115,13 +117,127 @@ public void TheTreeAndItsRankingAreNotRewrittenByTheLayoutView() { if (!OperatingSystem.IsWindows()) return; - using var app = TestApp.Start(new LayoutPage(), 420, 480); + // A frame whose heading repeats the button's label: the page is as ambiguous as the + // ranking rule was built for. + using var app = TestApp.Start(ui => + { + ui.Heading("Save"); + if (ui.Button("Save")) Counter++; + using (ui.Column(new() { Id = "pair", Width = Size.Fill })) + ui.Button("Later"); + }, 400, 300); + + string before = app.Print(); + string beforeTree = app.Tree.Print(rects: true); + string layout = app.PrintLayout(); + + // The layout view is additive: after printing it, the plain tree is the same string it + // was before, down to the rects, and the view did print something of its own. + Assert.Equal(before, app.Print()); + Assert.Equal(beforeTree, app.Tree.Print(rects: true)); + Assert.Contains("Column \"pair\"", layout, StringComparison.Ordinal); + Assert.StartsWith(LayoutFormatter.Header, layout, StringComparison.Ordinal); + + // And the query still ranks what can be acted on above the heading that repeats it. + Assert.Equal("Button", app.Tree.Find("Save").Kind); + app.Find("Save").ClickAndFrame(); + Assert.Equal(1, Counter); + } + + [Fact] + public void RecordingOnAndOffDrawTheIdenticalFrame() + { + if (!OperatingSystem.IsWindows()) return; + + using var surface = CuiSurface.Create(400, 300); + var pixels = new byte[surface.PixelWidth * surface.PixelHeight * 4]; + var captured = new byte[pixels.Length]; + DrawFn draw = ui => + { + ui.Heading("Title", 2); + ui.Button("Go"); + using (ui.Column(new() { Id = "panel", Width = Size.Fill, Pad = 8 })) + ui.Button("Inside"); + }; + + // The same surface, the same callback, the same frame time, recording toggled between + // draws: the picture must not be able to tell whether it was watched. + surface.RecordWidgets = false; + surface.Draw(draw, pixels, PixelFormat.Rgba); + surface.Render(captured, PixelFormat.Rgba); + byte[] off = [.. captured]; + + surface.RecordWidgets = true; + surface.Draw(draw, pixels, PixelFormat.Rgba); + surface.Render(captured, PixelFormat.Rgba); + byte[] on = [.. captured]; + + Assert.Contains(on, b => b != 255); // dark text pixels: something was actually painted + Assert.Equal(off, on); + + // Through another off/on cycle the frame is still itself, and the recorder really did + // have content on the frames that were watched. + surface.RecordWidgets = false; + surface.Draw(draw, pixels, PixelFormat.Rgba); + surface.Render(captured, PixelFormat.Rgba); + Assert.True(off.SequenceEqual(captured)); + surface.RecordWidgets = true; + surface.Draw(draw, pixels, PixelFormat.Rgba); + surface.Render(captured, PixelFormat.Rgba); + Assert.True(off.SequenceEqual(captured)); + Assert.Contains(surface.SemanticFrame, w => w.Kind == "Column" && w.Text == "panel"); + } + + [Fact] + public void TheSameInputOnSurfacesWatchedAndUnwatchedEndsIdentical() + { + if (!OperatingSystem.IsWindows()) return; + + var watchedPage = new AButton(); + var plainPage = new AButton(); + using var watched = TestApp.Start(watchedPage, 400, 300); + using var plain = TestApp.Start(plainPage, 400, 300); + plain.Surface.RecordWidgets = false; + + // The script is fixed by the first frame's geometry, not by each run's tree: both + // surfaces get the identical event sequence regardless of what they record. + RectF button = watched.Tree.Find("Go").Rect; + byte[] watchedBefore = [.. watched.RawPixels]; + Drive(watched, button); + byte[] plainBefore = [.. plain.RawPixels]; + Drive(plain, button); + + // The click is real and observable, not an id lookup: the model moved, the frame + // changed with it, and the watched surface ends on exactly the plain surface's pixels. + Assert.Equal(1, watchedPage.Clicks); + Assert.Equal(1, plainPage.Clicks); + Assert.False(watchedBefore.SequenceEqual(watched.RawPixels.ToArray())); + Assert.False(plainBefore.SequenceEqual(plain.RawPixels.ToArray())); + Assert.True(watched.RawPixels.SequenceEqual(plain.RawPixels)); + Assert.Empty(watched.Faults); + Assert.Empty(plain.Faults); + } + + private static void Drive(HeadlessApp app, RectF target) + { + app.MoveTo(target.X + target.W / 2f, target.Y + target.H / 2f); + app.Press(); + app.Release(); + app.Frame(); + } - // The layout view is additive: the plain tree still names the same nodes in the same - // nesting, and a control still outranks a heading that repeats its text. - Assert.Contains("Column \"root\"", app.Print(), StringComparison.Ordinal); - Assert.Contains("Button \"Go\"", app.Print(), StringComparison.Ordinal); - Assert.Equal("Button", app.Tree.Find("Go").Kind); + private sealed class AButton : Component + { + public int Clicks; + + protected override void Draw(Ui ui) + { + using (ui.Column(new() { Width = Size.Fill, Pad = 16, Gap = 8 })) + { + ui.Label($"clicks {Clicks}"); + if (ui.Button("Go")) Clicks++; + } + } } [Fact] @@ -195,6 +311,544 @@ public void AUnicodeLayoutPayloadRoundTripsExactlyByItsByteCount() Assert.Equal(app.PrintLayout(), Wire(app, "layout")); } + [Fact] + public void AContainerThatOnlyBorrowsThePreviousIdPrintsItsRectAsUnverified() + { + if (!OperatingSystem.IsWindows()) return; + + // cui_table_begin never publishes an id of its own, so after a button the table + // records under the button's id. The layout view must not sell that as the table's, + // and the column's bounds must rest on the button alone. + int clicks = 0; + using var app = TestApp.Start(ui => + { + TableColumn[] columns = [new("Name", Size.Fill)]; + using (ui.Column(new() { Id = "host", Width = Size.Fill })) + { + if (ui.Button("Mark")) clicks++; + using (ui.Table("grid", columns)) + { + } + } + }, 400, 300); + + string[] lines = LayoutLines(app); + SemanticNode table = app.Tree.Find("grid"); + Assert.False(table.HasOwnRect); + // The borrowed id is real, so the honest label is unverified, not none. + Assert.NotEqual(0u, table.Id); + + string tableLine = Assert.Single(lines, l => l.Contains("Table \"grid\"", StringComparison.Ordinal)); + Assert.Contains("[rect:unverified]", tableLine, StringComparison.Ordinal); + + string hostLine = Assert.Single(lines, l => l.Contains("Column \"host\"", StringComparison.Ordinal)); + Assert.Contains($"union≥[{app.Tree.Find("Mark").Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + + // A button's own rect is proven, and the same frame still answers queries and clicks. + string buttonLine = Assert.Single(lines, l => l.Contains("Button \"Mark\"", StringComparison.Ordinal)); + Assert.DoesNotContain("rect:", buttonLine, StringComparison.Ordinal); + app.Find("Mark").ClickAndFrame(); + Assert.Equal(1, clicks); + } + + [Fact] + public void AFloatingDialogIsNotCountedIntoTheColumnThatDrawsIt() + { + if (!OperatingSystem.IsWindows()) return; + + bool open = true; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Fill, Height = Size.Px(60), Pad = 4 })) + { + ui.Button("Inside"); + using (ui.Dialog("peek", ref open)) + { + ui.Button("Deep"); + using (ui.DialogFooter()) + ui.Button("Ok"); + } + } + }, 400, 300); + + string[] lines = LayoutLines(app); + + // Floating is not invisible: the dialog prints where the app drew it, marked as + // floating, still holding its own children's bounds. + string dialogLine = Assert.Single(lines, l => l.Contains("Dialog \"peek\"", StringComparison.Ordinal)); + Assert.Contains("(floating)", dialogLine, StringComparison.Ordinal); + Assert.Contains("union≥[", dialogLine, StringComparison.Ordinal); + Assert.Contains("Button \"Ok\"", string.Join('\n', lines), StringComparison.Ordinal); + + // The nesting the app wrote is untouched; only the geometry attribution changed. + // One tree snapshot: app.Tree rebuilds the tree on every access. + SemanticNode snapshot = app.Tree; + SemanticNode host = snapshot.Find("host"); + SemanticNode dialog = snapshot.Find("peek"); + Assert.Equal(host, dialog.Parent); + Assert.True(dialog.Detached); + Assert.False(host.Detached); + + // The dialog's buttons are laid out on its own full-screen layer, far outside a + // 60-point column: that must not become the column's union or its overflow. + string hostLine = Assert.Single(lines, l => l.Contains("Column \"host\"", StringComparison.Ordinal)); + Assert.Contains($"union≥[{app.Tree.Find("Inside").Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void TheKindsProvenToPublishTheirOwnIdPrintTheirOwnRects() + { + if (!OperatingSystem.IsWindows()) return; + + bool check = true, sw = true, chip = true; + int radio = 1, segment = 0; + using var app = TestApp.Start(ui => + { + using (ui.Card(new() { Id = "proven" })) + { + ui.Button("B"); + ui.Checkbox("C", ref check); + ui.Switch("S", ref sw); + ui.Radio("R", ref radio, 1); + ui.Chip("H", ref chip); + ui.Link("L"); + ui.Segmented("G", ["one", "two"], ref segment); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + (string Kind, string Text)[] proven = + [ + ("Card", "proven"), ("Button", "B"), ("Checkbox", "C"), ("Switch", "S"), + ("Radio", "R"), ("Chip", "H"), ("Link", "L"), ("Segmented", "G"), + ]; + foreach ((string kind, string text) in proven) + { + string line = Assert.Single(lines, l => l.TrimStart().StartsWith($"{kind} \"{text}\"", StringComparison.Ordinal)); + Assert.DoesNotContain("rect:", line, StringComparison.Ordinal); + Assert.Contains($"[{app.Tree.Find(text).Rect}]", line, StringComparison.Ordinal); + } + } + + [Fact] + public void AWidgetThatPublishesAPartIdIsNotGivenAnOwnedRect() + { + if (!OperatingSystem.IsWindows()) return; + + // cui_slider_ex lays the slider out under one id and leaves the track leaf's id as + // last_id: the recorded id is real and inside the slider, but it is not the slider's + // own layout id, so the view prints doubt instead of a part's rect for the whole. + float v = 0.5f; + using var app = TestApp.Start(ui => + { + ui.Button("Ref"); + ui.Slider("vol", ref v, 0f, 1f); + }, 400, 300); + + string slider = Assert.Single(LayoutLines(app), l => l.Contains("Slider \"vol\"", StringComparison.Ordinal)); + Assert.Contains("[rect:unverified]", slider, StringComparison.Ordinal); + // Unverified because of provenance, not because no id was found: the track's id is real. + Assert.NotEqual(0u, app.Tree.Find("vol").Id); + } + + [Fact] + public void AnEmptyGroupThatBuiltNothingBorrowsThePreviousRect() + { + if (!OperatingSystem.IsWindows()) return; + + // cui__segments and cui_toggle_group_ex return before creating a node or publishing + // an id when given no items, so an empty group records under whoever drew before it. + // Only the strip native actually built may claim its rect. + bool[] none = []; + using var app = TestApp.Start(ui => + { + int segIndex = 0; + ui.Button("Prior"); + using (ui.Column(new() { Id = "host", Width = Size.Fill })) + { + ui.Segmented("seg", [], ref segIndex); + ui.ToggleGroup("tg", [], none); + ui.Segmented("full", ["one", "two"], ref segIndex); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + SemanticNode snapshot = app.Tree; + uint prior = snapshot.Find("Prior").Id; + + SemanticNode seg = snapshot.Find("seg"); + SemanticNode tg = snapshot.Find("tg"); + // The borrowed id is the button's, unchanged: real, and not theirs. + Assert.Equal(prior, seg.Id); + Assert.Equal(prior, tg.Id); + Assert.False(seg.HasOwnRect); + Assert.False(tg.HasOwnRect); + Assert.Contains("[rect:unverified]", LineFor(lines, "Segmented \"seg\""), StringComparison.Ordinal); + Assert.Contains("[rect:unverified]", LineFor(lines, "ToggleGroup \"tg\""), StringComparison.Ordinal); + + // The nonempty strip built its node and published its id: it owns its rect again. + SemanticNode full = snapshot.Find("full"); + Assert.True(full.HasOwnRect); + Assert.NotEqual(prior, full.Id); + string fullLine = LineFor(lines, "Segmented \"full\""); + Assert.DoesNotContain("rect:", fullLine, StringComparison.Ordinal); + Assert.Contains($"[{full.Rect}]", fullLine, StringComparison.Ordinal); + + // The column's bounds rest on the one thing it truly holds, not on the button drawn + // outside it that the empty groups borrowed. + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{full.Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void AGroupThatSharesADrawnWidgetsIdStillBorrowsIt() + { + if (!OperatingSystem.IsWindows()) return; + + // cui_make_id hashes only the "###id" part of a name, so a group that was never built can + // find its very own hash already sitting in last_id, left there by somebody else. An id + // is not evidence that this call drew a widget; the count the wrapper handed native is. + bool[] none = []; + bool[] two = [true, false]; + string[] labels = ["one", "two"]; + using var app = TestApp.Start(ui => + { + ui.Button("Open###shared"); + using (ui.Column(new() { Id = "host", Width = Size.Fill, Height = Size.Px(120), Pad = 4 })) + { + ui.ToggleGroup("Empty###shared", [], none); + ui.ToggleGroup("Built", labels, two); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + SemanticNode snapshot = app.Tree; + SemanticNode prior = snapshot.Find("Open###shared"); + SemanticNode empty = snapshot.Find("Empty###shared"); + SemanticNode built = snapshot.Find("Built"); + + // The collision is exact, as cui_make_id intends: same id, same cached rect, one widget. + Assert.Equal(prior.Id, empty.Id); + Assert.Equal(prior.Rect, empty.Rect); + Assert.True(prior.Rect.W > 0 && prior.Rect.H > 0); + + // The button built itself; the group with no labels did not, and cannot borrow it. + Assert.True(prior.HasOwnRect); + Assert.False(empty.HasOwnRect); + Assert.Contains("[rect:unverified]", LineFor(lines, "ToggleGroup \"Empty###shared\""), StringComparison.Ordinal); + + // Same name shape, real labels: the group that built its row keeps its own rect. + Assert.True(built.HasOwnRect); + Assert.DoesNotContain("rect:", LineFor(lines, "ToggleGroup \"Built\""), StringComparison.Ordinal); + + // The column holds exactly the one group that exists: the button outside it, whose rect + // the empty group shares, is not in its bounds and does not make it overflow. + Assert.NotEqual(built.Rect, prior.Rect); + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{built.Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void AnOpenedUserMenuStaysOffTheColumnsBooks() + { + if (!OperatingSystem.IsWindows()) return; + + // cui_user_menu_begin (cui_actions.c) draws a trigger in the flow, then opens its + // body through cui__popup_begin: the body belongs to the popup's layer, not to the + // column the app drew the trigger inside. + RectF trigger = default; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Px(140), Height = Size.Px(60), Pad = 4 })) + { + ui.Button("Body"); + // The trigger's own id, the same derivation the native widget uses. + trigger = ui.RectOf(ui.MakeId("me") ^ 0x05E4u); + using (ui.UserMenu("me")) + ui.Button("Sign out"); + } + }, 400, 300); + + // One more frame: RectOf reads the frame before, so the trigger has a rect to aim at. + app.Frame(); + Assert.True(trigger.W > 0 && trigger.H > 0); + + // Hover, press, release: cui_user_menu_begin toggles on the click, so the release + // frame is the first frame whose body draws. + app.MoveTo(trigger.X + trigger.W / 2f, trigger.Y + trigger.H / 2f); + app.Press(); + app.Release(); + + string[] lines = LayoutLines(app); + Assert.Contains("(floating)", LineFor(lines, "UserMenu \"me\""), StringComparison.Ordinal); + + SemanticNode snapshot = app.Tree; + SemanticNode signOut = snapshot.Find("Sign out"); + SemanticNode host = snapshot.Find("host"); + Assert.True(signOut.HasOwnRect); + // The popup landed below the 60-point column, so counting it would have moved the + // column's union: the exact union is the proof it did not. + Assert.True(signOut.Rect.Y >= host.Rect.Y + host.Rect.H); + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{snapshot.Find("Body").Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void AnOpenedMenuBarMenuStaysOffTheHostsBounds() + { + if (!OperatingSystem.IsWindows()) return; + + // cui_menu_bar_menu_begin (cui_chrome.c) opens its menu through cui__popup_begin. + RectF trigger = default; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Px(240), Height = Size.Px(120), Pad = 4 })) + { + using (ui.MenuBar("mb")) + { + // Inside the bar's id scope, MakeId derives the trigger's id exactly as + // cui_menu_bar_menu_begin does. + trigger = ui.RectOf(ui.MakeId("File")); + using (ui.MenuBarMenu("File")) + ui.Button("New file"); + } + + ui.Button("Body"); + } + }, 400, 300); + + app.Frame(); + Assert.True(trigger.W > 0 && trigger.H > 0); + app.MoveTo(trigger.X + trigger.W / 2f, trigger.Y + trigger.H / 2f); + app.Press(); + app.Release(); + + string[] lines = LayoutLines(app); + Assert.Contains("(floating)", LineFor(lines, "MenuBarMenu \"File\""), StringComparison.Ordinal); + + SemanticNode snapshot = app.Tree; + SemanticNode newFile = snapshot.Find("New file"); + Assert.True(newFile.HasOwnRect); + Assert.NotEqual(snapshot.Find("Body").Rect, newFile.Rect); + + // Only the in-flow button counts toward the column; the bar itself stays unverified, + // and the popup's verified button must not join either. + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{snapshot.Find("Body").Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void FloatingClassificationFollowsNativeLayersNotLabels() + { + // Every kind here was read out of the pinned native source at a cui__float_begin or + // cui__popup_begin call site; MenuBarMenu, UserMenu and PathBarMenu are the scopes + // whose body a popup carries though their trigger sits in the flow. + string[] nativeLayers = + [ + "Dialog", "Sheet", "Popover", "Menu", "ContextMenu", "HoverCard", + "Toast", "Tooltip", "Tour", "MenuBarMenu", "UserMenu", "PathBarMenu", + ]; + foreach (string kind in nativeLayers) + Assert.True(GeometryProvenance.IsFloating(kind), $"{kind} draws on a cui__float_begin layer"); + + // The things around a floating layer stay on the caller's layer: the bar that owns a + // trigger, the footer inside a dialog, the item inside a menu, and the commands that + // only poke a popup's open flag. + foreach (string kind in new[] { "MenuBar", "DialogFooter", "MenuItem", "MenuLabel", "PopoverOpen", "PathBar", "Button", "Column" }) + Assert.False(GeometryProvenance.IsFloating(kind), $"{kind} is drawn in the flow"); + } + + [Fact] + public void UnnamedFloatingScopesKeepTheirContentOffTheHostsBounds() + { + if (!OperatingSystem.IsWindows()) return; + + // An unnamed dialog and an unnamed popover record no node of their own, but native + // still draws their bodies on layers of their own: the recorder must carry that + // boundary, or their buttons would land in the column's bounds by name of nothing. + bool open = true; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Fill, Height = Size.Px(120), Pad = 4 })) + { + ui.Button("Before"); + ui.PopoverOpen(string.Empty); + using (ui.Dialog(string.Empty, ref open)) + ui.Button("Modal move"); + using (ui.Popover(string.Empty)) + ui.Button("Quiet note"); + ui.Button("After"); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + string joined = string.Join('\n', lines); + Assert.Contains("Button \"Modal move\"", joined, StringComparison.Ordinal); + Assert.Contains("Button \"Quiet note\"", joined, StringComparison.Ordinal); + + SemanticNode snapshot = app.Tree; + SemanticNode modal = snapshot.Find("Modal move"); + SemanticNode note = snapshot.Find("Quiet note"); + Assert.True(modal.HasOwnRect && note.HasOwnRect); + + // Both in-flow buttons count - including the one drawn after both layers closed - + // and nothing else does: the union is exactly their own, although the off-layer + // buttons are real content that would have widened it. + var expected = Union(snapshot.Find("Before").Rect, snapshot.Find("After").Rect); + Assert.NotEqual(expected, Union(expected, modal.Rect)); + Assert.NotEqual(expected, Union(expected, note.Rect)); + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{expected}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + } + + [Fact] + public void ANestedPopupStaysOutOfItsDialogsOwnBounds() + { + if (!OperatingSystem.IsWindows()) return; + + // Layers stack: the dialog raises one, the popover raises another, and each scope's + // bounds are its own layer's bounds - never the layer of something drawn inside it. + bool open = true; + using var app = TestApp.Start(ui => + { + ui.Button("Anchor"); + using (ui.Dialog("named", ref open)) + { + ui.Button("In dialog"); + // Armed inside the dialog: the popover's id is derived under the dialog's + // id scope, and read back under the same one. + ui.PopoverOpen("deep"); + using (ui.Popover("deep")) + ui.Button("In popover"); + } + }, 500, 400); + + string[] lines = LayoutLines(app); + SemanticNode snapshot = app.Tree; + SemanticNode inDialog = snapshot.Find("In dialog"); + SemanticNode inPopover = snapshot.Find("In popover"); + Assert.True(inDialog.HasOwnRect && inPopover.HasOwnRect); + + string dialogLine = LineFor(lines, "Dialog \"named\""); + Assert.Contains("(floating)", dialogLine, StringComparison.Ordinal); + Assert.Contains($"union≥[{inDialog.Rect}] (lower-bound", dialogLine, StringComparison.Ordinal); + + string popoverLine = LineFor(lines, "Popover \"deep\""); + Assert.Contains("(floating)", popoverLine, StringComparison.Ordinal); + Assert.Contains($"union≥[{inPopover.Rect}]", popoverLine, StringComparison.Ordinal); + } + + [Fact] + public void ADeepUnnamedFloatingScopeKeepsItsBodyOffTheHostsBounds() + { + if (!OperatingSystem.IsWindows()) return; + + // CUI nests layouts as deep as its own parent stack, and the layer table is as deep, so a + // floating scope is a boundary wherever the app happened to open it. Seventy unnamed + // columns are pure nesting the semantic tree never sees: only the layer tells the dialog's + // centered body apart from the column that drew it. + bool open = true; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Px(180), Height = Size.Px(80), Pad = 4 })) + { + ui.Button("Before"); + NestUnnamedColumns(ui, 70, ref open); + ui.Button("After"); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + Assert.Contains("Button \"Deep move\"", string.Join('\n', lines), StringComparison.Ordinal); + + SemanticNode snapshot = app.Tree; + SemanticNode modal = snapshot.Find("Deep move"); + Assert.True(modal.HasOwnRect); + + // Both in-flow buttons count, the modal one does not - and its rect is real content that + // would have moved the union, since the dialog is placed in the middle of the viewport. + var expected = Union(snapshot.Find("Before").Rect, snapshot.Find("After").Rect); + Assert.NotEqual(expected, Union(expected, modal.Rect)); + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{expected}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + + static void NestUnnamedColumns(Ui ui, int depth, ref bool open) + { + if (depth == 0) + { + using (ui.Dialog(string.Empty, ref open)) + ui.Button("Deep move"); + return; + } + + using (ui.Column(new() { Width = Size.Fill, Height = Size.Fill })) + NestUnnamedColumns(ui, depth - 1, ref open); + } + } + + [Fact] + public void PastNativesOwnNestingLimitNothingIsCountedIntoTheFlow() + { + if (!OperatingSystem.IsWindows()) return; + + // Deeper than CUI's parent stack the recorder cannot remember which layer it was on, so + // it claims none: what a too-deep frame draws belongs to no layer, and never to the flow + // that enclosed it. CUI itself stops parenting here, which is why the depth is only ever + // reached by an app that lost control of its nesting - the view loses a union, not a lie. + bool open = true; + using var app = TestApp.Start(ui => + { + using (ui.Column(new() { Id = "host", Width = Size.Px(180), Height = Size.Px(80), Pad = 4 })) + { + ui.Button("Before"); + NestUnnamedColumns(ui, 300, ref open); + } + }, 400, 300); + + string[] lines = LayoutLines(app); + SemanticNode snapshot = app.Tree; + SemanticNode modal = snapshot.Find("Deep move"); + SemanticNode before = snapshot.Find("Before"); + + // The dialog's button is real content, outside the host's box: counted, it would have + // both widened the union and made the column overflow. + Assert.True(modal.Rect.H > 0 && modal.Rect.Y > before.Rect.Y + before.Rect.H); + string hostLine = LineFor(lines, "Column \"host\""); + Assert.Contains($"union≥[{before.Rect}] (lower-bound", hostLine, StringComparison.Ordinal); + Assert.DoesNotContain("OVERFLOW", hostLine, StringComparison.Ordinal); + + static void NestUnnamedColumns(Ui ui, int depth, ref bool open) + { + if (depth == 0) + { + using (ui.Dialog(string.Empty, ref open)) + ui.Button("Deep move"); + return; + } + + using (ui.Column(new() { Width = Size.Fill, Height = Size.Fill })) + NestUnnamedColumns(ui, depth - 1, ref open); + } + } + + private static string LineFor(string[] lines, string label) => + Assert.Single(lines, l => l.TrimStart().StartsWith(label + " ", StringComparison.Ordinal)); + + private static RectF Union(RectF a, RectF b) + { + float x = MathF.Min(a.X, b.X), y = MathF.Min(a.Y, b.Y); + float right = MathF.Max(a.X + a.W, b.X + b.W), bottom = MathF.Max(a.Y + a.H, b.Y + b.H); + return new RectF(x, y, right - x, bottom - y); + } + /// One command down the headless protocol, the answer payload back — the loop's own wire. private static string Wire(HeadlessApp app, string command) { diff --git a/src/CuiSharp.Tests/SemanticTreeTests.cs b/src/CuiSharp.Tests/SemanticTreeTests.cs index b1bdb4a..3a0e40b 100644 --- a/src/CuiSharp.Tests/SemanticTreeTests.cs +++ b/src/CuiSharp.Tests/SemanticTreeTests.cs @@ -320,6 +320,155 @@ public void ANamedBoxFirstInTheFrameHasARealRectToo() Assert.True(first.Rect.W > 0 && first.Rect.H > 0); } + [Fact] + public void ANamedRowAndANamedCardReportTheirOwnRectToo() + { + if (!OperatingSystem.IsWindows()) return; + + using var app = TestApp.Start(ui => + { + ui.Button("Before"); + using (ui.Row(new() { Id = "line", Width = Size.Fill, Gap = 8 })) + ui.Button("Inside row"); + using (ui.Card(new() { Id = "tile", Width = Size.Fill, Gap = 4 })) + ui.Button("Inside card"); + }, 400, 300); + + SemanticNode before = app.Tree.Find("Before"); + foreach (string id in new[] { "line", "tile" }) + { + SemanticNode container = app.Tree.Find(id); + SemanticNode inside = container.Find($"Inside {(id == "line" ? "row" : "card")}"); + + // The container's rect is the box CUI laid it out under its own id: it has one, + // and it is not the rect of whatever action widget was drawn before it. + Assert.True(container.Rect.W > 0 && container.Rect.H > 0); + Assert.NotEqual(before.Rect, container.Rect); + Assert.InRange(inside.Rect.Y, container.Rect.Y, container.Rect.Y + container.Rect.H); + } + + // The row sits between the button and the card, so the rects really are three boxes. + SemanticNode line = app.Tree.Find("line"); + SemanticNode tile = app.Tree.Find("tile"); + Assert.True(line.Rect.Y >= before.Rect.Y + before.Rect.H); + Assert.True(tile.Rect.Y >= line.Rect.Y + line.Rect.H); + } + + [Fact] + public void BothCardOverloadsRecordTheSameIdentityAndTheClickedOneReportsIt() + { + if (!OperatingSystem.IsWindows()) return; + + SemanticNode plain = null!; + using (var app = TestApp.Start(ui => + { + ui.Button("Before"); + using (ui.Card(new() { Id = "tile", Width = Size.Fill, Gap = 4 })) + ui.Button("Inside card"); + }, 400, 300)) + { + plain = app.Tree.Find("tile"); + } + + var page = new CardPage(); + using var clicked = TestApp.Start(page, 400, 300); + + // First frame: nothing was clicked, so the scope reports the interaction truthfully. + Assert.False(page.FirstFrameClicked); + SemanticNode scoped = clicked.Tree.Find("tile"); + + // Same id in the same place through the other overload: the identity CUI gave the card + // is the same, and so is the box it was laid out in. + Assert.Equal(plain.Id, scoped.Id); + Assert.Equal(plain.Rect, scoped.Rect); + Assert.NotEqual(clicked.Tree.Find("Before").Rect, scoped.Rect); + + // The identity is the card's own, so a click inside its own padding lands on the card: + // the frame that draws the click reports it. A borrowed id would click the button. + // (Only a hoverable card tracks interaction; the plain one still records identity.) + clicked.MoveTo(scoped.Rect.X + scoped.Rect.W / 2f, scoped.Rect.Y + scoped.Rect.H - 6f); + clicked.Press(); + clicked.Release(); + clicked.Frame(); + Assert.True(page.ClickFrameClicked); + } + + private sealed class CardPage : Component + { + public bool FirstFrameClicked; + public bool ClickFrameClicked; + + protected override void Draw(Ui ui) + { + ui.Button("Before"); + using (ui.Card(new() { Id = "tile", Width = Size.Fill, Gap = 4, Hoverable = true }, out bool clicked)) + { + if (ui.FrameCount == 1) FirstFrameClicked = clicked; + else ClickFrameClicked |= clicked; + ui.Button("Inside card"); + } + } + } + + [Fact] + public void TheSameContainerNameInTwoIdScopesRecordsTwoNativeIds() + { + if (!OperatingSystem.IsWindows()) return; + + uint scoped = 0; + using var app = TestApp.Start(ui => + { + using (ui.Card(new() { Id = "dup", Width = Size.Fill })) + ui.Button("outside"); + using (ui.Id(7)) + { + scoped = ui.MakeId("dup"); + using (ui.Card(new() { Id = "dup", Width = Size.Fill })) + ui.Button("inside"); + } + }, 400, 300); + + SemanticNode first = app.Tree.Find("Card \"dup\""); + SemanticNode second = app.Tree.Descendants().Last(n => n.Kind == "Card"); + + // A name is only an id inside its id scope: CUI seeds the hash with the enclosing ui.Id, + // and the recorder reads back the id each container was actually laid out under, so the + // two same-named cards are two identities, each equal to ui.MakeId of its own scope. + Assert.NotEqual(first.Id, second.Id); + Assert.NotEqual(0u, first.Id); + Assert.Equal(scoped, second.Id); + } + + [Fact] + public void DerivedScopeIdsSurviveUnicodeInterpolatedAndHiddenNames() + { + if (!OperatingSystem.IsWindows()) return; + + uint unicode = 0, hidden = 0; + string name = $"布局 {1}"; + using var app = TestApp.Start(ui => + { + using (ui.Id(3)) + { + unicode = ui.MakeId(name); + using (ui.Scroll(new() { Id = name, Height = Size.Px(60) })) + ui.Button("内容"); + hidden = ui.MakeId("可见###stable"); + using (ui.Row(new() { Id = "可见###stable", Width = Size.Fill })) + ui.Button("内容2"); + } + }, 400, 300); + + // The recorder recomputes CUI's derivation for these scopes, so whatever bytes the app + // named them with - Unicode, interpolated, or the hidden "visible###id" form - the + // recorded id is exactly the one native used for layout, and the name round-trips. + SemanticNode scroll = app.Tree.Find(name); + SemanticNode row = app.Tree.Find("可见###stable"); + Assert.Equal(unicode, scroll.Id); + Assert.Equal(hidden, row.Id); + Assert.True(scroll.Rect.W > 0 && row.Rect.W > 0); + } + [Fact] public void RecordingAFrameCostsTheDrawNothing() { diff --git a/src/CuiSharp/Semantics/LayoutFormatter.cs b/src/CuiSharp/Semantics/LayoutFormatter.cs index f5b1d52..870c445 100644 --- a/src/CuiSharp/Semantics/LayoutFormatter.cs +++ b/src/CuiSharp/Semantics/LayoutFormatter.cs @@ -12,22 +12,29 @@ namespace CuiSharp; /// What CUI does not expose, this does not invent. A true content extent lives in CUI's private /// per-id scroll state and a wheel-scrolled widget reports an unbounded sentinel there, so a /// scrolled or virtualized node prints extent:UNKNOWN instead of a child union pretending -/// to be an extent. A widget recorded by text alone (a heading, a label) is laid out under no id -/// of its own, so its rectangle is not verified and its bounds are excluded from every union. -/// An unnamed container has no native id at all and cannot appear. +/// to be an extent. A rect is printed as fact only where the recorder proved the id is the +/// widget's own (): a widget recorded by text alone, or by +/// whatever id the previous call happened to leave behind, prints [rect:unverified] and +/// counts for nothing. An unnamed container has no native id at all and cannot appear. /// /// /// Observed bounds are written union≥: they are the union of the verified recorded rects -/// inside a node, a lower bound on what the node actually holds, not the layout's content extent. +/// a node's own native layout layer holds, a lower bound on what the node actually holds, not +/// the layout's content extent. A floating widget — a dialog, popover, menu, tooltip, toast or +/// tour — is drawn on a layer of its own, marked (floating), kept in the tree exactly +/// where the app drew it, and never counted into the bounds of the containers it is nested +/// under; an unnamed floating scope leaves no node of its own, but its contents still carry +/// the layer they were drawn on. /// /// public static class LayoutFormatter { /// The warning line every layout view carries, so no line below it reads as more than it is. public const string Header = - "layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and text-only " - + "widgets have no verified rect; union≥ is a lower bound of recorded rects, not a " - + "content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them private)."; + "layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and widgets " + + "without a proven own id print [rect:unverified]; union≥ is a lower bound of recorded " + + "rects, not a content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them " + + "private); floating layers (dialogs, popovers, toasts, ...) sit outside their container."; /// /// The wrappers CUI keeps its content scrolled behind: the rect is the viewport, the real @@ -61,6 +68,10 @@ void Walk(SemanticNode node, int indent) { sb.Append(' ', indent * 2).Append(Label(node)); + // A floating widget is drawn on a layer of its own: say so where it prints, so its + // rect and its absence from the ancestors' bounds both read as deliberate. + if (node.Detached) sb.Append(" (floating)"); + // The frame root is not a widget: it never asked for a rect. if (node.Parent is not null) sb.Append(' ').Append(HasVerifiedRect(node) ? $"[{node.Rect}]" : RectDoubt(node)); @@ -81,24 +92,33 @@ void Walk(SemanticNode node, int indent) } /// - /// True when the id this node was recorded under is the widget's own: CUI laid it out under - /// that id and only that widget's rect can be there. A text-only widget records under - /// whatever id the last action set, which makes its rect someone else's. + /// True when the recorder proved the id this node was recorded under is the widget's own — + /// the id CUI laid it out under — and CUI actually gave that id a rectangle this frame. + /// Nothing else counts: not the kind's rank in a query, not a label that looks trustworthy. /// private static bool HasVerifiedRect(SemanticNode node) => - node.Id != 0 && !SemanticNode.IsStatic(node.Kind); + node.Id != 0 && node.HasOwnRect && node.Rect.W > 0 && node.Rect.H > 0; private static string RectDoubt(SemanticNode node) => node.Id == 0 ? "[rect:none]" : "[rect:unverified]"; - /// The union of the verified rects of everything below this node, or null if none has one. + /// + /// The union of the verified rects of everything this node's own layout layer holds, or null + /// if none has one. A floating descendant — marked or not — is not its content: CUI lays + /// that subtree out on a layer of its own, anchored wherever it belongs, and an unnamed + /// floating scope leaves no node to mark, so the layer the recorder stamped on each entry + /// is what keeps those rects out of these bounds and out of any OVERFLOW. + /// private static RectF? ObservedBounds(SemanticNode node) { RectF? acc = null; - foreach (SemanticNode descendant in node.Descendants()) + foreach (SemanticNode child in node.Children) { - if (!HasVerifiedRect(descendant)) continue; - acc = acc is { } current ? Expand(current, descendant.Rect) : descendant.Rect; + if (child.Detached || child.Layer != node.Layer) continue; + if (HasVerifiedRect(child)) + acc = acc is { } current ? Expand(current, child.Rect) : child.Rect; + if (ObservedBounds(child) is { } inner) + acc = acc is { } wider ? Expand(wider, inner) : inner; } return acc; diff --git a/src/CuiSharp/Semantics/SemanticNode.cs b/src/CuiSharp/Semantics/SemanticNode.cs index 124fe89..f0800c8 100644 --- a/src/CuiSharp/Semantics/SemanticNode.cs +++ b/src/CuiSharp/Semantics/SemanticNode.cs @@ -22,7 +22,9 @@ public sealed class SemanticNode { private readonly List _children = []; - private SemanticNode(string kind, string text, RectF rect, int depth, SemanticNode? parent, uint id = 0) + private SemanticNode( + string kind, string text, RectF rect, int depth, SemanticNode? parent, uint id = 0, + bool hasOwnRect = false, bool detached = false, int layer = 0) { Kind = kind; Text = text; @@ -30,6 +32,9 @@ private SemanticNode(string kind, string text, RectF rect, int depth, SemanticNo Depth = depth; Parent = parent; Id = id; + HasOwnRect = hasOwnRect; + Detached = detached; + Layer = layer; } /// The wrapper that drew it: Button, Input, Card. @@ -56,6 +61,28 @@ private SemanticNode(string kind, string text, RectF rect, int depth, SemanticNo /// public uint Id { get; } + /// + /// True when the recorded id is one CUI laid this very widget out under, so its rect is its + /// own. False means the id may belong to whatever was drawn before it: the rect is a hint, + /// not a fact. This is geometry provenance, unrelated to how queries rank the node. + /// + public bool HasOwnRect { get; } + + /// + /// True when CUI draws this node on a floating layer of its own — a dialog, popover, menu, + /// tooltip, toast or tour. The tree keeps it where the app drew it, but its geometry belongs + /// to its own layer and says nothing about the bounds of its nesting ancestors. + /// + public bool Detached { get; } + + /// + /// The native layout layer this node was drawn on: 0 for the frame's own flow, one higher + /// for every floating scope enclosing it. An unnamed floating scope records no node, so + /// this is how its contents stay attributed to their own layer even while the tree keeps + /// them where the app drew them. + /// + internal int Layer { get; } + /// True when the app drew something inside it, so it can be a parent. public bool IsContainer { get; private set; } @@ -241,11 +268,15 @@ internal static SemanticNode Build(IReadOnlyList entries) if (!entry.IsContainer) { - open[^1]._children.Add(new SemanticNode(entry.Kind, entry.Text, entry.Rect, entry.Depth, open[^1], entry.Id)); + open[^1]._children.Add(new SemanticNode( + entry.Kind, entry.Text, entry.Rect, entry.Depth, open[^1], entry.Id, + entry.HasOwnRect, entry.Detached, entry.Layer)); continue; } - var container = new SemanticNode(entry.Kind, entry.Text, entry.Rect, entry.Depth, open[^1], entry.Id) + var container = new SemanticNode( + entry.Kind, entry.Text, entry.Rect, entry.Depth, open[^1], entry.Id, + entry.HasOwnRect, entry.Detached, entry.Layer) { IsContainer = true, }; diff --git a/src/CuiSharp/Semantics/WidgetRecorder.cs b/src/CuiSharp/Semantics/WidgetRecorder.cs index 4b83185..85afef1 100644 --- a/src/CuiSharp/Semantics/WidgetRecorder.cs +++ b/src/CuiSharp/Semantics/WidgetRecorder.cs @@ -38,7 +38,31 @@ public readonly struct SemanticWidget /// public readonly uint Id; - internal SemanticWidget(string kind, string text, RectF rect, int depth, bool container, uint id) + /// + /// True when the recorded id is one CUI laid this very widget out under — a container id its + /// begin call returned, an id derived the way CUI derives it, or a kind proven to publish its + /// own id as the last id. False means the id may be someone else's, so the rect is a hint + /// about where to look, not a fact about this widget. + /// + public readonly bool HasOwnRect; + + /// + /// True when CUI draws this widget on a floating layer of its own — a dialog, popover, menu, + /// tooltip, toast or tour. The recorded nesting still shows where the app drew it, but its + /// geometry belongs to its own layer, not to the containers it is nested under. + /// + public readonly bool Detached; + + /// + /// Which native layout layer the widget was drawn on: the frame's own is 0, and each open + /// floating scope — named or not — raises it. Two nodes share a layout only when they + /// share a layer, so a dialog's buttons are never their nesting column's content. + /// + internal readonly int Layer; + + internal SemanticWidget( + string kind, string text, RectF rect, int depth, bool container, uint id, + bool hasOwnRect, bool detached, int layer) { Kind = kind; Text = text; @@ -46,6 +70,9 @@ internal SemanticWidget(string kind, string text, RectF rect, int depth, bool co Depth = depth; IsContainer = container; Id = id; + HasOwnRect = hasOwnRect; + Detached = detached; + Layer = layer; } /// The point at the middle: where a simulated click goes. @@ -65,7 +92,7 @@ public bool Contains(float x, float y) => /// /// /// -/// Off by default, and off costs one inlined null test: the wrappers call , +/// Off by default, and off costs one inlined null test: the wrappers call , /// which returns before it touches its arguments while no surface is recording. Attaching a /// recorder to a turns it on for the frames that surface draws and for /// nothing else — two surfaces on one thread keep their own frames. @@ -80,7 +107,7 @@ public static class WidgetRecorder { [ThreadStatic] private static FrameRecorder? _current; - /// How many surfaces on this thread are recording; > 0 means works. + /// How many surfaces on this thread are recording; > 0 means works. [ThreadStatic] private static int _recording; /// True while some surface on this thread records what it draws. @@ -103,6 +130,21 @@ public static void Note(nint ui, string kind, UiText text) frame.Note(ui, kind, text); } + /// + /// Called by the wrapper of a widget CUI builds only when it is given items (a toggle group). + /// is what native's "no items, no widget" return turns on, and it + /// is the only evidence that this call built anything: the last id proves nothing, because + /// cui_make_id hashes only the text after ###, so a widget drawn before this one + /// can leave behind exactly the id this widget's name hashes to. + /// + [MethodImpl(MethodImplOptions.AggressiveInlining)] + internal static void Note(nint ui, string kind, UiText text, int itemCount) + { + FrameRecorder? frame = _current; + if (frame is null) return; + frame.Note(ui, kind, text, itemCount); + } + /// /// Called by the wrappers whose widget draws one control per item (a tab strip, a segmented /// control): the strip is a container and each item is a control a test can click. @@ -215,8 +257,13 @@ private readonly struct Pending internal readonly uint Id; internal readonly int Depth; internal readonly bool Container; + internal readonly bool OwnRect; + internal readonly bool Detached; + internal readonly int Layer; - internal Pending(string kind, nint pointer, int length, string? text, uint id, int depth, bool container) + internal Pending( + string kind, nint pointer, int length, string? text, uint id, int depth, bool container, + bool ownRect, bool detached, int layer) { Kind = kind; Pointer = pointer; @@ -225,6 +272,9 @@ internal Pending(string kind, nint pointer, int length, string? text, uint id, i Id = id; Depth = depth; Container = container; + OwnRect = ownRect; + Detached = detached; + Layer = layer; } /// Already a managed string, or a copy of the frame arena. @@ -236,6 +286,23 @@ internal Pending(string kind, nint pointer, int length, string? text, uint id, i private readonly List _controls = []; private int _depth; + /// A recording path that does not know how many items native was given. + private const int UnknownItemCount = -1; + + // The native layout layer the widgets drawn right now belong to: a floating scope raises + // it for everything drawn inside, named or not, because cui__float_begin detaches the + // whole layer whether or not the app gave the scope a name. Each open depth remembers + // the layer outside it, so Pop restores it even for a scope that recorded no entry. The + // table has one entry per depth CUI nests layouts (CUI_PARENT_STACK), is allocated with + // the recorder, and so costs a recording frame nothing. + private int _layer; + private readonly int[] _layerAtDepth = new int[GeometryProvenance.MaxNativeLayoutDepth]; + + // Deeper than the table, and the recorder cannot save what to go back to, so it claims no + // layer at all: every scope below moves to a number nothing else has ever used. A lost + // boundary then costs an ancestor a union, it never lends a floating body to a flow's bounds. + private int _unknownLayer; + /// Whether this surface records; kept by . internal bool Attached { get; set; } @@ -252,6 +319,8 @@ internal void Reset() _entries.Clear(); _controls.Clear(); _depth = 0; + _layer = 0; + _unknownLayer = 0; } internal void Begin() @@ -259,47 +328,92 @@ internal void Begin() _pending.Clear(); // A scope the caller leaked would otherwise indent the rest of the app. _depth = 0; + _layer = 0; + _unknownLayer = 0; _entries.Clear(); _controls.Clear(); } + /// + /// Opens a scope's layer bookkeeping: a floating kind raises the layer for its whole body + /// and returns true, so even an unnamed dialog is a boundary the frame ends at. Every depth + /// CUI can nest is tracked; past that the scope gets a layer of its own, because the honest + /// answer there is "not the flow's" rather than a restored value the recorder lost. + /// + private bool OpenLayer(string kind) + { + bool floating = GeometryProvenance.IsFloating(kind); + if (_depth < _layerAtDepth.Length) + { + _layerAtDepth[_depth] = _layer; + if (floating) _layer++; + } + else + { + _layer = --_unknownLayer; + } + + return floating; + } + internal void Push(nint ui, string kind, string? id, uint? nativeId = null, bool deriveNamedId = false) { + bool floating = OpenLayer(kind); if (!string.IsNullOrEmpty(id)) { // The container's own native id when its begin reported one (a box - even an // explicit 0 there stays 0, so no stale last_id is ever borrowed), else the pure // cui_make_id of the app's name when that is how CUI derives it (a named scroll), - // else the last_id the container set for itself. + // else the last_id the container set for itself - which is this container's own id + // only for the kinds GeometryProvenance has read and proven (a card). uint native = nativeId ?? (deriveNamedId ? Native.MakeId(ui, Utf8.Get(id)) : Native.LastId(ui)); - _pending.Add(new Pending(kind, default, 0, id, native, _depth, container: true)); + bool own = nativeId is not null || deriveNamedId || GeometryProvenance.HasOwnLastId(kind); + _pending.Add(new Pending( + kind, default, 0, id, native, _depth, container: true, + own, floating, _layer)); } _depth++; } internal void Push(nint ui, string kind, UiText id, uint? nativeId = null, bool deriveNamedId = false) { + bool floating = OpenLayer(kind); nint pointer = id.GetPointer(out int length); if (length > 0) { uint native = nativeId ?? (deriveNamedId ? Native.MakeId(ui, pointer) : Native.LastId(ui)); - _pending.Add(new Pending(kind, pointer, length, null, native, _depth, container: true)); + bool own = nativeId is not null || deriveNamedId || GeometryProvenance.HasOwnLastId(kind); + _pending.Add(new Pending( + kind, pointer, length, null, native, _depth, container: true, + own, floating, _layer)); } _depth++; } internal void Pop() { - if (_depth > 0) _depth--; + if (_depth == 0) return; + _depth--; + if (_depth < _layerAtDepth.Length) _layer = _layerAtDepth[_depth]; + else _layer = --_unknownLayer; } - internal void Note(nint ui, string kind, UiText text) + internal void Note(nint ui, string kind, UiText text) => Note(ui, kind, text, UnknownItemCount); + + internal void Note(nint ui, string kind, UiText text, int itemCount) { nint pointer = text.GetPointer(out int length); if (length == 0) return; - Add(ui, kind, pointer, length, null, container: false); + // A group native skipped for want of items published no id, so the last id is whoever + // drew before it - and it can be exactly this group's own hash, since cui_make_id folds + // "label###id" down to the "###id" part. Only the count the wrapper handed native says + // whether this call built the widget; a call that records without one claims nothing. + bool own = GeometryProvenance.HasOwnLastId(kind) + && (!GeometryProvenance.PublishesIdOnlyWhenBuilt(kind) || itemCount > 0); + Add(ui, kind, pointer, length, null, container: false, + own, GeometryProvenance.IsFloating(kind)); } /// @@ -317,10 +431,23 @@ internal void NoteItems(nint ui, string kind, string item, UiText parent, ReadOn if (length == 0) return; uint parentId = Native.MakeId(ui, pointer); - Add(ui, kind, pointer, length, null, container: true); + bool floating = GeometryProvenance.IsFloating(kind); + // The native strip builders return before creating a node or publishing an id when + // given no items, and build at most 32 of them when given more: the count the wrapper + // passed is the evidence, since no id on record can tell this call from the last one. + bool built = items.Length > 0; + Add(ui, kind, pointer, length, null, container: true, + GeometryProvenance.HasOwnLastId(kind) && built, floating); _depth++; for (int k = 0; k < items.Length; k++) - _pending.Add(new Pending(item, 0, 0, items[k], CuiHash.Of(k, parentId), _depth, container: false)); + { + // The item ids are CUI's own derivation (the mirrored CuiHash), not a last_id + // anyone could have left behind, so each built item owns the rect read under its id. + _pending.Add(new Pending( + item, 0, 0, items[k], CuiHash.Of(k, parentId), _depth, container: false, + ownRect: built && k < GeometryProvenance.MaxBuiltItems, floating, _layer)); + } + _depth--; } @@ -335,7 +462,9 @@ internal void End(nint ui) foreach (Pending widget in _pending) { RectF rect = UiMarshal.FromNative(Native.GetRect(ui, widget.Id)); - var entry = new SemanticWidget(widget.Kind, widget.Decode(), rect, widget.Depth, widget.Container, widget.Id); + var entry = new SemanticWidget( + widget.Kind, widget.Decode(), rect, widget.Depth, widget.Container, widget.Id, + widget.OwnRect, widget.Detached, widget.Layer); _entries.Add(entry); if (!widget.Container) _controls.Add(entry); } @@ -346,8 +475,109 @@ internal void End(nint ui) private static unsafe string FromUtf8(nint pointer, int length) => System.Text.Encoding.UTF8.GetString((byte*)pointer, length); - private void Add(nint ui, string kind, nint pointer, int length, string? text, bool container) => - _pending.Add(new Pending(kind, pointer, length, text, Native.LastId(ui), _depth, container)); + private void Add(nint ui, string kind, nint pointer, int length, string? text, bool container, bool ownRect, bool detached) => + _pending.Add(new Pending(kind, pointer, length, text, Native.LastId(ui), _depth, container, ownRect, detached, _layer)); +} + +/// +/// What the id a wrapper records says about geometry, stamped by the recorder at the moment it +/// records. Everything starts unknown: a kind is only after the pinned +/// native source has been read and shows the widget laying itself out under the very id it +/// leaves as last_id, and only after native shows it drawing on a +/// layer of its own (cui__float_begin), detached from the layout of whatever encloses it. +/// +/// +/// +/// The tables key on the kind literal the wrapper itself passes — no app can change it, and a +/// label never promotes or excuses a widget. Unknown is always safe: an unknown rect prints as +/// unverified and counts for nothing, and a floating widget not yet proven stays counted the way +/// it was before anyone had read the proof. +/// +/// +/// Entries were read out of the pinned native/CUI sources: an entry that drifts upstream +/// shows up as a missing or wrong rect in LayoutInspectionTests, never as a silent lie. +/// Growing these tables is a native-evidence task (the sync-cui runbook re-reads them on +/// a submodule bump); dropping an entry when evidence is doubted is always the honest default. +/// +/// +internal static class GeometryProvenance +{ + /// True when this wrapper's widget publishes its own layout id as the last id. + internal static bool HasOwnLastId(string kind) => OwnLastId.Contains(kind); + + /// True when CUI draws this wrapper's widget on a layer detached from the flow. + internal static bool IsFloating(string kind) => Floating.Contains(kind); + + /// + /// True when the native builder skips the whole widget — no node, no published id — unless + /// it is given items to build. For such a kind the count the wrapper handed native is the + /// only proof the widget exists: an id on record cannot tell this call from the one before + /// it, because cui_make_id hashes only the ###id part of a name, so another + /// widget's id can be exactly the one this widget's name hashes to. + /// + internal static bool PublishesIdOnlyWhenBuilt(string kind) => BuiltOnlyWithItems.Contains(kind); + + /// + /// The most items the native strip builders ever build, however many are passed. + /// + internal const int MaxBuiltItems = 32; + + /// + /// The deepest layout nesting CUI can reach: its parent stack is this deep, so a recorder + /// table with one entry per depth covers every nesting its layout can build. Past it the + /// recorder stops claiming a layer it cannot restore. + /// + /// cui_internal.h: #define CUI_PARENT_STACK 256, and cui_layout.c cui__open + /// pushes onto ui->parents only while parent_depth is below it. + internal const int MaxNativeLayoutDepth = 256; + + private static readonly HashSet OwnLastId = + [ + // cui_widgets.c cui__button_impl: the button node is created under id and the call + // ends ui->last_id = id. + "Button", "IconButton", + // cui_widgets.c cui_link: the text node carries the id and last_id is set to it. + "Link", + // cui_widgets.c cui_card_begin: the card node is created under make_id(name) and + // the call ends with if (id) ui->last_id = id. + "Card", + // cui_controls.c cui__toggle_row: the row node is created under the control's id and + // published as last_id; checkbox, switch and radio are its three callers. + "Checkbox", "Switch", "Radio", + // cui_controls.c cui_chip_ex: the chip node is created under its id, last_id = id. + "Chip", + // cui_actions.c cui_toggle_group_ex: the group row node is make_id(id_str), and the + // call ends ui->last_id = gid - but only when it built one, which only the item count + // the wrapper passed can say (see BuiltOnlyWithItems). + "ToggleGroup", + // cui_controls.c cui__segments: the strip row node is make_id(id_str) — the same id + // the item hashes derive from — and the call ends ui->last_id = id - but only when + // it built one (see BuiltOnlyWithItems). + "Segmented", + ]; + + // cui_actions.c cui_toggle_group_ex and cui_controls.c cui__segments both begin with + // `if (count <= 0) return false;`, before any node is created or last_id touched: an + // empty group records under whoever drew before it, and must not claim that rect. + private static readonly HashSet BuiltOnlyWithItems = ["Segmented", "ToggleGroup"]; + + private static readonly HashSet Floating = + [ + // cui_overlay.c cui__modal_begin: dialogs and sheets float a full-screen layer. + "Dialog", "Sheet", + // cui_overlay.c and cui_disclosure.c cui__popup_begin: popups open their own layer. + "Popover", "Menu", "ContextMenu", "HoverCard", + // cui_chrome.c cui_menu_bar_menu_begin: the menu under a bar trigger is a popup layer; + // the trigger itself is drawn by native and never recorded as its own node. + "MenuBarMenu", + // cui_actions.c cui_user_menu_begin: the account popup is a popup layer of its own. + "UserMenu", + // cui_treetable.c cui_path_bar_menu_begin: the overflow menu of a collapsed segment. + "PathBarMenu", + // cui_overlay.c: toasts and tooltips are drawn at frame end on layers of their own; + // cui_tour.c draws its scrim and card inline, but each on a cui__float_begin layer. + "Toast", "Tooltip", "Tour", + ]; } /// diff --git a/src/CuiSharp/Ui/Ui.BoolGroups.cs b/src/CuiSharp/Ui/Ui.BoolGroups.cs index 7e7ff9d..997f0ad 100644 --- a/src/CuiSharp/Ui/Ui.BoolGroups.cs +++ b/src/CuiSharp/Ui/Ui.BoolGroups.cs @@ -25,7 +25,9 @@ public bool ToggleGroup(UiText id, ReadOnlySpan labels, Span value var n = o.ToNative(); bool changed = Native.ToggleGroup(Handle, Utf8.Get(id), UiMarshal.Strings(labels), labels.Length, (nint)flags, in n) != 0; for (int i = 0; i < labels.Length; i++) values[i] = flags[i] != 0; - WidgetRecorder.Note(Handle, "ToggleGroup", id); + // The count travels with the note: cui_toggle_group_ex returns before building anything + // when it is given none, and nothing on record can tell that call from a built one. + WidgetRecorder.Note(Handle, "ToggleGroup", id, labels.Length); return changed; } From 51f8681deb6454685162740716b999f9eaf33bc9 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 14:03:12 +0800 Subject: [PATCH 12/18] Generate a managed API catalog for offline lookup --- skills/cui-dotnet/api/catalog.json | 694 ++++++++++ src/CuiSharp.Tests/ApiCatalogTests.cs | 724 ++++++++++ src/CuiSharp.Tools/ApiCatalog.cs | 439 ++++++ tools/export-api.cs | 1797 +++++++++++++++++++++++++ 4 files changed, 3654 insertions(+) create mode 100644 skills/cui-dotnet/api/catalog.json create mode 100644 src/CuiSharp.Tests/ApiCatalogTests.cs create mode 100644 src/CuiSharp.Tools/ApiCatalog.cs create mode 100644 tools/export-api.cs diff --git a/skills/cui-dotnet/api/catalog.json b/skills/cui-dotnet/api/catalog.json new file mode 100644 index 0000000..4ff1fc4 --- /dev/null +++ b/skills/cui-dotnet/api/catalog.json @@ -0,0 +1,694 @@ +{ + "schema": 1, + "generator": "tools/export-api.cs", + "assembly": "CuiSharp", + "version": "0.3.1", + "types": [ + { "name": "CuiSharp.Accent", "displayName": "Accent", "kind": "enum", "summary": "cui_accent", "members": [{ "name": "Amber", "kind": "enum value", "id": "enum value|Amber|1|0|||4|hb84a41790e070f2a265681b9638bbc52c3d34e9476623901ef677160eb8b4ff0", "signature": "Amber = 4", "value": "4" }, { "name": "Blue", "kind": "enum value", "id": "enum value|Blue|1|0|||2|hae6194af00c6c4e650c47f94f829f3fce958e4562f08bc871170efbb12f3b54a", "signature": "Blue = 2", "value": "2" }, { "name": "Coral", "kind": "enum value", "id": "enum value|Coral|1|0|||6|h833b8014649fc7a89c4e8a37d302c40a0b531d53ed2586a0dbf52b29b4221c4a", "signature": "Coral = 6", "value": "6" }, { "name": "Count", "kind": "enum value", "id": "enum value|Count|1|0|||8|h504fc500c84acb9c4461033d4bf2c2e24c3d49dc31cfeac04efcdb70ee4211b6", "signature": "Count = 8", "value": "8" }, { "name": "Green", "kind": "enum value", "id": "enum value|Green|1|0|||3|he32a412158e517c36012258d7928ca2cff06804e1d2e4b587ed1044a7a2c427f", "signature": "Green = 3", "value": "3" }, { "name": "Neutral", "kind": "enum value", "id": "enum value|Neutral|1|0|||0|h7da2b00cd549e0ae5dedf23ebaa10ee7a6b5919fa688f312008de9ec173d7926", "signature": "Neutral = 0", "value": "0" }, { "name": "Orange", "kind": "enum value", "id": "enum value|Orange|1|0|||5|he4f322d5632c51b5963d91008dbdabdd40b5ac2e890fe816b3bb4fc01c465e6e", "signature": "Orange = 5", "value": "5" }, { "name": "Rose", "kind": "enum value", "id": "enum value|Rose|1|0|||7|ha5672793379d76359c9deeeb24b9e6e01894be1258c7570b394712a946dbaaab", "signature": "Rose = 7", "value": "7" }, { "name": "Violet", "kind": "enum value", "id": "enum value|Violet|1|0|||1|hc020cd8e2f7eef8bb100f85b5467256ec541008a30f6701459827540f40ba265", "signature": "Violet = 1", "value": "1" }] }, + { "name": "CuiSharp.AgentPlanOpts", "displayName": "AgentPlanOpts", "kind": "struct", "summary": "cui_agent_plan_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.AgentStatusOpts", "displayName": "AgentStatusOpts", "kind": "struct", "summary": "cui_agent_status_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status status" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float seconds" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.AlertOpts", "displayName": "AlertOpts", "kind": "struct", "summary": "cui_alert_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|bool|||h7796da526a083f4775f676304b27d97ecd77b43cfa36072c0cca539af9ae884b", "signature": "public bool Dismissible", "summary": "_Bool dismissible" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.Align", "displayName": "Align", "kind": "enum", "summary": "cui_align", "members": [{ "name": "Center", "kind": "enum value", "id": "enum value|Center|1|0|||2|h0f287a514529f7e1e27faa2c72b51024434e23ff232719bfe637e86aabab4e90", "signature": "Center = 2", "value": "2" }, { "name": "Default", "kind": "enum value", "id": "enum value|Default|1|0|||0|h865e49ef9e11ff3a18410e624292e1e6225511c59ebfa8a1f5a7db0c73c44e9c", "signature": "Default = 0", "value": "0" }, { "name": "End", "kind": "enum value", "id": "enum value|End|1|0|||3|h276e94c9c2b2e4ae3c4e4210b498ee6ce992add0ff955d7bebecd7901fe79744", "signature": "End = 3", "value": "3" }, { "name": "Start", "kind": "enum value", "id": "enum value|Start|1|0|||1|hcedaebcb61bc9b81ef04fcd68abce3fe514c85f51394853de1eed61337b42837", "signature": "Start = 1", "value": "1" }, { "name": "Stretch", "kind": "enum value", "id": "enum value|Stretch|1|0|||4|hfea6ade01cdac1b2159392e856cb2fc01f8bd400306c13bd0158a7fac41b4e46", "signature": "Stretch = 4", "value": "4" }] }, + { "name": "CuiSharp.ApiEndpoint", "displayName": "ApiEndpoint", "kind": "struct", "summary": "cui_api_endpoint. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Method;string? Path = null;string? Summary = null;string? Tag = null;bool Deprecated = default;ApiParam[]? Params = null||h7fbc93b6712d20d56d5122f4d43d9d6a84c16b0535318406ddb2472252c2cb60", "signature": "ApiEndpoint(string? Method, string? Path = null, string? Summary = null, string? Tag = null, bool Deprecated = default, ApiParam[]? Params = null)", "parameters": [{ "name": "Method", "type": "string?" }, { "name": "Path", "type": "string?", "default": "null" }, { "name": "Summary", "type": "string?", "default": "null" }, { "name": "Tag", "type": "string?", "default": "null" }, { "name": "Deprecated", "type": "bool", "default": "default" }, { "name": "Params", "type": "ApiParam[]?", "default": "null" }] }, { "name": "Params", "kind": "field", "id": "field|Params|0|0|ApiParam[]?|||hdf473e089d087df8ada4eb61ed19fe5b7b79663d3098c7864d07ea10159cff8b", "signature": "public ApiParam[]? Params", "summary": "const cui_api_param * params" }, { "name": "Deprecated", "kind": "field", "id": "field|Deprecated|0|0|bool|||h5892366dadf7c82a21e2d480013a799152dc076731b1c38e054a312fce771a76", "signature": "public bool Deprecated", "summary": "_Bool deprecated" }, { "name": "Method", "kind": "field", "id": "field|Method|0|0|string?|||h43edb6c576a75b56573640fa1b3c3165aeef627fe5c8abe6714ca10bf2480613", "signature": "public string? Method", "summary": "\u0022GET\u0022" }, { "name": "Path", "kind": "field", "id": "field|Path|0|0|string?|||h38c25c9591c0c2e3c6198e606e0b33109c4c38f51d9f1d9bbf7ada51d909598f", "signature": "public string? Path", "summary": "\u0022/users/{id}\u0022" }, { "name": "Summary", "kind": "field", "id": "field|Summary|0|0|string?|||h8385df67ed47afeb0919f599fea724e61b9b1c51e95bd9d8ec4e369db57dbc8d", "signature": "public string? Summary", "summary": "const char * summary" }, { "name": "Tag", "kind": "field", "id": "field|Tag|0|0|string?|||h6f8b305884bbad494bc4c9a835ce35e2593e6c8254e66e3952774e0cac826906", "signature": "public string? Tag", "summary": "groups the list; NULL groups as \u0022Other\u0022" }] }, + { "name": "CuiSharp.ApiExplorerOpts", "displayName": "ApiExplorerOpts", "kind": "struct", "summary": "cui_api_explorer_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.ApiExplorerResult", "displayName": "ApiExplorerResult", "kind": "struct", "summary": "cui_api_explorer_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Selected;int TryIt = default||hac6596a15f6063fe4ce04a8c27bf6079bd6cc12e30e980f4bae515c0fdc822bd", "signature": "ApiExplorerResult(int Selected, int TryIt = default)", "parameters": [{ "name": "Selected", "type": "int" }, { "name": "TryIt", "type": "int", "default": "default" }] }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "endpoint, or -1" }, { "name": "TryIt", "kind": "field", "id": "field|TryIt|0|0|int|||h5b7497c7ff57eca579c0220484ed786050570c5aa1615b0f5118bc1ae8af3b74", "signature": "public int TryIt", "summary": "endpoint, or -1" }] }, + { "name": "CuiSharp.ApiParam", "displayName": "ApiParam", "kind": "struct", "summary": "cui_api_param. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? In = null;string? Type = null;bool Required = default;string? Description = null||h91ef145f6fd0be325481474d76af2a84766c93ba0b369ce9adf437fdd41951aa", "signature": "ApiParam(string? Name, string? In = null, string? Type = null, bool Required = default, string? Description = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "In", "type": "string?", "default": "null" }, { "name": "Type", "type": "string?", "default": "null" }, { "name": "Required", "type": "bool", "default": "default" }, { "name": "Description", "type": "string?", "default": "null" }] }, { "name": "Required", "kind": "field", "id": "field|Required|0|0|bool|||hb6aec04b549eaa0bb337715fa9a3aaa889086dfc1dbd6d0b555826d7ce836b48", "signature": "public bool Required", "summary": "_Bool required" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "In", "kind": "field", "id": "field|In|0|0|string?|||h5311dc7b652ebc0c442baa10c3ef5359c19f57d1feeb1a212fba7e36a425a488", "signature": "public string? In", "summary": "\u0022path\u0022, \u0022query\u0022, \u0022header\u0022, \u0022body\u0022" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "\u0022path\u0022, \u0022query\u0022, \u0022header\u0022, \u0022body\u0022" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|string?|||hd13f10c6a1a43e5dad4e56f1c9942eeda7e31c88858c2d5b682e8c3bf87faf1f", "signature": "public string? Type", "summary": "const char * type" }] }, + { "name": "CuiSharp.AvatarOpts", "displayName": "AvatarOpts", "kind": "struct", "summary": "cui_avatar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Square", "kind": "field", "id": "field|Square|0|0|bool|||h3398a8febfe56ac8052a2486a1cba1999b01c4910184d7a2b01bd9600e1ed263", "signature": "public bool Square", "summary": "_Bool square" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|string?|||hea5150ac3e746a684c3b4c0832cabdae145da44e92c85bb412cef107598a117e", "signature": "public string? Status", "summary": "const char * status" }, { "name": "Image", "kind": "field", "id": "field|Image|0|0|ulong|||he25dd60d612e9a06babb072bcf3c76754f6f813f5113d829ed08e969dc20f672", "signature": "public ulong Image", "summary": "cui_texture image" }] }, + { "name": "CuiSharp.BadgeOpts", "displayName": "BadgeOpts", "kind": "struct", "summary": "cui_badge_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dot", "kind": "field", "id": "field|Dot|0|0|bool|||h2c1cc597459b498ce2f3dd2878d6499c9cf8ef48c0603c3a097c5f56751d30d9", "signature": "public bool Dot", "summary": "_Bool dot" }, { "name": "Solid", "kind": "field", "id": "field|Solid|0|0|bool|||h938690fcaa55f8f20d4eb1f6bdad82856b9119192f5dd841daa133c854056596", "signature": "public bool Solid", "summary": "_Bool solid" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.BannerOpts", "displayName": "BannerOpts", "kind": "struct", "summary": "cui_banner_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|bool|||h7796da526a083f4775f676304b27d97ecd77b43cfa36072c0cca539af9ae884b", "signature": "public bool Dismissible", "summary": "_Bool dismissible" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.BarListOpts", "displayName": "BarListOpts", "kind": "struct", "summary": "cui_bar_list_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "KeepOrder", "kind": "field", "id": "field|KeepOrder|0|0|bool|||hf12573cda7d5c6ce51d5a43ecfa5b8683a8482b185376fa3c1a76ee844ba6f3d", "signature": "public bool KeepOrder", "summary": "_Bool keep_order" }, { "name": "MaxRows", "kind": "field", "id": "field|MaxRows|0|0|int|||h82a530e961fd20944667ea1ad6f4d328cd4ce0e5c238e091ebaa74d2086ed486", "signature": "public int MaxRows", "summary": "int max_rows" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.BlameCommit", "displayName": "BlameCommit", "kind": "struct", "summary": "cui_blame_commit. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Hash;string? Author = null;string? Summary = null;long Time = default||h05100a81b2f2d39e2e7a4db65654080df5fbd3a27ca828ee7e99e8810d69dfa9", "signature": "BlameCommit(string? Hash, string? Author = null, string? Summary = null, long Time = default)", "parameters": [{ "name": "Hash", "type": "string?" }, { "name": "Author", "type": "string?", "default": "null" }, { "name": "Summary", "type": "string?", "default": "null" }, { "name": "Time", "type": "long", "default": "default" }] }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|long|||h382e39ea1b3f79836fb7922bfa24e88b592f7f612357f065c055e7b46e60270d", "signature": "public long Time", "summary": "Unix seconds" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|string?|||h5d1fc170a7dcd4b8e80156dab09738bd64f10f589e9ac4a8e02e5fdc43adb431", "signature": "public string? Author", "summary": "Unix seconds" }, { "name": "Hash", "kind": "field", "id": "field|Hash|0|0|string?|||h95e6d6d6d205a91ba5b07f33a3714e158b5d5e595387bd4d4e731aadfa81def7", "signature": "public string? Hash", "summary": "Unix seconds" }, { "name": "Summary", "kind": "field", "id": "field|Summary|0|0|string?|||h8385df67ed47afeb0919f599fea724e61b9b1c51e95bd9d8ec4e369db57dbc8d", "signature": "public string? Summary", "summary": "Unix seconds" }] }, + { "name": "CuiSharp.BlameOpts", "displayName": "BlameOpts", "kind": "struct", "summary": "cui_blame_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 360" }, { "name": "FirstLine", "kind": "field", "id": "field|FirstLine|0|0|int|||h1ab09d25eaa64ebab6cfe486404f0958dc364ecc142585baf2abf1130d0833f3", "signature": "public int FirstLine", "summary": "number of the first line, default 1" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|long|||h949d29ec25550cd1c5e589c99b5e39471c9584ce47315d26d5fa02dc132525d7", "signature": "public long Now", "summary": "ages are counted to here; 0: the clock" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "highlights the code, as the code block" }] }, + { "name": "CuiSharp.BlameResult", "displayName": "BlameResult", "kind": "struct", "summary": "cui_blame_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Hovered = default||hb1adf65814756b5ef4c1181973a88397aa75de71ac6a215607b1f39e43c885d2", "signature": "BlameResult(int Clicked, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "commits, or -1" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "commits, or -1" }] }, + { "name": "CuiSharp.Box", "displayName": "Box", "kind": "struct", "summary": "cui_box. All fields are optional; zero selects native defaults.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cross axis alignment of children" }, { "name": "Bg", "kind": "field", "id": "field|Bg|0|0|Color|||h202c1642f9d390c957a66afa64c92a12856dec696301aef52d51b6cd0862c639", "signature": "public Color Bg", "summary": "background" }, { "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|Color|||h972eda0c8fa110c72268d5ac944f0b43c5dc51b304b4c62290999eb105e519cf", "signature": "public Color BorderColor", "summary": "defaults to CUI_COLOR_BORDER when border \u003E 0" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "CUI_COLUMN (default), CUI_ROW, CUI_STACK, CUI_GRID" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited by default; mirrors horizontal layout and padding" }, { "name": "Elevation", "kind": "field", "id": "field|Elevation|0|0|Elevation|||he0a7c311160b4a1eff39232663778806740ff0dbee335caec9c9e85ca308541e", "signature": "public Elevation Elevation", "summary": "cui_elevation elevation" }, { "name": "Justify", "kind": "field", "id": "field|Justify|0|0|Justify|||hf004d9d46fdf7b0e648b8005eefcd94a2875126011393877c0f22d333513e2ef", "signature": "public Justify Justify", "summary": "main axis distribution" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|bool|||h5216b6f2f31363ae7228e32f5ca20a079eb5e999fae48f94da46613946cce79d", "signature": "public bool Clip", "summary": "clip children to the box" }, { "name": "ScrollX", "kind": "field", "id": "field|ScrollX|0|0|bool|||h6ae2052c4eb70e4eb0304226ce6169523e57d8278e3ba35cca97ca3379370051", "signature": "public bool ScrollX", "summary": "make the box a scroll area (clips content)" }, { "name": "ScrollY", "kind": "field", "id": "field|ScrollY|0|0|bool|||h847b268e6ea6fa9b1edbf04544f448cf555492d55d4e2e09556e2e04c9ba939b", "signature": "public bool ScrollY", "summary": "make the box a scroll area (clips content)" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW: children that do not fit move to a new line" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "border width" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "space between children (and between wrapped lines)" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float max_height" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "float max_width" }, { "name": "MinColumnWidth", "kind": "field", "id": "field|MinColumnWidth|0|0|float|||h3bf72f06ae16007da1aa4132cf4b98d6c659d256b3af795fc2b66943463ec497", "signature": "public float MinColumnWidth", "summary": "CUI_GRID: as many columns as fit at this width, at least one" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|float|||ha292b3b72be6a5893414fe5fc78e9c3c32fdca9ee4f85aaeb3161e6842440033", "signature": "public float MinHeight", "summary": "float min_height" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "float min_width" }, { "name": "Opacity", "kind": "field", "id": "field|Opacity|0|0|float|||hde7eb5efb94b5e9dd209e0982456759c12c57b2c83531f251a12e65cbe6b1e13", "signature": "public float Opacity", "summary": "0 means 1 (fully opaque)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadBottom", "kind": "field", "id": "field|PadBottom|0|0|float|||hc1c67a6a2548abf224e047c651d6a7cb45329e967b322af5dfe524a07f5e2620", "signature": "public float PadBottom", "summary": "float pad_bottom" }, { "name": "PadLeft", "kind": "field", "id": "field|PadLeft|0|0|float|||h70bf8d58e7c7a29cfdb6a63424ba305385f7538afd0181c1518eee1ed9f61b1b", "signature": "public float PadLeft", "summary": "float pad_left" }, { "name": "PadRight", "kind": "field", "id": "field|PadRight|0|0|float|||h47fc325b4ba851dd9c4be8407fc7051641fbb4f71aae1b8cd4448ca21bb0f8b6", "signature": "public float PadRight", "summary": "float pad_right" }, { "name": "PadTop", "kind": "field", "id": "field|PadTop|0|0|float|||hbb5c17b3bf02fb73ab1351bef2ea7c7446fa1d77e66e8a8fa1077ff4b5f0ba3e", "signature": "public float PadTop", "summary": "float pad_top" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "corner radius; use radius_tl.. for single corners" }, { "name": "RadiusBl", "kind": "field", "id": "field|RadiusBl|0|0|float|||h9dd1fafd2e82c84b61ae611cdc8a30354ae3db4a16a977547d65e6ba6c8f29cf", "signature": "public float RadiusBl", "summary": "float radius_bl" }, { "name": "RadiusBr", "kind": "field", "id": "field|RadiusBr|0|0|float|||h2234ef53764aea1f5c8535a3bf90ae370665341580a63b651f5d700ac65573ed", "signature": "public float RadiusBr", "summary": "float radius_br" }, { "name": "RadiusTl", "kind": "field", "id": "field|RadiusTl|0|0|float|||he23d55a47528087e12871dd0cfa80caa841145f35df4ceb0535f6351d0d1e78b", "signature": "public float RadiusTl", "summary": "float radius_tl" }, { "name": "RadiusTr", "kind": "field", "id": "field|RadiusTr|0|0|float|||hb0e758616eae542125924701530e0fd1f7106694d1eb38533996552033f3bac6", "signature": "public float RadiusTr", "summary": "float radius_tr" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "CUI_GRID: column count (with min_column_width: the most columns)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "identity for scroll state etc. (defaults to an automatic id)" }] }, + { "name": "CuiSharp.ButtonOpts", "displayName": "ButtonOpts", "kind": "struct", "summary": "cui_button_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant variant" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "text and icon color, e.g. CUI_COLOR_ACCENT for a toggled icon" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|bool|||hdc8aafcce927648adf0c0145203424f8957fc857f5c4d890241daae15b5eac45", "signature": "public bool FullWidth", "summary": "_Bool full_width" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|bool|||h1a1df670039b692be8a827bee28c939371fe741e0871265ea4bdd3a172311bd8", "signature": "public bool Loading", "summary": "spinner, ignores clicks" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "toggled look" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "leading icon, e.g. CUI_ICON_PLUS" }, { "name": "IconRight", "kind": "field", "id": "field|IconRight|0|0|string?|||hd9890d28fa630bfee88ff4a42700bc6620d173ee889863bcd75ad9b336da131f", "signature": "public string? IconRight", "summary": "trailing icon" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "shown as a hint in the tooltip, e.g. \u0022Ctrl S\u0022" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "const char * tooltip" }] }, + { "name": "CuiSharp.ButtonVariant", "displayName": "ButtonVariant", "kind": "enum", "summary": "cui_button_variant", "members": [{ "name": "Danger", "kind": "enum value", "id": "enum value|Danger|1|0|||5|h154afd4a1e02206d84054a76e1820f500566fedea82541d87fd986309c744776", "signature": "Danger = 5", "value": "5" }, { "name": "Default", "kind": "enum value", "id": "enum value|Default|1|0|||0|h865e49ef9e11ff3a18410e624292e1e6225511c59ebfa8a1f5a7db0c73c44e9c", "signature": "Default = 0", "value": "0" }, { "name": "Ghost", "kind": "enum value", "id": "enum value|Ghost|1|0|||4|h967aa1d871ab9bf4d2721d9ba3d7b245fdc2b396eeaae0eac0db0e4015fd7812", "signature": "Ghost = 4", "value": "4" }, { "name": "Link", "kind": "enum value", "id": "enum value|Link|1|0|||6|h52ac401c000476e81f2f411c1f1152fa88e8a43c314ce0d42546a89b566e38ba", "signature": "Link = 6", "value": "6" }, { "name": "Outline", "kind": "enum value", "id": "enum value|Outline|1|0|||3|h3e8e4a2bec5c7c94933012284f777a915254f5efc780d8353778442f20cdb6a9", "signature": "Outline = 3", "value": "3" }, { "name": "Primary", "kind": "enum value", "id": "enum value|Primary|1|0|||2|h0e4c408ff3df183ec6a5bda2a176eb76858f0b55c583a21318273b354abb4333", "signature": "Primary = 2", "value": "2" }, { "name": "Secondary", "kind": "enum value", "id": "enum value|Secondary|1|0|||1|hee4108bb3088e87b92ae739cbff6ecedd6f67a4425f86e71ffef6503d0942708", "signature": "Secondary = 1", "value": "1" }] }, + { "name": "CuiSharp.CalendarEvent", "displayName": "CalendarEvent", "kind": "struct", "summary": "cui_cal_event. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Detail = null;int Day = default;float Start = default;float End = default;Tone Tone = Tone.Neutral||h7946645244d289112773e6e7bac57dd4abeb945a6a29fed738e0f7030997c2dd", "signature": "CalendarEvent(string? Title, string? Detail = null, int Day = default, float Start = default, float End = default, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Detail", "type": "string?", "default": "null" }, { "name": "Day", "type": "int", "default": "default" }, { "name": "Start", "type": "float", "default": "default" }, { "name": "End", "type": "float", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float start" }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int day" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.CalendarHeatmapOpts", "displayName": "CalendarHeatmapOpts", "kind": "struct", "summary": "cui_calendar_heatmap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float cell" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "const char * unit" }] }, + { "name": "CuiSharp.Candle", "displayName": "Candle", "kind": "struct", "summary": "cui_candle. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float Open;float High = default;float Low = default;float Close = default;float Volume = default||h7c86989071a9997b55d9ad731004e8592e634e70e2a01a08c55f1d6f4c5fceb5", "signature": "Candle(float Open, float High = default, float Low = default, float Close = default, float Volume = default)", "parameters": [{ "name": "Open", "type": "float" }, { "name": "High", "type": "float", "default": "default" }, { "name": "Low", "type": "float", "default": "default" }, { "name": "Close", "type": "float", "default": "default" }, { "name": "Volume", "type": "float", "default": "default" }] }, { "name": "Close", "kind": "field", "id": "field|Close|0|0|float|||hdbf413c58a9f47dea0a50fed460dbd93d29daa77401f940f16af6251e2028722", "signature": "public float Close", "summary": "float close" }, { "name": "High", "kind": "field", "id": "field|High|0|0|float|||h8d86ceb8300b405923f523b6dfd491fceedb9688753dea5f6c0ed797466bffb1", "signature": "public float High", "summary": "float high" }, { "name": "Low", "kind": "field", "id": "field|Low|0|0|float|||h5bec759be4f0ae85b0ce5535aeb5d662da36d7c794ada46efc1c76f1e46fbd11", "signature": "public float Low", "summary": "float low" }, { "name": "Open", "kind": "field", "id": "field|Open|0|0|float|||hc9eb0b7a2eda17a016265abb4149c4d6320d1a0ad9e2d574af040fea57e2b535", "signature": "public float Open", "summary": "float open" }, { "name": "Volume", "kind": "field", "id": "field|Volume|0|0|float|||h4e862718c5c149dfe923f34f73565a8823a0e676880e4f814cc54cf696444405", "signature": "public float Volume", "summary": "float volume" }] }, + { "name": "CuiSharp.CandlestickOpts", "displayName": "CandlestickOpts", "kind": "struct", "summary": "cui_candlestick_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Down", "kind": "field", "id": "field|Down|0|0|Color|||hfa7033dc15fd180b0a52414254e800b520ddb1e0c5b9bd7d938efeead31cc834", "signature": "public Color Down", "summary": "default the success and danger colors" }, { "name": "Up", "kind": "field", "id": "field|Up|0|0|Color|||hfd2b630167ee38aa8121e0a1b046324c54fd844162ae66b0da436de2d6d4326e", "signature": "public Color Up", "summary": "default the success and danger colors" }, { "name": "Overlays", "kind": "field", "id": "field|Overlays|0|0|Series[]?|||h9c211d52d77baa0e5de591688834b2793f6d2e5f0705e1396cf270b69ca18777", "signature": "public Series[]? Overlays", "summary": "lines with one value per candle, e.g. moving averages" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoVolume", "kind": "field", "id": "field|NoVolume|0|0|bool|||h0c18beecfdc80f8b8f03426f8e5497e98d0a4473f1d296518dfd07f2b8d2ca54", "signature": "public bool NoVolume", "summary": "volume bars show when any candle has volume" }, { "name": "Ohlc", "kind": "field", "id": "field|Ohlc|0|0|bool|||h7780e0bece6df1b12f0cf07d686a977f39645b36c26f85569b5c945a8f1c5b72", "signature": "public bool Ohlc", "summary": "OHLC bars instead of candle bodies" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320" }, { "name": "OverlayCount", "kind": "field", "id": "field|OverlayCount|0|0|int|||ha8d99630aed0348e05d42fcd4a15671c1288e5c9fb38a9067b57636b13b7a171", "signature": "public int OverlayCount", "summary": "lines with one value per candle, e.g. moving averages" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "prices, default \u0022%.2f\u0022" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|string[]?|||h8fb4abf556b1cb1de99178be1a8d46296633251acb19bfe3c6cbb44da2314abf", "signature": "public string[]? Labels", "summary": "one per candle (dates or times): the time axis and the tooltip" }] }, + { "name": "CuiSharp.CanvasResult", "displayName": "CanvasResult", "kind": "struct", "summary": "The result of a custom-drawn canvas.", "members": [{ "name": "Rect", "kind": "field", "id": "field|Rect|0|0|RectF|||h36c84f4bf259c7df4e00bfe92693bbcd043eb64d7e623295afc1e04bc98f27cf", "signature": "public readonly RectF Rect", "summary": "The rectangle the canvas was laid out into." }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|bool|||h2d9baa27957cae9c7eaba8beabe991c7b9ff9e07d168a554fa9f7da7a8f5d207", "signature": "public readonly bool Clicked", "summary": "The canvas was clicked this frame." }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|bool|||h49c38ab06e9dd9cfd6fcd6f9dea03371344678650491d1b5664641f3d03a56da", "signature": "public readonly bool Hovered", "summary": "The pointer is over the canvas." }, { "name": "Pressed", "kind": "field", "id": "field|Pressed|0|0|bool|||hab93d4072df49020fad47e7b93bc9764da989cb4e5e21bd8ff218213e1fbffe0", "signature": "public readonly bool Pressed", "summary": "The pointer is pressed on the canvas." }, { "name": "MouseX", "kind": "field", "id": "field|MouseX|0|0|float|||h70d7285a38a8c23aaa4a93d10f223cef0e113ddcd45851544484b2d50adf275c", "signature": "public readonly float MouseX", "summary": "Pointer position relative to the canvas origin." }, { "name": "MouseY", "kind": "field", "id": "field|MouseY|0|0|float|||h3c973c4669280a34439fe98b1c6ad895f07e3b0b2a68e846c1b4a4edfcbb3bfc", "signature": "public readonly float MouseY", "summary": "Pointer position relative to the canvas origin." }] }, + { "name": "CuiSharp.Card", "displayName": "Card", "kind": "struct", "summary": "cui_card_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cui_align align" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "cui_dir dir" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Hoverable", "kind": "field", "id": "field|Hoverable|0|0|bool|||h8bc3667c9d7573a6738403a706e069869cfc71d7687c3c23f76d42bca85f08c6", "signature": "public bool Hoverable", "summary": "lifts slightly on hover and returns clicks" }, { "name": "Muted", "kind": "field", "id": "field|Muted|0|0|bool|||h15f64003cacc444653e6f77aca48e4daa71cb73612c0c923d6d49ae8836b0bf3", "signature": "public bool Muted", "summary": "muted surface, no border" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "accent border" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW cards: children that do not fit move to a new line" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "const char * id" }] }, + { "name": "CuiSharp.CardStackOpts", "displayName": "CardStackOpts", "kind": "struct", "summary": "cui_card_stack_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Visible", "kind": "field", "id": "field|Visible|0|0|int|||h4fdf87b1e77faeb11e5326e71ffb6338d699f8b49d4a214a0b6bef7bf1309566", "signature": "public int Visible", "summary": "int visible" }] }, + { "name": "CuiSharp.CarouselOpts", "displayName": "CarouselOpts", "kind": "struct", "summary": "cui_carousel_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Loop", "kind": "field", "id": "field|Loop|0|0|bool|||h7274a1137877894804d8aab9d630e1af40661c2344ca1ff578904fa0bf31f6d9", "signature": "public bool Loop", "summary": "_Bool loop" }, { "name": "NoArrows", "kind": "field", "id": "field|NoArrows|0|0|bool|||he1e36f8505e4731fbd3d02c552fdf5018377bba3b4e8b69ddb70e7ba3da4e164", "signature": "public bool NoArrows", "summary": "_Bool no_arrows" }, { "name": "NoDots", "kind": "field", "id": "field|NoDots|0|0|bool|||h7736ebc5622d944b1450b6f0dfefc48695406941db021b1c3c53dca07781fbf1", "signature": "public bool NoDots", "summary": "_Bool no_dots" }, { "name": "AutoAdvance", "kind": "field", "id": "field|AutoAdvance|0|0|float|||h33329d1b2d0ca9a63bdd777428459fd84fbfa04489f913ad51d47d16c7581b9c", "signature": "public float AutoAdvance", "summary": "float auto_advance" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.ChartOpts", "displayName": "ChartOpts", "kind": "struct", "summary": "cui_chart_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Area", "kind": "field", "id": "field|Area|0|0|bool|||h5258652e0aa90cdc233857253e23843fa08ace551de565297c7fd1a6d3d5b39b", "signature": "public bool Area", "summary": "fill under lines" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|bool|||h3235658a755bd4564629364c715a172c1b27a0be758c9a47167e63c08938a56d", "signature": "public bool NoGrid", "summary": "_Bool no_grid" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Smooth", "kind": "field", "id": "field|Smooth|0|0|bool|||h1f23f1b174e637ce50e7c6158d9817f5467411003318e980ab1e81d7a965c008", "signature": "public bool Smooth", "summary": "curved lines" }, { "name": "Stacked", "kind": "field", "id": "field|Stacked|0|0|bool|||hdece4b272c81b345467a1a9b965aff06ac663b6b0602384d2f1f7b8ba7807eba", "signature": "public bool Stacked", "summary": "bar chart" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 220" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "fixed y range when min != max" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "fixed y range when min != max" }, { "name": "MaxPoints", "kind": "field", "id": "field|MaxPoints|0|0|int|||h61fad7eaf34eea9e9232b042b34e6818e5a52c2f1db8f2fee7e2161f37a8cdfd", "signature": "public int MaxPoints", "summary": "C# only: Upper bound on drawn points. 0 derives twice the viewport width; longer series are min/max decimated into the frame arena." }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "value format for axis and tooltip, default \u0022%.0f\u0022" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|string[]?|||h8fb4abf556b1cb1de99178be1a8d46296633251acb19bfe3c6cbb44da2314abf", "signature": "public string[]? Labels", "summary": "x axis labels" }] }, + { "name": "CuiSharp.ChatOpts", "displayName": "ChatOpts", "kind": "struct", "summary": "cui_chat_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Grouped", "kind": "field", "id": "field|Grouped|0|0|bool|||hc680c213e3ec617dca9a7a343272ea4fd0730bdf400cc38a5bbe306f2c64a7bb", "signature": "public bool Grouped", "summary": "continues the previous message" }, { "name": "LastInGroup", "kind": "field", "id": "field|LastInGroup|0|0|bool|||h2689180cedbd5fa492aefb520cc6b005a7e82f1ca6125c932a29d222ac2f8906", "signature": "public bool LastInGroup", "summary": "shows the avatar (others) and status (mine)" }, { "name": "Markdown", "kind": "field", "id": "field|Markdown|0|0|bool|||h8646a503edb5fac09528cc1b3296c0e33fbed6c42e119b1cb999bafcfb06e318", "signature": "public bool Markdown", "summary": "render the text with cui_markdown (compact, as wide as it needs)" }, { "name": "Mine", "kind": "field", "id": "field|Mine|0|0|bool|||h152dcab50a106cee7066c57c9ad93d10f47f30a414176e6fdef78157bcf017d7", "signature": "public bool Mine", "summary": "right aligned, accent bubble" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|string?|||h5d1fc170a7dcd4b8e80156dab09738bd64f10f589e9ac4a8e02e5fdc43adb431", "signature": "public string? Author", "summary": "name above the first bubble of a group" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|string?|||hea5150ac3e746a684c3b4c0832cabdae145da44e92c85bb412cef107598a117e", "signature": "public string? Status", "summary": "under your own last message, e.g. \u0022Read\u0022" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|string?|||h3fa6df975c274c56979003cf790a67367077eb0ba02d23dac030823b376828bc", "signature": "public string? Time", "summary": "const char * time" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture avatar" }] }, + { "name": "CuiSharp.CheckOpts", "displayName": "CheckOpts", "kind": "struct", "summary": "cui_check_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|bool|||he38813187674932a5621bb6b38b49afa8004ab77baa2505c22f3600d136405a8", "signature": "public bool Indeterminate", "summary": "_Bool indeterminate" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, + { "name": "CuiSharp.CheckStep", "displayName": "CheckStep", "kind": "struct", "summary": "cui_check_step. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Description = null;string? Action = null;bool Done = default||h11acbb85c777af80b2da820b9f9ea3866c944e58a45284b74a1020f1caa06456", "signature": "CheckStep(string? Title, string? Description = null, string? Action = null, bool Done = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Description", "type": "string?", "default": "null" }, { "name": "Action", "type": "string?", "default": "null" }, { "name": "Done", "type": "bool", "default": "default" }] }, { "name": "Done", "kind": "field", "id": "field|Done|0|0|bool|||h5497d5e8bf2538fda1c8cdc8402011bb90be2ccee1f0bf0226919c8061b80373", "signature": "public bool Done", "summary": "_Bool done" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.ChecklistOpts", "displayName": "ChecklistOpts", "kind": "struct", "summary": "cui_checklist_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.ChipOpts", "displayName": "ChipOpts", "kind": "struct", "summary": "cui_chip_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.Choice", "displayName": "Choice", "kind": "struct", "summary": "cui_choice. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Description = null;string? Icon = null;string? Badge = null||h3bb4c646a718ef1d0a7a23de8207b83ecc689f18370f750a1309d7d05dc37eb8", "signature": "Choice(string? Title, string? Description = null, string? Icon = null, string? Badge = null)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Description", "type": "string?", "default": "null" }, { "name": "Icon", "type": "string?", "default": "null" }, { "name": "Badge", "type": "string?", "default": "null" }] }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.ClipScope", "displayName": "ClipScope", "kind": "ref struct", "summary": "Closes a clip opened by Clip.", "members": [{ "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Pops the clip. Disposing twice does nothing." }] }, + { "name": "CuiSharp.CodeEditorOpts", "displayName": "CodeEditorOpts", "kind": "struct", "summary": "cui_code_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Marks", "kind": "field", "id": "field|Marks|0|0|TextMark[]?|||hf2c6adf393454d823eb10ac6123eef8069985302b5457007cd9ab114d5819e1c", "signature": "public TextMark[]? Marks", "summary": "ranges to highlight (search results, regex matches), sorted by start" }, { "name": "Autofocus", "kind": "field", "id": "field|Autofocus|0|0|bool|||h09659cd1edc89091c579e01492029e06adf81389533feb3ae65790f5a01be31e", "signature": "public bool Autofocus", "summary": "_Bool autofocus" }, { "name": "NoLineNumbers", "kind": "field", "id": "field|NoLineNumbers|0|0|bool|||hb5cc496b040e6bb46501892acb3b13db7559983e7c6d82801ba2f83cc793203a", "signature": "public bool NoLineNumbers", "summary": "_Bool no_line_numbers" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "UseTabs", "kind": "field", "id": "field|UseTabs|0|0|bool|||he76d71839dc85068e0d8324e400fd58c8444d5abe4ef488a23e57222d8af7178", "signature": "public bool UseTabs", "summary": "indent with tab characters instead of spaces" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 13" }, { "name": "MarkCount", "kind": "field", "id": "field|MarkCount|0|0|int|||he0762e6e3d6ca8a079b9d863b518cc5bb337abac3fb7998e5089c8856059c47a", "signature": "public int MarkCount", "summary": "int mark_count" }, { "name": "TabSize", "kind": "field", "id": "field|TabSize|0|0|int|||h1fb69a62e48ce09519cd8bb8b90088cf5a2053b0f991052821d6e0a3f3dab47f", "signature": "public int TabSize", "summary": "columns per indentation level, default 4" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "as cui_code_block: \u0022c\u0022, \u0022cpp\u0022, \u0022js\u0022, \u0022ts\u0022, \u0022python\u0022, \u0022rust\u0022, \u0022go\u0022, \u0022json\u0022, \u0022shell\u0022; \u0022text\u0022 for none" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "shown while the text is empty" }] }, + { "name": "CuiSharp.CodeEditorResult", "displayName": "CodeEditorResult", "kind": "struct", "summary": "cui_code_editor_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;bool Refused = default;bool Focused = default;int Cursor = default;int Anchor = default;int Line = default;int Column = default;int LineCount = default;int Length = default;int Bracket = default;int BracketMatch = default;int FindMatches = default;int FindIndex = default||h10d37050109b7b0ed6537ab21c05bd44ab3b7bebd67ac63bc68fecca0f07fa70", "signature": "CodeEditorResult(bool Changed, bool Refused = default, bool Focused = default, int Cursor = default, int Anchor = default, int Line = default, int Column = default, int LineCount = default, int Length = default, int Bracket = default, int BracketMatch = default, int FindMatches = default, int FindIndex = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Refused", "type": "bool", "default": "default" }, { "name": "Focused", "type": "bool", "default": "default" }, { "name": "Cursor", "type": "int", "default": "default" }, { "name": "Anchor", "type": "int", "default": "default" }, { "name": "Line", "type": "int", "default": "default" }, { "name": "Column", "type": "int", "default": "default" }, { "name": "LineCount", "type": "int", "default": "default" }, { "name": "Length", "type": "int", "default": "default" }, { "name": "Bracket", "type": "int", "default": "default" }, { "name": "BracketMatch", "type": "int", "default": "default" }, { "name": "FindMatches", "type": "int", "default": "default" }, { "name": "FindIndex", "type": "int", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "the text changed this frame" }, { "name": "Focused", "kind": "field", "id": "field|Focused|0|0|bool|||h03e74544391bd5f5b768e54fb7011da1a013b87b3221f57443f738bcc0ae57da", "signature": "public bool Focused", "summary": "the editor or its find bar has the keyboard" }, { "name": "Refused", "kind": "field", "id": "field|Refused|0|0|bool|||hc139b2d3b5ff44a547eedc172b84159ab68ce7aa184d45a0ddff68588c76d436", "signature": "public bool Refused", "summary": "an edit did not fit in the capacity and was dropped" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|int|||haebd09af400cd13b8e6a4d74ff68b178d1ce2cdb19d12950362ae273b212ff68", "signature": "public int Anchor", "summary": "caret and the other end of the selection, byte offsets" }, { "name": "Bracket", "kind": "field", "id": "field|Bracket|0|0|int|||h77d16f8f46588b03aef36d7c7700c16913abeb938081d48c601527ac49676ea8", "signature": "public int Bracket", "summary": "the bracket beside the caret and its partner, byte offsets, or -1" }, { "name": "BracketMatch", "kind": "field", "id": "field|BracketMatch|0|0|int|||hf4bcef73eb750933986b759052d8e30b7b10d167b65548578d889eef0a8d0447", "signature": "public int BracketMatch", "summary": "the bracket beside the caret and its partner, byte offsets, or -1" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "the caret, 1 based; columns count tabs to their stop" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|int|||h23aff42ff5d653e4a3b8a654aa17c4d9c160335133193db458a21e242a54d577", "signature": "public int Cursor", "summary": "caret and the other end of the selection, byte offsets" }, { "name": "FindIndex", "kind": "field", "id": "field|FindIndex|0|0|int|||h9901bf02470123f840113bd889b35049d5d57a39c279f06740fad0d72c6b6fae", "signature": "public int FindIndex", "summary": "with the find bar open: matches, and which one is selected (1 based, 0 none)" }, { "name": "FindMatches", "kind": "field", "id": "field|FindMatches|0|0|int|||hc7266e2f6ac242c69af5391be242aaa9b92542b13fe7206e4b7263e39078c2d2", "signature": "public int FindMatches", "summary": "with the find bar open: matches, and which one is selected (1 based, 0 none)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "lines, and bytes of text" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "the caret, 1 based; columns count tabs to their stop" }, { "name": "LineCount", "kind": "field", "id": "field|LineCount|0|0|int|||hbaa214fddd02d1ccffe160de438912c4aa7f3470b2479bc2583e4f2d2ebb1485", "signature": "public int LineCount", "summary": "lines, and bytes of text" }] }, + { "name": "CuiSharp.CodeOpts", "displayName": "CodeOpts", "kind": "struct", "summary": "cui_code_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "LineNumbers", "kind": "field", "id": "field|LineNumbers|0|0|bool|||hf97d043b6bbb7fd74c036a3d0e462dbeaf266c6bf806c893c89f61f222ab729c", "signature": "public bool LineNumbers", "summary": "_Bool line_numbers" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|bool|||h7922046bd3807eec795aa2981a7e08ccf6af18d5c0f9f9ef7f687eb187ccb398", "signature": "public bool NoHeader", "summary": "no title bar, even with a lang" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "scrolls beyond this, default none" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 13" }, { "name": "HighlightFrom", "kind": "field", "id": "field|HighlightFrom|0|0|int|||h3f447dcb0743179fec7a2dd4a9ce932f77873c9111e71c1fa0182456ef6a5ad8", "signature": "public int HighlightFrom", "summary": "1 based line range to emphasize" }, { "name": "HighlightTo", "kind": "field", "id": "field|HighlightTo|0|0|int|||h69877e6460a36c5400eb55f0445931950db5a7253630d30f09922f950fd37671", "signature": "public int HighlightTo", "summary": "1 based line range to emphasize" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "const char * lang" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "e.g. a file name" }] }, + { "name": "CuiSharp.Color", "displayName": "Color", "kind": "struct", "summary": "cui_color. Either four channels or a semantic token that follows the theme.", "members": [{ "name": "WithAlpha", "kind": "method", "id": "method|WithAlpha|0|0|Color|float multiplier||hd703c0157a4137aae6653d3bff5c236019738c6b77d9af6dc9d0622216c274aa", "signature": "Color WithAlpha(float multiplier)", "parameters": [{ "name": "multiplier", "type": "float" }], "summary": "Multiplies the color\u0027s alpha, for a disabled or washed-out variant." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||byte r;byte g;byte b;byte a = 255||hb2121e78947f0a93d18e10dc4600ee2b1aa6e5b3995552e2590e0df80f195aca", "signature": "Color(byte r, byte g, byte b, byte a = 255)", "parameters": [{ "name": "r", "type": "byte" }, { "name": "g", "type": "byte" }, { "name": "b", "type": "byte" }, { "name": "a", "type": "byte", "default": "255" }] }, { "name": "IsToken", "kind": "property", "id": "property|IsToken|0|0|bool||get;|hfe9fb89ba2094af4625f9a23a8c6792c474de7efb997f176a4ebd39e6da47fed", "signature": "bool IsToken { get; }" }, { "name": "A", "kind": "field", "id": "field|A|0|0|byte|||h5f5606c1faa3bde12e471c6d45fbdbbb7b7b13c87a84c6c14640f875f2f6a1a2", "signature": "public readonly byte A" }, { "name": "B", "kind": "field", "id": "field|B|0|0|byte|||hf5ab11f712e47d0a4a2f743383c951d49899ebc92747d616fedc0babd7e745c8", "signature": "public readonly byte B" }, { "name": "G", "kind": "field", "id": "field|G|0|0|byte|||h7d3f01d8808a41c8e556108dd87173de783385b985d8744168b3c4172bd09b35", "signature": "public readonly byte G" }, { "name": "R", "kind": "field", "id": "field|R|0|0|byte|||h985a931c98c551bd094a81b5fe443fa38d6bc2ae6f0d15f34370509fc9dcd391", "signature": "public readonly byte R" }, { "name": "Transparent", "kind": "field", "id": "field|Transparent|1|0|Color|||h41a5ec8d188cdc30049557652b76378086851889c9fa07ab8c0af7306ea12dc7", "signature": "public static readonly Color Transparent" }, { "name": "Accent", "kind": "property", "id": "property|Accent|1|0|Color||get;|h8d69f38a4f15bea2935d1d4fc3628a46cea6ccfef14de994b60ef2d6b48edeaf", "signature": "static Color Accent { get; }" }, { "name": "AccentForeground", "kind": "property", "id": "property|AccentForeground|1|0|Color||get;|h2d4a1f3fb297c595b4064f97f1ea0a76ffded41e218420716307524e3a66e7f8", "signature": "static Color AccentForeground { get; }" }, { "name": "Background", "kind": "property", "id": "property|Background|1|0|Color||get;|he51585877825bba50d9093e9da71b040d9ed6a202aaaeb8575fceea6bb9bda1f", "signature": "static Color Background { get; }" }, { "name": "Border", "kind": "property", "id": "property|Border|1|0|Color||get;|h9873c74b5f65695efeb1a893646ad9674e90d89698fdb81de2afa801815d1cb1", "signature": "static Color Border { get; }" }, { "name": "BorderStrong", "kind": "property", "id": "property|BorderStrong|1|0|Color||get;|hea830f5db3592be34f46c3ec668e30dd7ab1d912414971463ecf0fa27914c0c6", "signature": "static Color BorderStrong { get; }" }, { "name": "Danger", "kind": "property", "id": "property|Danger|1|0|Color||get;|h99cba06ef8d7ea76015c92fb6663ae7505f5e1428aa24cb43e321e5ea6e666d0", "signature": "static Color Danger { get; }" }, { "name": "For", "kind": "method", "id": "method|For|1|0|Color|Tone tone||h4412f9f23c5bd32e18e34c3075655e6fa4a4c5dbf1be06e618ae345b2bd18d4e", "signature": "static Color For(Tone tone)", "parameters": [{ "name": "tone", "type": "Tone" }], "summary": "The theme color a semantic tone stands for, for the primitives that take a Color rather than a Tone (charts, sparklines, custom canvas drawing). Accent and the extra palette tones all resolve to the accent color." }, { "name": "Foreground", "kind": "property", "id": "property|Foreground|1|0|Color||get;|hfccef401e996b9dad2ca2d8fed68a78855a702326883118da37a51295e05eb0c", "signature": "static Color Foreground { get; }" }, { "name": "FromToken", "kind": "method", "id": "method|FromToken|1|0|Color|Token t||h9eafcdf7d2dadd67ddacb8e97905ba6611fd0d1dbee51ffd82593551fb624b1a", "signature": "static Color FromToken(Token t)", "parameters": [{ "name": "t", "type": "Token" }] }, { "name": "Info", "kind": "property", "id": "property|Info|1|0|Color||get;|hfaba701f2c9544d3ff7ad2d1df8f44dd1c689753f32974967d7d9f34dac23345", "signature": "static Color Info { get; }" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|Color|Color a;Color b;float t||he5d58d80e6b12084051425becf17b34e792dd1f4135d5670bc53e90c31e6bf0a", "signature": "static Color Mix(Color a, Color b, float t)", "parameters": [{ "name": "a", "type": "Color" }, { "name": "b", "type": "Color" }, { "name": "t", "type": "float" }], "summary": "Blends two colors: t 0 is a, 1 is b." }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|Color|float lightness;float chroma;float hueDegrees;float alpha = 1f||hf1fc322887d714152ba0c9914ce19ea5bdf45b86c818fcfecd92e03ea6cf4242", "signature": "static Color Oklch(float lightness, float chroma, float hueDegrees, float alpha = 1f)", "parameters": [{ "name": "lightness", "type": "float" }, { "name": "chroma", "type": "float" }, { "name": "hueDegrees", "type": "float" }, { "name": "alpha", "type": "float", "default": "1f" }], "summary": "A color from an OKLCH triple: perceptual lightness 0..1, chroma, hue in degrees." }, { "name": "Rgb", "kind": "method", "id": "method|Rgb|1|0|Color|uint hex||h543e7417bb161fcbb860648cc48c6488fd3fc75b0c1f4ed5e8610f2ded59938e", "signature": "static Color Rgb(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGB(0xRRGGBB)." }, { "name": "Rgba", "kind": "method", "id": "method|Rgba|1|0|Color|uint hex||h87bac9115999efb2b67af0db822c527527a8ff4fe817a430cc6bab981859c081", "signature": "static Color Rgba(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGBA(0xRRGGBBAA)." }, { "name": "Series", "kind": "method", "id": "method|Series|1|0|Color|int n||heb0b07e61cefa3cf19ad9e6211c83a5dda949039dc7113ac2f07028f50aaabc9", "signature": "static Color Series(int n)", "parameters": [{ "name": "n", "type": "int" }], "summary": "CUI_COLOR_SERIES(n): cycles through the six chart colors." }, { "name": "Success", "kind": "property", "id": "property|Success|1|0|Color||get;|h1a7857cace5c8053e4af308c58b784dcca6f74f79d02fe3d2691e3b08d298a06", "signature": "static Color Success { get; }" }, { "name": "Surface", "kind": "property", "id": "property|Surface|1|0|Color||get;|ha5ac90d021d286432973b34f324d49876e3b58e6994a858e997aec71bcf77e0a", "signature": "static Color Surface { get; }" }, { "name": "SurfaceMuted", "kind": "property", "id": "property|SurfaceMuted|1|0|Color||get;|h8100076ef27b6f8037d5fddb5b39bf1aaae44daf458e422e9b71baad8a021627", "signature": "static Color SurfaceMuted { get; }" }, { "name": "SurfaceRaised", "kind": "property", "id": "property|SurfaceRaised|1|0|Color||get;|h956d3794784a39d0172a10e9452ad425828960b572c73832176094c26468677a", "signature": "static Color SurfaceRaised { get; }" }, { "name": "TextMuted", "kind": "property", "id": "property|TextMuted|1|0|Color||get;|hd8390cf8a32b88e88ff1086ab26309c2b21d1a4c24e54c5c8c0c6c0d63637f98", "signature": "static Color TextMuted { get; }" }, { "name": "TextSecondary", "kind": "property", "id": "property|TextSecondary|1|0|Color||get;|hbb3e2f4e83ec7dd25e89f1fc5ce197f4710e9b590d1b5e9e7208985698669558", "signature": "static Color TextSecondary { get; }" }, { "name": "Warning", "kind": "property", "id": "property|Warning|1|0|Color||get;|ha5291a19d9e6bda4a378d3459d58dea1ae05c73025987e7c6fa0ebce10a50421", "signature": "static Color Warning { get; }" }] }, + { "name": "CuiSharp.Command", "displayName": "Command", "kind": "struct", "summary": "cui_command. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Icon = null;string? Group = null;string? Shortcut = null||h6283c494eb865a4501b0d81cc6c67eea93f31757af5ee76334221efaf45e517f", "signature": "Command(string? Title, string? Icon = null, string? Group = null, string? Shortcut = null)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Icon", "type": "string?", "default": "null" }, { "name": "Group", "type": "string?", "default": "null" }, { "name": "Shortcut", "type": "string?", "default": "null" }] }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|string?|||hf3da4970c81056945d7238681c51ca4ab28004c0ca941fabfe885256c6388d9b", "signature": "public string? Group", "summary": "const char * group" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "const char * shortcut" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.CommentEvents", "displayName": "CommentEvents", "kind": "enum", "summary": "CUI_COMMENT_LIKE", "members": [{ "name": "Like", "kind": "enum value", "id": "enum value|Like|1|0|||1|h87cdacbf5b376ea5724eecb6ec0bc577e007cc2c6141407853fe1d6c2c70038b", "signature": "Like = 1", "value": "1" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Reply", "kind": "enum value", "id": "enum value|Reply|1|0|||2|h3390298ec50eb933c27c348b2dd6fd432aab04066fd68af15b17c8b8fc243129", "signature": "Reply = 2", "value": "2" }] }, + { "name": "CuiSharp.CommentOpts", "displayName": "CommentOpts", "kind": "struct", "summary": "cui_comment_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Edited", "kind": "field", "id": "field|Edited|0|0|bool|||he72494a4b154ed9e062a25161fb063fdcd50128995f66884e73c7d4fbe4e7b88", "signature": "public bool Edited", "summary": "_Bool edited" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int depth" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|string?|||h3fa6df975c274c56979003cf790a67367077eb0ba02d23dac030823b376828bc", "signature": "public string? Time", "summary": "const char * time" }] }, + { "name": "CuiSharp.Commit", "displayName": "Commit", "kind": "struct", "summary": "cui_commit. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Hash;string? Message = null;string? Author = null;string? Date = null;string? Refs = null;int[]? Parent = null||hbfc2f97d923ab6800b6eb5ba4d9302bad305e808845bf9662856125d7286315d", "signature": "Commit(string? Hash, string? Message = null, string? Author = null, string? Date = null, string? Refs = null, int[]? Parent = null)", "parameters": [{ "name": "Hash", "type": "string?" }, { "name": "Message", "type": "string?", "default": "null" }, { "name": "Author", "type": "string?", "default": "null" }, { "name": "Date", "type": "string?", "default": "null" }, { "name": "Refs", "type": "string?", "default": "null" }, { "name": "Parent", "type": "int[]?", "default": "null" }] }, { "name": "Parent", "kind": "field", "id": "field|Parent|0|0|int[]?|||h3290295f61a92ec63399e7811db26f972a73b035a1e7a722916f2db21c9d15ef", "signature": "public int[]? Parent", "summary": "row of each parent, -1 for none" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|string?|||h5d1fc170a7dcd4b8e80156dab09738bd64f10f589e9ac4a8e02e5fdc43adb431", "signature": "public string? Author", "summary": "const char * author" }, { "name": "Date", "kind": "field", "id": "field|Date|0|0|string?|||h1fa114a81f8c4208e6687df35eac7c8b1c71f42a3f9bdd394e9acf22858ece8d", "signature": "public string? Date", "summary": "already formatted: \u00222 hours ago\u0022, \u0022Mar 3\u0022" }, { "name": "Hash", "kind": "field", "id": "field|Hash|0|0|string?|||h95e6d6d6d205a91ba5b07f33a3714e158b5d5e595387bd4d4e731aadfa81def7", "signature": "public string? Hash", "summary": "const char * hash" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|string?|||hef2e6225d86c6eb3366a0a172da793ed9f3ab16202af98b590c25bfb4adb1feb", "signature": "public string? Message", "summary": "the first line is shown" }, { "name": "Refs", "kind": "field", "id": "field|Refs|0|0|string?|||h659f06299af1f41b49d96e4362436f2a2a937c254f9f3928911d353b2afa91dd", "signature": "public string? Refs", "summary": "\u0022main, origin/main, tag: v1.2\u0022, may be NULL" }] }, + { "name": "CuiSharp.CommitGraphOpts", "displayName": "CommitGraphOpts", "kind": "struct", "summary": "cui_commit_graph_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.CommitGraphResult", "displayName": "CommitGraphResult", "kind": "struct", "summary": "cui_commit_graph_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Activated = default;int Hovered = default||ha1dfb8a4530b77a76ccd87518c28580e6dd1579074268ff12ec531fbda215c4b", "signature": "CommitGraphResult(int Clicked, int Activated = default, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Activated", "type": "int", "default": "default" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int activated" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int clicked" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int hovered" }] }, + { "name": "CuiSharp.CompareOpts", "displayName": "CompareOpts", "kind": "struct", "summary": "cui_compare_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Aspect", "kind": "field", "id": "field|Aspect|0|0|float|||h5a5a7490732f77b38ee208c886571caa7d8986b77932e6d27775bfe1970fb584", "signature": "public float Aspect", "summary": "the images\u0027 width / height: they are cropped to fill, never stretched" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "AfterLabel", "kind": "field", "id": "field|AfterLabel|0|0|string?|||h9407efffc0d0b92ce00638fc21b486c2422ae5dc5f66e0b4a2186d557aaff56e", "signature": "public string? AfterLabel", "summary": "const char * after_label" }, { "name": "BeforeLabel", "kind": "field", "id": "field|BeforeLabel|0|0|string?|||h9a2f4041febf7ef08a4b079cbee068c2578a48c8b58bb8cf6eb06da4f0de8d9c", "signature": "public string? BeforeLabel", "summary": "const char * before_label" }] }, + { "name": "CuiSharp.ComposerEvents", "displayName": "ComposerEvents", "kind": "enum", "summary": "CUI_COMPOSER_SEND", "members": [{ "name": "Attach", "kind": "enum value", "id": "enum value|Attach|1|0|||4|hb15466bf30d40baad233116e55d9dff0f68e6c1df3b1e8434b457086d9f8bed3", "signature": "Attach = 4", "value": "4" }, { "name": "Model", "kind": "enum value", "id": "enum value|Model|1|0|||16|ha2b2f411a73155fbc8794d3538859929fbaff4e7efcb6db74720e8c2eb3ceda9", "signature": "Model = 16", "value": "16" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Remove", "kind": "enum value", "id": "enum value|Remove|1|0|||8|hf86582dd57b26ece7a0aacdf1f7964b4c4ed6987f087e1f9f4406e5933f35607", "signature": "Remove = 8", "value": "8" }, { "name": "Send", "kind": "enum value", "id": "enum value|Send|1|0|||1|h5f27c6f7d12d788d837ea80ae1271f4421d8f040fd47479566542f832474ca48", "signature": "Send = 1", "value": "1" }, { "name": "Stop", "kind": "enum value", "id": "enum value|Stop|1|0|||2|he91aff6eb69a6e99cf0d39a7bb8969f2739288d451797390cd883571875d3f40", "signature": "Stop = 2", "value": "2" }] }, + { "name": "CuiSharp.ComposerOpts", "displayName": "ComposerOpts", "kind": "struct", "summary": "cui_composer_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Models", "kind": "field", "id": "field|Models|0|0|Model[]?|||h70b0d939d61656406de971fc69f5c44c93bf629e9f25753b6f09e8b3299a98ae", "signature": "public Model[]? Models", "summary": "const cui_model * models" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Busy", "kind": "field", "id": "field|Busy|0|0|bool|||hae101fd1ee42ec9c74033dff47632eb6091bf5510e4fd05fdbfc46291d361bda", "signature": "public bool Busy", "summary": "_Bool busy" }, { "name": "MaxLines", "kind": "field", "id": "field|MaxLines|0|0|int|||h995307b973f05cbe551b53177d0c23114013f6b5b22c835b2dc6609203e2b299", "signature": "public int MaxLines", "summary": "default 8" }, { "name": "ModelCount", "kind": "field", "id": "field|ModelCount|0|0|int|||hfbf7f87982dd42ccf2deda1d3ba7c988866b4826cb8f1dd682c00abe8a509e17", "signature": "public int ModelCount", "summary": "int model_count" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Attachments", "kind": "field", "id": "field|Attachments|0|0|string[]?|||h4bfc64d1ee613d6d8fb84938b9ecd09a5efd00b1698138139445c83b984b7bf1", "signature": "public string[]? Attachments", "summary": "const char *const * attachments" }] }, + { "name": "CuiSharp.ConfirmOpts", "displayName": "ConfirmOpts", "kind": "struct", "summary": "cui_confirm_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "resting look, default secondary" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Timeout", "kind": "field", "id": "field|Timeout|0|0|float|||h6fb556a50665c237ad9b5a3a89b5643838aa87632ece289264dbdaa96cf69904", "signature": "public float Timeout", "summary": "seconds before it disarms, default 3" }, { "name": "ConfirmLabel", "kind": "field", "id": "field|ConfirmLabel|0|0|string?|||ha00189bcd2ff96a065ec909117520cf3e7e7dfc9d96e67a4f3f3f911c4277510", "signature": "public string? ConfirmLabel", "summary": "default \u0022Click to confirm\u0022" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.ConfirmPopoverOpts", "displayName": "ConfirmPopoverOpts", "kind": "struct", "summary": "cui_confirm_popover_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Danger", "kind": "field", "id": "field|Danger|0|0|bool|||h3e552965bd0c23ceb0f571e7b36f3aff5b19af39ece9e0ca708e9a8028437fdf", "signature": "public bool Danger", "summary": "_Bool danger" }, { "name": "CancelLabel", "kind": "field", "id": "field|CancelLabel|0|0|string?|||h7d2e1fe0ecaf204d072ba162f3015e3cb10482bd21e29cffee925027ebcb6977", "signature": "public string? CancelLabel", "summary": "default \u0022Cancel\u0022" }, { "name": "ConfirmLabel", "kind": "field", "id": "field|ConfirmLabel|0|0|string?|||ha00189bcd2ff96a065ec909117520cf3e7e7dfc9d96e67a4f3f3f911c4277510", "signature": "public string? ConfirmLabel", "summary": "default \u0022Confirm\u0022" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.ContextOpts", "displayName": "ContextOpts", "kind": "struct", "summary": "cui_context_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Parts", "kind": "field", "id": "field|Parts|0|0|VizItem[]?|||h5ad43bad662c7f177d0d19739aa3efb0debf95899709e32f560deb632cb9dc08", "signature": "public VizItem[]? Parts", "summary": "const cui_viz_item * parts" }, { "name": "PartCount", "kind": "field", "id": "field|PartCount|0|0|int|||h5342a94757f5e81a36c5b83bd0855847425988567f074994d88be7e774e54884", "signature": "public int PartCount", "summary": "int part_count" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "const char * unit" }] }, + { "name": "CuiSharp.ControlSize", "displayName": "ControlSize", "kind": "enum", "summary": "cui_control_size", "members": [{ "name": "Lg", "kind": "enum value", "id": "enum value|Lg|1|0|||2|h679ef4558437456233aa4dd325a41b851d8aee99094c57ba5aef1a5c64f65a94", "signature": "Lg = 2", "value": "2" }, { "name": "Md", "kind": "enum value", "id": "enum value|Md|1|0|||0|haae5c5c1dbfb30e8e313da03df6578047dc53f886b10f0fd739252f3db40305c", "signature": "Md = 0", "value": "0" }, { "name": "Sm", "kind": "enum value", "id": "enum value|Sm|1|0|||1|h04aeae971ce9d7a484b07b5f4f92acbe5bc3d1c5706dfa602e261e378548ea1e", "signature": "Sm = 1", "value": "1" }] }, + { "name": "CuiSharp.CountdownOpts", "displayName": "CountdownOpts", "kind": "struct", "summary": "cui_countdown_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "_Bool compact" }, { "name": "HideDays", "kind": "field", "id": "field|HideDays|0|0|bool|||heb5d82549565d9fe214d52ce21b06bfce989aa231c4d6084ba87135b2966b212", "signature": "public bool HideDays", "summary": "_Bool hide_days" }] }, + { "name": "CuiSharp.CounterOpts", "displayName": "CounterOpts", "kind": "struct", "summary": "cui_counter_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font font" }, { "name": "GroupThousands", "kind": "field", "id": "field|GroupThousands|0|0|bool|||h081afdc03a58f3220b3f0100799570d8f61ba541512462dcf8bbac0d52f77c69", "signature": "public bool GroupThousands", "summary": "_Bool group_thousands" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.CoverageFile", "displayName": "CoverageFile", "kind": "struct", "summary": "cui_coverage_file. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Path;int Lines = default;int LinesHit = default;int Branches = default;int BranchesHit = default;int Functions = default;int FunctionsHit = default||haf014615142cbd5c0a6d8bbd32d2a0be5ecdbec878987e4e47e8a393ae0cc87d", "signature": "CoverageFile(string? Path, int Lines = default, int LinesHit = default, int Branches = default, int BranchesHit = default, int Functions = default, int FunctionsHit = default)", "parameters": [{ "name": "Path", "type": "string?" }, { "name": "Lines", "type": "int", "default": "default" }, { "name": "LinesHit", "type": "int", "default": "default" }, { "name": "Branches", "type": "int", "default": "default" }, { "name": "BranchesHit", "type": "int", "default": "default" }, { "name": "Functions", "type": "int", "default": "default" }, { "name": "FunctionsHit", "type": "int", "default": "default" }] }, { "name": "Branches", "kind": "field", "id": "field|Branches|0|0|int|||h211a3c4c9be92003e91bc3dec56563a566cbd138480d4e790a58b46727fe63de", "signature": "public int Branches", "summary": "0 branches: not measured" }, { "name": "BranchesHit", "kind": "field", "id": "field|BranchesHit|0|0|int|||h7071ae5f37dcb0ef19b28606d22fcaaeeff37d96ceb673dee1e8b81c1dd21303", "signature": "public int BranchesHit", "summary": "0 branches: not measured" }, { "name": "Functions", "kind": "field", "id": "field|Functions|0|0|int|||h3c5e176fc0b1d841c718c27c1c6ee284fa20c31afd0c68c06de7f1ec57e71b41", "signature": "public int Functions", "summary": "int functions" }, { "name": "FunctionsHit", "kind": "field", "id": "field|FunctionsHit|0|0|int|||h3eaad292bc305e419d0766b41114cb76df3544fa8fd5978eeb5629ed562a4f07", "signature": "public int FunctionsHit", "summary": "int functions_hit" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|int|||hee1996ff73a3bb29577188d155832b95024d32ca718f5404022abdd064faf7d7", "signature": "public int Lines", "summary": "int lines" }, { "name": "LinesHit", "kind": "field", "id": "field|LinesHit|0|0|int|||h313bb4660008239d0f40b3e18169ad54d23586b86c87095aa77eaf76404cc445", "signature": "public int LinesHit", "summary": "int lines_hit" }, { "name": "Path", "kind": "field", "id": "field|Path|0|0|string?|||h38c25c9591c0c2e3c6198e606e0b33109c4c38f51d9f1d9bbf7ada51d909598f", "signature": "public string? Path", "summary": "\u0022src/core/layout.c\u0022" }] }, + { "name": "CuiSharp.CoverageOpts", "displayName": "CoverageOpts", "kind": "struct", "summary": "cui_coverage_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "percent; default 50 and 80" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "percent; default 50 and 80" }, { "name": "High", "kind": "field", "id": "field|High|0|0|float|||h8d86ceb8300b405923f523b6dfd491fceedb9688753dea5f6c0ed797466bffb1", "signature": "public float High", "summary": "percent; default 50 and 80" }, { "name": "Low", "kind": "field", "id": "field|Low|0|0|float|||h5bec759be4f0ae85b0ce5535aeb5d662da36d7c794ada46efc1c76f1e46fbd11", "signature": "public float Low", "summary": "percent; default 50 and 80" }] }, + { "name": "CuiSharp.CoverageResult", "displayName": "CoverageResult", "kind": "struct", "summary": "cui_coverage_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Activated;float Lines = default||h88da104828a28b86b9fec371bc715be464eef60466c69c4ac1d557fb947e2bd2", "signature": "CoverageResult(int Activated, float Lines = default)", "parameters": [{ "name": "Activated", "type": "int" }, { "name": "Lines", "type": "float", "default": "default" }] }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|float|||h7ffa52c3fc8534cb001f45d21db0b1e58ef0821f4b768205d94dfde2e83269d5", "signature": "public float Lines", "summary": "percent of all lines covered" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "file, or -1" }] }, + { "name": "CuiSharp.CropperOpts", "displayName": "CropperOpts", "kind": "struct", "summary": "cui_cropper_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default the width it gets and 360" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default the width it gets and 360" }, { "name": "Round", "kind": "field", "id": "field|Round|0|0|bool|||h2247de0cb34a1cb7366fbff40bf14d0e5f3e5d0075c0ba267ebb0ba013999829", "signature": "public bool Round", "summary": "a round mask, for avatars (keeps a 1:1 aspect)" }, { "name": "Aspect", "kind": "field", "id": "field|Aspect|0|0|float|||h5a5a7490732f77b38ee208c886571caa7d8986b77932e6d27775bfe1970fb584", "signature": "public float Aspect", "summary": "width / height to keep, 0 for free" }, { "name": "MinSize", "kind": "field", "id": "field|MinSize|0|0|float|||h1099d1058b339206047e2995d1f051ab14f9f598203af7d8b0e01d0afc83ece3", "signature": "public float MinSize", "summary": "smallest side, image pixels; default 16" }] }, + { "name": "CuiSharp.CuiApp", "displayName": "CuiApp", "kind": "class", "summary": "A native window, its message loop and a renderer, owned by CUI. Run does not run a loop of its own: it registers the draw callback with CUI and lets the native loop call it. That is what keeps the frame alive while the user drags a window edge \u2014 the OS runs a modal loop of its own there, so a managed while loop would stop painting mid-drag and the layout would go stale. See docs/ARCHITECTURE.md, \u0022Frame model\u0022.", "members": [{ "name": "Window", "kind": "property", "id": "property|Window|0|0|CuiWindow||get;|h30234236b9766cf473f95843df3e0b68850602aaa1331cda3e58cd6d41ae7c9f", "signature": "CuiWindow Window { get; }", "summary": "The same window, for code that takes one: branding, logging, OS queries." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for this window\u0027s current frame." }, { "name": "Frame", "kind": "method", "id": "method|Frame|0|0|bool|||hd2350cbedf0fa94ca88ae82211435f00739775c3f1842e63f1955ac8d86e4b35", "signature": "bool Frame()", "summary": "Presents the previous frame, waits for input or an animation, then begins a new one. Returns false once the window is closed." }, { "name": "IsMaximized", "kind": "property", "id": "property|IsMaximized|0|0|bool||get;|hfc25b64604e9ea0e3c723dbda0dbba4b18badeaba57aa00663e20ad1607f48ed", "signature": "bool IsMaximized { get; }", "summary": "True when this window is maximized." }, { "name": "IsSoftwareRenderer", "kind": "property", "id": "property|IsSoftwareRenderer|0|0|bool||get;|h3f27446eacdf04d1fecebceee1cefae62e919fd65275bec82b6fe24474df4568", "signature": "bool IsSoftwareRenderer { get; }", "summary": "True when the OpenGL context could not be created and CUI fell back to its software rasterizer." }, { "name": "Screenshot", "kind": "method", "id": "method|Screenshot|0|0|bool|byte[] rgba;int width;int height||h32c92697cf1a2a7266dac82b2c2cbea772c64fac0524d04dfdd03db1124294f0", "signature": "bool Screenshot(byte[] rgba, int width, int height)", "parameters": [{ "name": "rgba", "type": "byte[]" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "Renders the current UI into an RGBA buffer. Handy for tests and screenshots." }, { "name": "NativeWindow", "kind": "property", "id": "property|NativeWindow|0|0|nint||get;|ha25309f909158c2015eb52345e6663cba17bb84816dcc0f42e5d0bc51c47a5b2", "signature": "nint NativeWindow { get; }", "summary": "The OS window: HWND on Windows, NSWindow* on macOS, X11 Window on Linux." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiApp?|CuiAppOptions options||h47bc6dc638f13abf75db2728a013b0d6322fbc723cadb7cc47fcf35a1b2dd7e6", "signature": "static CuiApp? Create(CuiAppOptions options)", "parameters": [{ "name": "options", "type": "CuiAppOptions" }], "summary": "Creates the window. Returns null when the platform backend fails." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|CuiAppOptions options;DrawFn draw||hde074914b64b4a7f5c888bcc4a2fa6b9978ece1b7ee0fd5e684eebd62b88ec8b", "signature": "static int Run(CuiAppOptions options, DrawFn draw)", "parameters": [{ "name": "options", "type": "CuiAppOptions" }, { "name": "draw", "type": "DrawFn" }], "summary": "Creates a window and calls draw once per frame until the window closes. This is the whole host: no XAML, no dispatcher." }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;|h71c8721a8cabf6ac9b6a38bb4aab8d0ede6c619052f697732584e574de3f6619", "signature": "string Backend { get; }", "summary": "The active backend: \u0022win32\u0022, \u0022cocoa\u0022, \u0022x11\u0022, \u0022sdl2\u0022 or \u0022glfw\u0022." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Minimize", "kind": "method", "id": "method|Minimize|0|0|void|||h2860f633e87f0e7e97be2e82dd4b4b77230f13533c648a1be17c41020ae3d35b", "signature": "void Minimize()", "summary": "Minimizes this window." }, { "name": "Quit", "kind": "method", "id": "method|Quit|0|0|void|||h43270dda39df05fe7b0d4d45612873989592f1ccd4994286cad598aff83df2aa", "signature": "void Quit()", "summary": "Asks the loop to stop after the current frame." }, { "name": "RequestClose", "kind": "method", "id": "method|RequestClose|0|0|void|||hb8e5c8757281b7813c0ddf13bc355f759625e935e912784f82ffc434fb19a7d0", "signature": "void RequestClose()", "summary": "Closes this window, exactly as its own close button would." }, { "name": "SetAccent", "kind": "method", "id": "method|SetAccent|0|0|void|Accent accent||hab9da51d01cc626e42924bf5eb47253639c5bb688c42d447eed3e2bb8cb429b7", "signature": "void SetAccent(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "Applies an accent now, or on the next frame if the window is not up yet." }, { "name": "SetTheme", "kind": "method", "id": "method|SetTheme|0|0|void|Theme theme||hdb1c01024b5fc0e6b77231b41e696500bb588bfde8080a16ba88452dac461341", "signature": "void SetTheme(Theme theme)", "parameters": [{ "name": "theme", "type": "Theme" }], "summary": "Applies a theme now, or on the next frame if the window is not up yet." }, { "name": "ToggleMaximize", "kind": "method", "id": "method|ToggleMaximize|0|0|void|||h7281054f8f114f52232a500cf106c448776f57d00b9485febb705097f13dec5c", "signature": "void ToggleMaximize()", "summary": "Maximizes this window, or restores it when it is already maximized." }] }, + { "name": "CuiSharp.CuiAppOptions", "displayName": "CuiAppOptions", "kind": "class", "summary": "Everything CuiApp needs to create a window. All optional.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "Initial accent color." }, { "name": "WindowCreated", "kind": "property", "id": "property|WindowCreated|0|0|Action\u003CCuiWindow\u003E?||get;set;|hd97fe9c9f1235fd79b21c918d15f41213dde9a8ef7ac4022420008cb12c230af", "signature": "Action\u003CCuiWindow\u003E? WindowCreated { get; set; }", "summary": "Called once the window exists and before the first frame is drawn \u2014 the first moment there is a handle to brand, log or query. OnInitialized is earlier than this on purpose: it runs before there is a window, so anything that needs one belongs here." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h052338a3e42584e812cd5ade8d171240c2895e01b48ef404f5d41de8ed8a32c5", "signature": "CuiAppOptions()" }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null asks the OS through CUI; a test supplies one so a picker flow runs with no display." }, { "name": "Renderer", "kind": "property", "id": "property|Renderer|0|0|Renderer||get;set;|h0f615c0e5b0af4a2b7c9934c403bbae0e54d46fe771b647c7749f48a921c8086", "signature": "Renderer Renderer { get; set; }", "summary": "OpenGL with a software fallback, or force one. Default Auto." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "Initial theme." }, { "name": "Continuous", "kind": "property", "id": "property|Continuous|0|0|bool||get;set;|he6c5620a986c421d7d4bd7ff7ee4c1796d95707661214a1acfe1a009d3473483", "signature": "bool Continuous { get; set; }", "summary": "Draw every frame even when idle (games, video). Off by default: an idle app uses no CPU." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|CuiAppOptions? other||h48d010e639d0a1df340d0abaf566f818724b7bdd6bc0cc3aca91e2dd0906ea6b", "signature": "bool Equals(CuiAppOptions? other)", "parameters": [{ "name": "other", "type": "CuiAppOptions?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "FixedSize", "kind": "property", "id": "property|FixedSize|0|0|bool||get;set;|ha6b23ab95d1fde7263609d4caf6654afbdcab017618e1f8e261d306547d82c41", "signature": "bool FixedSize { get; set; }", "summary": "Not resizable." }, { "name": "FollowSystemTheme", "kind": "property", "id": "property|FollowSystemTheme|0|0|bool||get;set;|hb10ada4260f9d6ef673f3d93429bb4f2e293ac4ee0d134fda67099b5d4ef63ad", "signature": "bool FollowSystemTheme { get; set; }", "summary": "Use the OS light/dark setting where available." }, { "name": "Hidden", "kind": "property", "id": "property|Hidden|0|0|bool||get;set;|hdfde751b33801c3ad300b37b9b7b855c0618c927d1aaa34dded70c57e1176091", "signature": "bool Hidden { get; set; }", "summary": "Create the window hidden, for tests and screenshot runs." }, { "name": "NoVsync", "kind": "property", "id": "property|NoVsync|0|0|bool||get;set;|h4bdbad4be8e7bf1a7a438a58268fc586d978e32a4b18a96357ec04b0b82ea237", "signature": "bool NoVsync { get; set; }", "summary": "Skip vsync." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;set;|hc7b93614a4ae8dd0ea39fa144f8777ad08a584d1f228dfd48ff13c50aadd20c6", "signature": "int Height { get; set; }", "summary": "Logical height in points. Default 720." }, { "name": "MinHeight", "kind": "property", "id": "property|MinHeight|0|0|int||get;set;|h1448407c9ebf6fa024da47950f5323ab1a0aa439306c5d9c75bc95179d546688", "signature": "int MinHeight { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "MinWidth", "kind": "property", "id": "property|MinWidth|0|0|int||get;set;|h8ece297c624a4a28500609df527eeb5587924f1cd96f776683f90be2f6a346ca", "signature": "int MinWidth { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;set;|hfbff7e44ea4065be82fc63038674b5db073aeb7b1f403be45e0d50324c5363a2", "signature": "int Width { get; set; }", "summary": "Logical width in points. Default 1080." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h7c436fe756a67e79c4a97240925e849602fb4bc71a85d31398a5741f3437732a", "signature": "static bool operator !=(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h5c33d0ca596aabf4dc3371c8cdacf711fe73f0d3d93b30bf96389af26a768e3e", "signature": "static bool operator ==(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "Title", "kind": "property", "id": "property|Title|0|0|string||get;set;|hf262b48dcf29de55fc6a8387b0fde28b5cf9eb8c742679739af198676b83b528", "signature": "string Title { get; set; }", "summary": "Window title. Default \u0022CUI\u0022." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.CuiCron", "displayName": "CuiCron", "kind": "static class", "summary": "Cron schedules without a frame: when an expression runs next, using the same parser the schedule picker shows its next runs with. Five fields (minute, hour, day, month, weekday), with *, lists, ranges, steps and the month and weekday names.", "members": [{ "name": "TryNext", "kind": "method", "id": "method|TryNext|1|0|bool|string cron;DateTimeOffset after;out DateTimeOffset next;int utcOffsetMinutes = default||h45c9a2e0364603001de581bc113a9f93cd0f141398c41961947ee9675eb1e035", "signature": "static bool TryNext(string cron, DateTimeOffset after, out DateTimeOffset next, int utcOffsetMinutes = default)", "parameters": [{ "name": "cron", "type": "string" }, { "name": "after", "type": "DateTimeOffset" }, { "name": "next", "type": "out DateTimeOffset" }, { "name": "utcOffsetMinutes", "type": "int", "default": "default" }], "summary": "The first time after after that cron matches." }] }, + { "name": "CuiSharp.CuiDiagnostics", "displayName": "CuiDiagnostics", "kind": "class", "summary": "One snapshot of what this process is actually running on: the renderer that was chosen, the native library it loaded, the display and dialog helper it will find. A station, a VM or a remote session fails in ways nobody can reproduce from a description, and every app ends up writing this by hand. Print it at startup, or on a --check flag, and the report says which of the two machines it came from.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h045f116644ce1367ba1261a3d3abff761cf164ab51083cb5b2e790184a58ae3d", "signature": "CuiDiagnostics()" }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|CuiDiagnostics? other||h8b9968c4c8748c81e7bf5fb2489be20ba189750bc9f5994e8892cff8cace8efe", "signature": "bool Equals(CuiDiagnostics? other)", "parameters": [{ "name": "other", "type": "CuiDiagnostics?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "SoftwareRenderer", "kind": "property", "id": "property|SoftwareRenderer|0|0|bool||get;set;|h2413e0212d14e26b5f904135df3e18786ea70264e1cbe1d1c5dce0f7a6b16036", "signature": "bool SoftwareRenderer { get; init; }", "summary": "True when OpenGL was unavailable or unhelpful and the software rasterizer draws." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Report", "kind": "method", "id": "method|Report|1|0|CuiDiagnostics|CuiWindow? window = null||h1859d46f8eaf6ef17454a9b08aa5ae718920e0fde4800cdc1934a9e1746f95e9", "signature": "static CuiDiagnostics Report(CuiWindow? window = null)", "parameters": [{ "name": "window", "type": "CuiWindow?", "default": "null" }], "summary": "Reads the machine, and the window when there is one. Pass the window from WindowCreated to learn which renderer actually won." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|CuiDiagnostics? left;CuiDiagnostics? right||h835207532afe819267c16c154792dba5fc2255f69c90f6f422ba6017fd9b8715", "signature": "static bool operator !=(CuiDiagnostics? left, CuiDiagnostics? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "CuiDiagnostics?" }, { "name": "right", "type": "CuiDiagnostics?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|CuiDiagnostics? left;CuiDiagnostics? right||h6532c2e545d825729f6674cd4a57008d1939f908c292b1baa8658168528547d0", "signature": "static bool operator ==(CuiDiagnostics? left, CuiDiagnostics? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "CuiDiagnostics?" }, { "name": "right", "type": "CuiDiagnostics?" }] }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;set;|h6f2bd4d265f2f26561618b557eb8ccb26ec79b8a47262646b2e1c43fb44bbd84", "signature": "string Backend { get; init; }", "summary": "The CUI backend that created the window: win32, x11, cocoa." }, { "name": "DialogHelper", "kind": "property", "id": "property|DialogHelper|0|0|string||get;set;|h73dfb3c1f64725048b8bcaa3a763d50fb742c6e1efd1dd8965296468ff0af30c", "signature": "string DialogHelper { get; init; }", "summary": "The program a Linux file dialog will shell out to, or empty when none was found." }, { "name": "Display", "kind": "property", "id": "property|Display|0|0|string||get;set;|ha88f1771bd148fcab63ebce49579a6f35fe128f2973ea441edf42aa218f80ce2", "signature": "string Display { get; init; }", "summary": "The display the window will use; empty when there is none." }, { "name": "GlibcFloor", "kind": "property", "id": "property|GlibcFloor|0|0|string||get;set;|h51b3ad0b58b2d6a41a481cf6b2bafe1d875013433317188ba6ac23c741186679", "signature": "string GlibcFloor { get; init; }", "summary": "The glibc floor the Linux binary promises; empty on other platforms." }, { "name": "Platform", "kind": "property", "id": "property|Platform|0|0|string||get;set;|h4d0689b967267a70a59520183f8d0d87f6700b4cd8bbf3f02949fca03ee76901", "signature": "string Platform { get; init; }", "summary": "The OS and runtime: win-x64, win-arm64, linux-x64, linux-arm64, osx-arm64." }, { "name": "Report", "kind": "method", "id": "method|Report|0|0|string|||hba97406277ec59b17e164b35d7746c4b0efed4bd7cedde0c4877313c6c27312a", "signature": "string Report()", "summary": "Everything above as the lines a person or a bug report reads." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Version", "kind": "property", "id": "property|Version|0|0|string||get;set;|h81037fde9c494ae8f88927f7d63be685a84c339cc2ff700fb5f5a30411f38873", "signature": "string Version { get; init; }", "summary": "The package version whose managed and native halves are loaded together." }] }, + { "name": "CuiSharp.CuiFiles", "displayName": "CuiFiles", "kind": "static class", "summary": "The filesystem helpers CUI keeps behind the file browser, and the in-place sorts the flame graph and the trace viewer need: a directory listing with the same rule the browser uses.", "members": [{ "name": "ListDirectory", "kind": "method", "id": "method|ListDirectory|1|0|FileEntry[]|string? path;bool includeHidden = default;int maxEntries = 20000||h264fbecb79cc8c4f52483f68db652cf87fa11e191f0f30cabc8baba01d4f072b", "signature": "static FileEntry[] ListDirectory(string? path, bool includeHidden = default, int maxEntries = 20000)", "parameters": [{ "name": "path", "type": "string?" }, { "name": "includeHidden", "type": "bool", "default": "default" }, { "name": "maxEntries", "type": "int", "default": "20000" }], "summary": "Lists a directory the way the file browser does: no ./.., and hidden entries only when asked for." }, { "name": "SortFlameSpans", "kind": "method", "id": "method|SortFlameSpans|1|0|void|Span\u003CFlameSpan\u003E spans||h51d02985e086ba826919a69f5cf84fbbb07f7a38858fb4dbab08504f5d9ef66f", "signature": "static void SortFlameSpans(Span\u003CFlameSpan\u003E spans)", "parameters": [{ "name": "spans", "type": "Span\u003CFlameSpan\u003E" }], "summary": "Sorts flame graph spans by weight in place, the order the graph expects." }, { "name": "SortTraceSpans", "kind": "method", "id": "method|SortTraceSpans|1|0|void|Span\u003CTraceSpan\u003E spans||ha0c5b36c520b5a87e07a8a081d0877de8877f00c03de24905cbd24f012fdc0de", "signature": "static void SortTraceSpans(Span\u003CTraceSpan\u003E spans)", "parameters": [{ "name": "spans", "type": "Span\u003CTraceSpan\u003E" }], "summary": "Sorts trace spans by lane, depth and start, the only order the trace viewer can draw (it needs no overlap inside a depth of a lane)." }] }, + { "name": "CuiSharp.CuiHttp", "displayName": "CuiHttp", "kind": "static class", "summary": "The HTTP and URL helpers the request bar and the parameters table share: a status line\u0027s reason, a method\u0027s name, and a URL\u0027s query kept in step with a list of KeyValue pairs. They take no Ui, so they work on a click and in a unit test alike.", "members": [{ "name": "ParseQuery", "kind": "method", "id": "method|ParseQuery|1|0|KeyValue[]|string url;int capacity = 64||h5827ba954c5fea87b94c37af133a924c183a57eb2cdc41503263923eca9e4bb3", "signature": "static KeyValue[] ParseQuery(string url, int capacity = 64)", "parameters": [{ "name": "url", "type": "string" }, { "name": "capacity", "type": "int", "default": "64" }], "summary": "Decodes a URL\u0027s query into pairs, the way the request bar\u0027s parameters table shows it." }, { "name": "MethodName", "kind": "method", "id": "method|MethodName|1|0|string|HttpMethod method||hf7157dccd0f087405414e60edc1f090066a89adc9f37697fbdabc65d029b5bd2", "signature": "static string MethodName(HttpMethod method)", "parameters": [{ "name": "method", "type": "HttpMethod" }], "summary": "The name of a method, e.g. \u0022PATCH\u0022." }, { "name": "Reason", "kind": "method", "id": "method|Reason|1|0|string|int status||h0f956116af6c240b16c4b22c7308429294ef3a7c5a17a95f778ca90ddaa87098", "signature": "static string Reason(int status)", "parameters": [{ "name": "status", "type": "int" }], "summary": "The reason phrase for a status code, e.g. \u0022Not Found\u0022; empty when CUI does not know it." }, { "name": "SetQuery", "kind": "method", "id": "method|SetQuery|1|0|string?|string url;ReadOnlySpan\u003CKeyValue\u003E pairs;int capacity = 8192||hb96d7f6d8359ac28aa80d1224982bb343513758c1f9a47d37bec2d88f50e1063", "signature": "static string? SetQuery(string url, ReadOnlySpan\u003CKeyValue\u003E pairs, int capacity = 8192)", "parameters": [{ "name": "url", "type": "string" }, { "name": "pairs", "type": "ReadOnlySpan\u003CKeyValue\u003E" }, { "name": "capacity", "type": "int", "default": "8192" }], "summary": "Rewrites url\u0027s query from pairs, encoding each key and value and keeping any fragment. Disabled pairs and pairs with no key are left out, so one list can drive both a live request and a table with rows that are switched off." }] }, + { "name": "CuiSharp.CuiMath", "displayName": "CuiMath", "kind": "static class", "summary": "The pure helpers behind the editors: evaluating a curve or a gradient the same way the widgets do, and diffing two texts. They take no Ui, so they are usable from a component\u0027s own code or a unit test.", "members": [{ "name": "EvaluateGradient", "kind": "method", "id": "method|EvaluateGradient|1|0|Color|ReadOnlySpan\u003CGradientStop\u003E stops;float t||h2b44807e417854d66da3b7e44648829cc51ba812a19885de52ef5b1d2d91235a", "signature": "static Color EvaluateGradient(ReadOnlySpan\u003CGradientStop\u003E stops, float t)", "parameters": [{ "name": "stops", "type": "ReadOnlySpan\u003CGradientStop\u003E" }, { "name": "t", "type": "float" }], "summary": "The colour of a gradient at t (0..1), interpolated in CUI\u0027s own space." }, { "name": "DiffLines", "kind": "method", "id": "method|DiffLines|1|0|ValueTuple\u003CDiffHunk[], DiffStats\u003E|string? oldText;string? newText;bool ignoreLineEndings = default;int maxHunks = 512||h306ff2abbdd0bfe668bb6f42f65d6f3ad89619c680c4ae8d304275ef66a69925", "signature": "static ValueTuple\u003CDiffHunk[], DiffStats\u003E DiffLines(string? oldText, string? newText, bool ignoreLineEndings = default, int maxHunks = 512)", "parameters": [{ "name": "oldText", "type": "string?" }, { "name": "newText", "type": "string?" }, { "name": "ignoreLineEndings", "type": "bool", "default": "default" }, { "name": "maxHunks", "type": "int", "default": "512" }], "summary": "The hunks that turn oldText into newText, computed the way the diff view does." }, { "name": "DiffWords", "kind": "method", "id": "method|DiffWords|1|0|ValueTuple\u003CDiffRange[], DiffRange[]\u003E?|string? oldLine;string? newLine;int capacity = 64||hac1dc5f0380325206f98f860e13ae186389d887c11a10ac54104d77fdb2dc17d", "signature": "static ValueTuple\u003CDiffRange[], DiffRange[]\u003E? DiffWords(string? oldLine, string? newLine, int capacity = 64)", "parameters": [{ "name": "oldLine", "type": "string?" }, { "name": "newLine", "type": "string?" }, { "name": "capacity", "type": "int", "default": "64" }], "summary": "Marks the byte ranges of one line that changed between two versions of it, as DiffRange lists." }, { "name": "PathMatches", "kind": "method", "id": "method|PathMatches|1|0|bool|string? path;string? filter||h3335ac66a79487be310c4f9cf7d35aabb3929531be1bf828896256aab690fc9a", "signature": "static bool PathMatches(string? path, string? filter)", "parameters": [{ "name": "path", "type": "string?" }, { "name": "filter", "type": "string?" }], "summary": "True when path matches a filter such as \u0022*.png;*.jpg\u0022, using CUI\u0027s own matching rule (the one the file picker applies)." }, { "name": "EvaluateCurve", "kind": "method", "id": "method|EvaluateCurve|1|0|float|ReadOnlySpan\u003CCurveKey\u003E keys;float x||hf889b3c0250dd3a07d264198a5d7fe683b02d1d2399e47344457accb553c88bc", "signature": "static float EvaluateCurve(ReadOnlySpan\u003CCurveKey\u003E keys, float x)", "parameters": [{ "name": "keys", "type": "ReadOnlySpan\u003CCurveKey\u003E" }, { "name": "x", "type": "float" }], "summary": "The value of a bezier curve at x, exactly as the curve editor draws it: keys sorted by X, with their handles." }] }, + { "name": "CuiSharp.CuiQuery", "displayName": "CuiQuery", "kind": "static class", "summary": "A filter built by the query builder, usable without a frame: the sentence it reads as, the operators a field type offers, and whether a record matches. The builder edits QueryNode values the app owns, so these take the same two arrays it draws from.", "members": [{ "name": "Match", "kind": "method", "id": "method|Match|1|0|bool|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;ReadOnlySpan\u003Cstring\u003E values||hfe5a111eb371af93ddd479c8559033524b4074d21c2ef10252a21d545327d9f8", "signature": "static bool Match(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, ReadOnlySpan\u003Cstring\u003E values)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "values", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "Whether a record satisfies the nodes; values is its value for each field, as text (\u00221\u0022, \u0022true\u0022, \u0022open\u0022), so the caller decides how a record becomes text." }, { "name": "OperatorCount", "kind": "method", "id": "method|OperatorCount|1|0|int|QueryType type||h162ddc6a768bee14f6da83dc85f76d19fb3b1684d6716e077767217648284a65", "signature": "static int OperatorCount(QueryType type)", "parameters": [{ "name": "type", "type": "QueryType" }], "summary": "How many operators a field type offers, which is what the picker lists." }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|string|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;int capacity = 1024||h648c3fcacc7e1fc238a6df0318764f71ca5cacefb654e336a383476bafe697cf", "signature": "static string Text(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, int capacity = 1024)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "capacity", "type": "int", "default": "1024" }], "summary": "The nodes as one sentence, the way the builder reads them back: \u0022Status is open and priority is high\u0022." }, { "name": "OperatorName", "kind": "method", "id": "method|OperatorName|1|0|string?|QueryType type;int op||he15a9e66e87e8831a4bf64cfb27b67684b1880491d2201106cd850600c1e5820", "signature": "static string? OperatorName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "The name of one operator of a field type, e.g. \u0022contains\u0022; null for none." }] }, + { "name": "CuiSharp.CuiRegex", "displayName": "CuiRegex", "kind": "static class", "summary": "CUI\u0027s regular expression engine, usable without a frame: the same backtracking matcher the regex tester draws its highlights with. It supports the common syntax (classes, anchors, groups and the usual quantifiers) and no lookaround or backreferences.", "members": [{ "name": "TrySearch", "kind": "method", "id": "method|TrySearch|1|0|bool|string pattern;string text;out RegexMatch match;out string? error;int from = default;RegexFlags flags = RegexFlags.None||hb2d5b003461d8b1897c2d86a3e8e5b39c0447ee43b09f0319df8b21e6a26e012", "signature": "static bool TrySearch(string pattern, string text, out RegexMatch match, out string? error, int from = default, RegexFlags flags = RegexFlags.None)", "parameters": [{ "name": "pattern", "type": "string" }, { "name": "text", "type": "string" }, { "name": "match", "type": "out RegexMatch" }, { "name": "error", "type": "out string?" }, { "name": "from", "type": "int", "default": "default" }, { "name": "flags", "type": "RegexFlags", "default": "RegexFlags.None" }], "summary": "Finds the first match of pattern in text at or after from (a byte offset)." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexGroup group||h2b82ba310f5930d0a5935ef237fb39a338249e8785db65743e1a58e255ccb1ff", "signature": "static string Slice(string text, RegexGroup group)", "parameters": [{ "name": "text", "type": "string" }, { "name": "group", "type": "RegexGroup" }], "summary": "One group\u0027s text, which is what a caller marking the groups wants. Nothing is encoded again, so calling it per group over one match costs one substring each." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexMatch match||hc3106500ab56083da4c72cdbdb2c3eb7bd26ca73028fa3e6683c72062e654e6b", "signature": "static string Slice(string text, RegexMatch match)", "parameters": [{ "name": "text", "type": "string" }, { "name": "match", "type": "RegexMatch" }], "summary": "The whole match\u0027s text." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;int start;int end||h607f1e88bd9a77d1ca487c76bc09d7749148df45f3d744269c4fce5fdf263bf6", "signature": "static string Slice(string text, int start, int end)", "parameters": [{ "name": "text", "type": "string" }, { "name": "start", "type": "int" }, { "name": "end", "type": "int" }], "summary": "The text between two UTF-8 byte offsets. The engine reports bytes, so a caller holding bytes uses them directly; a caller holding a string gets the characters they cover." }] }, + { "name": "CuiSharp.CuiSharpNativeException", "displayName": "CuiSharpNativeException", "kind": "class", "summary": "The native library that draws could not be loaded, or does not match the managed one. The loader\u0027s own message has no context \u2014 a real app reported version \u0060GLIBC_2.43\u0027 not found, raised at the first frame, inside a test \u2014 so this type names what was shipped, what it promises, and what to do about it.", "members": [] }, + { "name": "CuiSharp.CuiSurface", "displayName": "CuiSurface", "kind": "class", "summary": "A CUI context with no window, rendered by the built-in software rasterizer. This is the piece that makes UI code testable: the same CuiApp draw callback can run here, produce real pixels, and be asserted on in a unit test or a benchmark \u2014 no display, no GPU, no message loop. Frames are driven explicitly, which also makes it a stable way to measure build, layout and rasterization cost separately.", "members": [{ "name": "LastFrame", "kind": "property", "id": "property|LastFrame|0|0|FrameSample||get;|h5d220482c835fbe61d8c95e7613db0b9375f74f7460b6b5cd5596bdcfce3dae7", "signature": "FrameSample LastFrame { get; }", "summary": "What the last frame this surface drew cost: the same numbers as FrameStats, but owned by this surface, so a test that draws more than one \u2014 or a run with tests in parallel \u2014 reads the frame it drew rather than whichever frame finished last." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003CException\u003E||get;|h4f10b41d7a3334d039192ccfb2968378893ebf27bc3e3666101eff230e00ebfb", "signature": "IReadOnlyList\u003CException\u003E Faults { get; }", "summary": "Exceptions a component threw while this surface drew. A component\u0027s error boundary keeps the frame going, which would otherwise make a broken page look like a passing render test; assert Assert.Empty(surface.Faults)." }, { "name": "SemanticFrame", "kind": "property", "id": "property|SemanticFrame|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|h8f412fb194f3fab1ae344da5e6581baeb53f0b112d0db04f3574312c3606e25f", "signature": "IReadOnlyList\u003CSemanticWidget\u003E SemanticFrame { get; }", "summary": "Everything the last frame recorded, containers included and in drawing order: each entry\u0027s Depth is the nesting a tree can be rebuilt from." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "The controls the last completed frame drew, in drawing order." }, { "name": "LastDamage", "kind": "property", "id": "property|LastDamage|0|0|RectF?||get;|h886de16f648660ebaf8c90a11f1b17c7239d2ac8329f66ff56f8a41df7009b26", "signature": "RectF? LastDamage { get; }", "summary": "The rectangle the last render touched, or null when nothing was drawn." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for the current frame." }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the surface." }, { "name": "Incremental", "kind": "property", "id": "property|Incremental|0|0|bool||get;set;|hacb9ec72a98978bf472e802f469a46afecf64c7a317e69d960279507dbe0b8e5", "signature": "bool Incremental { get; set; }", "summary": "Renders only the part of the frame that changed since the last one." }, { "name": "RecordWidgets", "kind": "property", "id": "property|RecordWidgets|0|0|bool||get;set;|h12ff7eba27f200a3b7c19203bce586ffee8d30f4d92e098b9ce3c98c5db904b5", "signature": "bool RecordWidgets { get; set; }", "summary": "Records every widget this surface draws, so a test can find one by its label." }, { "name": "Scale", "kind": "property", "id": "property|Scale|0|0|float||get;|h883e3357763ccf7007445c3d9be5685c0c7f1c33b640549c04f3194acd9d1d98", "signature": "float Scale { get; }", "summary": "Device pixels per point." }, { "name": "CommandCount", "kind": "property", "id": "property|CommandCount|0|0|int||get;|h7015d40e472d6bd097f66cebf670d3d6ab94440536251a89021f1b2b123d8fe2", "signature": "int CommandCount { get; }", "summary": "How many draw commands the last frame produced. Useful in assertions." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the surface is tracking as dropped." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "PixelHeight", "kind": "property", "id": "property|PixelHeight|0|0|int||get;|h2bd224b0d7ef52ea2bc164604c2a48e2f715ab1a30078212b10a61040f105b5d", "signature": "int PixelHeight { get; }", "summary": "Framebuffer height in pixels." }, { "name": "PixelWidth", "kind": "property", "id": "property|PixelWidth|0|0|int||get;|h039e47804e7011558cf1a9c30c80148d2f7d83cc220bbc9ac831b2fa520315fe", "signature": "int PixelWidth { get; }", "summary": "Framebuffer width in pixels." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiSurface|int width;int height;float scale = 1f;int threads = 1;Theme theme = Theme.Light;Accent accent = Accent.Neutral||hc293129e10d7ddd50cc2c9ce993e45a91ec4818fb8e3d8b6ae3d2b77d5af2e28", "signature": "static CuiSurface Create(int width, int height, float scale = 1f, int threads = 1, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "threads", "type": "int", "default": "1" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context backed by the software rasterizer." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|0|0|void|float deltaSeconds = 0.016666668f||h08dcc7bc90dc1fbdc778c187534cdd6398e8ddf6390f6f1e80456526080c03af", "signature": "void BeginFrame(float deltaSeconds = 0.016666668f)", "parameters": [{ "name": "deltaSeconds", "type": "float", "default": "0.016666668f" }], "summary": "Starts a frame. Call EndFrame when the UI is built." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|void|MouseButton button = MouseButton.Left||h4d2f11669db57aa42eebc0eb7a4412070235903a0829a1bd133822b9b359c645", "signature": "void Click(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses and releases a button in one call, as a click through the frames that follow." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Draw", "kind": "method", "id": "method|Draw|0|0|void|DrawFn draw;byte[] pixels;PixelFormat format = PixelFormat.Bgra||hd3406c88dd83c4d2c78435b959e74a3c6bdfdfbfaeb3b4a9155b371284ec9c58", "signature": "void Draw(DrawFn draw, byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Convenience: build one frame with draw, end it and rasterize." }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|0|0|void|||h11cffed674475ec67c9e1db52e8a9a166b9de0e3a7b8cd5de25bcef9c33eb0e5", "signature": "void EndFrame()", "summary": "Ends the frame, finalising layout and the draw list." }, { "name": "FileDrop", "kind": "method", "id": "method|FileDrop|0|0|void|ReadOnlySpan\u003Cstring\u003E paths;float x;float y||h8e6fa8c5438b8df376665746710240d45da51c3bfdf763a06c087deb7ccd4e8a", "signature": "void FileDrop(ReadOnlySpan\u003Cstring\u003E paths, float x, float y)", "parameters": [{ "name": "paths", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dropped onto the surface at a position, in points." }, { "name": "FileHover", "kind": "method", "id": "method|FileHover|0|0|void|float x;float y||had6fb9fbe10cf6a7bcfe4b6ba2eb7aa741b5fed9e6167067f1a58d410338b3e1", "signature": "void FileHover(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dragged over the surface at a position, in points." }, { "name": "FileHoverEnd", "kind": "method", "id": "method|FileHoverEnd|0|0|void|||hf19c54630ff34fbe37cd70dd4eb1b999645a28f9577a369ac8c2d6035fca906d", "signature": "void FileHoverEnd()", "summary": "Reports that the drag left the surface." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|void|bool focused||ha34742eaa087dc3d112e143ded154bc310bcf0d4066b4ee49224925f287925dd", "signature": "void Focus(bool focused)", "parameters": [{ "name": "focused", "type": "bool" }], "summary": "Reports the window gaining or losing focus." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|void|Key key;Mods mods = (Mods)0||h9ed561245b24462be02e967c4af12b68cd5bfd3e9b3b5bdc127fd3ff8735ede0", "signature": "void KeyDown(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses a key, with the modifiers held at the same time." }, { "name": "KeyUp", "kind": "method", "id": "method|KeyUp|0|0|void|Key key;Mods mods = (Mods)0||h5f2f6b3f7a90feb6417e82e4faac750354301a486f0d7b94aedb59b6b10832e9", "signature": "void KeyUp(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Releases a key." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|void|MouseButton button = MouseButton.Left||hf7dc7f2f467e7a8890d3740e4dc73e761739a8203b3a6251f1a5834742b52913", "signature": "void MouseDown(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses a mouse button." }, { "name": "MouseLeave", "kind": "method", "id": "method|MouseLeave|0|0|void|||hb35bfc658e6ced59b07d192c7504782278306f4eddf257bf8675e58dc0821cd6", "signature": "void MouseLeave()", "summary": "The pointer left the window: hover state clears and no tooltip stays behind. This is what a screenshot wants, so the picture is the UI and not the mouse." }, { "name": "MouseMove", "kind": "method", "id": "method|MouseMove|0|0|void|float x;float y||h320f681d2766c5f9d42ab60fef452e41fb1d284a5964a4e65d43eac98f64ca07", "signature": "void MouseMove(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer, in points." }, { "name": "MouseUp", "kind": "method", "id": "method|MouseUp|0|0|void|MouseButton button = MouseButton.Left||h1dcbe29fd920bc03d7ec9c110aa2d027f329130e75a900307c3c5b385d99747a", "signature": "void MouseUp(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Releases a mouse button." }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|byte[] pixels;PixelFormat format = PixelFormat.Bgra||h778b6c9b38e5bca115053abf3f2f16bdc2d9384aece41aa3e433b2d7b34de987", "signature": "void Render(byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Rasterizes the last completed frame into pixels. The buffer must hold at least PixelWidth * PixelHeight * 4 bytes." }, { "name": "Resize", "kind": "method", "id": "method|Resize|0|0|void|int width;int height;float? scale = default||h13f0e92f027e4ff6e848843ffa015b7bd69d4175b6ae2f6da1fd43ed595e4f57", "signature": "void Resize(int width, int height, float? scale = default)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float?", "default": "default" }], "summary": "Resizes the logical viewport." }, { "name": "Scroll", "kind": "method", "id": "method|Scroll|0|0|void|float dy;float dx = default||hab95d953d9270d2ab04de27d9a826699c8daf68a3a13e5d8fedeee40f363cd93", "signature": "void Scroll(float dy, float dx = default)", "parameters": [{ "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Scrolls at the pointer\u0027s position. The distance is in wheel notches, and a positive dy scrolls up, towards the start, exactly as a real wheel does." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|void|UiText text||h460d8a1f013378ef18c04a0824d73403c4c15b1fffc12a2b2d599ca01f3be8f6", "signature": "void Type(UiText text)", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Types UTF-8 text, as the keyboard layout would deliver it." }] }, + { "name": "CuiSharp.CuiTaskStatus", "displayName": "CuiTaskStatus", "kind": "enum", "summary": "cui_task_status", "members": [{ "name": "Done", "kind": "enum value", "id": "enum value|Done|1|0|||2|h0d09b1ff6e353c36e5dd900182fe0c3ee544588418c008f9ec0398c0c6a3c5af", "signature": "Done = 2", "value": "2" }, { "name": "Failed", "kind": "enum value", "id": "enum value|Failed|1|0|||3|ha388847ac08b3e9c6aa93135681165d44342146d113eb7d424d79c6566af73e3", "signature": "Failed = 3", "value": "3" }, { "name": "Pending", "kind": "enum value", "id": "enum value|Pending|1|0|||0|hec96e2e3e744271639d8f4254e04687bf499d49642bb25da3eda1e9c5271971c", "signature": "Pending = 0", "value": "0" }, { "name": "Running", "kind": "enum value", "id": "enum value|Running|1|0|||1|h5fc8ea303ee3335e9b6c77adb13ed145130ac296d646919227c7232708248684", "signature": "Running = 1", "value": "1" }, { "name": "Skipped", "kind": "enum value", "id": "enum value|Skipped|1|0|||4|hc86a6a4cf9d7fbe0d4b4f660230c7effb152c9749550c01b40366787bc1640b4", "signature": "Skipped = 4", "value": "4" }] }, + { "name": "CuiSharp.CuiTree", "displayName": "CuiTree", "kind": "static class", "summary": "Sorts a tree model the way the tree table expects: every sibling list, relinked.", "members": [{ "name": "Sort", "kind": "method", "id": "method|Sort|1|0|int|TreeNode[] nodes;int root;Comparison\u003Cint\u003E compare;string key = \u0022tree-sort\u0022||h55f0abe563ef752ff38a7832d697465670f98a7cd688f1af5cec9b962807946b", "signature": "static int Sort(TreeNode[] nodes, int root, Comparison\u003Cint\u003E compare, string key = \u0022tree-sort\u0022)", "parameters": [{ "name": "nodes", "type": "TreeNode[]" }, { "name": "root", "type": "int" }, { "name": "compare", "type": "Comparison\u003Cint\u003E" }, { "name": "key", "type": "string", "default": "\u0022tree-sort\u0022" }], "summary": "Sorts each sibling list of nodes with compare, relinking the indices, and returns the new first top level node." }] }, + { "name": "CuiSharp.CuiWindow", "displayName": "CuiWindow", "kind": "class", "summary": "The OS window behind a running app: the handle to brand, log and query, without a P/Invoke of your own. WindowCreated hands one of these over after CUI has created the window and before the first frame draws, which is the first moment a window has a handle at all \u2014 far too late for OnInitialized, which runs before the window exists. Windows-only members report 0/false elsewhere: the app loop keeps its cui_app* to itself, and Windows is the one platform where the window can be asked for it back (its user data is that pointer).", "members": [{ "name": "PickFile", "kind": "method", "id": "method|PickFile|0|0|FilePickResult|FileDialogOpts options||h2f928bfe207b9eda497652e9a996483cfeda718eca492357c6eca5cebda1b45d", "signature": "FilePickResult PickFile(FileDialogOpts options)", "parameters": [{ "name": "options", "type": "FileDialogOpts" }], "summary": "Shows the OS\u0027s file, folder or save dialog and reports what the user did. Modal and blocking, so call it from a click, not from work that has to keep drawing." }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null means the OS\u0027s own dialog through CUI; a test sets a provider here (or on FileDialog) and the picker flow runs with no display and no dialog in the way." }, { "name": "PixelSize", "kind": "property", "id": "property|PixelSize|0|0|ValueTuple\u003Cint, int\u003E||get;|h1049152ea53b5dff6fd469d3f658f0b563323b3eec4d42c550fc77f96c46bd59", "signature": "ValueTuple\u003Cint, int\u003E PixelSize { get; }", "summary": "The client area in physical pixels." }, { "name": "IsMaximized", "kind": "property", "id": "property|IsMaximized|0|0|bool||get;|hfc25b64604e9ea0e3c723dbda0dbba4b18badeaba57aa00663e20ad1607f48ed", "signature": "bool IsMaximized { get; }", "summary": "True when the window is maximized." }, { "name": "IsSoftwareRenderer", "kind": "property", "id": "property|IsSoftwareRenderer|0|0|bool||get;|h3f27446eacdf04d1fecebceee1cefae62e919fd65275bec82b6fe24474df4568", "signature": "bool IsSoftwareRenderer { get; }", "summary": "True when OpenGL was unavailable and CUI draws with its software rasterizer. Worth logging on a station or a remote session: it explains a frame rate nobody can reproduce." }, { "name": "NativeWindow", "kind": "property", "id": "property|NativeWindow|0|0|nint||get;|ha25309f909158c2015eb52345e6663cba17bb84816dcc0f42e5d0bc51c47a5b2", "signature": "nint NativeWindow { get; }", "summary": "The HWND on Windows, the X11 window id on Linux, and NSWindow * on macOS \u2014 whatever this platform\u0027s own APIs expect. 0 until the window exists." }, { "name": "OpenUrl", "kind": "method", "id": "method|OpenUrl|1|0|bool|string url||h36d4863040754a133b65165de645036cae9628789e921f86c4e96dcabe98a403", "signature": "static bool OpenUrl(string url)", "parameters": [{ "name": "url", "type": "string" }], "summary": "Opens an https: URL in the user\u0027s browser. False when the OS refused it." }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;|h71c8721a8cabf6ac9b6a38bb4aab8d0ede6c619052f697732584e574de3f6619", "signature": "string Backend { get; }", "summary": "The backend that created the window: win32, x11, cocoa, \u2026" }, { "name": "Minimize", "kind": "method", "id": "method|Minimize|0|0|void|||h2860f633e87f0e7e97be2e82dd4b4b77230f13533c648a1be17c41020ae3d35b", "signature": "void Minimize()", "summary": "Minimizes the window." }, { "name": "RequestClose", "kind": "method", "id": "method|RequestClose|0|0|void|||hb8e5c8757281b7813c0ddf13bc355f759625e935e912784f82ffc434fb19a7d0", "signature": "void RequestClose()", "summary": "Closes the window, exactly as its own close button would." }, { "name": "SetTitle", "kind": "method", "id": "method|SetTitle|0|0|void|string title||he58ba132a5185e4a1d7f928750cc61d9fefcbceadcab750d0574f406cb35bd2a", "signature": "void SetTitle(string title)", "parameters": [{ "name": "title", "type": "string" }], "summary": "Retitles the window. Safe to call from a frame." }, { "name": "ToggleMaximize", "kind": "method", "id": "method|ToggleMaximize|0|0|void|||h7281054f8f114f52232a500cf106c448776f57d00b9485febb705097f13dec5c", "signature": "void ToggleMaximize()", "summary": "Maximizes the window, or restores it when it is already maximized." }] }, + { "name": "CuiSharp.Cursor", "displayName": "Cursor", "kind": "enum", "summary": "cui_cursor", "members": [{ "name": "Arrow", "kind": "enum value", "id": "enum value|Arrow|1|0|||0|he628f805f4872ef32e752258104a4425fd452bfd6fe7649beec3fb542be1f6bd", "signature": "Arrow = 0", "value": "0" }, { "name": "Count", "kind": "enum value", "id": "enum value|Count|1|0|||7|h7859c8f1bb1bec2e5c97d316b1a626da70b0c405f9e5fbdf6bec58ec4312c728", "signature": "Count = 7", "value": "7" }, { "name": "Hand", "kind": "enum value", "id": "enum value|Hand|1|0|||1|h4c24050af635eb68434fcb535f5ac3da1e32ae7bce35f81ccd1203c716bfe02c", "signature": "Hand = 1", "value": "1" }, { "name": "Move", "kind": "enum value", "id": "enum value|Move|1|0|||5|h69b70a83fde72e4f437d33f2248d2c931e8530d9f4707308deca0a66d5a8c41f", "signature": "Move = 5", "value": "5" }, { "name": "NotAllowed", "kind": "enum value", "id": "enum value|NotAllowed|1|0|||6|hca8954aaa9355c25c73437f411ef88868e731cc2fd0d3c69af8d9eeab7304b22", "signature": "NotAllowed = 6", "value": "6" }, { "name": "ResizeEw", "kind": "enum value", "id": "enum value|ResizeEw|1|0|||3|h015f10a5fb877ff9fa86934adad29163d826e586e3dbe3ab7aba1f6509810ce9", "signature": "ResizeEw = 3", "value": "3" }, { "name": "ResizeNs", "kind": "enum value", "id": "enum value|ResizeNs|1|0|||4|h6c883530d3cab38822797ef3f3b22b6569dcc51800806628320969adb133dd7a", "signature": "ResizeNs = 4", "value": "4" }, { "name": "Text", "kind": "enum value", "id": "enum value|Text|1|0|||2|h9ec0ca63f26d725e2afcfe887440c6d7eb63dbf1584dc868341cf21fef75ad2e", "signature": "Text = 2", "value": "2" }] }, + { "name": "CuiSharp.CurveKey", "displayName": "CurveKey", "kind": "struct", "summary": "cui_curve_key. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float X;float Y = default;float InDx = default;float InDy = default;float OutDx = default;float OutDy = default;byte Mode = default||hc10b7aa7d11341f0a13757c05f71be9bbd68cfcaadac423d677213d02927107e", "signature": "CurveKey(float X, float Y = default, float InDx = default, float InDy = default, float OutDx = default, float OutDy = default, byte Mode = default)", "parameters": [{ "name": "X", "type": "float" }, { "name": "Y", "type": "float", "default": "default" }, { "name": "InDx", "type": "float", "default": "default" }, { "name": "InDy", "type": "float", "default": "default" }, { "name": "OutDx", "type": "float", "default": "default" }, { "name": "OutDy", "type": "float", "default": "default" }, { "name": "Mode", "type": "byte", "default": "default" }] }, { "name": "Mode", "kind": "field", "id": "field|Mode|0|0|byte|||hc48af46ab8df3bf1e9fde7c99f8133936d52727786d62bae83f6331816627f29", "signature": "public byte Mode", "summary": "cui_curve_mode" }, { "name": "InDx", "kind": "field", "id": "field|InDx|0|0|float|||hbe72f2ff8c6697c4162be844af44cfe03b76835f139b58149b32a476236a35d2", "signature": "public float InDx", "summary": "handle toward the previous key, relative to the key (FREE)" }, { "name": "InDy", "kind": "field", "id": "field|InDy|0|0|float|||h8ab7a07ad294963d27a205c1d82954649160a7ccd9b23bf44e1eaf0318aa1c22", "signature": "public float InDy", "summary": "handle toward the previous key, relative to the key (FREE)" }, { "name": "OutDx", "kind": "field", "id": "field|OutDx|0|0|float|||h1394b8fd1f988184d1bd9439e07af07e316f1dc2c8932927fabaa26ec0fe4108", "signature": "public float OutDx", "summary": "handle toward the next key, relative to the key (FREE)" }, { "name": "OutDy", "kind": "field", "id": "field|OutDy|0|0|float|||h6e703ef86fb213aac57080ac4be84bc37a398dab0c90e86c0f1faa95baba9d1a", "signature": "public float OutDy", "summary": "handle toward the next key, relative to the key (FREE)" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float x" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float y" }] }, + { "name": "CuiSharp.CurveMode", "displayName": "CurveMode", "kind": "enum", "summary": "cui_curve_mode", "members": [{ "name": "Free", "kind": "enum value", "id": "enum value|Free|1|0|||1|hc38bd2f786874c6869a1998a734b78095f094609911ca59e6c5c493274878a38", "signature": "Free = 1", "value": "1" }, { "name": "Linear", "kind": "enum value", "id": "enum value|Linear|1|0|||2|hc049ce403b50ef6f46315b2da911beb8a34e49aa7e1c6dd496892b53a7e0585f", "signature": "Linear = 2", "value": "2" }, { "name": "Smooth", "kind": "enum value", "id": "enum value|Smooth|1|0|||0|h8f9647c46e9001c3f8d1d41859b19820fd04f233c513bde75d40fa4aaab202d8", "signature": "Smooth = 0", "value": "0" }, { "name": "Step", "kind": "enum value", "id": "enum value|Step|1|0|||3|h9c63b64a5a7f5c7b96fcc58961e9ee1fb44462bbbefb39de0967c721956159d1", "signature": "Step = 3", "value": "3" }] }, + { "name": "CuiSharp.CurveOpts", "displayName": "CurveOpts", "kind": "struct", "summary": "cui_curve_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "ShowPlayhead", "kind": "field", "id": "field|ShowPlayhead|0|0|bool|||h781f42f25aa728e40e480491b58b8ad2b9c356aae84a4c9161fcbf0a8955df1d", "signature": "public bool ShowPlayhead", "summary": "a marker at x = playhead" }, { "name": "Snap", "kind": "field", "id": "field|Snap|0|0|bool|||h612a42847e34b7b01834bc2a9bc45d0054e96a246f1ee03334b8993523cd0d3f", "signature": "public bool Snap", "summary": "drags always snap to the grid (otherwise hold Shift)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "plot height, default 220" }, { "name": "Playhead", "kind": "field", "id": "field|Playhead|0|0|float|||h13b4f9a1d03e6abcc658a8690c7eb073e4494ac8809fcb0a505d727c35c95dc9", "signature": "public float Playhead", "summary": "float playhead" }, { "name": "XMax", "kind": "field", "id": "field|XMax|0|0|float|||hfde8cf024bcd80f7aeaeab1561a00a5999ca4e0a44c92833c650b5e8371f7d84", "signature": "public float XMax", "summary": "plotted range; both 0 = 0..1. Keys stay inside it" }, { "name": "XMin", "kind": "field", "id": "field|XMin|0|0|float|||hda34f3cf948ea1ccb86f31fa14c4b0ae01bb26591a830aa7cf4d6904bbf532a1", "signature": "public float XMin", "summary": "plotted range; both 0 = 0..1. Keys stay inside it" }, { "name": "YMax", "kind": "field", "id": "field|YMax|0|0|float|||h08c14e82ca6ca6de19498074d2f4276eeb0414b9289ba4f3aaa07cfcbabefcc5", "signature": "public float YMax", "summary": "both 0 = 0..1; leave room above and below for overshoot" }, { "name": "YMin", "kind": "field", "id": "field|YMin|0|0|float|||h9fe2b8139f946e78f990e4d05a003bc70a707dad54a59b5bfe7a704cb5bdb21a", "signature": "public float YMin", "summary": "both 0 = 0..1; leave room above and below for overshoot" }, { "name": "XFormat", "kind": "field", "id": "field|XFormat|0|0|string?|||h84bff9c35a9947f320862f17d212a1b90a915ce62a3a97933b6134f65d16e852", "signature": "public string? XFormat", "summary": "printf formats for labels and readouts, default from the grid step" }, { "name": "XLabel", "kind": "field", "id": "field|XLabel|0|0|string?|||h5bda4d949c0c6ca8d8d6347120ba210c06bb017646874d73dcfab798cd0f5724", "signature": "public string? XLabel", "summary": "readout names, default \u0022X\u0022 and \u0022Y\u0022 (e.g. \u0022Time\u0022, \u0022Value\u0022)" }, { "name": "YFormat", "kind": "field", "id": "field|YFormat|0|0|string?|||h8b96500d860715a132efa2f0dd7a26efcb7f23b9fe640633606ca592f8524e17", "signature": "public string? YFormat", "summary": "printf formats for labels and readouts, default from the grid step" }, { "name": "YLabel", "kind": "field", "id": "field|YLabel|0|0|string?|||h6f154799663b1b32e6e6b484a6c3d43ea71d2e2ce48ec0d8f1d95fefb34fab4d", "signature": "public string? YLabel", "summary": "readout names, default \u0022X\u0022 and \u0022Y\u0022 (e.g. \u0022Time\u0022, \u0022Value\u0022)" }] }, + { "name": "CuiSharp.CurveResult", "displayName": "CurveResult", "kind": "struct", "summary": "cui_curve_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;int Added = default;int Removed = default;int Selected = default;bool Hovered = default;float HoverX = default;float HoverY = default||h4a0664fa222f43e36040c49902cdbc1386fdc31944ce99cfd1bf1bf446cfd3ab", "signature": "CurveResult(bool Changed, int Added = default, int Removed = default, int Selected = default, bool Hovered = default, float HoverX = default, float HoverY = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Added", "type": "int", "default": "default" }, { "name": "Removed", "type": "int", "default": "default" }, { "name": "Selected", "type": "int", "default": "default" }, { "name": "Hovered", "type": "bool", "default": "default" }, { "name": "HoverX", "type": "float", "default": "default" }, { "name": "HoverY", "type": "float", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "a key moved, a handle or mode changed, or a key was added or removed" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|bool|||h68c410e18b3a9cd7211ae1d44dffd6a46a8dccd1ff833d2154aaf2241bfe8a83", "signature": "public bool Hovered", "summary": "the pointer is over the plot:" }, { "name": "HoverX", "kind": "field", "id": "field|HoverX|0|0|float|||h6d3983e00fdd0dc802830b5a13e42596cd1ff3c17737924c3b437e01e780f5b3", "signature": "public float HoverX", "summary": "the x under it and the curve\u0027s value there" }, { "name": "HoverY", "kind": "field", "id": "field|HoverY|0|0|float|||h1ee83e1a2cff5f505adea50b07de7f70d2139ff513f4c2bf13c746028c5f45d7", "signature": "public float HoverY", "summary": "the x under it and the curve\u0027s value there" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "index of the key added this frame, or -1" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "index the removed key had, or -1" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "the selected key, or -1" }] }, + { "name": "CuiSharp.Date", "displayName": "Date", "kind": "struct", "summary": "cui_renderer_kind: OpenGL with a software fallback, or forced.", "members": [{ "name": "AddDays", "kind": "method", "id": "method|AddDays|0|0|Date|int days||hc92baa551b2617103d21988b2499499f1c0ac319315079c3ed7f6a59b125caca", "signature": "Date AddDays(int days)", "parameters": [{ "name": "days", "type": "int" }], "summary": "A copy moved by days, positive or negative." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int y;int m;int d||he9b6caaa159c52666abfddfc4145676a6a1885413e0902c10d767a16f74e1b1f", "signature": "Date(int y, int m, int d)", "parameters": [{ "name": "y", "type": "int" }, { "name": "m", "type": "int" }, { "name": "d", "type": "int" }] }, { "name": "DayNumber", "kind": "property", "id": "property|DayNumber|0|0|int||get;|h90086cc7c542c944d7ea881c4f591c2ee25f9c0184972f6522e9f1a6c55be89d", "signature": "int DayNumber { get; }", "summary": "Days since 1970-01-01, which is what date arithmetic in CUI uses." }, { "name": "DaysUntil", "kind": "method", "id": "method|DaysUntil|0|0|int|Date other||h3240809729260a7002ed0f1e41311540c324c29550a027be4a50fa70fbaa2b91", "signature": "int DaysUntil(Date other)", "parameters": [{ "name": "other", "type": "Date" }], "summary": "Days from this date to other; negative when it is earlier." }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day" }, { "name": "Month", "kind": "field", "id": "field|Month|0|0|int|||hcc05b036cc6bdfd0d27293432136b7293c2b0b8f7933726432712a3bbddfde9a", "signature": "public int Month" }, { "name": "Year", "kind": "field", "id": "field|Year|0|0|int|||h8b603079e90d1d910b69d673d70d00144bb31f3787b544bde4dced367798a4dc", "signature": "public int Year" }, { "name": "FromDayNumber", "kind": "method", "id": "method|FromDayNumber|1|0|Date|int days||h26dd562606c1487a6a6222860cb018055a326c909e73f489a9196346684baabe", "signature": "static Date FromDayNumber(int days)", "parameters": [{ "name": "days", "type": "int" }], "summary": "The date that many days after 1970-01-01." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.DateOpts", "displayName": "DateOpts", "kind": "struct", "summary": "cui_date_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.DateRange", "displayName": "DateRange", "kind": "struct", "summary": "cui_date_range. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Date Start;Date End = default||h98493b85740809da35fe54c9c629828ca79e25c692a3eb9d85605158cbb98f2d", "signature": "DateRange(Date Start, Date End = default)", "parameters": [{ "name": "Start", "type": "Date" }, { "name": "End", "type": "Date", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|Date|||h2f89325764b6e561f40d25c0710559925a9d23b2f268dee7a53f0a4c0e99f15b", "signature": "public Date End", "summary": "cui_date end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|Date|||h5308fa14681e4e7754e3fa507d5ec9848904ff7bb147546c875b26a58cda5588", "signature": "public Date Start", "summary": "cui_date start" }] }, + { "name": "CuiSharp.DateRangeOpts", "displayName": "DateRangeOpts", "kind": "struct", "summary": "cui_date_range_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoPresets", "kind": "field", "id": "field|NoPresets|0|0|bool|||h932ec471b8be791805004f8890eecf57332f46929e361b815bc5d438ff3317d3", "signature": "public bool NoPresets", "summary": "_Bool no_presets" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.DialogOpts", "displayName": "DialogOpts", "kind": "struct", "summary": "cui_dialog_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoCloseButton", "kind": "field", "id": "field|NoCloseButton|0|0|bool|||h0746055151c2ac4beef2b9d3e99801998789cbdec9f10f0cb2a714543502d7c5", "signature": "public bool NoCloseButton", "summary": "_Bool no_close_button" }, { "name": "Persistent", "kind": "field", "id": "field|Persistent|0|0|bool|||h622426eaeefdec9f0a39d878efa240b1b88b6eb047c96ead08fdd7a581f2ae0d", "signature": "public bool Persistent", "summary": "clicking outside or Esc does not close" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "default 440" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, + { "name": "CuiSharp.DiffHunk", "displayName": "DiffHunk", "kind": "struct", "summary": "One hunk of a line diff: a run of lines replaced between the old and new text.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int oldStart;int oldCount;int newStart;int newCount||hbc4b7953620edb9d4b9407c73c3657cfb521ff57fc06aaa418fffa8cbcbfd705", "signature": "DiffHunk(int oldStart, int oldCount, int newStart, int newCount)", "parameters": [{ "name": "oldStart", "type": "int" }, { "name": "oldCount", "type": "int" }, { "name": "newStart", "type": "int" }, { "name": "newCount", "type": "int" }] }, { "name": "NewCount", "kind": "field", "id": "field|NewCount|0|0|int|||h5fa274030ae82c3e1e68ee6c2b839b804b014b4f89c7f9d04c0eab62802e8041", "signature": "public readonly int NewCount" }, { "name": "NewStart", "kind": "field", "id": "field|NewStart|0|0|int|||h80756981cf4b2c2ebe6c9924ca763b1d4d328cba8d43584eefb70cbc0fee729d", "signature": "public readonly int NewStart" }, { "name": "OldCount", "kind": "field", "id": "field|OldCount|0|0|int|||h81584aeb12451ae90730f73cfaae4d9748e1ba1c05bd83b0b682c6a51eacd89b", "signature": "public readonly int OldCount" }, { "name": "OldStart", "kind": "field", "id": "field|OldStart|0|0|int|||h0d4a9b9d5e1c6d2b13b6995f70766e8d2a88ca345681748d3f08007c236ee3e6", "signature": "public readonly int OldStart" }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.DiffMode", "displayName": "DiffMode", "kind": "enum", "summary": "cui_diff_mode", "members": [{ "name": "Inline", "kind": "enum value", "id": "enum value|Inline|1|0|||1|ha91d17941a0d6047dc035d24c3f6bb80def25dbbe72a36720789263461f17d13", "signature": "Inline = 1", "value": "1" }, { "name": "Split", "kind": "enum value", "id": "enum value|Split|1|0|||0|h6edd27fe278fbd520a0e7727318b318581b0a2d8fc192487c9e71a2072d0faca", "signature": "Split = 0", "value": "0" }] }, + { "name": "CuiSharp.DiffOpts", "displayName": "DiffOpts", "kind": "struct", "summary": "cui_diff_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Mode", "kind": "field", "id": "field|Mode|0|0|DiffMode|||hd3b30f92655838349c59825ab303a32d61934710651f0b99ceeb3740d4273609", "signature": "public DiffMode Mode", "summary": "cui_diff_mode mode" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "IgnoreEol", "kind": "field", "id": "field|IgnoreEol|0|0|bool|||hf2e54db86370c797bbadf9071b840f69209a327b7622f77825a133938dc6e9df", "signature": "public bool IgnoreEol", "summary": "\u0022\\r\\n\u0022 equals \u0022\\n\u0022, and a missing final newline does not count" }, { "name": "NoFold", "kind": "field", "id": "field|NoFold|0|0|bool|||he276b90ea8e4014b799b46490fde17110fe40505b4fd1647ec9e81a450652218", "signature": "public bool NoFold", "summary": "show every unchanged line" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default: the rows, up to 420; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 12" }, { "name": "SplitMinWidth", "kind": "field", "id": "field|SplitMinWidth|0|0|float|||hc931e15221dec2e010745242455e00eba3f789c0449406ade12b6644a45a00b8", "signature": "public float SplitMinWidth", "summary": "below this width split shows inline, default 560" }, { "name": "Context", "kind": "field", "id": "field|Context|0|0|int|||h3378089986c603151e12fc1e07bbb36553bae2eccdf9eeeff4b37cc73b4ca195", "signature": "public int Context", "summary": "unchanged lines kept beside each change, default 3" }, { "name": "Language", "kind": "field", "id": "field|Language|0|0|string?|||h7b70233d756d8e3102bb14ac3853e782b0efc88f1e1296f5b020f3e57c961a9e", "signature": "public string? Language", "summary": "syntax colors, as cui_code_block: \u0022c\u0022, \u0022js\u0022, \u0022python\u0022, ..." }, { "name": "NewTitle", "kind": "field", "id": "field|NewTitle|0|0|string?|||ha4184120328b02b7243cad0ae26577a93e0ba5f3dc739c6ff1348d99bb144771", "signature": "public string? NewTitle", "summary": "a header above the sides, e.g. file names, with the \u002B/- summary" }, { "name": "OldTitle", "kind": "field", "id": "field|OldTitle|0|0|string?|||h2466fcf0ff3718f1967e1e5650fcbd4a3e6554ef873730dba46575b44cd299e8", "signature": "public string? OldTitle", "summary": "a header above the sides, e.g. file names, with the \u002B/- summary" }] }, + { "name": "CuiSharp.DiffRange", "displayName": "DiffRange", "kind": "struct", "summary": "A byte range in a line, for the changed part a diff marks.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int start;int length||h65fd50b70cc83dc445b72bac24d2ee324b9c31bec17b214c408bdc04b31ee240", "signature": "DiffRange(int start, int length)", "parameters": [{ "name": "start", "type": "int" }, { "name": "length", "type": "int" }] }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hc4b3ac71cbcd00d1d31b5b805dfd7ad195ee9992a5d298ebbb38934c6467b484", "signature": "public readonly int Length", "summary": "Length in bytes." }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||h04f3f89234f0f35afc07fb4501b63e42e82ec6f36ea1f2335cfcbd230aadab3d", "signature": "public readonly int Start", "summary": "Byte offset in the UTF-8 line." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.DiffResult", "displayName": "DiffResult", "kind": "struct", "summary": "cui_diff_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Added;int Removed = default;int Changes = default;int Current = default;bool CurrentChanged = default;DiffMode Mode = DiffMode.Split;int Folds = default;int Hidden = default;bool Recomputed = default;bool Approximate = default||h31d3612b613afdb626baf93c229a386d517e2455eb78ddbd968ad2663924bba0", "signature": "DiffResult(int Added, int Removed = default, int Changes = default, int Current = default, bool CurrentChanged = default, DiffMode Mode = DiffMode.Split, int Folds = default, int Hidden = default, bool Recomputed = default, bool Approximate = default)", "parameters": [{ "name": "Added", "type": "int" }, { "name": "Removed", "type": "int", "default": "default" }, { "name": "Changes", "type": "int", "default": "default" }, { "name": "Current", "type": "int", "default": "default" }, { "name": "CurrentChanged", "type": "bool", "default": "default" }, { "name": "Mode", "type": "DiffMode", "default": "DiffMode.Split" }, { "name": "Folds", "type": "int", "default": "default" }, { "name": "Hidden", "type": "int", "default": "default" }, { "name": "Recomputed", "type": "bool", "default": "default" }, { "name": "Approximate", "type": "bool", "default": "default" }] }, { "name": "Mode", "kind": "field", "id": "field|Mode|0|0|DiffMode|||hd3b30f92655838349c59825ab303a32d61934710651f0b99ceeb3740d4273609", "signature": "public DiffMode Mode", "summary": "what is shown: inline when split did not fit" }, { "name": "Approximate", "kind": "field", "id": "field|Approximate|0|0|bool|||hb762ffbc26224d46b550902012a8430d0900dac14865e74e515a44abdce293c8", "signature": "public bool Approximate", "summary": "the search hit its limit: correct, maybe not the shortest" }, { "name": "CurrentChanged", "kind": "field", "id": "field|CurrentChanged|0|0|bool|||h0a7e78afdaa311073f4ca3a8d0a0e625728a0c729369c4e03009285d8e80fea3", "signature": "public bool CurrentChanged", "summary": "this frame, by the keys, a click or .current" }, { "name": "Recomputed", "kind": "field", "id": "field|Recomputed|0|0|bool|||h72cba9388c825911572f7859885f9c3e21a0e953037a4d7d1d6e32e99d124b1f", "signature": "public bool Recomputed", "summary": "a text changed and was diffed this frame" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "lines" }, { "name": "Changes", "kind": "field", "id": "field|Changes|0|0|int|||h92c3316a456e87daf1c99d309c6ac018fc064ebbe8a432c2918508944c45979d", "signature": "public int Changes", "summary": "change blocks (hunks without context)" }, { "name": "Current", "kind": "field", "id": "field|Current|0|0|int|||h59aa7f0912b0ac389ff87c88363f76f78980244723618daa28eabc29cf1fa3f3", "signature": "public int Current", "summary": "the selected change, -1 none" }, { "name": "Folds", "kind": "field", "id": "field|Folds|0|0|int|||hc44f599c59fbcd4b7acdf51032e00a2ac75aa19f9f370cc82e1597d9e6404aa2", "signature": "public int Folds", "summary": "folded rows shown, and the unchanged lines they hide" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|int|||h213f22e3210862a27f997f5a3526334cfa037d774da6ae2360261c0b06188ad6", "signature": "public int Hidden", "summary": "folded rows shown, and the unchanged lines they hide" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "lines" }] }, + { "name": "CuiSharp.DiffRow", "displayName": "DiffRow", "kind": "struct", "summary": "cui_diff_row. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||DiffRowKind Kind;int OldLine = default;int NewLine = default;int Change = default;int Hidden = default||ha2d8064030632ada48ae236bf85ab0f706deec680f6fc2584262333c568a40a8", "signature": "DiffRow(DiffRowKind Kind, int OldLine = default, int NewLine = default, int Change = default, int Hidden = default)", "parameters": [{ "name": "Kind", "type": "DiffRowKind" }, { "name": "OldLine", "type": "int", "default": "default" }, { "name": "NewLine", "type": "int", "default": "default" }, { "name": "Change", "type": "int", "default": "default" }, { "name": "Hidden", "type": "int", "default": "default" }] }, { "name": "Kind", "kind": "field", "id": "field|Kind|0|0|DiffRowKind|||h8492c9bbc0fe5406fdc5a7e026a21a97cf6263728ebe12e1fcfdb21739b0fcd3", "signature": "public DiffRowKind Kind", "summary": "cui_diff_row_kind kind" }, { "name": "Change", "kind": "field", "id": "field|Change|0|0|int|||ha5a0494f795169c13c7b208ca15443b22801d16f70d84413d071e3652a1e1062", "signature": "public int Change", "summary": "the change it belongs to, or -1" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|int|||h213f22e3210862a27f997f5a3526334cfa037d774da6ae2360261c0b06188ad6", "signature": "public int Hidden", "summary": "fold rows: lines hidden" }, { "name": "NewLine", "kind": "field", "id": "field|NewLine|0|0|int|||hde0ec57f4b0e4c2fe5cd0414edd2f43cc4af58e34cf20bda6c518b84db99d69d", "signature": "public int NewLine", "summary": "0 based, -1 for none" }, { "name": "OldLine", "kind": "field", "id": "field|OldLine|0|0|int|||h7fcc25b0716435ac3fd7f7a6e3876e316598838154f4a1c68b64fec59950312d", "signature": "public int OldLine", "summary": "0 based, -1 for none" }] }, + { "name": "CuiSharp.DiffRowKind", "displayName": "DiffRowKind", "kind": "enum", "summary": "cui_diff_row_kind", "members": [{ "name": "Added", "kind": "enum value", "id": "enum value|Added|1|0|||2|h4d4e483e2e312c5992fb528c223eae5663a2527afd328555a2be240d1eee4fd1", "signature": "Added = 2", "value": "2" }, { "name": "Changed", "kind": "enum value", "id": "enum value|Changed|1|0|||3|h2350243378f3a230ca61b743196f0f466cf475797f40f452865d2cc65a1d1f83", "signature": "Changed = 3", "value": "3" }, { "name": "Fold", "kind": "enum value", "id": "enum value|Fold|1|0|||4|h62676722a011105afee65b4e11d81d4cba36f1ddac5031284747524648c274ad", "signature": "Fold = 4", "value": "4" }, { "name": "Removed", "kind": "enum value", "id": "enum value|Removed|1|0|||1|h713a6a6381d066cca0e8f6fbadc6e7eb7cc87e6cf7fc7f23fe0cf00ec700e0fa", "signature": "Removed = 1", "value": "1" }, { "name": "Same", "kind": "enum value", "id": "enum value|Same|1|0|||0|hd6fa0e97d043d101a8bdba59ae7a7fcca05b969c0f2ace179be747cea4eb3353", "signature": "Same = 0", "value": "0" }] }, + { "name": "CuiSharp.DiffStats", "displayName": "DiffStats", "kind": "struct", "summary": "What a line diff found, including whether it had to approximate.", "members": [{ "name": "Approximate", "kind": "field", "id": "field|Approximate|0|0|bool|||h769a85b2c677f2fb012edee5ae252bf3a0b2e4ccf65cb5f37a1e347e1a762267", "signature": "public readonly bool Approximate", "summary": "True when the inputs were too large for an exact diff, so the hunks are approximate." }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h2459fc9e0ec1433e2ab1f198dc706c810f3f45e030af3a8956406808af8a7543", "signature": "public readonly int Added" }, { "name": "Hunks", "kind": "field", "id": "field|Hunks|0|0|int|||hfaf0466c9dba1e116b55c120b81c45c59fac4a8a35ba140ce50d9495d3498aef", "signature": "public readonly int Hunks" }, { "name": "NewLines", "kind": "field", "id": "field|NewLines|0|0|int|||h12e9ccbe3cd59a37ec2d56df70b0a83485e605dab336c0c515e8bb5b88f08bbb", "signature": "public readonly int NewLines" }, { "name": "OldLines", "kind": "field", "id": "field|OldLines|0|0|int|||hdbf09d51d7abc42e788d9d216a7bd316ee659ac3b7dc4fe26226ebe5f104e733", "signature": "public readonly int OldLines" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||h55ddd8c614db136ffb765a028b70ccb77721e2995e348cb5998d3b2b97c6d529", "signature": "public readonly int Removed" }] }, + { "name": "CuiSharp.Dir", "displayName": "Dir", "kind": "enum", "summary": "cui_dir", "members": [{ "name": "Column", "kind": "enum value", "id": "enum value|Column|1|0|||0|hdc0ffc563d2d84071e89b6dc37af0391db3e179c0fea03a26c4887c2c2fca914", "signature": "Column = 0", "value": "0" }, { "name": "Grid", "kind": "enum value", "id": "enum value|Grid|1|0|||3|heab8b7c74bc4e6f706d70bc872a0f41e9e1846d1bf8a3c54ecc85a8fb002f41b", "signature": "Grid = 3", "value": "3" }, { "name": "Row", "kind": "enum value", "id": "enum value|Row|1|0|||1|h01b4d6d5e97c4e904a50f63964915be18cbc81ed58e8a8862caa8011428fc014", "signature": "Row = 1", "value": "1" }, { "name": "Stack", "kind": "enum value", "id": "enum value|Stack|1|0|||2|hb23a6ee1937f5075f878bd510a424ae01ee1cdc40ec392f5b1c96c3981b9da61", "signature": "Stack = 2", "value": "2" }] }, + { "name": "CuiSharp.Direction", "displayName": "Direction", "kind": "enum", "summary": "cui_direction", "members": [{ "name": "Auto", "kind": "enum value", "id": "enum value|Auto|1|0|||3|hf72d48c26d026930ece0857a52ce31269104f058d7c6303b8c7cb9932e20a0f7", "signature": "Auto = 3", "value": "3" }, { "name": "Inherit", "kind": "enum value", "id": "enum value|Inherit|1|0|||0|he2835ea7af3c110f1de6b7eec0e88f164a11899146ec5a87e050beebe18b6c11", "signature": "Inherit = 0", "value": "0" }, { "name": "Ltr", "kind": "enum value", "id": "enum value|Ltr|1|0|||1|h7f4b50e36d6bc42938dc15406c3b97ebc4653b03f3be8810fe401682fc4cc68a", "signature": "Ltr = 1", "value": "1" }, { "name": "Rtl", "kind": "enum value", "id": "enum value|Rtl|1|0|||2|h61be06b0c9df98eb5f2361e84be01d6f742bc9eb7f62d973e05e60dd38fe2794", "signature": "Rtl = 2", "value": "2" }] }, + { "name": "CuiSharp.DisabledScope", "displayName": "DisabledScope", "kind": "ref struct", "summary": "Closes a disabled gate opened by Disabled.", "members": [{ "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Pops the gate. Disposing twice does nothing." }] }, + { "name": "CuiSharp.DocTab", "displayName": "DocTab", "kind": "struct", "summary": "cui_doc_tab. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Icon = null;string? Tooltip = null;bool Dirty = default||ha3538768ee8e2356e93fa244d043d5befec3145d4d7bf41a5ee5dfef36695067", "signature": "DocTab(string? Title, string? Icon = null, string? Tooltip = null, bool Dirty = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Icon", "type": "string?", "default": "null" }, { "name": "Tooltip", "type": "string?", "default": "null" }, { "name": "Dirty", "type": "bool", "default": "default" }] }, { "name": "Dirty", "kind": "field", "id": "field|Dirty|0|0|bool|||h42a2b5080bdcb5c06c19af46ce1fb5cee7bf132aabdcbce284b87b0006d19976", "signature": "public bool Dirty", "summary": "_Bool dirty" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "const char * tooltip" }] }, + { "name": "CuiSharp.DocTabsOpts", "displayName": "DocTabsOpts", "kind": "struct", "summary": "cui_doc_tabs_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoClose", "kind": "field", "id": "field|NoClose|0|0|bool|||hfca81f4eb9e59ae96cde475ff7f7dda0ac1f605eb4bb446e5f2bb0678aef5aa1", "signature": "public bool NoClose", "summary": "_Bool no_close" }, { "name": "NoReorder", "kind": "field", "id": "field|NoReorder|0|0|bool|||h40e9e306cecd9e73b1d84769fb8b90372cf2ad2ee0ca9e2c1f0a076725bbc256", "signature": "public bool NoReorder", "summary": "_Bool no_reorder" }, { "name": "Shortcuts", "kind": "field", "id": "field|Shortcuts|0|0|bool|||h4e6eb384aa83d4f3f50e0a4cc9983840795f73909650a085beedd7b4f3eb5607", "signature": "public bool Shortcuts", "summary": "_Bool shortcuts" }] }, + { "name": "CuiSharp.DocTabsResult", "displayName": "DocTabsResult", "kind": "struct", "summary": "cui_doc_tabs_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;int Close = default;int MoveFrom = default;int MoveTo = default||h608dddfcf287fc9da2670e5c40013276d15c48d128d68665d4c6ce31b81deb1f", "signature": "DocTabsResult(bool Changed, int Close = default, int MoveFrom = default, int MoveTo = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Close", "type": "int", "default": "default" }, { "name": "MoveFrom", "type": "int", "default": "default" }, { "name": "MoveTo", "type": "int", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "selected changed (click, keys or a move)" }, { "name": "Close", "kind": "field", "id": "field|Close|0|0|int|||hd66699e2f0c82a29493772269f2265430cd51ffdaea1b6e5a53620ccd8057858", "signature": "public int Close", "summary": "tab to close, or -1" }, { "name": "MoveFrom", "kind": "field", "id": "field|MoveFrom|0|0|int|||h5242007257927bf644e70880032ca9628cfdfcb01004763000e1099c7dc49aa8", "signature": "public int MoveFrom", "summary": "move the tab at move_from to move_to, or -1" }, { "name": "MoveTo", "kind": "field", "id": "field|MoveTo|0|0|int|||h9978012a238735312417aa1be6c6e404ffce2291eb4cc9867928d6eb35aebeac", "signature": "public int MoveTo", "summary": "move the tab at move_from to move_to, or -1" }] }, + { "name": "CuiSharp.DockItemOpts", "displayName": "DockItemOpts", "kind": "struct", "summary": "cui_dock_item_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Running", "kind": "field", "id": "field|Running|0|0|bool|||h2fd04b97026835fabd2b7359dcc11db3a29c3ff82f76076575e5902dbdd99c22", "signature": "public bool Running", "summary": "_Bool running" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|int|||h1ea0a5985eea3db7ed64622a6693b2d10e07bdfdc4610208a1b5ee962fce491c", "signature": "public int Badge", "summary": "int badge" }] }, + { "name": "CuiSharp.DockOpts", "displayName": "DockOpts", "kind": "struct", "summary": "cui_dock_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Magnify", "kind": "field", "id": "field|Magnify|0|0|float|||h1b7c2d09207b0b96fb623cbceda94330e8256fdb75cff5e9cb0e5693e018a756", "signature": "public float Magnify", "summary": "float magnify" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }] }, + { "name": "CuiSharp.DockPanelOpts", "displayName": "DockPanelOpts", "kind": "struct", "summary": "cui_dock_panel_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Dirty", "kind": "field", "id": "field|Dirty|0|0|bool|||h42a2b5080bdcb5c06c19af46ce1fb5cee7bf132aabdcbce284b87b0006d19976", "signature": "public bool Dirty", "summary": "_Bool dirty" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.DockspaceOpts", "displayName": "DockspaceOpts", "kind": "struct", "summary": "cui_dockspace_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Shortcuts", "kind": "field", "id": "field|Shortcuts|0|0|bool|||h4e6eb384aa83d4f3f50e0a4cc9983840795f73909650a085beedd7b4f3eb5607", "signature": "public bool Shortcuts", "summary": "Ctrl\u002BTab, Ctrl\u002BShift\u002BTab and Ctrl\u002BW act on the focused leaf" }, { "name": "MinPanelHeight", "kind": "field", "id": "field|MinPanelHeight|0|0|float|||h477499d2af5c2fdee80ea8ecbb7b89b8cd2bc2693730e692f2b738fdae410cd7", "signature": "public float MinPanelHeight", "summary": "default 96" }, { "name": "MinPanelWidth", "kind": "field", "id": "field|MinPanelWidth|0|0|float|||hc8164d822bee1bca4df57bb3dbc7061e2e0cc00b5193fd5ee4341cbc793ce8d5", "signature": "public float MinPanelWidth", "summary": "default 120; splits stop here (and share what there is when too narrow)" }, { "name": "Layout", "kind": "field", "id": "field|Layout|0|0|string?|||h7807b455d7c8e77a74fac9c1ed12f22e7825f946f81c5f2e7061245ab3347feb", "signature": "public string? Layout", "summary": "first run layout, in the cui_dock_save format" }] }, + { "name": "CuiSharp.DrawFn", "displayName": "DrawFn", "kind": "delegate", "summary": "A synchronous frame body. The UI cannot be captured or retained.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||ha74493026c9de67ad69b8f35161e850315e72088b4317124a83ed60551932c34", "signature": "DrawFn(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|Ui ui;AsyncCallback callback;object object||hac45c9831a9929ee04100a2592686ec77db7286035ae1280a8a0991cb1ae3be3", "signature": "IAsyncResult BeginInvoke(Ui ui, AsyncCallback callback, object @object)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|void|IAsyncResult result||h477a5257f2f4c2172e54e854d9bc2f5c7bb790dade430a493c5a1c7d25248214", "signature": "void EndInvoke(IAsyncResult result)", "parameters": [{ "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|void|Ui ui||h6cf12a559130f0cd4de4cd53bad7ece84ae886f89c24c8cde5b5abb7b8ec0223", "signature": "void Invoke(Ui ui)", "parameters": [{ "name": "ui", "type": "Ui" }] }] }, + { "name": "CuiSharp.DropzoneOpts", "displayName": "DropzoneOpts", "kind": "struct", "summary": "cui_dropzone_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "one row instead of a tall area" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 160" }, { "name": "Accept", "kind": "field", "id": "field|Accept|0|0|string?|||he1cd70d9dbbd9f84fd9ce4b5c3d19aa3c01a01f13616bb14cc0439178b505e31", "signature": "public string? Accept", "summary": "const char * accept" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "default \u0022or click to browse\u0022" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "default \u0022Drop files here\u0022" }] }, + { "name": "CuiSharp.Elevation", "displayName": "Elevation", "kind": "enum", "summary": "cui_elevation", "members": [{ "name": "Floating", "kind": "enum value", "id": "enum value|Floating|1|0|||3|hea861d50b6430afa49c308761158bbe38bf8658357985f957ce7935d5dc3d6a0", "signature": "Floating = 3", "value": "3" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Raised", "kind": "enum value", "id": "enum value|Raised|1|0|||2|h51cd57578ceace29bb2f45982e1f1be70d5ee21927853c4ee7416ca6afcd5d56", "signature": "Raised = 2", "value": "2" }, { "name": "Resting", "kind": "enum value", "id": "enum value|Resting|1|0|||1|h8ac65c1838c4d6f382fb1a100a957164102784f2c89ef84d1e759e6df2917199", "signature": "Resting = 1", "value": "1" }] }, + { "name": "CuiSharp.EmojiPickerOpts", "displayName": "EmojiPickerOpts", "kind": "struct", "summary": "cui_emoji_picker_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default up to 360" }, { "name": "NoPreview", "kind": "field", "id": "field|NoPreview|0|0|bool|||hbeaa404a65a9984c7454a2349b3c291f329b719ffe8f3385a0254312d5296ecf", "signature": "public bool NoPreview", "summary": "_Bool no_preview" }, { "name": "NoSearch", "kind": "field", "id": "field|NoSearch|0|0|bool|||h8e94ce70444af175e010e0b7f8ff2f0915d32ba5ec633f5ad9453567d32d7f78", "signature": "public bool NoSearch", "summary": "_Bool no_search" }, { "name": "NoTone", "kind": "field", "id": "field|NoTone|0|0|bool|||h260b857a4c1befdacb445624a62fd982ed4f73869740cc869039fdfb6494be78", "signature": "public bool NoTone", "summary": "_Bool no_tone" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "the grid; default 280" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "emoji size; default 26" }, { "name": "EmptyText", "kind": "field", "id": "field|EmptyText|0|0|string?|||hf342717e6ad669bb04ece3755e058da1432d4a41e61e0ea43136bbbef165f6be", "signature": "public string? EmptyText", "summary": "\u0022No emoji found\u0022" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|string?|||h6e4db358e5bb7cc3e8ac0f128ae742d77d252775d935f95c1c7492d00fc7cd97", "signature": "public string? Hint", "summary": "the preview with nothing to show: \u0022Pick an emoji\u0022" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "\u0022Search emoji\u0022" }, { "name": "GroupNames", "kind": "field", "id": "field|GroupNames|0|0|string[]?|||h328415c09df94848481e5a7363140eb990686579adea1f2281589310cfc9808e", "signature": "public string[]? GroupNames", "summary": "10 names: recent, then Unicode\u0027s nine groups" }] }, + { "name": "CuiSharp.EmptyOpts", "displayName": "EmptyOpts", "kind": "struct", "summary": "cui_empty_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.ExpandableCardOpts", "displayName": "ExpandableCardOpts", "kind": "struct", "summary": "cui_expandable_card_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "BadgeTone", "kind": "field", "id": "field|BadgeTone|0|0|Tone|||h7d1e4a819759475402672321667bc594bcbc369a9973d1d17f2954d94090361f", "signature": "public Tone BadgeTone", "summary": "cui_tone badge_tone" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.ExpandableTextOpts", "displayName": "ExpandableTextOpts", "kind": "struct", "summary": "cui_expandable_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "FadeTo", "kind": "field", "id": "field|FadeTo|0|0|Color|||h17b06b5593d3c727948dda416fb417a81cf58431563d79d9e2ad86da829d4e18", "signature": "public Color FadeTo", "summary": "cui_color fade_to" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|int|||hee1996ff73a3bb29577188d155832b95024d32ca718f5404022abdd064faf7d7", "signature": "public int Lines", "summary": "int lines" }] }, + { "name": "CuiSharp.FaderOpts", "displayName": "FaderOpts", "kind": "struct", "summary": "cui_fader_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "HideValue", "kind": "field", "id": "field|HideValue|0|0|bool|||h20146cccd15f7f41f4700bc1046703defa878698eed0451ccdc8acf0325f3763", "signature": "public bool HideValue", "summary": "_Bool hide_value" }, { "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|bool|||h526d7918635bb7515376b05bb273960bfff3d8076453a269cb0cc74fef6ec108", "signature": "public bool Horizontal", "summary": "_Bool horizontal" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|float|||hde0ed5b9413eadd735eb6ae0346647e34ca58923c6d228bcc21459281e52a172", "signature": "public float Length", "summary": "track length, default 160" }, { "name": "Reset", "kind": "field", "id": "field|Reset|0|0|float|||h6f7e0b1685ab6d501be44af24ff4fc26ab960c5abf2371bc447d2d1768038172", "signature": "public float Reset", "summary": "double-click value, default 0 (clamped to the range)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float step" }, { "name": "Meter", "kind": "field", "id": "field|Meter|0|0|float[]?|||h4733531ec8f1b28d8ffefa8a261909c9f0a67a6bf68cbefc3bde32b479d6d456", "signature": "public float[]? Meter", "summary": "a level meter beside the track (linear peaks, up to 8); a dB fader\u0027s range sets its scale" }, { "name": "Ticks", "kind": "field", "id": "field|Ticks|0|0|float[]?|||h568985bf4f209625e6445b6a87666db9cb9d1df9c66fe690bc3ea871ff1c40ed", "signature": "public float[]? Ticks", "summary": "scale marks in value units, labelled beside the track" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "default \u0022%.1f\u0022" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "under a vertical fader, before a horizontal one; the id when NULL" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "const char * unit" }] }, + { "name": "CuiSharp.FeatureFlag", "displayName": "FeatureFlag", "kind": "struct", "summary": "cui_feature_flag. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Key;string? Description = null;bool[]? On = null;int[]? Rollout = null||hf6e76d11725ccb1702cf3044e35a9de7ac85b70e3297694ecaf77c591cc9f7f1", "signature": "FeatureFlag(string? Key, string? Description = null, bool[]? On = null, int[]? Rollout = null)", "parameters": [{ "name": "Key", "type": "string?" }, { "name": "Description", "type": "string?", "default": "null" }, { "name": "On", "type": "bool[]?", "default": "null" }, { "name": "Rollout", "type": "int[]?", "default": "null" }] }, { "name": "On", "kind": "field", "id": "field|On|0|0|bool[]?|||h73d90856923aaf0e3c785e4fbbd150102925e7f97fe12b709a2ed3c2b08b94ea", "signature": "public bool[]? On", "summary": "_Bool[8] on" }, { "name": "Rollout", "kind": "field", "id": "field|Rollout|0|0|int[]?|||h5a007ef18d7672d3a2d6cf8855f4dab254fdd7953013980ca29076a9f17d1346", "signature": "public int[]? Rollout", "summary": "percent of users while on; 0 and 100 mean everyone" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Key", "kind": "field", "id": "field|Key|0|0|string?|||h281882e813d8ea53a018b2a3c3109be418f13385ae48845424a2b53db1b89958", "signature": "public string? Key", "summary": "const char * key" }] }, + { "name": "CuiSharp.FeatureFlagsOpts", "displayName": "FeatureFlagsOpts", "kind": "struct", "summary": "cui_feature_flags_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fits the flags" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default fits the flags" }] }, + { "name": "CuiSharp.FeatureFlagsResult", "displayName": "FeatureFlagsResult", "kind": "struct", "summary": "cui_feature_flags_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Flag;int Env = default||h00ace949773ed8b78145fb22ffd942d177f945c92ac5b3ab1fc6064a04f7a1b7", "signature": "FeatureFlagsResult(int Flag, int Env = default)", "parameters": [{ "name": "Flag", "type": "int" }, { "name": "Env", "type": "int", "default": "default" }] }, { "name": "Env", "kind": "field", "id": "field|Env|0|0|int|||h269fe73fb8fabfdb994eca29622654e19b24a6ecb8611be18a698db081d93601", "signature": "public int Env", "summary": "changed this frame, or -1" }, { "name": "Flag", "kind": "field", "id": "field|Flag|0|0|int|||h8f33ee8f28f37670ad5fa060fa8a67e317f7a892fc622de79b672ab614aa1637", "signature": "public int Flag", "summary": "changed this frame, or -1" }] }, + { "name": "CuiSharp.FileBrowserOpts", "displayName": "FileBrowserOpts", "kind": "struct", "summary": "cui_file_browser_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill and 380" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill and 380" }, { "name": "FoldersOnly", "kind": "field", "id": "field|FoldersOnly|0|0|bool|||hd4a4b3af32b957c4b1a2c99c0fa5059efa4b339e4c87bd069ce62bd5ee1538e1", "signature": "public bool FoldersOnly", "summary": "_Bool folders_only" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|bool|||h824886caee00945c7c8430f150f6f9ebae2c31fa84b5a9df597acdd491d67531", "signature": "public bool Hidden", "summary": "show hidden files" }, { "name": "NoPlaces", "kind": "field", "id": "field|NoPlaces|0|0|bool|||h58e98131b4355be0155f7c399c74de85b84fa6757939ee13419ab927f3b24713", "signature": "public bool NoPlaces", "summary": "the sidebar of places" }, { "name": "MaxEntries", "kind": "field", "id": "field|MaxEntries|0|0|int|||h2695eb0ec10136d936d6e32d011a43f4405cf384da5a9a9b0c31d3fe6fea80a9", "signature": "public int MaxEntries", "summary": "default 20,000" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|string?|||h10b054d3af89b0f0488b555fdda99184421e59d9ce8a4d148cb733dd5d1b7914", "signature": "public string? Filter", "summary": "patterns that files must match, e.g. \u0022*.png;*.jpg\u0022; folders always show" }, { "name": "Places", "kind": "field", "id": "field|Places|0|0|string[]?|||h990fb79d8bafaa6917afcb8be44dfcc4493a6279144094fcd6473494d284e6a9", "signature": "public string[]? Places", "summary": "sidebar paths, default home, desktop, documents, downloads and the root" }] }, + { "name": "CuiSharp.FileBrowserResult", "displayName": "FileBrowserResult", "kind": "struct", "summary": "cui_file_browser_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Picked;string? Selected = null;bool Navigated = default;bool Error = default||he5088af553dcb9fdaf2f3c30532ac05bec6db922df4f680874f8bb5518eb3c97", "signature": "FileBrowserResult(string? Picked, string? Selected = null, bool Navigated = default, bool Error = default)", "parameters": [{ "name": "Picked", "type": "string?" }, { "name": "Selected", "type": "string?", "default": "null" }, { "name": "Navigated", "type": "bool", "default": "default" }, { "name": "Error", "type": "bool", "default": "default" }] }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|bool|||hfd3432e69e2ee9d8db7e2cf8e846e6ac7fa7e98f45f67611fc47c03848a2c005", "signature": "public bool Error", "summary": "the folder could not be read" }, { "name": "Navigated", "kind": "field", "id": "field|Navigated|0|0|bool|||h7d8d88fb1663873906d90fd2bbc4febe3ad0264fb67b6f5fd54ac239688f8e3a", "signature": "public bool Navigated", "summary": "the folder in *path changed" }, { "name": "Picked", "kind": "field", "id": "field|Picked|0|0|string?|||he71fd616e11ffb9e4da1cc59b6bd371a33aa790a02f79d4af9201918912c8b28", "signature": "public string? Picked", "summary": "a file double-clicked or Entered, as a full path; valid this frame" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|string?|||h54e5042859558d471336a926eec4ae000369b42583863b5ecc399c5282d6f06f", "signature": "public string? Selected", "summary": "the selected entry as a full path, or NULL; valid this frame" }] }, + { "name": "CuiSharp.FileDialogKind", "displayName": "FileDialogKind", "kind": "enum", "summary": "cui_file_dialog_kind", "members": [{ "name": "Folder", "kind": "enum value", "id": "enum value|Folder|1|0|||2|hfad08ccc2097c52e94a8848d92d7296f90663bca9f46086f76e490a97544ffd6", "signature": "Folder = 2", "value": "2" }, { "name": "Open", "kind": "enum value", "id": "enum value|Open|1|0|||0|h86a861179fe6c6a3d949261e4d06eada700915f79e934f27203b73c0dfcac5ce", "signature": "Open = 0", "value": "0" }, { "name": "Save", "kind": "enum value", "id": "enum value|Save|1|0|||1|hfd7e65f5d4052b41e4b88420ff8555e791871fb72dca88a7756b690eec398289", "signature": "Save = 1", "value": "1" }] }, + { "name": "CuiSharp.FileDialogOpts", "displayName": "FileDialogOpts", "kind": "struct", "summary": "cui_file_dialog_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Kind", "kind": "field", "id": "field|Kind|0|0|FileDialogKind|||h512c396246ef17a640b367e83509222e0af62a830efa14c05edc36e5058f579d", "signature": "public FileDialogKind Kind", "summary": "cui_file_dialog_kind kind" }, { "name": "DefaultName", "kind": "field", "id": "field|DefaultName|0|0|string?|||h8ba7bcb3e3153953071109e359c6a8a1be52cc7c12fb8ceabb62d333927fa681", "signature": "public string? DefaultName", "summary": "save dialogs" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|string?|||h10b054d3af89b0f0488b555fdda99184421e59d9ce8a4d148cb733dd5d1b7914", "signature": "public string? Filter", "summary": "extensions separated by \u0027;\u0027, e.g. \u0022png;jpg\u0022" }, { "name": "FilterName", "kind": "field", "id": "field|FilterName|0|0|string?|||hb6099e8dce4d15e8c940b0b12de8a32f4ff43079315e297806daa40767e99ccc", "signature": "public string? FilterName", "summary": "e.g. \u0022Images\u0022" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.FileEntry", "displayName": "FileEntry", "kind": "struct", "summary": "cui_file_entry. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;bool Dir = default;ulong Size = default;long Modified = default||hb29a6ee1fa60759debf709214f691bb649c27884369237c8bfb2d1307c3bf407", "signature": "FileEntry(string? Name, bool Dir = default, ulong Size = default, long Modified = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Dir", "type": "bool", "default": "default" }, { "name": "Size", "type": "ulong", "default": "default" }, { "name": "Modified", "type": "long", "default": "default" }] }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|bool|||h5b6fe080acd870132c156e351057dc7979bbe734e126d0328692f8100fe564d8", "signature": "public bool Dir", "summary": "_Bool dir" }, { "name": "Modified", "kind": "field", "id": "field|Modified|0|0|long|||h04bbaccca73d0bdc4e3e9cdb87230703d5978e2d47288e2ef15a19ec65c6c575", "signature": "public long Modified", "summary": "seconds since 1970 (UTC); 0 unknown" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ulong|||h2db05cb8af3c713fe9425098cf97468b958626aa41fab04ccd53ea4cdfcbd5e5", "signature": "public ulong Size", "summary": "bytes" }] }, + { "name": "CuiSharp.FilePickResult", "displayName": "FilePickResult", "kind": "class", "summary": "What a picker did: a path, a cancel, or a failure with a reason worth printing.", "members": [{ "name": "Cancelled", "kind": "property", "id": "property|Cancelled|0|0|bool||get;|h2efcc25de1ef9a19e95ed116a6aabd55673ae9c4e69603b2c98c7bef7023bb92", "signature": "bool Cancelled { get; }", "summary": "Cancelled, or the dialog failed before the user could choose." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|FilePickResult? other||h9ce70d8b527b9cfa7ed1e66007729646bf7d86751f07f2be0705afb73b3bcb8a", "signature": "bool Equals(FilePickResult? other)", "parameters": [{ "name": "other", "type": "FilePickResult?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "Picked", "kind": "property", "id": "property|Picked|0|0|bool||get;|h124b2629e64434532e57ab0205c35c265a98a47237a6f716133e09134d671d11", "signature": "bool Picked { get; }", "summary": "True when the user chose something." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "CancelledResult", "kind": "property", "id": "property|CancelledResult|1|0|FilePickResult||get;|hfc5ad99f2303ca14cba250eba8965f1df63d64fce3932ad9619a208b39777d01", "signature": "static FilePickResult CancelledResult { get; }", "summary": "The user closed the dialog without choosing." }, { "name": "Chosen", "kind": "method", "id": "method|Chosen|1|0|FilePickResult|string path||hb47fcfcd2c9a117d964f3b36ce4984322d03510dc09048c95b5afd9c2cd7ff7e", "signature": "static FilePickResult Chosen(string path)", "parameters": [{ "name": "path", "type": "string" }], "summary": "The user chose path." }, { "name": "Failed", "kind": "method", "id": "method|Failed|1|0|FilePickResult|string error||h9fd50455442ba6e7c8ed43db4092f8fea6317e2d31a0da05c1bf2b3999a1a392", "signature": "static FilePickResult Failed(string error)", "parameters": [{ "name": "error", "type": "string" }], "summary": "The dialog could not be shown." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|FilePickResult? left;FilePickResult? right||ha12706fc20b86fee0c0a8e6e90e6caea3a575fbc4605c760c5a29a1592a71cea", "signature": "static bool operator !=(FilePickResult? left, FilePickResult? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "FilePickResult?" }, { "name": "right", "type": "FilePickResult?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|FilePickResult? left;FilePickResult? right||hd3da337c2e6e5b79fc5043c88cd32fd5b5516be70a29e3a13aa51e45f857ade8", "signature": "static bool operator ==(FilePickResult? left, FilePickResult? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "FilePickResult?" }, { "name": "right", "type": "FilePickResult?" }] }, { "name": "Path", "kind": "property", "id": "property|Path|0|0|string||get;|hb2d3527ced8c78e3ca97b5a77f9028096a1989cb0f7317d6116bac0bf5229f5e", "signature": "string Path { get; }", "summary": "The chosen path, or an empty string." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Error", "kind": "property", "id": "property|Error|0|0|string?||get;|hee4bd919bee3b8555023d32e2e1acf1654145ae953f84f375813f5fc00769b4f", "signature": "string? Error { get; }", "summary": "Why the dialog failed, or null. A cancel is not a failure." }] }, + { "name": "CuiSharp.FilePickerOpts", "displayName": "FilePickerOpts", "kind": "struct", "summary": "cui_file_picker_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Folders", "kind": "field", "id": "field|Folders|0|0|bool|||h33f2f773db778578dcfc274e5f92eb5a8feea7f48cc49e26a4b5f5487da1bcd6", "signature": "public bool Folders", "summary": "choose a folder" }, { "name": "Save", "kind": "field", "id": "field|Save|0|0|bool|||h2d63f65a9a7c18ba2a6c6e9ec7f14d22db9f8742938973a56d005f03196a145e", "signature": "public bool Save", "summary": "a name field and Save" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|string?|||h10b054d3af89b0f0488b555fdda99184421e59d9ce8a4d148cb733dd5d1b7914", "signature": "public string? Filter", "summary": "e.g. \u0022*.png;*.jpg\u0022" }, { "name": "FilterLabel", "kind": "field", "id": "field|FilterLabel|0|0|string?|||h06004dfec934f098fc5fcecfaf55e2280c8fbcb5cb4a0bef30940fea6bd7e857", "signature": "public string? FilterLabel", "summary": "e.g. \u0022Images\u0022" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "save: the name to start with" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|string?|||hd7a47b4a9c53b2aaebb334edff5874b7a281154d7f7f23ba58cda72a8cabeea3", "signature": "public string? Start", "summary": "the folder to start in, default the current directory" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "default \u0022Open\u0022, \u0022Save\u0022 or \u0022Choose a folder\u0022" }] }, + { "name": "CuiSharp.FilterField", "displayName": "FilterField", "kind": "struct", "summary": "cui_filter_field. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? Icon = null;string[]? Options = null||h13daed72ec0a543c60cc62f5d03d693637a8930d8cb5bdab023ecb23298d8659", "signature": "FilterField(string? Name, string? Icon = null, string[]? Options = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Icon", "type": "string?", "default": "null" }, { "name": "Options", "type": "string[]?", "default": "null" }] }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "Options", "kind": "field", "id": "field|Options|0|0|string[]?|||hdfda7102d5f8aaac0d147fd21e4bc444c34f0ec45a85854dfa823ce5ed2aa5b5", "signature": "public string[]? Options", "summary": "const char *const * options" }] }, + { "name": "CuiSharp.FlameOpts", "displayName": "FlameOpts", "kind": "struct", "summary": "cui_flame_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "MinRange", "kind": "field", "id": "field|MinRange|0|0|double|||h48e306cd4a74be0e663f2bc1ccdd39cb18de01460b82a3a6f2849dc1999e1208", "signature": "public double MinRange", "summary": "deepest zoom in seconds, default 1e-8" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default: fits the rows (up to 360)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 20" }] }, + { "name": "CuiSharp.FlameResult", "displayName": "FlameResult", "kind": "struct", "summary": "cui_flame_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool SelectionChanged;bool ViewChanged = default;int Hovered = default;int Zoomed = default||h9c0aaf1abf86053442ace7190869b10a958ac03bb9756b6666234e6be88cfb30", "signature": "FlameResult(bool SelectionChanged, bool ViewChanged = default, int Hovered = default, int Zoomed = default)", "parameters": [{ "name": "SelectionChanged", "type": "bool" }, { "name": "ViewChanged", "type": "bool", "default": "default" }, { "name": "Hovered", "type": "int", "default": "default" }, { "name": "Zoomed", "type": "int", "default": "default" }] }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||h05b0cea014ff6284a7cc2c58dd6fb1035a7e0e81c25aa7972d22ca756915ea7a", "signature": "public bool SelectionChanged", "summary": "selected changed (click or keys)" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|bool|||h644da108e153019ae339e325a567b1b89a1cc6e0c8470c8761ac096a08aee5ee", "signature": "public bool ViewChanged", "summary": "view changed (zoom, pan, fit, animation)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "span under the pointer, or -1" }, { "name": "Zoomed", "kind": "field", "id": "field|Zoomed|0|0|int|||he68f9a8e48bcbe09fa4ffc168bada70699938bf2b39fa8565e6f8b914b559293", "signature": "public int Zoomed", "summary": "span zoomed to this frame (double-click, Enter), or -1" }] }, + { "name": "CuiSharp.FlameSpan", "displayName": "FlameSpan", "kind": "struct", "summary": "cui_flame_span. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;double Start = default;double End = default;int Depth = default;uint ColorKey = default||hacb7d1e351415c7269afc1d950f3cc04372fb2e2a502e6d23b7e651bfec0d46e", "signature": "FlameSpan(string? Name, double Start = default, double End = default, int Depth = default, uint ColorKey = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Start", "type": "double", "default": "default" }, { "name": "End", "type": "double", "default": "default" }, { "name": "Depth", "type": "int", "default": "default" }, { "name": "ColorKey", "type": "uint", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "seconds, end \u003E= start" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "seconds, end \u003E= start" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "row, 0 = top" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "ColorKey", "kind": "field", "id": "field|ColorKey|0|0|uint|||hbbc8b9d5c464ef1cd597c6f62696a77755f8847c84433421ceea1723416ab5bd", "signature": "public uint ColorKey", "summary": "0: hashed from name" }] }, + { "name": "CuiSharp.FlameView", "displayName": "FlameView", "kind": "struct", "summary": "cui_flame_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||double Start;double End = default;float Scroll = default||h4d53ee93963f5b7f706dad2a77d1699eb54189f20f8cfd510e4962cfc315d15a", "signature": "FlameView(double Start, double End = default, float Scroll = default)", "parameters": [{ "name": "Start", "type": "double" }, { "name": "End", "type": "double", "default": "default" }, { "name": "Scroll", "type": "float", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "visible time range; end \u003C= start fits every span" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "visible time range; end \u003C= start fits every span" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "rows scrolled off the top, in points" }] }, + { "name": "CuiSharp.Font", "displayName": "Font", "kind": "enum", "summary": "CUI_FONT_BODY", "members": [{ "name": "Body", "kind": "enum value", "id": "enum value|Body|1|0|||0|head7b7cd177853d0234edaa27edf0066fb6648b51a2c13fd1667d8e0f5dc7e11", "signature": "Body = 0", "value": "0" }, { "name": "Display", "kind": "enum value", "id": "enum value|Display|1|0|||2|ha32cca83e476dc525655d0a0229dc15801c768508937166b293f6470140d6bff", "signature": "Display = 2", "value": "2" }, { "name": "Icons", "kind": "enum value", "id": "enum value|Icons|1|0|||4|h1ea650d93e0720121b0919070e31b946ba0bbc170e675510337914a9b0986718", "signature": "Icons = 4", "value": "4" }, { "name": "Medium", "kind": "enum value", "id": "enum value|Medium|1|0|||1|h19ce8beaa16ab17ff34a75e17ba974241b6d50308f7d530f6dc388ad4df3fbb2", "signature": "Medium = 1", "value": "1" }, { "name": "Mono", "kind": "enum value", "id": "enum value|Mono|1|0|||3|h624cfcc0c05230c502eddf6a005885c4886fd79c316eef10dbed8d09bd564cc8", "signature": "Mono = 3", "value": "3" }] }, + { "name": "CuiSharp.FunnelOpts", "displayName": "FunnelOpts", "kind": "struct", "summary": "cui_funnel_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.GanttOpts", "displayName": "GanttOpts", "kind": "struct", "summary": "cui_gantt_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "DayWidth", "kind": "field", "id": "field|DayWidth|0|0|float|||hc29d4a66435c10834835d199d7668ed8a85501e1faf9bcdacb721c3b354f46c0", "signature": "public float DayWidth", "summary": "float day_width" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float row_height" }, { "name": "Today", "kind": "field", "id": "field|Today|0|0|int|||h3dbc223105bf4f83f66479770b59a229a8203cf99f501b627d518e1cb56f4b2c", "signature": "public int Today", "summary": "int today" }] }, + { "name": "CuiSharp.GanttTask", "displayName": "GanttTask", "kind": "struct", "summary": "cui_gantt_task. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? Owner = null;int Start = default;int End = default;float Progress = default;Tone Tone = Tone.Neutral;int DependsOn = default;bool Milestone = default||hcd916955eb89d122feb09f40a84b333e302a9bcf904d50eb5dfd80cad57266c9", "signature": "GanttTask(string? Name, string? Owner = null, int Start = default, int End = default, float Progress = default, Tone Tone = Tone.Neutral, int DependsOn = default, bool Milestone = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Owner", "type": "string?", "default": "null" }, { "name": "Start", "type": "int", "default": "default" }, { "name": "End", "type": "int", "default": "default" }, { "name": "Progress", "type": "float", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }, { "name": "DependsOn", "type": "int", "default": "default" }, { "name": "Milestone", "type": "bool", "default": "default" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Milestone", "kind": "field", "id": "field|Milestone|0|0|bool|||h433394e3fd6c232db062a8b9150bf3faf1310940dd4b8d970df182a9a23d89b9", "signature": "public bool Milestone", "summary": "_Bool milestone" }, { "name": "Progress", "kind": "field", "id": "field|Progress|0|0|float|||h7ee3c00970d0194eef8a3de43a8432ca8168034fc90ca2ab893b22ce785d5b05", "signature": "public float Progress", "summary": "float progress" }, { "name": "DependsOn", "kind": "field", "id": "field|DependsOn|0|0|int|||hc6f9ef65ae7e49def7df7a36abf53610c60718d6c6c30ab4038ec669e19b2558", "signature": "public int DependsOn", "summary": "int depends_on" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int start" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "Owner", "kind": "field", "id": "field|Owner|0|0|string?|||hc52cc9cd37f4d39f31b7eeb6e1f29b6af483245edbb4a7005806a8e0e05d5d6b", "signature": "public string? Owner", "summary": "const char * owner" }] }, + { "name": "CuiSharp.GaugeBand", "displayName": "GaugeBand", "kind": "struct", "summary": "cui_gauge_band. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float To;Tone Tone = Tone.Neutral||he5303332621f5d63926c3958a8da5fbcb33a4212e32316d7bb1310b540b7a156", "signature": "GaugeBand(float To, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "To", "type": "float" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "from the band before (or min) up to \u0060to\u0060" }, { "name": "To", "kind": "field", "id": "field|To|0|0|float|||hf8849e6dc06eacb246cf9418bb9bdf8b9b9026e6b10eb69f5c9835b3923929db", "signature": "public float To", "summary": "from the band before (or min) up to \u0060to\u0060" }] }, + { "name": "CuiSharp.GradientOpts", "displayName": "GradientOpts", "kind": "struct", "summary": "cui_gradient_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "ramp height, default 28" }] }, + { "name": "CuiSharp.GradientResult", "displayName": "GradientResult", "kind": "struct", "summary": "cui_gradient_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;int Added = default;int Removed = default;int Selected = default||h95a0af232e33852796673a1bd1dfda1c5a5df36662b49e9aeb4ff595a54049d3", "signature": "GradientResult(bool Changed, int Added = default, int Removed = default, int Selected = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Added", "type": "int", "default": "default" }, { "name": "Removed", "type": "int", "default": "default" }, { "name": "Selected", "type": "int", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "a stop moved, changed color, or was added or removed" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "index of the stop added this frame, or -1" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "index the removed stop had, or -1" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "the selected stop" }] }, + { "name": "CuiSharp.GradientStop", "displayName": "GradientStop", "kind": "struct", "summary": "cui_gradient_stop. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float Pos;Color Color = default||h3c0f7d9eb0c50de558822455e566d97186a79f892b2a555a28d22fd1c2db49b0", "signature": "GradientStop(float Pos, Color Color = default)", "parameters": [{ "name": "Pos", "type": "float" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "pos 0..1" }, { "name": "Pos", "kind": "field", "id": "field|Pos|0|0|float|||h9aac977227e3823ee394b51dffa79203fcc9f0c18ab3d961f658a2082fe8ef7e", "signature": "public float Pos", "summary": "pos 0..1" }] }, + { "name": "CuiSharp.GradientTextOpts", "displayName": "GradientTextOpts", "kind": "struct", "summary": "cui_gradient_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "From", "kind": "field", "id": "field|From|0|0|Color|||h4a10f176a9d7bda1f8fab6d1f082005e51eeee4bb2e0de61a9f55996b3ed28ea", "signature": "public Color From", "summary": "cui_color from" }, { "name": "To", "kind": "field", "id": "field|To|0|0|Color|||h542b5266588ba47fb0aac706b708415d8904c3fb7631605542c17b1d55706474", "signature": "public Color To", "summary": "cui_color to" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font font" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Animate", "kind": "field", "id": "field|Animate|0|0|bool|||h5a82b6367d0084f17617e03959d7b06969fb9a29249f0eb55062c75a02ab9912", "signature": "public bool Animate", "summary": "_Bool animate" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }] }, + { "name": "CuiSharp.GraphEdge", "displayName": "GraphEdge", "kind": "struct", "summary": "cui_graph_edge. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int From;int To = default||h45b66cd03dba9138c65a55e8d718609dfc21acdf17cee7e874ca2e37890deff9", "signature": "GraphEdge(int From, int To = default)", "parameters": [{ "name": "From", "type": "int" }, { "name": "To", "type": "int", "default": "default" }] }, { "name": "From", "kind": "field", "id": "field|From|0|0|int|||h11f7cebcf77a074c120dda4af3a2c2a7d6533333236d3fbb272c705fd58fd693", "signature": "public int From", "summary": "int from" }, { "name": "To", "kind": "field", "id": "field|To|0|0|int|||h51c44d9327d4ff5ec543672605cdc9085758c30f02fb02478eed8ab117d48e44", "signature": "public int To", "summary": "int to" }] }, + { "name": "CuiSharp.GraphNode", "displayName": "GraphNode", "kind": "struct", "summary": "cui_graph_node. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Label;string? Detail = null;Tone Tone = Tone.Neutral||hfb28e9974288016cabfd90678125df7f5034bb8f3c61d02cd478c85f2414fd25", "signature": "GraphNode(string? Label, string? Detail = null, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Label", "type": "string?" }, { "name": "Detail", "type": "string?", "default": "null" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.GraphOpts", "displayName": "GraphOpts", "kind": "struct", "summary": "cui_graph_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "TopDown", "kind": "field", "id": "field|TopDown|0|0|bool|||hab9fd86f1e6b6c244739e2e145b8663acced7deec0e8cf7a9f458d15f6d24847", "signature": "public bool TopDown", "summary": "_Bool top_down" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.GraphResult", "displayName": "GraphResult", "kind": "struct", "summary": "cui_graph_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Activated = default;int Hovered = default||h08eae20e62b95faa32d7edc2fa8a719fc4bd9849f5194d1e248c07ac87aafc23", "signature": "GraphResult(int Clicked, int Activated = default, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Activated", "type": "int", "default": "default" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int activated" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int clicked" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int hovered" }] }, + { "name": "CuiSharp.GridColumn", "displayName": "GridColumn", "kind": "struct", "summary": "cui_grid_column. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;float Width = default;TextAlign Align = TextAlign.Start;bool Sortable = default;bool Fixed = default;int Priority = default||hb81cc8a31d1cb30c1fff1e990e575eb309947fe9585f9a9583ce0536b507c528", "signature": "GridColumn(string? Title, float Width = default, TextAlign Align = TextAlign.Start, bool Sortable = default, bool Fixed = default, int Priority = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Width", "type": "float", "default": "default" }, { "name": "Align", "type": "TextAlign", "default": "TextAlign.Start" }, { "name": "Sortable", "type": "bool", "default": "default" }, { "name": "Fixed", "type": "bool", "default": "default" }, { "name": "Priority", "type": "int", "default": "default" }] }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "Fixed", "kind": "field", "id": "field|Fixed|0|0|bool|||h6f301dff6b9a83ab8f47d07a691dc00f4145c0537d753274b38bf0d43c5f0a06", "signature": "public bool Fixed", "summary": "not resizable" }, { "name": "Sortable", "kind": "field", "id": "field|Sortable|0|0|bool|||ha21687844f87f043066ecf4a581aada41967a9906bbaa3897b2a88d640efc033", "signature": "public bool Sortable", "summary": "_Bool sortable" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "initial width in points, default 150" }, { "name": "Priority", "kind": "field", "id": "field|Priority|0|0|int|||hbaa8b212dbdc34fa1179a77ab76338f94bb35b6954915c627238c0927fab9d97", "signature": "public int Priority", "summary": "0 always shown; when the grid is too narrow, columns with a priority hide, the highest number first, until the rest fit" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.GridOpts", "displayName": "GridOpts", "kind": "struct", "summary": "cui_grid_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "HideCheckboxes", "kind": "field", "id": "field|HideCheckboxes|0|0|bool|||h4ad130a86b135f34b02c88c4b70d50112b1d85a3e2911e18fd02faa702da9a35", "signature": "public bool HideCheckboxes", "summary": "with selected: rows still select (click, Shift, Ctrl) but no checkbox column" }, { "name": "Striped", "kind": "field", "id": "field|Striped|0|0|bool|||h8ee3cac64f2feaa8e6270ae2b329845033941012b85937e8fd5ac134a90bb7dc", "signature": "public bool Striped", "summary": "_Bool striped" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 40" }] }, + { "name": "CuiSharp.GridScope", "displayName": "GridScope", "kind": "ref struct", "summary": "A grid scope that publishes row interactions back to its state when closed.", "members": [{ "name": "Open", "kind": "property", "id": "property|Open|0|0|bool||get;|h6f230c8664d026604496adcaeb16e6ee760fdae9254fd2f5c98a7b49ae4549e6", "signature": "bool Open { get; }", "summary": "Whether the grid body should draw." }, { "name": "implicit operator bool", "kind": "conversion", "id": "conversion|op_Implicit|1|0|bool|GridScope scope||h15a2d714d98bad8c57763c6a13e39476fd35ce6e15414c2c173ae50e0ab60b95", "signature": "static implicit operator bool(GridScope scope)", "member": "op_Implicit", "parameters": [{ "name": "scope", "type": "GridScope" }], "summary": "Whether the grid body should draw." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Closes the grid and writes selection, sort and keyboard state back." }] }, + { "name": "CuiSharp.GridState", "displayName": "GridState", "kind": "class", "summary": "Persistent selection, sort and keyboard state for one data grid.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int rowCount = default||ha060aa7c4f76f21c13982f61d1c809c01e02b29c0a2c0f2bbba7800b84812b38", "signature": "GridState(int rowCount = default)", "parameters": [{ "name": "rowCount", "type": "int", "default": "default" }], "summary": "Creates state with selection storage for the given row count." }, { "name": "Sort", "kind": "field", "id": "field|Sort|0|0|TableSort|||hf23262a6945f5072e90f8eac87676cbcdc74b7e163a586d29c358767b23773cb", "signature": "public TableSort Sort", "summary": "The column and direction chosen in the header." }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool[]|||hddc7041e966ecc1097b5b8a70ffca49a86f14b33d689e1ffebc22b7523c6e3c3", "signature": "public bool[] Selected", "summary": "One selection flag per row. Resize when the model changes, not while drawing." }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|int|||haebd09af400cd13b8e6a4d74ff68b178d1ce2cdb19d12950362ae273b212ff68", "signature": "public int Anchor", "summary": "The start of a Shift selection range, or -1." }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|int|||h23aff42ff5d653e4a3b8a654aa17c4d9c160335133193db458a21e242a54d577", "signature": "public int Cursor", "summary": "The keyboard row, or -1." }, { "name": "First", "kind": "field", "id": "field|First|0|0|int|||hddb39d158b15c0e54cb1ea0a7e52a0d84393cbbb9cb6d04a44db44d9fd9a4c88", "signature": "public int First", "summary": "First visible row (inclusive), updated when the grid opens." }, { "name": "Last", "kind": "field", "id": "field|Last|0|0|int|||h11145872766e93785d8ad349ad1ba99a65becac1ce8821ae0af4af913590a891", "signature": "public int Last", "summary": "Last visible row (exclusive), updated when the grid opens." }] }, + { "name": "CuiSharp.HeatmapOpts", "displayName": "HeatmapOpts", "kind": "struct", "summary": "cui_heatmap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "hue of the scale, default the accent" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "cell size, default fits the width" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "value range, default the data\u0027s" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "value range, default the data\u0027s" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }, { "name": "ColLabels", "kind": "field", "id": "field|ColLabels|0|0|string[]?|||h5800c8037a98a165ea2a527f6d5f1c1bae0f28b3151aa0a580d087e428a89357", "signature": "public string[]? ColLabels", "summary": "const char *const * col_labels" }, { "name": "RowLabels", "kind": "field", "id": "field|RowLabels|0|0|string[]?|||h7bee2ab87cd8efe11a75bafbcd33cea67c8aa2a530cd01efa8f54125ba081c6c", "signature": "public string[]? RowLabels", "summary": "const char *const * row_labels" }] }, + { "name": "CuiSharp.HexRange", "displayName": "HexRange", "kind": "struct", "summary": "cui_hex_range. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||ulong Offset;ulong Length = default;Tone Tone = Tone.Neutral;string? Label = null||h2596b050bce12b4f7987243bd2588f9d1f53adc6a9a15d86766d74bc6215d56d", "signature": "HexRange(ulong Offset, ulong Length = default, Tone Tone = Tone.Neutral, string? Label = null)", "parameters": [{ "name": "Offset", "type": "ulong" }, { "name": "Length", "type": "ulong", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }, { "name": "Label", "type": "string?", "default": "null" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "tints the range\u0027s background" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "tooltip for the range; may be NULL" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t length" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|ulong|||h551e41a24460675e284010a5af686471e6984d12957a75afe1617a2b52cae613", "signature": "public ulong Offset", "summary": "size_t offset" }] }, + { "name": "CuiSharp.HexResult", "displayName": "HexResult", "kind": "struct", "summary": "cui_hex_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||HexSelection Selection;bool SelectionChanged = default;bool Edited = default;ulong EditOffset = default;ulong EditLength = default;long Hovered = default;bool Copied = default||hc471966445cd926e7a1663121584874b4550e5dfe253c5cc24aa3c25493dcc72", "signature": "HexResult(HexSelection Selection, bool SelectionChanged = default, bool Edited = default, ulong EditOffset = default, ulong EditLength = default, long Hovered = default, bool Copied = default)", "parameters": [{ "name": "Selection", "type": "HexSelection" }, { "name": "SelectionChanged", "type": "bool", "default": "default" }, { "name": "Edited", "type": "bool", "default": "default" }, { "name": "EditOffset", "type": "ulong", "default": "default" }, { "name": "EditLength", "type": "ulong", "default": "default" }, { "name": "Hovered", "type": "long", "default": "default" }, { "name": "Copied", "type": "bool", "default": "default" }] }, { "name": "Selection", "kind": "field", "id": "field|Selection|0|0|HexSelection|||hbeca68c97c3c5dd43a840c25be2d4ae9734905244bf5dd7ce6c34203015193bb", "signature": "public HexSelection Selection", "summary": "after this frame (the same as *sel when you pass one)" }, { "name": "Copied", "kind": "field", "id": "field|Copied|0|0|bool|||hc8797770e8e8292abfba6ca130e5028e2e0d1c15d5595ecb27010f6f9d90dc29", "signature": "public bool Copied", "summary": "Ctrl\u002BC or Ctrl\u002BShift\u002BC put the selection on the clipboard" }, { "name": "Edited", "kind": "field", "id": "field|Edited|0|0|bool|||he72494a4b154ed9e062a25161fb063fdcd50128995f66884e73c7d4fbe4e7b88", "signature": "public bool Edited", "summary": "bytes in .edit were overwritten this frame" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||h05b0cea014ff6284a7cc2c58dd6fb1035a7e0e81c25aa7972d22ca756915ea7a", "signature": "public bool SelectionChanged", "summary": "by the pointer, the keys or cui_hex_view_goto" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|long|||hbe1c39e7bbdecc557c8876890e8eac9658e0fa1fd65737f5d44c9f0b0cf4e2d9", "signature": "public long Hovered", "summary": "byte under the pointer, or -1" }, { "name": "EditLength", "kind": "field", "id": "field|EditLength|0|0|ulong|||h66a400d24c2bcc6360469f4a4692e40110aeb039982f00e721a6b211f11c894f", "signature": "public ulong EditLength", "summary": "size_t edit_length" }, { "name": "EditOffset", "kind": "field", "id": "field|EditOffset|0|0|ulong|||h4a499a954baf5dc83819cf8b6a96a7ea8d3b7cfd43644a2dffb73eba4670fe6a", "signature": "public ulong EditOffset", "summary": "size_t edit_offset" }] }, + { "name": "CuiSharp.HexSelection", "displayName": "HexSelection", "kind": "struct", "summary": "cui_hex_selection. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||ulong Start;ulong Length = default;ulong Cursor = default||hc60277f02e8ae476f3ccaac6328780dacc66d0c8663af6c227887ded348c6bfa", "signature": "HexSelection(ulong Start, ulong Length = default, ulong Cursor = default)", "parameters": [{ "name": "Start", "type": "ulong" }, { "name": "Length", "type": "ulong", "default": "default" }, { "name": "Cursor", "type": "ulong", "default": "default" }] }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|ulong|||hfcbcd4bd9c8959404ba53364315fdc79909689596fa3560cbab04a7c9e5291ba", "signature": "public ulong Cursor", "summary": "size_t cursor" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t length" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|ulong|||hd5d86251473efab40ee9afffd915b80f4ffa0f9346d99fba8e024520db5e0883", "signature": "public ulong Start", "summary": "size_t start" }] }, + { "name": "CuiSharp.HexViewOpts", "displayName": "HexViewOpts", "kind": "struct", "summary": "cui_hex_view_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Ranges", "kind": "field", "id": "field|Ranges|0|0|HexRange[]?|||h759276f4d6d25dd7f328281301b9eb787fec9d21308c8d84b973ee90c0ac2478", "signature": "public HexRange[]? Ranges", "summary": "drawn in order, later ones on top" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "NoAscii", "kind": "field", "id": "field|NoAscii|0|0|bool|||h7925a745769e3fe8563fa4944c4520308e70e48a6fd6d7aa0c5747cecd70c645", "signature": "public bool NoAscii", "summary": "hide the ASCII column" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|bool|||h7922046bd3807eec795aa2981a7e08ccf6af18d5c0f9f9ef7f687eb187ccb398", "signature": "public bool NoHeader", "summary": "hide the column header (00 01 .. 0F)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default: the rows, up to 320; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 12" }, { "name": "BytesPerRow", "kind": "field", "id": "field|BytesPerRow|0|0|int|||hd61386e0b1631168d5ba3121886245ecce5b4ff2f8648ec936c3d6745e973f40", "signature": "public int BytesPerRow", "summary": "8, 16 (default) or 32" }, { "name": "RangeCount", "kind": "field", "id": "field|RangeCount|0|0|int|||h7cf44af00c194dbcd2d248d6d668d0e792ba9f5e70caed801178c75e0527cb4e", "signature": "public int RangeCount", "summary": "drawn in order, later ones on top" }, { "name": "Base", "kind": "field", "id": "field|Base|0|0|ulong|||h2d347b8391ce7744ac9390fd5433f8b42dd856f120afc62df3093dae04e197ff", "signature": "public ulong Base", "summary": "address shown for byte 0 in the offset column" }] }, + { "name": "CuiSharp.HistogramOpts", "displayName": "HistogramOpts", "kind": "struct", "summary": "cui_histogram_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.HistogramSeries", "displayName": "HistogramSeries", "kind": "struct", "summary": "cui_histogram_series. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;float[]? Counts = null;Tone Tone = Tone.Neutral||h22dfe55b4dedc67503ff6c18e7c65a376e62e8f5d079237bd6340cb06b5f3e36", "signature": "HistogramSeries(string? Name, float[]? Counts = null, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Counts", "type": "float[]?", "default": "null" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Counts", "kind": "field", "id": "field|Counts|0|0|float[]?|||hff18f72ca2d86479e823b489ba7a3caad9dc2a83eaf827e4e926d8c237d1e689", "signature": "public float[]? Counts", "summary": "const float * counts" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.HoldOpts", "displayName": "HoldOpts", "kind": "struct", "summary": "cui_hold_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant variant" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float duration" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.Hosting.Component", "displayName": "Component", "kind": "class", "summary": "A screen or a piece of one. A component owns its state as fields and rebuilds its UI every frame; there is no view model, no binding and nothing to notify. Create one per screen and resolve it from the container, or inject it into a parent and draw it with ui.Component(child).", "members": [{ "name": "PendingOperations", "kind": "property", "id": "property|PendingOperations|1|0|int||get;|hee628d969b22780660d09ca1c50645b7e1d6cfe7d74fcfdc73b9e25b7cc4c256", "signature": "static int PendingOperations { get; }", "summary": "Operations in flight across every component. For diagnostics." }, { "name": "Title", "kind": "property", "id": "property|Title|0|0|string||get;|h1a5144edebd2302f2df682473a55bddfa3884fcaf42154ed160883561d2c6d0c", "signature": "string Title { get; }", "summary": "Label for this component, used by a shell\u0027s page switch. Defaults to the type name; override it to change the wording without renaming the class." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|Ui ui||hbaa6010b96c22685859b7add6311bd79c53028719d2917a690e154fc16e7bf34", "signature": "void Render(Ui ui)", "parameters": [{ "name": "ui", "type": "Ui" }], "summary": "Draws this component, containing a failure to this component instead of the whole window. A throw inside Draw is reported inline and the frame keeps going." }] }, + { "name": "CuiSharp.Hosting.CuiApplication", "displayName": "CuiApplication", "kind": "class", "summary": "The composition root, generic-host style: services, window options, then one call to run the root component on the calling thread.", "members": [{ "name": "Window", "kind": "property", "id": "property|Window|0|0|CuiWindow?||get;|hf3de09ee57e388e31206bb0271f82b51e5004c79b853a175519e5292ae423efc", "signature": "CuiWindow? Window { get; }", "summary": "The OS window \u2014 the native handle, the backend, and which renderer actually drew \u2014 available from the first frame onward, and null before the loop starts. This is what WindowCreated hands over." }, { "name": "Services", "kind": "property", "id": "property|Services|0|0|IServiceProvider||get;|h6e5ef0b533cfb9cfd35d0dbee45c548b360248d85ca017ca1f68d469ad2db805", "signature": "IServiceProvider Services { get; }", "summary": "The container, for resolving a component yourself when you do not use Run\u0060\u00601." }, { "name": "Run", "kind": "method", "id": "method|Run|0|0|int|Component root||h3f8b92df676ffda9da7145eee518ec034ccbeda36764f3149bd80d0066348afd", "signature": "int Run(Component root)", "parameters": [{ "name": "root", "type": "Component" }], "summary": "Runs an already-built root component in a window, or \u2014 when the process was started headless \u2014 answers frames and commands on stdin/stdout instead. Useful for tests and tools." }, { "name": "Run", "kind": "method", "id": "method|Run|0|1|int|||h8d998b64d8ab0e49cb1d8acc0675fe2f028b5ce2fe7fd47e90ead6686fd155ec", "signature": "int Run\u003CTRoot\u003E() where TRoot : Component", "summary": "Resolves the root component and runs the UI loop on the calling thread until the window closes. The window owns the loop: CUI\u0027s callback drives every frame, including the frames the OS asks for while a window is being resized." }, { "name": "CreateBuilder", "kind": "method", "id": "method|CreateBuilder|1|0|CuiApplicationBuilder|string[]? args = null||h4e0ebcac83d8a132de21df7a45eab1ba58925f027c38ff20549f7a0cc36a5008", "signature": "static CuiApplicationBuilder CreateBuilder(string[]? args = null)", "parameters": [{ "name": "args", "type": "string[]?", "default": "null" }], "summary": "Starts a builder with the framework\u0027s dependency injection container." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }] }, + { "name": "CuiSharp.Hosting.CuiApplicationBuilder", "displayName": "CuiApplicationBuilder", "kind": "class", "summary": "Collects services and window options before the window exists.", "members": [{ "name": "Window", "kind": "property", "id": "property|Window|0|0|CuiAppOptions||get;set;|hb4f402a692934c77e62da0173ddd890f74e45c40f58fa933ff2536baedc0fe79", "signature": "CuiAppOptions Window { get; set; }", "summary": "Window options: title, size, renderer, theme, accent." }, { "name": "Build", "kind": "method", "id": "method|Build|0|0|CuiApplication|||h9d2e6ba46af012770ff325c47a1dd1a56cfe59b9a18204feffa806a963f69a68", "signature": "CuiApplication Build()", "summary": "Builds the container. The window itself is created by Run\u0060\u00601." }, { "name": "Services", "kind": "property", "id": "property|Services|0|0|IServiceCollection||get;|h0f02e1c313ac8a81062e4bd937a51a3b05a63a9a49ae45ff523b68ec55bf3e96", "signature": "IServiceCollection Services { get; }", "summary": "The container. Register services and components here." }, { "name": "Args", "kind": "property", "id": "property|Args|0|0|string[]||get;|h7a56b0f7d1c60a9bad709dda1a5112461efb41c9711599d27545d3a75b062410", "signature": "string[] Args { get; }", "summary": "Command-line arguments, as handed to the process." }] }, + { "name": "CuiSharp.Hosting.FrameSample", "displayName": "FrameSample", "kind": "struct", "summary": "What one frame cost. FrameStats holds the last one in the process.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||long Frames;double FrameMs;double DrawMs;long AllocatedBytes;double Fps;bool IsLive||h1f4338d9ac6a5eac1c91dc224727f64973ef42b2881098fdca3e8dca2b2b6eef", "signature": "FrameSample(long Frames, double FrameMs, double DrawMs, long AllocatedBytes, double Fps, bool IsLive)", "parameters": [{ "name": "Frames", "type": "long" }, { "name": "FrameMs", "type": "double" }, { "name": "DrawMs", "type": "double" }, { "name": "AllocatedBytes", "type": "long" }, { "name": "Fps", "type": "double" }, { "name": "IsLive", "type": "bool" }], "summary": "What one frame cost. FrameStats holds the last one in the process." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|FrameSample other||h6b5e8e167a39bfe41c6778b24750f83049be7b632bb609b3b315f8433032f6df", "signature": "bool Equals(FrameSample other)", "parameters": [{ "name": "other", "type": "FrameSample" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object obj||hdf2fccef3fb95cd65c067116b7fab214698fd62b7ba7acf819e39cecdecd49f0", "signature": "bool Equals(object obj)", "parameters": [{ "name": "obj", "type": "object" }] }, { "name": "IsLive", "kind": "property", "id": "property|IsLive|0|0|bool||get;set;|h6fb5ef11f1ee36bb8cc50da3708ecc7839b9ea761592d6eec3068c2daf512df2", "signature": "bool IsLive { get; init; }", "summary": "Whether anything asked for this frame." }, { "name": "DrawMs", "kind": "property", "id": "property|DrawMs|0|0|double||get;set;|h412ea96c16410ddaf605871b1b505bc8ccd9dfb2a05fa7c70f60311dae4dd9e3", "signature": "double DrawMs { get; init; }", "summary": "Time spent drawing this frame\u0027s components." }, { "name": "Fps", "kind": "property", "id": "property|Fps|0|0|double||get;set;|h32cd94cea8713530575a786026ed29b0ecca6c7fc6ec78a6aa22a19f614a3e43", "signature": "double Fps { get; init; }", "summary": "Smoothed frame rate of the run this frame belongs to." }, { "name": "FrameMs", "kind": "property", "id": "property|FrameMs|0|0|double||get;set;|h3f5dccbe685e3fd6ac024b48e5ab7029dbb34dadb3f73e5bc2ea02482f41568a", "signature": "double FrameMs { get; init; }", "summary": "Wall-clock time between this frame and the previous one." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "AllocatedBytes", "kind": "property", "id": "property|AllocatedBytes|0|0|long||get;set;|ha2f53be0b74179c0733ded33b815505ae61640803eca28ca76e7151842f6a916", "signature": "long AllocatedBytes { get; init; }", "summary": "Managed bytes allocated while drawing it." }, { "name": "Frames", "kind": "property", "id": "property|Frames|0|0|long||get;set;|h6b895a790d6a6e62dac0164488207995443321314ea277546d53964ebee21474", "signature": "long Frames { get; init; }", "summary": "Frames rendered since the process started." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|FrameSample left;FrameSample right||h1621bbc9c95d57d2b3212169f2f018f2560446a437bf869ca714e562ce6b341d", "signature": "static bool operator !=(FrameSample left, FrameSample right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "FrameSample" }, { "name": "right", "type": "FrameSample" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|FrameSample left;FrameSample right||hcae28c34e7edfb01c0b5ee5beed82a18fbfbfef921183af0ec80a036a4f505e4", "signature": "static bool operator ==(FrameSample left, FrameSample right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "FrameSample" }, { "name": "right", "type": "FrameSample" }] }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Deconstruct", "kind": "method", "id": "method|Deconstruct|0|0|void|out long Frames;out double FrameMs;out double DrawMs;out long AllocatedBytes;out double Fps;out bool IsLive||h505ffebce7d4ff615c36f2202efa12440c4b4131624dfc04cebe36b338a5c8e3", "signature": "void Deconstruct(out long Frames, out double FrameMs, out double DrawMs, out long AllocatedBytes, out double Fps, out bool IsLive)", "parameters": [{ "name": "Frames", "type": "out long" }, { "name": "FrameMs", "type": "out double" }, { "name": "DrawMs", "type": "out double" }, { "name": "AllocatedBytes", "type": "out long" }, { "name": "Fps", "type": "out double" }, { "name": "IsLive", "type": "out bool" }] }] }, + { "name": "CuiSharp.Hosting.FrameStats", "displayName": "FrameStats", "kind": "static class", "summary": "Per-frame numbers for the frame that just rendered, so a footer or a trace can show them without every app measuring the clock itself. The host fills these in around each component render; nothing here allocates.", "members": [{ "name": "IsLive", "kind": "property", "id": "property|IsLive|1|0|bool||get;|h444d8f50956934219eebcfcb5639eae0c5423d84c4df24bee7585d9a3fe41f3a", "signature": "static bool IsLive { get; }", "summary": "True when something asked for this frame: a component that changes on its own (WantsFrames) or work that is still in flight. An app that says false is asleep between input, so a frame rate would be a number about nothing." }, { "name": "DrawMs", "kind": "property", "id": "property|DrawMs|1|0|double||get;|h3fbf0f50fafa5b894128da08fec11f4bb522f7c4091b33f87829fe96f1bd3527", "signature": "static double DrawMs { get; }", "summary": "Time spent drawing this frame\u0027s components." }, { "name": "Fps", "kind": "property", "id": "property|Fps|1|0|double||get;|h935cbfa0adde0346221a688f7ba88d870a04f16531a1627c79bac153f42a8dd7", "signature": "static double Fps { get; }", "summary": "Frames per second, smoothed over the frames of the current run. Zero until there is something to average, and unchanged while the app is asleep \u2014 see the remarks on this type." }, { "name": "FrameMs", "kind": "property", "id": "property|FrameMs|1|0|double||get;|hd346decc3ed1e65d26fbd6ac1aaec24590a9299477bd79ca99e7b533ab13f911", "signature": "static double FrameMs { get; }", "summary": "Wall-clock time between the start of this frame and the previous one." }, { "name": "AllocatedBytes", "kind": "property", "id": "property|AllocatedBytes|1|0|long||get;|h3a901b93e508e893524c27ba1fd9bbb474d30876c4140a4255359004eb69679b", "signature": "static long AllocatedBytes { get; }", "summary": "Managed bytes allocated while drawing this frame. It should read 0: the frame\u0027s own numbers are the cheapest way to notice a hidden allocation." }, { "name": "Frames", "kind": "property", "id": "property|Frames|1|0|long||get;|heb8351bd9b4d67895ea2fd8fdd741b7234e6c5709baebe7651fabe90b4558c4c", "signature": "static long Frames { get; }", "summary": "Number of frames rendered since the process started." }] }, + { "name": "CuiSharp.Hosting.HeadlessApp", "displayName": "HeadlessApp", "kind": "class", "summary": "An app drawn without a window: frames you drive, controls you find by label, and the pixels they produced.", "members": [{ "name": "Root", "kind": "property", "id": "property|Root|0|0|Component?||get;|hf43d1318450e8d46d53aed28e29e6b08c07342c8f234fd9bb9d1e8bf9399c60d", "signature": "Component? Root { get; }", "summary": "The component being drawn, if this app draws one." }, { "name": "Surface", "kind": "property", "id": "property|Surface|0|0|CuiSurface||get;|hf0799171cdc83f0900df39a80392efea137100437e738539c2a86d1ffe79fc8a", "signature": "CuiSurface Surface { get; }", "summary": "The surface underneath: pixels, viewport and the software rasterizer." }, { "name": "Advance", "kind": "method", "id": "method|Advance|0|0|HeadlessApp|TimeSpan time;int frames = 1||h626da333c8675acee966c0b66a045e0937e87454db20859c3126a6a2131aabdb", "signature": "HeadlessApp Advance(TimeSpan time, int frames = 1)", "parameters": [{ "name": "time", "type": "TimeSpan" }, { "name": "frames", "type": "int", "default": "1" }], "summary": "Moves the clock forward by time over frames frames. Frames are free but time is not: an animation is only as far along as the clock says, so a snapshot taken without advancing is a snapshot of an animation that never started." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|HeadlessApp|bool focused = true||h4945a8a1105ecf005cd92bad3d05dcdbd0a2541a0331e9e546561ad788d06b67", "signature": "HeadlessApp Focus(bool focused = true)", "parameters": [{ "name": "focused", "type": "bool", "default": "true" }], "summary": "Reports the window gaining focus, which a text field needs before it takes keys." }, { "name": "Frame", "kind": "method", "id": "method|Frame|0|0|HeadlessApp|int count = 1||h3eda7515dee4cdcb51e35ef741e13b3705d1e379e87fb6785baa2861f228929b", "signature": "HeadlessApp Frame(int count = 1)", "parameters": [{ "name": "count", "type": "int", "default": "1" }], "summary": "Draws one frame and returns this app, so calls chain." }, { "name": "Key", "kind": "method", "id": "method|Key|0|0|HeadlessApp|Key key;Mods mods = (Mods)0||he72d4ecc571d6f2de7a08564e0a99caeef13f5b658ae8c4df1b11ac4836ed6ed", "signature": "HeadlessApp Key(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses and releases a key, drawing a frame for each." }, { "name": "MoveTo", "kind": "method", "id": "method|MoveTo|0|0|HeadlessApp|float x;float y||ha3d010dbe8ab0243c5eae4a920c66aafbaf5c51ddd93abe3a88fa789058cce0a", "signature": "HeadlessApp MoveTo(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer and draws the frame that reacts to the move (hover, tooltip)." }, { "name": "ParkPointer", "kind": "method", "id": "method|ParkPointer|0|0|HeadlessApp|||hf7daf579df92089bf30365e8263d50a10ae0c71ee8d889653d46a70d05582292", "signature": "HeadlessApp ParkPointer()", "summary": "Takes the pointer off the app and draws the frame that reacts, so a screenshot is of the UI and not of the tooltip the last click left behind. SavePng does this itself." }, { "name": "Press", "kind": "method", "id": "method|Press|0|0|HeadlessApp|||hc70c9499839ffd7cca3a9e84665eebdf5c6f07debc4c1228d41459f627aacefb", "signature": "HeadlessApp Press()", "summary": "Presses the left button and draws the frame that sees the press." }, { "name": "Release", "kind": "method", "id": "method|Release|0|0|HeadlessApp|||h7fa05977d3791cb22f0fcdefe9bf86efd4ae76ad199e58772b976d73fd1740b7", "signature": "HeadlessApp Release()", "summary": "Releases the left button and draws the frame that reports the click." }, { "name": "ScrollAt", "kind": "method", "id": "method|ScrollAt|0|0|HeadlessApp|float x;float y;float dy;float dx = default||h62b831947b3ac89b348a26f2df1f78176801e668e13e4c465e94b3374218cadc", "signature": "HeadlessApp ScrollAt(float x, float y, float dy, float dx = default)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Moves the pointer to (x, y) and scrolls there: the wheel goes to whichever scroll area holds that point. The distance is in wheel notches and a positive dy scrolls up, as a real wheel does; a negative one reaches for what is below the fold. Draws the frame that shows the new offset \u2014 a spring-animated scroll needs a few Frame calls to settle where it lands." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|HeadlessApp|string text||h97a1e4d23535309d2f6404313656a2ce95275d0e1ba3c2df130c7a3f70782245", "signature": "HeadlessApp Type(string text)", "parameters": [{ "name": "text", "type": "string" }], "summary": "Types text into whatever has focus, and draws the frame that accepts it." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "Every control the last frame drew, in drawing order." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003Cstring\u003E||get;|hcd480861b6837af5e65e0c529272438bb9a9b6d01925a764ff47a3b315d18b1d", "signature": "IReadOnlyList\u003Cstring\u003E Faults { get; }", "summary": "Exceptions a component threw while drawing; an empty list is a healthy frame." }, { "name": "RawPixels", "kind": "property", "id": "property|RawPixels|0|0|ReadOnlySpan\u003Cbyte\u003E||get;|h1595671ac794e37c504b591f4dfb0b943209a8597317f116c01dc55bd38f7c6b", "signature": "ReadOnlySpan\u003Cbyte\u003E RawPixels { get; }", "summary": "The last frame\u0027s pixels, RGBA." }, { "name": "Tree", "kind": "property", "id": "property|Tree|0|0|SemanticNode||get;|h8545f28c2f25a968c4be78d681487aa8f42df7d54f6f6f5dd1e744f429c65806", "signature": "SemanticNode Tree { get; }", "summary": "The last frame\u0027s controls nested the way the app drew them: a button inside ui.Card(new() { Id = \u0022editor\u0022 }) is a child of Card \u0022editor\u0022, even when unnamed containers sit between them." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string kind;string text||h1bb2d62f3680eb0c19900c345fda3357c44b1deeb94d6ddbbe38eb3f42fc4ffd", "signature": "WidgetTarget Find(string kind, string text)", "parameters": [{ "name": "kind", "type": "string" }, { "name": "text", "type": "string" }], "summary": "Finds a control of a kind and a label, e.g. Find(\u0022Button\u0022, \u0022Save\u0022)." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string query||h9d9f9fac08a30a8548e9c7fbcda39ec13f1f404fa63de19b5fcee96ffd42cd91", "signature": "WidgetTarget Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a control by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "FindButton", "kind": "method", "id": "method|FindButton|0|0|WidgetTarget|string label||hbbacdbec5fb9f23bcc9d4aeb82b2fe3a5af64711fd42cce031629e935477e8c8", "signature": "WidgetTarget FindButton(string label)", "parameters": [{ "name": "label", "type": "string" }], "summary": "Finds a button by its label." }, { "name": "FindById", "kind": "method", "id": "method|FindById|0|0|WidgetTarget|string id||h0d9247bef6926b3d3b9d9c50e001208698befbb15643a9efc7dba9112efe52b6", "signature": "WidgetTarget FindById(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a widget by the exact text the app drew it with \u2014 its id, for every widget that has one \u2014 and never by a partial or fuzzy match. This is the query to write when a label can be translated: FindById(\u0022draft\u0022) keeps working in another language, while Find(\u0022draft\u0022) was only ever guessing." }, { "name": "FindInput", "kind": "method", "id": "method|FindInput|0|0|WidgetTarget|string id||ha21d8796c2e42e310d821632148f5696664e22789d7f9fca032bccf99f5ad419", "signature": "WidgetTarget FindInput(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a text field by its id." }, { "name": "FindItem", "kind": "method", "id": "method|FindItem|0|0|WidgetTarget|string id;int index||h58c7cbfca4332017d8867744ab1ca067e9a16b2f476dfa77500267d60c71f4e5", "signature": "WidgetTarget FindItem(string id, int index)", "parameters": [{ "name": "id", "type": "string" }, { "name": "index", "type": "int" }], "summary": "The indexth item of the multi-item widget drawn with id: a tab, a segment, a row. The label of an item is translatable, its position is not, so this is how a test names one without hard-coding the words." }, { "name": "Animating", "kind": "property", "id": "property|Animating|0|0|bool||get;|h31a492e61fccdc7fd83e6c8ed8e83345bdfccdafc84504c3e532f94155aeda56", "signature": "bool Animating { get; }", "summary": "True when something in the last frame asked for another one: an animation in flight, a transition, work that finished on a pool thread. Settle is the loop around it." }, { "name": "PaintedAnything", "kind": "method", "id": "method|PaintedAnything|0|0|bool|||hc6a981a5d4b20d54b1b865a8ed0f5fef77d3c9f59fec3259d142b03cc512642f", "signature": "bool PaintedAnything()", "summary": "True when the last frame painted anything at all." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out WidgetTarget widget||h392d9569dd63494ff11a7cba9bab5add41638093b36bfb0f0d11478be48eab60", "signature": "bool TryFind(string query, out WidgetTarget widget)", "parameters": [{ "name": "query", "type": "string" }, { "name": "widget", "type": "out WidgetTarget" }], "summary": "True when the last frame drew something that answers the query." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "Settle", "kind": "method", "id": "method|Settle|0|0|int|int maxFrames = 240;TimeSpan? step = default||h2884d1fda375f255880e29fef21977c3966174e05e4b0fda7cde38300a0612c3", "signature": "int Settle(int maxFrames = 240, TimeSpan? step = default)", "parameters": [{ "name": "maxFrames", "type": "int", "default": "240" }, { "name": "step", "type": "TimeSpan?", "default": "default" }], "summary": "Draws frames until nothing wants another one, moving the clock by step each time. This is the replacement for a sleep loop: an animation that takes half a second settles in a few milliseconds, and the count says how long it took." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|Component root;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||h1e5b5b0d7001e43da6fe7c233c65d21aef6bb43f443207e450b36d7f9bf2f5e5", "signature": "static HeadlessApp Start(Component root, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "root", "type": "Component" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app around one component, initializing it the way the host does." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|DrawFn draw;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||he7844293216898ca9b0b006f61b4910517fe23935747ae7f38412d03143dbbe9", "signature": "static HeadlessApp Start(DrawFn draw, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app that draws draw for every frame." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The last frame\u0027s tree as text, which is also what ToString gives." }, { "name": "SavePng", "kind": "method", "id": "method|SavePng|0|0|string|string? path = null;bool parked = true||hb90d4d8b7c789b4eddcca8f1bc64ed99b3ebc8de616717d3cbba041aff978a98", "signature": "string SavePng(string? path = null, bool parked = true)", "parameters": [{ "name": "path", "type": "string?", "default": "null" }, { "name": "parked", "type": "bool", "default": "true" }], "summary": "Writes the last frame as a PNG and returns the path, for a human or an agent to look at. The pointer is taken off the UI first, so a hover tooltip left by the last click is not in the picture; pass parked = false to photograph the app as it stands." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }] }, + { "name": "CuiSharp.Hosting.HeadlessLoop", "displayName": "HeadlessLoop", "kind": "static class", "summary": "Runs an app with no window and answers commands on a stream, so a tool \u2014 dotnet cui, an MCP server, a shell script \u2014 can look at a frame and act on it.", "members": [{ "name": "EnvironmentVariable", "kind": "constant", "id": "constant|EnvironmentVariable|1|0|string||CUISHARP_HEADLESS|ha44e567370773145da7ebbd6ebeac9df2b8139d701bac9a4c4e3e346e91b2991", "signature": "public const string EnvironmentVariable = \u0022CUISHARP_HEADLESS\u0022", "summary": "The environment variable an app checks to run without a window.", "value": "CUISHARP_HEADLESS" }, { "name": "Known", "kind": "property", "id": "property|Known|1|0|IReadOnlyList\u003Cstring\u003E||get;|h085bcbb292ce64c780e24a5c3a9f64db8dc642f5d755d39fca744503879f9a72", "signature": "static IReadOnlyList\u003Cstring\u003E Known { get; }", "summary": "The commands the loop understands, for a client that wants to list them." }, { "name": "Requested", "kind": "method", "id": "method|Requested|1|0|bool|string[]? args = null||hc0e5ea7160e0461cc5b41dbb44b88857ab431762b827314f910688ea78921a42", "signature": "static bool Requested(string[]? args = null)", "parameters": [{ "name": "args", "type": "string[]?", "default": "null" }], "summary": "True when this process was asked to run without a window." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|DrawFn draw;CuiAppOptions window;TextReader? input = null;TextWriter? output = null||h37edee97f7be63ccf9a98383e568e10725a14a8431d1b588b7a21cd59b07507d", "signature": "static int Run(DrawFn draw, CuiAppOptions window, TextReader? input = null, TextWriter? output = null)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "window", "type": "CuiAppOptions" }, { "name": "input", "type": "TextReader?", "default": "null" }, { "name": "output", "type": "TextWriter?", "default": "null" }], "summary": "Serves commands for an app that draws with a callback: a gallery, a demo, a single-file tool, or a hosted component \u2014 the host is the callback either way." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|HeadlessApp app;TextReader? input = null;TextWriter? output = null||hc55d4e1df5958d2b5f8157071f361936fb2ac62ac6ea15e2bffea83d29bee6de", "signature": "static int Run(HeadlessApp app, TextReader? input = null, TextWriter? output = null)", "parameters": [{ "name": "app", "type": "HeadlessApp" }, { "name": "input", "type": "TextReader?", "default": "null" }, { "name": "output", "type": "TextWriter?", "default": "null" }], "summary": "Serves commands against an app the caller already started." }] }, + { "name": "CuiSharp.Hosting.Mutation", "displayName": "Mutation", "kind": "class", "summary": "A Mutation\u00601 whose work has no result.", "members": [{ "name": "Error", "kind": "property", "id": "property|Error|0|0|Exception?||get;|hb67d4cbeee04c77705d935c8f9afc91d020a674a85f3ebb45a3c6dfd8005cfea", "signature": "Exception? Error { get; }", "summary": "The failure that ended the last run, or null. Read it every frame; it costs nothing." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003E work||hfcf9ec1d5f318ee6d44a793ffdd1166e6d4e6b9833fa1bcdd8717280dcbda975", "signature": "Mutation(Func\u003CCancellationToken, Task\u003E work)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003E" }], "summary": "Creates a mutation around the work it runs." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003E work;Action? onSuccess||h089de149d2fa382d351a6f8460c423879bd62eceb657211b45a1c1b69d25f3fb", "signature": "Mutation(Func\u003CCancellationToken, Task\u003E work, Action? onSuccess)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003E" }, { "name": "onSuccess", "type": "Action?" }], "summary": "Creates a mutation that calls onSuccess on the UI thread, before the next frame draws, once the work completes." }, { "name": "IsRunning", "kind": "property", "id": "property|IsRunning|0|0|bool||get;|hdb50b35f9f11d94a95bf6f33b6d55042e6ef5b6754a94143c75a7814c03fafc3", "signature": "bool IsRunning { get; }", "summary": "True while the operation is in flight." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Cancels a running operation. Optional." }, { "name": "Run", "kind": "method", "id": "method|Run|0|0|void|||h7fa7970a6de0dd0432fb375a6fdd0984556b406ca72f5dcb18c83b9546faba45", "signature": "void Run()", "summary": "Starts the operation. Re-entry is ignored, so it is safe to call every frame." }] }, + { "name": "CuiSharp.Hosting.Mutation\u00601", "displayName": "Mutation", "kind": "class", "summary": "One background operation owned by a component: start it, keep drawing, and see the result on a later frame. The frame loop is synchronous, so nothing inside Draw may await. A mutation is the shape that makes that safe: it runs the work on the pool, holds the outcome, and never touches a Ui from a pool thread. While the operation runs \u2014 and for the one frame its result still needs to be drawn \u2014 the host keeps requesting frames, so the state appears immediately instead of on the next mouse move. Error and IsRunning are always current and cost nothing to read, so a fire-and-forget mutation needs no bookkeeping in Draw. Pass an apply callback when the result has to change state, and Draw never polls: the callback runs on the UI thread, before the next frame draws.", "members": [{ "name": "Error", "kind": "property", "id": "property|Error|0|0|Exception?||get;|hb67d4cbeee04c77705d935c8f9afc91d020a674a85f3ebb45a3c6dfd8005cfea", "signature": "Exception? Error { get; }", "summary": "The failure that ended the last run, or null. Cached when the operation completes, so reading it every frame allocates nothing." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003CT\u003E\u003E work||h407c67811e4cd751644c16cd780b2aa8f6144d3999000bb9a13e4867a2511590", "signature": "Mutation\u003CT\u003E(Func\u003CCancellationToken, Task\u003CT\u003E\u003E work)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003CT\u003E\u003E" }], "summary": "Creates a mutation around the work it runs." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003CT\u003E\u003E work;Action\u003CT\u003E? apply||h439a867bc51e16192ebb428f43d5d5ad97e83f3395e337d6fadd63dfcb5ec734", "signature": "Mutation\u003CT\u003E(Func\u003CCancellationToken, Task\u003CT\u003E\u003E work, Action\u003CT\u003E? apply)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003CT\u003E\u003E" }, { "name": "apply", "type": "Action\u003CT\u003E?" }], "summary": "Creates a mutation that hands its result to apply on the UI thread, before the next frame draws." }, { "name": "IsRunning", "kind": "property", "id": "property|IsRunning|0|0|bool||get;|hdb50b35f9f11d94a95bf6f33b6d55042e6ef5b6754a94143c75a7814c03fafc3", "signature": "bool IsRunning { get; }", "summary": "True while the operation is in flight." }, { "name": "TryPublish", "kind": "method", "id": "method|TryPublish|0|0|bool|out T result||ha98becc21c9c0f32b7a93fa1ebe90da051774564169240986c82f6a725c2b6ce", "signature": "bool TryPublish(out T? result)", "parameters": [{ "name": "result", "type": "out T?" }], "summary": "Takes the result if the operation finished. Needed only when the result has no apply callback; an operation that was given one has already applied it." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Cancels a running operation and drops its result. Optional: a mutation that is never disposed is cancelled when the process exits, which is what an app usually wants. After this, a completion that arrives late \u2014 the work finished just before the page was navigated away from \u2014 is dropped instead of applying into a component that no longer exists." }, { "name": "Run", "kind": "method", "id": "method|Run|0|0|void|||h7fa7970a6de0dd0432fb375a6fdd0984556b406ca72f5dcb18c83b9546faba45", "signature": "void Run()", "summary": "Starts the operation \u2014 on the pool, never on the frame thread. Re-entry is ignored, so it is safe to call every frame, and a run started after Dispose is ignored too: the component that owned it is gone." }] }, + { "name": "CuiSharp.Hosting.WidgetTarget", "displayName": "WidgetTarget", "kind": "struct", "summary": "One control of a frame, as something to act on: hover it, click it, read where it is.", "members": [{ "name": "ClickAndFrame", "kind": "method", "id": "method|ClickAndFrame|0|0|HeadlessApp|||h43e085aa37f6bc8677e3c93bfcfbbe3239ac58d49311d15cc64e9a3dd3a90869", "signature": "HeadlessApp ClickAndFrame()", "summary": "Clicks the widget and returns the app, whose last frame reacted to it." }, { "name": "Rect", "kind": "property", "id": "property|Rect|0|0|RectF||get;|hf755173a5fe47fca342422117b9258f72be7002a01ae38cb809f072f70e4e9a6", "signature": "RectF Rect { get; }", "summary": "Where it was laid out in the frame it was found in." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|WidgetTarget|||hfad9f154f0bc2a0506748d7415467cb904dbe6fe379b297d23818d6cfe8d4c8d", "signature": "WidgetTarget Click()", "summary": "Clicks the widget: pointer over it, a press frame, a release frame. The widget reports the click on the release, so the frame after this one shows the result." }, { "name": "Hover", "kind": "method", "id": "method|Hover|0|0|WidgetTarget|||ha21b70758524839ef7605ba94fb74e78ebfe78f13e935f313437213f5181cf7c", "signature": "WidgetTarget Hover()", "summary": "Moves the pointer to the middle of the widget and draws a frame." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|string||get;|h388961e1f6a3037bd4a4c8333a144e60a99cdcd3bd10798d477a76bdae288a1d", "signature": "string Kind { get; }", "summary": "The wrapper that drew it: Button, Input, ListItem." }, { "name": "Text", "kind": "property", "id": "property|Text|0|0|string||get;|h221097532e4154611cbbc42c65b80d74f8055bd282efb709184598cd9d2c27bb", "signature": "string Text { get; }", "summary": "The id, or the label when the widget takes no id." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.HoverCardOpts", "displayName": "HoverCardOpts", "kind": "struct", "summary": "cui_hover_card_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Delay", "kind": "field", "id": "field|Delay|0|0|float|||h3a45177d911de60d3c1058d19f965797cda6f4da3e3656b82d0a5ea6832de388", "signature": "public float Delay", "summary": "float delay" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }] }, + { "name": "CuiSharp.HttpMethod", "displayName": "HttpMethod", "kind": "enum", "summary": "cui_http_method", "members": [{ "name": "Delete", "kind": "enum value", "id": "enum value|Delete|1|0|||4|h9c468745566016a9c9cd155b92c193f000d5b19f89810867856e1f2f52312bd9", "signature": "Delete = 4", "value": "4" }, { "name": "Get", "kind": "enum value", "id": "enum value|Get|1|0|||0|h9153c85d369ed9b213b8a6e77e3578dd074be635790c6a90cb0629bdc57c85cc", "signature": "Get = 0", "value": "0" }, { "name": "Head", "kind": "enum value", "id": "enum value|Head|1|0|||5|h3d6dda8de06597da50de06458717cab0b7b2c733d52a788ca282b383cf0bfb65", "signature": "Head = 5", "value": "5" }, { "name": "Options", "kind": "enum value", "id": "enum value|Options|1|0|||6|hcec4abdffc7cd43823b24cd6e2e845efc356fd48586425123fd465da5f30bce5", "signature": "Options = 6", "value": "6" }, { "name": "Patch", "kind": "enum value", "id": "enum value|Patch|1|0|||3|h8b76e70de6458fbb533b60ab1f264a9389387456acfbf14b70f1fb58e8cd5329", "signature": "Patch = 3", "value": "3" }, { "name": "Post", "kind": "enum value", "id": "enum value|Post|1|0|||1|h23f6c8de17ade41606d842189999c39a12d8f067379eed85f69c848179f5c17e", "signature": "Post = 1", "value": "1" }, { "name": "Put", "kind": "enum value", "id": "enum value|Put|1|0|||2|h9f14b11672b7c798b0eae55b6dcaa0c9d267b4df15d58a6850da1e061969155f", "signature": "Put = 2", "value": "2" }] }, + { "name": "CuiSharp.IFileDialogProvider", "displayName": "IFileDialogProvider", "kind": "interface", "summary": "Picks a file, a folder or a save path with the OS\u0027s own dialog, and returns what happened instead of a bool and an empty string. Native dialogs are modal and blocking on every platform, so call this from a button\u0027s click in a frame, never from work that has to keep drawing. The default implementation asks the OS through CUI; a test replaces it, so a picker flow can be exercised without a display or a dialog.", "members": [{ "name": "Pick", "kind": "method", "id": "method|Pick|0|0|FilePickResult|CuiWindow window;FileDialogOpts options||h9f867669da4a21c3b53bce004250b8d1847a0abeb5d7077e199bd76432ff6d37", "signature": "FilePickResult Pick(CuiWindow window, FileDialogOpts options)", "parameters": [{ "name": "window", "type": "CuiWindow" }, { "name": "options", "type": "FileDialogOpts" }], "summary": "Shows the dialog and returns the choice, or a cancelled result." }] }, + { "name": "CuiSharp.Icons", "displayName": "Icons", "kind": "static class", "summary": "The Lucide glyphs CUI embeds, one private-use code point each, from CUI_ICON_* in cui_icons.h.", "members": [{ "name": "Activity", "kind": "constant", "id": "constant|Activity|1|0|string||\uE038|ha7907bd574f24d18b99f09b5096af243b50926c11d33511c745a200d37f955d7", "signature": "public const string Activity = \u0022\\uE038\u0022", "value": "\uE038" }, { "name": "AlignLeft", "kind": "constant", "id": "constant|AlignLeft|1|0|string||\uE185|h7a766b995d5357b6dd17a9951770a525188f66bec946beafd84d2732291bad82", "signature": "public const string AlignLeft = \u0022\\uE185\u0022", "value": "\uE185" }, { "name": "Archive", "kind": "constant", "id": "constant|Archive|1|0|string||\uE041|h518a1151535331e639f0d82c601c44ae3f66bbb9ce76a1aee96aed571fb5c287", "signature": "public const string Archive = \u0022\\uE041\u0022", "value": "\uE041" }, { "name": "ArrowDown", "kind": "constant", "id": "constant|ArrowDown|1|0|string||\uE042|hdf25b690f19fcdf4afd9ea8d93b9941f88bc8c2b90812df81492297dc1646d7e", "signature": "public const string ArrowDown = \u0022\\uE042\u0022", "value": "\uE042" }, { "name": "ArrowLeft", "kind": "constant", "id": "constant|ArrowLeft|1|0|string||\uE048|hb37a7fe0eb6716833ca418595a5cfac42c92ea84eb6155efbcc4465923b7108e", "signature": "public const string ArrowLeft = \u0022\\uE048\u0022", "value": "\uE048" }, { "name": "ArrowRight", "kind": "constant", "id": "constant|ArrowRight|1|0|string||\uE049|h1b4c8c2181c0d4673e998f6ab6d70c11027deab161a082150ddb40e02657ba2f", "signature": "public const string ArrowRight = \u0022\\uE049\u0022", "value": "\uE049" }, { "name": "ArrowUp", "kind": "constant", "id": "constant|ArrowUp|1|0|string||\uE04A|h9502cc62990b0cbe5369eb31b79abdabd9300969b952fc898778840a9be2c6be", "signature": "public const string ArrowUp = \u0022\\uE04A\u0022", "value": "\uE04A" }, { "name": "ArrowUpRight", "kind": "constant", "id": "constant|ArrowUpRight|1|0|string||\uE04D|h8653e745e609220a4abd6dd2d8b7c08d6f53d6a064bb1f2018fc9e3c23dc57d1", "signature": "public const string ArrowUpRight = \u0022\\uE04D\u0022", "value": "\uE04D" }, { "name": "AtSign", "kind": "constant", "id": "constant|AtSign|1|0|string||\uE04E|h36c9b528954782753b0cc938d9a630f784644313c53df2d2ee682b9269927f5e", "signature": "public const string AtSign = \u0022\\uE04E\u0022", "value": "\uE04E" }, { "name": "AudioLines", "kind": "constant", "id": "constant|AudioLines|1|0|string||\uE55A|hb46a61df71dc9d51f484b961a5d2bc9cbad8b583dcdd052e430cb73fe802ebf9", "signature": "public const string AudioLines = \u0022\\uE55A\u0022", "value": "\uE55A" }, { "name": "Award", "kind": "constant", "id": "constant|Award|1|0|string||\uE04F|h449a94806de77ccde99cb78a356b4ea3ac218d79b3afc89d80fae5b8c64bf245", "signature": "public const string Award = \u0022\\uE04F\u0022", "value": "\uE04F" }, { "name": "BadgeCheck", "kind": "constant", "id": "constant|BadgeCheck|1|0|string||\uE241|h7f131959864092141db4e64f746861f17587195d31c80a53d8a6ce29ed08062a", "signature": "public const string BadgeCheck = \u0022\\uE241\u0022", "value": "\uE241" }, { "name": "Battery", "kind": "constant", "id": "constant|Battery|1|0|string||\uE053|h047664889136f4a035c5df236cf9126031e5c095468f32738f143b58558d7616", "signature": "public const string Battery = \u0022\\uE053\u0022", "value": "\uE053" }, { "name": "Bell", "kind": "constant", "id": "constant|Bell|1|0|string||\uE059|h902e535fac72838cb18d5aeb1f89276885cc2d0b693cddf889c4181aa70e56da", "signature": "public const string Bell = \u0022\\uE059\u0022", "value": "\uE059" }, { "name": "Bold", "kind": "constant", "id": "constant|Bold|1|0|string||\uE05D|h25c22eed51c6d6db6f9f4b35040cd54f36d025c2d5b75e0c07a064d2e8084393", "signature": "public const string Bold = \u0022\\uE05D\u0022", "value": "\uE05D" }, { "name": "Bookmark", "kind": "constant", "id": "constant|Bookmark|1|0|string||\uE060|h0ae9252448b2f4f2027fc8241380ddd5c3b6c1fc0cf8808098d37c4035d69815", "signature": "public const string Bookmark = \u0022\\uE060\u0022", "value": "\uE060" }, { "name": "Box", "kind": "constant", "id": "constant|Box|1|0|string||\uE061|hceb2cc8893a1b2f4845ca28945c0201e5476a3068df8b526cc591f9c4fc18d4b", "signature": "public const string Box = \u0022\\uE061\u0022", "value": "\uE061" }, { "name": "Briefcase", "kind": "constant", "id": "constant|Briefcase|1|0|string||\uE062|h512449c1ee15adcde0a5e67cd71fb6ca413e96bf95eec2f414c7a53028aed661", "signature": "public const string Briefcase = \u0022\\uE062\u0022", "value": "\uE062" }, { "name": "Bug", "kind": "constant", "id": "constant|Bug|1|0|string||\uE20C|h9a0d1b58918909d340bf2cfa75e738a7752caa21eddf001ef55d7bde25d7669b", "signature": "public const string Bug = \u0022\\uE20C\u0022", "value": "\uE20C" }, { "name": "Building2", "kind": "constant", "id": "constant|Building2|1|0|string||\uE290|h376335730454bd030bb3e6351942ef4db138e345044ad4f9165d97834852facb", "signature": "public const string Building2 = \u0022\\uE290\u0022", "value": "\uE290" }, { "name": "Calendar", "kind": "constant", "id": "constant|Calendar|1|0|string||\uE063|hd7ab81b6b8e0878d93abf29bc5a9b65e4c0e905c1dec0d4f652673865b615a2e", "signature": "public const string Calendar = \u0022\\uE063\u0022", "value": "\uE063" }, { "name": "Camera", "kind": "constant", "id": "constant|Camera|1|0|string||\uE064|h3c761ff1290732f74654320794257e3f6b7da64929c06b8f3ec4b2466dd48492", "signature": "public const string Camera = \u0022\\uE064\u0022", "value": "\uE064" }, { "name": "ChartBar", "kind": "constant", "id": "constant|ChartBar|1|0|string||\uE2A2|h3a59e88bacd73354d2a85051a21ff4092add6725c92777c0efd1074726954ada", "signature": "public const string ChartBar = \u0022\\uE2A2\u0022", "value": "\uE2A2" }, { "name": "ChartLine", "kind": "constant", "id": "constant|ChartLine|1|0|string||\uE2A5|h3f9d7728174b49d3311af1d8ab9a2dd63d97eae61831d93766e189f1027a45d0", "signature": "public const string ChartLine = \u0022\\uE2A5\u0022", "value": "\uE2A5" }, { "name": "ChartPie", "kind": "constant", "id": "constant|ChartPie|1|0|string||\uE06B|h1c9f3fd9df9d04ac67fb3dfa67ca69523d1d5e8e48a6f7939047360ad4db4695", "signature": "public const string ChartPie = \u0022\\uE06B\u0022", "value": "\uE06B" }, { "name": "Check", "kind": "constant", "id": "constant|Check|1|0|string||\uE06C|hd34976564ca444916524a18154e5c10483c0fb8bbdcb75684db3932d38740f69", "signature": "public const string Check = \u0022\\uE06C\u0022", "value": "\uE06C" }, { "name": "CheckCheck", "kind": "constant", "id": "constant|CheckCheck|1|0|string||\uE38E|h977e2aaca3102ad60b42e8778609bb6188e0f7bdbdad7b1355d90acef63b2c02", "signature": "public const string CheckCheck = \u0022\\uE38E\u0022", "value": "\uE38E" }, { "name": "ChevronDown", "kind": "constant", "id": "constant|ChevronDown|1|0|string||\uE06D|h3efc1c9ecc669ed6019d1d73a04ce2f3b0827eced6ff4a361bf701db6dfea75e", "signature": "public const string ChevronDown = \u0022\\uE06D\u0022", "value": "\uE06D" }, { "name": "ChevronLeft", "kind": "constant", "id": "constant|ChevronLeft|1|0|string||\uE06E|h7fbd5ceefe64982355e2fe3854082aa771fb20eb7e8a4bef493e83d914ad73ee", "signature": "public const string ChevronLeft = \u0022\\uE06E\u0022", "value": "\uE06E" }, { "name": "ChevronRight", "kind": "constant", "id": "constant|ChevronRight|1|0|string||\uE06F|hdfdf63073a4888e2dc2f1c55602922b1fe51fb89500bdeee5f336bac4624a4bb", "signature": "public const string ChevronRight = \u0022\\uE06F\u0022", "value": "\uE06F" }, { "name": "ChevronUp", "kind": "constant", "id": "constant|ChevronUp|1|0|string||\uE070|h117a7a1d45bc880a715d04e07214c1fc06c788a96b64f5e520ee868912aece1b", "signature": "public const string ChevronUp = \u0022\\uE070\u0022", "value": "\uE070" }, { "name": "ChevronsLeft", "kind": "constant", "id": "constant|ChevronsLeft|1|0|string||\uE072|h66dbe21b55fd4fd3e109f1e5f34de514e2a7b5bd77983a1d246790580247aaa1", "signature": "public const string ChevronsLeft = \u0022\\uE072\u0022", "value": "\uE072" }, { "name": "ChevronsRight", "kind": "constant", "id": "constant|ChevronsRight|1|0|string||\uE073|hd9a958422253a785ef99397b252b238cd6212c87d76ab207cf10c4d262ce20d9", "signature": "public const string ChevronsRight = \u0022\\uE073\u0022", "value": "\uE073" }, { "name": "ChevronsUpDown", "kind": "constant", "id": "constant|ChevronsUpDown|1|0|string||\uE211|h1023ad06b012cbffc8d220fa5e30f13173c96bf131fb1b95d1b6dc5030a6951a", "signature": "public const string ChevronsUpDown = \u0022\\uE211\u0022", "value": "\uE211" }, { "name": "Circle", "kind": "constant", "id": "constant|Circle|1|0|string||\uE076|h89f1393951197f3182148e0a2f3483504d7e490b1f3653caeb32838a5a3df68f", "signature": "public const string Circle = \u0022\\uE076\u0022", "value": "\uE076" }, { "name": "CircleAlert", "kind": "constant", "id": "constant|CircleAlert|1|0|string||\uE077|hfa99b1ebdb0fcfc1ae26e2d4d21d34c75ed47a42a03131a155d867f18ce49d77", "signature": "public const string CircleAlert = \u0022\\uE077\u0022", "value": "\uE077" }, { "name": "CircleCheck", "kind": "constant", "id": "constant|CircleCheck|1|0|string||\uE226|hffc4a2f6068228dcecc31297556c55bdd529261e4b98e0b082fa2377011ff76a", "signature": "public const string CircleCheck = \u0022\\uE226\u0022", "value": "\uE226" }, { "name": "CircleDot", "kind": "constant", "id": "constant|CircleDot|1|0|string||\uE345|h96a35a92ebd44e133758285e82048f761728bc3b7a3aa217574e6b5977de1c09", "signature": "public const string CircleDot = \u0022\\uE345\u0022", "value": "\uE345" }, { "name": "CircleHelp", "kind": "constant", "id": "constant|CircleHelp|1|0|string||\uE082|hb2a1acfd6a631106923b6cc9ee1213fa21c077072b83efb8438e390dcab72aec", "signature": "public const string CircleHelp = \u0022\\uE082\u0022", "value": "\uE082" }, { "name": "CircleUser", "kind": "constant", "id": "constant|CircleUser|1|0|string||\uE461|h3e8493acf66d87b1581ea2a3a750281fa415aa4bf1ad639822092193d37a788b", "signature": "public const string CircleUser = \u0022\\uE461\u0022", "value": "\uE461" }, { "name": "CircleX", "kind": "constant", "id": "constant|CircleX|1|0|string||\uE084|h6f2e7f2710104b7d83523878b08d2e2affd02f7ad449f357a6e7b09ca228153d", "signature": "public const string CircleX = \u0022\\uE084\u0022", "value": "\uE084" }, { "name": "Clipboard", "kind": "constant", "id": "constant|Clipboard|1|0|string||\uE085|hed3618bcf17beb34fafc9a1d495515100066ea771a7f1f2e837be1aab67cf7e0", "signature": "public const string Clipboard = \u0022\\uE085\u0022", "value": "\uE085" }, { "name": "Clock", "kind": "constant", "id": "constant|Clock|1|0|string||\uE087|h6b25441fc9791c0be1a517f72549e15349e5b19ea3530fc72c0b77bd34f618b0", "signature": "public const string Clock = \u0022\\uE087\u0022", "value": "\uE087" }, { "name": "Cloud", "kind": "constant", "id": "constant|Cloud|1|0|string||\uE088|hef618cbd9297ae56fb3205d988657b722e0b12fef7037d98f6f89f25928491de", "signature": "public const string Cloud = \u0022\\uE088\u0022", "value": "\uE088" }, { "name": "Code", "kind": "constant", "id": "constant|Code|1|0|string||\uE093|h4feb3cb84e87a9469a6736c31dd9eafd7858ec365a4912ff3cad2a88a63f8a88", "signature": "public const string Code = \u0022\\uE093\u0022", "value": "\uE093" }, { "name": "Command", "kind": "constant", "id": "constant|Command|1|0|string||\uE09A|hb0531a0a996bd3894d4da5f7f2b9382c0a0b608f20a676d12cf9608ae35a351a", "signature": "public const string Command = \u0022\\uE09A\u0022", "value": "\uE09A" }, { "name": "Compass", "kind": "constant", "id": "constant|Compass|1|0|string||\uE09B|h3a9899c1f1292c4fdb22bba5ff8003664591991e34d08a3b882f3ad00c8b1e37", "signature": "public const string Compass = \u0022\\uE09B\u0022", "value": "\uE09B" }, { "name": "Copy", "kind": "constant", "id": "constant|Copy|1|0|string||\uE09E|hc8a19aa077bd5016fad8ff440977b53e1212f8dca3c2e6c096b14098e147e48e", "signature": "public const string Copy = \u0022\\uE09E\u0022", "value": "\uE09E" }, { "name": "Cpu", "kind": "constant", "id": "constant|Cpu|1|0|string||\uE0A9|h0c085b5ddfedec085a5ad6f2b6d07107a3ed3d81649ccb3b6bfb5debc2332dd7", "signature": "public const string Cpu = \u0022\\uE0A9\u0022", "value": "\uE0A9" }, { "name": "CreditCard", "kind": "constant", "id": "constant|CreditCard|1|0|string||\uE0AA|h35d88b9e84e51f89378532f7238532f7a74674863653a39451b79b3cd75045f8", "signature": "public const string CreditCard = \u0022\\uE0AA\u0022", "value": "\uE0AA" }, { "name": "Database", "kind": "constant", "id": "constant|Database|1|0|string||\uE0AD|h99ab2949c26829b430a1cb00f7b78e8d9f83a49f54dafea5605f1d4d5d648841", "signature": "public const string Database = \u0022\\uE0AD\u0022", "value": "\uE0AD" }, { "name": "DollarSign", "kind": "constant", "id": "constant|DollarSign|1|0|string||\uE0B1|hcbeb1942fc285ef90b52ca0c2a3c876e6347f29ab71046c2766755b0b8bf60fa", "signature": "public const string DollarSign = \u0022\\uE0B1\u0022", "value": "\uE0B1" }, { "name": "Dot", "kind": "constant", "id": "constant|Dot|1|0|string||\uE44F|h2784a915c8e8b3486f396f59c423a9986b1ad06dadfebedf3d56b61cb8ca6c82", "signature": "public const string Dot = \u0022\\uE44F\u0022", "value": "\uE44F" }, { "name": "Download", "kind": "constant", "id": "constant|Download|1|0|string||\uE0B2|h9121af1b290dc46fafb0ef11f4796322c15a232e0c1e91606108b2443c76497c", "signature": "public const string Download = \u0022\\uE0B2\u0022", "value": "\uE0B2" }, { "name": "Ellipsis", "kind": "constant", "id": "constant|Ellipsis|1|0|string||\uE0B6|h886dc6938aeda1096b683c4250a8cb91f29b258d49c67ef57bd089aed3d03ecd", "signature": "public const string Ellipsis = \u0022\\uE0B6\u0022", "value": "\uE0B6" }, { "name": "EllipsisVertical", "kind": "constant", "id": "constant|EllipsisVertical|1|0|string||\uE0B7|h73ad56a661b6fbde6027f4a7c869f765217ca2b8d24d82e4cceb75d86e764626", "signature": "public const string EllipsisVertical = \u0022\\uE0B7\u0022", "value": "\uE0B7" }, { "name": "ExternalLink", "kind": "constant", "id": "constant|ExternalLink|1|0|string||\uE0B9|h90ac89e75b91b140742adba158ac3b7cc5e66c62dd0a38e10a8fb1c378a70c2f", "signature": "public const string ExternalLink = \u0022\\uE0B9\u0022", "value": "\uE0B9" }, { "name": "Eye", "kind": "constant", "id": "constant|Eye|1|0|string||\uE0BA|hb2bb7c84b6bcd760cfde54762c69030ff9c27dcd7e0b639979d3e5b7bbd5a8ab", "signature": "public const string Eye = \u0022\\uE0BA\u0022", "value": "\uE0BA" }, { "name": "EyeOff", "kind": "constant", "id": "constant|EyeOff|1|0|string||\uE0BB|hec324931538c8f0fccdcef7ad7c4ba6fabcbb9f1e0a3c0455ba612fa8ee71292", "signature": "public const string EyeOff = \u0022\\uE0BB\u0022", "value": "\uE0BB" }, { "name": "File", "kind": "constant", "id": "constant|File|1|0|string||\uE0C0|h295e6a5c9248bd9aa0f335783c17666fb43e0da33954b0315787dbb6d0b4ced3", "signature": "public const string File = \u0022\\uE0C0\u0022", "value": "\uE0C0" }, { "name": "FileText", "kind": "constant", "id": "constant|FileText|1|0|string||\uE0CC|hff139c25d93436aa19a4eb50667b89aa66bd38ebec7d5a37a80ee6f3fc4e93e8", "signature": "public const string FileText = \u0022\\uE0CC\u0022", "value": "\uE0CC" }, { "name": "Filter", "kind": "constant", "id": "constant|Filter|1|0|string||\uE0DC|h62c1d1505d6e6d1ddc50faefc1a0029e9b39fbf429674ff3ef96e27c8418841e", "signature": "public const string Filter = \u0022\\uE0DC\u0022", "value": "\uE0DC" }, { "name": "Fingerprint", "kind": "constant", "id": "constant|Fingerprint|1|0|string||\uE2CB|h396476dd193211dfd5877370efa741fac346d97ba01b130ecb7e8e13146cfabb", "signature": "public const string Fingerprint = \u0022\\uE2CB\u0022", "value": "\uE2CB" }, { "name": "Flag", "kind": "constant", "id": "constant|Flag|1|0|string||\uE0D1|hbf886900951f7ffcccf18e63708784e5885c52c4e2c19e8fc6c9699a0a1eaf80", "signature": "public const string Flag = \u0022\\uE0D1\u0022", "value": "\uE0D1" }, { "name": "Folder", "kind": "constant", "id": "constant|Folder|1|0|string||\uE0D7|h725eff19426fbc484411c58b802e3d9977572d9dd45b06b71f97ff3559db228a", "signature": "public const string Folder = \u0022\\uE0D7\u0022", "value": "\uE0D7" }, { "name": "FolderOpen", "kind": "constant", "id": "constant|FolderOpen|1|0|string||\uE247|h0349a10c485e4f8e148f8b5cfab26020c71b40366f791eec25e5f82eba96ecdd", "signature": "public const string FolderOpen = \u0022\\uE247\u0022", "value": "\uE247" }, { "name": "Gift", "kind": "constant", "id": "constant|Gift|1|0|string||\uE0E1|ha2bd4ab8e9f99eab557c272c3e263a85b94fabcea070abfa4a8fbd5415e5d5fa", "signature": "public const string Gift = \u0022\\uE0E1\u0022", "value": "\uE0E1" }, { "name": "GitBranch", "kind": "constant", "id": "constant|GitBranch|1|0|string||\uE0E2|h6b781073ac68ad76c0494b8e3fca2a4f23eeb8c86d2607af41f0e3aadf3215a6", "signature": "public const string GitBranch = \u0022\\uE0E2\u0022", "value": "\uE0E2" }, { "name": "Globe", "kind": "constant", "id": "constant|Globe|1|0|string||\uE0E8|h8017e3336c9c8c97305d75b09b6d4fcdf9966e8f7386fcea4c895339694657b7", "signature": "public const string Globe = \u0022\\uE0E8\u0022", "value": "\uE0E8" }, { "name": "Grid3x3", "kind": "constant", "id": "constant|Grid3x3|1|0|string||\uE0E9|ha6f9668404525dc7fe99123e032a1a877ac64ab46dbd6b342523b1e34fc15d11", "signature": "public const string Grid3x3 = \u0022\\uE0E9\u0022", "value": "\uE0E9" }, { "name": "GripVertical", "kind": "constant", "id": "constant|GripVertical|1|0|string||\uE0EB|h02ad2a02250b9fd7bd57e4350af85fa06327f7018b8ef2a8d23ffd6b6253150f", "signature": "public const string GripVertical = \u0022\\uE0EB\u0022", "value": "\uE0EB" }, { "name": "Hash", "kind": "constant", "id": "constant|Hash|1|0|string||\uE0EF|he77ef05afef7c633ca9971266b2b0c172f76a64a78d61b4bad5f91527da32cb4", "signature": "public const string Hash = \u0022\\uE0EF\u0022", "value": "\uE0EF" }, { "name": "Heart", "kind": "constant", "id": "constant|Heart|1|0|string||\uE0F2|hf5a0879af47d2445973eb1fccc3871d0ac2964bd33fe10be342aa9b81e35ad05", "signature": "public const string Heart = \u0022\\uE0F2\u0022", "value": "\uE0F2" }, { "name": "History", "kind": "constant", "id": "constant|History|1|0|string||\uE1F5|hf23e7358625a1bf7978ed39d6d4da332014ca52e2cad609a451dcc43fbd84c66", "signature": "public const string History = \u0022\\uE1F5\u0022", "value": "\uE1F5" }, { "name": "House", "kind": "constant", "id": "constant|House|1|0|string||\uE0F5|hd5913d28e1bf06bbee348873bd9545adfe3d111c39e16a324e003d9cfa003be7", "signature": "public const string House = \u0022\\uE0F5\u0022", "value": "\uE0F5" }, { "name": "Image", "kind": "constant", "id": "constant|Image|1|0|string||\uE0F6|h2c369caf90e7e99b1d501b08a0d3e5897aecab4aa19a642af19d75af945aded7", "signature": "public const string Image = \u0022\\uE0F6\u0022", "value": "\uE0F6" }, { "name": "Inbox", "kind": "constant", "id": "constant|Inbox|1|0|string||\uE0F7|h61a4b0b0ed73d73cc4e84eac5270810bd38dba482d9c85f95b0a57d23097e0f8", "signature": "public const string Inbox = \u0022\\uE0F7\u0022", "value": "\uE0F7" }, { "name": "Info", "kind": "constant", "id": "constant|Info|1|0|string||\uE0F9|hcc47f2b3d80eb7a0099f5e17404d347757f3edd534b459ff618884371aad3f35", "signature": "public const string Info = \u0022\\uE0F9\u0022", "value": "\uE0F9" }, { "name": "Italic", "kind": "constant", "id": "constant|Italic|1|0|string||\uE0FB|h9e23cc60f23be4d487a863796d76cbe997909154a8e2b05ab2c9fdf8a150739b", "signature": "public const string Italic = \u0022\\uE0FB\u0022", "value": "\uE0FB" }, { "name": "KeyRound", "kind": "constant", "id": "constant|KeyRound|1|0|string||\uE4A3|ha2c187ec0b24c15950668e6e6080d92061186c6aab5aff73f4e26efc68136906", "signature": "public const string KeyRound = \u0022\\uE4A3\u0022", "value": "\uE4A3" }, { "name": "Keyboard", "kind": "constant", "id": "constant|Keyboard|1|0|string||\uE284|hdbe558dcd39818469d630854af3a116df2e8d87c17db824a926c2655332bece1", "signature": "public const string Keyboard = \u0022\\uE284\u0022", "value": "\uE284" }, { "name": "Layers", "kind": "constant", "id": "constant|Layers|1|0|string||\uE529|h882580aa55ce7fd8b90b8155517cdd2a593a293c743540155fa410822a24ab91", "signature": "public const string Layers = \u0022\\uE529\u0022", "value": "\uE529" }, { "name": "LayoutDashboard", "kind": "constant", "id": "constant|LayoutDashboard|1|0|string||\uE1C1|hdcd670f46cddd4e1af6331dcd853a801465579697f6363248ecad2a503400099", "signature": "public const string LayoutDashboard = \u0022\\uE1C1\u0022", "value": "\uE1C1" }, { "name": "Link", "kind": "constant", "id": "constant|Link|1|0|string||\uE102|h4c8a9d8944cfce5d4e29cb97808db6dba18ad8ebe1f5a48124119484d97ccd4f", "signature": "public const string Link = \u0022\\uE102\u0022", "value": "\uE102" }, { "name": "List", "kind": "constant", "id": "constant|List|1|0|string||\uE106|ha8d9b9c693a187732b2054a430ee5fe7164e2723eee57e6126008114f3193e6a", "signature": "public const string List = \u0022\\uE106\u0022", "value": "\uE106" }, { "name": "ListChecks", "kind": "constant", "id": "constant|ListChecks|1|0|string||\uE1D0|h222f2c09c86375bf219c39fde41af7162c029aef3b35fcaca0371c372b5d7eb6", "signature": "public const string ListChecks = \u0022\\uE1D0\u0022", "value": "\uE1D0" }, { "name": "LoaderCircle", "kind": "constant", "id": "constant|LoaderCircle|1|0|string||\uE10A|hfb769ba1d8de3a60d1a098816ff66f554efce27d4a86f23bc4e0b85a4aed9d67", "signature": "public const string LoaderCircle = \u0022\\uE10A\u0022", "value": "\uE10A" }, { "name": "Lock", "kind": "constant", "id": "constant|Lock|1|0|string||\uE10B|ha3caadc85e303a98036fe39a607f2648ba707148ed359155b11f556bed24b76c", "signature": "public const string Lock = \u0022\\uE10B\u0022", "value": "\uE10B" }, { "name": "LogIn", "kind": "constant", "id": "constant|LogIn|1|0|string||\uE10D|h2f4cff668340423c95e320d8109463e1b90763e18f1a4de8e6cffff83b042e73", "signature": "public const string LogIn = \u0022\\uE10D\u0022", "value": "\uE10D" }, { "name": "LogOut", "kind": "constant", "id": "constant|LogOut|1|0|string||\uE10E|h27c6bfee3565d975408ea45e163cfda17457f23a0883298e6b9d8e3cd51d069a", "signature": "public const string LogOut = \u0022\\uE10E\u0022", "value": "\uE10E" }, { "name": "Mail", "kind": "constant", "id": "constant|Mail|1|0|string||\uE10F|h74dd2c9bc04f1ca4541687c37a8c688298f8b0eb39d156de19aac76e057a6ed8", "signature": "public const string Mail = \u0022\\uE10F\u0022", "value": "\uE10F" }, { "name": "MapPin", "kind": "constant", "id": "constant|MapPin|1|0|string||\uE111|h46c60276dc7b29a9e0f43f11b814b366f6dfe7da8f8b1c1d6502fad031c77f39", "signature": "public const string MapPin = \u0022\\uE111\u0022", "value": "\uE111" }, { "name": "Maximize2", "kind": "constant", "id": "constant|Maximize2|1|0|string||\uE113|hfc0dd1c4da9b10d67a14126d6e5046d533d8646618e4c577d191f5c8315e2745", "signature": "public const string Maximize2 = \u0022\\uE113\u0022", "value": "\uE113" }, { "name": "Menu", "kind": "constant", "id": "constant|Menu|1|0|string||\uE115|h0deb4670f85d5dff72ae3bf690c41ac166e176fe413fc84d4664a87774da4dd5", "signature": "public const string Menu = \u0022\\uE115\u0022", "value": "\uE115" }, { "name": "MessageSquare", "kind": "constant", "id": "constant|MessageSquare|1|0|string||\uE117|h198c9405b406934436d0f5925acd794aeba4da4ae2f4b6f60a20c1ca6ef0d575", "signature": "public const string MessageSquare = \u0022\\uE117\u0022", "value": "\uE117" }, { "name": "Mic", "kind": "constant", "id": "constant|Mic|1|0|string||\uE118|he7b1ee946c64130a3215496e500d7647821e0f4104ce9fd9930963a69fcfb00e", "signature": "public const string Mic = \u0022\\uE118\u0022", "value": "\uE118" }, { "name": "Minimize2", "kind": "constant", "id": "constant|Minimize2|1|0|string||\uE11B|h623d79f8d006140a7f620074cd1f5d0f293d8e054db75bf3de4aa29ec72efc13", "signature": "public const string Minimize2 = \u0022\\uE11B\u0022", "value": "\uE11B" }, { "name": "Minus", "kind": "constant", "id": "constant|Minus|1|0|string||\uE11C|h8495237334def6ea617a9ddb469f297778b74b5ae102ee8ac0cd7405306d1fca", "signature": "public const string Minus = \u0022\\uE11C\u0022", "value": "\uE11C" }, { "name": "Monitor", "kind": "constant", "id": "constant|Monitor|1|0|string||\uE11D|h42da833913b88c7303ffff038609e92475244a673d4a03bf05328d5a965e715c", "signature": "public const string Monitor = \u0022\\uE11D\u0022", "value": "\uE11D" }, { "name": "Moon", "kind": "constant", "id": "constant|Moon|1|0|string||\uE11E|h8cb4045ee25477989342d9c10a4469f3eebbcc975bd4c1f88c0cdd5468e7113a", "signature": "public const string Moon = \u0022\\uE11E\u0022", "value": "\uE11E" }, { "name": "Move", "kind": "constant", "id": "constant|Move|1|0|string||\uE121|h351703b216dd622cb07832f3fd77debb3d7251abe255dad19f3dc8efec39f310", "signature": "public const string Move = \u0022\\uE121\u0022", "value": "\uE121" }, { "name": "Music", "kind": "constant", "id": "constant|Music|1|0|string||\uE122|h9e71ccd246eb53d9fb53b54a24cd5107bc9a301fb265fbf1b03d99fea425844f", "signature": "public const string Music = \u0022\\uE122\u0022", "value": "\uE122" }, { "name": "NotebookPen", "kind": "constant", "id": "constant|NotebookPen|1|0|string||\uE596|he7522254bf31d9efcd80f605faec537d3a81ea300910a97c05285e7109b717a3", "signature": "public const string NotebookPen = \u0022\\uE596\u0022", "value": "\uE596" }, { "name": "Package", "kind": "constant", "id": "constant|Package|1|0|string||\uE129|h28bf4bb7863c763f8ee4376431a0d6a65d781a7213426f15412d7b4c37453cc8", "signature": "public const string Package = \u0022\\uE129\u0022", "value": "\uE129" }, { "name": "Palette", "kind": "constant", "id": "constant|Palette|1|0|string||\uE1DD|hbb7bf1795cdebae03bacd2de7f4053bca035a34fcd905f85ecb55ede23f53511", "signature": "public const string Palette = \u0022\\uE1DD\u0022", "value": "\uE1DD" }, { "name": "PanelLeft", "kind": "constant", "id": "constant|PanelLeft|1|0|string||\uE12A|h3ec34a3b9e94863403e833ccadd51bdd2362ac3abfb1d8a66a3e55d69fbfb22b", "signature": "public const string PanelLeft = \u0022\\uE12A\u0022", "value": "\uE12A" }, { "name": "Paperclip", "kind": "constant", "id": "constant|Paperclip|1|0|string||\uE12D|hd1ea1ae433435958c3b9006a0f97fac6cc6babec85d3fad058a69bb8e6b3fc65", "signature": "public const string Paperclip = \u0022\\uE12D\u0022", "value": "\uE12D" }, { "name": "Pause", "kind": "constant", "id": "constant|Pause|1|0|string||\uE12E|h90dd32d9714518651305668ed17b05a57078f6ca2b513ebf6c8421cef7d1093d", "signature": "public const string Pause = \u0022\\uE12E\u0022", "value": "\uE12E" }, { "name": "Pencil", "kind": "constant", "id": "constant|Pencil|1|0|string||\uE1F9|h9e9c229158dbb3dc7e516bf362b9236c84022376db6b9ebd7125263e7bf187b5", "signature": "public const string Pencil = \u0022\\uE1F9\u0022", "value": "\uE1F9" }, { "name": "Percent", "kind": "constant", "id": "constant|Percent|1|0|string||\uE132|h508f809e8498c8b800612dd80253420b0ba1a4c7d4bbebfd27bf93472a910430", "signature": "public const string Percent = \u0022\\uE132\u0022", "value": "\uE132" }, { "name": "Phone", "kind": "constant", "id": "constant|Phone|1|0|string||\uE133|h331bff306f836e37141d783542e6840134bc2a8aa81be70402c100efe5e0e082", "signature": "public const string Phone = \u0022\\uE133\u0022", "value": "\uE133" }, { "name": "Play", "kind": "constant", "id": "constant|Play|1|0|string||\uE13C|h335e1fb9266c845f81cff8ef361614523089706b1f1e692196d59af9b9aadf57", "signature": "public const string Play = \u0022\\uE13C\u0022", "value": "\uE13C" }, { "name": "Plus", "kind": "constant", "id": "constant|Plus|1|0|string||\uE13D|h06bddead0a8e95082f386380dcf459ea8576b829a673b9130816ec2400b03c16", "signature": "public const string Plus = \u0022\\uE13D\u0022", "value": "\uE13D" }, { "name": "PlusCircle", "kind": "constant", "id": "constant|PlusCircle|1|0|string||\uE081|hda1d13bc58d5dee1c858b68744ab32397fd17c70e91f8effbf8c7c88d0a0e40c", "signature": "public const string PlusCircle = \u0022\\uE081\u0022", "value": "\uE081" }, { "name": "Printer", "kind": "constant", "id": "constant|Printer|1|0|string||\uE141|h515fcfc132460e684c852a21373b35511d27412f8cbff0cc806b3c64467e278e", "signature": "public const string Printer = \u0022\\uE141\u0022", "value": "\uE141" }, { "name": "Radio", "kind": "constant", "id": "constant|Radio|1|0|string||\uE142|h72aad404107aae757ac163aef6141591d2f2ce09a30a5223675eba239d29b4e3", "signature": "public const string Radio = \u0022\\uE142\u0022", "value": "\uE142" }, { "name": "Redo2", "kind": "constant", "id": "constant|Redo2|1|0|string||\uE2A0|h964646a6cf8e8b25b333268dadc4fb1edea064e60798f05728aa0da06ad85f10", "signature": "public const string Redo2 = \u0022\\uE2A0\u0022", "value": "\uE2A0" }, { "name": "RefreshCw", "kind": "constant", "id": "constant|RefreshCw|1|0|string||\uE145|h2532037d5aa2277df1b0520de1abe286da30b471ed8f724ecf1f3e46f3814788", "signature": "public const string RefreshCw = \u0022\\uE145\u0022", "value": "\uE145" }, { "name": "Repeat", "kind": "constant", "id": "constant|Repeat|1|0|string||\uE146|h26a64781c40ed42b2e13691c512e7c0a5ff4da07e5552a6f4e21fd346bddcebb", "signature": "public const string Repeat = \u0022\\uE146\u0022", "value": "\uE146" }, { "name": "Rocket", "kind": "constant", "id": "constant|Rocket|1|0|string||\uE286|ha78f55071189a3cf030284741a51bc7bb9ed27c4ad44422acab44095639a1ffc", "signature": "public const string Rocket = \u0022\\uE286\u0022", "value": "\uE286" }, { "name": "RotateCcw", "kind": "constant", "id": "constant|RotateCcw|1|0|string||\uE148|hcbcbc4a65d18d9b359f6253e74f7d5c4aca425c96b366f6d3fdaea9b2a0d8f3e", "signature": "public const string RotateCcw = \u0022\\uE148\u0022", "value": "\uE148" }, { "name": "Save", "kind": "constant", "id": "constant|Save|1|0|string||\uE14D|h24b9c87c2cef9cd3583b5b394f0a6e462516e29d4e5c758b8726af36608cd868", "signature": "public const string Save = \u0022\\uE14D\u0022", "value": "\uE14D" }, { "name": "Scissors", "kind": "constant", "id": "constant|Scissors|1|0|string||\uE14E|h9325b7687ec0c6c3bf4c7fac8c9c1c44efba6765cf5f30a6d55d1cc9bee8b6f0", "signature": "public const string Scissors = \u0022\\uE14E\u0022", "value": "\uE14E" }, { "name": "Search", "kind": "constant", "id": "constant|Search|1|0|string||\uE151|h18fab552379e40d60171c508fdf3ff9478dca979e23554b1620c0e4164555378", "signature": "public const string Search = \u0022\\uE151\u0022", "value": "\uE151" }, { "name": "Send", "kind": "constant", "id": "constant|Send|1|0|string||\uE152|h0b77d0be923a4c9bf6da00589cbf4323752c011b143b428fa19a7cc6959fcfba", "signature": "public const string Send = \u0022\\uE152\u0022", "value": "\uE152" }, { "name": "Server", "kind": "constant", "id": "constant|Server|1|0|string||\uE153|h3641c466ba976050d4c546ab79b437729624609f7aaddee86684cc06f3a23357", "signature": "public const string Server = \u0022\\uE153\u0022", "value": "\uE153" }, { "name": "Settings", "kind": "constant", "id": "constant|Settings|1|0|string||\uE154|ha1dfa80a41cfa93e688c7e8a1b06bd8ade0209ed50011e7a9bddf93c36862937", "signature": "public const string Settings = \u0022\\uE154\u0022", "value": "\uE154" }, { "name": "Share2", "kind": "constant", "id": "constant|Share2|1|0|string||\uE156|h444e447a9f9b61f2267618b7b38ba8b760f373636e2c4804b99bca18b9821a22", "signature": "public const string Share2 = \u0022\\uE156\u0022", "value": "\uE156" }, { "name": "Shield", "kind": "constant", "id": "constant|Shield|1|0|string||\uE158|h1d743c0cabff80fbdeeb4a22129b29e7d7a8fcd7164012956dfc104a5a9e244a", "signature": "public const string Shield = \u0022\\uE158\u0022", "value": "\uE158" }, { "name": "ShoppingCart", "kind": "constant", "id": "constant|ShoppingCart|1|0|string||\uE15C|hc17e8930d7d0b6501e5ebf9b349d73a2717053b7af9a473f13ae27bdc8d308c6", "signature": "public const string ShoppingCart = \u0022\\uE15C\u0022", "value": "\uE15C" }, { "name": "Shuffle", "kind": "constant", "id": "constant|Shuffle|1|0|string||\uE15E|h6bd7fd2707901794d66ce8895fd762abfe6bf945847dd32f34f738975cda559b", "signature": "public const string Shuffle = \u0022\\uE15E\u0022", "value": "\uE15E" }, { "name": "SkipBack", "kind": "constant", "id": "constant|SkipBack|1|0|string||\uE15F|hc2b533f0ef6ddd4dca3e4964825a902ecd00b5e221f9f8fcd45f0eeffd7b9c76", "signature": "public const string SkipBack = \u0022\\uE15F\u0022", "value": "\uE15F" }, { "name": "SkipForward", "kind": "constant", "id": "constant|SkipForward|1|0|string||\uE160|h19611d66a2ba3d61b5d3ff5cc3d7104097d0bb8c8beb36f9a814bf6dfab92aab", "signature": "public const string SkipForward = \u0022\\uE160\u0022", "value": "\uE160" }, { "name": "SlidersHorizontal", "kind": "constant", "id": "constant|SlidersHorizontal|1|0|string||\uE29A|h4500d15f4784c2ea6ae38aae5e5a86bfa3cb8e6cbf4009c69dc0400f4aeaae19", "signature": "public const string SlidersHorizontal = \u0022\\uE29A\u0022", "value": "\uE29A" }, { "name": "Smile", "kind": "constant", "id": "constant|Smile|1|0|string||\uE164|hae9d58f7e77003c94cd7af2d855849fd77337a48046d5918e03b3091c1efd4a7", "signature": "public const string Smile = \u0022\\uE164\u0022", "value": "\uE164" }, { "name": "Sparkles", "kind": "constant", "id": "constant|Sparkles|1|0|string||\uE412|hbf4313c2486fc9fa972d91279059edbbcea4a786ac5618875ae7fc2b84f98c2f", "signature": "public const string Sparkles = \u0022\\uE412\u0022", "value": "\uE412" }, { "name": "Square", "kind": "constant", "id": "constant|Square|1|0|string||\uE167|h4885b7f76cb0306f27ec79c3333f518dc1c9eba2bbb1436ec6917a2822f4f62a", "signature": "public const string Square = \u0022\\uE167\u0022", "value": "\uE167" }, { "name": "SquareCheck", "kind": "constant", "id": "constant|SquareCheck|1|0|string||\uE559|hef9cba6b7afd93e11e5e4d7c62ab7472b34dcfa36a2464e52ab121ef039ce896", "signature": "public const string SquareCheck = \u0022\\uE559\u0022", "value": "\uE559" }, { "name": "SquarePen", "kind": "constant", "id": "constant|SquarePen|1|0|string||\uE172|h30ca6f7be695c045b912174c930a2f581d792e680d31a13dbe556feabd86ca55", "signature": "public const string SquarePen = \u0022\\uE172\u0022", "value": "\uE172" }, { "name": "SquareTerminal", "kind": "constant", "id": "constant|SquareTerminal|1|0|string||\uE20A|h2a0267518240d2994d438edcd0ded11459f4af734f4c458aed5df302d428a470", "signature": "public const string SquareTerminal = \u0022\\uE20A\u0022", "value": "\uE20A" }, { "name": "Star", "kind": "constant", "id": "constant|Star|1|0|string||\uE176|hd978f7d25c97fd63c69c95119f71e5eae46a259ab0e2c659e77d284e5b78256e", "signature": "public const string Star = \u0022\\uE176\u0022", "value": "\uE176" }, { "name": "Sun", "kind": "constant", "id": "constant|Sun|1|0|string||\uE178|ha4ee382078ab14819babee115dbf060cfb732e84ff8e60fe9601d86c20f76c5f", "signature": "public const string Sun = \u0022\\uE178\u0022", "value": "\uE178" }, { "name": "Tag", "kind": "constant", "id": "constant|Tag|1|0|string||\uE17F|hca49e98804f2e7790148cf445b3feb3635e3433f054af46a6f3e1bdf052e107c", "signature": "public const string Tag = \u0022\\uE17F\u0022", "value": "\uE17F" }, { "name": "Target", "kind": "constant", "id": "constant|Target|1|0|string||\uE180|h3bba0fd4c0cef129f74266e3ae2f6b1b2807f49ac124dceb94ef177e6155f3d0", "signature": "public const string Target = \u0022\\uE180\u0022", "value": "\uE180" }, { "name": "Terminal", "kind": "constant", "id": "constant|Terminal|1|0|string||\uE181|hd8bbe7cd5f3714dd81b6d0e492c23c42a5bd7bfc8520b7f39d1f4000e1ad4354", "signature": "public const string Terminal = \u0022\\uE181\u0022", "value": "\uE181" }, { "name": "ThumbsDown", "kind": "constant", "id": "constant|ThumbsDown|1|0|string||\uE189|h9b5c6339ea1b0c206cd0281afcc8861b708db5aabc1b79d4aa0ff6620f5a48bc", "signature": "public const string ThumbsDown = \u0022\\uE189\u0022", "value": "\uE189" }, { "name": "ThumbsUp", "kind": "constant", "id": "constant|ThumbsUp|1|0|string||\uE18A|hce30df47f4b77cc3720c8fc07a6fe6b45ef74c84931addc58593a86014135caa", "signature": "public const string ThumbsUp = \u0022\\uE18A\u0022", "value": "\uE18A" }, { "name": "Trash2", "kind": "constant", "id": "constant|Trash2|1|0|string||\uE18E|h444799a5b8986b5b4c62700e2d91867db93020047981d83c6b9078ca828e7267", "signature": "public const string Trash2 = \u0022\\uE18E\u0022", "value": "\uE18E" }, { "name": "TrendingDown", "kind": "constant", "id": "constant|TrendingDown|1|0|string||\uE190|h6d11a36355b886e94a446a0f958fb55802c1ba9d21c06879dea99fb083b2a515", "signature": "public const string TrendingDown = \u0022\\uE190\u0022", "value": "\uE190" }, { "name": "TrendingUp", "kind": "constant", "id": "constant|TrendingUp|1|0|string||\uE191|hcde1fe51a8b18e17ed3b494c5e5a33c225936713c95b9252cc2f092ffdc89abf", "signature": "public const string TrendingUp = \u0022\\uE191\u0022", "value": "\uE191" }, { "name": "TriangleAlert", "kind": "constant", "id": "constant|TriangleAlert|1|0|string||\uE193|h963f5a130f0663fc09c97f452c07fb9fd61cb610b3d03ce63c6915a2b55af832", "signature": "public const string TriangleAlert = \u0022\\uE193\u0022", "value": "\uE193" }, { "name": "Type", "kind": "constant", "id": "constant|Type|1|0|string||\uE198|h1328c380cb91a71d7120708846dbfacd6b48b39530e94463e5851cc0873f6660", "signature": "public const string Type = \u0022\\uE198\u0022", "value": "\uE198" }, { "name": "Underline", "kind": "constant", "id": "constant|Underline|1|0|string||\uE19A|h645bace764c9e3e97933964e50d83418694fc013ded435ce785b5e615eacc063", "signature": "public const string Underline = \u0022\\uE19A\u0022", "value": "\uE19A" }, { "name": "Undo2", "kind": "constant", "id": "constant|Undo2|1|0|string||\uE2A1|h18369df45d1ccf896965e003a9522d40e1f7b6117ddf2b43f17d00960a39da02", "signature": "public const string Undo2 = \u0022\\uE2A1\u0022", "value": "\uE2A1" }, { "name": "Unlock", "kind": "constant", "id": "constant|Unlock|1|0|string||\uE10C|h15d45e734b4489f9fca4efb526cf4489b18b32c185313104fa45a65e9ee9a7a7", "signature": "public const string Unlock = \u0022\\uE10C\u0022", "value": "\uE10C" }, { "name": "Upload", "kind": "constant", "id": "constant|Upload|1|0|string||\uE19E|h01554d33f9ca872b5f8f3b204c56a26978d9c1b699eed2cd0efd08f8da8829cf", "signature": "public const string Upload = \u0022\\uE19E\u0022", "value": "\uE19E" }, { "name": "User", "kind": "constant", "id": "constant|User|1|0|string||\uE19F|h874af7f139ecc20518b3d82b1b358702caf46198cefcb78f05da9885cac701e4", "signature": "public const string User = \u0022\\uE19F\u0022", "value": "\uE19F" }, { "name": "UserPlus", "kind": "constant", "id": "constant|UserPlus|1|0|string||\uE1A2|ha433ba3eb8acfeeea9059ac9ee5011cc18b29f8d15753b4f3110300c130a6af7", "signature": "public const string UserPlus = \u0022\\uE1A2\u0022", "value": "\uE1A2" }, { "name": "Users", "kind": "constant", "id": "constant|Users|1|0|string||\uE1A4|h9ef8f13f972574e2144a7d7c4376d8fb740e719f780f2a201d4ac0d0a1b650d4", "signature": "public const string Users = \u0022\\uE1A4\u0022", "value": "\uE1A4" }, { "name": "Video", "kind": "constant", "id": "constant|Video|1|0|string||\uE1A5|h4ce3282b7aec6764a6c5cd5e66ded016bb6873a620b756c5e95b067715bf808c", "signature": "public const string Video = \u0022\\uE1A5\u0022", "value": "\uE1A5" }, { "name": "Volume2", "kind": "constant", "id": "constant|Volume2|1|0|string||\uE1AB|hfce6909e57b8242ee62e4ee6ff81ee4f6bdf024472dbb5ff69a268f5ac68d0e7", "signature": "public const string Volume2 = \u0022\\uE1AB\u0022", "value": "\uE1AB" }, { "name": "VolumeX", "kind": "constant", "id": "constant|VolumeX|1|0|string||\uE1AC|he6d8e29b018ed70f81cf793af43047bb0c79f5c2e9db95afd198dfe88868c03a", "signature": "public const string VolumeX = \u0022\\uE1AC\u0022", "value": "\uE1AC" }, { "name": "Wallet", "kind": "constant", "id": "constant|Wallet|1|0|string||\uE204|h3bd56acf73384a92b12fb1f7e381b1af46d1d98411dd52614dfd9afee68f9c27", "signature": "public const string Wallet = \u0022\\uE204\u0022", "value": "\uE204" }, { "name": "Wifi", "kind": "constant", "id": "constant|Wifi|1|0|string||\uE1AE|h800108e86f353c47649620bc8e77c4362695c9319bdfc3c7496d71a66478f76a", "signature": "public const string Wifi = \u0022\\uE1AE\u0022", "value": "\uE1AE" }, { "name": "X", "kind": "constant", "id": "constant|X|1|0|string||\uE1B2|hf735ddc7b53c38d2a3635e61f2f0afad4321b7338f78c88a2d57f8da32f7ad52", "signature": "public const string X = \u0022\\uE1B2\u0022", "value": "\uE1B2" }, { "name": "Zap", "kind": "constant", "id": "constant|Zap|1|0|string||\uE1B4|h2f90946cfe4ea40cc06b32c0a682124997026f6ce26c8548279734e25582b32f", "signature": "public const string Zap = \u0022\\uE1B4\u0022", "value": "\uE1B4" }, { "name": "ZoomIn", "kind": "constant", "id": "constant|ZoomIn|1|0|string||\uE1B6|h11291b6686a09424204df82cf2c780bbed6fd19dc05d7d0af797901d63a55e2b", "signature": "public const string ZoomIn = \u0022\\uE1B6\u0022", "value": "\uE1B6" }, { "name": "ZoomOut", "kind": "constant", "id": "constant|ZoomOut|1|0|string||\uE1B7|hf2faba0e2aae00c6f2e6c8361a09e46fff910a412b8b1566bac5285c976cb7f3", "signature": "public const string ZoomOut = \u0022\\uE1B7\u0022", "value": "\uE1B7" }] }, + { "name": "CuiSharp.IdScope", "displayName": "IdScope", "kind": "ref struct", "summary": "Pushes an id onto CUI\u0027s id stack: every child created inside gets its ids mixed with this one, so identical labels in different rows stay distinct. Use using; disposal pops, including on exceptions.", "members": [{ "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Pops the id. Disposing the same instance again does nothing." }] }, + { "name": "CuiSharp.ImageOpts", "displayName": "ImageOpts", "kind": "struct", "summary": "cui_image_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tint", "kind": "field", "id": "field|Tint|0|0|Color|||h4c1e63030135daa3aaeaa4caac83904965fe369b39c4dd59e42da4a0203e5937", "signature": "public Color Tint", "summary": "cui_color tint" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "float radius" }] }, + { "name": "CuiSharp.ImageView", "displayName": "ImageView", "kind": "struct", "summary": "cui_image_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float Zoom;float Cx = default;float Cy = default||h50b0571064dbf35f0978f89f10193589b0d9b0d069d013e4fd3faf000fece541", "signature": "ImageView(float Zoom, float Cx = default, float Cy = default)", "parameters": [{ "name": "Zoom", "type": "float" }, { "name": "Cx", "type": "float", "default": "default" }, { "name": "Cy", "type": "float", "default": "default" }] }, { "name": "Cx", "kind": "field", "id": "field|Cx|0|0|float|||ha089bd3bc9b64b88c76a4d49417464e60089fa8c4949692935cd9a1cbeeb26f2", "signature": "public float Cx", "summary": "the image point at the middle of the view, in pixels" }, { "name": "Cy", "kind": "field", "id": "field|Cy|0|0|float|||h47bd658ecc744271b6a80f35df93f81c2391730563046a45c3923e15cf53aceb", "signature": "public float Cy", "summary": "the image point at the middle of the view, in pixels" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "screen points per image pixel; 0 fits the image in the view" }] }, + { "name": "CuiSharp.ImageViewerOpts", "displayName": "ImageViewerOpts", "kind": "struct", "summary": "cui_image_viewer_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default the width it gets and 360" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default the width it gets and 360" }, { "name": "Checkerboard", "kind": "field", "id": "field|Checkerboard|0|0|bool|||h93bd131a8766c8dc59ee9e673b6ee411d7f97b90dcffaca4012f68b9c73eaa2b", "signature": "public bool Checkerboard", "summary": "a grid behind transparent images" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|bool|||h860df392a169878debf9e5d580124ccf63bf097014494370a8967baea8fd1225", "signature": "public bool NoToolbar", "summary": "the zoom buttons and percentage in the corner" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "default 16 (1600%)" }] }, + { "name": "CuiSharp.InlineEditOpts", "displayName": "InlineEditOpts", "kind": "struct", "summary": "cui_inline_edit_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font font" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.InputOpts", "displayName": "InputOpts", "kind": "struct", "summary": "cui_input_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "AutoFocus", "kind": "field", "id": "field|AutoFocus|0|0|bool|||h601f2630021b0c0e1d2b6721c001025a62214f3f2addd79686868f8880b04eff", "signature": "public bool AutoFocus", "summary": "_Bool autofocus" }, { "name": "Clearable", "kind": "field", "id": "field|Clearable|0|0|bool|||h6c109d13986a73e984d4593cc36a35a869c3dd971ed04225b9d50e228461fced", "signature": "public bool Clearable", "summary": "x button when not empty" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Password", "kind": "field", "id": "field|Password|0|0|bool|||h50eb3f60189d83d6114de9b4aed27a0c5bd20a485faa81345174d38ce81760e1", "signature": "public bool Password", "summary": "_Bool password" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "textarea: height in points; negative fills the space" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|string?|||h0b7f7e3a629b91e7b6cf4f9562657aad586fd4666941bbac0e0e8fccbc0ea31d", "signature": "public string? Error", "summary": "error text below (red)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|string?|||h6e4db358e5bb7cc3e8ac0f128ae742d77d252775d935f95c1c7492d00fc7cd97", "signature": "public string? Hint", "summary": "helper text below" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "leading icon" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "label above the field" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Prefix", "kind": "field", "id": "field|Prefix|0|0|string?|||ha89c8f719381155b96917a6c6badfc774eb4e767b8c9d68948547da7457f51b8", "signature": "public string? Prefix", "summary": "muted text before the value, e.g. \u0022$\u0022 or \u0022https://\u0022" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "muted text after the value, e.g. \u0022USD\u0022 or \u0022kg\u0022" }] }, + { "name": "CuiSharp.InputResult", "displayName": "InputResult", "kind": "struct", "summary": "What a text field reported this frame. CUI returns these as bit flags; the struct keeps them readable and prevents an int being mistaken for a count or an index.", "members": [{ "name": "Any", "kind": "property", "id": "property|Any|0|0|bool||get;|h930dcd2224677e27a1cda693bd9514b225687a6bdad27e9d226bb0aeae366e00", "signature": "bool Any { get; }", "summary": "True when anything at all was reported." }, { "name": "Blurred", "kind": "property", "id": "property|Blurred|0|0|bool||get;|hd3bf2df3ff712050fbecea60d95b7dfa78bb64388198358d48e99d4f1b489926", "signature": "bool Blurred { get; }", "summary": "The field lost keyboard focus this frame." }, { "name": "Changed", "kind": "property", "id": "property|Changed|0|0|bool||get;|hea4ecece0ae8756575c834ca7f9d9eada8b4728eabb34a32ec877cd8bf490ef5", "signature": "bool Changed { get; }", "summary": "The user edited the text; the value was written back." }, { "name": "Focused", "kind": "property", "id": "property|Focused|0|0|bool||get;|h91b314080731fb3280cc6476dac3288f9a114bd7e0e6bfcc7e7a57b0c4726903", "signature": "bool Focused { get; }", "summary": "The field gained keyboard focus this frame." }, { "name": "Submitted", "kind": "property", "id": "property|Submitted|0|0|bool||get;|h26a74337803e726e5b1481c208d421b95ab55ce5d076670fe5766ab429753042", "signature": "bool Submitted { get; }", "summary": "The user pressed Enter (or the field\u0027s submit gesture)." }, { "name": "Flags", "kind": "property", "id": "property|Flags|0|0|int||get;|he59986d855236c1155889b5b622053bf03d3ec822a5a7d91e9995b7810773a77", "signature": "int Flags { get; }", "summary": "The raw flag bits, for code that must forward them unchanged." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.InspectorOpts", "displayName": "InspectorOpts", "kind": "struct", "summary": "cui_inspector_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "LabelWidth", "kind": "field", "id": "field|LabelWidth|0|0|float|||h993f466ab627a21c24b5cbf05bd27e3424e345f9dda31611b0dbd719a33e2e12", "signature": "public float LabelWidth", "summary": "initial label column in points, default 38% of the width" }] }, + { "name": "CuiSharp.Interop.Native", "displayName": "Native", "kind": "static class", "summary": "Raw P/Invoke for cui.dll: one method per CUI_API function.", "members": [{ "name": "GetAccent", "kind": "method", "id": "method|GetAccent|1|0|Accent|nint ui||h4b5f008e77f36e753c29f584e84c7e8249ea899a16121c4a9ab6a5e3d2e462d6", "signature": "static Accent GetAccent(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_accent" }, { "name": "GetCursor", "kind": "method", "id": "method|GetCursor|1|0|Cursor|nint ui||h9592bd795030ec6f07a1b68093cf60e0ddb49ad084262abef2006bc6c6c5e263", "signature": "static Cursor GetCursor(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_cursor" }, { "name": "FontLoadFile", "kind": "method", "id": "method|FontLoadFile|1|0|Font|nint ui;nint path||h45e3467937e6440386ba379704bca3b0aca47850d974f4abb9c8c86279f26276", "signature": "static Font FontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_font_load_file" }, { "name": "FontLoadMemory", "kind": "method", "id": "method|FontLoadMemory|1|0|Font|nint ui;nint data;ulong size;byte copy||h7bd2aeb6a6f438dd3e4fbc9e85d77f5d60618c942b9c2fbecbbe2572f9df9c94", "signature": "static Font FontLoadMemory(nint ui, nint data, ulong size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "copy", "type": "byte" }], "summary": "cui_font_load_memory" }, { "name": "ApiExplorer", "kind": "method", "id": "method|ApiExplorer|1|0|NativeApiExplorerResult|nint ui;nint id;nint endpoints;int count;in NativeApiExplorerOpts opts||hf224b6dffe9e3dda0f0308f3af34d5a163659fc92533358cfa712df17d1a639e", "signature": "static NativeApiExplorerResult ApiExplorer(nint ui, nint id, nint endpoints, int count, in NativeApiExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "endpoints", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeApiExplorerOpts" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "method", "id": "method|Blame|1|0|NativeBlameResult|nint ui;nint id;nint lines;nint lineCommit;int lineCount;nint commits;int commitCount;in NativeBlameOpts opts||h4038398c6e9c93c3d4c2bfc504f5192b4a691dd68bae5b401920ae508d57dffd", "signature": "static NativeBlameResult Blame(nint ui, nint id, nint lines, nint lineCommit, int lineCount, nint commits, int commitCount, in NativeBlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "lines", "type": "nint" }, { "name": "lineCommit", "type": "nint" }, { "name": "lineCount", "type": "int" }, { "name": "commits", "type": "nint" }, { "name": "commitCount", "type": "int" }, { "name": "opts", "type": "in NativeBlameOpts" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|1|0|NativeCanvasResult|nint ui;nint id;NativeSize width;NativeSize height;nint paint;nint user;ulong userSize||hc6134bc6e4d8b8025bfcc63be9e9b102bf122eef9243f61f92baa834181a810f", "signature": "static NativeCanvasResult Canvas(nint ui, nint id, NativeSize width, NativeSize height, nint paint, nint user, ulong userSize)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "NativeSize" }, { "name": "paint", "type": "nint" }, { "name": "user", "type": "nint" }, { "name": "userSize", "type": "ulong" }], "summary": "cui_canvas" }, { "name": "CodeEditor", "kind": "method", "id": "method|CodeEditor|1|0|NativeCodeEditorResult|nint ui;nint id;nint buf;ulong cap;in NativeCodeEditorOpts opts||h195f4a778e60a790765ecf74340e03abe51e7077fc7c285531cf9a89eac5935d", "signature": "static NativeCodeEditorResult CodeEditor(nint ui, nint id, nint buf, ulong cap, in NativeCodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeCodeEditorOpts" }], "summary": "cui_code_editor_ex" }, { "name": "Alpha", "kind": "method", "id": "method|Alpha|1|0|NativeColor|NativeColor c;float alphaMultiplier||h6f6dc7f18231ffd4e72a98ba480ab083b4d26389e8ae083debcf59c9dd9da08f", "signature": "static NativeColor Alpha(NativeColor c, float alphaMultiplier)", "parameters": [{ "name": "c", "type": "NativeColor" }, { "name": "alphaMultiplier", "type": "float" }], "summary": "cui_alpha" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|1|0|NativeColor|nint ui;NativeColor c||h54ccc38136527a38949cb0d73367b6a6e3137b549bc57ee96e1a2a475d8f4089", "signature": "static NativeColor ColorOf(nint ui, NativeColor c)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "c", "type": "NativeColor" }], "summary": "cui_color_of" }, { "name": "GradientEval", "kind": "method", "id": "method|GradientEval|1|0|NativeColor|nint stops;int count;float t||ha841b21375b91451bf65ef779e13748e49ce1347627211578ad95f0700a1616d", "signature": "static NativeColor GradientEval(nint stops, int count, float t)", "parameters": [{ "name": "stops", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "t", "type": "float" }], "summary": "cui_gradient_eval" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|NativeColor|NativeColor a;NativeColor b;float t||hda3f5edb5311ba1769ae795a7dfd6a98f20c60db5bb606d95b5810cbc9d83d4a", "signature": "static NativeColor Mix(NativeColor a, NativeColor b, float t)", "parameters": [{ "name": "a", "type": "NativeColor" }, { "name": "b", "type": "NativeColor" }, { "name": "t", "type": "float" }], "summary": "cui_mix" }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|NativeColor|float l;float c;float hDegrees;float alpha||h26e67a65df209683f5291a98b82c8a5cabd7337b202d5d5c21c2ddc07fcb2232", "signature": "static NativeColor Oklch(float l, float c, float hDegrees, float alpha)", "parameters": [{ "name": "l", "type": "float" }, { "name": "c", "type": "float" }, { "name": "hDegrees", "type": "float" }, { "name": "alpha", "type": "float" }], "summary": "cui_oklch" }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|1|0|NativeColor|nint ui;Token token||h90e46c89d5e70f5f21daa0f9b683a793e619fecb1ab9c0a299de0471b3426f32", "signature": "static NativeColor TokenColor(nint ui, Token token)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "token", "type": "Token" }], "summary": "cui_token_color" }, { "name": "CommitGraph", "kind": "method", "id": "method|CommitGraph|1|0|NativeCommitGraphResult|nint ui;nint id;nint commits;int count;in NativeCommitGraphOpts opts||h45d73cd59f1de127d447c740e1830e6b5a5b060bba456bfafde41fa92f64c74e", "signature": "static NativeCommitGraphResult CommitGraph(nint ui, nint id, nint commits, int count, in NativeCommitGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "commits", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCommitGraphOpts" }], "summary": "cui_commit_graph_ex" }, { "name": "Coverage", "kind": "method", "id": "method|Coverage|1|0|NativeCoverageResult|nint ui;nint id;nint files;int count;in NativeCoverageOpts opts||h1b0a2f1fdc7808920e72995a8476b64bef4b6f5f5a6712da0ad04749a085826a", "signature": "static NativeCoverageResult Coverage(nint ui, nint id, nint files, int count, in NativeCoverageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "files", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCoverageOpts" }], "summary": "cui_coverage_ex" }, { "name": "CurveEditor", "kind": "method", "id": "method|CurveEditor|1|0|NativeCurveResult|nint ui;nint id;nint keys;ref int count;int capacity;in NativeCurveOpts opts||h96718fdb1bc3448845d2464d7bb341aaa324a86a9faea4496630c39fb7ca169a", "signature": "static NativeCurveResult CurveEditor(nint ui, nint id, nint keys, ref int count, int capacity, in NativeCurveOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "keys", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeCurveOpts" }], "summary": "cui_curve_editor_ex" }, { "name": "DateFromDays", "kind": "method", "id": "method|DateFromDays|1|0|NativeDate|int days||h1feda9236ea087efd2070df1a696cc0677817502ff785ff54c56c9bded66c802", "signature": "static NativeDate DateFromDays(int days)", "parameters": [{ "name": "days", "type": "int" }], "summary": "cui_date_from_days" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|1|0|NativeDate|||hb0af2f41da02d6baf40ca220344dbbc0745b0b07b0017d8945ba60b14f23d7bf", "signature": "static NativeDate DateToday()", "summary": "cui_date_today" }, { "name": "DiffView", "kind": "method", "id": "method|DiffView|1|0|NativeDiffResult|nint ui;nint id;nint oldText;nint newText;in NativeDiffOpts opts||h9938cb3dcf99694ce2c1936767de75bdf0ab18f91c7c4f698ac795cc563ccbf8", "signature": "static NativeDiffResult DiffView(nint ui, nint id, nint oldText, nint newText, in NativeDiffOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "oldText", "type": "nint" }, { "name": "newText", "type": "nint" }, { "name": "opts", "type": "in NativeDiffOpts" }], "summary": "cui_diff_view_ex" }, { "name": "DocTabs", "kind": "method", "id": "method|DocTabs|1|0|NativeDocTabsResult|nint ui;nint id;nint tabs;int count;ref int selected;in NativeDocTabsOpts opts||hecb3160d850e49f639702d27b881b59b7defdcb80863fe9009dccc178a9136a2", "signature": "static NativeDocTabsResult DocTabs(nint ui, nint id, nint tabs, int count, ref int selected, in NativeDocTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tabs", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeDocTabsOpts" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "method", "id": "method|FeatureFlags|1|0|NativeFeatureFlagsResult|nint ui;nint id;nint flags;int count;nint envs;int envCount;in NativeFeatureFlagsOpts opts||hb5efa0dddbc12664f0d095e30db5d75f7fa84690d18c2b2a95e8e380c02a06ea", "signature": "static NativeFeatureFlagsResult FeatureFlags(nint ui, nint id, nint flags, int count, nint envs, int envCount, in NativeFeatureFlagsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "flags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "envs", "type": "nint" }, { "name": "envCount", "type": "int" }, { "name": "opts", "type": "in NativeFeatureFlagsOpts" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "method", "id": "method|FileBrowser|1|0|NativeFileBrowserResult|nint ui;nint id;nint path;ulong pathCap;in NativeFileBrowserOpts opts||heac2ded2d8b83ba7f18e3c053fcbe8074ae034c90d0046ba4d5ec9b9824f1821", "signature": "static NativeFileBrowserResult FileBrowser(nint ui, nint id, nint path, ulong pathCap, in NativeFileBrowserOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "pathCap", "type": "ulong" }, { "name": "opts", "type": "in NativeFileBrowserOpts" }], "summary": "cui_file_browser_ex" }, { "name": "FlameGraph", "kind": "method", "id": "method|FlameGraph|1|0|NativeFlameResult|nint ui;nint id;nint spans;int count;ref NativeFlameView view;ref int selected;in NativeFlameOpts opts||h572e9eae08f26d8c3ef0ce6dd6873004c38722dc8d44d901d89cf381a4bcad20", "signature": "static NativeFlameResult FlameGraph(nint ui, nint id, nint spans, int count, ref NativeFlameView view, ref int selected, in NativeFlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "view", "type": "ref NativeFlameView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeFlameOpts" }], "summary": "cui_flame_graph_ex" }, { "name": "GradientEditor", "kind": "method", "id": "method|GradientEditor|1|0|NativeGradientResult|nint ui;nint id;nint stops;ref int count;int capacity;in NativeGradientOpts opts||h8c5d8f1ee3133998b21568f32399f5f1066973b6fe35c0d2c046bde0f3711fa7", "signature": "static NativeGradientResult GradientEditor(nint ui, nint id, nint stops, ref int count, int capacity, in NativeGradientOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stops", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeGradientOpts" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "method", "id": "method|GraphView|1|0|NativeGraphResult|nint ui;nint id;nint nodes;int nodeCount;nint edges;int edgeCount;in NativeGraphOpts opts||hd5b1f3cf7868c7e999da3ea9b89f9abd50a2a2e5fa0cabce9dbf681f75d6c217", "signature": "static NativeGraphResult GraphView(nint ui, nint id, nint nodes, int nodeCount, nint edges, int edgeCount, in NativeGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "edges", "type": "nint" }, { "name": "edgeCount", "type": "int" }, { "name": "opts", "type": "in NativeGraphOpts" }], "summary": "cui_graph_view_ex" }, { "name": "HexView", "kind": "method", "id": "method|HexView|1|0|NativeHexResult|nint ui;nint id;nint data;ulong size;ref NativeHexSelection sel;in NativeHexViewOpts opts||hfd80550fdd3aa1f906c97b613488efc83cd1eca8ef7aee5efb6799e68782f406", "signature": "static NativeHexResult HexView(nint ui, nint id, nint data, ulong size, ref NativeHexSelection sel, in NativeHexViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "sel", "type": "ref NativeHexSelection" }, { "name": "opts", "type": "in NativeHexViewOpts" }], "summary": "cui_hex_view_ex" }, { "name": "Keymap", "kind": "method", "id": "method|Keymap|1|0|NativeKeymapResult|nint ui;nint id;nint bindings;int count;in NativeKeymapOpts opts||h9217cafc1fe775ad6698a0f05dd5582060c83090eedef5d953fbdf4293837498", "signature": "static NativeKeymapResult Keymap(nint ui, nint id, nint bindings, int count, in NativeKeymapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "bindings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeKeymapOpts" }], "summary": "cui_keymap_ex" }, { "name": "Markdown", "kind": "method", "id": "method|Markdown|1|0|NativeMarkdownResult|nint ui;nint id;nint text;in NativeMarkdownOpts opts||heaa94f7d43805d3025afbd720deb33d8585c24b46340d859317c44d35a8dc81a", "signature": "static NativeMarkdownResult Markdown(nint ui, nint id, nint text, in NativeMarkdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeMarkdownOpts" }], "summary": "cui_markdown_ex" }, { "name": "MonthCalendar", "kind": "method", "id": "method|MonthCalendar|1|0|NativeMonthResult|nint ui;nint id;ref NativeDate month;nint events;int count;in NativeMonthOpts opts||h44b8b3863faad3edc72fb84b70f78ff6c0786b4dbffd156203510cd11e19c2b8", "signature": "static NativeMonthResult MonthCalendar(nint ui, nint id, ref NativeDate month, nint events, int count, in NativeMonthOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "month", "type": "ref NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeMonthOpts" }], "summary": "cui_month_calendar_ex" }, { "name": "PathBar", "kind": "method", "id": "method|PathBar|1|0|NativePathBarResult|nint ui;nint id;nint segments;int count;in NativePathBarOpts opts||h91468a1041cda9c640d4d69a543f01f0eadaf8a0f81f1e0f31cc82613550c097", "signature": "static NativePathBarResult PathBar(nint ui, nint id, nint segments, int count, in NativePathBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segments", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePathBarOpts" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "method", "id": "method|Pipeline|1|0|NativePipelineResult|nint ui;nint id;nint stages;int stageCount;nint jobs;int jobCount;in NativePipelineOpts opts||h822fa481b7070f67b506e9542f7480a3c3e7b0682bcc85d6c91293d82634ca39", "signature": "static NativePipelineResult Pipeline(nint ui, nint id, nint stages, int stageCount, nint jobs, int jobCount, in NativePipelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "stageCount", "type": "int" }, { "name": "jobs", "type": "nint" }, { "name": "jobCount", "type": "int" }, { "name": "opts", "type": "in NativePipelineOpts" }], "summary": "cui_pipeline_ex" }, { "name": "Problems", "kind": "method", "id": "method|Problems|1|0|NativeProblemsResult|nint ui;nint id;nint diags;int count;in NativeProblemsOpts opts||h117f40fd2f6fef166ca95e09841a9367ad807c7ceb667067317604d7ebaaae04", "signature": "static NativeProblemsResult Problems(nint ui, nint id, nint diags, int count, in NativeProblemsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "diags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeProblemsOpts" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "method", "id": "method|FlameSpanRect|1|0|NativeRect|nint ui;uint flame;in NativeFlameSpan span||h40857a4a550d0690331d16f0f488573f3a49d975293a36369b1bf7c4d088bedc", "signature": "static NativeRect FlameSpanRect(nint ui, uint flame, in NativeFlameSpan span)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "flame", "type": "uint" }, { "name": "span", "type": "in NativeFlameSpan" }], "summary": "cui_flame_span_rect" }, { "name": "GetRect", "kind": "method", "id": "method|GetRect|1|0|NativeRect|nint ui;uint id||hfffd1bbdffac717a67f0184e99f213c780291e8ec750c8b06b21c9e1589aef60", "signature": "static NativeRect GetRect(nint ui, uint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }], "summary": "cui_get_rect" }, { "name": "LastRect", "kind": "method", "id": "method|LastRect|1|0|NativeRect|nint ui||hd3fce3194b991a66cf4c7eebf1b6f7cc7d75664cdc7eb24d369ed74fd947f6f3", "signature": "static NativeRect LastRect(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_rect" }, { "name": "RegexTester", "kind": "method", "id": "method|RegexTester|1|0|NativeRegexTesterResult|nint ui;nint id;nint pattern;ulong patternCap;nint text;ulong textCap;in NativeRegexTesterOpts opts||h203fbf6543aa6a0ad68392c581a214cb631fa795ffebd9e8568fa4ee95c3b2c5", "signature": "static NativeRegexTesterResult RegexTester(nint ui, nint id, nint pattern, ulong patternCap, nint text, ulong textCap, in NativeRegexTesterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pattern", "type": "nint" }, { "name": "patternCap", "type": "ulong" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }, { "name": "opts", "type": "in NativeRegexTesterOpts" }], "summary": "cui_regex_tester_ex" }, { "name": "GlIface", "kind": "method", "id": "method|GlIface|1|0|NativeRendererIface|nint r||h795e70c9de3d729a8866ef635bab08eeb83d4375a5f987962f843af30ddd3e6d", "signature": "static NativeRendererIface GlIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_iface" }, { "name": "SwIface", "kind": "method", "id": "method|SwIface|1|0|NativeRendererIface|nint r||h5464602ec3a20f54b913735aaa2ec3c5b7fe93367a5b041be05e6e377b4daeb0", "signature": "static NativeRendererIface SwIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_iface" }, { "name": "RequestBar", "kind": "method", "id": "method|RequestBar|1|0|NativeRequestBarResult|nint ui;nint id;ref int method;nint url;ulong cap;in NativeRequestBarOpts opts||h55fd7824c77defde52b87c7ec32097db0823c316062b8bb80d5188d9dcc3efd8", "signature": "static NativeRequestBarResult RequestBar(nint ui, nint id, ref int method, nint url, ulong cap, in NativeRequestBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "method", "type": "ref int" }, { "name": "url", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeRequestBarOpts" }], "summary": "cui_request_bar_ex" }, { "name": "SchedulePicker", "kind": "method", "id": "method|SchedulePicker|1|0|NativeScheduleResult|nint ui;nint id;nint cron;ulong cap;in NativeScheduleOpts opts||h52d0ab4e74edcf7384c11079a8130cc7df3000cd7abcf76f6e271f96181759e9", "signature": "static NativeScheduleResult SchedulePicker(nint ui, nint id, nint cron, ulong cap, in NativeScheduleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "cron", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeScheduleOpts" }], "summary": "cui_schedule_picker_ex" }, { "name": "StackTrace", "kind": "method", "id": "method|StackTrace|1|0|NativeStackTraceResult|nint ui;nint id;nint frames;int count;in NativeStackTraceOpts opts||h9f73202328ea1e1acd56bdbbb0145c51176116307ced16ae48c761e993751c43", "signature": "static NativeStackTraceResult StackTrace(nint ui, nint id, nint frames, int count, in NativeStackTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "frames", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeStackTraceOpts" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "method", "id": "method|Terminal|1|0|NativeTerminalResult|nint ui;nint id;ref NativeTerminalBuffer t;in NativeTerminalOpts opts||h542c3a2dd62619cc3ea7fe3ac18031b59cba9cfdc574ed6c5b0dd6b5b0fa11ad", "signature": "static NativeTerminalResult Terminal(nint ui, nint id, ref NativeTerminalBuffer t, in NativeTerminalOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "opts", "type": "in NativeTerminalOpts" }], "summary": "cui_terminal_ex" }, { "name": "TestExplorer", "kind": "method", "id": "method|TestExplorer|1|0|NativeTestExplorerResult|nint ui;nint id;nint items;int count;in NativeTestExplorerOpts opts||h9f9556409348b1762b26e56637cef03ff46bdee0a835046a3c6df37e7afef027", "signature": "static NativeTestExplorerResult TestExplorer(nint ui, nint id, nint items, int count, in NativeTestExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTestExplorerOpts" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|1|0|NativeTextMetrics|nint ui;Font font;float size;nint text;int len||hc0767d4a4f1ef0e4b660dee972d158dcdee74407c51c840bb833f43a4857ba5d", "signature": "static NativeTextMetrics MeasureText(nint ui, Font font, float size, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_measure_text" }, { "name": "TimeHistogram", "kind": "method", "id": "method|TimeHistogram|1|0|NativeTimeHistogramResult|nint ui;nint id;double start;double bucketSeconds;int buckets;nint series;int seriesCount;ref double selStart;ref double selEnd;in NativeTimeHistogramOpts opts||hfa1f5b5edf695e77944ae27c1a7d2971389e8adf5c2986b00bd0343fa941466f", "signature": "static NativeTimeHistogramResult TimeHistogram(nint ui, nint id, double start, double bucketSeconds, int buckets, nint series, int seriesCount, ref double selStart, ref double selEnd, in NativeTimeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "nint" }, { "name": "seriesCount", "type": "int" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "opts", "type": "in NativeTimeHistogramOpts" }], "summary": "cui_time_histogram_ex" }, { "name": "TimelineEditor", "kind": "method", "id": "method|TimelineEditor|1|0|NativeTimelineEditorResult|nint ui;nint id;nint tracks;int count;ref float time;in NativeTimelineEditorOpts opts||hb2351de7669631a8a067960970da082a535fcae1ee61308afd9d8e8a739fa48a", "signature": "static NativeTimelineEditorResult TimelineEditor(nint ui, nint id, nint tracks, int count, ref float time, in NativeTimelineEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "time", "type": "ref float" }, { "name": "opts", "type": "in NativeTimelineEditorOpts" }], "summary": "cui_timeline_editor_ex" }, { "name": "TraceView", "kind": "method", "id": "method|TraceView|1|0|NativeTraceResult|nint ui;nint id;nint tracks;int trackCount;nint spans;int spanCount;ref NativeTraceView view;ref int selected;in NativeTraceOpts opts||h73907b2dca89e0d041b59dfd17100da9cea8e43016feff734544ec106467a465", "signature": "static NativeTraceResult TraceView(nint ui, nint id, nint tracks, int trackCount, nint spans, int spanCount, ref NativeTraceView view, ref int selected, in NativeTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "trackCount", "type": "int" }, { "name": "spans", "type": "nint" }, { "name": "spanCount", "type": "int" }, { "name": "view", "type": "ref NativeTraceView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTraceOpts" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTableEnd", "kind": "method", "id": "method|TreeTableEnd|1|0|NativeTreeTableEvents|nint ui||h4eee805112b7850f0485af91222e57e0a8f2c649236ae73d46f82c976dc53c29", "signature": "static NativeTreeTableEvents TreeTableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_end" }, { "name": "Uptime", "kind": "method", "id": "method|Uptime|1|0|NativeUptimeResult|nint ui;nint id;nint services;int count;in NativeUptimeOpts opts||hc265bb0f05628c0fb22bbf75876b45305005dc6eac18ab16dfb505efd5f0da2f", "signature": "static NativeUptimeResult Uptime(nint ui, nint id, nint services, int count, in NativeUptimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "services", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeUptimeOpts" }], "summary": "cui_uptime_ex" }, { "name": "AppSize", "kind": "method", "id": "method|AppSize|1|0|NativeVec2|nint app||ha74729608d621b24bc8ffdd406a5b45ae9fa70dab961521f18833480ef16f6bd", "signature": "static NativeVec2 AppSize(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_size" }, { "name": "MousePos", "kind": "method", "id": "method|MousePos|1|0|NativeVec2|nint ui||hd2c7d87a1a27b098cfb7f49fa68afdafabac9d9acecf9d42a72652db8ea7f7f3", "signature": "static NativeVec2 MousePos(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_mouse_pos" }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|1|0|NativeVec2|nint ui||h655b0214496432d350fa7c5aa2dbfca82105134c4828a721a360598172ef33c0", "signature": "static NativeVec2 ViewportSize(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_viewport_size" }, { "name": "Waterfall", "kind": "method", "id": "method|Waterfall|1|0|NativeWaterfallResult|nint ui;nint id;nint requests;int count;in NativeWaterfallOpts opts||h36804244956e9d24e6feeb89cc3e7c1fb527ba4c1aa4e926e783be74cd6cdfce", "signature": "static NativeWaterfallResult Waterfall(nint ui, nint id, nint requests, int count, in NativeWaterfallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "requests", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaterfallOpts" }], "summary": "cui_waterfall_ex" }, { "name": "GetThemeMode", "kind": "method", "id": "method|GetThemeMode|1|0|Theme|nint ui||hd5dd420a6020ca9e2b3b03f97b96bc85c5a27efd6ee6df0eae33870895d7a9d3", "signature": "static Theme GetThemeMode(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_theme_mode" }, { "name": "AccordionBegin", "kind": "method", "id": "method|AccordionBegin|1|0|byte|nint ui;nint title;nint open||h59a40c85c4909ae585d78fc0410d19198504d98fdc3315c31c6b29cbd5093b22", "signature": "static byte AccordionBegin(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_accordion_begin" }, { "name": "Alert", "kind": "method", "id": "method|Alert|1|0|byte|nint ui;nint title;in NativeAlertOpts opts||h4a50e5754338f20bc39ed71731aa6b5f2a164fde306492214009bd2a0a9b6dcc", "signature": "static byte Alert(nint ui, nint title, in NativeAlertOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeAlertOpts" }], "summary": "cui_alert_ex" }, { "name": "AppFileDialog", "kind": "method", "id": "method|AppFileDialog|1|0|byte|nint app;in NativeFileDialogOpts opts;nint out;ulong cap||ha2ed469f269bf56b4592cc47e73904a0da56e866df8e7900ea115cdc6ee9f1f3", "signature": "static byte AppFileDialog(nint app, in NativeFileDialogOpts opts, nint @out, ulong cap)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "opts", "type": "in NativeFileDialogOpts" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_app_file_dialog" }, { "name": "AppFrame", "kind": "method", "id": "method|AppFrame|1|0|byte|nint app||he4db78bd95169682f895be0dff74b53e3973f2db55ce753f0d144b3beb0db873", "signature": "static byte AppFrame(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_frame" }, { "name": "AppIsSoftware", "kind": "method", "id": "method|AppIsSoftware|1|0|byte|nint app||h7cfe758e335174ee97ad36da7db9f00b8a23df3abdef176d7ee242cf54f423b0", "signature": "static byte AppIsSoftware(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_is_software" }, { "name": "AppOpenUrl", "kind": "method", "id": "method|AppOpenUrl|1|0|byte|nint url||ha4a1975a2f8bd8f16549e1c2e2d0fdb3377790f3b33115a0de136383555329f4", "signature": "static byte AppOpenUrl(nint url)", "parameters": [{ "name": "url", "type": "nint" }], "summary": "cui_app_open_url" }, { "name": "AppScreenshot", "kind": "method", "id": "method|AppScreenshot|1|0|byte|nint app;nint rgba;int width;int height||h3c30ad02d7c81cec1318052acb1ae7dffc5d7b4922a5a5b1a1e61dc3ca38b950", "signature": "static byte AppScreenshot(nint app, nint rgba, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_screenshot" }, { "name": "Banner", "kind": "method", "id": "method|Banner|1|0|byte|nint ui;nint text;nint open;in NativeBannerOpts opts||hb5ad03ccbefd63827bc917d6263f04db05dcdf2dbb1c4571eb9d4f94f5388d42", "signature": "static byte Banner(nint ui, nint text, nint open, in NativeBannerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeBannerOpts" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "method", "id": "method|Button|1|0|byte|nint ui;nint label;in NativeButtonOpts opts||hbf77c65cd58bceccdde70f6c89f7363b8da26191c316501dbe5bcdd8d43ac2b6", "signature": "static byte Button(nint ui, nint label, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "method", "id": "method|Calendar|1|0|byte|nint ui;nint id;ref NativeDate value||h95efe1a12806e2a8561314e3a70abd0ff38a240e350c2f061307438ff122ab4a", "signature": "static byte Calendar(nint ui, nint id, ref NativeDate value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }], "summary": "cui_calendar" }, { "name": "CardBegin", "kind": "method", "id": "method|CardBegin|1|0|byte|nint ui;in NativeCardOpts opts||h8eb89566776b1709be89f536ce55eef794eacc637d7c3737090c86333c2ae707", "signature": "static byte CardBegin(nint ui, in NativeCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeCardOpts" }], "summary": "cui_card_begin" }, { "name": "CarouselBegin", "kind": "method", "id": "method|CarouselBegin|1|0|byte|nint ui;nint id;int count;ref int index;in NativeCarouselOpts opts||hb18645d7f90ffa240dcb88b8de82f4d32e264fa620a19d90c2fd6da2e5cee0fd", "signature": "static byte CarouselBegin(nint ui, nint id, int count, ref int index, in NativeCarouselOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeCarouselOpts" }], "summary": "cui_carousel_begin" }, { "name": "Checkbox", "kind": "method", "id": "method|Checkbox|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hff3bc3ffdd5a33d31ff9b97fc872eb4f252bd3b9b1aace78eb72c45dd110e46e", "signature": "static byte Checkbox(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "method", "id": "method|Chip|1|0|byte|nint ui;nint label;nint selected;in NativeChipOpts opts||head6d3534ffead4ac5649c1e26da63fd27441e52ad599488313efd3171e7911a", "signature": "static byte Chip(nint ui, nint label, nint selected, in NativeChipOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeChipOpts" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "method", "id": "method|Citation|1|0|byte|nint ui;int number;in NativeSource source||hffed798222a8e812b80fd9a4f8de893f54f9aa2a9ba39b646c7fc4c36d97028f", "signature": "static byte Citation(nint ui, int number, in NativeSource source)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "number", "type": "int" }, { "name": "source", "type": "in NativeSource" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "method", "id": "method|ColorPicker|1|0|byte|nint ui;nint id;ref NativeColor value||h989743a93cec76d361912fe0c33e29894c7ec163dd928db2f27ddbdb49ad5854", "signature": "static byte ColorPicker(nint ui, nint id, ref NativeColor value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "method", "id": "method|ConfirmButton|1|0|byte|nint ui;nint label;in NativeConfirmOpts opts||h8f8604ad0f24f547d8d6d8e28fd22bc47b268f0f807bac020f240abd4080dcab", "signature": "static byte ConfirmButton(nint ui, nint label, in NativeConfirmOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmOpts" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "method", "id": "method|ConfirmPopover|1|0|byte|nint ui;nint id;in NativeConfirmPopoverOpts opts||hfd5da6244ccd11ef60923dd471ea00e6d60fd8d3c20af199c7ec8b39412c7e29", "signature": "static byte ConfirmPopover(nint ui, nint id, in NativeConfirmPopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmPopoverOpts" }], "summary": "cui_confirm_popover_ex" }, { "name": "ContextMenuBegin", "kind": "method", "id": "method|ContextMenuBegin|1|0|byte|nint ui;nint id||hbf71c286d5bec94ffe1f78068f50bcf6f4a63edd23157d4b17db003f83e58a19", "signature": "static byte ContextMenuBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_context_menu_begin" }, { "name": "ControlTile", "kind": "method", "id": "method|ControlTile|1|0|byte|nint ui;nint label;nint on;in NativeTileOpts opts||he10e62b5f2afeb2033d2a9ebe247f8cd89cb234fb240344bc1e9c9c4c5e11100", "signature": "static byte ControlTile(nint ui, nint label, nint on, in NativeTileOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "on", "type": "nint" }, { "name": "opts", "type": "in NativeTileOpts" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "method", "id": "method|CopyButton|1|0|byte|nint ui;nint id;nint text||h48aef3359811011144831ea4ef53df4f260c450ae1e3945f43837aaebb616498", "signature": "static byte CopyButton(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_copy_button" }, { "name": "CronNext", "kind": "method", "id": "method|CronNext|1|0|byte|nint cron;long after;int utcOffset;ref long next||h56b578400ea3104a21e21cd8839e108a8122060418bfd3101cd73d569ce1a8d7", "signature": "static byte CronNext(nint cron, long after, int utcOffset, ref long next)", "parameters": [{ "name": "cron", "type": "nint" }, { "name": "after", "type": "long" }, { "name": "utcOffset", "type": "int" }, { "name": "next", "type": "ref long" }], "summary": "cui_cron_next" }, { "name": "Cropper", "kind": "method", "id": "method|Cropper|1|0|byte|nint ui;nint id;ulong tex;int imageW;int imageH;ref NativeRect crop;in NativeCropperOpts opts||h0f3c82754b1aa325c333e0da9296028bd04b751c7ea105648c3227a7d9e31671", "signature": "static byte Cropper(nint ui, nint id, ulong tex, int imageW, int imageH, ref NativeRect crop, in NativeCropperOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref NativeRect" }, { "name": "opts", "type": "in NativeCropperOpts" }], "summary": "cui_cropper_ex" }, { "name": "DataGridBegin", "kind": "method", "id": "method|DataGridBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;int rowCount;ref int first;ref int last;in NativeGridOpts opts||h8592e38778819eb9396c680798d4a23f61ab9bb95e979589695c061d8a2c9bc3", "signature": "static byte DataGridBegin(nint ui, nint id, nint columns, int columnCount, int rowCount, ref int first, ref int last, in NativeGridOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "rowCount", "type": "int" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }, { "name": "opts", "type": "in NativeGridOpts" }], "summary": "cui_data_grid_begin_ex" }, { "name": "DataGridCellEdit", "kind": "method", "id": "method|DataGridCellEdit|1|0|byte|nint ui;nint buf;ulong cap||h259f45500a7384ea78f870c35bb16dae3b8d1379895634676845fa2876f6551d", "signature": "static byte DataGridCellEdit(nint ui, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_data_grid_cell_edit" }, { "name": "DataGridEdit", "kind": "method", "id": "method|DataGridEdit|1|0|byte|nint ui;nint buf;ulong cap||h92b7f342528f5ca7323049c885cd0adadb9e09de234418cf8f760bdff754e9a5", "signature": "static byte DataGridEdit(nint ui, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_data_grid_edit" }, { "name": "DataGridRow", "kind": "method", "id": "method|DataGridRow|1|0|byte|nint ui;int row||h17f96bb5d180e97edcb36108118e13a70709ad758013a1a088b598046886a76a", "signature": "static byte DataGridRow(nint ui, int row)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "method", "id": "method|DatePicker|1|0|byte|nint ui;nint id;ref NativeDate value;in NativeDateOpts opts||hd9d76b72b2af7c46bcbc08a04498bedac51208539abc4f8f01f7f4d614059494", "signature": "static byte DatePicker(nint ui, nint id, ref NativeDate value, in NativeDateOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }, { "name": "opts", "type": "in NativeDateOpts" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "method", "id": "method|DateRangePicker|1|0|byte|nint ui;nint id;ref NativeDateRange range;in NativeDateRangeOpts opts||h92533d23ef098f513ceea3b01553a6a49f16335ddfdb3eadc4ec0264e939998f", "signature": "static byte DateRangePicker(nint ui, nint id, ref NativeDateRange range, in NativeDateRangeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "opts", "type": "in NativeDateRangeOpts" }], "summary": "cui_date_range_picker_ex" }, { "name": "DialogBegin", "kind": "method", "id": "method|DialogBegin|1|0|byte|nint ui;nint title;nint open;in NativeDialogOpts opts||hd616f3e3c8148d7400e20e570bff72cb6c0caf2d7b9fec5daa919f5f471430f2", "signature": "static byte DialogBegin(nint ui, nint title, nint open, in NativeDialogOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDialogOpts" }], "summary": "cui_dialog_begin" }, { "name": "DiffWords", "kind": "method", "id": "method|DiffWords|1|0|byte|nint oldLine;int oldLen;nint newLine;int newLen;nint oldRanges;ref int oldCount;nint newRanges;ref int newCount;int cap||hcda9f2ec29f0648dbedd75e9fd2669ff2851a76de74593a5fdcfaba7e38ffbd9", "signature": "static byte DiffWords(nint oldLine, int oldLen, nint newLine, int newLen, nint oldRanges, ref int oldCount, nint newRanges, ref int newCount, int cap)", "parameters": [{ "name": "oldLine", "type": "nint" }, { "name": "oldLen", "type": "int" }, { "name": "newLine", "type": "nint" }, { "name": "newLen", "type": "int" }, { "name": "oldRanges", "type": "nint" }, { "name": "oldCount", "type": "ref int" }, { "name": "newRanges", "type": "nint" }, { "name": "newCount", "type": "ref int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_words" }, { "name": "DockItem", "kind": "method", "id": "method|DockItem|1|0|byte|nint ui;nint icon;nint label;in NativeDockItemOpts opts||hc98fe4669f05c98a74eb98bebd4a9d1a85e10093aaf887a346a97ed55781ed98", "signature": "static byte DockItem(nint ui, nint icon, nint label, in NativeDockItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeDockItemOpts" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "method", "id": "method|DockLoad|1|0|byte|nint ui;nint id;nint text||h621beeb19268aecd384a174a3f46f3fe2f0067bb2eeedd194a6bd4b1e781efaa", "signature": "static byte DockLoad(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_dock_load" }, { "name": "DockPanelBegin", "kind": "method", "id": "method|DockPanelBegin|1|0|byte|nint ui;nint title;nint open;in NativeDockPanelOpts opts||h2744ffb49bc263bc86741c7e6c0e58f096dc2dc91857010058a19ee69cb87dd2", "signature": "static byte DockPanelBegin(nint ui, nint title, nint open, in NativeDockPanelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDockPanelOpts" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "EmojiFontLoadFile", "kind": "method", "id": "method|EmojiFontLoadFile|1|0|byte|nint ui;nint path||h1fa3b59d3fb51cc55806ab6720350790ed1dea427bd97ef45db889a9e9068855", "signature": "static byte EmojiFontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_emoji_font_load_file" }, { "name": "EmojiFontLoadMemory", "kind": "method", "id": "method|EmojiFontLoadMemory|1|0|byte|nint ui;nint data;ulong size;byte copy||h4731aaab3bec31b4ee02e82d04e58eef789dd4450bda2f8a6a5b7f4df2ec97b6", "signature": "static byte EmojiFontLoadMemory(nint ui, nint data, ulong size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "copy", "type": "byte" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "method", "id": "method|EmojiFontLoadSystem|1|0|byte|nint ui||hadc7b19a2a9a2e65695fc9817a04d4a731c2b5afaf61701ae690292273e13310", "signature": "static byte EmojiFontLoadSystem(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "method", "id": "method|EmojiSupported|1|0|byte|nint ui;nint utf8;int len||haa623954e33273c01efadb0b164b0325a036fa5aac7ebf21338630f47cc6f329", "signature": "static byte EmojiSupported(nint ui, nint utf8, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "method", "id": "method|EmptyState|1|0|byte|nint ui;nint title;in NativeEmptyOpts opts||h941a84eed00b9099f9a69276a71aef1c42cd24b1ed9125fcce7b3ed9cc5d56a3", "signature": "static byte EmptyState(nint ui, nint title, in NativeEmptyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeEmptyOpts" }], "summary": "cui_empty_state_ex" }, { "name": "ExpandableCardBegin", "kind": "method", "id": "method|ExpandableCardBegin|1|0|byte|nint ui;nint title;nint open;in NativeExpandableCardOpts opts||hc4f35bb8b4e0a5b5c51ced2e3eb8913efcb5526a0978d715299a9d3e6425d85a", "signature": "static byte ExpandableCardBegin(nint ui, nint title, nint open, in NativeExpandableCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableCardOpts" }], "summary": "cui_expandable_card_begin" }, { "name": "ExpandableText", "kind": "method", "id": "method|ExpandableText|1|0|byte|nint ui;nint id;nint text;in NativeExpandableTextOpts opts||he923421a6ed1305bf9a9239a09a90cb844e441a563ed0b79c1088be082b68db2", "signature": "static byte ExpandableText(nint ui, nint id, nint text, in NativeExpandableTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableTextOpts" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "method", "id": "method|Fader|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeFaderOpts opts||h6ed38dfc9564ca40874ecea6cd058d18d45a5b3df90662647f6d22fa1b43a8e9", "signature": "static byte Fader(nint ui, nint id, ref float value, float min, float max, in NativeFaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeFaderOpts" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "method", "id": "method|FileDragActive|1|0|byte|nint ui||h06689d0f1f6ad622bd4ede35fde7d9e4b27bf818d7051e398763c4d0d6c69752", "signature": "static byte FileDragActive(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_file_drag_active" }, { "name": "FilePicker", "kind": "method", "id": "method|FilePicker|1|0|byte|nint ui;nint id;nint open;nint out;ulong outCap;in NativeFilePickerOpts opts||h8aa210f51d701dad5def4bc04413bf8fe17e80b31bc38edc40f6cbfc4fa967ca", "signature": "static byte FilePicker(nint ui, nint id, nint open, nint @out, ulong outCap, in NativeFilePickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "out", "type": "nint" }, { "name": "outCap", "type": "ulong" }, { "name": "opts", "type": "in NativeFilePickerOpts" }], "summary": "cui_file_picker_ex" }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|1|0|byte|nint ui;nint id;nint fields;int count;ref uint selected;nint search;ulong searchCap||h10e5cb6dc504fbc076c16ced8a1482f61bf8adcae4723330548153733c934204", "signature": "static byte FilterBar(nint ui, nint id, nint fields, int count, ref uint selected, nint search, ulong searchCap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref uint" }, { "name": "search", "type": "nint" }, { "name": "searchCap", "type": "ulong" }], "summary": "cui_filter_bar" }, { "name": "GlIsSoftware", "kind": "method", "id": "method|GlIsSoftware|1|0|byte|nint r||h6f0d04c2dca4916b21cc9dbb2f1f9a0b5ae9561aa7f132235ee5f35dc9629684", "signature": "static byte GlIsSoftware(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_is_software" }, { "name": "HistogramSlider", "kind": "method", "id": "method|HistogramSlider|1|0|byte|nint ui;nint label;nint bins;int binCount;ref float lo;ref float hi;float min;float max;in NativeHistogramOpts opts||h76a57b17c94377856e726b8b08e866628238cda2c53b31a54f9aef2d181fa40e", "signature": "static byte HistogramSlider(nint ui, nint label, nint bins, int binCount, ref float lo, ref float hi, float min, float max, in NativeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "bins", "type": "nint" }, { "name": "binCount", "type": "int" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeHistogramOpts" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "method", "id": "method|HoldButton|1|0|byte|nint ui;nint label;in NativeHoldOpts opts||h1870c44b154f6e64561e0bc2872a662ce1c6077c5faa415f3313612b05e2df33", "signature": "static byte HoldButton(nint ui, nint label, in NativeHoldOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeHoldOpts" }], "summary": "cui_hold_button_ex" }, { "name": "HoverCardBegin", "kind": "method", "id": "method|HoverCardBegin|1|0|byte|nint ui;nint id;in NativeHoverCardOpts opts||h2acd4cd766bdafd791de91155afcbe9fcb949f5209b01f218aa8bb2ab0561e1d", "signature": "static byte HoverCardBegin(nint ui, nint id, in NativeHoverCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeHoverCardOpts" }], "summary": "cui_hover_card_begin" }, { "name": "IconButton", "kind": "method", "id": "method|IconButton|1|0|byte|nint ui;nint icon;in NativeButtonOpts opts||h2d23f5f0de85e2fcf802f1b534bb88b5c109da6930af15f92ad95402c5f2af72", "signature": "static byte IconButton(nint ui, nint icon, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_icon_button_ex" }, { "name": "ImageCompare", "kind": "method", "id": "method|ImageCompare|1|0|byte|nint ui;nint id;ulong before;ulong after;ref float pos;in NativeCompareOpts opts||h73026feb7f78c8cbd78223c91da32fbd98d3a6910059605ba7ac0eba5efb8d95", "signature": "static byte ImageCompare(nint ui, nint id, ulong before, ulong after, ref float pos, in NativeCompareOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "opts", "type": "in NativeCompareOpts" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "method", "id": "method|ImageViewer|1|0|byte|nint ui;nint id;ulong tex;int imageW;int imageH;ref NativeImageView view;in NativeImageViewerOpts opts||hf11375c486a0de23f7748433464bab1ed9200bc4f70afa33e92fc0dc45a6e350", "signature": "static byte ImageViewer(nint ui, nint id, ulong tex, int imageW, int imageH, ref NativeImageView view, in NativeImageViewerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref NativeImageView" }, { "name": "opts", "type": "in NativeImageViewerOpts" }], "summary": "cui_image_viewer_ex" }, { "name": "InspectorBegin", "kind": "method", "id": "method|InspectorBegin|1|0|byte|nint ui;nint id;in NativeInspectorOpts opts||haf0c110106f31d9e3d2a18a9340f0a4f30ab977c0436d21cadd58b7d87812a8d", "signature": "static byte InspectorBegin(nint ui, nint id, in NativeInspectorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeInspectorOpts" }], "summary": "cui_inspector_begin_ex" }, { "name": "InspectorGroup", "kind": "method", "id": "method|InspectorGroup|1|0|byte|nint ui;nint title;nint open||h497e9d988565ae5ca3b5c08f689dd3254225d3a3d9dc0ecf312ef898a908c201", "signature": "static byte InspectorGroup(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_inspector_group" }, { "name": "IsDisabled", "kind": "method", "id": "method|IsDisabled|1|0|byte|nint ui||h0f0e74072e7126efe97cf7c822e7ed9b4fd1b9ba5c5e78d6566ffb90b9ad1596", "signature": "static byte IsDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_is_disabled" }, { "name": "JsonView", "kind": "method", "id": "method|JsonView|1|0|byte|nint ui;nint id;nint json;in NativeJsonOpts opts||hdb710bc8e1b81b610086d6b063db3f139a632b10befa8e75576ebfdb26aed829", "signature": "static byte JsonView(nint ui, nint id, nint json, in NativeJsonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "json", "type": "nint" }, { "name": "opts", "type": "in NativeJsonOpts" }], "summary": "cui_json_view_ex" }, { "name": "KanbanCardBegin", "kind": "method", "id": "method|KanbanCardBegin|1|0|byte|nint ui;int cardId||hb10022a44f071459906d2056eaf86e971ba0fd1d1e8298e8e3512e2c40305731", "signature": "static byte KanbanCardBegin(nint ui, int cardId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanColumnBegin", "kind": "method", "id": "method|KanbanColumnBegin|1|0|byte|nint ui;nint title;int cardCount;in NativeKanbanColumnOpts opts||h31707cec7d02a90fb9ca22b004120125fc7c64fe847a796ff10f143a5970e8d0", "signature": "static byte KanbanColumnBegin(nint ui, nint title, int cardCount, in NativeKanbanColumnOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "cardCount", "type": "int" }, { "name": "opts", "type": "in NativeKanbanColumnOpts" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanEnd", "kind": "method", "id": "method|KanbanEnd|1|0|byte|nint ui;ref NativeKanbanMove move||h53bbfa00ebd29bb312c1e760325bdacf4768ff044b242e3f05cb6702bfc46d51", "signature": "static byte KanbanEnd(nint ui, ref NativeKanbanMove move)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "move", "type": "ref NativeKanbanMove" }], "summary": "cui_kanban_end" }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|1|0|byte|nint ui;Key key||h6d4445c5b57a82d91cda591d976850ee3d0eb9a02ac7a9a0c7f8fadba8cab1cb", "signature": "static byte KeyDown(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_down" }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|1|0|byte|nint ui;Key key||h4b8d48010a1a9850c0768747a30fbb0ec8ff46600a7bfbab7928db9651a84957", "signature": "static byte KeyPressed(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_pressed" }, { "name": "Knob", "kind": "method", "id": "method|Knob|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeKnobOpts opts||h9ee3cc21d4102e0742c3a600bae25092222ba9a1071838d49a0ca2698c8c7920", "signature": "static byte Knob(nint ui, nint id, ref float value, float min, float max, in NativeKnobOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeKnobOpts" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "method", "id": "method|KvEditor|1|0|byte|nint ui;nint id;nint pairs;ref int count;int capacity;in NativeKvEditorOpts opts||hb2614aaec9d451a0e5bdf229887d837d6bb7b2c23a13770a65a365eb3466709e", "signature": "static byte KvEditor(nint ui, nint id, nint pairs, ref int count, int capacity, in NativeKvEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeKvEditorOpts" }], "summary": "cui_kv_editor_ex" }, { "name": "LastHovered", "kind": "method", "id": "method|LastHovered|1|0|byte|nint ui||h41176bf534c908b00ace79674d97cffea1848ac349fe99eb9b1adf5c37669bb4", "signature": "static byte LastHovered(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_hovered" }, { "name": "LevelMeter", "kind": "method", "id": "method|LevelMeter|1|0|byte|nint ui;nint id;nint levels;int channels;in NativeLevelMeterOpts opts||hfc5e9178ec7f3614a5efade5d6dcdbf414075f81c96b3f6cc266f87b30516a1c", "signature": "static byte LevelMeter(nint ui, nint id, nint levels, int channels, in NativeLevelMeterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "levels", "type": "nint" }, { "name": "channels", "type": "int" }, { "name": "opts", "type": "in NativeLevelMeterOpts" }], "summary": "cui_level_meter_ex" }, { "name": "Link", "kind": "method", "id": "method|Link|1|0|byte|nint ui;nint text||h8460add3477f455cc2ee1c287e47ae31f0d673f5f961821dfdc3cd857ceadb3d", "signature": "static byte Link(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "method", "id": "method|ListItem|1|0|byte|nint ui;nint title;in NativeListItemOpts opts||h1bdd6b290a5d46e3fbc94460f2cf1e811f7ab4fb32aa4edd105643c1387b6160", "signature": "static byte ListItem(nint ui, nint title, in NativeListItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeListItemOpts" }], "summary": "cui_list_item_ex" }, { "name": "MarkdownApplyTask", "kind": "method", "id": "method|MarkdownApplyTask|1|0|byte|nint text;in NativeMarkdownResult result||h65c0748daeaff3d922677db26ff783f06848918f3064226056c488ad839a3f6e", "signature": "static byte MarkdownApplyTask(nint text, in NativeMarkdownResult result)", "parameters": [{ "name": "text", "type": "nint" }, { "name": "result", "type": "in NativeMarkdownResult" }], "summary": "cui_markdown_apply_task" }, { "name": "MenuBarMenuBegin", "kind": "method", "id": "method|MenuBarMenuBegin|1|0|byte|nint ui;nint label;in NativeMenuBarMenuOpts opts||hdce92dc64169719fd1caac182b3b3f1c1e69c519f083e93adad353ffa0087006", "signature": "static byte MenuBarMenuBegin(nint ui, nint label, in NativeMenuBarMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarMenuOpts" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "MenuBegin", "kind": "method", "id": "method|MenuBegin|1|0|byte|nint ui;nint label;in NativeMenuOpts opts||h0c701f73327f9a30be5cfb7c34816c1cdc4252ab5276470c412478196efce7ef", "signature": "static byte MenuBegin(nint ui, nint label, in NativeMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuOpts" }], "summary": "cui_menu_begin" }, { "name": "MenuItem", "kind": "method", "id": "method|MenuItem|1|0|byte|nint ui;nint label;in NativeMenuItemOpts opts||haf30308e41d50cd536bc2cf08e9736e8d2b49efc929acc8bca93a84950068f4d", "signature": "static byte MenuItem(nint ui, nint label, in NativeMenuItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuItemOpts" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "method", "id": "method|ModelPicker|1|0|byte|nint ui;nint id;nint models;int count;ref int selected;in NativeModelPickerOpts opts||hc29cc09c2e34215fa836775b784ea5bfb4f3bba7656e378d58ce8f73bff1c6fd", "signature": "static byte ModelPicker(nint ui, nint id, nint models, int count, ref int selected, in NativeModelPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "models", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeModelPickerOpts" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "method", "id": "method|MoneyInput|1|0|byte|nint ui;nint id;ref double value;in NativeMoneyOpts opts||h3ff760afb37f0e62af2cb05228c843fa66a95eada822c1352ada152ad8c575eb", "signature": "static byte MoneyInput(nint ui, nint id, ref double value, in NativeMoneyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "opts", "type": "in NativeMoneyOpts" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|1|0|byte|nint ui;MouseButton b||h15a448a8dcf4692f7df7c145b73d244866d5e5a4f735572ef4999a267379b68f", "signature": "static byte MouseClicked(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_clicked" }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|1|0|byte|nint ui;MouseButton b||hff24d7015a9ce35f643c5082bcb54be0985bb3f9f3dc211436da7b65f16590a5", "signature": "static byte MouseDown(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_down" }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|1|0|byte|nint ui;nint id;nint items;int count;nint selected;in NativeMultiSelectOpts opts||h5c9472439fb3846e3da639dcd77abda0ffc6983f39a8cd8f69537665395592e6", "signature": "static byte MultiSelect(nint ui, nint id, nint items, int count, nint selected, in NativeMultiSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeMultiSelectOpts" }], "summary": "cui_multi_select_ex" }, { "name": "NavItem", "kind": "method", "id": "method|NavItem|1|0|byte|nint ui;nint label;in NativeNavOpts opts||h12f929fa43eef8aaeeb499331c925a0a27b6aa2101c772e1fd311a90aa4ce8f5", "signature": "static byte NavItem(nint ui, nint label, in NativeNavOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeNavOpts" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "method", "id": "method|NeedsRedraw|1|0|byte|nint ui||h7b43442d721907c639ef1f2c082c75d198b178de187caf3ecd27a9945fc8ea8e", "signature": "static byte NeedsRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_needs_redraw" }, { "name": "NodeBegin", "kind": "method", "id": "method|NodeBegin|1|0|byte|nint ui;int nodeId;ref float x;ref float y;nint title;in NativeNodeOpts opts||h3ff767afdc5dc754f45f111bbc023fd04d09391838171174875147ff26ab10ac", "signature": "static byte NodeBegin(nint ui, int nodeId, ref float x, ref float y, nint title, in NativeNodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeNodeOpts" }], "summary": "cui_node_begin_ex" }, { "name": "NodeDeleted", "kind": "method", "id": "method|NodeDeleted|1|0|byte|nint ui;ref int nodeId||h26a2e21e519d12482534c9be0e688659e537c8c649731c62b8e07fd20f3aec51", "signature": "static byte NodeDeleted(nint ui, ref int nodeId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeEditorBegin", "kind": "method", "id": "method|NodeEditorBegin|1|0|byte|nint ui;nint id;ref NativeNodeView view;in NativeNodeEditorOpts opts||h5c300457768c76f92734ac1a0ccff610d8565ca52667e6bf8de7cf33ec5195f0", "signature": "static byte NodeEditorBegin(nint ui, nint id, ref NativeNodeView view, in NativeNodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "view", "type": "ref NativeNodeView" }, { "name": "opts", "type": "in NativeNodeEditorOpts" }], "summary": "cui_node_editor_begin_ex" }, { "name": "NodeInput", "kind": "method", "id": "method|NodeInput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h05349be34aeb5552ca0fe0e8e2faa4b0c88bf38b8ddfb94e56cb059827927b43", "signature": "static byte NodeInput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "method", "id": "method|NodeLink|1|0|byte|nint ui;int linkId;int fromPin;int toPin||h4fd0ea27954b724e7cdccedf031de49905dc5d5397d14cb610cc8b072c2c611e", "signature": "static byte NodeLink(nint ui, int linkId, int fromPin, int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "cui_node_link" }, { "name": "NodeLinkCreated", "kind": "method", "id": "method|NodeLinkCreated|1|0|byte|nint ui;ref int fromPin;ref int toPin||hc82624810a72f602e276268bcdcac44230c240176da8b76b33de074633261bb1", "signature": "static byte NodeLinkCreated(nint ui, ref int fromPin, ref int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "cui_node_link_created" }, { "name": "NodeLinkRemoved", "kind": "method", "id": "method|NodeLinkRemoved|1|0|byte|nint ui;ref int linkId||h4f0501cd14e679dd9c71ff20df58c61cd5ece412c9274982ca5977467578e59a", "signature": "static byte NodeLinkRemoved(nint ui, ref int linkId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "ref int" }], "summary": "cui_node_link_removed" }, { "name": "NodeOutput", "kind": "method", "id": "method|NodeOutput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h889d0c43d378b6488c82d0644a74fb8447e2024e5a741797063399e6bb76d271", "signature": "static byte NodeOutput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|1|0|byte|nint ui;nint id;ref double value;double min;double max;in NativeNumberOpts opts||h8dd3807fc82451dff355298afa82bd3d8d760f6aa9f4843c1afbf90c116722b4", "signature": "static byte Number(nint ui, nint id, ref double value, double min, double max, in NativeNumberOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "opts", "type": "in NativeNumberOpts" }], "summary": "cui_number_ex" }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|1|0|byte|nint ui;nint id;nint code;int length||h1d5f76d56771b0e941f76735b57fccf346364b04e9b6b30fc767d8c8b1a3373d", "signature": "static byte OtpInput(nint ui, nint id, nint code, int length)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "length", "type": "int" }], "summary": "cui_otp_input" }, { "name": "Pagination", "kind": "method", "id": "method|Pagination|1|0|byte|nint ui;nint id;ref int page;int pageCount||h9c6541597a311583fe7438c482c8224f55d8b6301216af97fb09d2b1b7c0dbc4", "signature": "static byte Pagination(nint ui, nint id, ref int page, int pageCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PathBarMenuBegin", "kind": "method", "id": "method|PathBarMenuBegin|1|0|byte|nint ui;nint id;ref int segment||h920519871dd34b39dc6f632fd5641a9c1fe9d2e1484743facc6341b86f2c90a4", "signature": "static byte PathBarMenuBegin(nint ui, nint id, ref int segment)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segment", "type": "ref int" }], "summary": "cui_path_bar_menu_begin" }, { "name": "PathHasExtension", "kind": "method", "id": "method|PathHasExtension|1|0|byte|nint path;nint accept||h51473867a382392260bce03dcd8573965a7a41479b3d86ba74646ab4589e6839", "signature": "static byte PathHasExtension(nint path, nint accept)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "accept", "type": "nint" }], "summary": "cui_path_has_extension" }, { "name": "PopoverBegin", "kind": "method", "id": "method|PopoverBegin|1|0|byte|nint ui;nint id;in NativePopoverOpts opts||hf7b2799f846341c5588cdd893e7efea99901ef279d1c3689385c06ab0b3c2312", "signature": "static byte PopoverBegin(nint ui, nint id, in NativePopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativePopoverOpts" }], "summary": "cui_popover_begin" }, { "name": "PopoverIsOpen", "kind": "method", "id": "method|PopoverIsOpen|1|0|byte|nint ui;nint id||h9af29adcf835a4877879bb5a326360b02b8b2db888492f0eeffdd9983f5fdd5e", "signature": "static byte PopoverIsOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "method", "id": "method|PropBool|1|0|byte|nint ui;nint label;nint value;in NativePropOpts opts||h00756c3152ec3f53862faae2e0bf373d9e2e3c324e60827347892307afe460f6", "signature": "static byte PropBool(nint ui, nint label, nint value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "method", "id": "method|PropColor|1|0|byte|nint ui;nint label;ref NativeColor value;in NativePropOpts opts||h97930e1593c9f3f948176eb0694ffbf4bb35e3ed3da460000a4985b7ab379333", "signature": "static byte PropColor(nint ui, nint label, ref NativeColor value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_color_ex" }, { "name": "PropEnum", "kind": "method", "id": "method|PropEnum|1|0|byte|nint ui;nint label;nint items;int count;ref int index;in NativePropOpts opts||hc25983cec08cc4d09953634b896fbda541bc2371db435897002a158aa7ccfb96", "signature": "static byte PropEnum(nint ui, nint label, nint items, int count, ref int index, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "method", "id": "method|PropFloat|1|0|byte|nint ui;nint label;ref float value;in NativePropOpts opts||he71b383273784a5057e7581fe417bf0b1982ba24f1a722d7c19dfbeda8447dd5", "signature": "static byte PropFloat(nint ui, nint label, ref float value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "method", "id": "method|PropInt|1|0|byte|nint ui;nint label;ref int value;in NativePropOpts opts||h5f2a28c9b5e8da8289424bf17db307be852cceb9edb2a35a223c89709c234b01", "signature": "static byte PropInt(nint ui, nint label, ref int value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "method", "id": "method|PropText|1|0|byte|nint ui;nint label;nint buf;ulong cap;in NativePropOpts opts||h69d4e978f588bda21ba0db61bc1f444f291219794caf48e7d755eff7510027c2", "signature": "static byte PropText(nint ui, nint label, nint buf, ulong cap, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "method", "id": "method|PropVec|1|0|byte|nint ui;nint label;ref float value;int components;in NativePropOpts opts||h86de2489ef65fd8442a3d0247ae840a33f6e3fcfbecbba07f586a9f869e29231", "signature": "static byte PropVec(nint ui, nint label, ref float value, int components, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_vec_ex" }, { "name": "QueryBuilder", "kind": "method", "id": "method|QueryBuilder|1|0|byte|nint ui;nint id;nint fields;int fieldCount;nint nodes;ref int count;int capacity;in NativeQueryOpts opts||h9e99d805b9400574ba394e2f6497a861baa88e0ba6b4a8e520aa819e41d38975", "signature": "static byte QueryBuilder(nint ui, nint id, nint fields, int fieldCount, nint nodes, ref int count, int capacity, in NativeQueryOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeQueryOpts" }], "summary": "cui_query_builder_ex" }, { "name": "QueryMatch", "kind": "method", "id": "method|QueryMatch|1|0|byte|nint fields;int fieldCount;nint nodes;int count;nint values||h029c8a4faaccfacab37fbdf6a5e0cbdad3ec4789fe25a84c817b9b30b1a0c9d3", "signature": "static byte QueryMatch(nint fields, int fieldCount, nint nodes, int count, nint values)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }], "summary": "cui_query_match" }, { "name": "Radio", "kind": "method", "id": "method|Radio|1|0|byte|nint ui;nint label;ref int value;int option;in NativeCheckOpts opts||hcdcef5ad8085ac53ef4c7df825d71526f96787cbe7e0056fa365c0afe2d5ee48", "signature": "static byte Radio(nint ui, nint label, ref int value, int option, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "method", "id": "method|RadioCards|1|0|byte|nint ui;nint id;nint choices;int count;ref int index;in NativeRadioCardsOpts opts||h2fc7b0b667bf08b9f7ac97eaea453441474e71299379f834d802cf253d5781d5", "signature": "static byte RadioCards(nint ui, nint id, nint choices, int count, ref int index, in NativeRadioCardsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "choices", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeRadioCardsOpts" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "method", "id": "method|RadioGroup|1|0|byte|nint ui;nint id;nint items;int count;ref int index||h41fdeaf6779c042bf31b87c0f44e30b210b8c874a28e0273fb4c1badde4f41f1", "signature": "static byte RadioGroup(nint ui, nint id, nint items, int count, ref int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "method", "id": "method|RangeCalendar|1|0|byte|nint ui;nint id;ref NativeDateRange range;int months||h170335980cd92550862e1bf6633a11da9b020be711e236ecce1a60296fdf8c5a", "signature": "static byte RangeCalendar(nint ui, nint id, ref NativeDateRange range, int months)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "months", "type": "int" }], "summary": "cui_range_calendar" }, { "name": "RangeSlider", "kind": "method", "id": "method|RangeSlider|1|0|byte|nint ui;nint label;ref float lo;ref float hi;float min;float max||h32f96bb5dbbbeefb9ddb110ad492e7e78912f7cc36806f9c027d16296a34ff63", "signature": "static byte RangeSlider(nint ui, nint label, ref float lo, ref float hi, float min, float max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "method", "id": "method|Rating|1|0|byte|nint ui;nint id;ref int value;int max||h04004cebb5c1581168f84691d3658abaf8d40451dd82ca2ff535542955e396a3", "signature": "static byte Rating(nint ui, nint id, ref int value, int max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int" }], "summary": "cui_rating" }, { "name": "ReasoningBegin", "kind": "method", "id": "method|ReasoningBegin|1|0|byte|nint ui;nint id;in NativeReasoningOpts opts||ha24ccd4e6415a9f80d7679fc60373a33e2e4979ed946fe51f20466c85714765b", "signature": "static byte ReasoningBegin(nint ui, nint id, in NativeReasoningOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeReasoningOpts" }], "summary": "cui_reasoning_begin" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|1|0|byte|nint ui||h52ff8179fcb274432849c6012a35f6479cf5b716aca5b93b2293b9ac61f63631", "signature": "static byte ReorderEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_end" }, { "name": "RulerSlider", "kind": "method", "id": "method|RulerSlider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeRulerOpts opts||h3d06261b67662650a9f462da7f534bd41b808c4cb0aed2d0d52ee4161f8b20d0", "signature": "static byte RulerSlider(nint ui, nint label, ref float value, float min, float max, in NativeRulerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRulerOpts" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "method", "id": "method|Scrub|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeScrubOpts opts||hd488ae4441e78805976672ba9c7ab7dd5bd7bfce82c675683fa86ea3adaa4c00", "signature": "static byte Scrub(nint ui, nint label, ref float value, float min, float max, in NativeScrubOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeScrubOpts" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "method", "id": "method|Segmented|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSegmentedOpts opts||h07fbd0f03f7b9d2479970a93a825fb7854a583ea1fe82a108d6d5146138f8789", "signature": "static byte Segmented(nint ui, nint id, nint items, int count, ref int index, in NativeSegmentedOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSegmentedOpts" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "method", "id": "method|Select|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSelectOpts opts||hc4cc1709b9bbacfdd0684ecb3db4fa731502a5cc6c03eadad82e4d691c403b4e", "signature": "static byte Select(nint ui, nint id, nint items, int count, ref int index, in NativeSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSelectOpts" }], "summary": "cui_select_ex" }, { "name": "SheetBegin", "kind": "method", "id": "method|SheetBegin|1|0|byte|nint ui;nint title;nint open;in NativeSheetOpts opts||h63513bae0643d65f342e309d1d5dd8742da4175344baeb0d2fdd1b8bc869d7bd", "signature": "static byte SheetBegin(nint ui, nint title, nint open, in NativeSheetOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeSheetOpts" }], "summary": "cui_sheet_begin" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|1|0|byte|nint ui;int mods;Key key||hd27db9793043c7739eb655fd479c45377af310b81113193e71c0cdcadcba8001", "signature": "static byte Shortcut(nint ui, int mods, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mods", "type": "int" }, { "name": "key", "type": "Key" }], "summary": "cui_shortcut" }, { "name": "ShortcutRecorder", "kind": "method", "id": "method|ShortcutRecorder|1|0|byte|nint ui;nint id;ref NativeKeyCombo combo;in NativeShortcutRecorderOpts opts||hbe04823b844ed3ff35a1a180f568892ebc52d0cb046997cd7c852b370dd58a2a", "signature": "static byte ShortcutRecorder(nint ui, nint id, ref NativeKeyCombo combo, in NativeShortcutRecorderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "combo", "type": "ref NativeKeyCombo" }, { "name": "opts", "type": "in NativeShortcutRecorderOpts" }], "summary": "cui_shortcut_recorder_ex" }, { "name": "SignaturePad", "kind": "method", "id": "method|SignaturePad|1|0|byte|nint ui;nint id;in NativeSignatureOpts opts||h3930868f0cb4d0c6dafbecf0ea3749ab6cde4dfae8fd98f814843a267000b9b6", "signature": "static byte SignaturePad(nint ui, nint id, in NativeSignatureOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSignatureOpts" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "method", "id": "method|Slider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeSliderOpts opts||h578e587703e448688123d0b004b5c8aca34572c3f3351a481cddc7fc655425cc", "signature": "static byte Slider(nint ui, nint label, ref float value, float min, float max, in NativeSliderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeSliderOpts" }], "summary": "cui_slider_ex" }, { "name": "StatusBarItem", "kind": "method", "id": "method|StatusBarItem|1|0|byte|nint ui;nint label;in NativeStatusItemOpts opts||h4790c555513598595f49e5d19ae07a5f8771dafa02a0285d7ce3a8e968abd2af", "signature": "static byte StatusBarItem(nint ui, nint label, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_item_ex" }, { "name": "StatusButton", "kind": "method", "id": "method|StatusButton|1|0|byte|nint ui;nint label;Status status;in NativeStatusButtonOpts opts||hbd6cdabc808f2abbd5e15ee20adc0f511c02054771b4253e14b383238529a1a3", "signature": "static byte StatusButton(nint ui, nint label, Status status, in NativeStatusButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "status", "type": "Status" }, { "name": "opts", "type": "in NativeStatusButtonOpts" }], "summary": "cui_status_button_ex" }, { "name": "SwLastDamage", "kind": "method", "id": "method|SwLastDamage|1|0|byte|nint r;ref int x;ref int y;ref int w;ref int h||h30233e8faa58656654e4f604218a579860dd2a7cb7bd6c5783181ae5c0625ad0", "signature": "static byte SwLastDamage(nint r, ref int x, ref int y, ref int w, ref int h)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "x", "type": "ref int" }, { "name": "y", "type": "ref int" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_sw_last_damage" }, { "name": "Switch", "kind": "method", "id": "method|Switch|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hc0a92c21627fec7195b958312e07a90e476a927d664950cd0c27890469716786", "signature": "static byte Switch(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "method", "id": "method|TabBar|1|0|byte|nint ui;nint id;nint items;int count;ref int selected;in NativeTabBarOpts opts||h84a537ef295b05ec9a7875c20f88a0981f676e0519a819543ecd2cb53df679dd", "signature": "static byte TabBar(nint ui, nint id, nint items, int count, ref int selected, in NativeTabBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTabBarOpts" }], "summary": "cui_tab_bar_ex" }, { "name": "TableBegin", "kind": "method", "id": "method|TableBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;in NativeTableOpts opts||h813dd66787d9f3a118c5213b3c708d32a3f8b37e8f9b6d23892055c031061a91", "signature": "static byte TableBegin(nint ui, nint id, nint columns, int columnCount, in NativeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "opts", "type": "in NativeTableOpts" }], "summary": "cui_table_begin_ex" }, { "name": "TableRow", "kind": "method", "id": "method|TableRow|1|0|byte|nint ui;byte selected||h10abf29c8d0d297c4ae783e8573bf59af256507d548fed3846f6cb8d1e33af7f", "signature": "static byte TableRow(nint ui, byte selected)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "selected", "type": "byte" }], "summary": "cui_table_row" }, { "name": "Tabs", "kind": "method", "id": "method|Tabs|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeTabsOpts opts||h3f80b81e7e4481583c25cf0e2c4a863b9d3dc7ffcf927d6efaa5eecc40d72708", "signature": "static byte Tabs(nint ui, nint id, nint items, int count, ref int index, in NativeTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeTabsOpts" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|1|0|byte|nint ui;nint id;nint buf;ulong cap;in NativeTagOpts opts||h4b51505c400e2374a9ef4b086f61587960b0963f8b80956a5be995481d915fab", "signature": "static byte TagInput(nint ui, nint id, nint buf, ulong cap, in NativeTagOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeTagOpts" }], "summary": "cui_tag_input_ex" }, { "name": "ThemeSwitcher", "kind": "method", "id": "method|ThemeSwitcher|1|0|byte|nint ui;ref int mode;byte withSystem||hca6a471cd4a87cc19eff3f9a4fadc50a73d523e83d0a773a344adbe1b0d04866", "signature": "static byte ThemeSwitcher(nint ui, ref int mode, byte withSystem)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "byte" }], "summary": "cui_theme_switcher" }, { "name": "ThemeToggle", "kind": "method", "id": "method|ThemeToggle|1|0|byte|nint ui||h4609d89e653a3baaef3cea4c9659df20b1303da3806ee0320fb59809f3fc6265", "signature": "static byte ThemeToggle(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_toggle" }, { "name": "TimeDial", "kind": "method", "id": "method|TimeDial|1|0|byte|nint ui;nint id;ref int hour;ref int minute;float size||hac05b892060233f70ac054ae631a05408fc9ed16c3e54e39475eeaee7a5752d7", "signature": "static byte TimeDial(nint ui, nint id, ref int hour, ref int minute, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "cui_time_dial" }, { "name": "TimePicker", "kind": "method", "id": "method|TimePicker|1|0|byte|nint ui;nint id;ref int hour;ref int minute;in NativeTimeOpts opts||h76c1a6f222300c98ffc9ee66d84b4eab5447a305ed64bd77d24dd358dc4c225c", "signature": "static byte TimePicker(nint ui, nint id, ref int hour, ref int minute, in NativeTimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "opts", "type": "in NativeTimeOpts" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "method", "id": "method|ToastActionClicked|1|0|byte|nint ui;int handle||hc310181a49b561232fbe10a57b50969930e55cb20455bdd700c79f6c1d3cf32a", "signature": "static byte ToastActionClicked(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|1|0|byte|nint ui;nint id;nint labels;int count;nint values;in NativeToggleGroupOpts opts||h9bfed721c10f74f2140e62a76fe5591423ccc4e2e91b1106c38fc1b1869b9c88", "signature": "static byte ToggleGroup(nint ui, nint id, nint labels, int count, nint values, in NativeToggleGroupOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }, { "name": "opts", "type": "in NativeToggleGroupOpts" }], "summary": "cui_toggle_group_ex" }, { "name": "ToolbarButton", "kind": "method", "id": "method|ToolbarButton|1|0|byte|nint ui;nint icon;in NativeToolOpts opts||h994afb837ec2079774d6535e3a3cb0d1881de0153fe23fc39186b0605a2cb2da", "signature": "static byte ToolbarButton(nint ui, nint icon, in NativeToolOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeToolOpts" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeBegin", "kind": "method", "id": "method|TreeBegin|1|0|byte|nint ui;nint label;nint open;in NativeTreeOpts opts||hebd9789f6109d185bae7dcc7dea5d5ef0a57172e5fbb10bd0bff64c10944485e", "signature": "static byte TreeBegin(nint ui, nint label, nint open, in NativeTreeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeTreeOpts" }], "summary": "cui_tree_begin" }, { "name": "TreeCell", "kind": "method", "id": "method|TreeCell|1|0|byte|nint ui;nint label;int depth;byte hasChildren;nint open;nint icon||h92fbcfdc4fbc2346e13caf9792c234af2e9a400f3d4ebb54ad1a8eff50cb83ab", "signature": "static byte TreeCell(nint ui, nint label, int depth, byte hasChildren, nint open, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "byte" }, { "name": "open", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_cell" }, { "name": "TreeClicked", "kind": "method", "id": "method|TreeClicked|1|0|byte|nint ui||hd91dfe2b074aa7b109f468e8b4040c694aef31ff296cba3699a36fe57032280a", "signature": "static byte TreeClicked(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "method", "id": "method|Typewriter|1|0|byte|nint ui;nint id;nint text;in NativeTextFxOpts opts||h7fb0abddf731ca6f9ade4f67404605f67cc2bbeca56950e6b83ec10b732cc13a", "signature": "static byte Typewriter(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_typewriter_ex" }, { "name": "UrlSetParams", "kind": "method", "id": "method|UrlSetParams|1|0|byte|nint url;ulong cap;nint pairs;int count||h4c1824026b07f4046b123e5684c3774de2a904c7301d8fec705e91aeaa60afd9", "signature": "static byte UrlSetParams(nint url, ulong cap, nint pairs, int count)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_url_set_params" }, { "name": "UserMenuBegin", "kind": "method", "id": "method|UserMenuBegin|1|0|byte|nint ui;nint name;in NativeUserMenuOpts opts||hb48d59d99a73868669d0b331ec83192210a0c833e3988ef13eda6fb5658c27a4", "signature": "static byte UserMenuBegin(nint ui, nint name, in NativeUserMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeUserMenuOpts" }], "summary": "cui_user_menu_begin" }, { "name": "VoiceOrb", "kind": "method", "id": "method|VoiceOrb|1|0|byte|nint ui;nint id;VoiceState state;float level;in NativeVoiceOrbOpts opts||h93f6b3e912f2a6852d94df96ec4a2f9302788d4dd152171fe341f961c7b04563", "signature": "static byte VoiceOrb(nint ui, nint id, VoiceState state, float level, in NativeVoiceOrbOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "opts", "type": "in NativeVoiceOrbOpts" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "method", "id": "method|WantsKeyboard|1|0|byte|nint ui||hf239c9950a859c2b1ee4d96bd406f245de4535bec30ad74ba5dc5886536c1718", "signature": "static byte WantsKeyboard(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_keyboard" }, { "name": "WantsMouse", "kind": "method", "id": "method|WantsMouse|1|0|byte|nint ui||h43a7d8c4da0674c3b57b4bbff09e3dc88bc0b56f3d7496e133fbdf99b6439585", "signature": "static byte WantsMouse(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_mouse" }, { "name": "Waveform", "kind": "method", "id": "method|Waveform|1|0|byte|nint ui;nint id;nint peaks;int count;ref float progress;in NativeWaveformOpts opts||hde8136d458f7da0d7a74fe40a2f5009959fe7d3a370e498fe9d7bf29214ded9a", "signature": "static byte Waveform(nint ui, nint id, nint peaks, int count, ref float progress, in NativeWaveformOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "peaks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "progress", "type": "ref float" }, { "name": "opts", "type": "in NativeWaveformOpts" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "method", "id": "method|WheelPicker|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeWheelOpts opts||hf3c3b0182f87f1b680f739b50bb8d87c9cabfee03586951ac62bf65b871448ef", "signature": "static byte WheelPicker(nint ui, nint id, nint items, int count, ref int index, in NativeWheelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeWheelOpts" }], "summary": "cui_wheel_picker_ex" }, { "name": "WritePng", "kind": "method", "id": "method|WritePng|1|0|byte|nint path;nint rgba;int width;int height;int stride||h85e643ea1e51d20a5fdccd30c3478c4965e2c38118937188e217dd742b1b2308", "signature": "static byte WritePng(nint path, nint rgba, int width, int height, int stride)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }], "summary": "cui_write_png" }, { "name": "Time", "kind": "method", "id": "method|Time|1|0|double|nint ui||hb2f1ad77b6f92fa1a452bb4566892538d32ec9562aa9a5dbf0d51f163236ee63", "signature": "static double Time(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_time" }, { "name": "Animate", "kind": "method", "id": "method|Animate|1|0|float|nint ui;uint id;float target||h783081c7165f6473b03c87976bf42bd71bb8dba6a771cc8e726a95e9b31185e5", "signature": "static float Animate(nint ui, uint id, float target)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }], "summary": "cui_animate" }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|1|0|float|nint ui;uint id;float target;float duration;float bounce||haadb48d9ac3326b48d979e354207d7fe478973a6fbc31ca176c063059ee82e70", "signature": "static float AnimateSpring(nint ui, uint id, float target, float duration, float bounce)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "cui_animate_spring" }, { "name": "CurveEval", "kind": "method", "id": "method|CurveEval|1|0|float|nint keys;int count;float x||ha777fdac9157752521a46d103b76d33d1192ee259722b6dea4faf21e203b3d94", "signature": "static float CurveEval(nint keys, int count, float x)", "parameters": [{ "name": "keys", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }], "summary": "cui_curve_eval" }, { "name": "DeltaTime", "kind": "method", "id": "method|DeltaTime|1|0|float|nint ui||h6ee192edd9536831c0243d007d39a8bf5a8f54a0151b686bc63099af3951e2db", "signature": "static float DeltaTime(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_delta_time" }, { "name": "DpiScale", "kind": "method", "id": "method|DpiScale|1|0|float|nint ui||h634ef8f8003d098e28306a7d54dcf08d6cf9a3c70bd47e93dcfc9e6237125047", "signature": "static float DpiScale(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dpi_scale" }, { "name": "NextWakeup", "kind": "method", "id": "method|NextWakeup|1|0|float|nint ui||heaa3059e89c281cf8618ccc70329affe44629f9bfd94615949690fb4265bbc46", "signature": "static float NextWakeup(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_next_wakeup" }, { "name": "ActivityRings", "kind": "method", "id": "method|ActivityRings|1|0|int|nint ui;nint id;nint rings;int count;in NativeRingsOpts opts||hfab99a08b98a1a46a19500c9dc566de59336b84686e088b3b08aa493b5bfb5f1", "signature": "static int ActivityRings(nint ui, nint id, nint rings, int count, in NativeRingsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeRingsOpts" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "method", "id": "method|AgentPlan|1|0|int|nint ui;nint id;nint steps;int count;in NativeAgentPlanOpts opts||h783bd47ee92e5be4ecf611f1b10dcce34680176116584cb837c3d63ece939fc8", "signature": "static int AgentPlan(nint ui, nint id, nint steps, int count, in NativeAgentPlanOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeAgentPlanOpts" }], "summary": "cui_agent_plan_ex" }, { "name": "AppRun", "kind": "method", "id": "method|AppRun|1|0|int|in NativeAppDesc desc;nint frame;nint user||h5b274bb4d7f996aa456c048eb630e0e5d79c988ae23fb56e20e90dae2e8d2ff9", "signature": "static int AppRun(in NativeAppDesc desc, nint frame, nint user)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }, { "name": "frame", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_app_run" }, { "name": "AvatarUpload", "kind": "method", "id": "method|AvatarUpload|1|0|int|nint ui;nint id;nint name;ref ulong image;float size||h1a590f05d0f131e9a0374b0d1821a2e797b3b4e6f91871f223d8fcef540820c6", "signature": "static int AvatarUpload(nint ui, nint id, nint name, ref ulong image, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_upload" }, { "name": "BarList", "kind": "method", "id": "method|BarList|1|0|int|nint ui;nint id;nint items;int count;in NativeBarListOpts opts||h38c11ff449d272606355ff091085f89c94306998c17998930106f4560b27dea7", "signature": "static int BarList(nint ui, nint id, nint items, int count, in NativeBarListOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeBarListOpts" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "method", "id": "method|Breadcrumb|1|0|int|nint ui;nint items;int count||h63c8fc446537769f774a935e4558c83571acc23d75274e5d703a72ce1523fe85", "signature": "static int Breadcrumb(nint ui, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "method", "id": "method|CalendarHeatmap|1|0|int|nint ui;nint id;NativeDate start;nint values;int days;in NativeCalendarHeatmapOpts opts||hc23599f375fea1dfd07e8380e49bd8fac1279ab8e2e5d142291dd4196e1fafa3", "signature": "static int CalendarHeatmap(nint ui, nint id, NativeDate start, nint values, int days, in NativeCalendarHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "NativeDate" }, { "name": "values", "type": "nint" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeCalendarHeatmapOpts" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "method", "id": "method|Candlestick|1|0|int|nint ui;nint id;nint candles;int count;in NativeCandlestickOpts opts||ha23000c433513bc9358604c3881de3ea161c7d64c66e39fc7756d310c341ad95", "signature": "static int Candlestick(nint ui, nint id, nint candles, int count, in NativeCandlestickOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "candles", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCandlestickOpts" }], "summary": "cui_candlestick_ex" }, { "name": "CardStackEnd", "kind": "method", "id": "method|CardStackEnd|1|0|int|nint ui||hf8bca440238fade3f7ea582ac1602ee0127f53a72ac52ee2411e8f8aaf5686d8", "signature": "static int CardStackEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_end" }, { "name": "ChatComposer", "kind": "method", "id": "method|ChatComposer|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeComposerOpts opts||h2a06bab1b93330b382be829803f5dd529e0a0fed034dd58a0aaab411b3067717", "signature": "static int ChatComposer(nint ui, nint id, nint buf, ulong cap, in NativeComposerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeComposerOpts" }], "summary": "cui_chat_composer_ex" }, { "name": "Checklist", "kind": "method", "id": "method|Checklist|1|0|int|nint ui;nint id;nint steps;int count;in NativeChecklistOpts opts||hdba0108e3588df0823f7df8666b548f9fb5aec5772f65711074a08a7380e60f8", "signature": "static int Checklist(nint ui, nint id, nint steps, int count, in NativeChecklistOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChecklistOpts" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "method", "id": "method|CommandPalette|1|0|int|nint ui;nint open;nint commands;int count||hd92303b12ad508c387686648ab58b2eddf7ba0e5c16ecb04f912944ea3c865d7", "signature": "static int CommandPalette(nint ui, nint open, nint commands, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "commands", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_command_palette" }, { "name": "Comment", "kind": "method", "id": "method|Comment|1|0|int|nint ui;nint id;nint author;nint text;in NativeCommentOpts opts||hdd03cdb9d470cd5bf5dfd06ad2a88b6454a330709bd3321ca9b851600542d1e5", "signature": "static int Comment(nint ui, nint id, nint author, nint text, in NativeCommentOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "author", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeCommentOpts" }], "summary": "cui_comment_ex" }, { "name": "DateToDays", "kind": "method", "id": "method|DateToDays|1|0|int|NativeDate d||hb0dad71dec46af8c99d25fcad3b990e1cf144e3e1a5ee8bc6add3ecdca7e5e6b", "signature": "static int DateToDays(NativeDate d)", "parameters": [{ "name": "d", "type": "NativeDate" }], "summary": "cui_date_to_days" }, { "name": "DiffCompute", "kind": "method", "id": "method|DiffCompute|1|0|int|nint oldText;ulong oldLen;nint newText;ulong newLen;uint flags;nint hunks;int cap;nint stats||hbd57a30bb6e264ef7243f4fe261f435296711881b447b48ca3a3d348ecf33ec8", "signature": "static int DiffCompute(nint oldText, ulong oldLen, nint newText, ulong newLen, uint flags, nint hunks, int cap, nint stats)", "parameters": [{ "name": "oldText", "type": "nint" }, { "name": "oldLen", "type": "ulong" }, { "name": "newText", "type": "nint" }, { "name": "newLen", "type": "ulong" }, { "name": "flags", "type": "uint" }, { "name": "hunks", "type": "nint" }, { "name": "cap", "type": "int" }, { "name": "stats", "type": "nint" }], "summary": "cui_diff_compute" }, { "name": "DiffViewRows", "kind": "method", "id": "method|DiffViewRows|1|0|int|nint ui;nint id;nint rows;int first;int cap||h1c7aade1dc1cf7abe185f6b4cc3cfa64e49ade089a1fc6d704e67924616863fd", "signature": "static int DiffViewRows(nint ui, nint id, nint rows, int first, int cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rows", "type": "nint" }, { "name": "first", "type": "int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_view_rows" }, { "name": "DroppedFileCount", "kind": "method", "id": "method|DroppedFileCount|1|0|int|nint ui||h6b75c3c22dbbb1f2ce9ee98bd11d91fbbaf2729d2d06380e850cf9b5fd8ba0e5", "signature": "static int DroppedFileCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dropped_file_count" }, { "name": "Dropzone", "kind": "method", "id": "method|Dropzone|1|0|int|nint ui;nint id;in NativeDropzoneOpts opts||h7d55496ae62b3bf291f2e1623067e800421a125a3441fbd4b22bd9880aebf298", "signature": "static int Dropzone(nint ui, nint id, in NativeDropzoneOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDropzoneOpts" }], "summary": "cui_dropzone_ex" }, { "name": "FsList", "kind": "method", "id": "method|FsList|1|0|int|nint user;nint path;ref NativeFileEntry out;int cap;nint names;ulong namesCap;byte hidden||hc1b544731ffb36fa5cdf8780f2343ce475feb9bcf939b64a7baafaca17c85b97", "signature": "static int FsList(nint user, nint path, ref NativeFileEntry @out, int cap, nint names, ulong namesCap, byte hidden)", "parameters": [{ "name": "user", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "out", "type": "ref NativeFileEntry" }, { "name": "cap", "type": "int" }, { "name": "names", "type": "nint" }, { "name": "namesCap", "type": "ulong" }, { "name": "hidden", "type": "byte" }], "summary": "cui_fs_list" }, { "name": "Funnel", "kind": "method", "id": "method|Funnel|1|0|int|nint ui;nint id;nint stages;int count;in NativeFunnelOpts opts||h5da5cae7c9d4360a84a6d41280b3d14dc41d9b0d80485581d03d051408bdc6f0", "signature": "static int Funnel(nint ui, nint id, nint stages, int count, in NativeFunnelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeFunnelOpts" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "method", "id": "method|Gantt|1|0|int|nint ui;nint id;nint tasks;int count;NativeDate origin;int days;in NativeGanttOpts opts||hc253df918bb421e7723ead0a131a534d65e811db10c12d19569f79ca874ef106", "signature": "static int Gantt(nint ui, nint id, nint tasks, int count, NativeDate origin, int days, in NativeGanttOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tasks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "origin", "type": "NativeDate" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeGanttOpts" }], "summary": "cui_gantt_ex" }, { "name": "Heatmap", "kind": "method", "id": "method|Heatmap|1|0|int|nint ui;nint id;nint values;int rows;int cols;in NativeHeatmapOpts opts||h4df783b0c75a2cc42ad921f03a3a1e2694072d72a3a65780abd6d65acdb7f3fd", "signature": "static int Heatmap(nint ui, nint id, nint values, int rows, int cols, in NativeHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "opts", "type": "in NativeHeatmapOpts" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "method", "id": "method|InlineEdit|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInlineEditOpts opts||h7143f520b1f81033517b98aca967ce5fedaa4105094e335bfcf7207ee3b2733a", "signature": "static int InlineEdit(nint ui, nint id, nint buf, ulong cap, in NativeInlineEditOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInlineEditOpts" }], "summary": "cui_inline_edit_ex" }, { "name": "Input", "kind": "method", "id": "method|Input|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h796e5768aac93644ab2f47ff4e5ed3af9e0572e38004095c843127a656d32dd2", "signature": "static int Input(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_input_ex" }, { "name": "KeyMods", "kind": "method", "id": "method|KeyMods|1|0|int|nint ui||h293d80845300d58f2995a5510e21c1111fca0df2e690ba98a8a8d63d903fbeb5", "signature": "static int KeyMods(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_key_mods" }, { "name": "NowPlaying", "kind": "method", "id": "method|NowPlaying|1|0|int|nint ui;nint id;ref NativeNowPlaying np;in NativeNowPlayingOpts opts||h3305da350f9305ad71c56ecfc831c7c04162ba1bc05e8da67efa84f26e701d7f", "signature": "static int NowPlaying(nint ui, nint id, ref NativeNowPlaying np, in NativeNowPlayingOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "np", "type": "ref NativeNowPlaying" }, { "name": "opts", "type": "in NativeNowPlayingOpts" }], "summary": "cui_now_playing_ex" }, { "name": "PasswordStrength", "kind": "method", "id": "method|PasswordStrength|1|0|int|nint ui;nint password||h296f8bc019e9a78a40862348b6ef154911727f24b96d3ce53528bf23cef3905a", "signature": "static int PasswordStrength(nint ui, nint password)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "password", "type": "nint" }], "summary": "cui_password_strength" }, { "name": "PromptSuggestions", "kind": "method", "id": "method|PromptSuggestions|1|0|int|nint ui;nint id;nint items;int count;in NativePromptSuggestionsOpts opts||h39cb0ee93a2df36c51cfb2d9a4e30d06e4b34a4e8cd1c660fe0ae0bcd00797fa", "signature": "static int PromptSuggestions(nint ui, nint id, nint items, int count, in NativePromptSuggestionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePromptSuggestionsOpts" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "method", "id": "method|RadarChart|1|0|int|nint ui;nint id;nint series;int count;nint axes;int axisCount;in NativeRadarOpts opts||h06cae4d94cc306c429feaef1500dc5b79741ac577050107bd413b612a5a4205b", "signature": "static int RadarChart(nint ui, nint id, nint series, int count, nint axes, int axisCount, in NativeRadarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "axes", "type": "nint" }, { "name": "axisCount", "type": "int" }, { "name": "opts", "type": "in NativeRadarOpts" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "method", "id": "method|Reactions|1|0|int|nint ui;nint id;nint items;int count||h143216460130bd0a205a3323a055f03e662c39c9993e057c4a7be569e363e3e4", "signature": "static int Reactions(nint ui, nint id, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_reactions" }, { "name": "RegexSearch", "kind": "method", "id": "method|RegexSearch|1|0|int|nint pattern;int flags;nint text;int len;int from;ref NativeRegexMatch m;nint error||h72d881084b53fb08b98d00025e7a3aa54591c236a477a81dec5980fdd339b3a2", "signature": "static int RegexSearch(nint pattern, int flags, nint text, int len, int from, ref NativeRegexMatch m, nint error)", "parameters": [{ "name": "pattern", "type": "nint" }, { "name": "flags", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "from", "type": "int" }, { "name": "m", "type": "ref NativeRegexMatch" }, { "name": "error", "type": "nint" }], "summary": "cui_regex_search" }, { "name": "ResponseActions", "kind": "method", "id": "method|ResponseActions|1|0|int|nint ui;nint id;in NativeResponseActionsOpts opts||hf0045bf0fe8346d68d3e858a4d4fd84158f1d7b3705a5b21433eb294b616ad2d", "signature": "static int ResponseActions(nint ui, nint id, in NativeResponseActionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeResponseActionsOpts" }], "summary": "cui_response_actions_ex" }, { "name": "Sankey", "kind": "method", "id": "method|Sankey|1|0|int|nint ui;nint id;nint nodes;int nodeCount;nint links;int linkCount;in NativeSankeyOpts opts||hd7ee09dc37ead6c7726c9f6e58362252feb879f0f2a23e2b42b5ad14fb4cf537", "signature": "static int Sankey(nint ui, nint id, nint nodes, int nodeCount, nint links, int linkCount, in NativeSankeyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "links", "type": "nint" }, { "name": "linkCount", "type": "int" }, { "name": "opts", "type": "in NativeSankeyOpts" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "method", "id": "method|ScatterChart|1|0|int|nint ui;nint id;nint series;int count;in NativeScatterOpts opts||hb705f85ec95b21fc19db4370c4a67ef8c487d162f3f505dcc1dd6fd9e348f603", "signature": "static int ScatterChart(nint ui, nint id, nint series, int count, in NativeScatterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeScatterOpts" }], "summary": "cui_scatter_chart_ex" }, { "name": "Search", "kind": "method", "id": "method|Search|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h13ff2c660a7121d9eea3e531962d731513ea3a0c696f0b6b881b865ef0ef7762", "signature": "static int Search(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_search_ex" }, { "name": "SignaturePoints", "kind": "method", "id": "method|SignaturePoints|1|0|int|nint ui;nint id;nint points;nint strokeEnds;ref int strokeCount||h4c2f8ff2aa2236c71ac5c2e55e5c4fdf8cd9f1ba3b97c9da2fe3262b3c0283b1", "signature": "static int SignaturePoints(nint ui, nint id, nint points, nint strokeEnds, ref int strokeCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "strokeEnds", "type": "nint" }, { "name": "strokeCount", "type": "ref int" }], "summary": "cui_signature_points" }, { "name": "SourceList", "kind": "method", "id": "method|SourceList|1|0|int|nint ui;nint id;nint sources;int count||h173d8ddb8e06588e29b9b6561cae327c824de30f3eeac0263ad449aae20a4ff5", "signature": "static int SourceList(nint ui, nint id, nint sources, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "sources", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "method", "id": "method|SpeedDial|1|0|int|nint ui;nint id;nint actions;int count;in NativeSpeedDialOpts opts||h589b0efb656624188f68c92733ef84b7e64202167ff454647d6b39f7a6f5146f", "signature": "static int SpeedDial(nint ui, nint id, nint actions, int count, in NativeSpeedDialOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "actions", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSpeedDialOpts" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "method", "id": "method|SplitBar|1|0|int|nint ui;nint id;nint items;int count;in NativeSplitBarOpts opts||h97364f98499ce83e79a8207d604d42304a76619dccbb7e144242711cd7feefe0", "signature": "static int SplitBar(nint ui, nint id, nint items, int count, in NativeSplitBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitBarOpts" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "method", "id": "method|SplitButton|1|0|int|nint ui;nint label;nint items;int count;in NativeSplitButtonOpts opts||h331bb07f0620c9a28f4f5de29ae68a66b96a56a79d295f7f529aecf5476464a4", "signature": "static int SplitButton(nint ui, nint label, nint items, int count, in NativeSplitButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitButtonOpts" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItemEnd", "kind": "method", "id": "method|SwipeItemEnd|1|0|int|nint ui||h5bd4f1ea033d2888651ca8ea05a6e9ca8f4ff11e33d9ecce300b4141f39e6311", "signature": "static int SwipeItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_swipe_item_end" }, { "name": "Textarea", "kind": "method", "id": "method|Textarea|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h5e8bc4d6c0eb6f60350f3a952b5b7ac1c677f20ac117fbec5982a24df3e7eaa0", "signature": "static int Textarea(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_textarea_ex" }, { "name": "Toast", "kind": "method", "id": "method|Toast|1|0|int|nint ui;nint title;in NativeToastOpts opts||h13689b750de406a3341573c925e1a79dc5c11ea4aeb2cf3aad8fe0526dd629f7", "signature": "static int Toast(nint ui, nint title, in NativeToastOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeToastOpts" }], "summary": "cui_toast_ex" }, { "name": "Toc", "kind": "method", "id": "method|Toc|1|0|int|nint ui;nint scrollId;nint items;int count||h1230ef692ba1345b1fbff1069d5f78b9a0a304715bed3abbaee1e82ceb24a4cb", "signature": "static int Toc(nint ui, nint scrollId, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_toc" }, { "name": "Tour", "kind": "method", "id": "method|Tour|1|0|int|nint ui;nint id;nint steps;int count;ref int step;in NativeTourOpts opts||h28473eff703cdbd0694b161e355986bc70e34dc0659fc87a6119eb709b790561", "signature": "static int Tour(nint ui, nint id, nint steps, int count, ref int step, in NativeTourOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "step", "type": "ref int" }, { "name": "opts", "type": "in NativeTourOpts" }], "summary": "cui_tour_ex" }, { "name": "TreeSort", "kind": "method", "id": "method|TreeSort|1|0|int|nint nodes;int nodeCount;int root;nint cmp;nint user||h79bd46996209a0fd369858d15348bb23447681cc8b613944658f76ba8529d25c", "signature": "static int TreeSort(nint nodes, int nodeCount, int root, nint cmp, nint user)", "parameters": [{ "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "root", "type": "int" }, { "name": "cmp", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_tree_sort" }, { "name": "TreeTableDepth", "kind": "method", "id": "method|TreeTableDepth|1|0|int|nint ui||hc408f5ee6df386b4c209cc868243614a0ed9d7c32fb85223d03be490a22102dc", "signature": "static int TreeTableDepth(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "method", "id": "method|TreeTableRow|1|0|int|nint ui||h9f2f1f1e2af816caaefbd73d6eb5c028cf4ca05ce516a6861b821ab370909f09", "signature": "static int TreeTableRow(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_row" }, { "name": "Treemap", "kind": "method", "id": "method|Treemap|1|0|int|nint ui;nint id;nint items;int count;in NativeTreemapOpts opts||hc1888700abb5f35fb2ed06350215c4685126a96420dc7007fe9df21a5d90613c", "signature": "static int Treemap(nint ui, nint id, nint items, int count, in NativeTreemapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTreemapOpts" }], "summary": "cui_treemap_ex" }, { "name": "UrlParams", "kind": "method", "id": "method|UrlParams|1|0|int|nint url;nint pairs;int cap||h4a23f39a17798b564160832286c89313233b789ff2c9d29b58ff79e7c2856e40", "signature": "static int UrlParams(nint url, nint pairs, int cap)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "cap", "type": "int" }], "summary": "cui_url_params" }, { "name": "Waffle", "kind": "method", "id": "method|Waffle|1|0|int|nint ui;nint id;nint items;int count;in NativeWaffleOpts opts||h91d5a6b00273ece9452eeaeb494d083c353c673614d055269b1169331a6b4ae4", "signature": "static int Waffle(nint ui, nint id, nint items, int count, in NativeWaffleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaffleOpts" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "method", "id": "method|WeekCalendar|1|0|int|nint ui;nint id;NativeDate weekStart;nint events;int count;in NativeWeekOpts opts||hbb095a1e64e8bbd711e67c7cfcdb9a58e9f785211803178c11cd6f1bf8b7b015", "signature": "static int WeekCalendar(nint ui, nint id, NativeDate weekStart, nint events, int count, in NativeWeekOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "weekStart", "type": "NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWeekOpts" }], "summary": "cui_week_calendar_ex" }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|nint|Accent accent||h706d6dd77c55c7ddda285af111782b2f11f32d8769bbf2cb681be21d5ac8ada9", "signature": "static nint AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "cui_accent_name" }, { "name": "AppBackend", "kind": "method", "id": "method|AppBackend|1|0|nint|nint app||h52b17123ad3c9d4bd9d419ef74b1e518ec62cddbbec3c96e735713a188ef3647", "signature": "static nint AppBackend(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_backend" }, { "name": "AppCreate", "kind": "method", "id": "method|AppCreate|1|0|nint|in NativeAppDesc desc||h35637a56c67acf9c38029480b98d63c25370c8a38b76ad57061048a14e7b3835", "signature": "static nint AppCreate(in NativeAppDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }], "summary": "cui_app_create" }, { "name": "AppNativeWindow", "kind": "method", "id": "method|AppNativeWindow|1|0|nint|nint app||h64a22aaf8ee82f2330b25966dcae3689117de90e79ce550123e6d8e3ac44b8a3", "signature": "static nint AppNativeWindow(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_native_window" }, { "name": "AppUi", "kind": "method", "id": "method|AppUi|1|0|nint|nint app||h181845c0c76d32f823bb1ae6e8b1ac2ffa8da1e9507fababe6aacd5b36ca8787", "signature": "static nint AppUi(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_ui" }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|nint|in NativeCtxDesc desc||h4eb43e2edd735d5e2a219bc13dd5e7e88e8991d095f239299ba4c8d1e1becdb7", "signature": "static nint Create(in NativeCtxDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeCtxDesc" }], "summary": "cui_create" }, { "name": "CronDescribe", "kind": "method", "id": "method|CronDescribe|1|0|nint|nint ui;nint cron||h786e314b78b7a1d02be17656e35b267435a967dc15aee3127a55a4c392f0761b", "signature": "static nint CronDescribe(nint ui, nint cron)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cron", "type": "nint" }], "summary": "cui_cron_describe" }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|1|0|nint|nint ui;int index||h47fbe595a1de4b0d7c2064f6bac755f6564e54de2ce919af26ca16d376f3a004", "signature": "static nint DroppedFile(nint ui, int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "index", "type": "int" }], "summary": "cui_dropped_file" }, { "name": "EmojiPicker", "kind": "method", "id": "method|EmojiPicker|1|0|nint|nint ui;nint id;in NativeEmojiPickerOpts opts||hd4a4fecb1d681bd9183b353fd4fcdfe846f9ec3cc23071692271717d065d270e", "signature": "static nint EmojiPicker(nint ui, nint id, in NativeEmojiPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeEmojiPickerOpts" }], "summary": "cui_emoji_picker_ex" }, { "name": "GetDrawData", "kind": "method", "id": "method|GetDrawData|1|0|nint|nint ui||h556e604418b97276b8abf660206d9ef57103fe5e6ce1b2e1b6830472e86d11d1", "signature": "static nint GetDrawData(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_draw_data" }, { "name": "GetStrings", "kind": "method", "id": "method|GetStrings|1|0|nint|nint ui||h76f1e0d35595d1e771ffc072c6754f0a77374e2794e542b92996eba3e6da5ab6", "signature": "static nint GetStrings(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_strings" }, { "name": "GlCreate", "kind": "method", "id": "method|GlCreate|1|0|nint|nint loader||haf2665bd70b61421a86f653e37f52a7a893a83f60b653d37f28c47443757d28c", "signature": "static nint GlCreate(nint loader)", "parameters": [{ "name": "loader", "type": "nint" }], "summary": "cui_gl_create" }, { "name": "HttpMethodName", "kind": "method", "id": "method|HttpMethodName|1|0|nint|int method||hb7e8187e99b53389dc6e86e151d986b3cf309f38635df0577a3fe962daa521ae", "signature": "static nint HttpMethodName(int method)", "parameters": [{ "name": "method", "type": "int" }], "summary": "cui_http_method_name" }, { "name": "HttpReason", "kind": "method", "id": "method|HttpReason|1|0|nint|int status||h695531bbc242279e6965807c5ef206851620bc61925a48efc1c70490e259e991", "signature": "static nint HttpReason(int status)", "parameters": [{ "name": "status", "type": "int" }], "summary": "cui_http_reason" }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|nint|Key key||h33e5cc4941073359fa23837fde165bfa9ecb77851d42ec00ee3f76716ba7d095", "signature": "static nint KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "cui_key_name" }, { "name": "LogGet", "kind": "method", "id": "method|LogGet|1|0|nint|in NativeLogBuffer buf;int i;nint text||h5eb523fd02830629ff354a65a7f0c9484a2db18400dd03d40b164c8544a52139", "signature": "static nint LogGet(in NativeLogBuffer buf, int i, nint text)", "parameters": [{ "name": "buf", "type": "in NativeLogBuffer" }, { "name": "i", "type": "int" }, { "name": "text", "type": "nint" }], "summary": "cui_log_get" }, { "name": "QueryOpName", "kind": "method", "id": "method|QueryOpName|1|0|nint|QueryType type;int op||hed4479b8d55e4aa5481e595c8b70182622151b68aad3431d8bad265aafd06359", "signature": "static nint QueryOpName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "cui_query_op_name" }, { "name": "ShortcutLabel", "kind": "method", "id": "method|ShortcutLabel|1|0|nint|nint ui;NativeKeyCombo combo||hfd8f3dac138b4eccd820249ccad5a1166cf9a64f912805326c24f1606089921a", "signature": "static nint ShortcutLabel(nint ui, NativeKeyCombo combo)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "combo", "type": "NativeKeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "State", "kind": "method", "id": "method|State|1|0|nint|nint ui;uint id;ulong size||h733284cebac51d740bebc087d764afa0465ab8010b6a0ad7357922e8687e9d9e", "signature": "static nint State(nint ui, uint id, ulong size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "size", "type": "ulong" }], "summary": "cui_state" }, { "name": "SwCreate", "kind": "method", "id": "method|SwCreate|1|0|nint|||h85597fbde117bcfd906be42a5c6a3ede7c97fcede8c3e83adaaf4bcd0d2a149f", "signature": "static nint SwCreate()", "summary": "cui_sw_create" }, { "name": "ThemeGet", "kind": "method", "id": "method|ThemeGet|1|0|nint|nint ui||h38d0e1dce01bdd529849c410dd4462bf3383282d767baa343a527aa15ef23465", "signature": "static nint ThemeGet(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_get" }, { "name": "BoxBegin", "kind": "method", "id": "method|BoxBegin|1|0|uint|nint ui;in NativeBox opts||h78b4f546a22c8dcff5d224c08405fd0b5e2821851dcdb4e55096c0e8693f0956", "signature": "static uint BoxBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_box_begin" }, { "name": "ColumnBegin", "kind": "method", "id": "method|ColumnBegin|1|0|uint|nint ui;in NativeBox opts||h45c09e63ed196b77333af8e46712ff2505cc3f8bcc07a627029a9cd094146d62", "signature": "static uint ColumnBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_column_begin" }, { "name": "LastId", "kind": "method", "id": "method|LastId|1|0|uint|nint ui||h83f5914b8fbddf1b6874121e162f8f3564ee535fdfd0aa48b3aedc3f658526e2", "signature": "static uint LastId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_id" }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|1|0|uint|nint ui;nint str||h810e16e55563121eca53f068456f007d3a658359e80b4d6baf960fb19eda3a49", "signature": "static uint MakeId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_make_id" }, { "name": "RowBegin", "kind": "method", "id": "method|RowBegin|1|0|uint|nint ui;in NativeBox opts||h51dd108e72913a38e43c2096668b66dca76f36804a325a70e49280eba7b71acd", "signature": "static uint RowBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_row_begin" }, { "name": "DockSave", "kind": "method", "id": "method|DockSave|1|0|ulong|nint ui;nint id;nint buf;ulong cap||hc7b31eaf2b2669b65e8c79265700578adeabf8649e00133d5fe5c1044177283b", "signature": "static ulong DockSave(nint ui, nint id, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_dock_save" }, { "name": "FrameCount", "kind": "method", "id": "method|FrameCount|1|0|ulong|nint ui||hb2e86c14dd9b07f2eea60b7c8d55b65e02ffff62e411ee7cb0672b10e126b5b9", "signature": "static ulong FrameCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_frame_count" }, { "name": "ImageCreate", "kind": "method", "id": "method|ImageCreate|1|0|ulong|nint ui;int w;int h;nint rgba||h93ddefe58f45619e4367e05ebf526533f2395aebc589e8f9a7e9b5c17cb51b71", "signature": "static ulong ImageCreate(nint ui, int w, int h, nint rgba)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "w", "type": "int" }, { "name": "h", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_image_create" }, { "name": "ImageLoad", "kind": "method", "id": "method|ImageLoad|1|0|ulong|nint ui;nint path;ref int w;ref int h||h664c095f4833f0affe5061b62defbec75a746409a47fff7904c1b584487343fa", "signature": "static ulong ImageLoad(nint ui, nint path, ref int w, ref int h)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_image_load" }, { "name": "QueryText", "kind": "method", "id": "method|QueryText|1|0|ulong|nint fields;int fieldCount;nint nodes;int count;nint out;ulong cap||hc826f11de3391c47b7453dd6aabc935b95a7c47a3f4876ac9cf1c9b1ec7430d8", "signature": "static ulong QueryText(nint fields, int fieldCount, nint nodes, int count, nint @out, ulong cap)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_query_text" }, { "name": "AccordionEnd", "kind": "method", "id": "method|AccordionEnd|1|0|void|nint ui||h3d97ebd000bc2ec6e1a7150b220a9becc237dc2bba7aded857d0ea19c78017a0", "signature": "static void AccordionEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_accordion_end" }, { "name": "AgentStatus", "kind": "method", "id": "method|AgentStatus|1|0|void|nint ui;nint text;in NativeAgentStatusOpts opts||h3677239a52459a84a94838abb70788ec3897854d3ce45365570b8f83594a74ae", "signature": "static void AgentStatus(nint ui, nint text, in NativeAgentStatusOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeAgentStatusOpts" }], "summary": "cui_agent_status_ex" }, { "name": "AppDestroy", "kind": "method", "id": "method|AppDestroy|1|0|void|nint app||hc989924b2fd6d017f98d26fff662487b516cbab9500766f46d09255919df7950", "signature": "static void AppDestroy(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_destroy" }, { "name": "AppQuit", "kind": "method", "id": "method|AppQuit|1|0|void|nint app||hd6cde514c822ba2738ba9206f51fb83f9f92c4b6dc7b57f3205c1b2ec2155ce0", "signature": "static void AppQuit(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_quit" }, { "name": "AppSetSize", "kind": "method", "id": "method|AppSetSize|1|0|void|nint app;int width;int height||hd48949a2e472726eb44e6fc0879c3ea5484809ef2886b68422478fd7bec09d5b", "signature": "static void AppSetSize(nint app, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_set_size" }, { "name": "AppSetTitle", "kind": "method", "id": "method|AppSetTitle|1|0|void|nint app;nint title||ha3182099a994045166b2e57cb91f7e7db7a36a218a967dd2deb49aead615196e", "signature": "static void AppSetTitle(nint app, nint title)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_app_set_title" }, { "name": "Avatar", "kind": "method", "id": "method|Avatar|1|0|void|nint ui;nint name;in NativeAvatarOpts opts||ha7c7fbd501ba6d9a9d0c85f18993dbc5f695aefb665ecd71a483b21a8c3377ee", "signature": "static void Avatar(nint ui, nint name, in NativeAvatarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeAvatarOpts" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "method", "id": "method|AvatarGroup|1|0|void|nint ui;nint names;int count;int maxVisible;float size||hd3b5566e6c93bb5d7fae387200441ac86d6327854ecf6e3c4a06b607f77bcffe", "signature": "static void AvatarGroup(nint ui, nint names, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "names", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "method", "id": "method|Badge|1|0|void|nint ui;nint text;in NativeBadgeOpts opts||h4c699e61ab328131bdd5a979f9042f4fafff7936f9a9a83e0f2d684598518848", "signature": "static void Badge(nint ui, nint text, in NativeBadgeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeBadgeOpts" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||haf0da3ee52487e3934a5089881f58e28122f995fc45f0b8639ffb1e8b41e372c", "signature": "static void BarChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_bar_chart_ex" }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|1|0|void|nint ui;float dt||h0577f006e4965cf88c6cd51c68044ddf72298474e56596fcd27493fea2d564f7", "signature": "static void BeginFrame(nint ui, float dt)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dt", "type": "float" }], "summary": "cui_begin_frame" }, { "name": "BoxEnd", "kind": "method", "id": "method|BoxEnd|1|0|void|nint ui||h4d9efc3d8f8ab981898dbe51c6008187153af8998858cae8e0858f28c2551207", "signature": "static void BoxEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_box_end" }, { "name": "ButtonGroupBegin", "kind": "method", "id": "method|ButtonGroupBegin|1|0|void|nint ui||h0be043c8228e09eadff1fdf48fdf8a66080fd96c5ef0e9b37c0cc15269b57f42", "signature": "static void ButtonGroupBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_begin" }, { "name": "ButtonGroupEnd", "kind": "method", "id": "method|ButtonGroupEnd|1|0|void|nint ui||h02a77719946880966ef2607e9618fff0d27e7c0065a03aab8a008dd70e998a12", "signature": "static void ButtonGroupEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_end" }, { "name": "CardEnd", "kind": "method", "id": "method|CardEnd|1|0|void|nint ui||hb2b95a09c234214774fc081e54ee7667e81fa37a371cd5d16ce1480dfdb60c4d", "signature": "static void CardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_end" }, { "name": "CardStackBegin", "kind": "method", "id": "method|CardStackBegin|1|0|void|nint ui;nint id;int count;in NativeCardStackOpts opts||h3d0bcb79a71984d808a89084a4967995247c9e125c4ca94c2b207e6b96afc939", "signature": "static void CardStackBegin(nint ui, nint id, int count, in NativeCardStackOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCardStackOpts" }], "summary": "cui_card_stack_begin" }, { "name": "CardStackItemBegin", "kind": "method", "id": "method|CardStackItemBegin|1|0|void|nint ui;int depth||h8d8dd4e573301cd6d4e5489717cedafd511c28b35aa8d35537bd8de8eea7a3e7", "signature": "static void CardStackItemBegin(nint ui, int depth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CardStackItemEnd", "kind": "method", "id": "method|CardStackItemEnd|1|0|void|nint ui||h1da0d16400e5185d4662ae573e720650ce7b2bbaf941ee9a7b61b6e2a81c2d30", "signature": "static void CardStackItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_item_end" }, { "name": "CarouselEnd", "kind": "method", "id": "method|CarouselEnd|1|0|void|nint ui||h88ea0dcb5f23fd135d74954d156bc1ff125fdb2bd9df4ec846916a88306bff74", "signature": "static void CarouselEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_end" }, { "name": "CarouselSlideBegin", "kind": "method", "id": "method|CarouselSlideBegin|1|0|void|nint ui||h3599a68cab9230fb08a3258faaddefe1ad6161a4751519cf1c5a7b1f3d05b88c", "signature": "static void CarouselSlideBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_begin" }, { "name": "CarouselSlideEnd", "kind": "method", "id": "method|CarouselSlideEnd|1|0|void|nint ui||h9d93eb90d33062dc61cddff987460dea38282ff61648715c18c958d279799780", "signature": "static void CarouselSlideEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_end" }, { "name": "ChatDivider", "kind": "method", "id": "method|ChatDivider|1|0|void|nint ui;nint label||hfd5fbcb1a8c9848c9cae6bcfb8ace33dea4f91925d47c2ec2a7a551ecaddc080", "signature": "static void ChatDivider(nint ui, nint label)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "method", "id": "method|ChatMessage|1|0|void|nint ui;nint text;in NativeChatOpts opts||h9e6d0b3029b5c2a5c4d1d658db09d4bc4ff66df880e976004f40e1ef92503075", "signature": "static void ChatMessage(nint ui, nint text, in NativeChatOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeChatOpts" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "method", "id": "method|Code|1|0|void|nint ui;nint text||h99721e62b2be9508d09c56055eece668035a2c7fc409d3f008528fbea17ed941", "signature": "static void Code(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "method", "id": "method|CodeBlock|1|0|void|nint ui;nint id;nint code;in NativeCodeOpts opts||hc751583c23a944f06a82072454dab93ff848eaf6a783795ed53ef837152ce5bf", "signature": "static void CodeBlock(nint ui, nint id, nint code, in NativeCodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "opts", "type": "in NativeCodeOpts" }], "summary": "cui_code_block_ex" }, { "name": "CodeEditorFind", "kind": "method", "id": "method|CodeEditorFind|1|0|void|nint ui;nint id;nint query||h86eb240d8430ac800b8696eaf2e4dde832bb2d4df1029cefecb3cc66b188f092", "signature": "static void CodeEditorFind(nint ui, nint id, nint query)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "query", "type": "nint" }], "summary": "cui_code_editor_find" }, { "name": "CodeEditorGoto", "kind": "method", "id": "method|CodeEditorGoto|1|0|void|nint ui;nint id;int line;int column||h9f1be9ecc4d2d37691a36fcc31fd91af3053120e20a573470af630765075c911", "signature": "static void CodeEditorGoto(nint ui, nint id, int line, int column)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "cui_code_editor_goto" }, { "name": "CodeEditorSelect", "kind": "method", "id": "method|CodeEditorSelect|1|0|void|nint ui;nint id;int anchor;int cursor||h3f435189695be2273ac362b4b8bb4c94c643bb1d5f309e0e171b605288490a7e", "signature": "static void CodeEditorSelect(nint ui, nint id, int anchor, int cursor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "cui_code_editor_select" }, { "name": "ContextMenuEnd", "kind": "method", "id": "method|ContextMenuEnd|1|0|void|nint ui||h921a6627edea7d846f50a3e71d7b3e158ceadca1488f42e38e93435efd23a46f", "signature": "static void ContextMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_context_menu_end" }, { "name": "ContextMeter", "kind": "method", "id": "method|ContextMeter|1|0|void|nint ui;nint id;float used;float limit;in NativeContextOpts opts||h47503ec60b3931c234feb4cd2d90839bdc3a1bb69dd18f89b089869f5a1c895d", "signature": "static void ContextMeter(nint ui, nint id, float used, float limit, in NativeContextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "opts", "type": "in NativeContextOpts" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "method", "id": "method|Countdown|1|0|void|nint ui;nint id;double secondsLeft;in NativeCountdownOpts opts||hb12db0b3493545831fc11d40595fe30a6cf1b530f5533674661079b5ecc31292", "signature": "static void Countdown(nint ui, nint id, double secondsLeft, in NativeCountdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "secondsLeft", "type": "double" }, { "name": "opts", "type": "in NativeCountdownOpts" }], "summary": "cui_countdown_ex" }, { "name": "Counter", "kind": "method", "id": "method|Counter|1|0|void|nint ui;nint id;double value;in NativeCounterOpts opts||h0fe352fbd522ca0b3418a4868a6bc25bdd30bd5b7a45c3d575b696fa20480b07", "signature": "static void Counter(nint ui, nint id, double value, in NativeCounterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "double" }, { "name": "opts", "type": "in NativeCounterOpts" }], "summary": "cui_counter_ex" }, { "name": "DataGridCell", "kind": "method", "id": "method|DataGridCell|1|0|void|nint ui||h73b91589e91a8d1c4fc2073886ea6ff3cd347f193f612e4c8ae3082fce77bb43", "signature": "static void DataGridCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "method", "id": "method|DataGridCellText|1|0|void|nint ui;nint text||h370160bb44c12b1662d2a793b63e6c0a6aca8fae93f701d7e43389419aa2172a", "signature": "static void DataGridCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_data_grid_cell_text" }, { "name": "DataGridEnd", "kind": "method", "id": "method|DataGridEnd|1|0|void|nint ui||h5a5f8cdf9f134bef7b75a46527cce4859b6badb8313e4fe7ab28a5450fed97dc", "signature": "static void DataGridEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_end" }, { "name": "Destroy", "kind": "method", "id": "method|Destroy|1|0|void|nint ui||h05cb071f6685432b523c0036d1761c8893330558489e46e6985cc34dd129a3fe", "signature": "static void Destroy(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_destroy" }, { "name": "DialogEnd", "kind": "method", "id": "method|DialogEnd|1|0|void|nint ui||h9bd7a6a951ef94643a54e664aad2535ec3a7207333a2d8e783d8149451981865", "signature": "static void DialogEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_end" }, { "name": "DialogFooterBegin", "kind": "method", "id": "method|DialogFooterBegin|1|0|void|nint ui||hf839714f8840afc193f5a953838c7c6f9547c52a59b7f6be7bd0a708283b4307", "signature": "static void DialogFooterBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_begin" }, { "name": "DialogFooterEnd", "kind": "method", "id": "method|DialogFooterEnd|1|0|void|nint ui||h5d76c827818ed14d8e202fcabac61bc9196e05b890413440004aaddbec16e336", "signature": "static void DialogFooterEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_end" }, { "name": "DockBegin", "kind": "method", "id": "method|DockBegin|1|0|void|nint ui;nint id;in NativeDockOpts opts||h6f3edeceeaf66c008a7996f96822dbd6d090c09f8bf4cfc6d6b4e778e7d8b5f2", "signature": "static void DockBegin(nint ui, nint id, in NativeDockOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockOpts" }], "summary": "cui_dock_begin" }, { "name": "DockEnd", "kind": "method", "id": "method|DockEnd|1|0|void|nint ui||hb760c60156b670f25e6f5d8cbc9737800b9d21c04e9535b205b0ba253774446d", "signature": "static void DockEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_end" }, { "name": "DockPanelEnd", "kind": "method", "id": "method|DockPanelEnd|1|0|void|nint ui||h5de954501994a4036fa179afa8289522d9752e1163c4188891a0abae283ed03a", "signature": "static void DockPanelEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_panel_end" }, { "name": "DockSeparator", "kind": "method", "id": "method|DockSeparator|1|0|void|nint ui||h15a570c703a4ce8ae58a2b8b48ead6e62f25de766708db20c7715a8b4bbe3434", "signature": "static void DockSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_separator" }, { "name": "DockspaceBegin", "kind": "method", "id": "method|DockspaceBegin|1|0|void|nint ui;nint id;in NativeDockspaceOpts opts||h00aaa3e5f30c8089c428f17db11c00696eb0a3c959fa8a01013dcf8705152753", "signature": "static void DockspaceBegin(nint ui, nint id, in NativeDockspaceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockspaceOpts" }], "summary": "cui_dockspace_begin_ex" }, { "name": "DockspaceEnd", "kind": "method", "id": "method|DockspaceEnd|1|0|void|nint ui||hdc6d3cdf73135422a36fc8ea6bb35188568f5636e9cb4b4fdcf94c091abdfd75", "signature": "static void DockspaceEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dockspace_end" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|1|0|void|nint ui;nint id;nint values;nint labels;int count;in NativeChartOpts opts||hc0548e7a422b79e5d257e4b35eb6309134be0175ce42f28f063fbb6590f3223f", "signature": "static void DonutChart(nint ui, nint id, nint values, nint labels, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_donut_chart_ex" }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|1|0|void|nint ui;NativeVec2 center;float radius;float a0;float a1;float thickness;NativeColor color||h8295de68de771f7ea4b447a1b85536fc822114e72d10c5c5d5a8f77b855e8b65", "signature": "static void DrawArc(nint ui, NativeVec2 center, float radius, float a0, float a1, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "a0", "type": "float" }, { "name": "a1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_arc" }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|1|0|void|nint ui;NativeVec2 center;float radius;NativeColor color||hb2c7ac883387890ae23baf3494c5f980bbff8565f3aa92e4b1c68bfc815bc634", "signature": "static void DrawCircle(nint ui, NativeVec2 center, float radius, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_circle" }, { "name": "DrawEmoji", "kind": "method", "id": "method|DrawEmoji|1|0|void|nint ui;nint utf8;int len;NativeRect r||h22f8e14bbcea26fad35db047ca50800680362cc351944170bc0ee2cd483f4cd6", "signature": "static void DrawEmoji(nint ui, nint utf8, int len, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|1|0|void|nint ui;nint icon;NativeRect r;float size;NativeColor color||h5b0d1e4fd4dff20bc9477435bc42d68f4ad7d83a08f09a30a929c5edc919364b", "signature": "static void DrawIcon(nint ui, nint icon, NativeRect r, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_icon" }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|1|0|void|nint ui;ulong tex;NativeRect r;NativeRect uv;NativeCorners radius;NativeColor tint||h3490d22e3065d7b9e7a1f76caf8e4b4a9712702cdc85c15997db41d1bb7f0730", "signature": "static void DrawImage(nint ui, ulong tex, NativeRect r, NativeRect uv, NativeCorners radius, NativeColor tint)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "r", "type": "NativeRect" }, { "name": "uv", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "tint", "type": "NativeColor" }], "summary": "cui_draw_image" }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|1|0|void|nint ui;NativeVec2 a;NativeVec2 b;float thickness;NativeColor color||he3578bcb0522121dfd056009e1b35d5d30a75130a7a38c0f51ed6d8fac4fc3b0", "signature": "static void DrawLine(nint ui, NativeVec2 a, NativeVec2 b, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "a", "type": "NativeVec2" }, { "name": "b", "type": "NativeVec2" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_line" }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|1|0|void|nint ui;nint points;int count;NativeColor color||hee4fb990119035a52fcf521dd800de932f8242a1e8a16076d55dcf65f4100dc9", "signature": "static void DrawPolygon(nint ui, nint points, int count, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_polygon" }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|1|0|void|nint ui;nint points;int count;float thickness;NativeColor color;byte closed||h4ad84f0066e3ab9a3a06cf60ccf987cb6bc98a64f0f3fcb9460f78bd3a809c8a", "signature": "static void DrawPolyline(nint ui, nint points, int count, float thickness, NativeColor color, byte closed)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }, { "name": "closed", "type": "byte" }], "summary": "cui_draw_polyline" }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill||hfe26311cf9bae1a4548048b162121debfa9ed2c49fe5b6156697b75c61ef16ac", "signature": "static void DrawRect(nint ui, NativeRect r, NativeCorners radius, NativeColor fill)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }], "summary": "cui_draw_rect" }, { "name": "DrawRectBorder", "kind": "method", "id": "method|DrawRectBorder|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill;NativeColor border;float borderWidth||h0c3c3d48ab680a667e97dd2c382028f9c818564a905007232aaf41011f511106", "signature": "static void DrawRectBorder(nint ui, NativeRect r, NativeCorners radius, NativeColor fill, NativeColor border, float borderWidth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }, { "name": "border", "type": "NativeColor" }, { "name": "borderWidth", "type": "float" }], "summary": "cui_draw_rect_border" }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor top;NativeColor bottom||h20692c7cd3bd979d311205e190b3c434adb4e5c4e20999958918dc0db918ff41", "signature": "static void DrawRectGradient(nint ui, NativeRect r, NativeCorners radius, NativeColor top, NativeColor bottom)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "top", "type": "NativeColor" }, { "name": "bottom", "type": "NativeColor" }], "summary": "cui_draw_rect_gradient" }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|1|0|void|nint ui;NativeRect r;NativeCorners radius;float blur;float spread;NativeVec2 offset;NativeColor color||hce3e65faa7aa8dc55c83a032ad2f23ad8dc999105f20b0bbfeaa1f774e1a49b3", "signature": "static void DrawShadow(nint ui, NativeRect r, NativeCorners radius, float blur, float spread, NativeVec2 offset, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "blur", "type": "float" }, { "name": "spread", "type": "float" }, { "name": "offset", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_shadow" }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|1|0|void|nint ui;Font font;float size;NativeVec2 pos;NativeColor color;nint text;int len||hc2f27110ba2d6fbe45d096508ff3fad13a507ee2bf39df0e0d443bc523e0c664", "signature": "static void DrawText(nint ui, Font font, float size, NativeVec2 pos, NativeColor color, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "pos", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_draw_text" }, { "name": "Emoji", "kind": "method", "id": "method|Emoji|1|0|void|nint ui;nint utf8;float size||h03c0443d50e5a072c0253a97bce2fa8faee0949ec19ecd141417da32f8fd5329", "signature": "static void Emoji(nint ui, nint utf8, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|1|0|void|nint ui||h31b18c88ba32cd1c6cff6cb5b6d37c8737f4f80a8df45b310f28cac1548a28e5", "signature": "static void EndFrame(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_end_frame" }, { "name": "ExpandableCardEnd", "kind": "method", "id": "method|ExpandableCardEnd|1|0|void|nint ui||h021bc28e25114a32e55f17a5833e96d5310be1e1406fcd3b8fb9953100360644", "signature": "static void ExpandableCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_expandable_card_end" }, { "name": "FlameSort", "kind": "method", "id": "method|FlameSort|1|0|void|nint spans;int count||h0991e6f38190c13942ffa39a630d77506b361220708585e719a9c35eb9d97659", "signature": "static void FlameSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_flame_sort" }, { "name": "FontAddFallback", "kind": "method", "id": "method|FontAddFallback|1|0|void|nint ui;Font font;Font fallback||hdf010fb946a48d289df8be37b90cfa127248a6b0b637cbf46fdbabcadaefefdc", "signature": "static void FontAddFallback(nint ui, Font font, Font fallback)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "cui_font_add_fallback" }, { "name": "FontSetRole", "kind": "method", "id": "method|FontSetRole|1|0|void|nint ui;Font role;Font font||habee93e00846743b067b5bc61fefcc6e9708412e2fa47530423be4dc7f05f0e7", "signature": "static void FontSetRole(nint ui, Font role, Font font)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "cui_font_set_role" }, { "name": "Gap", "kind": "method", "id": "method|Gap|1|0|void|nint ui;float size||h72ded2697cd72ab69e9854d5b60bbdab7d81198e2d51aafd8b161d9dad5f76f2", "signature": "static void Gap(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "method", "id": "method|Gauge|1|0|void|nint ui;nint label;float value;float size||h7f72645a7be87c086ff175cefaa6de27d61de542a45562f0ee65926cc4159201", "signature": "static void Gauge(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_gauge" }, { "name": "GlDestroy", "kind": "method", "id": "method|GlDestroy|1|0|void|nint r||h0409b70021c2ece5ae11d86ffa0a1b54a38b4d8871d19f9fbc68a159a9368fec", "signature": "static void GlDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_destroy" }, { "name": "GlReadPixels", "kind": "method", "id": "method|GlReadPixels|1|0|void|nint r;int width;int height;nint rgba||haee94127f9e202f09a7395d3fc94e7655c4b9dbdd1e3442de02294565ea69d3b", "signature": "static void GlReadPixels(nint r, int width, int height, nint rgba)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_gl_read_pixels" }, { "name": "GlRender", "kind": "method", "id": "method|GlRender|1|0|void|nint r;in NativeDrawData dd;byte clear||h28c93a9bcb0a414099f8be1f4ae2d08dfe74881324f5e398a8f7ca2b6342d2e2", "signature": "static void GlRender(nint r, in NativeDrawData dd, byte clear)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "clear", "type": "byte" }], "summary": "cui_gl_render" }, { "name": "GradientText", "kind": "method", "id": "method|GradientText|1|0|void|nint ui;nint text;in NativeGradientTextOpts opts||h6c797e7f12adc043c2730857e1e257efee47cd48a6574ca561e9edd7348d6eb3", "signature": "static void GradientText(nint ui, nint text, in NativeGradientTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeGradientTextOpts" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "method", "id": "method|Heading|1|0|void|nint ui;nint text;int level||ha3ccb600076c2097c212a0b747c3a17ee1400a5050e89087bb278fa0d69c0a56", "signature": "static void Heading(nint ui, nint text, int level)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "level", "type": "int" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "method", "id": "method|HexViewGoto|1|0|void|nint ui;nint id;ulong offset||h667e85293cd620c54580c15f4a5da0cf0d0ea54af458f211a22ee6b927590713", "signature": "static void HexViewGoto(nint ui, nint id, ulong offset)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "offset", "type": "ulong" }], "summary": "cui_hex_view_goto" }, { "name": "HoverCardEnd", "kind": "method", "id": "method|HoverCardEnd|1|0|void|nint ui||h5cfa5bf8fd516aeba07a65fa1d7553759b7ecd2643d8054765a4684f067d85fe", "signature": "static void HoverCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_hover_card_end" }, { "name": "Icon", "kind": "method", "id": "method|Icon|1|0|void|nint ui;nint icon;float size;NativeColor color||hfe918e7ebd91e9d0f04d1321aa645b768e0750e48e2f70701bdb84394c7e4bdb", "signature": "static void Icon(nint ui, nint icon, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_icon" }, { "name": "Image", "kind": "method", "id": "method|Image|1|0|void|nint ui;ulong tex;in NativeImageOpts opts||h1a8243e6c4b0a2e148a5fd2e2b5621c123bc1e7be99ae427e3fa2992efef3020", "signature": "static void Image(nint ui, ulong tex, in NativeImageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "opts", "type": "in NativeImageOpts" }], "summary": "cui_image_ex" }, { "name": "ImageDestroy", "kind": "method", "id": "method|ImageDestroy|1|0|void|nint ui;ulong tex||hebd8daa0b3ae426e7024d0aa49ee04a9a233739236f55458c5feb80af1a86a9d", "signature": "static void ImageDestroy(nint ui, ulong tex)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }], "summary": "cui_image_destroy" }, { "name": "InputFileDrop", "kind": "method", "id": "method|InputFileDrop|1|0|void|nint ui;nint paths;int count;float x;float y||h2dc0aedb8bd58c5dabe372e22f6a7c5338330b523568883aae3c63281400af28", "signature": "static void InputFileDrop(nint ui, nint paths, int count, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "paths", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_drop" }, { "name": "InputFileHover", "kind": "method", "id": "method|InputFileHover|1|0|void|nint ui;byte hovering;float x;float y||hfce5ebf2d37de57aeea32ce290ddb90f6a34478a69e1b80e64e15369c054cfe1", "signature": "static void InputFileHover(nint ui, byte hovering, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "hovering", "type": "byte" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_hover" }, { "name": "InputFocus", "kind": "method", "id": "method|InputFocus|1|0|void|nint ui;byte windowFocused||hb9c96e7b6b0b4495072fdbfc2b45487d04e64d46106d311f6b41f9ca0979dd5b", "signature": "static void InputFocus(nint ui, byte windowFocused)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "windowFocused", "type": "byte" }], "summary": "cui_input_focus" }, { "name": "InputKey", "kind": "method", "id": "method|InputKey|1|0|void|nint ui;Key key;byte down;int mods||he9e25baee090dd81f87a3359f812b0affe80d87f185a5e496c5f94d4d600b4a7", "signature": "static void InputKey(nint ui, Key key, byte down, int mods)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }, { "name": "down", "type": "byte" }, { "name": "mods", "type": "int" }], "summary": "cui_input_key" }, { "name": "InputMouseButton", "kind": "method", "id": "method|InputMouseButton|1|0|void|nint ui;MouseButton button;byte down||h6270e6c39ec308c89fdc117c2bc93e497b893943bf9c0f297eb3bc8bd9926c3c", "signature": "static void InputMouseButton(nint ui, MouseButton button, byte down)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "button", "type": "MouseButton" }, { "name": "down", "type": "byte" }], "summary": "cui_input_mouse_button" }, { "name": "InputMouseLeave", "kind": "method", "id": "method|InputMouseLeave|1|0|void|nint ui||h9036a64e5dd7d1da6320ba5086cefe6e3867e714461040256010cf82d367941e", "signature": "static void InputMouseLeave(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_input_mouse_leave" }, { "name": "InputMouseMove", "kind": "method", "id": "method|InputMouseMove|1|0|void|nint ui;float x;float y||hd0c123e0767faf579c286e823d9a962b112570997e9e663592cbd209faa1031a", "signature": "static void InputMouseMove(nint ui, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_mouse_move" }, { "name": "InputScroll", "kind": "method", "id": "method|InputScroll|1|0|void|nint ui;float dx;float dy||hc8cbc117e3db6a84144252e54692e3b66351e54d1c46990d7afde3e8b30195a4", "signature": "static void InputScroll(nint ui, float dx, float dy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dx", "type": "float" }, { "name": "dy", "type": "float" }], "summary": "cui_input_scroll" }, { "name": "InputText", "kind": "method", "id": "method|InputText|1|0|void|nint ui;nint utf8||hfb99b27e7589d689af11e1f3b33b999fd83f8b96dfc59bfec214a2d9ed87e63c", "signature": "static void InputText(nint ui, nint utf8)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }], "summary": "cui_input_text" }, { "name": "InspectorEnd", "kind": "method", "id": "method|InspectorEnd|1|0|void|nint ui||hbae2a784f117cc7cf8fde59d927783452fb610145ee483403247a944453c2ee4", "signature": "static void InspectorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_inspector_end" }, { "name": "KanbanBegin", "kind": "method", "id": "method|KanbanBegin|1|0|void|nint ui;nint id||h3a6b1c97ed7644e95a939ad84eb74872b36457939226042cb87047ea3415722c", "signature": "static void KanbanBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_kanban_begin" }, { "name": "KanbanCardEnd", "kind": "method", "id": "method|KanbanCardEnd|1|0|void|nint ui||h6e4eb5e54f70e5e1b090f9fb90691e52a75493fc367b8dca9b723cf7fe51af88", "signature": "static void KanbanCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_card_end" }, { "name": "KanbanColumnEnd", "kind": "method", "id": "method|KanbanColumnEnd|1|0|void|nint ui||h9b6ffeadf22b51cea43f39f69a6c0af698e8dd7afba1ba450a994457d7bb3af5", "signature": "static void KanbanColumnEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_column_end" }, { "name": "Kbd", "kind": "method", "id": "method|Kbd|1|0|void|nint ui;nint keys||h9a69f5968b341ca3bc4847f30a367580e3a295109d39c5a22d98f4a2e4413d28", "signature": "static void Kbd(nint ui, nint keys)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "keys", "type": "nint" }], "summary": "cui_kbd" }, { "name": "Label", "kind": "method", "id": "method|Label|1|0|void|nint ui;nint text||h662088f013009dfe935af56487bec74180d254e361741c4e018b2fa56a1f0353", "signature": "static void Label(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||hbafa428eb32bcb4432f697971202f9feb226e72be253d1846779b4c42195fc35", "signature": "static void LineChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_line_chart_ex" }, { "name": "Loader", "kind": "method", "id": "method|Loader|1|0|void|nint ui;in NativeLoaderOpts opts||he7826de7d57fcc29cdd3f4f18ad2b445818fbe8e1dda524d58d9f0192869e1ef", "signature": "static void Loader(nint ui, in NativeLoaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeLoaderOpts" }], "summary": "cui_loader_ex" }, { "name": "LogAppendText", "kind": "method", "id": "method|LogAppendText|1|0|void|ref NativeLogBuffer buf;LogLevel level;double time;nint text;int len||h4a7ed9d39233b97d0669e5a37da7ee40aa53dad0a7cf65470776649966b86e51", "signature": "static void LogAppendText(ref NativeLogBuffer buf, LogLevel level, double time, nint text, int len)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "time", "type": "double" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_log_append_text" }, { "name": "LogAppendv", "kind": "method", "id": "method|LogAppendv|1|0|void|ref NativeLogBuffer buf;LogLevel level;nint fmt;nint ap||hee49e56c9ba82b42b6b99183ff76f0f63f31b9ba7042c57f73ad71629d84df23", "signature": "static void LogAppendv(ref NativeLogBuffer buf, LogLevel level, nint fmt, nint ap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "fmt", "type": "nint" }, { "name": "ap", "type": "nint" }], "summary": "cui_log_appendv" }, { "name": "LogClear", "kind": "method", "id": "method|LogClear|1|0|void|ref NativeLogBuffer buf||h7bae18e46b5b4237b0f1cd653cef0790433b1718a8ce8005293d709c247b6295", "signature": "static void LogClear(ref NativeLogBuffer buf)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }], "summary": "cui_log_clear" }, { "name": "LogInit", "kind": "method", "id": "method|LogInit|1|0|void|ref NativeLogBuffer buf;nint lines;int lineCap;nint text;ulong textCap||ha8586cc666fb05a2a524b29b0d41553930d426c119835289cbd689465aa78f60", "signature": "static void LogInit(ref NativeLogBuffer buf, nint lines, int lineCap, nint text, ulong textCap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }], "summary": "cui_log_init" }, { "name": "LogView", "kind": "method", "id": "method|LogView|1|0|void|nint ui;nint id;ref NativeLogBuffer buf;in NativeLogViewOpts opts||h3bf31c940bcf0f123937456ea18917c5b12879732b8c742acf7864b43941bce8", "signature": "static void LogView(nint ui, nint id, ref NativeLogBuffer buf, in NativeLogViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "opts", "type": "in NativeLogViewOpts" }], "summary": "cui_log_view_ex" }, { "name": "MenuBarBegin", "kind": "method", "id": "method|MenuBarBegin|1|0|void|nint ui;nint id;in NativeMenuBarOpts opts||h2d170d38dd10fffeba6f35c2286b8e949c1277d362990277a723f1c7f53c2061", "signature": "static void MenuBarBegin(nint ui, nint id, in NativeMenuBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarOpts" }], "summary": "cui_menu_bar_begin" }, { "name": "MenuBarEnd", "kind": "method", "id": "method|MenuBarEnd|1|0|void|nint ui||hb13e4f4b0dcb3f8fd8d21d8b00ea5fa6017723b169df7398cf86511fddc6e8f3", "signature": "static void MenuBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_end" }, { "name": "MenuBarMenuEnd", "kind": "method", "id": "method|MenuBarMenuEnd|1|0|void|nint ui||hed83615b225f71ed8013d397272be3081c1221a7036bbee6e4346e0c6777179f", "signature": "static void MenuBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_menu_end" }, { "name": "MenuEnd", "kind": "method", "id": "method|MenuEnd|1|0|void|nint ui||hd514b968798469a91f7171fc3c11d2bc443560fedb439de13a6107be3c6a544b", "signature": "static void MenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_end" }, { "name": "MenuLabel", "kind": "method", "id": "method|MenuLabel|1|0|void|nint ui;nint text||ha4b8ad0e5b82fc1548f6ba84530f37adf4d9f0a532b3709d195d073699bcac3d", "signature": "static void MenuLabel(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "method", "id": "method|MenuSeparator|1|0|void|nint ui||h43baafe94729515380b87ebc65483aa6d85741aeb6bba325ece2d1eabae0797a", "signature": "static void MenuSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "method", "id": "method|Meter|1|0|void|nint ui;nint label;float used;float total;nint unit||h30ed539c27876837b8db7a1089daa25a6062adad4a0f9d03e8ada4e2ee7b7543", "signature": "static void Meter(nint ui, nint label, float used, float total, nint unit)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "nint" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "method", "id": "method|Metric|1|0|void|nint ui;nint label;nint value;in NativeMetricOpts opts||h523a868a2b31da0883e292d982d5cac253880c98471f114d39a6aa1967937f65", "signature": "static void Metric(nint ui, nint label, nint value, in NativeMetricOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeMetricOpts" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "method", "id": "method|Muted|1|0|void|nint ui;nint text||hdda682be0e03b2adcd33ac4733279d81dcae507f3677762d1bbd5faa3973441d", "signature": "static void Muted(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "method", "id": "method|NavSection|1|0|void|nint ui;nint title||h6cda75c653da98b8d8a4e1d3184c2f0372398fe655428979078fb1b9830a64f3", "signature": "static void NavSection(nint ui, nint title)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_nav_section" }, { "name": "NodeContentBegin", "kind": "method", "id": "method|NodeContentBegin|1|0|void|nint ui||h8aaeefd8936d2e56b0ac7cfd0e4fe1ec0163a3f32ead969c8a6b272cb8c33c33", "signature": "static void NodeContentBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_begin" }, { "name": "NodeContentEnd", "kind": "method", "id": "method|NodeContentEnd|1|0|void|nint ui||h8d1d8b82c2faed633dc8e3790241846c336d16db75745737aa16e5cdd4f03101", "signature": "static void NodeContentEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_end" }, { "name": "NodeEditorEnd", "kind": "method", "id": "method|NodeEditorEnd|1|0|void|nint ui||h8e2de39479bf3039a75ad1a43e67864e2fdedbcfa3d0ea17890714f79153cf0a", "signature": "static void NodeEditorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_editor_end" }, { "name": "NodeEnd", "kind": "method", "id": "method|NodeEnd|1|0|void|nint ui||h776ebaba5480021545ebdcc94862ed3b0f4ad3392a425a74c78a1a85ae8f894c", "signature": "static void NodeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_end" }, { "name": "NumberRoll", "kind": "method", "id": "method|NumberRoll|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||hab625d06c0b1cdefddb6d8384378241c49e2b7ee8ad244ab3a68b2c5cd72a66b", "signature": "static void NumberRoll(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_number_roll_ex" }, { "name": "PathBarMenuEnd", "kind": "method", "id": "method|PathBarMenuEnd|1|0|void|nint ui||h997f537d82bf299ed326f925257b8510b206db162119f5f76a82e4c4c64949ff", "signature": "static void PathBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_path_bar_menu_end" }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|1|0|void|nint ui||h63c0504d7458e435fcb1ffd50d073429edcc2e5de95c4b16ded5217563b6dc92", "signature": "static void PopClip(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_clip" }, { "name": "PopDisabled", "kind": "method", "id": "method|PopDisabled|1|0|void|nint ui||he2561f8c20dccea5c0d16cff7db5d33fa51f16e2405105c51b70cdf03d1cb051", "signature": "static void PopDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_disabled" }, { "name": "PopId", "kind": "method", "id": "method|PopId|1|0|void|nint ui||hb10c43cb5fb600005cd12d82cd44778b6b2d85fcd1aa993b6d5ac4ad52c80022", "signature": "static void PopId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_id" }, { "name": "PopoverClose", "kind": "method", "id": "method|PopoverClose|1|0|void|nint ui;nint id||h77cfcef0fa0acec5febc68b8745c36a30c41f550fcf802f10f1f29ce3cb99f0b", "signature": "static void PopoverClose(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_close" }, { "name": "PopoverEnd", "kind": "method", "id": "method|PopoverEnd|1|0|void|nint ui||h3a90dbcf8257c5a18ecbf028f1dd1f2b0738316b1e71ed2ed00b83ac007ae51b", "signature": "static void PopoverEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_popover_end" }, { "name": "PopoverOpen", "kind": "method", "id": "method|PopoverOpen|1|0|void|nint ui;nint id||he1d748eab3cdbe7c6819f4982df24d6dd06f0ba4256858420b9291cdc94efaeb", "signature": "static void PopoverOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "method", "id": "method|PopoverToggle|1|0|void|nint ui;nint id||hf969fb3316a6f58bf6652dd965ae15925db3bbf664294da71aef8af21d99664d", "signature": "static void PopoverToggle(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "method", "id": "method|Presence|1|0|void|nint ui;nint id;nint users;int count;int maxVisible;float size||ha18a6116c23c2a9b36bda9eaba4ac8b6d4cef8d2512e11df8496374e2915d918", "signature": "static void Presence(nint ui, nint id, nint users, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "users", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "method", "id": "method|Progress|1|0|void|nint ui;float value;in NativeProgressOpts opts||ha6c27a7e9e6567cb5e505a6c043a703129bff9e7f726b7b8ee84206931d4ae3c", "signature": "static void Progress(nint ui, float value, in NativeProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeProgressOpts" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "method", "id": "method|ProgressRing|1|0|void|nint ui;nint label;float value;float size||hf23fdb90419b8cc9503afed3ebdd63578f6707f7e317f73a33cccdef064b21fd", "signature": "static void ProgressRing(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_progress_ring" }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|1|0|void|nint ui;NativeRect r||h5e48edf0962d24abc38b2b811582434e972f2fc2bbe2e43bf552cef8b8bdda49", "signature": "static void PushClip(nint ui, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_push_clip" }, { "name": "PushDisabled", "kind": "method", "id": "method|PushDisabled|1|0|void|nint ui;byte disabled||h0491a2ed86913b2fc3fa8007bbf0284aaece1e82513ff70a1f38943a8495ee62", "signature": "static void PushDisabled(nint ui, byte disabled)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "disabled", "type": "byte" }], "summary": "cui_push_disabled" }, { "name": "PushId", "kind": "method", "id": "method|PushId|1|0|void|nint ui;nint str||h6fb92263648fbe47b124cd60a2bb1f0194b441b80b610b9f33550aa562437492", "signature": "static void PushId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_push_id" }, { "name": "PushIdInt", "kind": "method", "id": "method|PushIdInt|1|0|void|nint ui;int value||h50055247580a4f4fa0392b341c835a51a52a72b4f34bb1f4c613242daeea3ecc", "signature": "static void PushIdInt(nint ui, int value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "int" }], "summary": "cui_push_id_int" }, { "name": "RadialGauge", "kind": "method", "id": "method|RadialGauge|1|0|void|nint ui;nint id;float value;float min;float max;in NativeRadialGaugeOpts opts||h4f8518675e6c379418dc5d18483c1736619dcc5322b6ec788f182e70d2744138", "signature": "static void RadialGauge(nint ui, nint id, float value, float min, float max, in NativeRadialGaugeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRadialGaugeOpts" }], "summary": "cui_radial_gauge_ex" }, { "name": "ReasoningEnd", "kind": "method", "id": "method|ReasoningEnd|1|0|void|nint ui||h3d7a570a4d95899a623aba8b34225b94fe8e298223296a8b417ba68577277f1c", "signature": "static void ReasoningEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reasoning_end" }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|1|0|void|nint ui;nint id;ref int order;int count||h91b67144d6c858e6046d3e88798f968c4b7717073334cfb0e25b0e4e03429f65", "signature": "static void ReorderBegin(nint ui, nint id, ref int order, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "order", "type": "ref int" }, { "name": "count", "type": "int" }], "summary": "cui_reorder_begin" }, { "name": "ReorderItemBegin", "kind": "method", "id": "method|ReorderItemBegin|1|0|void|nint ui;int position||hc8aab216de052d8eec1b27621290e2c67cf005624582def3cde53d7c629abf2d", "signature": "static void ReorderItemBegin(nint ui, int position)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "position", "type": "int" }], "summary": "cui_reorder_item_begin" }, { "name": "ReorderItemEnd", "kind": "method", "id": "method|ReorderItemEnd|1|0|void|nint ui||he5f9866dc46db08efe5e2ec97c8f7cb9dcaf3dda4dbec7c6cecb97404aa0cac2", "signature": "static void ReorderItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_item_end" }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|1|0|void|nint ui||haa3c00370fae8d80bb9419af2e90690a039bfdc6b9696bf7ec766b11d67053b6", "signature": "static void RequestRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_request_redraw" }, { "name": "RequestWakeup", "kind": "method", "id": "method|RequestWakeup|1|0|void|nint ui;float seconds||h4c1697d95f098be55214b6596a6d2d431ababeb4b7aeee1a3a5c7b4c9ec1014d", "signature": "static void RequestWakeup(nint ui, float seconds)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "seconds", "type": "float" }], "summary": "cui_request_wakeup" }, { "name": "ResponseStatus", "kind": "method", "id": "method|ResponseStatus|1|0|void|nint ui;int status;double seconds;double bytes||h6bf64977b38462ced090956d263a7ca82b23aaf9c4eb8826267ac35f603593a4", "signature": "static void ResponseStatus(nint ui, int status, double seconds, double bytes)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollBegin", "kind": "method", "id": "method|ScrollBegin|1|0|void|nint ui;in NativeScrollOpts opts||hccf27da1d078b4595fdc9f11585d8d946c5ee619a7122ded6d4f0212402cf5c8", "signature": "static void ScrollBegin(nint ui, in NativeScrollOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeScrollOpts" }], "summary": "cui_scroll_begin" }, { "name": "ScrollEnd", "kind": "method", "id": "method|ScrollEnd|1|0|void|nint ui||h5c13b2e28e6ee670888611965b36901a2f68e9b77c2798b783d4cd1039b6b9fb", "signature": "static void ScrollEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_scroll_end" }, { "name": "ScrollTo", "kind": "method", "id": "method|ScrollTo|1|0|void|nint ui;nint scrollId;float y||h23b87c2c57323b5eec317ad983e363d4a22bcfbeb280f4cee0e098567f3c4686", "signature": "static void ScrollTo(nint ui, nint scrollId, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "method", "id": "method|Secondary|1|0|void|nint ui;nint text||h8c8af7950942ddc4910460d7cd39b63b771e005a78f3d6c721494d9c3c9e8a9b", "signature": "static void Secondary(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "method", "id": "method|Separator|1|0|void|nint ui||h46e03a6322e7ff314ff9145e05fc878a8ef074c48477fdfa72eef15647ab1ce6", "signature": "static void Separator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_separator" }, { "name": "SetAccent", "kind": "method", "id": "method|SetAccent|1|0|void|nint ui;Accent accent||haaabdbf69a955a9add0a9acc324c39f604d971cd839fc29f7592edd0e72bd52e", "signature": "static void SetAccent(nint ui, Accent accent)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "accent", "type": "Accent" }], "summary": "cui_set_accent" }, { "name": "SetPlatform", "kind": "method", "id": "method|SetPlatform|1|0|void|nint ui;in NativePlatformIface platform||h622526b30b257fe65cd0827a815d82bd5b01d7a35bbec3fba719fcffbf9877a9", "signature": "static void SetPlatform(nint ui, in NativePlatformIface platform)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "platform", "type": "in NativePlatformIface" }], "summary": "cui_set_platform" }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|1|0|void|nint ui;byte reduced||hf68a9d8f75523bd677993d42d4b723a079b2492a26f565814f77b0f795732b6a", "signature": "static void SetReducedMotion(nint ui, byte reduced)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "reduced", "type": "byte" }], "summary": "cui_set_reduced_motion" }, { "name": "SetRenderer", "kind": "method", "id": "method|SetRenderer|1|0|void|nint ui;in NativeRendererIface renderer||hdbd27894e6a941293fab67adf26129d544c8f69e78c535ee83fb40689647a17e", "signature": "static void SetRenderer(nint ui, in NativeRendererIface renderer)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "renderer", "type": "in NativeRendererIface" }], "summary": "cui_set_renderer" }, { "name": "SetStrings", "kind": "method", "id": "method|SetStrings|1|0|void|nint ui;nint strings||hf673ccc8351e0077ec04e8e52c88524e21f92c433996f4d11fb38d37f6ce3e4c", "signature": "static void SetStrings(nint ui, nint strings)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "strings", "type": "nint" }], "summary": "cui_set_strings" }, { "name": "SetTheme", "kind": "method", "id": "method|SetTheme|1|0|void|nint ui;Theme mode||he438c162911cf2b181388de75abb1e0fbfc9fccf62191c0c78a14324c8f8d67e", "signature": "static void SetTheme(nint ui, Theme mode)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "Theme" }], "summary": "cui_set_theme" }, { "name": "SetViewport", "kind": "method", "id": "method|SetViewport|1|0|void|nint ui;float width;float height;float scale||hf74647d478ddd211eaf64bf0ca79714dd3761805f2dc0aeaa820806cdc485ce1", "signature": "static void SetViewport(nint ui, float width, float height, float scale)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "float" }, { "name": "height", "type": "float" }, { "name": "scale", "type": "float" }], "summary": "cui_set_viewport" }, { "name": "SheetEnd", "kind": "method", "id": "method|SheetEnd|1|0|void|nint ui||h755e8a9b487011b773092e6c07731052b68899276185054b447af8330fa23cef", "signature": "static void SheetEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_sheet_end" }, { "name": "ShimmerText", "kind": "method", "id": "method|ShimmerText|1|0|void|nint ui;nint text;in NativeTextFxOpts opts||hc19c7328a7355de44b28fdbfba2b3d8a03763b03b03d31b020777541cf193b87", "signature": "static void ShimmerText(nint ui, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_shimmer_text_ex" }, { "name": "SignatureClear", "kind": "method", "id": "method|SignatureClear|1|0|void|nint ui;nint id||hc0eecd4bc3b717f1e8b91695f778ccd32566c7f13ed423d7e6b59f94052613c7", "signature": "static void SignatureClear(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "method", "id": "method|Skeleton|1|0|void|nint ui;NativeSize width;float height||hbc0c03c46cfd766c307600dc73e54a4ce856f1311af31af59206cbb964d0b537", "signature": "static void Skeleton(nint ui, NativeSize width, float height)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "method", "id": "method|Spacer|1|0|void|nint ui||haf848915bff67f68bd2719ee3c0bba3024a1eb67d973fda3cb8f6fd6d8bda46d", "signature": "static void Spacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "method", "id": "method|Sparkline|1|0|void|nint ui;nint values;int count;NativeSize width;float height;NativeColor color||h472c1899de78ca26befe4486df72311abfb910f99a70c749777e8bce3ead8e6c", "signature": "static void Sparkline(nint ui, nint values, int count, NativeSize width, float height, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "method", "id": "method|Spinner|1|0|void|nint ui;float size||h79e05ad32fd9183b8abef18a003c42c2efb983f5f3dc41cb0d986befa1e14607", "signature": "static void Spinner(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_spinner" }, { "name": "SplitBegin", "kind": "method", "id": "method|SplitBegin|1|0|void|nint ui;nint id;ref float ratio;in NativeSplitOpts opts||h8e1cfc21d02f926a599a7b9fd32a463c34f116012625ed954ebabe3eda0b218c", "signature": "static void SplitBegin(nint ui, nint id, ref float ratio, in NativeSplitOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "ratio", "type": "ref float" }, { "name": "opts", "type": "in NativeSplitOpts" }], "summary": "cui_split_begin" }, { "name": "SplitEnd", "kind": "method", "id": "method|SplitEnd|1|0|void|nint ui||h3f556aa6a80585d876fdcab26d6a691809a4c59857fb96c820d7ce63f02567f5", "signature": "static void SplitEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_end" }, { "name": "SplitNext", "kind": "method", "id": "method|SplitNext|1|0|void|nint ui||h31dc7568501ad9f8fd786663ada605e96397f17a3b5d5da6ab7f9b6cc0f76982", "signature": "static void SplitNext(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_next" }, { "name": "SpotlightBegin", "kind": "method", "id": "method|SpotlightBegin|1|0|void|nint ui;nint id;in NativeSpotlightOpts opts||h963693d8664d583e71befca392e8b3c9a5ba239feb7aaf2df1083b5a16a5557f", "signature": "static void SpotlightBegin(nint ui, nint id, in NativeSpotlightOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSpotlightOpts" }], "summary": "cui_spotlight_begin" }, { "name": "SpotlightEnd", "kind": "method", "id": "method|SpotlightEnd|1|0|void|nint ui||h0c73da51d3dde86dbb2ef775471416fa9b9baa4fe4d82d5379a1a0874cda7890", "signature": "static void SpotlightEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spotlight_end" }, { "name": "StateOnFree", "kind": "method", "id": "method|StateOnFree|1|0|void|nint ui;uint id;nint fn||h14b5dc9f39df6208158ac8c6ae25df41995cc8a66f0fd49778bd67518233fb53", "signature": "static void StateOnFree(nint ui, uint id, nint fn)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "fn", "type": "nint" }], "summary": "cui_state_on_free" }, { "name": "StatusBarBegin", "kind": "method", "id": "method|StatusBarBegin|1|0|void|nint ui;nint id;in NativeStatusBarOpts opts||h0ab9af3979891707f59e475e805ef3326b8e428b0787763856b3bb5f91e167d1", "signature": "static void StatusBarBegin(nint ui, nint id, in NativeStatusBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeStatusBarOpts" }], "summary": "cui_status_bar_begin" }, { "name": "StatusBarEnd", "kind": "method", "id": "method|StatusBarEnd|1|0|void|nint ui||hfe889f07a7b2493dd34050626f8b25502ec3780753f2da61e485cf5851b53a8f", "signature": "static void StatusBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_end" }, { "name": "StatusBarProgress", "kind": "method", "id": "method|StatusBarProgress|1|0|void|nint ui;float value;in NativeStatusProgressOpts opts||h2e2514329347cd72bc4da650e5035a15a358812e6c7d0653a7530568ee5e6bd7", "signature": "static void StatusBarProgress(nint ui, float value, in NativeStatusProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeStatusProgressOpts" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "method", "id": "method|StatusBarSpacer|1|0|void|nint ui||h6f6ec7af809873713139db42be67fec0525aab67fc40f3fb3a4e4d13b9364c23", "signature": "static void StatusBarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "method", "id": "method|StatusBarText|1|0|void|nint ui;nint text;in NativeStatusItemOpts opts||h932eb9ea317e3daa001764723c6e67f68d748dbf6010f7d85aa4976712031b71", "signature": "static void StatusBarText(nint ui, nint text, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_text_ex" }, { "name": "Stepper", "kind": "method", "id": "method|Stepper|1|0|void|nint ui;nint steps;int count;int current||h6dc16579869bceefc9c1731229696cb78560f6f3caab3b13b0b3de481ac33cc1", "signature": "static void Stepper(nint ui, nint steps, int count, int current)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "SwDestroy", "kind": "method", "id": "method|SwDestroy|1|0|void|nint r||h0be21b0a0affe749f9f0be7261a36a00aeaf8b0842dec23c6d43e92f8dfd56ad", "signature": "static void SwDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_destroy" }, { "name": "SwRender", "kind": "method", "id": "method|SwRender|1|0|void|nint r;in NativeDrawData dd;nint pixels;int width;int height;int stride;SwFormat format||h925ce92039facee940d37c72a24d58ed861e8d2428f045e01248136712bd27d3", "signature": "static void SwRender(nint r, in NativeDrawData dd, nint pixels, int width, int height, int stride, SwFormat format)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "pixels", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }, { "name": "format", "type": "SwFormat" }], "summary": "cui_sw_render" }, { "name": "SwSetIncremental", "kind": "method", "id": "method|SwSetIncremental|1|0|void|nint r;byte on||h35784ddf9e6e2ff25d8c10204553e0402b67e13e77d8272ab56f0c994fc7247b", "signature": "static void SwSetIncremental(nint r, byte on)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "on", "type": "byte" }], "summary": "cui_sw_set_incremental" }, { "name": "SwSetThreads", "kind": "method", "id": "method|SwSetThreads|1|0|void|nint r;int threads||h34a2c21d60bb367d5b1aacc5f2e0a24cc1fd4fc2f7af20d0078cb2693d57cb3d", "signature": "static void SwSetThreads(nint r, int threads)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "threads", "type": "int" }], "summary": "cui_sw_set_threads" }, { "name": "SwipeItemBegin", "kind": "method", "id": "method|SwipeItemBegin|1|0|void|nint ui;nint id;nint left;int leftCount;nint right;int rightCount||he356b37e0bb4b9d789e5c769a16e8687b4b7c08507d6f7ccb21de0c58296ee1e", "signature": "static void SwipeItemBegin(nint ui, nint id, nint left, int leftCount, nint right, int rightCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "left", "type": "nint" }, { "name": "leftCount", "type": "int" }, { "name": "right", "type": "nint" }, { "name": "rightCount", "type": "int" }], "summary": "cui_swipe_item_begin" }, { "name": "TableCell", "kind": "method", "id": "method|TableCell|1|0|void|nint ui||h58c1c69464959545f2c0c22eb0645330579440d8f636f3602edb6d4218b27d19", "signature": "static void TableCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_cell" }, { "name": "TableCellText", "kind": "method", "id": "method|TableCellText|1|0|void|nint ui;nint text||hda71654f59a916615205136e685705fde1ced9f7607676b2b05742f84907a3f9", "signature": "static void TableCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_table_cell_text" }, { "name": "TableEnd", "kind": "method", "id": "method|TableEnd|1|0|void|nint ui||hc984d1509de63bf52b50c7a34ca3189a0bb153d3ea71eca8518f7cdbdd00f65c", "signature": "static void TableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_end" }, { "name": "TerminalClear", "kind": "method", "id": "method|TerminalClear|1|0|void|ref NativeTerminalBuffer t||h2c35a3f1e8ac6abb885522cc4abf14b1aba391dfcffdb7e8162392ec1efbac69", "signature": "static void TerminalClear(ref NativeTerminalBuffer t)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }], "summary": "cui_terminal_clear" }, { "name": "TerminalInit", "kind": "method", "id": "method|TerminalInit|1|0|void|ref NativeTerminalBuffer t;nint text;ulong textCap;nint lines;int lineCap||hb2732e164d5c67e073913c65bdbc035ee1c5a1d101105c7e58fcc11f7f6730c9", "signature": "static void TerminalInit(ref NativeTerminalBuffer t, nint text, ulong textCap, nint lines, int lineCap)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }], "summary": "cui_terminal_init" }, { "name": "TerminalWrite", "kind": "method", "id": "method|TerminalWrite|1|0|void|ref NativeTerminalBuffer t;nint data;int len||h7db23fca94baa41b713b578a3f7f2eb4edde9296bb42f48ffbc41cacffcab173", "signature": "static void TerminalWrite(ref NativeTerminalBuffer t, nint data, int len)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "data", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_terminal_write" }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|void|nint ui;nint text;in NativeTextOpts opts||h272e9e5fd15e3e439624830da1a61bd8173755af5237d17c5de5b35b2b7fcc78", "signature": "static void Text(nint ui, nint text, in NativeTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextOpts" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "method", "id": "method|TextReveal|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||h810e5b8c5623cd79b19e255847e1b2350f771771bc43231ebd67d24fef43bf45", "signature": "static void TextReveal(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_text_reveal_ex" }, { "name": "Ticker", "kind": "method", "id": "method|Ticker|1|0|void|nint ui;nint id;nint items;int count;in NativeTickerOpts opts||hcf89f408f6d2cc69a1d015b699a290c0ae5b7441df2a83b42e3fb27d70c27db6", "signature": "static void Ticker(nint ui, nint id, nint items, int count, in NativeTickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTickerOpts" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "method", "id": "method|TimelineItem|1|0|void|nint ui;nint title;in NativeTimelineOpts opts||h9b4bdedc14e8242b067d1b691d32b876cb84a64b2324bf04fca99f755cd7d46e", "signature": "static void TimelineItem(nint ui, nint title, in NativeTimelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeTimelineOpts" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "method", "id": "method|ToastDismiss|1|0|void|nint ui;int handle||h75880d60348ac0f108d23509a49259435396571a873cbcbfabc7a7ce03565c56", "signature": "static void ToastDismiss(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "method", "id": "method|TocAnchor|1|0|void|nint ui;nint anchor||hbf2b12d07854201eb614389915564e72b12beaca82777abc523cfd00e4b0202d", "signature": "static void TocAnchor(nint ui, nint anchor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "anchor", "type": "nint" }], "summary": "cui_toc_anchor" }, { "name": "ToolCall", "kind": "method", "id": "method|ToolCall|1|0|void|nint ui;nint id;nint name;in NativeToolCallOpts opts||hec6f0eb79910da856e82af5251fb47ff3cdd8859d6b96873d1dfaa3e22d9187d", "signature": "static void ToolCall(nint ui, nint id, nint name, in NativeToolCallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeToolCallOpts" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarBegin", "kind": "method", "id": "method|ToolbarBegin|1|0|void|nint ui;nint id;in NativeToolbarOpts opts||ha8e07119a1461f0bb5edde4ce58cdc0140369f80e0033f3f208dffb00d98ee5d", "signature": "static void ToolbarBegin(nint ui, nint id, in NativeToolbarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeToolbarOpts" }], "summary": "cui_toolbar_begin" }, { "name": "ToolbarEnd", "kind": "method", "id": "method|ToolbarEnd|1|0|void|nint ui||hb80555fe0cf6dfda93d88a72607be9a5c706625fab680a97936dbf6533b176e3", "signature": "static void ToolbarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_end" }, { "name": "ToolbarSeparator", "kind": "method", "id": "method|ToolbarSeparator|1|0|void|nint ui||h2f525a4e5418c61ca18349feb1c7a95baee6b316f2e23e1d6aa18232e5ec4341", "signature": "static void ToolbarSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "method", "id": "method|ToolbarSpacer|1|0|void|nint ui||hd061dc8872d0ac7eb8238161e16cb000d93d422443f622ebb1121fae117ed97e", "signature": "static void ToolbarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "method", "id": "method|Tooltip|1|0|void|nint ui;nint text||h1f9de01bb16e1558786abe4c1b14699c29b647b8cd8553afed19fc2b4b3caa84", "signature": "static void Tooltip(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_tooltip" }, { "name": "TraceSort", "kind": "method", "id": "method|TraceSort|1|0|void|nint spans;int count||ha66d747d05ad548296f53fcbb98f77b31eae6b02c6b8b6ec977000c7b3fe3a5f", "signature": "static void TraceSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_trace_sort" }, { "name": "TreeEnd", "kind": "method", "id": "method|TreeEnd|1|0|void|nint ui||ha713edeffbaee9686dc29a28c602d73338ef0b3cf4fb5902d41efc308ec5b21a", "signature": "static void TreeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_end" }, { "name": "TreeTableBegin", "kind": "method", "id": "method|TreeTableBegin|1|0|void|nint ui;nint id;nint columns;int columnCount;nint nodes;int nodeCount;in NativeTreeTableOpts opts||hd0eb2658a484bda8296e5b59fad3baf23f8729e625357b5dbf526e06cfecbf42", "signature": "static void TreeTableBegin(nint ui, nint id, nint columns, int columnCount, nint nodes, int nodeCount, in NativeTreeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "opts", "type": "in NativeTreeTableOpts" }], "summary": "cui_tree_table_begin_ex" }, { "name": "TreeTableName", "kind": "method", "id": "method|TreeTableName|1|0|void|nint ui;nint label;nint icon||h0751fd004c88e946e3cf26f6e5601c4d76cd57fd60d2086a0ff269e9d881a24c", "signature": "static void TreeTableName(nint ui, nint label, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_table_name" }, { "name": "TypingIndicator", "kind": "method", "id": "method|TypingIndicator|1|0|void|nint ui;nint name||hd81aef062aabdc6d41e05b88c87b46aefd6e009c83910f8ed3f0426342c0c825", "signature": "static void TypingIndicator(nint ui, nint name)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }], "summary": "cui_typing_indicator" }, { "name": "UserMenuEnd", "kind": "method", "id": "method|UserMenuEnd|1|0|void|nint ui||h9f762ffe81925fac89d4361eb1562a613e9eaa270d61fd325ab25799fa0afe27", "signature": "static void UserMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_user_menu_end" }, { "name": "VirtualListBegin", "kind": "method", "id": "method|VirtualListBegin|1|0|void|nint ui;nint id;int count;float rowHeight;NativeSize height;ref int first;ref int last||ha61ead8705d1939e2b7fe69f251360a61fe18faef67fa9137031b1fe6ce05ff1", "signature": "static void VirtualListBegin(nint ui, nint id, int count, float rowHeight, NativeSize height, ref int first, ref int last)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "NativeSize" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }], "summary": "cui_virtual_list_begin" }, { "name": "VirtualListEnd", "kind": "method", "id": "method|VirtualListEnd|1|0|void|nint ui||h17bfe0f38637d279b00163d916474f0367149d134f26d7350a37198637c0da59", "signature": "static void VirtualListEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_virtual_list_end" }, { "name": "WordRotate", "kind": "method", "id": "method|WordRotate|1|0|void|nint ui;nint id;nint words;int count;float interval;in NativeTextFxOpts opts||he94d507dcc15d0bcfc24aaaa9f83e04c779d69d75f151da8f8f8749dac8b28c2", "signature": "static void WordRotate(nint ui, nint id, nint words, int count, float interval, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "words", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "interval", "type": "float" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_word_rotate_ex" }] }, + { "name": "CuiSharp.Interop.NativeAgentPlanOpts", "displayName": "NativeAgentPlanOpts", "kind": "struct", "summary": "cui_agent_plan_opts, 16 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeAgentStatusOpts", "displayName": "NativeAgentStatusOpts", "kind": "struct", "summary": "cui_agent_status_opts, 24 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status (offset 4)" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeAlertOpts", "displayName": "NativeAlertOpts", "kind": "struct", "summary": "cui_alert_opts, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|byte|||h3a9a514414e8a3ecdae7b6c0427c4f7e74781101755b94b83ff8501a761b98fa", "signature": "public byte Dismissible", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeAllocator", "displayName": "NativeAllocator", "kind": "struct", "summary": "cui_allocator, 32 bytes.", "members": [{ "name": "Alloc", "kind": "field", "id": "field|Alloc|0|0|nint|||h008f8ed9c545969f3618469bfbdb960809941ae71c353e66c3783bc0e897bd86", "signature": "public nint Alloc", "summary": "void *(*)(size_t, void *) (offset 0)" }, { "name": "Free", "kind": "field", "id": "field|Free|0|0|nint|||h2b0ee121ff0eea411e91116f99e57c9d169fd8013409c5074adba7bf1338974b", "signature": "public nint Free", "summary": "void (*)(void *, void *) (offset 16)" }, { "name": "Realloc", "kind": "field", "id": "field|Realloc|0|0|nint|||hfb9838851c5f25308e1da0489fcc12e941a79aedf7acce9d5093aeba36fa76fe", "signature": "public nint Realloc", "summary": "void *(*)(void *, size_t, void *) (offset 8)" }, { "name": "User", "kind": "field", "id": "field|User|0|0|nint|||hbb8b86031509e9566eb92455c659fd89532fcd8a35724b86f43a45f38dc8e34f", "signature": "public nint User", "summary": "void * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeApiEndpoint", "displayName": "NativeApiEndpoint", "kind": "struct", "summary": "cui_api_endpoint, 56 bytes.", "members": [{ "name": "Deprecated", "kind": "field", "id": "field|Deprecated|0|0|byte|||h118d1356fb24fc834db797c62dc912f5c50347fe56e7c7621c9993ea487c27d8", "signature": "public byte Deprecated", "summary": "_Bool (offset 32)" }, { "name": "ParamCount", "kind": "field", "id": "field|ParamCount|0|0|int|||ha28b8117e80b2618337252b05244c82cc8197210fd8cfaa4612313257de71369", "signature": "public int ParamCount", "summary": "int (offset 48)" }, { "name": "Method", "kind": "field", "id": "field|Method|0|0|nint|||h123da31d283a687cfb3fc23d6dc7a6d0bf14af9e0cd472e209f6019e3b48bd09", "signature": "public nint Method", "summary": "const char * (offset 0)" }, { "name": "Params", "kind": "field", "id": "field|Params|0|0|nint|||h32e76c35cfb0857d4a19444471d9dda92debe0f324d84f5f4d0a7a2578edbb5d", "signature": "public nint Params", "summary": "const cui_api_param * (offset 40)" }, { "name": "Path", "kind": "field", "id": "field|Path|0|0|nint|||h8bba30a3af23f0921f87758138aaec20cd68b286c4244f14af28ea447646c5f3", "signature": "public nint Path", "summary": "const char * (offset 8)" }, { "name": "Summary", "kind": "field", "id": "field|Summary|0|0|nint|||h256f1fb1795e5df56b6da0ba33cf4c905459dc6d5e01539977148ac9a7e35d98", "signature": "public nint Summary", "summary": "const char * (offset 16)" }, { "name": "Tag", "kind": "field", "id": "field|Tag|0|0|nint|||h8e8f4162f0ef376dc891e10b9d854f04a09049bc3f9c6ef49fd11d1e3283c552", "signature": "public nint Tag", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeApiExplorerOpts", "displayName": "NativeApiExplorerOpts", "kind": "struct", "summary": "cui_api_explorer_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeApiExplorerResult", "displayName": "NativeApiExplorerResult", "kind": "struct", "summary": "cui_api_explorer_result, 8 bytes.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 0)" }, { "name": "TryIt", "kind": "field", "id": "field|TryIt|0|0|int|||h5b7497c7ff57eca579c0220484ed786050570c5aa1615b0f5118bc1ae8af3b74", "signature": "public int TryIt", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeApiParam", "displayName": "NativeApiParam", "kind": "struct", "summary": "cui_api_param, 40 bytes.", "members": [{ "name": "Required", "kind": "field", "id": "field|Required|0|0|byte|||h1a3af43b954883cd8432d9b5221a16371cd78abed44f2f2fbcfef531a562c34b", "signature": "public byte Required", "summary": "_Bool (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 32)" }, { "name": "In", "kind": "field", "id": "field|In|0|0|nint|||h63687a4cc9c3aa327d17f7a3675e77e3cdff1e19aabfd8647bad98e3874e5f5b", "signature": "public nint In", "summary": "const char * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|nint|||h08ef46c97f44246852387cb0db61193354036168da9659fe690b19c9be180ecd", "signature": "public nint Type", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeAppDesc", "displayName": "NativeAppDesc", "kind": "struct", "summary": "cui_app_desc, 48 bytes.", "members": [{ "name": "Accent", "kind": "field", "id": "field|Accent|0|0|Accent|||h71052de13333411c0ea4ea9fd862bffc6c17770b3cd6a8d9e8d2bd9946427e80", "signature": "public Accent Accent", "summary": "cui_accent (offset 36)" }, { "name": "Renderer", "kind": "field", "id": "field|Renderer|0|0|Renderer|||h02bb378d95b6dccf4c48468a5cedcc8a1eb5e62c8b3f6def255345e2084c71da", "signature": "public Renderer Renderer", "summary": "cui_renderer_kind (offset 28)" }, { "name": "Theme", "kind": "field", "id": "field|Theme|0|0|Theme|||hc03062bcd5b400bad341e4abf4eced6f575572c853644893313e624c9667b6d8", "signature": "public Theme Theme", "summary": "cui_theme_mode (offset 32)" }, { "name": "Continuous", "kind": "field", "id": "field|Continuous|0|0|byte|||hf2b455e067c03fa095924e6359e38896423f8b87f43c5ff9421e149e2d79a771", "signature": "public byte Continuous", "summary": "_Bool (offset 25)" }, { "name": "FixedSize", "kind": "field", "id": "field|FixedSize|0|0|byte|||h3539fe6510c42c32f38f915daf424b43ed63fcbab6906963bf5878728a51d14d", "signature": "public byte FixedSize", "summary": "_Bool (offset 24)" }, { "name": "FollowSystemTheme", "kind": "field", "id": "field|FollowSystemTheme|0|0|byte|||h04801d61686302d7b69f7876e01e91e976b87da820e0e1d33f4666700f2da5ab", "signature": "public byte FollowSystemTheme", "summary": "_Bool (offset 40)" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|byte|||h09d64fd87a2ea3d6dc71208d5d191ef6983ee56f643ddde81b958e84c34b17b8", "signature": "public byte Hidden", "summary": "_Bool (offset 27)" }, { "name": "NoVsync", "kind": "field", "id": "field|NoVsync|0|0|byte|||ha03bf38afb5c85107eca7224756dd2dea79fd3efc171f22b28d872ae5f390e35", "signature": "public byte NoVsync", "summary": "_Bool (offset 26)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|int|||h52495b8092c70bc2ab79420020dea8829a5d21b13502d02d4d3876b4e6344385", "signature": "public int Height", "summary": "int (offset 12)" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|int|||ha9923860663e934851ae42ff98e9dfb070366310ecc14f385685bbc3585bbf65", "signature": "public int MinHeight", "summary": "int (offset 20)" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|int|||h4c1c24fa7ad7638870d99dd112c1f3bee470dbea9a43f4a22238041222847345", "signature": "public int MinWidth", "summary": "int (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|int|||ha520b8ffe64569abde298f583f1cebdf54a0fcf8f8c03a737243848cb9cd9ae5", "signature": "public int Width", "summary": "int (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeAvatarOpts", "displayName": "NativeAvatarOpts", "kind": "struct", "summary": "cui_avatar_opts, 32 bytes.", "members": [{ "name": "Square", "kind": "field", "id": "field|Square|0|0|byte|||h8271ae9bf49e9464a144633f5391cf90166c1b6df513611e60cdf9c987f3a4d9", "signature": "public byte Square", "summary": "_Bool (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Image", "kind": "field", "id": "field|Image|0|0|ulong|||he25dd60d612e9a06babb072bcf3c76754f6f813f5113d829ed08e969dc20f672", "signature": "public ulong Image", "summary": "cui_texture (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeBadgeOpts", "displayName": "NativeBadgeOpts", "kind": "struct", "summary": "cui_badge_opts, 32 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 24)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 4)" }, { "name": "Dot", "kind": "field", "id": "field|Dot|0|0|byte|||h3ae15341111db9635d36c494735d2956621314bfb54e9984860313e9b5a6a292", "signature": "public byte Dot", "summary": "_Bool (offset 8)" }, { "name": "Solid", "kind": "field", "id": "field|Solid|0|0|byte|||h7eea20659a45a5ea7894a8523b52271603fb5b4c884a1b3440fbdbeee4c65b06", "signature": "public byte Solid", "summary": "_Bool (offset 9)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeBannerOpts", "displayName": "NativeBannerOpts", "kind": "struct", "summary": "cui_banner_opts, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 4)" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|byte|||h3a9a514414e8a3ecdae7b6c0427c4f7e74781101755b94b83ff8501a761b98fa", "signature": "public byte Dismissible", "summary": "_Bool (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeBarListOpts", "displayName": "NativeBarListOpts", "kind": "struct", "summary": "cui_bar_list_opts, 40 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 29)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "KeepOrder", "kind": "field", "id": "field|KeepOrder|0|0|byte|||hfbebf017a95d56629f37455bf04c5c22d795a9eefb6852d664cef873fcce979d", "signature": "public byte KeepOrder", "summary": "_Bool (offset 28)" }, { "name": "MaxRows", "kind": "field", "id": "field|MaxRows|0|0|int|||h82a530e961fd20944667ea1ad6f4d328cd4ce0e5c238e091ebaa74d2086ed486", "signature": "public int MaxRows", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeBlameCommit", "displayName": "NativeBlameCommit", "kind": "struct", "summary": "cui_blame_commit, 32 bytes.", "members": [{ "name": "Time", "kind": "field", "id": "field|Time|0|0|long|||h382e39ea1b3f79836fb7922bfa24e88b592f7f612357f065c055e7b46e60270d", "signature": "public long Time", "summary": "int64_t (offset 24)" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|nint|||h42259eda4a5cd5217e3ff4e52e5ab08ff4edda9240aaa452d4af2589b41bd856", "signature": "public nint Author", "summary": "const char * (offset 8)" }, { "name": "Hash", "kind": "field", "id": "field|Hash|0|0|nint|||he32f0dd10af599ae75494fa806f33e8cdb244a3710820ad4341060ace91d091b", "signature": "public nint Hash", "summary": "const char * (offset 0)" }, { "name": "Summary", "kind": "field", "id": "field|Summary|0|0|nint|||h256f1fb1795e5df56b6da0ba33cf4c905459dc6d5e01539977148ac9a7e35d98", "signature": "public nint Summary", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeBlameOpts", "displayName": "NativeBlameOpts", "kind": "struct", "summary": "cui_blame_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "FirstLine", "kind": "field", "id": "field|FirstLine|0|0|int|||h1ab09d25eaa64ebab6cfe486404f0958dc364ecc142585baf2abf1130d0833f3", "signature": "public int FirstLine", "summary": "int (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|long|||h949d29ec25550cd1c5e589c99b5e39471c9584ce47315d26d5fa02dc132525d7", "signature": "public long Now", "summary": "int64_t (offset 24)" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|nint|||h47e017876cc656beadab67c2a3da7d17ebe65dbbb9bf477edfc76ac1167c397a", "signature": "public nint Lang", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeBlameResult", "displayName": "NativeBlameResult", "kind": "struct", "summary": "cui_blame_result, 8 bytes.", "members": [{ "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeBox", "displayName": "NativeBox", "kind": "struct", "summary": "cui_box, 152 bytes.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cui_align (offset 96)" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "cui_dir (offset 16)" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "cui_direction (offset 148)" }, { "name": "Elevation", "kind": "field", "id": "field|Elevation|0|0|Elevation|||he0a7c311160b4a1eff39232663778806740ff0dbee335caec9c9e85ca308541e", "signature": "public Elevation Elevation", "summary": "cui_elevation (offset 136)" }, { "name": "Justify", "kind": "field", "id": "field|Justify|0|0|Justify|||hf004d9d46fdf7b0e648b8005eefcd94a2875126011393877c0f22d333513e2ef", "signature": "public Justify Justify", "summary": "cui_justify (offset 100)" }, { "name": "Bg", "kind": "field", "id": "field|Bg|0|0|NativeColor|||h6f869c9680b9bcadaa8163f1a7b4c921422de3cd091b4aec5a79f6a6f73907b3", "signature": "public NativeColor Bg", "summary": "cui_color (offset 104)" }, { "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|NativeColor|||h6c242cb21110bdcec7298ca27c1f6fe09c2e439c7c00a703fbb920a55723822b", "signature": "public NativeColor BorderColor", "summary": "cui_color (offset 108)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 28)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 20)" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|byte|||h87b02ea94fec37cb7fee0351f29041bc6b6199f026a41ad462f237f50b98bec3", "signature": "public byte Clip", "summary": "_Bool (offset 142)" }, { "name": "ScrollX", "kind": "field", "id": "field|ScrollX|0|0|byte|||hcb881677d4e52dd63807646ee0838816375200eb04840f0477e671f96bcdfc1f", "signature": "public byte ScrollX", "summary": "_Bool (offset 140)" }, { "name": "ScrollY", "kind": "field", "id": "field|ScrollY|0|0|byte|||hf4eebbb4e6a3c9f46c66487c90fcd6b5dfaed09e9c01caa1daf7467bacbc1743", "signature": "public byte ScrollY", "summary": "_Bool (offset 141)" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|byte|||h6a568b83b5ebf923fcc8d84bac649c39f1522c51c4635ba194b84fe57992fecf", "signature": "public byte Wrap", "summary": "_Bool (offset 92)" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "float (offset 112)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 80)" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float (offset 48)" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "float (offset 40)" }, { "name": "MinColumnWidth", "kind": "field", "id": "field|MinColumnWidth|0|0|float|||h3bf72f06ae16007da1aa4132cf4b98d6c659d256b3af795fc2b66943463ec497", "signature": "public float MinColumnWidth", "summary": "float (offset 88)" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|float|||ha292b3b72be6a5893414fe5fc78e9c3c32fdca9ee4f85aaeb3161e6842440033", "signature": "public float MinHeight", "summary": "float (offset 44)" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "float (offset 36)" }, { "name": "Opacity", "kind": "field", "id": "field|Opacity|0|0|float|||hde7eb5efb94b5e9dd209e0982456759c12c57b2c83531f251a12e65cbe6b1e13", "signature": "public float Opacity", "summary": "float (offset 144)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 52)" }, { "name": "PadBottom", "kind": "field", "id": "field|PadBottom|0|0|float|||hc1c67a6a2548abf224e047c651d6a7cb45329e967b322af5dfe524a07f5e2620", "signature": "public float PadBottom", "summary": "float (offset 72)" }, { "name": "PadLeft", "kind": "field", "id": "field|PadLeft|0|0|float|||h70bf8d58e7c7a29cfdb6a63424ba305385f7538afd0181c1518eee1ed9f61b1b", "signature": "public float PadLeft", "summary": "float (offset 76)" }, { "name": "PadRight", "kind": "field", "id": "field|PadRight|0|0|float|||h47fc325b4ba851dd9c4be8407fc7051641fbb4f71aae1b8cd4448ca21bb0f8b6", "signature": "public float PadRight", "summary": "float (offset 68)" }, { "name": "PadTop", "kind": "field", "id": "field|PadTop|0|0|float|||hbb5c17b3bf02fb73ab1351bef2ea7c7446fa1d77e66e8a8fa1077ff4b5f0ba3e", "signature": "public float PadTop", "summary": "float (offset 64)" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float (offset 56)" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float (offset 60)" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "float (offset 116)" }, { "name": "RadiusBl", "kind": "field", "id": "field|RadiusBl|0|0|float|||h9dd1fafd2e82c84b61ae611cdc8a30354ae3db4a16a977547d65e6ba6c8f29cf", "signature": "public float RadiusBl", "summary": "float (offset 132)" }, { "name": "RadiusBr", "kind": "field", "id": "field|RadiusBr|0|0|float|||h2234ef53764aea1f5c8535a3bf90ae370665341580a63b651f5d700ac65573ed", "signature": "public float RadiusBr", "summary": "float (offset 128)" }, { "name": "RadiusTl", "kind": "field", "id": "field|RadiusTl|0|0|float|||he23d55a47528087e12871dd0cfa80caa841145f35df4ceb0535f6351d0d1e78b", "signature": "public float RadiusTl", "summary": "float (offset 120)" }, { "name": "RadiusTr", "kind": "field", "id": "field|RadiusTr|0|0|float|||hb0e758616eae542125924701530e0fd1f7106694d1eb38533996552033f3bac6", "signature": "public float RadiusTr", "summary": "float (offset 124)" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int (offset 84)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|nint|||h776d0e60aed221d94e76ec8f19e3fe1a92e74b03003d575f9b4eaa98ff45a530", "signature": "public nint Id", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeButtonOpts", "displayName": "NativeButtonOpts", "kind": "struct", "summary": "cui_button_opts, 72 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 4)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 8)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 64)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 56)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 32)" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|byte|||hd01f4e7d92479240099d4691e65654bcd8a680160c7cec92dbd21a81d9339563", "signature": "public byte FullWidth", "summary": "_Bool (offset 34)" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|byte|||h20a09ddc6a79c663a1d4f8d2042bef2401f8094388c708c582468cf01c1a7c8e", "signature": "public byte Loading", "summary": "_Bool (offset 33)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 35)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }, { "name": "IconRight", "kind": "field", "id": "field|IconRight|0|0|nint|||he262569cc3c6864a108c94fc21aea5e54176cde0382004e0e7ec9c1afae1ecbb", "signature": "public nint IconRight", "summary": "const char * (offset 24)" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|nint|||hc6bbf869e5f430ce1cb0bb80bcc43a44ef490242700d9eccaf018d9378a8f2dd", "signature": "public nint Shortcut", "summary": "const char * (offset 48)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeCalEvent", "displayName": "NativeCalEvent", "kind": "struct", "summary": "cui_cal_event, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 28)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float (offset 24)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float (offset 20)" }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int (offset 16)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCalendarHeatmapOpts", "displayName": "NativeCalendarHeatmapOpts", "kind": "struct", "summary": "cui_calendar_heatmap_opts, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 8)" }, { "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeCandle", "displayName": "NativeCandle", "kind": "struct", "summary": "cui_candle, 20 bytes.", "members": [{ "name": "Close", "kind": "field", "id": "field|Close|0|0|float|||hdbf413c58a9f47dea0a50fed460dbd93d29daa77401f940f16af6251e2028722", "signature": "public float Close", "summary": "float (offset 12)" }, { "name": "High", "kind": "field", "id": "field|High|0|0|float|||h8d86ceb8300b405923f523b6dfd491fceedb9688753dea5f6c0ed797466bffb1", "signature": "public float High", "summary": "float (offset 4)" }, { "name": "Low", "kind": "field", "id": "field|Low|0|0|float|||h5bec759be4f0ae85b0ce5535aeb5d662da36d7c794ada46efc1c76f1e46fbd11", "signature": "public float Low", "summary": "float (offset 8)" }, { "name": "Open", "kind": "field", "id": "field|Open|0|0|float|||hc9eb0b7a2eda17a016265abb4149c4d6320d1a0ad9e2d574af040fea57e2b535", "signature": "public float Open", "summary": "float (offset 0)" }, { "name": "Volume", "kind": "field", "id": "field|Volume|0|0|float|||h4e862718c5c149dfe923f34f73565a8823a0e676880e4f814cc54cf696444405", "signature": "public float Volume", "summary": "float (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeCandlestickOpts", "displayName": "NativeCandlestickOpts", "kind": "struct", "summary": "cui_candlestick_opts, 56 bytes.", "members": [{ "name": "Down", "kind": "field", "id": "field|Down|0|0|NativeColor|||h1d93d88dd7af41d779829138ba47cee1a6470acb6ca713705fe15371dcdfba46", "signature": "public NativeColor Down", "summary": "cui_color (offset 50)" }, { "name": "Up", "kind": "field", "id": "field|Up|0|0|NativeColor|||h6c614ddfd4c7a017e934dabe7b14d544bd135b07cb7e407ba5ca9c623727efc5", "signature": "public NativeColor Up", "summary": "cui_color (offset 46)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoVolume", "kind": "field", "id": "field|NoVolume|0|0|byte|||ha6f36cb4a8eda5ebb266df5faa191299bd09d69efb7fb8902bcb7b006b0ffb37", "signature": "public byte NoVolume", "summary": "_Bool (offset 44)" }, { "name": "Ohlc", "kind": "field", "id": "field|Ohlc|0|0|byte|||h1e30ff96134fc3b7acf81409678eab06a6554790f0c50ab9be0186be2d0ce454", "signature": "public byte Ohlc", "summary": "_Bool (offset 45)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "OverlayCount", "kind": "field", "id": "field|OverlayCount|0|0|int|||ha8d99630aed0348e05d42fcd4a15671c1288e5c9fb38a9067b57636b13b7a171", "signature": "public int OverlayCount", "summary": "int (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 24)" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|nint|||h0891cfd95c52c3d740759d7929c72841b5dbbfe2ec9c515f56c7e5d7f437cf1c", "signature": "public nint Labels", "summary": "const char *const * (offset 16)" }, { "name": "Overlays", "kind": "field", "id": "field|Overlays|0|0|nint|||h021a199bb5e2c7a0a556a28b5ae8d86ad089d753201dbb356fcc37d440c86007", "signature": "public nint Overlays", "summary": "const cui_series * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeCanvasResult", "displayName": "NativeCanvasResult", "kind": "struct", "summary": "cui_canvas_result, 28 bytes.", "members": [{ "name": "Rect", "kind": "field", "id": "field|Rect|0|0|NativeRect|||h964ee6adc69a0c4dfcb768a65e0bd2593f7822cdb42a503c61eb22297e35e501", "signature": "public NativeRect Rect", "summary": "cui_rect (offset 0)" }, { "name": "Mouse", "kind": "field", "id": "field|Mouse|0|0|NativeVec2|||h4864848e36236e0fb4802b34934376806309db6f11dfce83ac4ce023859b8bc5", "signature": "public NativeVec2 Mouse", "summary": "cui_vec2 (offset 20)" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|byte|||ha05657db5453f9006479c7302f1de41db5688caa6f77ee5b281698777aae4c92", "signature": "public byte Clicked", "summary": "_Bool (offset 18)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|byte|||h4785e3188428a52694c64922b42544b998ea3d0d8b2bcc971ccfdabce4e24659", "signature": "public byte Hovered", "summary": "_Bool (offset 16)" }, { "name": "Pressed", "kind": "field", "id": "field|Pressed|0|0|byte|||hb6470ad375156d9021a10d87080ef8f821c05fe70f0cfaf89c7856934425b3a7", "signature": "public byte Pressed", "summary": "_Bool (offset 17)" }] }, + { "name": "CuiSharp.Interop.NativeCardOpts", "displayName": "NativeCardOpts", "kind": "struct", "summary": "cui_card_opts, 72 bytes.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cui_align (offset 60)" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "cui_dir (offset 56)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Hoverable", "kind": "field", "id": "field|Hoverable|0|0|byte|||hf8a7939bb5942cafd3e7e6eb20598fe4f669ee8209d65f33197f45e54bd2f8ae", "signature": "public byte Hoverable", "summary": "_Bool (offset 65)" }, { "name": "Muted", "kind": "field", "id": "field|Muted|0|0|byte|||hd394c2e19613033efcc4a61fa3171f5cdac77c142705edaa16ede4fb74398475", "signature": "public byte Muted", "summary": "_Bool (offset 66)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 67)" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|byte|||h6a568b83b5ebf923fcc8d84bac649c39f1522c51c4635ba194b84fe57992fecf", "signature": "public byte Wrap", "summary": "_Bool (offset 64)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 52)" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "float (offset 36)" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "float (offset 32)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 40)" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float (offset 44)" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float (offset 48)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|nint|||h776d0e60aed221d94e76ec8f19e3fe1a92e74b03003d575f9b4eaa98ff45a530", "signature": "public nint Id", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeCardStackOpts", "displayName": "NativeCardStackOpts", "kind": "struct", "summary": "cui_card_stack_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Visible", "kind": "field", "id": "field|Visible|0|0|int|||h4fdf87b1e77faeb11e5326e71ffb6338d699f8b49d4a214a0b6bef7bf1309566", "signature": "public int Visible", "summary": "int (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeCarouselOpts", "displayName": "NativeCarouselOpts", "kind": "struct", "summary": "cui_carousel_opts, 20 bytes.", "members": [{ "name": "Loop", "kind": "field", "id": "field|Loop|0|0|byte|||h3ea3d61078da90ba0c3355d3ef0183631b189a2445b74ebdb98d33d3479d2b7e", "signature": "public byte Loop", "summary": "_Bool (offset 18)" }, { "name": "NoArrows", "kind": "field", "id": "field|NoArrows|0|0|byte|||h7a6a12415b4c6dab1df3ff5c83c6bb25f115313482e4ca44ed78af5fc6a75854", "signature": "public byte NoArrows", "summary": "_Bool (offset 16)" }, { "name": "NoDots", "kind": "field", "id": "field|NoDots|0|0|byte|||hf9ef934ce44c465e4ec7f41621759281b8a5473953f2999e98657ef9ea08ba38", "signature": "public byte NoDots", "summary": "_Bool (offset 17)" }, { "name": "AutoAdvance", "kind": "field", "id": "field|AutoAdvance|0|0|float|||h33329d1b2d0ca9a63bdd777428459fd84fbfa04489f913ad51d47d16c7581b9c", "signature": "public float AutoAdvance", "summary": "float (offset 8)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 12)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeChartOpts", "displayName": "NativeChartOpts", "kind": "struct", "summary": "cui_chart_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Area", "kind": "field", "id": "field|Area|0|0|byte|||he8d3e8e8bb4ce63a9137e3d4828bc93f823171d1a6f241ca48772fa8dc7c11c5", "signature": "public byte Area", "summary": "_Bool (offset 28)" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|byte|||h026f953f32349519b56ea40bf2b85e0b94dcd1027cc2c5b4a4388f7196a50566", "signature": "public byte NoGrid", "summary": "_Bool (offset 29)" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|byte|||h1f8a110b3f30258fe29c926542fc3ebe7571478d3c055e1b3267d8e06e0b33f4", "signature": "public byte NoLegend", "summary": "_Bool (offset 30)" }, { "name": "Smooth", "kind": "field", "id": "field|Smooth|0|0|byte|||h8b09e18311bbb164f88305b5cff80844717a74f7fa25b154b9b3c08afe4cdcc0", "signature": "public byte Smooth", "summary": "_Bool (offset 32)" }, { "name": "Stacked", "kind": "field", "id": "field|Stacked|0|0|byte|||h693692fdffed29590d3fe4ff4aa98f0b1a5a647b80ba9fbd6a002ea4005f895f", "signature": "public byte Stacked", "summary": "_Bool (offset 31)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 52)" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "float (offset 48)" }, { "name": "LabelCount", "kind": "field", "id": "field|LabelCount|0|0|int|||h0786fd3eeaf4c765c6fa8cf9e8d15e20cd1426ffc09f46dd1856d4d1cd8ef852", "signature": "public int LabelCount", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 40)" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|nint|||h0891cfd95c52c3d740759d7929c72841b5dbbfe2ec9c515f56c7e5d7f437cf1c", "signature": "public nint Labels", "summary": "const char *const * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeChatOpts", "displayName": "NativeChatOpts", "kind": "struct", "summary": "cui_chat_opts, 64 bytes.", "members": [{ "name": "Grouped", "kind": "field", "id": "field|Grouped|0|0|byte|||h8824f5842400fbe6b3e8bd9b3741c5b0523524fed53dfaeb300ba1a1518360cd", "signature": "public byte Grouped", "summary": "_Bool (offset 32)" }, { "name": "LastInGroup", "kind": "field", "id": "field|LastInGroup|0|0|byte|||hf6373daa489f65906e6886d8f38c321fbadadfa87b74990611c559a01a31cc0e", "signature": "public byte LastInGroup", "summary": "_Bool (offset 33)" }, { "name": "Markdown", "kind": "field", "id": "field|Markdown|0|0|byte|||h7f1da1fcb473b91e0f6ecc7349a064e18b8ff52792412e081751d8d1938096fe", "signature": "public byte Markdown", "summary": "_Bool (offset 48)" }, { "name": "Mine", "kind": "field", "id": "field|Mine|0|0|byte|||h4514fcc235e72a7f07362ff9cc72b4bd54f81d528491c1ed167f6c52cee36833", "signature": "public byte Mine", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|nint|||h42259eda4a5cd5217e3ff4e52e5ab08ff4edda9240aaa452d4af2589b41bd856", "signature": "public nint Author", "summary": "const char * (offset 8)" }, { "name": "MarkdownResult", "kind": "field", "id": "field|MarkdownResult|0|0|nint|||ha56930908ad109e7d79045cac68d2bc2e984f2ea31e8af6e6fa827cf29a231f6", "signature": "public nint MarkdownResult", "summary": "cui_markdown_result * (offset 56)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 24)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|nint|||h6d58676de43396dc84cf8d2e099bd5fe6b43afec28246479d0f40b03dafda113", "signature": "public nint Time", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeCheckOpts", "displayName": "NativeCheckOpts", "kind": "struct", "summary": "cui_check_opts, 24 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 16)" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|byte|||hfedb6a86910124c963d29f1734bebdd306e24edb2eb5d92514b1fc88f2d3b8a7", "signature": "public byte Indeterminate", "summary": "_Bool (offset 17)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeCheckStep", "displayName": "NativeCheckStep", "kind": "struct", "summary": "cui_check_step, 32 bytes.", "members": [{ "name": "Done", "kind": "field", "id": "field|Done|0|0|byte|||h58098c30b144e76005c563d0bd944f605f0196fda06a720faadb04ff25758c6c", "signature": "public byte Done", "summary": "_Bool (offset 24)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 16)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeChecklistOpts", "displayName": "NativeChecklistOpts", "kind": "struct", "summary": "cui_checklist_opts, 24 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeChipOpts", "displayName": "NativeChipOpts", "kind": "struct", "summary": "cui_chip_opts, 24 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeChoice", "displayName": "NativeChoice", "kind": "struct", "summary": "cui_choice, 32 bytes.", "members": [{ "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCodeEditorOpts", "displayName": "NativeCodeEditorOpts", "kind": "struct", "summary": "cui_code_editor_opts, 64 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Autofocus", "kind": "field", "id": "field|Autofocus|0|0|byte|||hf7200e77a6e74d4faf41ea5500f58e93a4f8f8423cf247fc6c5784655d8f9fe5", "signature": "public byte Autofocus", "summary": "_Bool (offset 39)" }, { "name": "NoLineNumbers", "kind": "field", "id": "field|NoLineNumbers|0|0|byte|||h225192e93125ad7432bce78360339170c20c41ea31198e860e390c004ef1b0e3", "signature": "public byte NoLineNumbers", "summary": "_Bool (offset 38)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 37)" }, { "name": "UseTabs", "kind": "field", "id": "field|UseTabs|0|0|byte|||heab8c40cb58fb14e3c34d1d3dfa838acb5b84f19a09ad93e400f0add6d0b83e1", "signature": "public byte UseTabs", "summary": "_Bool (offset 36)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 28)" }, { "name": "MarkCount", "kind": "field", "id": "field|MarkCount|0|0|int|||he0762e6e3d6ca8a079b9d863b518cc5bb337abac3fb7998e5089c8856059c47a", "signature": "public int MarkCount", "summary": "int (offset 56)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "TabSize", "kind": "field", "id": "field|TabSize|0|0|int|||h1fb69a62e48ce09519cd8bb8b90088cf5a2053b0f991052821d6e0a3f3dab47f", "signature": "public int TabSize", "summary": "int (offset 32)" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|nint|||h47e017876cc656beadab67c2a3da7d17ebe65dbbb9bf477edfc76ac1167c397a", "signature": "public nint Lang", "summary": "const char * (offset 8)" }, { "name": "Marks", "kind": "field", "id": "field|Marks|0|0|nint|||h92dff866ad21ca7e39f6ae23d95ab0e17de8e7a46f99b13069259649cbba4f47", "signature": "public nint Marks", "summary": "const cui_text_mark * (offset 48)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeCodeEditorResult", "displayName": "NativeCodeEditorResult", "kind": "struct", "summary": "cui_code_editor_result, 44 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "Focused", "kind": "field", "id": "field|Focused|0|0|byte|||h81ce6ee72755791f4dc232b5aa74f873fdb70c3df47376d5e25944a375cf15e3", "signature": "public byte Focused", "summary": "_Bool (offset 2)" }, { "name": "Refused", "kind": "field", "id": "field|Refused|0|0|byte|||h08634b8afa1d66ba2cd75236cdb4831b5878ca633d36fd4da9d7ded68edc081d", "signature": "public byte Refused", "summary": "_Bool (offset 1)" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|int|||haebd09af400cd13b8e6a4d74ff68b178d1ce2cdb19d12950362ae273b212ff68", "signature": "public int Anchor", "summary": "int (offset 8)" }, { "name": "Bracket", "kind": "field", "id": "field|Bracket|0|0|int|||h77d16f8f46588b03aef36d7c7700c16913abeb938081d48c601527ac49676ea8", "signature": "public int Bracket", "summary": "int (offset 28)" }, { "name": "BracketMatch", "kind": "field", "id": "field|BracketMatch|0|0|int|||hf4bcef73eb750933986b759052d8e30b7b10d167b65548578d889eef0a8d0447", "signature": "public int BracketMatch", "summary": "int (offset 32)" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "int (offset 16)" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|int|||h23aff42ff5d653e4a3b8a654aa17c4d9c160335133193db458a21e242a54d577", "signature": "public int Cursor", "summary": "int (offset 4)" }, { "name": "FindIndex", "kind": "field", "id": "field|FindIndex|0|0|int|||h9901bf02470123f840113bd889b35049d5d57a39c279f06740fad0d72c6b6fae", "signature": "public int FindIndex", "summary": "int (offset 40)" }, { "name": "FindMatches", "kind": "field", "id": "field|FindMatches|0|0|int|||hc7266e2f6ac242c69af5391be242aaa9b92542b13fe7206e4b7263e39078c2d2", "signature": "public int FindMatches", "summary": "int (offset 36)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "int (offset 24)" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "int (offset 12)" }, { "name": "LineCount", "kind": "field", "id": "field|LineCount|0|0|int|||hbaa214fddd02d1ccffe160de438912c4aa7f3470b2479bc2583e4f2d2ebb1485", "signature": "public int LineCount", "summary": "int (offset 20)" }] }, + { "name": "CuiSharp.Interop.NativeCodeOpts", "displayName": "NativeCodeOpts", "kind": "struct", "summary": "cui_code_opts, 48 bytes.", "members": [{ "name": "LineNumbers", "kind": "field", "id": "field|LineNumbers|0|0|byte|||h6c489273e0032c3cd8879a3f825471bba8adeaa0cfc8d55f56fc838851f2142f", "signature": "public byte LineNumbers", "summary": "_Bool (offset 24)" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|byte|||h6093941fb44d7f5a4ff51d16324ccdb8778e77d1ae10d4e0d62af2a3df85380c", "signature": "public byte NoHeader", "summary": "_Bool (offset 44)" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float (offset 36)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 40)" }, { "name": "HighlightFrom", "kind": "field", "id": "field|HighlightFrom|0|0|int|||h3f447dcb0743179fec7a2dd4a9ce932f77873c9111e71c1fa0182456ef6a5ad8", "signature": "public int HighlightFrom", "summary": "int (offset 28)" }, { "name": "HighlightTo", "kind": "field", "id": "field|HighlightTo|0|0|int|||h69877e6460a36c5400eb55f0445931950db5a7253630d30f09922f950fd37671", "signature": "public int HighlightTo", "summary": "int (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|nint|||h47e017876cc656beadab67c2a3da7d17ebe65dbbb9bf477edfc76ac1167c397a", "signature": "public nint Lang", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeColor", "displayName": "NativeColor", "kind": "struct", "summary": "cui_color, 4 bytes.", "members": [{ "name": "A", "kind": "field", "id": "field|A|0|0|byte|||haba598c2e452648ea2192ebb31573b49013fa67fd0a1944b27b187e364bd38d4", "signature": "public byte A", "summary": "uint8_t (offset 3)" }, { "name": "B", "kind": "field", "id": "field|B|0|0|byte|||hc039cf1b86a898bd1c27e29036e275d0e1ee7e111ddbeb3950aba66fadcdd01e", "signature": "public byte B", "summary": "uint8_t (offset 2)" }, { "name": "G", "kind": "field", "id": "field|G|0|0|byte|||hf7128c545730a794931f3c622c9897ea1b4f1faae0f65e84d18073d732d74990", "signature": "public byte G", "summary": "uint8_t (offset 1)" }, { "name": "R", "kind": "field", "id": "field|R|0|0|byte|||h28dd3a8bcb2656f9a397d0b9687de1aff5ed0c342df898c72a005ccc671e14b5", "signature": "public byte R", "summary": "uint8_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCommand", "displayName": "NativeCommand", "kind": "struct", "summary": "cui_command, 32 bytes.", "members": [{ "name": "Group", "kind": "field", "id": "field|Group|0|0|nint|||h963fd0b49f7656c682c074d70591163973d0610c086f5a99ce956e9c99ca536f", "signature": "public nint Group", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|nint|||hc6bbf869e5f430ce1cb0bb80bcc43a44ef490242700d9eccaf018d9378a8f2dd", "signature": "public nint Shortcut", "summary": "const char * (offset 24)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCommentOpts", "displayName": "NativeCommentOpts", "kind": "struct", "summary": "cui_comment_opts, 56 bytes.", "members": [{ "name": "Edited", "kind": "field", "id": "field|Edited|0|0|byte|||h9ef1d7c46ce21222bc9354c9bc032337f9bc7c03cf045d2ab6957bb638b70c68", "signature": "public byte Edited", "summary": "_Bool (offset 40)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 48)" }, { "name": "Liked", "kind": "field", "id": "field|Liked|0|0|nint|||h2166441fedf68530e5d1694c5e257e1839e52448203851cafc1af70e1fa24e8b", "signature": "public nint Liked", "summary": "_Bool * (offset 32)" }, { "name": "Likes", "kind": "field", "id": "field|Likes|0|0|nint|||h58b52c8f355fa8ee3d50399c7db0aff44446f02f817bbc6bb1bcf1d855ca5246", "signature": "public nint Likes", "summary": "int * (offset 24)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|nint|||h6d58676de43396dc84cf8d2e099bd5fe6b43afec28246479d0f40b03dafda113", "signature": "public nint Time", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeCommit", "displayName": "NativeCommit", "kind": "struct", "summary": "cui_commit, 48 bytes.", "members": [{ "name": "Parent", "kind": "field", "id": "field|Parent|0|0|\u003CParent\u003Ee__FixedBuffer|||h9409d0ba18cd595079a01df9206afc115f203c1830c712c1514cf5dd190f4a6b", "signature": "public \u003CParent\u003Ee__FixedBuffer Parent", "summary": "int[2] (offset 40)" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|nint|||h42259eda4a5cd5217e3ff4e52e5ab08ff4edda9240aaa452d4af2589b41bd856", "signature": "public nint Author", "summary": "const char * (offset 16)" }, { "name": "Date", "kind": "field", "id": "field|Date|0|0|nint|||haeabbfc75670c369581630fafd26e71b67e94feb9ce8364ce4c8427111ebed3d", "signature": "public nint Date", "summary": "const char * (offset 24)" }, { "name": "Hash", "kind": "field", "id": "field|Hash|0|0|nint|||he32f0dd10af599ae75494fa806f33e8cdb244a3710820ad4341060ace91d091b", "signature": "public nint Hash", "summary": "const char * (offset 0)" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|nint|||hd26a8e53b67f4e6b6a7f4704f738a3b1510f63da8dbf582c674431012ef50a25", "signature": "public nint Message", "summary": "const char * (offset 8)" }, { "name": "Refs", "kind": "field", "id": "field|Refs|0|0|nint|||h6dd09607b283bf5ba1a9e99b6781c51e4853bb4eff49eaa8ff8d7bdc4eb20db3", "signature": "public nint Refs", "summary": "const char * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeCommitGraphOpts", "displayName": "NativeCommitGraphOpts", "kind": "struct", "summary": "cui_commit_graph_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeCommitGraphResult", "displayName": "NativeCommitGraphResult", "kind": "struct", "summary": "cui_commit_graph_result, 12 bytes.", "members": [{ "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeCompareOpts", "displayName": "NativeCompareOpts", "kind": "struct", "summary": "cui_compare_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Aspect", "kind": "field", "id": "field|Aspect|0|0|float|||h5a5a7490732f77b38ee208c886571caa7d8986b77932e6d27775bfe1970fb584", "signature": "public float Aspect", "summary": "float (offset 32)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "AfterLabel", "kind": "field", "id": "field|AfterLabel|0|0|nint|||hcd5823b7a0b0c977d9eccf66e15f3e51dc7c161f64bac1acfdb8f3afc28396b4", "signature": "public nint AfterLabel", "summary": "const char * (offset 24)" }, { "name": "BeforeLabel", "kind": "field", "id": "field|BeforeLabel|0|0|nint|||h321474378e3eab02f3ff920b697d97588f6fe13d55e5fa16343df2b8befe88be", "signature": "public nint BeforeLabel", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeComposerOpts", "displayName": "NativeComposerOpts", "kind": "struct", "summary": "cui_composer_opts, 88 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 76)" }, { "name": "Busy", "kind": "field", "id": "field|Busy|0|0|byte|||h6d479a642971d17d04fab0c19b9d2c36d16f0f7a9b2a35e4c729676ad2d83f35", "signature": "public byte Busy", "summary": "_Bool (offset 16)" }, { "name": "AttachmentCount", "kind": "field", "id": "field|AttachmentCount|0|0|int|||h478ce484b60fa991e85c35c50d12cbd4431743d88f12dc0d5c7e0f5d616a552a", "signature": "public int AttachmentCount", "summary": "int (offset 32)" }, { "name": "MaxLines", "kind": "field", "id": "field|MaxLines|0|0|int|||h995307b973f05cbe551b53177d0c23114013f6b5b22c835b2dc6609203e2b299", "signature": "public int MaxLines", "summary": "int (offset 72)" }, { "name": "ModelCount", "kind": "field", "id": "field|ModelCount|0|0|int|||hfbf7f87982dd42ccf2deda1d3ba7c988866b4826cb8f1dd682c00abe8a509e17", "signature": "public int ModelCount", "summary": "int (offset 56)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Attachments", "kind": "field", "id": "field|Attachments|0|0|nint|||he6e6ecb16ea2226fdebf10935b17312d86debff83be273b14dc30d280e9ea5ee", "signature": "public nint Attachments", "summary": "const char *const * (offset 24)" }, { "name": "Model", "kind": "field", "id": "field|Model|0|0|nint|||he3716979e91fed1aa1c06e3c1a060359fa7b787432b727cbae4668b23acb34fa", "signature": "public nint Model", "summary": "int * (offset 64)" }, { "name": "Models", "kind": "field", "id": "field|Models|0|0|nint|||h7857e5e3157d65427c1b238f3924e19859b9a615f2f2416dc058a8f4f6c55cba", "signature": "public nint Models", "summary": "const cui_model * (offset 48)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 8)" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|nint|||h4ced2a66308d51ced83dd2028f30396e5b18b5622a34a8b0f869ac1f69446b2e", "signature": "public nint Removed", "summary": "int * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeConfirmOpts", "displayName": "NativeConfirmOpts", "kind": "struct", "summary": "cui_confirm_opts, 40 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 28)" }, { "name": "Timeout", "kind": "field", "id": "field|Timeout|0|0|float|||h6fb556a50665c237ad9b5a3a89b5643838aa87632ece289264dbdaa96cf69904", "signature": "public float Timeout", "summary": "float (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "ConfirmLabel", "kind": "field", "id": "field|ConfirmLabel|0|0|nint|||h472b346f2cadf8851006735f2ae21cd804351b98aefdba995e099c2bb951b4c0", "signature": "public nint ConfirmLabel", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeConfirmPopoverOpts", "displayName": "NativeConfirmPopoverOpts", "kind": "struct", "summary": "cui_confirm_popover_opts, 48 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 44)" }, { "name": "Danger", "kind": "field", "id": "field|Danger|0|0|byte|||h267e3fb92ea691636e4453551bbe9f0ed26a3256b90ce44ac68d4cee9aedb9cf", "signature": "public byte Danger", "summary": "_Bool (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "CancelLabel", "kind": "field", "id": "field|CancelLabel|0|0|nint|||haf909045a38c18019ebac8c799a1af1a0a31f395e68377e9116071d1531ee537", "signature": "public nint CancelLabel", "summary": "const char * (offset 32)" }, { "name": "ConfirmLabel", "kind": "field", "id": "field|ConfirmLabel|0|0|nint|||h472b346f2cadf8851006735f2ae21cd804351b98aefdba995e099c2bb951b4c0", "signature": "public nint ConfirmLabel", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeContextOpts", "displayName": "NativeContextOpts", "kind": "struct", "summary": "cui_context_opts, 32 bytes.", "members": [{ "name": "PartCount", "kind": "field", "id": "field|PartCount|0|0|int|||h5342a94757f5e81a36c5b83bd0855847425988567f074994d88be7e774e54884", "signature": "public int PartCount", "summary": "int (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Parts", "kind": "field", "id": "field|Parts|0|0|nint|||hb7cf3c264537298beff2626c0db7b799ad0f70befdc4e2a664f9728d28cb7c2c", "signature": "public nint Parts", "summary": "const cui_viz_item * (offset 8)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeCorners", "displayName": "NativeCorners", "kind": "struct", "summary": "cui_corners, 16 bytes.", "members": [{ "name": "Bl", "kind": "field", "id": "field|Bl|0|0|float|||h75cfbb1960e2746350e1187b59f96ec503b96f599bc2c5f068be56ec0dfbe84e", "signature": "public float Bl", "summary": "float (offset 12)" }, { "name": "Br", "kind": "field", "id": "field|Br|0|0|float|||h73d934787837f3d7664ff6849d6e8e22a7564c07bf3db0472f6ca2c2a192996b", "signature": "public float Br", "summary": "float (offset 8)" }, { "name": "Tl", "kind": "field", "id": "field|Tl|0|0|float|||h4fff15d04f266531b81a0bbf50580dabafb0dab6f3b5b3f6fdc1dce93bc582db", "signature": "public float Tl", "summary": "float (offset 0)" }, { "name": "Tr", "kind": "field", "id": "field|Tr|0|0|float|||h90ce0060daeab729abe92c481cecd07780ae3835e8b302bb16b2fa1acdd0e863", "signature": "public float Tr", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeCountdownOpts", "displayName": "NativeCountdownOpts", "kind": "struct", "summary": "cui_countdown_opts, 8 bytes.", "members": [{ "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 5)" }, { "name": "HideDays", "kind": "field", "id": "field|HideDays|0|0|byte|||hbc1451dabcaa02ada6ca1218f1d0e7cc03d49d4b7581a28c356eb1b98d51de2f", "signature": "public byte HideDays", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCounterOpts", "displayName": "NativeCounterOpts", "kind": "struct", "summary": "cui_counter_opts, 32 bytes.", "members": [{ "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font (offset 20)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 24)" }, { "name": "GroupThousands", "kind": "field", "id": "field|GroupThousands|0|0|byte|||hff6aec31f491ce96665173264aa6ca32e379c3f00466f90c6aaf4bad45b6cf74", "signature": "public byte GroupThousands", "summary": "_Bool (offset 28)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeCoverageFile", "displayName": "NativeCoverageFile", "kind": "struct", "summary": "cui_coverage_file, 32 bytes.", "members": [{ "name": "Branches", "kind": "field", "id": "field|Branches|0|0|int|||h211a3c4c9be92003e91bc3dec56563a566cbd138480d4e790a58b46727fe63de", "signature": "public int Branches", "summary": "int (offset 16)" }, { "name": "BranchesHit", "kind": "field", "id": "field|BranchesHit|0|0|int|||h7071ae5f37dcb0ef19b28606d22fcaaeeff37d96ceb673dee1e8b81c1dd21303", "signature": "public int BranchesHit", "summary": "int (offset 20)" }, { "name": "Functions", "kind": "field", "id": "field|Functions|0|0|int|||h3c5e176fc0b1d841c718c27c1c6ee284fa20c31afd0c68c06de7f1ec57e71b41", "signature": "public int Functions", "summary": "int (offset 24)" }, { "name": "FunctionsHit", "kind": "field", "id": "field|FunctionsHit|0|0|int|||h3eaad292bc305e419d0766b41114cb76df3544fa8fd5978eeb5629ed562a4f07", "signature": "public int FunctionsHit", "summary": "int (offset 28)" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|int|||hee1996ff73a3bb29577188d155832b95024d32ca718f5404022abdd064faf7d7", "signature": "public int Lines", "summary": "int (offset 8)" }, { "name": "LinesHit", "kind": "field", "id": "field|LinesHit|0|0|int|||h313bb4660008239d0f40b3e18169ad54d23586b86c87095aa77eaf76404cc445", "signature": "public int LinesHit", "summary": "int (offset 12)" }, { "name": "Path", "kind": "field", "id": "field|Path|0|0|nint|||h8bba30a3af23f0921f87758138aaec20cd68b286c4244f14af28ea447646c5f3", "signature": "public nint Path", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCoverageOpts", "displayName": "NativeCoverageOpts", "kind": "struct", "summary": "cui_coverage_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "High", "kind": "field", "id": "field|High|0|0|float|||h8d86ceb8300b405923f523b6dfd491fceedb9688753dea5f6c0ed797466bffb1", "signature": "public float High", "summary": "float (offset 20)" }, { "name": "Low", "kind": "field", "id": "field|Low|0|0|float|||h5bec759be4f0ae85b0ce5535aeb5d662da36d7c794ada46efc1c76f1e46fbd11", "signature": "public float Low", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCoverageResult", "displayName": "NativeCoverageResult", "kind": "struct", "summary": "cui_coverage_result, 8 bytes.", "members": [{ "name": "Lines", "kind": "field", "id": "field|Lines|0|0|float|||h7ffa52c3fc8534cb001f45d21db0b1e58ef0821f4b768205d94dfde2e83269d5", "signature": "public float Lines", "summary": "float (offset 4)" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCropperOpts", "displayName": "NativeCropperOpts", "kind": "struct", "summary": "cui_cropper_opts, 32 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Round", "kind": "field", "id": "field|Round|0|0|byte|||hdb67065569e6d25c1f90bdd7983a80f29d36dbc74d5ef9f21fba39f0f895fed9", "signature": "public byte Round", "summary": "_Bool (offset 24)" }, { "name": "Aspect", "kind": "field", "id": "field|Aspect|0|0|float|||h5a5a7490732f77b38ee208c886571caa7d8986b77932e6d27775bfe1970fb584", "signature": "public float Aspect", "summary": "float (offset 20)" }, { "name": "MinSize", "kind": "field", "id": "field|MinSize|0|0|float|||h1099d1058b339206047e2995d1f051ab14f9f598203af7d8b0e01d0afc83ece3", "signature": "public float MinSize", "summary": "float (offset 28)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeCtxDesc", "displayName": "NativeCtxDesc", "kind": "struct", "summary": "cui_ctx_desc, 80 bytes.", "members": [{ "name": "Accent", "kind": "field", "id": "field|Accent|0|0|Accent|||h71052de13333411c0ea4ea9fd862bffc6c17770b3cd6a8d9e8d2bd9946427e80", "signature": "public Accent Accent", "summary": "cui_accent (offset 68)" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "cui_direction (offset 76)" }, { "name": "Allocator", "kind": "field", "id": "field|Allocator|0|0|NativeAllocator|||h2a74853828dbfd7e50eb0b90bd8b90cf166d5ba510263319d45c4172a997c795", "signature": "public NativeAllocator Allocator", "summary": "cui_allocator (offset 32)" }, { "name": "Renderer", "kind": "field", "id": "field|Renderer|0|0|NativeRendererIface|||h27c01445c111271694495305659d6fe43b11439399341c6448bbd67bb750cc78", "signature": "public NativeRendererIface Renderer", "summary": "cui_renderer_iface (offset 0)" }, { "name": "Theme", "kind": "field", "id": "field|Theme|0|0|Theme|||hc03062bcd5b400bad341e4abf4eced6f575572c853644893313e624c9667b6d8", "signature": "public Theme Theme", "summary": "cui_theme_mode (offset 64)" }, { "name": "NoDefaultFonts", "kind": "field", "id": "field|NoDefaultFonts|0|0|byte|||h9aaf184d01d6fca750e0877a2cbb78d4bcb15eb3e8b122c9ee72d87956a05e9b", "signature": "public byte NoDefaultFonts", "summary": "_Bool (offset 72)" }] }, + { "name": "CuiSharp.Interop.NativeCurveKey", "displayName": "NativeCurveKey", "kind": "struct", "summary": "cui_curve_key, 28 bytes.", "members": [{ "name": "Mode", "kind": "field", "id": "field|Mode|0|0|byte|||hc48af46ab8df3bf1e9fde7c99f8133936d52727786d62bae83f6331816627f29", "signature": "public byte Mode", "summary": "uint8_t (offset 24)" }, { "name": "InDx", "kind": "field", "id": "field|InDx|0|0|float|||hbe72f2ff8c6697c4162be844af44cfe03b76835f139b58149b32a476236a35d2", "signature": "public float InDx", "summary": "float (offset 8)" }, { "name": "InDy", "kind": "field", "id": "field|InDy|0|0|float|||h8ab7a07ad294963d27a205c1d82954649160a7ccd9b23bf44e1eaf0318aa1c22", "signature": "public float InDy", "summary": "float (offset 12)" }, { "name": "OutDx", "kind": "field", "id": "field|OutDx|0|0|float|||h1394b8fd1f988184d1bd9439e07af07e316f1dc2c8932927fabaa26ec0fe4108", "signature": "public float OutDx", "summary": "float (offset 16)" }, { "name": "OutDy", "kind": "field", "id": "field|OutDy|0|0|float|||h6e703ef86fb213aac57080ac4be84bc37a398dab0c90e86c0f1faa95baba9d1a", "signature": "public float OutDy", "summary": "float (offset 20)" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeCurveOpts", "displayName": "NativeCurveOpts", "kind": "struct", "summary": "cui_curve_opts, 80 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 20)" }, { "name": "ShowPlayhead", "kind": "field", "id": "field|ShowPlayhead|0|0|byte|||h23e75b0d22743b085410034b2d9c5807fc0c225041b8d7745ed4d9f67da557d1", "signature": "public byte ShowPlayhead", "summary": "_Bool (offset 73)" }, { "name": "Snap", "kind": "field", "id": "field|Snap|0|0|byte|||h75e3ff21570f3bdcb4c233ca80e5d3c21cc3456e8763e90115f5928bd2453f6c", "signature": "public byte Snap", "summary": "_Bool (offset 72)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 28)" }, { "name": "Playhead", "kind": "field", "id": "field|Playhead|0|0|float|||h13b4f9a1d03e6abcc658a8690c7eb073e4494ac8809fcb0a505d727c35c95dc9", "signature": "public float Playhead", "summary": "float (offset 76)" }, { "name": "XMax", "kind": "field", "id": "field|XMax|0|0|float|||hfde8cf024bcd80f7aeaeab1561a00a5999ca4e0a44c92833c650b5e8371f7d84", "signature": "public float XMax", "summary": "float (offset 8)" }, { "name": "XMin", "kind": "field", "id": "field|XMin|0|0|float|||hda34f3cf948ea1ccb86f31fa14c4b0ae01bb26591a830aa7cf4d6904bbf532a1", "signature": "public float XMin", "summary": "float (offset 4)" }, { "name": "YMax", "kind": "field", "id": "field|YMax|0|0|float|||h08c14e82ca6ca6de19498074d2f4276eeb0414b9289ba4f3aaa07cfcbabefcc5", "signature": "public float YMax", "summary": "float (offset 16)" }, { "name": "YMin", "kind": "field", "id": "field|YMin|0|0|float|||h9fe2b8139f946e78f990e4d05a003bc70a707dad54a59b5bfe7a704cb5bdb21a", "signature": "public float YMin", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 64)" }, { "name": "XFormat", "kind": "field", "id": "field|XFormat|0|0|nint|||h18e8cf118fea9392564da580eba62c8ae35e782caa009a608ed4c9346c73a269", "signature": "public nint XFormat", "summary": "const char * (offset 32)" }, { "name": "XLabel", "kind": "field", "id": "field|XLabel|0|0|nint|||h1c4a4886f3bc213da6e6aeff6bfcbadc01f7999be462be2d85643797609df1b7", "signature": "public nint XLabel", "summary": "const char * (offset 48)" }, { "name": "YFormat", "kind": "field", "id": "field|YFormat|0|0|nint|||h5c705ed0a7ec28e905001cc33b9d9a52a7c904a615aa8dcd45b435b1a4adcb47", "signature": "public nint YFormat", "summary": "const char * (offset 40)" }, { "name": "YLabel", "kind": "field", "id": "field|YLabel|0|0|nint|||h458be0325d3e3ce4b9212c389ff3d38e2ea7d070891c57b1c5fad4556ed6dc2b", "signature": "public nint YLabel", "summary": "const char * (offset 56)" }] }, + { "name": "CuiSharp.Interop.NativeCurveResult", "displayName": "NativeCurveResult", "kind": "struct", "summary": "cui_curve_result, 28 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|byte|||h4785e3188428a52694c64922b42544b998ea3d0d8b2bcc971ccfdabce4e24659", "signature": "public byte Hovered", "summary": "_Bool (offset 16)" }, { "name": "HoverX", "kind": "field", "id": "field|HoverX|0|0|float|||h6d3983e00fdd0dc802830b5a13e42596cd1ff3c17737924c3b437e01e780f5b3", "signature": "public float HoverX", "summary": "float (offset 20)" }, { "name": "HoverY", "kind": "field", "id": "field|HoverY|0|0|float|||h1ee83e1a2cff5f505adea50b07de7f70d2139ff513f4c2bf13c746028c5f45d7", "signature": "public float HoverY", "summary": "float (offset 24)" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "int (offset 4)" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "int (offset 8)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeDate", "displayName": "NativeDate", "kind": "struct", "summary": "cui_date, 12 bytes.", "members": [{ "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int (offset 8)" }, { "name": "Month", "kind": "field", "id": "field|Month|0|0|int|||hcc05b036cc6bdfd0d27293432136b7293c2b0b8f7933726432712a3bbddfde9a", "signature": "public int Month", "summary": "int (offset 4)" }, { "name": "Year", "kind": "field", "id": "field|Year|0|0|int|||h8b603079e90d1d910b69d673d70d00144bb31f3787b544bde4dced367798a4dc", "signature": "public int Year", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDateOpts", "displayName": "NativeDateOpts", "kind": "struct", "summary": "cui_date_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeDateRange", "displayName": "NativeDateRange", "kind": "struct", "summary": "cui_date_range, 24 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|NativeDate|||h1b179b5108e9ed3f0347d54b4ef6fe1e441917c22d27a016c4c8a9bbbe6ad0c7", "signature": "public NativeDate End", "summary": "cui_date (offset 12)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|NativeDate|||h7d67c190de1c0e1c80bdadfcd317cbed9d2a9499e545b7e9029faa0256d97a3b", "signature": "public NativeDate Start", "summary": "cui_date (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDateRangeOpts", "displayName": "NativeDateRangeOpts", "kind": "struct", "summary": "cui_date_range_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "NoPresets", "kind": "field", "id": "field|NoPresets|0|0|byte|||h48e9f390319a7348699004766959fb4b02a06a03cd68a5ce168ad69a714642bb", "signature": "public byte NoPresets", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeDiagnostic", "displayName": "NativeDiagnostic", "kind": "struct", "summary": "cui_diagnostic, 48 bytes.", "members": [{ "name": "Severity", "kind": "field", "id": "field|Severity|0|0|Severity|||h9e5e3ed80aa43cf83d574b57f16dd2271622ff069cd74d83468aa520e5b9608b", "signature": "public Severity Severity", "summary": "cui_severity (offset 0)" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "int (offset 28)" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "int (offset 24)" }, { "name": "Code", "kind": "field", "id": "field|Code|0|0|nint|||h7427649b43b2e49212bf9bfd21a645a61eae4c3514f35066412bf8a3ddeb4484", "signature": "public nint Code", "summary": "const char * (offset 40)" }, { "name": "File", "kind": "field", "id": "field|File|0|0|nint|||hf18b959cb1aa589cfedfeb3f56d2a4481a5c4eac07083fc9750af44c4bf0cf08", "signature": "public nint File", "summary": "const char * (offset 16)" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|nint|||hd26a8e53b67f4e6b6a7f4704f738a3b1510f63da8dbf582c674431012ef50a25", "signature": "public nint Message", "summary": "const char * (offset 8)" }, { "name": "Source", "kind": "field", "id": "field|Source|0|0|nint|||h1199d329667bd917815202c41d44da21fc731a62f0507af39b62283f6b5248d9", "signature": "public nint Source", "summary": "const char * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeDialogOpts", "displayName": "NativeDialogOpts", "kind": "struct", "summary": "cui_dialog_opts, 24 bytes.", "members": [{ "name": "NoCloseButton", "kind": "field", "id": "field|NoCloseButton|0|0|byte|||hc1fa2c954e101809c4c6b368da789a0e61f87bebf78327938f83dd397e21c995", "signature": "public byte NoCloseButton", "summary": "_Bool (offset 20)" }, { "name": "Persistent", "kind": "field", "id": "field|Persistent|0|0|byte|||h81ce0743b769b6d5c0e013a90cb0bb3e26b5af87990c1d0258cdb6fe40d4b3a4", "signature": "public byte Persistent", "summary": "_Bool (offset 21)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeDiffHunk", "displayName": "NativeDiffHunk", "kind": "struct", "summary": "cui_diff_hunk, 16 bytes.", "members": [{ "name": "NewCount", "kind": "field", "id": "field|NewCount|0|0|int|||h990d5c1c776f5d98289d373ccce01e01aff196ec152012f4ce31d332daac2fca", "signature": "public int NewCount", "summary": "int (offset 12)" }, { "name": "NewStart", "kind": "field", "id": "field|NewStart|0|0|int|||h2507b03e2486af8ba046985710fc069eea6c47e6dfecc0af021e362bf01c99be", "signature": "public int NewStart", "summary": "int (offset 8)" }, { "name": "OldCount", "kind": "field", "id": "field|OldCount|0|0|int|||h372126bde64035f7f5e73a78422a27a8b7dd94486f537c991db8a304ed762b5e", "signature": "public int OldCount", "summary": "int (offset 4)" }, { "name": "OldStart", "kind": "field", "id": "field|OldStart|0|0|int|||h72dcb46cb3cbeaf7a201726f15c9d2d777665c73069717ce3a59fa25319f4a93", "signature": "public int OldStart", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDiffOpts", "displayName": "NativeDiffOpts", "kind": "struct", "summary": "cui_diff_opts, 72 bytes.", "members": [{ "name": "Mode", "kind": "field", "id": "field|Mode|0|0|DiffMode|||hd3b30f92655838349c59825ab303a32d61934710651f0b99ceeb3740d4273609", "signature": "public DiffMode Mode", "summary": "cui_diff_mode (offset 4)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 52)" }, { "name": "IgnoreEol", "kind": "field", "id": "field|IgnoreEol|0|0|byte|||he631923645d76379618e41406522de3a02b70a019becacff80d3774439a56ad1", "signature": "public byte IgnoreEol", "summary": "_Bool (offset 45)" }, { "name": "NoFold", "kind": "field", "id": "field|NoFold|0|0|byte|||h4e48414527bbb29d232f9f6639c4457be05102960a2f9d0f5924574737413731", "signature": "public byte NoFold", "summary": "_Bool (offset 44)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 60)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 64)" }, { "name": "SplitMinWidth", "kind": "field", "id": "field|SplitMinWidth|0|0|float|||hc931e15221dec2e010745242455e00eba3f789c0449406ade12b6644a45a00b8", "signature": "public float SplitMinWidth", "summary": "float (offset 48)" }, { "name": "Context", "kind": "field", "id": "field|Context|0|0|int|||h3378089986c603151e12fc1e07bbb36553bae2eccdf9eeeff4b37cc73b4ca195", "signature": "public int Context", "summary": "int (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Current", "kind": "field", "id": "field|Current|0|0|nint|||ha7633e646e78ed343a63824be37da604de930ff1124f17c0a7f1570f328a8ed8", "signature": "public nint Current", "summary": "int * (offset 32)" }, { "name": "Language", "kind": "field", "id": "field|Language|0|0|nint|||h7c1bf27e2024e1a54c14fab18ecff64f29a282d906b594c9780e1db8f72d682b", "signature": "public nint Language", "summary": "const char * (offset 8)" }, { "name": "NewTitle", "kind": "field", "id": "field|NewTitle|0|0|nint|||h07df29a8c098c37900dc6804ae02528848905b6f83f17078370aac28a00f6384", "signature": "public nint NewTitle", "summary": "const char * (offset 24)" }, { "name": "OldTitle", "kind": "field", "id": "field|OldTitle|0|0|nint|||hf1348a0bbc8b4af962306959ee3358a9d847616f13e17e72114e9c73206d3797", "signature": "public nint OldTitle", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeDiffRange", "displayName": "NativeDiffRange", "kind": "struct", "summary": "cui_diff_range, 8 bytes.", "members": [{ "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "int (offset 4)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDiffResult", "displayName": "NativeDiffResult", "kind": "struct", "summary": "cui_diff_result, 36 bytes.", "members": [{ "name": "Mode", "kind": "field", "id": "field|Mode|0|0|DiffMode|||hd3b30f92655838349c59825ab303a32d61934710651f0b99ceeb3740d4273609", "signature": "public DiffMode Mode", "summary": "cui_diff_mode (offset 20)" }, { "name": "Approximate", "kind": "field", "id": "field|Approximate|0|0|byte|||h0f32eab877364afb8bff84ad856dc04a67c3afabb2b5e28c6a4e6acf8b5fbae0", "signature": "public byte Approximate", "summary": "_Bool (offset 33)" }, { "name": "CurrentChanged", "kind": "field", "id": "field|CurrentChanged|0|0|byte|||h1c79988043171e8ca6298c75169d3e5f6ad511bc2630515e815002ac5d3c522f", "signature": "public byte CurrentChanged", "summary": "_Bool (offset 16)" }, { "name": "Recomputed", "kind": "field", "id": "field|Recomputed|0|0|byte|||h5b6249db7d6eb0136912dd8610e2381c54de6d5d0d699fedb55d8f8812a0f994", "signature": "public byte Recomputed", "summary": "_Bool (offset 32)" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "int (offset 0)" }, { "name": "Changes", "kind": "field", "id": "field|Changes|0|0|int|||h92c3316a456e87daf1c99d309c6ac018fc064ebbe8a432c2918508944c45979d", "signature": "public int Changes", "summary": "int (offset 8)" }, { "name": "Current", "kind": "field", "id": "field|Current|0|0|int|||h59aa7f0912b0ac389ff87c88363f76f78980244723618daa28eabc29cf1fa3f3", "signature": "public int Current", "summary": "int (offset 12)" }, { "name": "Folds", "kind": "field", "id": "field|Folds|0|0|int|||hc44f599c59fbcd4b7acdf51032e00a2ac75aa19f9f370cc82e1597d9e6404aa2", "signature": "public int Folds", "summary": "int (offset 24)" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|int|||h213f22e3210862a27f997f5a3526334cfa037d774da6ae2360261c0b06188ad6", "signature": "public int Hidden", "summary": "int (offset 28)" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeDiffRow", "displayName": "NativeDiffRow", "kind": "struct", "summary": "cui_diff_row, 20 bytes.", "members": [{ "name": "Kind", "kind": "field", "id": "field|Kind|0|0|DiffRowKind|||h8492c9bbc0fe5406fdc5a7e026a21a97cf6263728ebe12e1fcfdb21739b0fcd3", "signature": "public DiffRowKind Kind", "summary": "cui_diff_row_kind (offset 0)" }, { "name": "Change", "kind": "field", "id": "field|Change|0|0|int|||ha5a0494f795169c13c7b208ca15443b22801d16f70d84413d071e3652a1e1062", "signature": "public int Change", "summary": "int (offset 12)" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|int|||h213f22e3210862a27f997f5a3526334cfa037d774da6ae2360261c0b06188ad6", "signature": "public int Hidden", "summary": "int (offset 16)" }, { "name": "NewLine", "kind": "field", "id": "field|NewLine|0|0|int|||hde0ec57f4b0e4c2fe5cd0414edd2f43cc4af58e34cf20bda6c518b84db99d69d", "signature": "public int NewLine", "summary": "int (offset 8)" }, { "name": "OldLine", "kind": "field", "id": "field|OldLine|0|0|int|||h7fcc25b0716435ac3fd7f7a6e3876e316598838154f4a1c68b64fec59950312d", "signature": "public int OldLine", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeDiffStats", "displayName": "NativeDiffStats", "kind": "struct", "summary": "cui_diff_stats, 24 bytes.", "members": [{ "name": "Approximate", "kind": "field", "id": "field|Approximate|0|0|byte|||h0f32eab877364afb8bff84ad856dc04a67c3afabb2b5e28c6a4e6acf8b5fbae0", "signature": "public byte Approximate", "summary": "_Bool (offset 20)" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "int (offset 0)" }, { "name": "Hunks", "kind": "field", "id": "field|Hunks|0|0|int|||he5a7c2c6ecbda9339c4504d79fa653d43f9c810c70290585ea379322b5296fe3", "signature": "public int Hunks", "summary": "int (offset 8)" }, { "name": "NewLines", "kind": "field", "id": "field|NewLines|0|0|int|||h77cf25ecb62e21fda63404638167454acd24d15854733ecf65742980e4197bc6", "signature": "public int NewLines", "summary": "int (offset 16)" }, { "name": "OldLines", "kind": "field", "id": "field|OldLines|0|0|int|||he89e809a784724c71850d6a1e0c6b6fcdba5ce8950d3faa8a99a3501203331c8", "signature": "public int OldLines", "summary": "int (offset 12)" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeDocTab", "displayName": "NativeDocTab", "kind": "struct", "summary": "cui_doc_tab, 32 bytes.", "members": [{ "name": "Dirty", "kind": "field", "id": "field|Dirty|0|0|byte|||hdeca808be0cb980e0127bf11db817b7eba18ce8bebf9b076a7a0630e4feaa531", "signature": "public byte Dirty", "summary": "_Bool (offset 24)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeDocTabsOpts", "displayName": "NativeDocTabsOpts", "kind": "struct", "summary": "cui_doc_tabs_opts, 8 bytes.", "members": [{ "name": "NoClose", "kind": "field", "id": "field|NoClose|0|0|byte|||hacbdbddc271704b2df42b9ee5d951bd93c95187ec63d2108ebea9725c6689ca7", "signature": "public byte NoClose", "summary": "_Bool (offset 5)" }, { "name": "NoReorder", "kind": "field", "id": "field|NoReorder|0|0|byte|||h101c130bde86d0ff9cba5055c44c106c6128d2fc1df8dc0d4a5cd0f3d344a270", "signature": "public byte NoReorder", "summary": "_Bool (offset 6)" }, { "name": "Shortcuts", "kind": "field", "id": "field|Shortcuts|0|0|byte|||hd6377cbca16d594c8b5a4148204280325d292de8ca3b071947064f77f6e6a6fb", "signature": "public byte Shortcuts", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDocTabsResult", "displayName": "NativeDocTabsResult", "kind": "struct", "summary": "cui_doc_tabs_result, 16 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "Close", "kind": "field", "id": "field|Close|0|0|int|||hd66699e2f0c82a29493772269f2265430cd51ffdaea1b6e5a53620ccd8057858", "signature": "public int Close", "summary": "int (offset 4)" }, { "name": "MoveFrom", "kind": "field", "id": "field|MoveFrom|0|0|int|||h5242007257927bf644e70880032ca9628cfdfcb01004763000e1099c7dc49aa8", "signature": "public int MoveFrom", "summary": "int (offset 8)" }, { "name": "MoveTo", "kind": "field", "id": "field|MoveTo|0|0|int|||h9978012a238735312417aa1be6c6e404ffce2291eb4cc9867928d6eb35aebeac", "signature": "public int MoveTo", "summary": "int (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeDockItemOpts", "displayName": "NativeDockItemOpts", "kind": "struct", "summary": "cui_dock_item_opts, 16 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 4)" }, { "name": "Running", "kind": "field", "id": "field|Running|0|0|byte|||hbc145deb8cc1fd60c76fec5ac516eeb00cbcf81f58b42ff1adc1189c402bcbe2", "signature": "public byte Running", "summary": "_Bool (offset 8)" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|int|||h1ea0a5985eea3db7ed64622a6693b2d10e07bdfdc4610208a1b5ee962fce491c", "signature": "public int Badge", "summary": "int (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDockOpts", "displayName": "NativeDockOpts", "kind": "struct", "summary": "cui_dock_opts, 12 bytes.", "members": [{ "name": "Magnify", "kind": "field", "id": "field|Magnify|0|0|float|||h1b7c2d09207b0b96fb623cbceda94330e8256fdb75cff5e9cb0e5693e018a756", "signature": "public float Magnify", "summary": "float (offset 8)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeDockPanelOpts", "displayName": "NativeDockPanelOpts", "kind": "struct", "summary": "cui_dock_panel_opts, 24 bytes.", "members": [{ "name": "Dirty", "kind": "field", "id": "field|Dirty|0|0|byte|||hdeca808be0cb980e0127bf11db817b7eba18ce8bebf9b076a7a0630e4feaa531", "signature": "public byte Dirty", "summary": "_Bool (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeDockspaceOpts", "displayName": "NativeDockspaceOpts", "kind": "struct", "summary": "cui_dockspace_opts, 48 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Shortcuts", "kind": "field", "id": "field|Shortcuts|0|0|byte|||hd6377cbca16d594c8b5a4148204280325d292de8ca3b071947064f77f6e6a6fb", "signature": "public byte Shortcuts", "summary": "_Bool (offset 40)" }, { "name": "MinPanelHeight", "kind": "field", "id": "field|MinPanelHeight|0|0|float|||h477499d2af5c2fdee80ea8ecbb7b89b8cd2bc2693730e692f2b738fdae410cd7", "signature": "public float MinPanelHeight", "summary": "float (offset 36)" }, { "name": "MinPanelWidth", "kind": "field", "id": "field|MinPanelWidth|0|0|float|||hc8164d822bee1bca4df57bb3dbc7061e2e0cc00b5193fd5ee4341cbc793ce8d5", "signature": "public float MinPanelWidth", "summary": "float (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Layout", "kind": "field", "id": "field|Layout|0|0|nint|||he153907fa360ada3863f43f9763a85f428ae5b8f3addb4c159119cea0044e884", "signature": "public nint Layout", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeDrawCmd", "displayName": "NativeDrawCmd", "kind": "struct", "summary": "cui_draw_cmd, 32 bytes.", "members": [{ "name": "Clip", "kind": "field", "id": "field|Clip|0|0|NativeRect|||h09bdaf8c5530d338de131c10bf3864c030b9fcc63a721815522ccb35df10e05e", "signature": "public NativeRect Clip", "summary": "cui_rect (offset 0)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|uint|||hb0bcb37c85a9f860f8ee892fff2d4b18cabf19879cb74b9c3f7f7e8aa18ff42c", "signature": "public uint IndexCount", "summary": "uint32_t (offset 28)" }, { "name": "IndexOffset", "kind": "field", "id": "field|IndexOffset|0|0|uint|||hb6d7b22f4a50cdb0db51a0d9d4e40e8b23387e64c8e283df7b5db3022fbbaba5", "signature": "public uint IndexOffset", "summary": "uint32_t (offset 24)" }, { "name": "Texture", "kind": "field", "id": "field|Texture|0|0|ulong|||h63b610588c6e3cf4be0188cb8c6eb0ad66f9a7a8baeaf740af8b3dd26d117cbb", "signature": "public ulong Texture", "summary": "cui_texture (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeDrawData", "displayName": "NativeDrawData", "kind": "struct", "summary": "cui_draw_data, 64 bytes.", "members": [{ "name": "ClearColor", "kind": "field", "id": "field|ClearColor|0|0|NativeColor|||heb9a573661370f973e3eb7ac8e1caf42bd059a193fd68abb81ca31dc5e189195", "signature": "public NativeColor ClearColor", "summary": "cui_color (offset 52)" }, { "name": "CommandCount", "kind": "field", "id": "field|CommandCount|0|0|int|||hc190b445170235490a4c93672339bb39cf03f4c800e272271fabef50fde7e5b4", "signature": "public int CommandCount", "summary": "int (offset 40)" }, { "name": "HeightPx", "kind": "field", "id": "field|HeightPx|0|0|int|||hc7abb4500bf8c59f5efde6d760572fea4431b3675d3b65005761e1a876b470f4", "signature": "public int HeightPx", "summary": "int (offset 48)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|int|||h6d841b3a76641eedc5238403d2c20b0963aed3c79fb6d07a7cd37698b8966731", "signature": "public int IndexCount", "summary": "int (offset 24)" }, { "name": "VertexCount", "kind": "field", "id": "field|VertexCount|0|0|int|||h0b32c3ca172972ce82332a1e2117e19a05d322760a5a01602052553ed4b16f19", "signature": "public int VertexCount", "summary": "int (offset 8)" }, { "name": "WidthPx", "kind": "field", "id": "field|WidthPx|0|0|int|||hadce0c1d922dc2297d04376b3fb0d7d5cfe53b2c2f6102992a52b783c8f15f31", "signature": "public int WidthPx", "summary": "int (offset 44)" }, { "name": "Commands", "kind": "field", "id": "field|Commands|0|0|nint|||hf0a2f92a6de78b78d4ffbdcddcfd7daf34fcb2c10d9f28119399bf055205a7c2", "signature": "public nint Commands", "summary": "const cui_draw_cmd * (offset 32)" }, { "name": "Indices", "kind": "field", "id": "field|Indices|0|0|nint|||h6d12982c36688cc1f72ee4cb2937f350902bae1d575d229d9f269495445c4a87", "signature": "public nint Indices", "summary": "const uint32_t * (offset 16)" }, { "name": "Vertices", "kind": "field", "id": "field|Vertices|0|0|nint|||h66a8649f8a7a541c7e3f7ca35269a409f94c28e3511bfdb3fef999a8c13eef91", "signature": "public nint Vertices", "summary": "const cui_vertex * (offset 0)" }, { "name": "FontAtlas", "kind": "field", "id": "field|FontAtlas|0|0|ulong|||h9748952396fca2bb8d87012e5ae742f689e7937bcbccb6f68eaca199303c7658", "signature": "public ulong FontAtlas", "summary": "cui_texture (offset 56)" }] }, + { "name": "CuiSharp.Interop.NativeDropzoneOpts", "displayName": "NativeDropzoneOpts", "kind": "struct", "summary": "cui_dropzone_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 44)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 52)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Accept", "kind": "field", "id": "field|Accept|0|0|nint|||h04df6c7ccc4694e99bc343faf31eac321c25224fae62b3ab149ef7169848243e", "signature": "public nint Accept", "summary": "const char * (offset 32)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeEmojiPickerOpts", "displayName": "NativeEmojiPickerOpts", "kind": "struct", "summary": "cui_emoji_picker_opts, 88 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoPreview", "kind": "field", "id": "field|NoPreview|0|0|byte|||h1b1c0f53e0a98b6a75cf1fc3b196dbf13d6a97e6e4059a5ccc7f9cd2fede46a4", "signature": "public byte NoPreview", "summary": "_Bool (offset 81)" }, { "name": "NoSearch", "kind": "field", "id": "field|NoSearch|0|0|byte|||h1b79e845e35ce805c0e9ba6daa0b221e2b4ea3253a0d30fe5a0b3089ad7dffd5", "signature": "public byte NoSearch", "summary": "_Bool (offset 80)" }, { "name": "NoTone", "kind": "field", "id": "field|NoTone|0|0|byte|||h1bca5d13bfa507ddb10e74de6a3c85a065b6495379158fefd41887baa0ab131a", "signature": "public byte NoTone", "summary": "_Bool (offset 82)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "EmptyText", "kind": "field", "id": "field|EmptyText|0|0|nint|||h84afe79dbbeaa0c9b73bb4d20fbcc6738301e0c67a55100fcffd03eebcc017be", "signature": "public nint EmptyText", "summary": "const char * (offset 56)" }, { "name": "GroupNames", "kind": "field", "id": "field|GroupNames|0|0|nint|||ha62ebbf39e9bcbd501d6bc943ba53462d2998b6e8a5b223621f0cc14171a66c5", "signature": "public nint GroupNames", "summary": "const char *const * (offset 72)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|nint|||hc04a330155ea240694e4f00b47172663ef8f8e8c7171babe8307883ebbeeee6c", "signature": "public nint Hint", "summary": "const char * (offset 64)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 48)" }, { "name": "Recent", "kind": "field", "id": "field|Recent|0|0|nint|||heeef6ed734e158bf4d663036a6949c21cdaf60f565283d539fbdb77e077d495b", "signature": "public nint Recent", "summary": "char * (offset 24)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|nint|||hcdeacaaea3b8fdcb54307dc47361bdd3478789682315f2252ea858fba686d74d", "signature": "public nint Tone", "summary": "int * (offset 40)" }, { "name": "RecentCap", "kind": "field", "id": "field|RecentCap|0|0|ulong|||h5a97b0cd3619d65258129e392aa98391407116002ea5b16ebe8968e37fa2a705", "signature": "public ulong RecentCap", "summary": "size_t (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeEmptyOpts", "displayName": "NativeEmptyOpts", "kind": "struct", "summary": "cui_empty_opts, 32 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeExpandableCardOpts", "displayName": "NativeExpandableCardOpts", "kind": "struct", "summary": "cui_expandable_card_opts, 40 bytes.", "members": [{ "name": "BadgeTone", "kind": "field", "id": "field|BadgeTone|0|0|Tone|||h7d1e4a819759475402672321667bc594bcbc369a9973d1d17f2954d94090361f", "signature": "public Tone BadgeTone", "summary": "cui_tone (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeExpandableTextOpts", "displayName": "NativeExpandableTextOpts", "kind": "struct", "summary": "cui_expandable_text_opts, 20 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "FadeTo", "kind": "field", "id": "field|FadeTo|0|0|NativeColor|||h6fc5b6e540a84749802df1347a5cfdc931ab8a9f1b348236de4856c7d7b190e4", "signature": "public NativeColor FadeTo", "summary": "cui_color (offset 16)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|int|||hee1996ff73a3bb29577188d155832b95024d32ca718f5404022abdd064faf7d7", "signature": "public int Lines", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeFaderOpts", "displayName": "NativeFaderOpts", "kind": "struct", "summary": "cui_fader_opts, 80 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 77)" }, { "name": "HideValue", "kind": "field", "id": "field|HideValue|0|0|byte|||hbb6b16309b43eda0fc05f53c3f1331a74672b86f2823f660cbf275eda7570761", "signature": "public byte HideValue", "summary": "_Bool (offset 76)" }, { "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|byte|||hb8eb5f891a452586827fe30447b7d0b698e41f55d790a6fb5ef7aee450a3d7f2", "signature": "public byte Horizontal", "summary": "_Bool (offset 36)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|float|||hde0ed5b9413eadd735eb6ae0346647e34ca58923c6d228bcc21459281e52a172", "signature": "public float Length", "summary": "float (offset 32)" }, { "name": "Reset", "kind": "field", "id": "field|Reset|0|0|float|||h6f7e0b1685ab6d501be44af24ff4fc26ab960c5abf2371bc447d2d1768038172", "signature": "public float Reset", "summary": "float (offset 44)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 40)" }, { "name": "MeterChannels", "kind": "field", "id": "field|MeterChannels|0|0|int|||hb226b16c842f117a25b365a0857eb313f1deb632328f3313d44a47fd2cb1d138", "signature": "public int MeterChannels", "summary": "int (offset 72)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "TickCount", "kind": "field", "id": "field|TickCount|0|0|int|||hfaa0b21c87b7bdc86ccb43ab89bf62c3a9af96359121f530e10d842785d10c47", "signature": "public int TickCount", "summary": "int (offset 56)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Meter", "kind": "field", "id": "field|Meter|0|0|nint|||h3375502e9a7072f3d2b61afa9b045ae1f2df22ffc3a63c747b9948c2b621128d", "signature": "public nint Meter", "summary": "const float * (offset 64)" }, { "name": "Ticks", "kind": "field", "id": "field|Ticks|0|0|nint|||h289c57302bd4866d911b9dc5aec095b0f5ceb09b31139e9f8b7bc3d79c6a553e", "signature": "public nint Ticks", "summary": "const float * (offset 48)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeFeatureFlag", "displayName": "NativeFeatureFlag", "kind": "struct", "summary": "cui_feature_flag, 56 bytes.", "members": [{ "name": "On", "kind": "field", "id": "field|On|0|0|\u003COn\u003Ee__FixedBuffer|||h4fe21dab1eb5344987e821db3be00e4fd428a73bcf0d3dff1a6ca61aa27a8627", "signature": "public \u003COn\u003Ee__FixedBuffer On", "summary": "_Bool[8] (offset 16)" }, { "name": "Rollout", "kind": "field", "id": "field|Rollout|0|0|\u003CRollout\u003Ee__FixedBuffer|||h6e8b456a3ec00dd8254449a068db5974dc55e2583126c1ac2694a44aded24320", "signature": "public \u003CRollout\u003Ee__FixedBuffer Rollout", "summary": "int[8] (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Key", "kind": "field", "id": "field|Key|0|0|nint|||h8dc181704631263cbfa5dce141d5a704cd2a84480b2b7eaaed62573f9f41fd97", "signature": "public nint Key", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeFeatureFlagsOpts", "displayName": "NativeFeatureFlagsOpts", "kind": "struct", "summary": "cui_feature_flags_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeFeatureFlagsResult", "displayName": "NativeFeatureFlagsResult", "kind": "struct", "summary": "cui_feature_flags_result, 8 bytes.", "members": [{ "name": "Env", "kind": "field", "id": "field|Env|0|0|int|||h269fe73fb8fabfdb994eca29622654e19b24a6ecb8611be18a698db081d93601", "signature": "public int Env", "summary": "int (offset 4)" }, { "name": "Flag", "kind": "field", "id": "field|Flag|0|0|int|||h8f33ee8f28f37670ad5fa060fa8a67e317f7a892fc622de79b672ab614aa1637", "signature": "public int Flag", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeFileBrowserOpts", "displayName": "NativeFileBrowserOpts", "kind": "struct", "summary": "cui_file_browser_opts, 80 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "FoldersOnly", "kind": "field", "id": "field|FoldersOnly|0|0|byte|||hae2e177a4e27dee5ba0dfaca55a865d56d5018844806492cf57e6a29e5b45d74", "signature": "public byte FoldersOnly", "summary": "_Bool (offset 32)" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|byte|||h09d64fd87a2ea3d6dc71208d5d191ef6983ee56f643ddde81b958e84c34b17b8", "signature": "public byte Hidden", "summary": "_Bool (offset 33)" }, { "name": "NoPlaces", "kind": "field", "id": "field|NoPlaces|0|0|byte|||h0061409c5c9d9515dfcb6f697b4b3d77ca0c7c2e2d41ef4017afbcce25325410", "signature": "public byte NoPlaces", "summary": "_Bool (offset 34)" }, { "name": "MaxEntries", "kind": "field", "id": "field|MaxEntries|0|0|int|||h2695eb0ec10136d936d6e32d011a43f4405cf384da5a9a9b0c31d3fe6fea80a9", "signature": "public int MaxEntries", "summary": "int (offset 72)" }, { "name": "PlaceCount", "kind": "field", "id": "field|PlaceCount|0|0|int|||h50af12e8e092f87d09e47933fc79768058887bec2568cd9f6b40410e6345a519", "signature": "public int PlaceCount", "summary": "int (offset 48)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|nint|||hd300c3e184dfdac0ba98c5d80f3bfc5c9fa629e4455f95ac59a70bf43defe25a", "signature": "public nint Filter", "summary": "const char * (offset 24)" }, { "name": "List", "kind": "field", "id": "field|List|0|0|nint|||h0b5c59300517055cd672574fc5d8ede833fc5f7e26c8c675234312fc001425a4", "signature": "public nint List", "summary": "cui_file_list_fn (offset 56)" }, { "name": "ListUser", "kind": "field", "id": "field|ListUser|0|0|nint|||hc5ee4fc495d143240b8dc2682dd4b0d2b8e04db1d48d490df1103d34a410aa00", "signature": "public nint ListUser", "summary": "void * (offset 64)" }, { "name": "Places", "kind": "field", "id": "field|Places|0|0|nint|||h55c1a2567a9bf5594ec4f196fb9396d1300f2693e8a15c17165ea192b56dcf07", "signature": "public nint Places", "summary": "const char *const * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeFileBrowserResult", "displayName": "NativeFileBrowserResult", "kind": "struct", "summary": "cui_file_browser_result, 24 bytes.", "members": [{ "name": "Error", "kind": "field", "id": "field|Error|0|0|byte|||hba82fad2f0354957feb1c6a9098b20e398ab7d21955f950594a6cd942ab2e3d8", "signature": "public byte Error", "summary": "_Bool (offset 17)" }, { "name": "Navigated", "kind": "field", "id": "field|Navigated|0|0|byte|||hff84fe6adf4425d4249e519cbc002513db54a057763a1d7934bc2f19c7bea1b0", "signature": "public byte Navigated", "summary": "_Bool (offset 16)" }, { "name": "Picked", "kind": "field", "id": "field|Picked|0|0|nint|||ha868f06ca3722aa70dbdca0f9480ba31185ee0651d80a42db22e4d9d96c584e9", "signature": "public nint Picked", "summary": "const char * (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeFileDialogOpts", "displayName": "NativeFileDialogOpts", "kind": "struct", "summary": "cui_file_dialog_opts, 40 bytes.", "members": [{ "name": "Kind", "kind": "field", "id": "field|Kind|0|0|FileDialogKind|||h512c396246ef17a640b367e83509222e0af62a830efa14c05edc36e5058f579d", "signature": "public FileDialogKind Kind", "summary": "cui_file_dialog_kind (offset 0)" }, { "name": "DefaultName", "kind": "field", "id": "field|DefaultName|0|0|nint|||h000d10643ab02008311c3918b9208fb1aa89261ee4e2e7482a2f13097e82b8e8", "signature": "public nint DefaultName", "summary": "const char * (offset 32)" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|nint|||hd300c3e184dfdac0ba98c5d80f3bfc5c9fa629e4455f95ac59a70bf43defe25a", "signature": "public nint Filter", "summary": "const char * (offset 24)" }, { "name": "FilterName", "kind": "field", "id": "field|FilterName|0|0|nint|||h585b3fbcd4ec5670db8d7c23fae3117d1f1383dcbbef44f4cc06fef54bcf2766", "signature": "public nint FilterName", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeFileEntry", "displayName": "NativeFileEntry", "kind": "struct", "summary": "cui_file_entry, 32 bytes.", "members": [{ "name": "Dir", "kind": "field", "id": "field|Dir|0|0|byte|||hcd2932a5082aa0cdb58aca24572201374934acabca31e71641000d503239991f", "signature": "public byte Dir", "summary": "_Bool (offset 8)" }, { "name": "Modified", "kind": "field", "id": "field|Modified|0|0|long|||h04bbaccca73d0bdc4e3e9cdb87230703d5978e2d47288e2ef15a19ec65c6c575", "signature": "public long Modified", "summary": "int64_t (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ulong|||h2db05cb8af3c713fe9425098cf97468b958626aa41fab04ccd53ea4cdfcbd5e5", "signature": "public ulong Size", "summary": "uint64_t (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeFilePickerOpts", "displayName": "NativeFilePickerOpts", "kind": "struct", "summary": "cui_file_picker_opts, 72 bytes.", "members": [{ "name": "Folders", "kind": "field", "id": "field|Folders|0|0|byte|||h5ae21bb24245d7660bdd576d62692ef03c762f880adb9a0f1c49c65d4eeaf0a1", "signature": "public byte Folders", "summary": "_Bool (offset 17)" }, { "name": "Save", "kind": "field", "id": "field|Save|0|0|byte|||h7d0e84b897fd35b872cef24deacc021e3fa924b486b9496f6d2df5b7cdb38b4e", "signature": "public byte Save", "summary": "_Bool (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Filter", "kind": "field", "id": "field|Filter|0|0|nint|||hd300c3e184dfdac0ba98c5d80f3bfc5c9fa629e4455f95ac59a70bf43defe25a", "signature": "public nint Filter", "summary": "const char * (offset 40)" }, { "name": "FilterLabel", "kind": "field", "id": "field|FilterLabel|0|0|nint|||h61c85ed1b7b9df7a5b032544020c6647d101d369c5f30e813b3958fb5577c347", "signature": "public nint FilterLabel", "summary": "const char * (offset 48)" }, { "name": "List", "kind": "field", "id": "field|List|0|0|nint|||h0b5c59300517055cd672574fc5d8ede833fc5f7e26c8c675234312fc001425a4", "signature": "public nint List", "summary": "cui_file_list_fn (offset 56)" }, { "name": "ListUser", "kind": "field", "id": "field|ListUser|0|0|nint|||hc5ee4fc495d143240b8dc2682dd4b0d2b8e04db1d48d490df1103d34a410aa00", "signature": "public nint ListUser", "summary": "void * (offset 64)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 32)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|nint|||hc09c63ca74a8865980fc90e8705f77463589be19cb2ac47215bf017012fd1e70", "signature": "public nint Start", "summary": "const char * (offset 24)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeFilterField", "displayName": "NativeFilterField", "kind": "struct", "summary": "cui_filter_field, 32 bytes.", "members": [{ "name": "OptionCount", "kind": "field", "id": "field|OptionCount|0|0|int|||haef08072d623d2b8c76df51bfff978774c11baafa17ee75ce185a0fe6ffe3df9", "signature": "public int OptionCount", "summary": "int (offset 24)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Options", "kind": "field", "id": "field|Options|0|0|nint|||h2a8ec3d36275c8cb3d0868c775c75b73df1b18111f82c918479934997482e22b", "signature": "public nint Options", "summary": "const char *const * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeFlameOpts", "displayName": "NativeFlameOpts", "kind": "struct", "summary": "cui_flame_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "MinRange", "kind": "field", "id": "field|MinRange|0|0|double|||h48e306cd4a74be0e663f2bc1ccdd39cb18de01460b82a3a6f2849dc1999e1208", "signature": "public double MinRange", "summary": "double (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeFlameResult", "displayName": "NativeFlameResult", "kind": "struct", "summary": "cui_flame_result, 12 bytes.", "members": [{ "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 0)" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|byte|||h968fb22c9e133162ed2bb1e1b83f1e701e91d01be17827f59793f1a36c1b1a8b", "signature": "public byte ViewChanged", "summary": "_Bool (offset 1)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 4)" }, { "name": "Zoomed", "kind": "field", "id": "field|Zoomed|0|0|int|||he68f9a8e48bcbe09fa4ffc168bada70699938bf2b39fa8565e6f8b914b559293", "signature": "public int Zoomed", "summary": "int (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeFlameSpan", "displayName": "NativeFlameSpan", "kind": "struct", "summary": "cui_flame_span, 32 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "double (offset 16)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double (offset 8)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "ColorKey", "kind": "field", "id": "field|ColorKey|0|0|uint|||hbbc8b9d5c464ef1cd597c6f62696a77755f8847c84433421ceea1723416ab5bd", "signature": "public uint ColorKey", "summary": "uint32_t (offset 28)" }] }, + { "name": "CuiSharp.Interop.NativeFlameView", "displayName": "NativeFlameView", "kind": "struct", "summary": "cui_flame_view, 24 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "double (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double (offset 0)" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "float (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeFunnelOpts", "displayName": "NativeFunnelOpts", "kind": "struct", "summary": "cui_funnel_opts, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeGanttOpts", "displayName": "NativeGanttOpts", "kind": "struct", "summary": "cui_gantt_opts, 28 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 24)" }, { "name": "DayWidth", "kind": "field", "id": "field|DayWidth|0|0|float|||hc29d4a66435c10834835d199d7668ed8a85501e1faf9bcdacb721c3b354f46c0", "signature": "public float DayWidth", "summary": "float (offset 4)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Today", "kind": "field", "id": "field|Today|0|0|int|||h3dbc223105bf4f83f66479770b59a229a8203cf99f501b627d518e1cb56f4b2c", "signature": "public int Today", "summary": "int (offset 20)" }] }, + { "name": "CuiSharp.Interop.NativeGanttTask", "displayName": "NativeGanttTask", "kind": "struct", "summary": "cui_gantt_task, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 28)" }, { "name": "Milestone", "kind": "field", "id": "field|Milestone|0|0|byte|||he43b35e8a301fe7cfde8e75c86747e5a991c8237ec5c1a328eef3293a1cf0a83", "signature": "public byte Milestone", "summary": "_Bool (offset 36)" }, { "name": "Progress", "kind": "field", "id": "field|Progress|0|0|float|||h7ee3c00970d0194eef8a3de43a8432ca8168034fc90ca2ab893b22ce785d5b05", "signature": "public float Progress", "summary": "float (offset 24)" }, { "name": "DependsOn", "kind": "field", "id": "field|DependsOn|0|0|int|||hc6f9ef65ae7e49def7df7a36abf53610c60718d6c6c30ab4038ec669e19b2558", "signature": "public int DependsOn", "summary": "int (offset 32)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int (offset 20)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int (offset 16)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Owner", "kind": "field", "id": "field|Owner|0|0|nint|||ha1ce12eca90319ef97ddadf5f73dc7885cacf37641b3abd03475a4a6343405c5", "signature": "public nint Owner", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeGaugeBand", "displayName": "NativeGaugeBand", "kind": "struct", "summary": "cui_gauge_band, 8 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 4)" }, { "name": "To", "kind": "field", "id": "field|To|0|0|float|||hf8849e6dc06eacb246cf9418bb9bdf8b9b9026e6b10eb69f5c9835b3923929db", "signature": "public float To", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeGradientOpts", "displayName": "NativeGradientOpts", "kind": "struct", "summary": "cui_gradient_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeGradientResult", "displayName": "NativeGradientResult", "kind": "struct", "summary": "cui_gradient_result, 16 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "Added", "kind": "field", "id": "field|Added|0|0|int|||h0d7179fd02d2033d7b47866c047f7e50fabc9d8fa35b39aeb17965c04cc3c55d", "signature": "public int Added", "summary": "int (offset 4)" }, { "name": "Removed", "kind": "field", "id": "field|Removed|0|0|int|||hf315bda08c16cb19e021f7f7f5d0e72fe2a14432232410122416f6ef30577306", "signature": "public int Removed", "summary": "int (offset 8)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeGradientStop", "displayName": "NativeGradientStop", "kind": "struct", "summary": "cui_gradient_stop, 8 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 4)" }, { "name": "Pos", "kind": "field", "id": "field|Pos|0|0|float|||h9aac977227e3823ee394b51dffa79203fcc9f0c18ab3d961f658a2082fe8ef7e", "signature": "public float Pos", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeGradientTextOpts", "displayName": "NativeGradientTextOpts", "kind": "struct", "summary": "cui_gradient_text_opts, 32 bytes.", "members": [{ "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font (offset 4)" }, { "name": "From", "kind": "field", "id": "field|From|0|0|NativeColor|||hedf3a6a774ec4a291fd74d8b9437e94dd32ccb0174ee9470406ef4ca40a1b9e9", "signature": "public NativeColor From", "summary": "cui_color (offset 12)" }, { "name": "To", "kind": "field", "id": "field|To|0|0|NativeColor|||h7dff92cc91e25ac29c9afe68011fbbd5b501cdfa12aea26173b386eb0a299343", "signature": "public NativeColor To", "summary": "cui_color (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "Animate", "kind": "field", "id": "field|Animate|0|0|byte|||h99edaa9f18f4a8798dec24bbf1057171c7a9880a33480e8f6d823c008a06a948", "signature": "public byte Animate", "summary": "_Bool (offset 20)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeGraphEdge", "displayName": "NativeGraphEdge", "kind": "struct", "summary": "cui_graph_edge, 8 bytes.", "members": [{ "name": "From", "kind": "field", "id": "field|From|0|0|int|||h11f7cebcf77a074c120dda4af3a2c2a7d6533333236d3fbb272c705fd58fd693", "signature": "public int From", "summary": "int (offset 0)" }, { "name": "To", "kind": "field", "id": "field|To|0|0|int|||h51c44d9327d4ff5ec543672605cdc9085758c30f02fb02478eed8ab117d48e44", "signature": "public int To", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeGraphNode", "displayName": "NativeGraphNode", "kind": "struct", "summary": "cui_graph_node, 24 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeGraphOpts", "displayName": "NativeGraphOpts", "kind": "struct", "summary": "cui_graph_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "TopDown", "kind": "field", "id": "field|TopDown|0|0|byte|||h440a5afdb8b96ab548081bdf064429e9515bc2c9aed3304e6cf3eefb979ecac8", "signature": "public byte TopDown", "summary": "_Bool (offset 16)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeGraphResult", "displayName": "NativeGraphResult", "kind": "struct", "summary": "cui_graph_result, 12 bytes.", "members": [{ "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeGridColumn", "displayName": "NativeGridColumn", "kind": "struct", "summary": "cui_grid_column, 24 bytes.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align (offset 12)" }, { "name": "Fixed", "kind": "field", "id": "field|Fixed|0|0|byte|||hf34b5694d58a07d3223ee2235d451f81ed7a09be66068c9bbc95ff88ca3b1e17", "signature": "public byte Fixed", "summary": "_Bool (offset 17)" }, { "name": "Sortable", "kind": "field", "id": "field|Sortable|0|0|byte|||he9070b0f1a6618362c7d61bbbdebf35e70e6d19b96b6e0a0848b987b2f8927ef", "signature": "public byte Sortable", "summary": "_Bool (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Priority", "kind": "field", "id": "field|Priority|0|0|int|||hbaa8b212dbdc34fa1179a77ab76338f94bb35b6954915c627238c0927fab9d97", "signature": "public int Priority", "summary": "int (offset 20)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeGridOpts", "displayName": "NativeGridOpts", "kind": "struct", "summary": "cui_grid_opts, 72 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "HideCheckboxes", "kind": "field", "id": "field|HideCheckboxes|0|0|byte|||h6fd6eac04a71b52ef56545ea61ec90897603d0ba2b00d592fe3aea544ab351fe", "signature": "public byte HideCheckboxes", "summary": "_Bool (offset 56)" }, { "name": "Striped", "kind": "field", "id": "field|Striped|0|0|byte|||hd2f33c74b431b991629cd3110070b2971b239e494028617bdf5c8495f08a3c04", "signature": "public byte Striped", "summary": "_Bool (offset 40)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|nint|||h2a3efb78b027ddab56b002c1c17c0175140a3ae80ce9ca969857ccc0bd8e0f33", "signature": "public nint Anchor", "summary": "int * (offset 64)" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|nint|||h195d74261818c31b6a837175cd06968e2a34f757d46f62d7a83a2655d64fa49a", "signature": "public nint Cursor", "summary": "int * (offset 48)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "_Bool * (offset 24)" }, { "name": "Sort", "kind": "field", "id": "field|Sort|0|0|nint|||h9d98eab2f080d85ca8cb2b51bbfbb1c26340f12564431ce3c0cb8b55484a96e2", "signature": "public nint Sort", "summary": "cui_table_sort * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeHeatmapOpts", "displayName": "NativeHeatmapOpts", "kind": "struct", "summary": "cui_heatmap_opts, 56 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 36)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 48)" }, { "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float (offset 24)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 32)" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "float (offset 28)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "ColLabels", "kind": "field", "id": "field|ColLabels|0|0|nint|||h341f6ff47d1dcad907f5ec30036b4decc19be9a4df947a770e8e5b0e72fd543e", "signature": "public nint ColLabels", "summary": "const char *const * (offset 16)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 40)" }, { "name": "RowLabels", "kind": "field", "id": "field|RowLabels|0|0|nint|||h129c5d8d02700ee3ed6a4c66311945bf00088b45af8ac7f9d0e28f31d5d856ff", "signature": "public nint RowLabels", "summary": "const char *const * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeHexRange", "displayName": "NativeHexRange", "kind": "struct", "summary": "cui_hex_range, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 24)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t (offset 8)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|ulong|||h551e41a24460675e284010a5af686471e6984d12957a75afe1617a2b52cae613", "signature": "public ulong Offset", "summary": "size_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeHexResult", "displayName": "NativeHexResult", "kind": "struct", "summary": "cui_hex_result, 64 bytes.", "members": [{ "name": "Selection", "kind": "field", "id": "field|Selection|0|0|NativeHexSelection|||h1175db1a8eb0e5f6c36cd11589758d1e21c61e89ecae69a29088a40c9dd0da5b", "signature": "public NativeHexSelection Selection", "summary": "cui_hex_selection (offset 0)" }, { "name": "Copied", "kind": "field", "id": "field|Copied|0|0|byte|||ha564c6f6c9a275eb3a25db281ebdd5bdf919eb7f01edce0e75c7dc0faab6136c", "signature": "public byte Copied", "summary": "_Bool (offset 56)" }, { "name": "Edited", "kind": "field", "id": "field|Edited|0|0|byte|||h9ef1d7c46ce21222bc9354c9bc032337f9bc7c03cf045d2ab6957bb638b70c68", "signature": "public byte Edited", "summary": "_Bool (offset 25)" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 24)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|long|||hbe1c39e7bbdecc557c8876890e8eac9658e0fa1fd65737f5d44c9f0b0cf4e2d9", "signature": "public long Hovered", "summary": "int64_t (offset 48)" }, { "name": "EditLength", "kind": "field", "id": "field|EditLength|0|0|ulong|||h66a400d24c2bcc6360469f4a4692e40110aeb039982f00e721a6b211f11c894f", "signature": "public ulong EditLength", "summary": "size_t (offset 40)" }, { "name": "EditOffset", "kind": "field", "id": "field|EditOffset|0|0|ulong|||h4a499a954baf5dc83819cf8b6a96a7ea8d3b7cfd43644a2dffb73eba4670fe6a", "signature": "public ulong EditOffset", "summary": "size_t (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeHexSelection", "displayName": "NativeHexSelection", "kind": "struct", "summary": "cui_hex_selection, 24 bytes.", "members": [{ "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|ulong|||hfcbcd4bd9c8959404ba53364315fdc79909689596fa3560cbab04a7c9e5291ba", "signature": "public ulong Cursor", "summary": "size_t (offset 16)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|ulong|||hd5d86251473efab40ee9afffd915b80f4ffa0f9346d99fba8e024520db5e0883", "signature": "public ulong Start", "summary": "size_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeHexViewOpts", "displayName": "NativeHexViewOpts", "kind": "struct", "summary": "cui_hex_view_opts, 64 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoAscii", "kind": "field", "id": "field|NoAscii|0|0|byte|||h3e2aa825acf39bc9df144017bf97823b0c1a092a9d328d417b98dc2a270f1498", "signature": "public byte NoAscii", "summary": "_Bool (offset 56)" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|byte|||h6093941fb44d7f5a4ff51d16324ccdb8778e77d1ae10d4e0d62af2a3df85380c", "signature": "public byte NoHeader", "summary": "_Bool (offset 57)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 60)" }, { "name": "BytesPerRow", "kind": "field", "id": "field|BytesPerRow|0|0|int|||hd61386e0b1631168d5ba3121886245ecce5b4ff2f8648ec936c3d6745e973f40", "signature": "public int BytesPerRow", "summary": "int (offset 24)" }, { "name": "RangeCount", "kind": "field", "id": "field|RangeCount|0|0|int|||h7cf44af00c194dbcd2d248d6d668d0e792ba9f5e70caed801178c75e0527cb4e", "signature": "public int RangeCount", "summary": "int (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Edit", "kind": "field", "id": "field|Edit|0|0|nint|||hb58a60b15fcbd3ae6f0be93b9f52af11f835d1a3062a50281e96005e5a8e56ea", "signature": "public nint Edit", "summary": "uint8_t * (offset 48)" }, { "name": "Ranges", "kind": "field", "id": "field|Ranges|0|0|nint|||h5e8cf57120f430601bf30d0dab9b30003d9f95318475f93f1e97c1a729522280", "signature": "public nint Ranges", "summary": "const cui_hex_range * (offset 32)" }, { "name": "Base", "kind": "field", "id": "field|Base|0|0|ulong|||h2d347b8391ce7744ac9390fd5433f8b42dd856f120afc62df3093dae04e197ff", "signature": "public ulong Base", "summary": "uint64_t (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeHistogramOpts", "displayName": "NativeHistogramOpts", "kind": "struct", "summary": "cui_histogram_opts, 16 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeHistogramSeries", "displayName": "NativeHistogramSeries", "kind": "struct", "summary": "cui_histogram_series, 24 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Counts", "kind": "field", "id": "field|Counts|0|0|nint|||h4ea94f3389c79a675e397e48da85da17c2b2112bce59a8565db06ae9977a4be3", "signature": "public nint Counts", "summary": "const float * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeHoldOpts", "displayName": "NativeHoldOpts", "kind": "struct", "summary": "cui_hold_opts, 24 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 16)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeHoverCardOpts", "displayName": "NativeHoverCardOpts", "kind": "struct", "summary": "cui_hover_card_opts, 16 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 4)" }, { "name": "Delay", "kind": "field", "id": "field|Delay|0|0|float|||h3a45177d911de60d3c1058d19f965797cda6f4da3e3656b82d0a5ea6832de388", "signature": "public float Delay", "summary": "float (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeImageOpts", "displayName": "NativeImageOpts", "kind": "struct", "summary": "cui_image_opts, 28 bytes.", "members": [{ "name": "Tint", "kind": "field", "id": "field|Tint|0|0|NativeColor|||h812e541079b34551063a2536701a35c8f7e275aae6f143d65d3c5fd15a688238", "signature": "public NativeColor Tint", "summary": "cui_color (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeImageView", "displayName": "NativeImageView", "kind": "struct", "summary": "cui_image_view, 12 bytes.", "members": [{ "name": "Cx", "kind": "field", "id": "field|Cx|0|0|float|||ha089bd3bc9b64b88c76a4d49417464e60089fa8c4949692935cd9a1cbeeb26f2", "signature": "public float Cx", "summary": "float (offset 4)" }, { "name": "Cy", "kind": "field", "id": "field|Cy|0|0|float|||h47bd658ecc744271b6a80f35df93f81c2391730563046a45c3923e15cf53aceb", "signature": "public float Cy", "summary": "float (offset 8)" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeImageViewerOpts", "displayName": "NativeImageViewerOpts", "kind": "struct", "summary": "cui_image_viewer_opts, 28 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Checkerboard", "kind": "field", "id": "field|Checkerboard|0|0|byte|||h7ede6c2a27d3830e9fc073d094f2fbcc667073c1829283305c91797827cf17ad", "signature": "public byte Checkerboard", "summary": "_Bool (offset 25)" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|byte|||h1230557801560ff86cbce3521dab7087f74f25026715f9de53fdbb79ff28a7c9", "signature": "public byte NoToolbar", "summary": "_Bool (offset 24)" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeInlineEditOpts", "displayName": "NativeInlineEditOpts", "kind": "struct", "summary": "cui_inline_edit_opts, 32 bytes.", "members": [{ "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font (offset 4)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeInputOpts", "displayName": "NativeInputOpts", "kind": "struct", "summary": "cui_input_opts, 88 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 56)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 60)" }, { "name": "Autofocus", "kind": "field", "id": "field|Autofocus|0|0|byte|||hf7200e77a6e74d4faf41ea5500f58e93a4f8f8423cf247fc6c5784655d8f9fe5", "signature": "public byte Autofocus", "summary": "_Bool (offset 51)" }, { "name": "Clearable", "kind": "field", "id": "field|Clearable|0|0|byte|||hd4fdbdf460d78b2cf5d11e36726d401754f6dd4aba7e4125f21f7477cba134a9", "signature": "public byte Clearable", "summary": "_Bool (offset 50)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 49)" }, { "name": "Password", "kind": "field", "id": "field|Password|0|0|byte|||hdceeccdbc0ded58956d46792f23a65707d5b61576addfce0ff5f2d1bedb124f5", "signature": "public byte Password", "summary": "_Bool (offset 48)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 52)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 68)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|nint|||hdd113196192125bb251ed8e4e61faa04c141796319fac033109dbf93e8d846b0", "signature": "public nint Error", "summary": "const char * (offset 40)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|nint|||hc04a330155ea240694e4f00b47172663ef8f8e8c7171babe8307883ebbeeee6c", "signature": "public nint Hint", "summary": "const char * (offset 32)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }, { "name": "Prefix", "kind": "field", "id": "field|Prefix|0|0|nint|||h1e51df371709b7b706060a657490aa1997e1abdbdcdc3ec25a08378d43e98e41", "signature": "public nint Prefix", "summary": "const char * (offset 72)" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|nint|||hf74991389a50a9d4f62042eaba5519ce0c8537c405e4fb6215db1322dfac00e9", "signature": "public nint Suffix", "summary": "const char * (offset 80)" }] }, + { "name": "CuiSharp.Interop.NativeInspectorOpts", "displayName": "NativeInspectorOpts", "kind": "struct", "summary": "cui_inspector_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "LabelWidth", "kind": "field", "id": "field|LabelWidth|0|0|float|||h993f466ab627a21c24b5cbf05bd27e3424e345f9dda31611b0dbd719a33e2e12", "signature": "public float LabelWidth", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeJsonOpts", "displayName": "NativeJsonOpts", "kind": "struct", "summary": "cui_json_opts, 12 bytes.", "members": [{ "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float (offset 8)" }, { "name": "ExpandDepth", "kind": "field", "id": "field|ExpandDepth|0|0|int|||h2113772f50eedfb1b947b1866b9ccfabc933b4026161df07a62d39104bf42152", "signature": "public int ExpandDepth", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeKanbanColumnOpts", "displayName": "NativeKanbanColumnOpts", "kind": "struct", "summary": "cui_kanban_column_opts, 16 bytes.", "members": [{ "name": "Dot", "kind": "field", "id": "field|Dot|0|0|NativeColor|||hd773443c893b7afcb6798dfbf9c5a9551ea021c150617c7f45a35d5c56be0c79", "signature": "public NativeColor Dot", "summary": "cui_color (offset 4)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 12)" }, { "name": "Limit", "kind": "field", "id": "field|Limit|0|0|int|||h0551723e212cc1de31ece56a8865f2a5fe1a25e69ca86d13b85180f933670910", "signature": "public int Limit", "summary": "int (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeKanbanMove", "displayName": "NativeKanbanMove", "kind": "struct", "summary": "cui_kanban_move, 16 bytes.", "members": [{ "name": "Card", "kind": "field", "id": "field|Card|0|0|int|||h4e55f281e44827e799e41dc1f657218631ca17eabaa81d6214d62a1f42080b79", "signature": "public int Card", "summary": "int (offset 0)" }, { "name": "FromColumn", "kind": "field", "id": "field|FromColumn|0|0|int|||h852c86084f2687cfab891d2a8ee1ee937a40b68fb2ded28a28325c23a45d5da1", "signature": "public int FromColumn", "summary": "int (offset 4)" }, { "name": "ToColumn", "kind": "field", "id": "field|ToColumn|0|0|int|||hc5eebb26186d77f3dcbdd4b3159e8329a2e6080e96b3ee23a29a3af4eb4da347", "signature": "public int ToColumn", "summary": "int (offset 8)" }, { "name": "ToIndex", "kind": "field", "id": "field|ToIndex|0|0|int|||h4f61864330a69f3505bc7fd8fbee51dba8f5d4f040469966dc4183d1a6f201a6", "signature": "public int ToIndex", "summary": "int (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeKeyCombo", "displayName": "NativeKeyCombo", "kind": "struct", "summary": "cui_key_combo, 8 bytes.", "members": [{ "name": "Key", "kind": "field", "id": "field|Key|0|0|Key|||ha8a2ef1e5766d0ded6949b45f1180b64bdf9ef3740bc5c193694a2938f483f10", "signature": "public Key Key", "summary": "cui_key (offset 4)" }, { "name": "Mods", "kind": "field", "id": "field|Mods|0|0|int|||h0557a35558abe6a9a70cd6ee363474ffd9ef430fca04fd8f09e8787557a8daf4", "signature": "public int Mods", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeKeymapBinding", "displayName": "NativeKeymapBinding", "kind": "struct", "summary": "cui_keymap_binding, 24 bytes.", "members": [{ "name": "Combo", "kind": "field", "id": "field|Combo|0|0|NativeKeyCombo|||h0a275a89eee117ed7f07d853f54c833bf981cb6179bfc40c8c3e7b672fdd5e12", "signature": "public NativeKeyCombo Combo", "summary": "cui_key_combo (offset 0)" }, { "name": "Category", "kind": "field", "id": "field|Category|0|0|int|||hdd47e2b092c5ca594640eebe08c268434674a147ebf5eafb2a46a5da46f07ed4", "signature": "public int Category", "summary": "int (offset 16)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeKeymapOpts", "displayName": "NativeKeymapOpts", "kind": "struct", "summary": "cui_keymap_opts, 48 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoFunctionRow", "kind": "field", "id": "field|NoFunctionRow|0|0|byte|||hb6ac766565207a213495d95baa9459bd96a9437f3b728206c935541fbf6d0bea", "signature": "public byte NoFunctionRow", "summary": "_Bool (offset 40)" }, { "name": "CategoryCount", "kind": "field", "id": "field|CategoryCount|0|0|int|||hee46433925da01774885433a273815397b72ca5f22901b59592bcefdb7416c33", "signature": "public int CategoryCount", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Categories", "kind": "field", "id": "field|Categories|0|0|nint|||hb8d4a0c28ca115fb2acf51d81cf80a37de8d557209e403bdb805b885c31374d3", "signature": "public nint Categories", "summary": "const char *const * (offset 16)" }, { "name": "Mods", "kind": "field", "id": "field|Mods|0|0|nint|||h0d2266fc279099bfe055abb56d95b695de1e224ae043df5271c83baf3d2f009d", "signature": "public nint Mods", "summary": "int * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeKeymapResult", "displayName": "NativeKeymapResult", "kind": "struct", "summary": "cui_keymap_result, 8 bytes.", "members": [{ "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|Key|||hf3d1089c0e1e46bc83fd27808a70e56ed41a70657965029f08dbfc901fbc370d", "signature": "public Key Clicked", "summary": "cui_key (offset 0)" }, { "name": "Conflicts", "kind": "field", "id": "field|Conflicts|0|0|int|||h789812c8ba17c03535e8408d067679a4be25b10d6c3816628d8bb1c973ecd39c", "signature": "public int Conflicts", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeKnobOpts", "displayName": "NativeKnobOpts", "kind": "struct", "summary": "cui_knob_opts, 56 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 48)" }, { "name": "Bipolar", "kind": "field", "id": "field|Bipolar|0|0|byte|||h1d569b6c87e7ba726ec66ea2c839a78fdd9e86f466b577110c4ce16329daa57f", "signature": "public byte Bipolar", "summary": "_Bool (offset 44)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 47)" }, { "name": "HideValue", "kind": "field", "id": "field|HideValue|0|0|byte|||hbb6b16309b43eda0fc05f53c3f1331a74672b86f2823f660cbf275eda7570761", "signature": "public byte HideValue", "summary": "_Bool (offset 46)" }, { "name": "LogScale", "kind": "field", "id": "field|LogScale|0|0|byte|||h3a807b024c92ba2ae36e1b227c4f2403b1a8c290287c3fce652a62b0d73e20c0", "signature": "public byte LogScale", "summary": "_Bool (offset 45)" }, { "name": "Reset", "kind": "field", "id": "field|Reset|0|0|float|||h6f7e0b1685ab6d501be44af24ff4fc26ab960c5abf2371bc447d2d1768038172", "signature": "public float Reset", "summary": "float (offset 40)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 32)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 36)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeKvEditorOpts", "displayName": "NativeKvEditorOpts", "kind": "struct", "summary": "cui_kv_editor_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "NoSecrets", "kind": "field", "id": "field|NoSecrets|0|0|byte|||hc67b9037a20e271562e783ae6d73aeffed4b6d0299dda287bb76c51dc3ff3087", "signature": "public byte NoSecrets", "summary": "_Bool (offset 25)" }, { "name": "NoToggles", "kind": "field", "id": "field|NoToggles|0|0|byte|||h9d0cfc1f93e79a2a48e2898e032a15be4e7e0ed61cb768f8999b9d711c8c1564", "signature": "public byte NoToggles", "summary": "_Bool (offset 24)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 26)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "KeyPlaceholder", "kind": "field", "id": "field|KeyPlaceholder|0|0|nint|||h745e755fe6848225d5b3573bc346c72b9e59a6a61e0a840d5453d3b1b3b1e50d", "signature": "public nint KeyPlaceholder", "summary": "const char * (offset 8)" }, { "name": "ValuePlaceholder", "kind": "field", "id": "field|ValuePlaceholder|0|0|nint|||hc6fd03e6afd968857a1ab58a437c9b9c242f12d3ed3122acc4bd006c7c84c135", "signature": "public nint ValuePlaceholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeKvPair", "displayName": "NativeKvPair", "kind": "struct", "summary": "cui_kv_pair, 322 bytes.", "members": [{ "name": "Key", "kind": "field", "id": "field|Key|0|0|\u003CKey\u003Ee__FixedBuffer|||h9959085f7309dc4f833dcc062bfbb4d3ebf7d4872b1d00e71ae5dcc81751506b", "signature": "public \u003CKey\u003Ee__FixedBuffer Key", "summary": "char[64] (offset 0)" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|\u003CValue\u003Ee__FixedBuffer|||h3733ba739dc4b340aaa8d999619d3a45483a5245e5ca30e87e307219078ea13c", "signature": "public \u003CValue\u003Ee__FixedBuffer Value", "summary": "char[256] (offset 64)" }, { "name": "Enabled", "kind": "field", "id": "field|Enabled|0|0|byte|||h0a86f1b69d9c1369c87f1d6803878d78967110381c7e3e9bfde1042529e91d4f", "signature": "public byte Enabled", "summary": "_Bool (offset 320)" }, { "name": "Secret", "kind": "field", "id": "field|Secret|0|0|byte|||h0c38b42d78cf54f22f5c771c32cfbb671fb0079e806aee7e7ff2203d7b59d9e1", "signature": "public byte Secret", "summary": "_Bool (offset 321)" }] }, + { "name": "CuiSharp.Interop.NativeLevelMeterOpts", "displayName": "NativeLevelMeterOpts", "kind": "struct", "summary": "cui_level_meter_opts, 32 bytes.", "members": [{ "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|byte|||hb8eb5f891a452586827fe30447b7d0b698e41f55d790a6fb5ef7aee450a3d7f2", "signature": "public byte Horizontal", "summary": "_Bool (offset 20)" }, { "name": "Scale", "kind": "field", "id": "field|Scale|0|0|byte|||hd0b8462fe73e9f0270274290f09dc03fb41bd9125c5bfe79de851cb2827098a9", "signature": "public byte Scale", "summary": "_Bool (offset 21)" }, { "name": "Segmented", "kind": "field", "id": "field|Segmented|0|0|byte|||h84db8c616b9ba7105e508e4ef55bb05d16dc07c293aab8b792f045fa055ec51e", "signature": "public byte Segmented", "summary": "_Bool (offset 22)" }, { "name": "Decay", "kind": "field", "id": "field|Decay|0|0|float|||h067240cd90c29d217819d40156fc0debc9d7b6e5290807eea7a28cffb399a6eb", "signature": "public float Decay", "summary": "float (offset 28)" }, { "name": "Hold", "kind": "field", "id": "field|Hold|0|0|float|||hf9cf9b5a4d1a55101a8a988c06df2d2cadf6464a1b411ed219b71cf735f20622", "signature": "public float Hold", "summary": "float (offset 24)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|float|||hde0ed5b9413eadd735eb6ae0346647e34ca58923c6d228bcc21459281e52a172", "signature": "public float Length", "summary": "float (offset 12)" }, { "name": "MaxDb", "kind": "field", "id": "field|MaxDb|0|0|float|||h05af64f8eaf6361804782ad98715d074c249913dc00324f60ff072dd17a84ea9", "signature": "public float MaxDb", "summary": "float (offset 8)" }, { "name": "MinDb", "kind": "field", "id": "field|MinDb|0|0|float|||hf0f618cb58cf13fd6bb97d775f5351393d15723ccaf0a1a2d3ce7d92fae8a2b5", "signature": "public float MinDb", "summary": "float (offset 4)" }, { "name": "Thickness", "kind": "field", "id": "field|Thickness|0|0|float|||h032ae3f08d1f764102a5ab4e3449cb25f2ae394d97fb8b90dd505ead7b8576f6", "signature": "public float Thickness", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeListItemOpts", "displayName": "NativeListItemOpts", "kind": "struct", "summary": "cui_list_item_opts, 48 bytes.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|nint|||h96fb323a4f1835f2f2cf6dbdd0c41ceb0b611db7033e6313ba17a02569c0ac07", "signature": "public nint Avatar", "summary": "const char * (offset 40)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Subtitle", "kind": "field", "id": "field|Subtitle|0|0|nint|||h36c083929a586a62f5ba6333f4b689be4edc120b0530bc173b1abbbdc6497b9e", "signature": "public nint Subtitle", "summary": "const char * (offset 16)" }, { "name": "Trailing", "kind": "field", "id": "field|Trailing|0|0|nint|||h53f5b0680364a5bdfeedea209902b5037a488717c827fbdefac547f55dd960eb", "signature": "public nint Trailing", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeLoaderOpts", "displayName": "NativeLoaderOpts", "kind": "struct", "summary": "cui_loader_opts, 16 bytes.", "members": [{ "name": "Style", "kind": "field", "id": "field|Style|0|0|LoaderStyle|||h8b8796b8c95829a2fdf2777456dde7dd852dc38a8878ac87018bf5c5c966e0ab", "signature": "public LoaderStyle Style", "summary": "cui_loader_style (offset 4)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeLogBuffer", "displayName": "NativeLogBuffer", "kind": "struct", "summary": "cui_log_buffer, 80 bytes.", "members": [{ "name": "LevelCount", "kind": "field", "id": "field|LevelCount|0|0|\u003CLevelCount\u003Ee__FixedBuffer|||hb9f2536b5076dd096a086ac13ad19a17ca985eb148aedbfcac598514aebe07ed", "signature": "public \u003CLevelCount\u003Ee__FixedBuffer LevelCount", "summary": "int[5] (offset 56)" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|double|||h13ccabef32acd0f50b2dff6afb988be4f60354595d58273f3c8e672e980e731c", "signature": "public double Now", "summary": "double (offset 0)" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int (offset 40)" }, { "name": "First", "kind": "field", "id": "field|First|0|0|int|||hddb39d158b15c0e54cb1ea0a7e52a0d84393cbbb9cb6d04a44db44d9fd9a4c88", "signature": "public int First", "summary": "int (offset 36)" }, { "name": "LineCap", "kind": "field", "id": "field|LineCap|0|0|int|||h05488096a6a3cd48bc7e8274702b633d8af22f79f127b19f95b8cd3d47511049", "signature": "public int LineCap", "summary": "int (offset 16)" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|nint|||h7ccda7c4f0b08a1147624d853801d5dcd6e8072f045b1eb489cd55ee7a31e86f", "signature": "public nint Lines", "summary": "cui_log_line * (offset 8)" }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|nint|||h66aaa42b78279f1149dcb8a32f27fc2db74dc535e86360cd658d24fb0bf042d8", "signature": "public nint Text", "summary": "char * (offset 24)" }, { "name": "TextCap", "kind": "field", "id": "field|TextCap|0|0|uint|||hd920abfd46ff0525abf61849dfa336ab731063d31b2036e2377f1fe031b06d48", "signature": "public uint TextCap", "summary": "uint32_t (offset 32)" }, { "name": "TextEnd", "kind": "field", "id": "field|TextEnd|0|0|uint|||he42a169dbf5a8a807e7f4542fd203f842677e5fa4631092117ab7735733cd9f3", "signature": "public uint TextEnd", "summary": "uint32_t (offset 44)" }, { "name": "Total", "kind": "field", "id": "field|Total|0|0|ulong|||hc70e2cd9e719427562e8e197773d80368e777c17f84a89cd743f7c844d1b1ab7", "signature": "public ulong Total", "summary": "uint64_t (offset 48)" }] }, + { "name": "CuiSharp.Interop.NativeLogLine", "displayName": "NativeLogLine", "kind": "struct", "summary": "cui_log_line, 24 bytes.", "members": [{ "name": "Level", "kind": "field", "id": "field|Level|0|0|byte|||hf95527e917db045b4141feff514aa39480a59a94561f62de0df5d44c3b0694a9", "signature": "public byte Level", "summary": "uint8_t (offset 16)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|double|||hf6eb8bfefd7957f87b5ed2738bc9a721b9ff45c732f53108d799ad2931a6b170", "signature": "public double Time", "summary": "double (offset 8)" }, { "name": "Len", "kind": "field", "id": "field|Len|0|0|uint|||h9a7aa5477bab3013c524af61a8579b6327603d131ea638cadc7b4f4863a23b7e", "signature": "public uint Len", "summary": "uint32_t (offset 4)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|uint|||h05a920517fe4fac075579a468ffc003bcb5361b495613ee0c64c3c8b144de92f", "signature": "public uint Offset", "summary": "uint32_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeLogViewOpts", "displayName": "NativeLogViewOpts", "kind": "struct", "summary": "cui_log_view_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|byte|||h1230557801560ff86cbce3521dab7087f74f25026715f9de53fdbb79ff28a7c9", "signature": "public byte NoToolbar", "summary": "_Bool (offset 17)" }, { "name": "Timestamps", "kind": "field", "id": "field|Timestamps|0|0|byte|||h36801862dd647364e2ad3ca788b1cd4bda21b1485c80f4306a01bbd0226317b3", "signature": "public byte Timestamps", "summary": "_Bool (offset 16)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMarkdownOpts", "displayName": "NativeMarkdownOpts", "kind": "struct", "summary": "cui_markdown_opts, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 29)" }, { "name": "FitContent", "kind": "field", "id": "field|FitContent|0|0|byte|||hd833955cf77dd532892ad945100386f79a4d8ce76ba14aeb886ecd97b76ef2d7", "signature": "public byte FitContent", "summary": "_Bool (offset 12)" }, { "name": "Streaming", "kind": "field", "id": "field|Streaming|0|0|byte|||h94d7749b5b6b7ed4c8baf923750c1160f41642ed783fd6e9b779d713c182449c", "signature": "public byte Streaming", "summary": "_Bool (offset 28)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 20)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "int (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMarkdownResult", "displayName": "NativeMarkdownResult", "kind": "struct", "summary": "cui_markdown_result, 32 bytes.", "members": [{ "name": "TaskChecked", "kind": "field", "id": "field|TaskChecked|0|0|byte|||hf0875ed6603334ae3665923405ccd39a76ec21b6e40e461b5bca6214ddf56558", "signature": "public byte TaskChecked", "summary": "_Bool (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 28)" }, { "name": "TaskLine", "kind": "field", "id": "field|TaskLine|0|0|int|||h7e3bf329b030f664448bfbcf31830d3f925a03fd004a165b8de0edc39fbbae69", "signature": "public int TaskLine", "summary": "int (offset 20)" }, { "name": "TaskOffset", "kind": "field", "id": "field|TaskOffset|0|0|int|||hc553ca4fe536319901025ae7db24cfa0ee4ba0e9ba7365622cd500b903057157", "signature": "public int TaskOffset", "summary": "int (offset 16)" }, { "name": "HoveredLink", "kind": "field", "id": "field|HoveredLink|0|0|nint|||h9f215ddbc0563e1555c871ecfb0f1b9c45710baa3e8e0d4eeec2adb5d91da446", "signature": "public nint HoveredLink", "summary": "const char * (offset 8)" }, { "name": "Link", "kind": "field", "id": "field|Link|0|0|nint|||h11c7a389b92a8f488495b739d368b424ce324275d09211ba0db72999abec2077", "signature": "public nint Link", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMenuBarMenuOpts", "displayName": "NativeMenuBarMenuOpts", "kind": "struct", "summary": "cui_menu_bar_menu_opts, 16 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Mnemonic", "kind": "field", "id": "field|Mnemonic|0|0|sbyte|||hacfbb11e49ff4749382abc40b19888f44cb46198f0c8b86ad384e244793a71f1", "signature": "public sbyte Mnemonic", "summary": "char (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeMenuBarOpts", "displayName": "NativeMenuBarOpts", "kind": "struct", "summary": "cui_menu_bar_opts, 8 bytes.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|byte|||h52a658d9e90fb592c2d5b234fe36d916b01f85259ebf498345a83768a1f7a51c", "signature": "public byte NoBorder", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMenuItemOpts", "displayName": "NativeMenuItemOpts", "kind": "struct", "summary": "cui_menu_item_opts, 32 bytes.", "members": [{ "name": "Checked", "kind": "field", "id": "field|Checked|0|0|byte|||h852416cb837bd61a1c2e9ba41640bcbc437b0ded420ee3cdb739d113b4999fbf", "signature": "public byte Checked", "summary": "_Bool (offset 26)" }, { "name": "Danger", "kind": "field", "id": "field|Danger|0|0|byte|||h267e3fb92ea691636e4453551bbe9f0ed26a3256b90ce44ac68d4cee9aedb9cf", "signature": "public byte Danger", "summary": "_Bool (offset 24)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 25)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|nint|||hc6bbf869e5f430ce1cb0bb80bcc43a44ef490242700d9eccaf018d9378a8f2dd", "signature": "public nint Shortcut", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeMenuOpts", "displayName": "NativeMenuOpts", "kind": "struct", "summary": "cui_menu_opts, 32 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 16)" }, { "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 20)" }, { "name": "IconOnly", "kind": "field", "id": "field|IconOnly|0|0|byte|||he1deea30e2ceaedc2963bbb3123c80ddfc8b08dd35ad10f892a4ecb904044965", "signature": "public byte IconOnly", "summary": "_Bool (offset 28)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeMetricOpts", "displayName": "NativeMetricOpts", "kind": "struct", "summary": "cui_metric_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 40)" }, { "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|byte|||h743d2a9c1093c218bb42059b076daaa618f28986ebe939486af96526f07e502f", "signature": "public byte LowerIsBetter", "summary": "_Bool (offset 48)" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "SparkCount", "kind": "field", "id": "field|SparkCount|0|0|int|||h895121b299e285d6b1d302c2bff5ec07be89819c880689d83bebd06b75ebb4c1", "signature": "public int SparkCount", "summary": "int (offset 24)" }, { "name": "DeltaLabel", "kind": "field", "id": "field|DeltaLabel|0|0|nint|||h6447430bbdaca3f36b40c20178fb09842c99730079a7fcec70629ead28c4aa11", "signature": "public nint DeltaLabel", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 32)" }, { "name": "Spark", "kind": "field", "id": "field|Spark|0|0|nint|||he053984bb6ed431becb468caa2a20c9abd6d514395244af40a85b936ac6f868b", "signature": "public nint Spark", "summary": "const float * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeModel", "displayName": "NativeModel", "kind": "struct", "summary": "cui_model, 32 bytes.", "members": [{ "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 16)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeModelPickerOpts", "displayName": "NativeModelPickerOpts", "kind": "struct", "summary": "cui_model_picker_opts, 12 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 8)" }, { "name": "Ghost", "kind": "field", "id": "field|Ghost|0|0|byte|||ha10cb00a2e622123f706d80284543ec7c9d2a1cca5c204e36f501b0d31d12795", "signature": "public byte Ghost", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMoneyOpts", "displayName": "NativeMoneyOpts", "kind": "struct", "summary": "cui_money_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 36)" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Code", "kind": "field", "id": "field|Code|0|0|nint|||h7427649b43b2e49212bf9bfd21a645a61eae4c3514f35066412bf8a3ddeb4484", "signature": "public nint Code", "summary": "const char * (offset 24)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|nint|||hc04a330155ea240694e4f00b47172663ef8f8e8c7171babe8307883ebbeeee6c", "signature": "public nint Hint", "summary": "const char * (offset 48)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Symbol", "kind": "field", "id": "field|Symbol|0|0|nint|||h11d40d2ab2da6a0a026342a75fbcbc823bb86773558816092e14d9469f4764b6", "signature": "public nint Symbol", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeMonthEvent", "displayName": "NativeMonthEvent", "kind": "struct", "summary": "cui_month_event, 48 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|NativeDate|||h1b179b5108e9ed3f0347d54b4ef6fe1e441917c22d27a016c4c8a9bbbe6ad0c7", "signature": "public NativeDate End", "summary": "cui_date (offset 20)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|NativeDate|||h7d67c190de1c0e1c80bdadfcd317cbed9d2a9499e545b7e9029faa0256d97a3b", "signature": "public NativeDate Start", "summary": "cui_date (offset 8)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 40)" }, { "name": "AllDay", "kind": "field", "id": "field|AllDay|0|0|byte|||h8751716523a698ec0010c45c2c581dd995ca6c8164cfd0a75571490812d408b0", "signature": "public byte AllDay", "summary": "_Bool (offset 36)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|float|||h15580e530959593ba26e1516c12ce319fbad5d5b9d84fe7810a722131f57f895", "signature": "public float Time", "summary": "float (offset 32)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMonthOpts", "displayName": "NativeMonthOpts", "kind": "struct", "summary": "cui_month_opts, 56 bytes.", "members": [{ "name": "Today", "kind": "field", "id": "field|Today|0|0|NativeDate|||ha25c39f8fb3be0874377b2ec3b63aa40a5e4889b42d67de2f6e0e3417fd1dd73", "signature": "public NativeDate Today", "summary": "cui_date (offset 44)" }, { "name": "Hour12", "kind": "field", "id": "field|Hour12|0|0|byte|||h99a94bb620f00e28490de41330ebff3307255f9f668faf617b0de61b003f6c63", "signature": "public byte Hour12", "summary": "_Bool (offset 40)" }, { "name": "CellHeight", "kind": "field", "id": "field|CellHeight|0|0|float|||hf4309f4d2441e17367cb19c170e3dc8474ed98149a30e30cb2e5983a5f6da8b8", "signature": "public float CellHeight", "summary": "float (offset 20)" }, { "name": "FirstWeekday", "kind": "field", "id": "field|FirstWeekday|0|0|int|||h3ef476bd8d4650cc173a18a8ce98dacca1ff9beff34ac40ecbbf945c23df4199", "signature": "public int FirstWeekday", "summary": "int (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "DayNames", "kind": "field", "id": "field|DayNames|0|0|nint|||hc96cb34eafe2dffbda2bfaf7419c3f81d942370b1cb428e5cd0d94c7baea0633", "signature": "public nint DayNames", "summary": "const char *const * (offset 32)" }, { "name": "MonthNames", "kind": "field", "id": "field|MonthNames|0|0|nint|||h2519c3a45d98bb15216a1309f655438c464604614945e045cd7f68a271df7e2d", "signature": "public nint MonthNames", "summary": "const char *const * (offset 24)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "cui_date * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeMonthResult", "displayName": "NativeMonthResult", "kind": "struct", "summary": "cui_month_result, 8 bytes.", "members": [{ "name": "DayActivated", "kind": "field", "id": "field|DayActivated|0|0|byte|||h91c24650c9fc208ccae7c802e88fd187c22eb31ebc6be6dd6a9d8e8049e49517", "signature": "public byte DayActivated", "summary": "_Bool (offset 5)" }, { "name": "DayClicked", "kind": "field", "id": "field|DayClicked|0|0|byte|||h9096a8bb960a3406bcc329603b9bda9057de2c4217a569d2c1f4af1fd0caf775", "signature": "public byte DayClicked", "summary": "_Bool (offset 4)" }, { "name": "MonthChanged", "kind": "field", "id": "field|MonthChanged|0|0|byte|||hdcdf60a6ed1204b650ffd46bdc57ec325d4d2f410f6cbe5a1316a7aed5f88413", "signature": "public byte MonthChanged", "summary": "_Bool (offset 6)" }, { "name": "Event", "kind": "field", "id": "field|Event|0|0|int|||hf874e9890201f2fa587b91d9d374afbc1ab3d09f700c4a38f45f91cafea69f11", "signature": "public int Event", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeMultiSelectOpts", "displayName": "NativeMultiSelectOpts", "kind": "struct", "summary": "cui_multi_select_opts, 48 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 40)" }, { "name": "Searchable", "kind": "field", "id": "field|Searchable|0|0|byte|||h74eb146edff067d6dfbf0156d1d638c9b7b006827c54b1057268bda0d4898396", "signature": "public byte Searchable", "summary": "_Bool (offset 32)" }, { "name": "MaxChips", "kind": "field", "id": "field|MaxChips|0|0|int|||h5a257dc5993646fab646b8979966626c37e6b96141761792a36818501629ad17", "signature": "public int MaxChips", "summary": "int (offset 36)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|nint|||h9dcb1e799c22cfc28d5f3330f8ad5d309473e6a32f68ce7efd7068c42c7988da", "signature": "public nint Icons", "summary": "const char *const * (offset 24)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeNavOpts", "displayName": "NativeNavOpts", "kind": "struct", "summary": "cui_nav_opts, 40 bytes.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 16)" }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|nint|||h963fd0b49f7656c682c074d70591163973d0610c086f5a99ce956e9c99ca536f", "signature": "public nint Group", "summary": "const char * (offset 32)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeNetRequest", "displayName": "NativeNetRequest", "kind": "struct", "summary": "cui_net_request, 72 bytes.", "members": [{ "name": "Timing", "kind": "field", "id": "field|Timing|0|0|\u003CTiming\u003Ee__FixedBuffer|||h4f09ea509efbbeb644d46cd6978bb990ce33740ff5eed70ee59ddaff5ad008ec", "signature": "public \u003CTiming\u003Ee__FixedBuffer Timing", "summary": "float[6] (offset 48)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|double|||h7b5849893687f979193405168798960c297b79687570ed452c529a187133d42f", "signature": "public double Size", "summary": "double (offset 32)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double (offset 40)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|int|||hcc92df3b247bff320f1b619f5ff854b64fdb1ce369fb4396a12c2d29bb6a04d8", "signature": "public int Status", "summary": "int (offset 16)" }, { "name": "Method", "kind": "field", "id": "field|Method|0|0|nint|||h123da31d283a687cfb3fc23d6dc7a6d0bf14af9e0cd472e209f6019e3b48bd09", "signature": "public nint Method", "summary": "const char * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|nint|||h08ef46c97f44246852387cb0db61193354036168da9659fe690b19c9be180ecd", "signature": "public nint Type", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeNodeEditorOpts", "displayName": "NativeNodeEditorOpts", "kind": "struct", "summary": "cui_node_editor_opts, 32 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Minimap", "kind": "field", "id": "field|Minimap|0|0|byte|||h847e9339276a95438b4954fd2ae7292a7f2cbad91327a2d1b08131fc590f34f3", "signature": "public byte Minimap", "summary": "_Bool (offset 29)" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|byte|||h026f953f32349519b56ea40bf2b85e0b94dcd1027cc2c5b4a4388f7196a50566", "signature": "public byte NoGrid", "summary": "_Bool (offset 28)" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "float (offset 24)" }, { "name": "MinZoom", "kind": "field", "id": "field|MinZoom|0|0|float|||h29a9b1097fc3444e1615953dab0039e9cc2b1daf864d629ecf3057778d2512c1", "signature": "public float MinZoom", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeNodeOpts", "displayName": "NativeNodeOpts", "kind": "struct", "summary": "cui_node_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeNodeView", "displayName": "NativeNodeView", "kind": "struct", "summary": "cui_node_view, 12 bytes.", "members": [{ "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "float (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeNowPlaying", "displayName": "NativeNowPlaying", "kind": "struct", "summary": "cui_now_playing, 40 bytes.", "members": [{ "name": "ArtColor", "kind": "field", "id": "field|ArtColor|0|0|NativeColor|||h352188e9ae8bb04bc66c65f9d72ef1f7d0c715f17a6c2f1762f16c4dc5a22779", "signature": "public NativeColor ArtColor", "summary": "cui_color (offset 24)" }, { "name": "Playing", "kind": "field", "id": "field|Playing|0|0|byte|||he58ec49fe5fe3b98881f6fdbfe30b7ddb8a3aee5fbe73f58d9ff3d7ab6d4d484", "signature": "public byte Playing", "summary": "_Bool (offset 36)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 32)" }, { "name": "Position", "kind": "field", "id": "field|Position|0|0|float|||hd7fd432a49838186bd7a06ec98a4843ede3007d3a1803ab3581dabd884c9c313", "signature": "public float Position", "summary": "float (offset 28)" }, { "name": "Artist", "kind": "field", "id": "field|Artist|0|0|nint|||he59bb20b10e5b5d8ea31aec4cfcaef621ca667fcdb52e496e8066b4339509d45", "signature": "public nint Artist", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }, { "name": "Art", "kind": "field", "id": "field|Art|0|0|ulong|||h19abe1aca1c372b5d71e6ee5c212ee79fe340cde357d6c23bf3af4a305f7caba", "signature": "public ulong Art", "summary": "cui_texture (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeNowPlayingOpts", "displayName": "NativeNowPlayingOpts", "kind": "struct", "summary": "cui_now_playing_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeNumberOpts", "displayName": "NativeNumberOpts", "kind": "struct", "summary": "cui_number_opts, 48 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 32)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 28)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|double|||h44b63c009d1e13f96b6beedec59bbb32a22e099dcdc403d6954e0407657f670a", "signature": "public double Step", "summary": "double (offset 16)" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|nint|||hf74991389a50a9d4f62042eaba5519ce0c8537c405e4fb6215db1322dfac00e9", "signature": "public nint Suffix", "summary": "const char * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativePathBarOpts", "displayName": "NativePathBarOpts", "kind": "struct", "summary": "cui_path_bar_opts, 48 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 32)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 36)" }, { "name": "Menus", "kind": "field", "id": "field|Menus|0|0|byte|||hfce09a2273f9e5959eeec0f9b791dfbe55c631d67f0f6007ceb096b5ef67f9e9", "signature": "public byte Menus", "summary": "_Bool (offset 44)" }, { "name": "NoEdit", "kind": "field", "id": "field|NoEdit|0|0|byte|||h4ddb78a9b807eee3628959ae9d3d2fd89fb75146a70af1561aae0012d2f4b96f", "signature": "public byte NoEdit", "summary": "_Bool (offset 45)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 24)" }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|nint|||h66aaa42b78279f1149dcb8a32f27fc2db74dc535e86360cd658d24fb0bf042d8", "signature": "public nint Text", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativePathBarResult", "displayName": "NativePathBarResult", "kind": "struct", "summary": "cui_path_bar_result, 24 bytes.", "members": [{ "name": "Editing", "kind": "field", "id": "field|Editing|0|0|byte|||h9cd1f1314af8dd72c11a5d0b5d363747fcde01f6b3b4987312829b3913cd8ae7", "signature": "public byte Editing", "summary": "_Bool (offset 16)" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Submitted", "kind": "field", "id": "field|Submitted|0|0|nint|||h4daa02cbbb687b2825702867fdde5bbf14031d18cbb63e9e4fcc3542a2b46982", "signature": "public nint Submitted", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativePinOpts", "displayName": "NativePinOpts", "kind": "struct", "summary": "cui_pin_opts, 8 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|int|||h291cfcf7e8be08751051d80452d4ba9737270b48802d5b353cb8f86b5c8d4c2a", "signature": "public int Type", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativePipelineJob", "displayName": "NativePipelineJob", "kind": "struct", "summary": "cui_pipeline_job, 24 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|JobStatus|||h8dbfd9370caabecd55d2b859321b59d6a4ee052ab7364783aff88cbd0eff2901", "signature": "public JobStatus Status", "summary": "cui_job_status (offset 12)" }, { "name": "AllowFailure", "kind": "field", "id": "field|AllowFailure|0|0|byte|||h57c27f394392363e5ce198d28bdc1495239dcce5378e6f2cadb65cd234fa5280", "signature": "public byte AllowFailure", "summary": "_Bool (offset 20)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 16)" }, { "name": "Stage", "kind": "field", "id": "field|Stage|0|0|int|||h6fc576c7f16ed80d38f61828b33d23fb8c2ef709dfff4121d292da2de39e7868", "signature": "public int Stage", "summary": "int (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativePipelineOpts", "displayName": "NativePipelineOpts", "kind": "struct", "summary": "cui_pipeline_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativePipelineResult", "displayName": "NativePipelineResult", "kind": "struct", "summary": "cui_pipeline_result, 8 bytes.", "members": [{ "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativePlanStep", "displayName": "NativePlanStep", "kind": "struct", "summary": "cui_plan_step, 24 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status (offset 16)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativePlatformIface", "displayName": "NativePlatformIface", "kind": "struct", "summary": "cui_platform_iface, 48 bytes.", "members": [{ "name": "DrawEmoji", "kind": "field", "id": "field|DrawEmoji|0|0|nint|||ha007e832e7a875694aca1e9339d52e0e40e66ca966c69e8166069d40e16986fb", "signature": "public nint DrawEmoji", "summary": "_Bool (*)(void *, const char *, int, int, unsigned char *) (offset 40)" }, { "name": "GetClipboard", "kind": "field", "id": "field|GetClipboard|0|0|nint|||h9a9190f3e6b6b5c6d0cf55146b73ded113e6a38cca967b429c055648776b5ea4", "signature": "public nint GetClipboard", "summary": "const char *(*)(void *) (offset 16)" }, { "name": "SetClipboard", "kind": "field", "id": "field|SetClipboard|0|0|nint|||hbbfbbd36a4826cc8a71409977e795f45ff9dc93c83f28304cf89488f2cbbff5e", "signature": "public nint SetClipboard", "summary": "void (*)(void *, const char *) (offset 8)" }, { "name": "SetCursor", "kind": "field", "id": "field|SetCursor|0|0|nint|||he1e9b99feebed3486f20ea19b4e8390e04b586ddc2f91b87c5d32f19a0383572", "signature": "public nint SetCursor", "summary": "void (*)(void *, cui_cursor) (offset 24)" }, { "name": "SetTextInputRect", "kind": "field", "id": "field|SetTextInputRect|0|0|nint|||h2ff757d709ab7da74f78fcdc47702a9dcb9b51cc0252b56ba41df20a87d93643", "signature": "public nint SetTextInputRect", "summary": "void (*)(void *, cui_rect) (offset 32)" }, { "name": "User", "kind": "field", "id": "field|User|0|0|nint|||hbb8b86031509e9566eb92455c659fd89532fcd8a35724b86f43a45f38dc8e34f", "signature": "public nint User", "summary": "void * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativePopoverOpts", "displayName": "NativePopoverOpts", "kind": "struct", "summary": "cui_popover_opts, 20 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 4)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 16)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativePresenceUser", "displayName": "NativePresenceUser", "kind": "struct", "summary": "cui_presence_user, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 8)" }, { "name": "Idle", "kind": "field", "id": "field|Idle|0|0|byte|||h1ef96cd97047669694287cf7836fe9005bdfdc75f578cc63c3879ec0d9f7f364", "signature": "public byte Idle", "summary": "_Bool (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeProblemsOpts", "displayName": "NativeProblemsOpts", "kind": "struct", "summary": "cui_problems_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|byte|||h1230557801560ff86cbce3521dab7087f74f25026715f9de53fdbb79ff28a7c9", "signature": "public byte NoToolbar", "summary": "_Bool (offset 16)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeProblemsResult", "displayName": "NativeProblemsResult", "kind": "struct", "summary": "cui_problems_result, 12 bytes.", "members": [{ "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 0)" }, { "name": "Shown", "kind": "field", "id": "field|Shown|0|0|int|||hb58805b7e5564373001000b59ffc5a328243e1da90b1bf69d07d8ff266b1d72f", "signature": "public int Shown", "summary": "int (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeProgressOpts", "displayName": "NativeProgressOpts", "kind": "struct", "summary": "cui_progress_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 8)" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|byte|||hfedb6a86910124c963d29f1734bebdd306e24edb2eb5d92514b1fc88f2d3b8a7", "signature": "public byte Indeterminate", "summary": "_Bool (offset 4)" }, { "name": "ShowValue", "kind": "field", "id": "field|ShowValue|0|0|byte|||hb6f28ed830dc1357a9e6ae1ac2207fd475f7cd4adf20dc1c2cc2e9ae662df3db", "signature": "public byte ShowValue", "summary": "_Bool (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativePromptSuggestion", "displayName": "NativePromptSuggestion", "kind": "struct", "summary": "cui_prompt_suggestion, 24 bytes.", "members": [{ "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 0)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativePromptSuggestionsOpts", "displayName": "NativePromptSuggestionsOpts", "kind": "struct", "summary": "cui_prompt_suggestions_opts, 8 bytes.", "members": [{ "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativePropOpts", "displayName": "NativePropOpts", "kind": "struct", "summary": "cui_prop_opts, 56 bytes.", "members": [{ "name": "Checkbox", "kind": "field", "id": "field|Checkbox|0|0|byte|||h507b4560e3dd2226d78d8569e4e568325e5e4b07c2c5374c97aa7c28c15684eb", "signature": "public byte Checkbox", "summary": "_Bool (offset 49)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 48)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 8)" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "float (offset 4)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 32)" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|nint|||hf74991389a50a9d4f62042eaba5519ce0c8537c405e4fb6215db1322dfac00e9", "signature": "public nint Suffix", "summary": "const char * (offset 24)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeQueryField", "displayName": "NativeQueryField", "kind": "struct", "summary": "cui_query_field, 32 bytes.", "members": [{ "name": "Type", "kind": "field", "id": "field|Type|0|0|QueryType|||hf209f50f5f23cd7bcfb0c92b4bab8a6e54deec08302998719d5a083a7aeda993", "signature": "public QueryType Type", "summary": "cui_query_type (offset 8)" }, { "name": "ChoiceCount", "kind": "field", "id": "field|ChoiceCount|0|0|int|||h02d777fe613788659bf69664a6261625545c513d9a9122df90eca79d51005bad", "signature": "public int ChoiceCount", "summary": "int (offset 24)" }, { "name": "Choices", "kind": "field", "id": "field|Choices|0|0|nint|||h9e816d3f81eb98f247eec7011f2c31635c3566049549139425e86f0a3a75de4a", "signature": "public nint Choices", "summary": "const char *const * (offset 16)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeQueryNode", "displayName": "NativeQueryNode", "kind": "struct", "summary": "cui_query_node, 80 bytes.", "members": [{ "name": "Value", "kind": "field", "id": "field|Value|0|0|\u003CValue\u003Ee__FixedBuffer|||h3733ba739dc4b340aaa8d999619d3a45483a5245e5ca30e87e307219078ea13c", "signature": "public \u003CValue\u003Ee__FixedBuffer Value", "summary": "char[64] (offset 16)" }, { "name": "Any", "kind": "field", "id": "field|Any|0|0|byte|||hb37e0d689a0581e7a7dcd3d5383ddb32f18177060cce4462e7b8220b195e8cfe", "signature": "public byte Any", "summary": "_Bool (offset 5)" }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|byte|||hd89540b6104f14ac67b204f5a13e2b5176f782170dff539a78dab46ba3e1050a", "signature": "public byte Group", "summary": "_Bool (offset 4)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 0)" }, { "name": "Field", "kind": "field", "id": "field|Field|0|0|int|||hdcf6cff1322591f3a88cb72bd2e2121e1e20ef1a7c6b74518e9e156290f19324", "signature": "public int Field", "summary": "int (offset 8)" }, { "name": "Op", "kind": "field", "id": "field|Op|0|0|int|||h6505aa172e0f27a8b351e7d974812a780ea421fa10662d2e3e0f3d89db6217e1", "signature": "public int Op", "summary": "int (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeQueryOpts", "displayName": "NativeQueryOpts", "kind": "struct", "summary": "cui_query_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 16)" }, { "name": "MaxDepth", "kind": "field", "id": "field|MaxDepth|0|0|int|||he1682a88cdc03d3743c38ec2bdc17f9131942fa953ffde04cded5fc866b9afdd", "signature": "public int MaxDepth", "summary": "int (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeRadarOpts", "displayName": "NativeRadarOpts", "kind": "struct", "summary": "cui_radar_opts, 32 bytes.", "members": [{ "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|byte|||h1f8a110b3f30258fe29c926542fc3ebe7571478d3c055e1b3267d8e06e0b33f4", "signature": "public byte NoLegend", "summary": "_Bool (offset 24)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 8)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRadialGaugeOpts", "displayName": "NativeRadialGaugeOpts", "kind": "struct", "summary": "cui_radial_gauge_opts, 64 bytes.", "members": [{ "name": "NoNeedle", "kind": "field", "id": "field|NoNeedle|0|0|byte|||h3a0cf49a66a777f2868809275c11e6bc72867c9c16a213b20f272b4e917f7661", "signature": "public byte NoNeedle", "summary": "_Bool (offset 61)" }, { "name": "ShowTarget", "kind": "field", "id": "field|ShowTarget|0|0|byte|||hd1e997b62098b8fd4e9c8ad625a9767162028f58637f36d5f72ccba41fd9263a", "signature": "public byte ShowTarget", "summary": "_Bool (offset 60)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 32)" }, { "name": "Sweep", "kind": "field", "id": "field|Sweep|0|0|float|||h7fb4447237bd85b4fcbb34bc83034682a6f51ce1885fdf1656d0e29fa9bde9ce", "signature": "public float Sweep", "summary": "float (offset 36)" }, { "name": "Target", "kind": "field", "id": "field|Target|0|0|float|||hcde29887b1065a0d920ec35b586d383741d5219b2c69db75b52f3c59633bdfe2", "signature": "public float Target", "summary": "float (offset 56)" }, { "name": "BandCount", "kind": "field", "id": "field|BandCount|0|0|int|||h8f772448f68b8cd351be66664954248f0016d89e0ec779c00a5d8db33648680f", "signature": "public int BandCount", "summary": "int (offset 48)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Ticks", "kind": "field", "id": "field|Ticks|0|0|int|||hdd7be04ef4d976cb0eb1119ce46c1e28a88d3f9b64451ac52a79686542ec0cce", "signature": "public int Ticks", "summary": "int (offset 52)" }, { "name": "Bands", "kind": "field", "id": "field|Bands|0|0|nint|||hca1692338c9b5a5464abe15373150298f094bb516bfa92aec327cd952dffec08", "signature": "public nint Bands", "summary": "const cui_gauge_band * (offset 40)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeRadioCardsOpts", "displayName": "NativeRadioCardsOpts", "kind": "struct", "summary": "cui_radio_cards_opts, 8 bytes.", "members": [{ "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeReaction", "displayName": "NativeReaction", "kind": "struct", "summary": "cui_reaction, 16 bytes.", "members": [{ "name": "Active", "kind": "field", "id": "field|Active|0|0|byte|||h4ae72b901c43fd7eedd2860040d11da247d2e5fad66ff07dafa510bcc03ebec9", "signature": "public byte Active", "summary": "_Bool (offset 12)" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeReasoningOpts", "displayName": "NativeReasoningOpts", "kind": "struct", "summary": "cui_reasoning_opts, 24 bytes.", "members": [{ "name": "Thinking", "kind": "field", "id": "field|Thinking|0|0|byte|||h71d4b8904e3b9edda6b398c15c727ba1512efdca6affae34aed7e9a59c141fad", "signature": "public byte Thinking", "summary": "_Bool (offset 4)" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRect", "displayName": "NativeRect", "kind": "struct", "summary": "cui_rect, 16 bytes.", "members": [{ "name": "H", "kind": "field", "id": "field|H|0|0|float|||h6068c1b5b26070cf40100a361438f0aaacf6f48566057f47c5c4da7088e480c3", "signature": "public float H", "summary": "float (offset 12)" }, { "name": "W", "kind": "field", "id": "field|W|0|0|float|||h1b8bbee4108258383c6ae6598eb75961df002e444297bc3c3ce7f9b77b1cc76d", "signature": "public float W", "summary": "float (offset 8)" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeRegexMatch", "displayName": "NativeRegexMatch", "kind": "struct", "summary": "cui_regex_match, 332 bytes.", "members": [{ "name": "GroupEnd", "kind": "field", "id": "field|GroupEnd|0|0|\u003CGroupEnd\u003Ee__FixedBuffer|||h6bea8621bc7f40fd422f35dd80890c8e99e7c061f6d81e995e2508528187df83", "signature": "public \u003CGroupEnd\u003Ee__FixedBuffer GroupEnd", "summary": "int[10] (offset 52)" }, { "name": "GroupStart", "kind": "field", "id": "field|GroupStart|0|0|\u003CGroupStart\u003Ee__FixedBuffer|||h76149322f1925add8a161ff495d4572c0289da9202590b946e24010515e21510", "signature": "public \u003CGroupStart\u003Ee__FixedBuffer GroupStart", "summary": "int[10] (offset 12)" }, { "name": "GroupName", "kind": "field", "id": "field|GroupName|0|0|NativeRegexMatchGroupNameArray1|||hdf1956c43f3320769e7edd70c20f61fc3d749cd9591c139ef0190fe71364bdbe", "signature": "public NativeRegexMatchGroupNameArray1 GroupName", "summary": "char[10][24] (offset 92)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int (offset 4)" }, { "name": "Groups", "kind": "field", "id": "field|Groups|0|0|int|||h3b074bbc1baff400280a76c2f7fa8cd3dd142e4426e982cf1aa80a5fe29e43de", "signature": "public int Groups", "summary": "int (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeRegexMatchGroupNameArray1", "displayName": "NativeRegexMatchGroupNameArray1", "kind": "struct", "summary": "[10] array of NativeRegexMatchGroupNameArray2, for cui_regex_match.", "members": [] }, + { "name": "CuiSharp.Interop.NativeRegexMatchGroupNameArray2", "displayName": "NativeRegexMatchGroupNameArray2", "kind": "struct", "summary": "[24] array of sbyte, for cui_regex_match.", "members": [] }, + { "name": "CuiSharp.Interop.NativeRegexTesterOpts", "displayName": "NativeRegexTesterOpts", "kind": "struct", "summary": "cui_regex_tester_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Flags", "kind": "field", "id": "field|Flags|0|0|nint|||h6e58cfc4918945deba61e9023338550158a8fc55afb31332fb3e93ff2e7645b2", "signature": "public nint Flags", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRegexTesterResult", "displayName": "NativeRegexTesterResult", "kind": "struct", "summary": "cui_regex_tester_result, 16 bytes.", "members": [{ "name": "Valid", "kind": "field", "id": "field|Valid|0|0|byte|||hf9c156c8e32b62eb3a0fc4a0ad98b268f5497c42836338138a0c0b95866fb11c", "signature": "public byte Valid", "summary": "_Bool (offset 0)" }, { "name": "Matches", "kind": "field", "id": "field|Matches|0|0|int|||hcedd9515c638fc304b4b46a264002d08e5bd2da7de258318812e2fb6ea94b072", "signature": "public int Matches", "summary": "int (offset 4)" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|nint|||hdd113196192125bb251ed8e4e61faa04c141796319fac033109dbf93e8d846b0", "signature": "public nint Error", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeRendererIface", "displayName": "NativeRendererIface", "kind": "struct", "summary": "cui_renderer_iface, 32 bytes.", "members": [{ "name": "TextureCreate", "kind": "field", "id": "field|TextureCreate|0|0|nint|||hd2472afc877eb2edcae79a7392156864b5971ec9d2c0bacadd3120fbf6b4bb99", "signature": "public nint TextureCreate", "summary": "cui_texture (*)(void *, int, int, cui_texture_format, const void *) (offset 8)" }, { "name": "TextureDestroy", "kind": "field", "id": "field|TextureDestroy|0|0|nint|||h59ab6897b24130ff3725ff5acefa03114ce8370ec6aca84fd55efeb24ba34764", "signature": "public nint TextureDestroy", "summary": "void (*)(void *, cui_texture) (offset 24)" }, { "name": "TextureUpdate", "kind": "field", "id": "field|TextureUpdate|0|0|nint|||hbfbde4239ec6fa549173cf8c72e546e18b2b55498df7c5952cdb88f8c19fc3fc", "signature": "public nint TextureUpdate", "summary": "void (*)(void *, cui_texture, int, int, int, int, const void *, int) (offset 16)" }, { "name": "User", "kind": "field", "id": "field|User|0|0|nint|||hbb8b86031509e9566eb92455c659fd89532fcd8a35724b86f43a45f38dc8e34f", "signature": "public nint User", "summary": "void * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeRequestBarOpts", "displayName": "NativeRequestBarOpts", "kind": "struct", "summary": "cui_request_bar_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|byte|||h20a09ddc6a79c663a1d4f8d2042bef2401f8094388c708c582468cf01c1a7c8e", "signature": "public byte Loading", "summary": "_Bool (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRequestBarResult", "displayName": "NativeRequestBarResult", "kind": "struct", "summary": "cui_request_bar_result, 3 bytes.", "members": [{ "name": "Cancel", "kind": "field", "id": "field|Cancel|0|0|byte|||h7e0168b5d0620dfdb71a9b47278bb001235cb95e502023151a6f839959506ea2", "signature": "public byte Cancel", "summary": "_Bool (offset 1)" }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 2)" }, { "name": "Send", "kind": "field", "id": "field|Send|0|0|byte|||h887daa095687e8e78845b5af4c73970e26ef060e9fdadb24da4c6fd9736a3894", "signature": "public byte Send", "summary": "_Bool (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeResponseActionsOpts", "displayName": "NativeResponseActionsOpts", "kind": "struct", "summary": "cui_response_actions_opts, 32 bytes.", "members": [{ "name": "NoRegenerate", "kind": "field", "id": "field|NoRegenerate|0|0|byte|||h4e001b5d61c3649aba67ef10bd120bfb937c5236c5d14f70bbf90c64b1820210", "signature": "public byte NoRegenerate", "summary": "_Bool (offset 24)" }, { "name": "NoShare", "kind": "field", "id": "field|NoShare|0|0|byte|||hbfcf4fa4abfad814193dcdd24609ee009bd2b1c24147ed26d61fd413525575e3", "signature": "public byte NoShare", "summary": "_Bool (offset 25)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "CopyText", "kind": "field", "id": "field|CopyText|0|0|nint|||h2c9faad1de73af1ece08376b9c875c000f915b4f8a9cf080b5d0d77b919de771", "signature": "public nint CopyText", "summary": "const char * (offset 8)" }, { "name": "Vote", "kind": "field", "id": "field|Vote|0|0|nint|||hc2fc27a3107ca1f014a744f1a42852b68a2ebd47e67fe59ba1d7beed13db03dd", "signature": "public nint Vote", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRingsOpts", "displayName": "NativeRingsOpts", "kind": "struct", "summary": "cui_rings_opts, 40 bytes.", "members": [{ "name": "Legend", "kind": "field", "id": "field|Legend|0|0|byte|||h810b2c59348d091ac8afb7ff17ec81578bde5715ded1a3a027fc9d2910f47e4e", "signature": "public byte Legend", "summary": "_Bool (offset 32)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Thickness", "kind": "field", "id": "field|Thickness|0|0|float|||h032ae3f08d1f764102a5ab4e3449cb25f2ae394d97fb8b90dd505ead7b8576f6", "signature": "public float Thickness", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Caption", "kind": "field", "id": "field|Caption|0|0|nint|||hc3a508694d3389396d2939b4426587a08b71fcc7af9636af2bbf5e844d7a73d7", "signature": "public nint Caption", "summary": "const char * (offset 24)" }, { "name": "Center", "kind": "field", "id": "field|Center|0|0|nint|||ha8f1210f7bef229d24187603ef3b7e741881770903ecb336d1ffb9f50428df15", "signature": "public nint Center", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeRulerOpts", "displayName": "NativeRulerOpts", "kind": "struct", "summary": "cui_ruler_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 32)" }, { "name": "Spacing", "kind": "field", "id": "field|Spacing|0|0|float|||h22da469a15540ae6a7f22a07bcce21a26b31756bc58b41e93dfacd4da75285a9", "signature": "public float Spacing", "summary": "float (offset 12)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 4)" }, { "name": "MajorEvery", "kind": "field", "id": "field|MajorEvery|0|0|int|||hb8966c550f0af08c692ad9b7a0009bc4750e28358fc03967f4a7ff5bc21f7ed4", "signature": "public int MajorEvery", "summary": "int (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|nint|||h708409b7ee1912ab128b9f78a22e55e9f298402bb842be865ac89fa44f207c93", "signature": "public nint Unit", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeSankeyLink", "displayName": "NativeSankeyLink", "kind": "struct", "summary": "cui_sankey_link, 12 bytes.", "members": [{ "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float (offset 8)" }, { "name": "From", "kind": "field", "id": "field|From|0|0|int|||h11f7cebcf77a074c120dda4af3a2c2a7d6533333236d3fbb272c705fd58fd693", "signature": "public int From", "summary": "int (offset 0)" }, { "name": "To", "kind": "field", "id": "field|To|0|0|int|||h51c44d9327d4ff5ec543672605cdc9085758c30f02fb02478eed8ab117d48e44", "signature": "public int To", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeSankeyOpts", "displayName": "NativeSankeyOpts", "kind": "struct", "summary": "cui_sankey_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "NodeWidth", "kind": "field", "id": "field|NodeWidth|0|0|float|||h854c8bca8b3d6404a03cf66a2c3c87c152ea3dd5251148ee7b7181601bb4ff91", "signature": "public float NodeWidth", "summary": "float (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeScatterOpts", "displayName": "NativeScatterOpts", "kind": "struct", "summary": "cui_scatter_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|byte|||h1f8a110b3f30258fe29c926542fc3ebe7571478d3c055e1b3267d8e06e0b33f4", "signature": "public byte NoLegend", "summary": "_Bool (offset 48)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "XFormat", "kind": "field", "id": "field|XFormat|0|0|nint|||h18e8cf118fea9392564da580eba62c8ae35e782caa009a608ed4c9346c73a269", "signature": "public nint XFormat", "summary": "const char * (offset 32)" }, { "name": "XLabel", "kind": "field", "id": "field|XLabel|0|0|nint|||h1c4a4886f3bc213da6e6aeff6bfcbadc01f7999be462be2d85643797609df1b7", "signature": "public nint XLabel", "summary": "const char * (offset 16)" }, { "name": "YFormat", "kind": "field", "id": "field|YFormat|0|0|nint|||h5c705ed0a7ec28e905001cc33b9d9a52a7c904a615aa8dcd45b435b1a4adcb47", "signature": "public nint YFormat", "summary": "const char * (offset 40)" }, { "name": "YLabel", "kind": "field", "id": "field|YLabel|0|0|nint|||h458be0325d3e3ce4b9212c389ff3d38e2ea7d070891c57b1c5fad4556ed6dc2b", "signature": "public nint YLabel", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeScatterSeries", "displayName": "NativeScatterSeries", "kind": "struct", "summary": "cui_scatter_series, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 28)" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Points", "kind": "field", "id": "field|Points|0|0|nint|||h863e9de0c5dbad5fa1da3a3ce05f3356396b96b6971b55372f7580cdaac5017d", "signature": "public nint Points", "summary": "const cui_vec2 * (offset 8)" }, { "name": "Sizes", "kind": "field", "id": "field|Sizes|0|0|nint|||hc260f75e798fd23caa9ec01ab012ffb91aa98a0094ed6482327f7d7b4e8e4978", "signature": "public nint Sizes", "summary": "const float * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeScheduleOpts", "displayName": "NativeScheduleOpts", "kind": "struct", "summary": "cui_schedule_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Utc", "kind": "field", "id": "field|Utc|0|0|byte|||h16905feb07f6e9387c628a2c95d698bf3338a3f880337b7165b54b12f5c1bcd1", "signature": "public byte Utc", "summary": "_Bool (offset 24)" }, { "name": "NextCount", "kind": "field", "id": "field|NextCount|0|0|int|||h80bfe4de5677a884d75cb874b420721eb542ff4df1afc53136faf5ba124b192b", "signature": "public int NextCount", "summary": "int (offset 28)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|long|||h949d29ec25550cd1c5e589c99b5e39471c9584ce47315d26d5fa02dc132525d7", "signature": "public long Now", "summary": "int64_t (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeScheduleResult", "displayName": "NativeScheduleResult", "kind": "struct", "summary": "cui_schedule_result, 16 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "Valid", "kind": "field", "id": "field|Valid|0|0|byte|||hf9c156c8e32b62eb3a0fc4a0ad98b268f5497c42836338138a0c0b95866fb11c", "signature": "public byte Valid", "summary": "_Bool (offset 1)" }, { "name": "Next", "kind": "field", "id": "field|Next|0|0|long|||hd7ee1f886f886259549f3654f5275aaa94247e8c4d9446f9f2a3a90e2de894d3", "signature": "public long Next", "summary": "int64_t (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeScrollOpts", "displayName": "NativeScrollOpts", "kind": "struct", "summary": "cui_scroll_opts, 56 bytes.", "members": [{ "name": "FadeColor", "kind": "field", "id": "field|FadeColor|0|0|NativeColor|||hb15ba159b0bab1b7ac7441e3b5cb2578ab145ba12c36d225c185b1437603d4c3", "signature": "public NativeColor FadeColor", "summary": "cui_color (offset 45)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "FadeEdges", "kind": "field", "id": "field|FadeEdges|0|0|byte|||h427c697ea87920ae4df603e40c1fb72d25e06ff19babe1835117928d97bf99f4", "signature": "public byte FadeEdges", "summary": "_Bool (offset 44)" }, { "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|byte|||hb8eb5f891a452586827fe30447b7d0b698e41f55d790a6fb5ef7aee450a3d7f2", "signature": "public byte Horizontal", "summary": "_Bool (offset 32)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 40)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 36)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|nint|||h776d0e60aed221d94e76ec8f19e3fe1a92e74b03003d575f9b4eaa98ff45a530", "signature": "public nint Id", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeScrubOpts", "displayName": "NativeScrubOpts", "kind": "struct", "summary": "cui_scrub_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 32)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|nint|||hf74991389a50a9d4f62042eaba5519ce0c8537c405e4fb6215db1322dfac00e9", "signature": "public nint Suffix", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSegmentedOpts", "displayName": "NativeSegmentedOpts", "kind": "struct", "summary": "cui_segmented_opts, 24 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 4)" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|byte|||hd01f4e7d92479240099d4691e65654bcd8a680160c7cec92dbd21a81d9339563", "signature": "public byte FullWidth", "summary": "_Bool (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|nint|||h9dcb1e799c22cfc28d5f3330f8ad5d309473e6a32f68ce7efd7068c42c7988da", "signature": "public nint Icons", "summary": "const char *const * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSelectOpts", "displayName": "NativeSelectOpts", "kind": "struct", "summary": "cui_select_opts, 48 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 36)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 33)" }, { "name": "Searchable", "kind": "field", "id": "field|Searchable|0|0|byte|||h74eb146edff067d6dfbf0156d1d638c9b7b006827c54b1057268bda0d4898396", "signature": "public byte Searchable", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|nint|||h9dcb1e799c22cfc28d5f3330f8ad5d309473e6a32f68ce7efd7068c42c7988da", "signature": "public nint Icons", "summary": "const char *const * (offset 24)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSeries", "displayName": "NativeSeries", "kind": "struct", "summary": "cui_series, 24 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 20)" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int (offset 16)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Values", "kind": "field", "id": "field|Values|0|0|nint|||hc30bb6429c4e57a1df28a0bafaa2e98f5c7817a370bfe9a039e723f0dd8ce12b", "signature": "public nint Values", "summary": "const float * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeShadow", "displayName": "NativeShadow", "kind": "struct", "summary": "cui_shadow, 16 bytes.", "members": [{ "name": "Alpha", "kind": "field", "id": "field|Alpha|0|0|float|||h699cb1d5c27c6498caaef6b8d1c11b34e067946f5e1941b3936004f3996fc9ad", "signature": "public float Alpha", "summary": "float (offset 12)" }, { "name": "Blur", "kind": "field", "id": "field|Blur|0|0|float|||he18dabc7b5fa09bd6a291c97b93d349f71073e677f03851c95b48e0c7f1c089e", "signature": "public float Blur", "summary": "float (offset 4)" }, { "name": "Spread", "kind": "field", "id": "field|Spread|0|0|float|||hd66f08b45422fe676e4052402d02428a288489d835a4c2db4d57cdf51bb48b1b", "signature": "public float Spread", "summary": "float (offset 8)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeSheetOpts", "displayName": "NativeSheetOpts", "kind": "struct", "summary": "cui_sheet_opts, 24 bytes.", "members": [{ "name": "Side", "kind": "field", "id": "field|Side|0|0|Side|||h246cd6630b9e5173ef64270ae4793d84e4ae57c4170b390ddf3234197dd10321", "signature": "public Side Side", "summary": "cui_side (offset 4)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeShortcutRecorderOpts", "displayName": "NativeShortcutRecorderOpts", "kind": "struct", "summary": "cui_shortcut_recorder_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeSignatureOpts", "displayName": "NativeSignatureOpts", "kind": "struct", "summary": "cui_signature_opts, 32 bytes.", "members": [{ "name": "Ink", "kind": "field", "id": "field|Ink|0|0|NativeColor|||h07015daf6e9b6f5f6f49673303996942d62b58f96fb84fcb9cfbfad5522e978c", "signature": "public NativeColor Ink", "summary": "cui_color (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSize", "displayName": "NativeSize", "kind": "struct", "summary": "cui_size, 8 bytes.", "members": [{ "name": "Kind", "kind": "field", "id": "field|Kind|0|0|SizeKind|||h808fe0ea94104d13851249da7a5766580e1fc8ca49ac6ab11ba92014f2c18609", "signature": "public SizeKind Kind", "summary": "cui_size_kind (offset 0)" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeSliderOpts", "displayName": "NativeSliderOpts", "kind": "struct", "summary": "cui_slider_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 24)" }, { "name": "ShowValue", "kind": "field", "id": "field|ShowValue|0|0|byte|||hb6f28ed830dc1357a9e6ae1ac2207fd475f7cd4adf20dc1c2cc2e9ae662df3db", "signature": "public byte ShowValue", "summary": "_Bool (offset 8)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSource", "displayName": "NativeSource", "kind": "struct", "summary": "cui_source, 24 bytes.", "members": [{ "name": "Snippet", "kind": "field", "id": "field|Snippet|0|0|nint|||h0659a860697ebf62054653c9c256c25a2d112b7b288f4d24a0bb03f24ff83992", "signature": "public nint Snippet", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }, { "name": "Url", "kind": "field", "id": "field|Url|0|0|nint|||hf0232bb28873580e7552c56dbd6d63af4bd9d12c5edb127a43cffab9d54553c7", "signature": "public nint Url", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeSpeedAction", "displayName": "NativeSpeedAction", "kind": "struct", "summary": "cui_speed_action, 16 bytes.", "members": [{ "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeSpeedDialOpts", "displayName": "NativeSpeedDialOpts", "kind": "struct", "summary": "cui_speed_dial_opts, 32 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeSplitBarOpts", "displayName": "NativeSplitBarOpts", "kind": "struct", "summary": "cui_split_bar_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|byte|||h1f8a110b3f30258fe29c926542fc3ebe7571478d3c055e1b3267d8e06e0b33f4", "signature": "public byte NoLegend", "summary": "_Bool (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeSplitButtonOpts", "displayName": "NativeSplitButtonOpts", "kind": "struct", "summary": "cui_split_button_opts, 40 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 4)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 8)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }, { "name": "ItemIcons", "kind": "field", "id": "field|ItemIcons|0|0|nint|||hf996e386ec0edc6b010dcbf70b7b0f78487e0478b1fd7af23be8a0b7015a97ac", "signature": "public nint ItemIcons", "summary": "const char *const * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeSplitOpts", "displayName": "NativeSplitOpts", "kind": "struct", "summary": "cui_split_opts, 32 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Vertical", "kind": "field", "id": "field|Vertical|0|0|byte|||hb745bba6aac4c525e8693e60602d97beec17eb473cf709b8b490ef2233874e2f", "signature": "public byte Vertical", "summary": "_Bool (offset 4)" }, { "name": "MinFirst", "kind": "field", "id": "field|MinFirst|0|0|float|||h203ccf5752771158a9004b5869c64efac48743fd8ad2d4052049ab858c705911", "signature": "public float MinFirst", "summary": "float (offset 8)" }, { "name": "MinSecond", "kind": "field", "id": "field|MinSecond|0|0|float|||hc79d7e0191f3217f02adf136ff4c3f9fbe0fad72ad8716f348481f65792590d7", "signature": "public float MinSecond", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeSpotlightOpts", "displayName": "NativeSpotlightOpts", "kind": "struct", "summary": "cui_spotlight_opts, 36 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 28)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Beam", "kind": "field", "id": "field|Beam|0|0|byte|||h78b24f69e619dd4eefe246a310576e875e69b98c218f29ae86b263fa65615784", "signature": "public byte Beam", "summary": "_Bool (offset 32)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 24)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeStackFrame", "displayName": "NativeStackFrame", "kind": "struct", "summary": "cui_stack_frame, 48 bytes.", "members": [{ "name": "External", "kind": "field", "id": "field|External|0|0|byte|||ha8265ee781ce641e84fefb190ac962d15378467082b2b86fc10d03d0d34bb7fc", "signature": "public byte External", "summary": "_Bool (offset 24)" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "int (offset 20)" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "int (offset 16)" }, { "name": "SourceCount", "kind": "field", "id": "field|SourceCount|0|0|int|||h62021a37d45c4db52172f9a61efa4fae8828ed31779da0ac4353b76ede71fe6f", "signature": "public int SourceCount", "summary": "int (offset 40)" }, { "name": "SourceFirst", "kind": "field", "id": "field|SourceFirst|0|0|int|||hdbfe26cdd0e9e35221244418a1765d3b7ab294b68bdd1b1356d37e84561caf72", "signature": "public int SourceFirst", "summary": "int (offset 44)" }, { "name": "File", "kind": "field", "id": "field|File|0|0|nint|||hf18b959cb1aa589cfedfeb3f56d2a4481a5c4eac07083fc9750af44c4bf0cf08", "signature": "public nint File", "summary": "const char * (offset 8)" }, { "name": "Function", "kind": "field", "id": "field|Function|0|0|nint|||h359813c28a2b2655c617ce711be9405192a301bd22f4d9edb5b908c280860f5a", "signature": "public nint Function", "summary": "const char * (offset 0)" }, { "name": "Source", "kind": "field", "id": "field|Source|0|0|nint|||h1199d329667bd917815202c41d44da21fc731a62f0507af39b62283f6b5248d9", "signature": "public nint Source", "summary": "const char *const * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeStackTraceOpts", "displayName": "NativeStackTraceOpts", "kind": "struct", "summary": "cui_stack_trace_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|nint|||h47e017876cc656beadab67c2a3da7d17ebe65dbbb9bf477edfc76ac1167c397a", "signature": "public nint Lang", "summary": "const char * (offset 32)" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|nint|||hd26a8e53b67f4e6b6a7f4704f738a3b1510f63da8dbf582c674431012ef50a25", "signature": "public nint Message", "summary": "const char * (offset 24)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeStackTraceResult", "displayName": "NativeStackTraceResult", "kind": "struct", "summary": "cui_stack_trace_result, 4 bytes.", "members": [{ "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeStatusBarOpts", "displayName": "NativeStatusBarOpts", "kind": "struct", "summary": "cui_status_bar_opts, 8 bytes.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|byte|||h52a658d9e90fb592c2d5b234fe36d916b01f85259ebf498345a83768a1f7a51c", "signature": "public byte NoBorder", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeStatusButtonOpts", "displayName": "NativeStatusButtonOpts", "kind": "struct", "summary": "cui_status_button_opts, 48 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant (offset 40)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 44)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "BusyLabel", "kind": "field", "id": "field|BusyLabel|0|0|nint|||h7418c01f70a9e1eabb71b5d8cc75ad46e224ff10ac01cb888f137e316ecba0d6", "signature": "public nint BusyLabel", "summary": "const char * (offset 8)" }, { "name": "ErrorLabel", "kind": "field", "id": "field|ErrorLabel|0|0|nint|||h4d51ceaf0bb5485cc3c5cecfe97b48f8c1ce7ca0065ed2e21927b16b2148ffa1", "signature": "public nint ErrorLabel", "summary": "const char * (offset 24)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 32)" }, { "name": "SuccessLabel", "kind": "field", "id": "field|SuccessLabel|0|0|nint|||h52b469e83af8845eb0ffa86afd486d11bb27a4afd532a477963671bc2935e693", "signature": "public nint SuccessLabel", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeStatusItemOpts", "displayName": "NativeStatusItemOpts", "kind": "struct", "summary": "cui_status_item_opts, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeStatusProgressOpts", "displayName": "NativeStatusProgressOpts", "kind": "struct", "summary": "cui_status_progress_opts, 24 bytes.", "members": [{ "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|byte|||hfedb6a86910124c963d29f1734bebdd306e24edb2eb5d92514b1fc88f2d3b8a7", "signature": "public byte Indeterminate", "summary": "_Bool (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeStrings", "displayName": "NativeStrings", "kind": "struct", "summary": "cui_strings, 368 bytes.", "members": [{ "name": "Month", "kind": "field", "id": "field|Month|0|0|NativeStringsMonthArray|||hcacca9a3c4685006c0aa47e340453d8267d29c9d82b3eb7e37128ce6f09bbd89", "signature": "public NativeStringsMonthArray Month", "summary": "const char *[12] (offset 0)" }, { "name": "MonthShort", "kind": "field", "id": "field|MonthShort|0|0|NativeStringsMonthShortArray|||hca9492ba31505439c2559001e626a3a328bb2f56cf6e48afa287444101cc9330", "signature": "public NativeStringsMonthShortArray MonthShort", "summary": "const char *[12] (offset 96)" }, { "name": "Weekday", "kind": "field", "id": "field|Weekday|0|0|NativeStringsWeekdayArray|||h6e9cb985ef11e99168d556d88f27512f7e41a9ed53ef0ee00746477ec6610e7f", "signature": "public NativeStringsWeekdayArray Weekday", "summary": "const char *[7] (offset 192)" }, { "name": "WeekdayMin", "kind": "field", "id": "field|WeekdayMin|0|0|NativeStringsWeekdayMinArray|||hd66ca260a97dae4a46e5c45c9017a13772fe6458503b5b4ea3cfaf205664049f", "signature": "public NativeStringsWeekdayMinArray WeekdayMin", "summary": "const char *[7] (offset 304)" }, { "name": "WeekdayShort", "kind": "field", "id": "field|WeekdayShort|0|0|NativeStringsWeekdayShortArray|||hca168e415864005643e82d73aebaef9f11fcf3e927e3d677ff11be9f37c284b5", "signature": "public NativeStringsWeekdayShortArray WeekdayShort", "summary": "const char *[7] (offset 248)" }, { "name": "Today", "kind": "field", "id": "field|Today|0|0|nint|||h3505f2cb683a52d1b5989c440edc6b3fb23ce36b2bebf3499fbfc51c9a7abd3d", "signature": "public nint Today", "summary": "const char * (offset 360)" }] }, + { "name": "CuiSharp.Interop.NativeStringsMonthArray", "displayName": "NativeStringsMonthArray", "kind": "struct", "summary": "[12] array of nint, for cui_strings.", "members": [] }, + { "name": "CuiSharp.Interop.NativeStringsMonthShortArray", "displayName": "NativeStringsMonthShortArray", "kind": "struct", "summary": "[12] array of nint, for cui_strings.", "members": [] }, + { "name": "CuiSharp.Interop.NativeStringsWeekdayArray", "displayName": "NativeStringsWeekdayArray", "kind": "struct", "summary": "[7] array of nint, for cui_strings.", "members": [] }, + { "name": "CuiSharp.Interop.NativeStringsWeekdayMinArray", "displayName": "NativeStringsWeekdayMinArray", "kind": "struct", "summary": "[7] array of nint, for cui_strings.", "members": [] }, + { "name": "CuiSharp.Interop.NativeStringsWeekdayShortArray", "displayName": "NativeStringsWeekdayShortArray", "kind": "struct", "summary": "[7] array of nint, for cui_strings.", "members": [] }, + { "name": "CuiSharp.Interop.NativeSwipeAction", "displayName": "NativeSwipeAction", "kind": "struct", "summary": "cui_swipe_action, 24 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTabBarItem", "displayName": "NativeTabBarItem", "kind": "struct", "summary": "cui_tab_bar_item, 24 bytes.", "members": [{ "name": "Badge", "kind": "field", "id": "field|Badge|0|0|int|||h1ea0a5985eea3db7ed64622a6693b2d10e07bdfdc4610208a1b5ee962fce491c", "signature": "public int Badge", "summary": "int (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTabBarOpts", "displayName": "NativeTabBarOpts", "kind": "struct", "summary": "cui_tab_bar_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "LabelsOnSelectedOnly", "kind": "field", "id": "field|LabelsOnSelectedOnly|0|0|byte|||h7c79d3d68d524da29809f8520014d7670afee76365b038d9de42efdd87eddea3", "signature": "public byte LabelsOnSelectedOnly", "summary": "_Bool (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTableColumn", "displayName": "NativeTableColumn", "kind": "struct", "summary": "cui_table_column, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 8)" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align (offset 16)" }, { "name": "Sortable", "kind": "field", "id": "field|Sortable|0|0|byte|||he9070b0f1a6618362c7d61bbbdebf35e70e6d19b96b6e0a0848b987b2f8927ef", "signature": "public byte Sortable", "summary": "_Bool (offset 20)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTableOpts", "displayName": "NativeTableOpts", "kind": "struct", "summary": "cui_table_opts, 32 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 16)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 25)" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|byte|||hcd5e0a50ec91d1ba0d70d738d5b04dcc2d41920132c01a0fbe281f53b4d2ca83", "signature": "public byte Selectable", "summary": "_Bool (offset 26)" }, { "name": "Striped", "kind": "field", "id": "field|Striped|0|0|byte|||hd2f33c74b431b991629cd3110070b2971b239e494028617bdf5c8495f08a3c04", "signature": "public byte Striped", "summary": "_Bool (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Sort", "kind": "field", "id": "field|Sort|0|0|nint|||h9d98eab2f080d85ca8cb2b51bbfbb1c26340f12564431ce3c0cb8b55484a96e2", "signature": "public nint Sort", "summary": "cui_table_sort * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTableSort", "displayName": "NativeTableSort", "kind": "struct", "summary": "cui_table_sort, 8 bytes.", "members": [{ "name": "Descending", "kind": "field", "id": "field|Descending|0|0|byte|||hc0e229b02b6c4e45e5dc7c717eab3964ae312584a09e30661ab7013cc72a4847", "signature": "public byte Descending", "summary": "_Bool (offset 4)" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTabsOpts", "displayName": "NativeTabsOpts", "kind": "struct", "summary": "cui_tabs_opts, 24 bytes.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|TabsVariant|||h49f8a6f3a6cada318bc7957941b921d2719766718e3e73680559679aab99b41d", "signature": "public TabsVariant Variant", "summary": "cui_tabs_variant (offset 4)" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|byte|||hd01f4e7d92479240099d4691e65654bcd8a680160c7cec92dbd21a81d9339563", "signature": "public byte FullWidth", "summary": "_Bool (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|nint|||h9dcb1e799c22cfc28d5f3330f8ad5d309473e6a32f68ce7efd7068c42c7988da", "signature": "public nint Icons", "summary": "const char *const * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTagOpts", "displayName": "NativeTagOpts", "kind": "struct", "summary": "cui_tag_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "MaxTags", "kind": "field", "id": "field|MaxTags|0|0|int|||h8b26d1afd151f6d00ddf61355c9b723d07f9b163c1b15507df383533264ce0ab", "signature": "public int MaxTags", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeTerminalBuffer", "displayName": "NativeTerminalBuffer", "kind": "struct", "summary": "cui_terminal_buffer, 88 bytes.", "members": [{ "name": "Seq", "kind": "field", "id": "field|Seq|0|0|\u003CSeq\u003Ee__FixedBuffer|||h02a1e395ead27eab72d98270ab74745b038d1b60847cbafbda748ff537865117", "signature": "public \u003CSeq\u003Ee__FixedBuffer Seq", "summary": "char[30] (offset 50)" }, { "name": "Cr", "kind": "field", "id": "field|Cr|0|0|byte|||hfecfa19379b02dcd5d0fca23cd0035e032e3d42c22c8fb56c2123a781e8a32e6", "signature": "public byte Cr", "summary": "_Bool (offset 80)" }, { "name": "Mode", "kind": "field", "id": "field|Mode|0|0|byte|||hc48af46ab8df3bf1e9fde7c99f8133936d52727786d62bae83f6331816627f29", "signature": "public byte Mode", "summary": "uint8_t (offset 48)" }, { "name": "SeqN", "kind": "field", "id": "field|SeqN|0|0|byte|||h15701c1af31fed967770e108bd7e205d13bf2ec84ca3f32178a0be3d7465f0df", "signature": "public byte SeqN", "summary": "uint8_t (offset 49)" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int (offset 32)" }, { "name": "First", "kind": "field", "id": "field|First|0|0|int|||hddb39d158b15c0e54cb1ea0a7e52a0d84393cbbb9cb6d04a44db44d9fd9a4c88", "signature": "public int First", "summary": "int (offset 28)" }, { "name": "LineCap", "kind": "field", "id": "field|LineCap|0|0|int|||h05488096a6a3cd48bc7e8274702b633d8af22f79f127b19f95b8cd3d47511049", "signature": "public int LineCap", "summary": "int (offset 24)" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|nint|||h7ccda7c4f0b08a1147624d853801d5dcd6e8072f045b1eb489cd55ee7a31e86f", "signature": "public nint Lines", "summary": "cui_terminal_line * (offset 16)" }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|nint|||h66aaa42b78279f1149dcb8a32f27fc2db74dc535e86360cd658d24fb0bf042d8", "signature": "public nint Text", "summary": "char * (offset 0)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|uint|||hba9d98d6514840604832423e241c2f96b82576eaa10ee04508cbd8ae2076b7b5", "signature": "public uint End", "summary": "uint32_t (offset 36)" }, { "name": "TextCap", "kind": "field", "id": "field|TextCap|0|0|uint|||hd920abfd46ff0525abf61849dfa336ab731063d31b2036e2377f1fe031b06d48", "signature": "public uint TextCap", "summary": "uint32_t (offset 8)" }, { "name": "Total", "kind": "field", "id": "field|Total|0|0|ulong|||hc70e2cd9e719427562e8e197773d80368e777c17f84a89cd743f7c844d1b1ab7", "signature": "public ulong Total", "summary": "uint64_t (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeTerminalLine", "displayName": "NativeTerminalLine", "kind": "struct", "summary": "cui_terminal_line, 12 bytes.", "members": [{ "name": "Cols", "kind": "field", "id": "field|Cols|0|0|uint|||h3ee540d859e0b6556994c55becf0e34c90eb9ba074bdeaae4d2da01c4ba7662d", "signature": "public uint Cols", "summary": "uint32_t (offset 8)" }, { "name": "Len", "kind": "field", "id": "field|Len|0|0|uint|||h9a7aa5477bab3013c524af61a8579b6327603d131ea638cadc7b4f4863a23b7e", "signature": "public uint Len", "summary": "uint32_t (offset 4)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|uint|||h05a920517fe4fac075579a468ffc003bcb5361b495613ee0c64c3c8b144de92f", "signature": "public uint Offset", "summary": "uint32_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTerminalOpts", "displayName": "NativeTerminalOpts", "kind": "struct", "summary": "cui_terminal_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoInput", "kind": "field", "id": "field|NoInput|0|0|byte|||h95f69fb3822a8173a446d69440f6e7912a4ded8239bd4bf966d16529880def39", "signature": "public byte NoInput", "summary": "_Bool (offset 32)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Prompt", "kind": "field", "id": "field|Prompt|0|0|nint|||hed4372b86955f80d940b10b8c8a058047917e4b7553247c952de7a2087a44a13", "signature": "public nint Prompt", "summary": "const char * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeTerminalResult", "displayName": "NativeTerminalResult", "kind": "struct", "summary": "cui_terminal_result, 16 bytes.", "members": [{ "name": "Interrupt", "kind": "field", "id": "field|Interrupt|0|0|byte|||hc8270aa549978b3adc650c69c359fa4006cad455195fcee3fd59ce68a0e47a67", "signature": "public byte Interrupt", "summary": "_Bool (offset 8)" }, { "name": "Command", "kind": "field", "id": "field|Command|0|0|nint|||ha64c5c753285e258582983c0ee7898ab2061a9a524e66bf4988757944e980853", "signature": "public nint Command", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTestExplorerOpts", "displayName": "NativeTestExplorerOpts", "kind": "struct", "summary": "cui_test_explorer_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTestExplorerResult", "displayName": "NativeTestExplorerResult", "kind": "struct", "summary": "cui_test_explorer_result, 32 bytes.", "members": [{ "name": "RunAll", "kind": "field", "id": "field|RunAll|0|0|byte|||h1611193803050140e3bbd61c86a0318dc912152eea54720b3c1ad3563bf297d9", "signature": "public byte RunAll", "summary": "_Bool (offset 12)" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Failed", "kind": "field", "id": "field|Failed|0|0|int|||h954e3e1cff0f1c1bb6525eb637eb532fe3800ffae0e88a17e8937e71770eb878", "signature": "public int Failed", "summary": "int (offset 20)" }, { "name": "Passed", "kind": "field", "id": "field|Passed|0|0|int|||ha54154687a68e2d3d923fd44deff6ffd7b2827cd859fd5c85fb74ca762065819", "signature": "public int Passed", "summary": "int (offset 16)" }, { "name": "Run", "kind": "field", "id": "field|Run|0|0|int|||h0ec7bdebf60675d120297a95cf2c08e9e717550db21f2ba45d23e163df40ba24", "signature": "public int Run", "summary": "int (offset 8)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 0)" }, { "name": "Skipped", "kind": "field", "id": "field|Skipped|0|0|int|||h9233e29a38823c989e2d1ba105e13aa0edb8fb494155446c9779f82e28e85383", "signature": "public int Skipped", "summary": "int (offset 24)" }, { "name": "Total", "kind": "field", "id": "field|Total|0|0|int|||h2541c69f06cf8d174824c50787be284aaf2e18bcc6734e72b01d11fde3e30f21", "signature": "public int Total", "summary": "int (offset 28)" }] }, + { "name": "CuiSharp.Interop.NativeTestItem", "displayName": "NativeTestItem", "kind": "struct", "summary": "cui_test_item, 32 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|JobStatus|||h8dbfd9370caabecd55d2b859321b59d6a4ee052ab7364783aff88cbd0eff2901", "signature": "public JobStatus Status", "summary": "cui_job_status (offset 12)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 16)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 8)" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|nint|||hd26a8e53b67f4e6b6a7f4704f738a3b1510f63da8dbf582c674431012ef50a25", "signature": "public nint Message", "summary": "const char * (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTextFxOpts", "displayName": "NativeTextFxOpts", "kind": "struct", "summary": "cui_text_fx_opts, 40 bytes.", "members": [{ "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font (offset 4)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Caret", "kind": "field", "id": "field|Caret|0|0|byte|||hd387dd79d8841fcd3b3ee40f2259b05d4b0ecbe07ca4137836f35be05152f04b", "signature": "public byte Caret", "summary": "_Bool (offset 36)" }, { "name": "Nowrap", "kind": "field", "id": "field|Nowrap|0|0|byte|||h86f520c340aaa6d1290cb6df2e2cd2fd8de7f931a2f2f2195b7c2db9443ccaf9", "signature": "public byte Nowrap", "summary": "_Bool (offset 24)" }, { "name": "Delay", "kind": "field", "id": "field|Delay|0|0|float|||h3a45177d911de60d3c1058d19f965797cda6f4da3e3656b82d0a5ea6832de388", "signature": "public float Delay", "summary": "float (offset 32)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "float (offset 28)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTextMark", "displayName": "NativeTextMark", "kind": "struct", "summary": "cui_text_mark, 12 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|int|||hc8bb6c96b99475fa7944168851a42353a5485b00cf73bf71a02c209b6e3d49c6", "signature": "public int Color", "summary": "int (offset 8)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int (offset 4)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTextMetrics", "displayName": "NativeTextMetrics", "kind": "struct", "summary": "cui_text_metrics, 20 bytes.", "members": [{ "name": "Ascent", "kind": "field", "id": "field|Ascent|0|0|float|||hceaa6e754854ebf6cd06c035b6404714ea8d67767cf0ab9c758a9948f51cf547", "signature": "public float Ascent", "summary": "float (offset 8)" }, { "name": "Descent", "kind": "field", "id": "field|Descent|0|0|float|||h74b83e0d8cde368bd5e25c3db44bf755a3cf844a6e2b22fcf370f7f81fa604b2", "signature": "public float Descent", "summary": "float (offset 12)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 4)" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "float (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTextOpts", "displayName": "NativeTextOpts", "kind": "struct", "summary": "cui_text_opts, 40 bytes.", "members": [{ "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "cui_direction (offset 36)" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font (offset 4)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align (offset 16)" }, { "name": "Nowrap", "kind": "field", "id": "field|Nowrap|0|0|byte|||h86f520c340aaa6d1290cb6df2e2cd2fd8de7f931a2f2f2195b7c2db9443ccaf9", "signature": "public byte Nowrap", "summary": "_Bool (offset 20)" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|byte|||hcd5e0a50ec91d1ba0d70d738d5b04dcc2d41920132c01a0fbe281f53b4d2ca83", "signature": "public byte Selectable", "summary": "_Bool (offset 22)" }, { "name": "Tabular", "kind": "field", "id": "field|Tabular|0|0|byte|||hc38190bf64035146a53fd36e747867fa112cff9858bf4707ff820623cb8fa719", "signature": "public byte Tabular", "summary": "_Bool (offset 21)" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "float (offset 32)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTheme", "displayName": "NativeTheme", "kind": "struct", "summary": "cui_theme, 328 bytes.", "members": [{ "name": "Heading", "kind": "field", "id": "field|Heading|0|0|\u003CHeading\u003Ee__FixedBuffer|||hc1aa3c8295d295d5a09ba2eba90afd1ab17cb2a626efb40712c7cbe6b6eec8b9", "signature": "public \u003CHeading\u003Ee__FixedBuffer Heading", "summary": "float[4] (offset 208)" }, { "name": "ToneAmber", "kind": "field", "id": "field|ToneAmber|0|0|NativeColor|||h26e5a8b5b478475c6fc2388a4f9bf499bc9dd0d701c6497982b6f464d8de5af5", "signature": "public NativeColor ToneAmber", "summary": "cui_color (offset 152)" }, { "name": "ToneGreen", "kind": "field", "id": "field|ToneGreen|0|0|NativeColor|||h5c2727e9e42027084e9da574306e59b203d78d1328cee62c187aae9015db8d5b", "signature": "public NativeColor ToneGreen", "summary": "cui_color (offset 148)" }, { "name": "ToneOrchid", "kind": "field", "id": "field|ToneOrchid|0|0|NativeColor|||h31e61310bb507f37b6d9ba2694564874e475f7894a63f4b17578952a96158895", "signature": "public NativeColor ToneOrchid", "summary": "cui_color (offset 160)" }, { "name": "ToneRose", "kind": "field", "id": "field|ToneRose|0|0|NativeColor|||h1ee30bf2a887a0c13df57e96ce36f8765222ff5ba2933c41734b6de2c8225171", "signature": "public NativeColor ToneRose", "summary": "cui_color (offset 156)" }, { "name": "ToneSky", "kind": "field", "id": "field|ToneSky|0|0|NativeColor|||h527f138f593b92a6a412f88067dbd0301816829fcf9a841efe5a349088d82893", "signature": "public NativeColor ToneSky", "summary": "cui_color (offset 140)" }, { "name": "ToneTeal", "kind": "field", "id": "field|ToneTeal|0|0|NativeColor|||hd3dcab39cf549b195e69ed1f6a00fefef45e2e45a1b05bba3440cafcd2206cae", "signature": "public NativeColor ToneTeal", "summary": "cui_color (offset 144)" }, { "name": "ToneViolet", "kind": "field", "id": "field|ToneViolet|0|0|NativeColor|||h88e53f74330c6d0e5bcb2bc02bb7620d34e6df78915dd0ed84898f55e24b4247", "signature": "public NativeColor ToneViolet", "summary": "cui_color (offset 164)" }, { "name": "Colors", "kind": "field", "id": "field|Colors|0|0|NativeThemeColorsArray|||h596616b654e16ac63403ee81f2b9b3cc1ddec56a96213301be1654364dfe84eb", "signature": "public NativeThemeColorsArray Colors", "summary": "cui_color[35] (offset 0)" }, { "name": "ShadowFloating", "kind": "field", "id": "field|ShadowFloating|0|0|NativeThemeShadowFloatingArray|||hee23e16aeda0a1c5efea6047285bbdb62bbab91e60e6fd50d8dfe8440988631d", "signature": "public NativeThemeShadowFloatingArray ShadowFloating", "summary": "cui_shadow[2] (offset 288)" }, { "name": "ShadowRaised", "kind": "field", "id": "field|ShadowRaised|0|0|NativeThemeShadowRaisedArray|||h2f304b69e813c5228cf6f9499c1271d7cfff5e54ce1686836985f4a4c20f72ce", "signature": "public NativeThemeShadowRaisedArray ShadowRaised", "summary": "cui_shadow[2] (offset 256)" }, { "name": "ShadowResting", "kind": "field", "id": "field|ShadowResting|0|0|NativeThemeShadowRestingArray|||h119fc7906a813495b8a56c8296a0e9d0c2475e95f20e6081c370238b483d27eb", "signature": "public NativeThemeShadowRestingArray ShadowResting", "summary": "cui_shadow[2] (offset 224)" }, { "name": "ControlLg", "kind": "field", "id": "field|ControlLg|0|0|float|||h063c4c84d303be877d2dc59acff00d794a56c64d71fb277da5ea7847f60c0d20", "signature": "public float ControlLg", "summary": "float (offset 188)" }, { "name": "ControlMd", "kind": "field", "id": "field|ControlMd|0|0|float|||h185bcf2185c1d5a89b29f546fa4b892376c4defe2e2929b2404002c8d34ddac0", "signature": "public float ControlMd", "summary": "float (offset 184)" }, { "name": "ControlSm", "kind": "field", "id": "field|ControlSm|0|0|float|||h2944ee52b0dff3adca048d66bd9e96b9966dc87bf82489f6af02f7c309cb77e0", "signature": "public float ControlSm", "summary": "float (offset 180)" }, { "name": "FontScale", "kind": "field", "id": "field|FontScale|0|0|float|||h1cfef4b8d8ca19a7a627e9b4fa9f8412cdc17305d59d1b5f3de2ff7a70c6e8bf", "signature": "public float FontScale", "summary": "float (offset 324)" }, { "name": "Motion", "kind": "field", "id": "field|Motion|0|0|float|||he110b6cc57b6b0d887b2ba7beedda3ecf2ccb1387f7639f14704f6780d9aa2b4", "signature": "public float Motion", "summary": "float (offset 320)" }, { "name": "RadiusControl", "kind": "field", "id": "field|RadiusControl|0|0|float|||h3cb73f74dd5c419f3982ab48fd62451ba3660678f9b0c40d7055fc496557cd4e", "signature": "public float RadiusControl", "summary": "float (offset 168)" }, { "name": "RadiusPanel", "kind": "field", "id": "field|RadiusPanel|0|0|float|||ha588a7ad13810692650b5b183cd00ceb06cdd6b1d92bf9d99719c8afa62d24cd", "signature": "public float RadiusPanel", "summary": "float (offset 172)" }, { "name": "RadiusSurface", "kind": "field", "id": "field|RadiusSurface|0|0|float|||ha683987e6e2f2ad5a01991e686f87cd575bd8e438c1ce5d6c823ef5c7e6b2707", "signature": "public float RadiusSurface", "summary": "float (offset 176)" }, { "name": "TextBody", "kind": "field", "id": "field|TextBody|0|0|float|||h3a5752730310d87d7a1eb02deb114343c8e8feb5633ca1eaddbe0b0848d94187", "signature": "public float TextBody", "summary": "float (offset 200)" }, { "name": "TextLg", "kind": "field", "id": "field|TextLg|0|0|float|||hcced80a2aa4a219dfe8e875c621d06b9b607b2d9451dade84718b345bd7f88d9", "signature": "public float TextLg", "summary": "float (offset 204)" }, { "name": "TextSm", "kind": "field", "id": "field|TextSm|0|0|float|||h38bac4916e48022cb117ce477857eda54af357c4ab6f7112ac916e1294ba115c", "signature": "public float TextSm", "summary": "float (offset 196)" }, { "name": "TextXs", "kind": "field", "id": "field|TextXs|0|0|float|||h37af59a2f1a25bc0a0cd3fa7a1f0c2f9c1bebb7cace3189479a0891553cce607", "signature": "public float TextXs", "summary": "float (offset 192)" }] }, + { "name": "CuiSharp.Interop.NativeThemeColorsArray", "displayName": "NativeThemeColorsArray", "kind": "struct", "summary": "[35] array of NativeColor, for cui_theme.", "members": [] }, + { "name": "CuiSharp.Interop.NativeThemeShadowFloatingArray", "displayName": "NativeThemeShadowFloatingArray", "kind": "struct", "summary": "[2] array of NativeShadow, for cui_theme.", "members": [] }, + { "name": "CuiSharp.Interop.NativeThemeShadowRaisedArray", "displayName": "NativeThemeShadowRaisedArray", "kind": "struct", "summary": "[2] array of NativeShadow, for cui_theme.", "members": [] }, + { "name": "CuiSharp.Interop.NativeThemeShadowRestingArray", "displayName": "NativeThemeShadowRestingArray", "kind": "struct", "summary": "[2] array of NativeShadow, for cui_theme.", "members": [] }, + { "name": "CuiSharp.Interop.NativeTickerItem", "displayName": "NativeTickerItem", "kind": "struct", "summary": "cui_ticker_item, 24 bytes.", "members": [{ "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|byte|||h743d2a9c1093c218bb42059b076daaa618f28986ebe939486af96526f07e502f", "signature": "public byte LowerIsBetter", "summary": "_Bool (offset 20)" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "float (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 0)" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|nint|||h5ed081b84750132474219ed0a79f5ad5bf19671e2c3fa7347a6b03b8c86f7f29", "signature": "public nint Value", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTickerOpts", "displayName": "NativeTickerOpts", "kind": "struct", "summary": "cui_ticker_opts, 12 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 8)" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTileOpts", "displayName": "NativeTileOpts", "kind": "struct", "summary": "cui_tile_opts, 40 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "Wide", "kind": "field", "id": "field|Wide|0|0|byte|||h6b6ec67db59659eeb45b5902937769bfb2f1c7ff8df9cbc8472e2d601249e034", "signature": "public byte Wide", "summary": "_Bool (offset 36)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTimeHistogramOpts", "displayName": "NativeTimeHistogramOpts", "kind": "struct", "summary": "cui_time_histogram_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Utc", "kind": "field", "id": "field|Utc|0|0|byte|||h16905feb07f6e9387c628a2c95d698bf3338a3f880337b7165b54b12f5c1bcd1", "signature": "public byte Utc", "summary": "_Bool (offset 16)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTimeHistogramResult", "displayName": "NativeTimeHistogramResult", "kind": "struct", "summary": "cui_time_histogram_result, 8 bytes.", "members": [{ "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeTimeOpts", "displayName": "NativeTimeOpts", "kind": "struct", "summary": "cui_time_opts, 32 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 24)" }, { "name": "TwelveHour", "kind": "field", "id": "field|TwelveHour|0|0|byte|||hb12276cdedb95e0daeace4c297b62ba2251de07a6bbf2d43b234d2733b9fa2b9", "signature": "public byte TwelveHour", "summary": "_Bool (offset 16)" }, { "name": "MinuteStep", "kind": "field", "id": "field|MinuteStep|0|0|int|||h8b617dbbc51baef740290e5dbf1841a2842003c33375c72d7fc0340267dda89a", "signature": "public int MinuteStep", "summary": "int (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineClip", "displayName": "NativeTimelineClip", "kind": "struct", "summary": "cui_timeline_clip, 32 bytes.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 24)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float (offset 4)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|float|||h8fdd36db8b7ff565d8db10cd461ebaca385f65bdd53ea133b281c5efcd61735d", "signature": "public float Offset", "summary": "float (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float (offset 0)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineEditorOpts", "displayName": "NativeTimelineEditorOpts", "kind": "struct", "summary": "cui_timeline_editor_opts, 88 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 64)" }, { "name": "FreeDrag", "kind": "field", "id": "field|FreeDrag|0|0|byte|||hc7dd09b78a6cbb20c050fe946d7b3beb75c080da21325baf9fa0a9f801e39e21", "signature": "public byte FreeDrag", "summary": "_Bool (offset 85)" }, { "name": "Toggles", "kind": "field", "id": "field|Toggles|0|0|byte|||hf0f98277289d6b02041a02fcaf75a52419f27a08e7e24cd18335330bdd8f290b", "signature": "public byte Toggles", "summary": "_Bool (offset 84)" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float (offset 8)" }, { "name": "Fps", "kind": "field", "id": "field|Fps|0|0|float|||hd2f14e8d0c94590cc91095a6112128e328e291713114ddde746a2f651504d635", "signature": "public float Fps", "summary": "float (offset 12)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 72)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 76)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float (offset 4)" }, { "name": "TrackWidth", "kind": "field", "id": "field|TrackWidth|0|0|float|||h5be028c49353fefae2fc30686c1ecbee4d2683da191546d7ee2049c3050c7282", "signature": "public float TrackWidth", "summary": "float (offset 80)" }, { "name": "Ruler", "kind": "field", "id": "field|Ruler|0|0|int|||hac6a7a1e03a54bf8ec255254799822b67c702cb2dff94260c7dcf36e7f9ba893", "signature": "public int Ruler", "summary": "int (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "CurrentKey", "kind": "field", "id": "field|CurrentKey|0|0|nint|||h6825f70f5becf32f716f627085671d159a012a90e73ca51144da884f3c44a881", "signature": "public nint CurrentKey", "summary": "int * (offset 56)" }, { "name": "CurrentTrack", "kind": "field", "id": "field|CurrentTrack|0|0|nint|||h34f85e67362ffc7e9450b26865e03ed1b8edcae0430d0634635b2340dfe9c447", "signature": "public nint CurrentTrack", "summary": "int * (offset 48)" }, { "name": "In", "kind": "field", "id": "field|In|0|0|nint|||h63687a4cc9c3aa327d17f7a3675e77e3cdff1e19aabfd8647bad98e3874e5f5b", "signature": "public nint In", "summary": "float * (offset 32)" }, { "name": "Out", "kind": "field", "id": "field|Out|0|0|nint|||h9d44426b87288ad62ca22d48aa283cac180958333d9be57a7840c5b439aa2a0e", "signature": "public nint Out", "summary": "float * (offset 40)" }, { "name": "View", "kind": "field", "id": "field|View|0|0|nint|||h636181a3209b13c3ff8067649c017bc847720828430e089e938d902bc2921de1", "signature": "public nint View", "summary": "cui_timeline_view * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineEditorResult", "displayName": "NativeTimelineEditorResult", "kind": "struct", "summary": "cui_timeline_editor_result, 52 bytes.", "members": [{ "name": "Changed", "kind": "field", "id": "field|Changed|0|0|byte|||had978eec0af03eb4dacdb360976a7e241488e1b52d178b9e3926112ece7b5ff4", "signature": "public byte Changed", "summary": "_Bool (offset 0)" }, { "name": "KeysMoved", "kind": "field", "id": "field|KeysMoved|0|0|byte|||h6790d2fb2a091022b343e67090a999900e5e6b42478a49695e3bcdea413567d0", "signature": "public byte KeysMoved", "summary": "_Bool (offset 6)" }, { "name": "PlayToggled", "kind": "field", "id": "field|PlayToggled|0|0|byte|||hc9a479195d3be8447120cdffffbdec52e6004716f22bce46c662a3a8efd34633", "signature": "public byte PlayToggled", "summary": "_Bool (offset 3)" }, { "name": "Scrubbing", "kind": "field", "id": "field|Scrubbing|0|0|byte|||ha7b692303a3c39fcb3a5f95f5f7bf595ff165e2874b21523be19c3d54111c64e", "signature": "public byte Scrubbing", "summary": "_Bool (offset 2)" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 4)" }, { "name": "TimeChanged", "kind": "field", "id": "field|TimeChanged|0|0|byte|||h28768da863d81b152772245faf82d6aefadf7dc8dd24a277348f410850d04f75", "signature": "public byte TimeChanged", "summary": "_Bool (offset 1)" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|byte|||h968fb22c9e133162ed2bb1e1b83f1e701e91d01be17827f59793f1a36c1b1a8b", "signature": "public byte ViewChanged", "summary": "_Bool (offset 5)" }, { "name": "AddedKey", "kind": "field", "id": "field|AddedKey|0|0|int|||ha8e58faba1c728fe25d31ea3e66082285970f2ec12ab48f52376a20679473da9", "signature": "public int AddedKey", "summary": "int (offset 12)" }, { "name": "AddedTrack", "kind": "field", "id": "field|AddedTrack|0|0|int|||hd09c9d0b3aaf7c0a2f00f840aad0417f84f4096dcfd34c9bbb7837e2452ee4da", "signature": "public int AddedTrack", "summary": "int (offset 8)" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|int|||ha920295d84599cdc0940acb2d6a074abbe96d37d1c4b07783b3d79dc3b94a907", "signature": "public int Clip", "summary": "int (offset 28)" }, { "name": "ClipTrack", "kind": "field", "id": "field|ClipTrack|0|0|int|||hd040e6fd1c8a24948aa8714159d0f6860d9dfa74526817d24bf44b0750aeccf0", "signature": "public int ClipTrack", "summary": "int (offset 24)" }, { "name": "CurrentKey", "kind": "field", "id": "field|CurrentKey|0|0|int|||h1f9f9e276d189f141cc95626370c85293587bbc81d6ed41c542bf89d7b66a89e", "signature": "public int CurrentKey", "summary": "int (offset 40)" }, { "name": "CurrentTrack", "kind": "field", "id": "field|CurrentTrack|0|0|int|||h1cd8beaafe2750d4e51c20d8c9bd32973b6b59d441d469e210cd68066b762a5f", "signature": "public int CurrentTrack", "summary": "int (offset 36)" }, { "name": "HoveredKey", "kind": "field", "id": "field|HoveredKey|0|0|int|||h5f9a0b03a58b19df9fe682e41ca82692d9a7d27ef2cf9eb436df6a03faed7ec7", "signature": "public int HoveredKey", "summary": "int (offset 48)" }, { "name": "HoveredTrack", "kind": "field", "id": "field|HoveredTrack|0|0|int|||hef9e0c1f9c6600daf6fa5e659af87654318417480a903f316dcb65f0c22b9976", "signature": "public int HoveredTrack", "summary": "int (offset 44)" }, { "name": "RemovedClips", "kind": "field", "id": "field|RemovedClips|0|0|int|||hd2490000eb723d503a8568158ee4c011ed9b150aa2b815079cc13d7aa054a4b9", "signature": "public int RemovedClips", "summary": "int (offset 20)" }, { "name": "RemovedKeys", "kind": "field", "id": "field|RemovedKeys|0|0|int|||h4df23841d98bd9d4b2bfc95ae5403d1478d1ffd2f7398843b1f8ee32c749837f", "signature": "public int RemovedKeys", "summary": "int (offset 16)" }, { "name": "Toggled", "kind": "field", "id": "field|Toggled|0|0|int|||h82e392de52553e129e49d9cce4050ccbbcd5dc4b65665d552caefdfb90d73691", "signature": "public int Toggled", "summary": "int (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineOpts", "displayName": "NativeTimelineOpts", "kind": "struct", "summary": "cui_timeline_opts, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 32)" }, { "name": "Last", "kind": "field", "id": "field|Last|0|0|byte|||h45cd136623493afd47e26b9dfec2573cbbae0ac3635ab5eb63af8e652f649bdb", "signature": "public byte Last", "summary": "_Bool (offset 36)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|nint|||h6d58676de43396dc84cf8d2e099bd5fe6b43afec28246479d0f40b03dafda113", "signature": "public nint Time", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineTrack", "displayName": "NativeTimelineTrack", "kind": "struct", "summary": "cui_timeline_track, 64 bytes.", "members": [{ "name": "Collapsed", "kind": "field", "id": "field|Collapsed|0|0|byte|||h8afd2f4817805b2f1be280ad3f4ed4cc80b44cedc7436ac57dfb8c2e34fb5a43", "signature": "public byte Collapsed", "summary": "_Bool (offset 20)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|byte|||h01a054d4e71c0ca4038d809603c57f503b576b6514a1eb8949cbeadac80b05c5", "signature": "public byte Color", "summary": "uint8_t (offset 23)" }, { "name": "Locked", "kind": "field", "id": "field|Locked|0|0|byte|||hffde318d2492e35c58e6e0216937c3868d155bd845f2081421fe7744119e21c4", "signature": "public byte Locked", "summary": "_Bool (offset 22)" }, { "name": "Muted", "kind": "field", "id": "field|Muted|0|0|byte|||hd394c2e19613033efcc4a61fa3171f5cdac77c142705edaa16ede4fb74398475", "signature": "public byte Muted", "summary": "_Bool (offset 21)" }, { "name": "ClipCount", "kind": "field", "id": "field|ClipCount|0|0|int|||ha7ee9369a3530e47aa727f83e1c125be4f77d46fdb743e7a7d47738108288c1b", "signature": "public int ClipCount", "summary": "int (offset 56)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 16)" }, { "name": "KeyCapacity", "kind": "field", "id": "field|KeyCapacity|0|0|int|||h67dd11ab7724489e3088db97899b69f9f952ebc4f4fe88ae1741748064306cde", "signature": "public int KeyCapacity", "summary": "int (offset 36)" }, { "name": "KeyCount", "kind": "field", "id": "field|KeyCount|0|0|int|||h66562d1c4a2a8786d9f290dd4f5645da581cfefb8d8d798050739fd49b10c12a", "signature": "public int KeyCount", "summary": "int (offset 32)" }, { "name": "Clips", "kind": "field", "id": "field|Clips|0|0|nint|||hb21c6a4911a55af817e02a281105ee14728b7ce970a7089958e55cd8f185cdb6", "signature": "public nint Clips", "summary": "cui_timeline_clip * (offset 48)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "KeySelected", "kind": "field", "id": "field|KeySelected|0|0|nint|||h71474ad2a50c96e9b489ed626221cb501815125740b53346b919f387980b359c", "signature": "public nint KeySelected", "summary": "_Bool * (offset 40)" }, { "name": "Keys", "kind": "field", "id": "field|Keys|0|0|nint|||hf7fa769c59cb01084518ef9b312f3ea776cc052b9025fc9736601642500ad57c", "signature": "public nint Keys", "summary": "cui_curve_key * (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTimelineView", "displayName": "NativeTimelineView", "kind": "struct", "summary": "cui_timeline_view, 12 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float (offset 4)" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "float (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeToastOpts", "displayName": "NativeToastOpts", "kind": "struct", "summary": "cui_toast_opts, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "ShowTimer", "kind": "field", "id": "field|ShowTimer|0|0|byte|||hea0c885cd2397aff3d20c08277d394a592991fb5e78bd8bac291b49acf398300", "signature": "public byte ShowTimer", "summary": "_Bool (offset 32)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTocItem", "displayName": "NativeTocItem", "kind": "struct", "summary": "cui_toc_item, 24 bytes.", "members": [{ "name": "Level", "kind": "field", "id": "field|Level|0|0|int|||h17c0e20faecc69c8472481644557574bb0d4d89b76f0c643524eb31d6b244fbe", "signature": "public int Level", "summary": "int (offset 16)" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|nint|||h2a3efb78b027ddab56b002c1c17c0175140a3ae80ce9ca969857ccc0bd8e0f33", "signature": "public nint Anchor", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeToggleGroupOpts", "displayName": "NativeToggleGroupOpts", "kind": "struct", "summary": "cui_toggle_group_opts, 24 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 20)" }, { "name": "Exclusive", "kind": "field", "id": "field|Exclusive|0|0|byte|||h2915cc6aad044566563236e81146e496a55145bf88d2f477213b22179ae9ffec", "signature": "public byte Exclusive", "summary": "_Bool (offset 16)" }, { "name": "IconOnly", "kind": "field", "id": "field|IconOnly|0|0|byte|||he1deea30e2ceaedc2963bbb3123c80ddfc8b08dd35ad10f892a4ecb904044965", "signature": "public byte IconOnly", "summary": "_Bool (offset 17)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|nint|||h9dcb1e799c22cfc28d5f3330f8ad5d309473e6a32f68ce7efd7068c42c7988da", "signature": "public nint Icons", "summary": "const char *const * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeToolCallOpts", "displayName": "NativeToolCallOpts", "kind": "struct", "summary": "cui_tool_call_opts, 48 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status (offset 4)" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Input", "kind": "field", "id": "field|Input|0|0|nint|||haf51efcec7f9e2d232ed76d286927e5679aff8045761f7bec8f172a2b73bcbcd", "signature": "public nint Input", "summary": "const char * (offset 24)" }, { "name": "Output", "kind": "field", "id": "field|Output|0|0|nint|||hda5cbea8e80939176aa3944171f9d310bc816f98e9fb144aecb8b62891be2fb4", "signature": "public nint Output", "summary": "const char * (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeToolOpts", "displayName": "NativeToolOpts", "kind": "struct", "summary": "cui_tool_opts, 48 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|nint|||hc6bbf869e5f430ce1cb0bb80bcc43a44ef490242700d9eccaf018d9378a8f2dd", "signature": "public nint Shortcut", "summary": "const char * (offset 24)" }, { "name": "Toggle", "kind": "field", "id": "field|Toggle|0|0|nint|||h4b7bb178af01b592c1b2c12adcc523ef1a13768e95d660b55d67d5ac73689099", "signature": "public nint Toggle", "summary": "_Bool * (offset 32)" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|nint|||hccbc32a161449afe62353b5d908ca3da9aecdd74fe8acbce624e4004ec4575e7", "signature": "public nint Tooltip", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeToolbarOpts", "displayName": "NativeToolbarOpts", "kind": "struct", "summary": "cui_toolbar_opts, 8 bytes.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|byte|||h52a658d9e90fb592c2d5b234fe36d916b01f85259ebf498345a83768a1f7a51c", "signature": "public byte NoBorder", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTourOpts", "displayName": "NativeTourOpts", "kind": "struct", "summary": "cui_tour_opts, 48 bytes.", "members": [{ "name": "BlockTarget", "kind": "field", "id": "field|BlockTarget|0|0|byte|||hab5555c1e6369ffbcf45e5591291d9c00318af64dd9dd1e9d22ae563df1d5e92", "signature": "public byte BlockTarget", "summary": "_Bool (offset 12)" }, { "name": "Padding", "kind": "field", "id": "field|Padding|0|0|float|||h5921be8adbefbfcb4404da7db85d1cb3731c758d863577be4fbce92451350649", "signature": "public float Padding", "summary": "float (offset 8)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "BackLabel", "kind": "field", "id": "field|BackLabel|0|0|nint|||h334d75363f299a552d16ed542c91535013f66b10bb86e3aa11b0c34ec28078cd", "signature": "public nint BackLabel", "summary": "const char * (offset 24)" }, { "name": "CountFormat", "kind": "field", "id": "field|CountFormat|0|0|nint|||hd7aaaf99dab62f1ddd4a5c25df329054e14f88d7862c66a5428ef69ec63ac1f0", "signature": "public nint CountFormat", "summary": "const char * (offset 40)" }, { "name": "DoneLabel", "kind": "field", "id": "field|DoneLabel|0|0|nint|||h2f5c8b5d818d8932f7bb90c1edd1959a1b40031ee4f3050947dd73049e9067d4", "signature": "public nint DoneLabel", "summary": "const char * (offset 32)" }, { "name": "NextLabel", "kind": "field", "id": "field|NextLabel|0|0|nint|||h8fab053b73f09103926ee9d5b482ba66b63d6b393162be89c62fe10854cf1799", "signature": "public nint NextLabel", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeTourStep", "displayName": "NativeTourStep", "kind": "struct", "summary": "cui_tour_step, 32 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 24)" }, { "name": "Body", "kind": "field", "id": "field|Body|0|0|nint|||h3d66a8fe22c67f795d8c7c5cebc6e6f74da4fff0d9ce5bb6d47f95c5abbbfa9d", "signature": "public nint Body", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }, { "name": "Target", "kind": "field", "id": "field|Target|0|0|uint|||he9ee9dd345fe17fa7d374fd3bbf2d77faa51c7aa3b0c74aba7353f9abfa39524", "signature": "public uint Target", "summary": "cui_id (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTraceMarker", "displayName": "NativeTraceMarker", "kind": "struct", "summary": "cui_trace_marker, 24 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|double|||hf6eb8bfefd7957f87b5ed2738bc9a721b9ff45c732f53108d799ad2931a6b170", "signature": "public double Time", "summary": "double (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTraceOpts", "displayName": "NativeTraceOpts", "kind": "struct", "summary": "cui_trace_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 16)" }, { "name": "MarkerCount", "kind": "field", "id": "field|MarkerCount|0|0|int|||hd02925399c1946c54760fa87c0cf0fc40e035f18f37eefaa1c62d9287953f517", "signature": "public int MarkerCount", "summary": "int (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Markers", "kind": "field", "id": "field|Markers|0|0|nint|||h134f9ef22b305a856fcb0cc7d38a8d2e618b7fec5dc84dff9cb2d96d9317dffe", "signature": "public nint Markers", "summary": "const cui_trace_marker * (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeTraceResult", "displayName": "NativeTraceResult", "kind": "struct", "summary": "cui_trace_result, 8 bytes.", "members": [{ "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 0)" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|byte|||h968fb22c9e133162ed2bb1e1b83f1e701e91d01be17827f59793f1a36c1b1a8b", "signature": "public byte ViewChanged", "summary": "_Bool (offset 1)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeTraceSpan", "displayName": "NativeTraceSpan", "kind": "struct", "summary": "cui_trace_span, 40 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "double (offset 16)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double (offset 8)" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int (offset 28)" }, { "name": "Track", "kind": "field", "id": "field|Track|0|0|int|||h9c37b28844517649f18e47061d3bb9ab42f294995e73a6edbf8deb27d891797c", "signature": "public int Track", "summary": "int (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "ColorKey", "kind": "field", "id": "field|ColorKey|0|0|uint|||hbbc8b9d5c464ef1cd597c6f62696a77755f8847c84433421ceea1723416ab5bd", "signature": "public uint ColorKey", "summary": "uint32_t (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeTraceTrack", "displayName": "NativeTraceTrack", "kind": "struct", "summary": "cui_trace_track, 16 bytes.", "members": [{ "name": "Collapsed", "kind": "field", "id": "field|Collapsed|0|0|byte|||h8afd2f4817805b2f1be280ad3f4ed4cc80b44cedc7436ac57dfb8c2e34fb5a43", "signature": "public byte Collapsed", "summary": "_Bool (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeTraceView", "displayName": "NativeTraceView", "kind": "struct", "summary": "cui_trace_view, 40 bytes.", "members": [{ "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "double (offset 8)" }, { "name": "MarkEnd", "kind": "field", "id": "field|MarkEnd|0|0|double|||h699816d1c0538e008f463ac8f850d0a13da89e363166dd067ec66639d88d61fa", "signature": "public double MarkEnd", "summary": "double (offset 32)" }, { "name": "MarkStart", "kind": "field", "id": "field|MarkStart|0|0|double|||h35e62cd0862ac884bb6c77fa8438ba07d7a031aa2c53827132af5f19a5e16bf4", "signature": "public double MarkStart", "summary": "double (offset 24)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double (offset 0)" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "float (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeTreeNode", "displayName": "NativeTreeNode", "kind": "struct", "summary": "cui_tree_node, 16 bytes.", "members": [{ "name": "FirstChild", "kind": "field", "id": "field|FirstChild|0|0|int|||hf352db55e0335cdbaba7921f10fcce1a433441b9e9200bbbffc55ea64941e15f", "signature": "public int FirstChild", "summary": "int (offset 4)" }, { "name": "NextSibling", "kind": "field", "id": "field|NextSibling|0|0|int|||h91edbf9b95ba6415a86ef01020d77d524dc26276aeb561f29306da80f336c887", "signature": "public int NextSibling", "summary": "int (offset 8)" }, { "name": "Parent", "kind": "field", "id": "field|Parent|0|0|int|||h337a9d403da4862c29838d25d5876fa8d3e3fbbc6d85493b646b4fd3986ce253", "signature": "public int Parent", "summary": "int (offset 0)" }, { "name": "Flags", "kind": "field", "id": "field|Flags|0|0|uint|||h8dd9ee481d32fb809cedb1907c271920532dbd423f399bfa4ccf2a6105fbe6ef", "signature": "public uint Flags", "summary": "uint32_t (offset 12)" }] }, + { "name": "CuiSharp.Interop.NativeTreeOpts", "displayName": "NativeTreeOpts", "kind": "struct", "summary": "cui_tree_opts, 24 bytes.", "members": [{ "name": "Leaf", "kind": "field", "id": "field|Leaf|0|0|byte|||hcb8d463396d0986b4a7158c93478ebc076bfd6f8b852a099a763568e77e03ca6", "signature": "public byte Leaf", "summary": "_Bool (offset 16)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|byte|||h48f54c1c7f1477a898313a8a1128d8456b17a09db15f6c9d1b8c0f9629b7fdf5", "signature": "public byte Selected", "summary": "_Bool (offset 17)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeTreeTableEvents", "displayName": "NativeTreeTableEvents", "kind": "struct", "summary": "cui_tree_table_events, 32 bytes.", "members": [{ "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 28)" }, { "name": "SortChanged", "kind": "field", "id": "field|SortChanged|0|0|byte|||h27277dd4c34138a956e47784bfc542bea66d3feda690362938f1af7f08e3e23d", "signature": "public byte SortChanged", "summary": "_Bool (offset 29)" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 0)" }, { "name": "Collapsed", "kind": "field", "id": "field|Collapsed|0|0|int|||h262c4d45e3d13bee43f8ac39f2ff56b5d048b3b25153520af18ddaf6f6e84eea", "signature": "public int Collapsed", "summary": "int (offset 8)" }, { "name": "Expanded", "kind": "field", "id": "field|Expanded|0|0|int|||hea34f62efe0e709a9f30da78e1cea3315e6ff85fecdd1f637945da4eca61368f", "signature": "public int Expanded", "summary": "int (offset 4)" }, { "name": "LoadCount", "kind": "field", "id": "field|LoadCount|0|0|int|||h58036213d1b087e84728b7abfa9dd2fa46f0ff222be747ca94c271a3e6858a09", "signature": "public int LoadCount", "summary": "int (offset 24)" }, { "name": "Load", "kind": "field", "id": "field|Load|0|0|nint|||hfc3730ca04a1398d0a3811a4763c23506e45e692e349adf8b9ebda8d95843f29", "signature": "public nint Load", "summary": "const int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeTreeTableOpts", "displayName": "NativeTreeTableOpts", "kind": "struct", "summary": "cui_tree_table_opts, 72 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Guides", "kind": "field", "id": "field|Guides|0|0|byte|||hc1f5e271d6e5c5fe32d3510ffa53cfaad5126978a37f3fbf0479bc311e1290dc", "signature": "public byte Guides", "summary": "_Bool (offset 48)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 20)" }, { "name": "Root", "kind": "field", "id": "field|Root|0|0|int|||h6951cf8e44d999438aa751b095b478c002e3b8defd9d6fa77bc90f1c5a707dfb", "signature": "public int Root", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|nint|||h195d74261818c31b6a837175cd06968e2a34f757d46f62d7a83a2655d64fa49a", "signature": "public nint Cursor", "summary": "int * (offset 40)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char *(*)(void *, int) (offset 56)" }, { "name": "Sort", "kind": "field", "id": "field|Sort|0|0|nint|||h9d98eab2f080d85ca8cb2b51bbfbb1c26340f12564431ce3c0cb8b55484a96e2", "signature": "public nint Sort", "summary": "cui_table_sort * (offset 32)" }, { "name": "User", "kind": "field", "id": "field|User|0|0|nint|||hbb8b86031509e9566eb92455c659fd89532fcd8a35724b86f43a45f38dc8e34f", "signature": "public nint User", "summary": "void * (offset 64)" }] }, + { "name": "CuiSharp.Interop.NativeTreemapOpts", "displayName": "NativeTreemapOpts", "kind": "struct", "summary": "cui_treemap_opts, 24 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeUptimeOpts", "displayName": "NativeUptimeOpts", "kind": "struct", "summary": "cui_uptime_opts, 24 bytes.", "members": [{ "name": "LastDay", "kind": "field", "id": "field|LastDay|0|0|NativeDate|||h45adcdab927139a6170b18813b908fcc78735c3c1111d3ce3f9139bbc85469b1", "signature": "public NativeDate LastDay", "summary": "cui_date (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeUptimeResult", "displayName": "NativeUptimeResult", "kind": "struct", "summary": "cui_uptime_result, 8 bytes.", "members": [{ "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int (offset 4)" }, { "name": "Service", "kind": "field", "id": "field|Service|0|0|int|||hba0d1bf399894e025b711a3e44f55e40012b5deae721403f37ad45df303a1b8b", "signature": "public int Service", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeUptimeService", "displayName": "NativeUptimeService", "kind": "struct", "summary": "cui_uptime_service, 24 bytes.", "members": [{ "name": "DayCount", "kind": "field", "id": "field|DayCount|0|0|int|||h807a67852d2bc2138f90f797ad0d152fe0dfce453c6d29ff5f83297024adfbca", "signature": "public int DayCount", "summary": "int (offset 16)" }, { "name": "Days", "kind": "field", "id": "field|Days|0|0|nint|||h32980efb990a38503338072a962cf6130151324687d2a1adf8f4a0c793bc0ef9", "signature": "public nint Days", "summary": "const float * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeUserMenuOpts", "displayName": "NativeUserMenuOpts", "kind": "struct", "summary": "cui_user_menu_opts, 48 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 36)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 32)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeVec2", "displayName": "NativeVec2", "kind": "struct", "summary": "cui_vec2, 8 bytes.", "members": [{ "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeVertex", "displayName": "NativeVertex", "kind": "struct", "summary": "cui_vertex, 64 bytes.", "members": [{ "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|NativeColor|||h6c242cb21110bdcec7298ca27c1f6fe09c2e439c7c00a703fbb920a55723822b", "signature": "public NativeColor BorderColor", "summary": "cui_color (offset 60)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 56)" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "float (offset 48)" }, { "name": "Hh", "kind": "field", "id": "field|Hh|0|0|float|||h1c6862ae07c727004a8c7151417e749467d8b042296b3293853eb996ce807c90", "signature": "public float Hh", "summary": "float (offset 28)" }, { "name": "Hw", "kind": "field", "id": "field|Hw|0|0|float|||h758884b50ea929bcc3a60a8b05dadcf44f148f00f839e7ecdbc4fc368682fef9", "signature": "public float Hw", "summary": "float (offset 24)" }, { "name": "Lx", "kind": "field", "id": "field|Lx|0|0|float|||h3a4b6e9eb14f7c42a745e1ae6676a77e89f1a174b969ede89c750ab88b3bdbb0", "signature": "public float Lx", "summary": "float (offset 16)" }, { "name": "Ly", "kind": "field", "id": "field|Ly|0|0|float|||hd1165beb2153fe6bcacd014305ca3e89e51a409a8217b41f7f302e96ee5906e0", "signature": "public float Ly", "summary": "float (offset 20)" }, { "name": "Mode", "kind": "field", "id": "field|Mode|0|0|float|||heb69ea4c288c1f889d5934bff78b3dbf2cc214d6953588aa989e0370de0bbf4b", "signature": "public float Mode", "summary": "float (offset 52)" }, { "name": "RBl", "kind": "field", "id": "field|RBl|0|0|float|||h8310356cb564473fa9b73326e0134c97865f51a13a40d30bd52837fc384992b1", "signature": "public float RBl", "summary": "float (offset 44)" }, { "name": "RBr", "kind": "field", "id": "field|RBr|0|0|float|||h6eb011a321c1ff1f497439bb8e4915f976f20d3a2e96e2c31379b21cf17ff472", "signature": "public float RBr", "summary": "float (offset 40)" }, { "name": "RTl", "kind": "field", "id": "field|RTl|0|0|float|||he836cc4321783d2a824b07c8669092e0bcc56e20a0bfebc80021d9db22fb4eb8", "signature": "public float RTl", "summary": "float (offset 32)" }, { "name": "RTr", "kind": "field", "id": "field|RTr|0|0|float|||h8bb36ee8371dbbba0c29cc7b754b94e45ca2acd3916bd2308261c85d1155193d", "signature": "public float RTr", "summary": "float (offset 36)" }, { "name": "U", "kind": "field", "id": "field|U|0|0|float|||h80a260e59ef807833e3326184d04df9d5bf8b6b63f398ead0a7fe40184d52c71", "signature": "public float U", "summary": "float (offset 8)" }, { "name": "V", "kind": "field", "id": "field|V|0|0|float|||h9ed934207acd45cf3efdba998593819e906780e91ea6d2a0c3bd1c528440f096", "signature": "public float V", "summary": "float (offset 12)" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, + { "name": "CuiSharp.Interop.NativeVizItem", "displayName": "NativeVizItem", "kind": "struct", "summary": "cui_viz_item, 16 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float (offset 8)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeVoiceOrbOpts", "displayName": "NativeVoiceOrbOpts", "kind": "struct", "summary": "cui_voice_orb_opts, 12 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 8)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeWaffleOpts", "displayName": "NativeWaffleOpts", "kind": "struct", "summary": "cui_waffle_opts, 24 bytes.", "members": [{ "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float (offset 4)" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int (offset 8)" }, { "name": "Rows", "kind": "field", "id": "field|Rows|0|0|int|||hefb2c032827af5f9bdb34f5a833a498a2a3d7d65d6ddf1e90ac44faab38b24dc", "signature": "public int Rows", "summary": "int (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeWaterfallOpts", "displayName": "NativeWaterfallOpts", "kind": "struct", "summary": "cui_waterfall_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "DomLoaded", "kind": "field", "id": "field|DomLoaded|0|0|double|||had711cfa961b378cf56ad55952a3763a8a8b982d4719b201917574db1440435b", "signature": "public double DomLoaded", "summary": "double (offset 24)" }, { "name": "Loaded", "kind": "field", "id": "field|Loaded|0|0|double|||h72af03b033f52e632df13177a005dcc56ae8a6f948dc761c60bb228b7ead174d", "signature": "public double Loaded", "summary": "double (offset 32)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "int * (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeWaterfallResult", "displayName": "NativeWaterfallResult", "kind": "struct", "summary": "cui_waterfall_result, 12 bytes.", "members": [{ "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int (offset 0)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeWaveformOpts", "displayName": "NativeWaveformOpts", "kind": "struct", "summary": "cui_waveform_opts, 28 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Bar", "kind": "field", "id": "field|Bar|0|0|float|||h591ddfbd792b6ecacf5e925fb8b547031152808505904aa2466d8298c0ada87e", "signature": "public float Bar", "summary": "float (offset 16)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 20)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeWeekOpts", "displayName": "NativeWeekOpts", "kind": "struct", "summary": "cui_week_opts, 28 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 16)" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|byte|||h9e1431d0c26b40c6daa5a446056e13ee71a6462394b7d796b573d868c509360c", "signature": "public byte ReadOnly", "summary": "_Bool (offset 24)" }, { "name": "EndHour", "kind": "field", "id": "field|EndHour|0|0|float|||hf2d73b4840a1592be5241a7d3de76347b3f0fa9a82072704ccc371b6dd7bd10d", "signature": "public float EndHour", "summary": "float (offset 8)" }, { "name": "HourHeight", "kind": "field", "id": "field|HourHeight|0|0|float|||hd99043ce8431fbebab02ad1cffe41da949e573d0bf135f08eb80493759cb456b", "signature": "public float HourHeight", "summary": "float (offset 12)" }, { "name": "StartHour", "kind": "field", "id": "field|StartHour|0|0|float|||hd84f53a0fa907b5d1904af3368ea78c32ea17804962c166927e7ad02ddae27f9", "signature": "public float StartHour", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeWheelOpts", "displayName": "NativeWheelOpts", "kind": "struct", "summary": "cui_wheel_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 8)" }, { "name": "JoinLeft", "kind": "field", "id": "field|JoinLeft|0|0|byte|||h161e7bd12b17da44e4ec87542a42464f5abad4e2ebcb1969c219cc8b2cb2a5b3", "signature": "public byte JoinLeft", "summary": "_Bool (offset 17)" }, { "name": "JoinRight", "kind": "field", "id": "field|JoinRight|0|0|byte|||h632ebae189599ce17523e5c09355f3359e2e6a25f2bd168db30e61da4ac90971", "signature": "public byte JoinRight", "summary": "_Bool (offset 18)" }, { "name": "Loop", "kind": "field", "id": "field|Loop|0|0|byte|||h3ea3d61078da90ba0c3355d3ef0183631b189a2445b74ebdb98d33d3479d2b7e", "signature": "public byte Loop", "summary": "_Bool (offset 16)" }, { "name": "Rows", "kind": "field", "id": "field|Rows|0|0|int|||hefb2c032827af5f9bdb34f5a833a498a2a3d7d65d6ddf1e90ac44faab38b24dc", "signature": "public int Rows", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, + { "name": "CuiSharp.JobStatus", "displayName": "JobStatus", "kind": "enum", "summary": "cui_job_status", "members": [{ "name": "Canceled", "kind": "enum value", "id": "enum value|Canceled|1|0|||5|h431790d9d7a73c2e89eafc3cc724fb94b37029680b134569681b060222351623", "signature": "Canceled = 5", "value": "5" }, { "name": "Failed", "kind": "enum value", "id": "enum value|Failed|1|0|||3|ha388847ac08b3e9c6aa93135681165d44342146d113eb7d424d79c6566af73e3", "signature": "Failed = 3", "value": "3" }, { "name": "Passed", "kind": "enum value", "id": "enum value|Passed|1|0|||2|h6df3e1f9f0593c2dcfcff5013ec22cfb0a317df673190ed62f4faa246c9f0632", "signature": "Passed = 2", "value": "2" }, { "name": "Pending", "kind": "enum value", "id": "enum value|Pending|1|0|||0|hec96e2e3e744271639d8f4254e04687bf499d49642bb25da3eda1e9c5271971c", "signature": "Pending = 0", "value": "0" }, { "name": "Running", "kind": "enum value", "id": "enum value|Running|1|0|||1|h5fc8ea303ee3335e9b6c77adb13ed145130ac296d646919227c7232708248684", "signature": "Running = 1", "value": "1" }, { "name": "Skipped", "kind": "enum value", "id": "enum value|Skipped|1|0|||4|hc86a6a4cf9d7fbe0d4b4f660230c7effb152c9749550c01b40366787bc1640b4", "signature": "Skipped = 4", "value": "4" }] }, + { "name": "CuiSharp.JsonOpts", "displayName": "JsonOpts", "kind": "struct", "summary": "cui_json_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float max_height" }, { "name": "ExpandDepth", "kind": "field", "id": "field|ExpandDepth|0|0|int|||h2113772f50eedfb1b947b1866b9ccfabc933b4026161df07a62d39104bf42152", "signature": "public int ExpandDepth", "summary": "int expand_depth" }] }, + { "name": "CuiSharp.Justify", "displayName": "Justify", "kind": "enum", "summary": "cui_justify", "members": [{ "name": "Around", "kind": "enum value", "id": "enum value|Around|1|0|||4|ha0a6e43d8b303e066967c6e8af17b4ec4d8addfd1f01bd803c73a47eae1ad97b", "signature": "Around = 4", "value": "4" }, { "name": "Between", "kind": "enum value", "id": "enum value|Between|1|0|||3|hff99b1d50430a8c8cd0227d02758c996b25c6abd032979e00a72587badf06801", "signature": "Between = 3", "value": "3" }, { "name": "Center", "kind": "enum value", "id": "enum value|Center|1|0|||1|h4686332f74612068f01a4f33de206306d6fb2c9c2179083777b04e191a22c459", "signature": "Center = 1", "value": "1" }, { "name": "End", "kind": "enum value", "id": "enum value|End|1|0|||2|h11ecc7c93d429ce8c1cbe99b3ab7c1dc4f45902c15dc8d37c7424b0a0bb5f27a", "signature": "End = 2", "value": "2" }, { "name": "Start", "kind": "enum value", "id": "enum value|Start|1|0|||0|h7ed6ed3a37dd742f4ad5c45d58358615134c8004790a39b9f752c72aff023900", "signature": "Start = 0", "value": "0" }] }, + { "name": "CuiSharp.KanbanColumnOpts", "displayName": "KanbanColumnOpts", "kind": "struct", "summary": "cui_kanban_column_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Dot", "kind": "field", "id": "field|Dot|0|0|Color|||h2e4892afe0ce7f5776206d1ebb04ec5b4aba9a08d040f4d38189931ea9c9a319", "signature": "public Color Dot", "summary": "cui_color dot" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }, { "name": "Limit", "kind": "field", "id": "field|Limit|0|0|int|||h0551723e212cc1de31ece56a8865f2a5fe1a25e69ca86d13b85180f933670910", "signature": "public int Limit", "summary": "int limit" }] }, + { "name": "CuiSharp.KanbanMove", "displayName": "KanbanMove", "kind": "struct", "summary": "cui_kanban_move. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Card;int FromColumn = default;int ToColumn = default;int ToIndex = default||h2f21cba426e2df0fcb5e8b29ff07a89b9e71f469ce435f61a6a1c19a5f1bbe07", "signature": "KanbanMove(int Card, int FromColumn = default, int ToColumn = default, int ToIndex = default)", "parameters": [{ "name": "Card", "type": "int" }, { "name": "FromColumn", "type": "int", "default": "default" }, { "name": "ToColumn", "type": "int", "default": "default" }, { "name": "ToIndex", "type": "int", "default": "default" }] }, { "name": "Card", "kind": "field", "id": "field|Card|0|0|int|||h4e55f281e44827e799e41dc1f657218631ca17eabaa81d6214d62a1f42080b79", "signature": "public int Card", "summary": "int card" }, { "name": "FromColumn", "kind": "field", "id": "field|FromColumn|0|0|int|||h852c86084f2687cfab891d2a8ee1ee937a40b68fb2ded28a28325c23a45d5da1", "signature": "public int FromColumn", "summary": "int from_column" }, { "name": "ToColumn", "kind": "field", "id": "field|ToColumn|0|0|int|||hc5eebb26186d77f3dcbdd4b3159e8329a2e6080e96b3ee23a29a3af4eb4da347", "signature": "public int ToColumn", "summary": "int to_column" }, { "name": "ToIndex", "kind": "field", "id": "field|ToIndex|0|0|int|||h4f61864330a69f3505bc7fd8fbee51dba8f5d4f040469966dc4183d1a6f201a6", "signature": "public int ToIndex", "summary": "int to_index" }] }, + { "name": "CuiSharp.Key", "displayName": "Key", "kind": "enum", "summary": "cui_key", "members": [{ "name": "A", "kind": "enum value", "id": "enum value|A|1|0|||15|h22bdff65ee86469e285b974cdfe3ce1b24545be861384ee80c5314cb79a6f1c3", "signature": "A = 15", "value": "15" }, { "name": "B", "kind": "enum value", "id": "enum value|B|1|0|||16|h575339e290a1b4bd2cb77e94ba7a6c86ed4496a2c8fe36238cc24051efcb2fc8", "signature": "B = 16", "value": "16" }, { "name": "Backspace", "kind": "enum value", "id": "enum value|Backspace|1|0|||4|h47efcf4d6757e5e7e49cab7026a275666c4084e72c96b29e229705c70ffc8fc0", "signature": "Backspace = 4", "value": "4" }, { "name": "C", "kind": "enum value", "id": "enum value|C|1|0|||17|h501bae125d7679bf18f0049929866b9a10233f77487f6f272b7a020257019101", "signature": "C = 17", "value": "17" }, { "name": "Comma", "kind": "enum value", "id": "enum value|Comma|1|0|||53|h6b2fa5f911116f93aa69e3cf1f66a1ff484bcc430f44d18341e4f75173cd3f1c", "signature": "Comma = 53", "value": "53" }, { "name": "Count", "kind": "enum value", "id": "enum value|Count|1|0|||68|hf960784e4d69ce6a30bc6914f7a3bfce6f9be9b861e2edef41d828e16ebf8019", "signature": "Count = 68", "value": "68" }, { "name": "D", "kind": "enum value", "id": "enum value|D|1|0|||18|h32e0326d0cd75342e1674ddf31ab5ecba2a92166d1e38363059fa5c6b8b66bcd", "signature": "D = 18", "value": "18" }, { "name": "D0", "kind": "enum value", "id": "enum value|D0|1|0|||41|hb1b9380ddea8409cc82d6c3a6498d3f2ecabb00e5a28c73d57d06c9837a20bcb", "signature": "D0 = 41", "value": "41" }, { "name": "D1", "kind": "enum value", "id": "enum value|D1|1|0|||42|ha97b90e239232ce577966b60d1d1df3f12e55fd00682e60e0e6480b6ad9fa14f", "signature": "D1 = 42", "value": "42" }, { "name": "D2", "kind": "enum value", "id": "enum value|D2|1|0|||43|hb0f252e8fd2185737721f4e008ada7b3c0232853794bb0b451984447e4a10251", "signature": "D2 = 43", "value": "43" }, { "name": "D3", "kind": "enum value", "id": "enum value|D3|1|0|||44|h95a97f57b30dc93c9886f2e5454a90e328bced7bf780e992b6ed231ddb7622d3", "signature": "D3 = 44", "value": "44" }, { "name": "D4", "kind": "enum value", "id": "enum value|D4|1|0|||45|h13c50f05930542947e2bb6323a07cdcb316a2a6292e3062446788127f4ed9814", "signature": "D4 = 45", "value": "45" }, { "name": "D5", "kind": "enum value", "id": "enum value|D5|1|0|||46|h4fe4ed7ed69f41f8fc10d4b8ef2d153ccef9c7ab5306d6b57f300701bb3563f1", "signature": "D5 = 46", "value": "46" }, { "name": "D6", "kind": "enum value", "id": "enum value|D6|1|0|||47|h4b9c838ac5ff3440fd237f909fe5de88568cc9db1dc1a0fba0db3dbb40048be4", "signature": "D6 = 47", "value": "47" }, { "name": "D7", "kind": "enum value", "id": "enum value|D7|1|0|||48|hc24746d9abe9b3a303a56202c133bc275f318af25c8dd4f89ae4c498f6022020", "signature": "D7 = 48", "value": "48" }, { "name": "D8", "kind": "enum value", "id": "enum value|D8|1|0|||49|h25c18b86b89f077c792715f687e9bdb4e0407cb0ab2f24e68c3fcc1463c4c3ba", "signature": "D8 = 49", "value": "49" }, { "name": "D9", "kind": "enum value", "id": "enum value|D9|1|0|||50|h8968e9ca01b472a4704669bb9c52d7c1387d57b8410423fe82757716c919abae", "signature": "D9 = 50", "value": "50" }, { "name": "Delete", "kind": "enum value", "id": "enum value|Delete|1|0|||5|hea0f370608bf1988f4fcb772a76a807ed7b03dad5af1a49fc6bb695431585d95", "signature": "Delete = 5", "value": "5" }, { "name": "Down", "kind": "enum value", "id": "enum value|Down|1|0|||10|h984bdf2194af89ad508db29bc950d5ebe6bdb9f1f07fed3596eee17ebcbac21d", "signature": "Down = 10", "value": "10" }, { "name": "E", "kind": "enum value", "id": "enum value|E|1|0|||19|h3275461bcb2649f106a46c39f123952331765ca4d88967f4d85781f018ee4edd", "signature": "E = 19", "value": "19" }, { "name": "End", "kind": "enum value", "id": "enum value|End|1|0|||12|h9aa23c0bcb34015981efac1467b865e6a4cec07b1ec3444b5c81c6ae2be15171", "signature": "End = 12", "value": "12" }, { "name": "Enter", "kind": "enum value", "id": "enum value|Enter|1|0|||2|h49cf159214e407f9e99e0a541c05047f35ca1f98779735805563302003cfbdee", "signature": "Enter = 2", "value": "2" }, { "name": "Equal", "kind": "enum value", "id": "enum value|Equal|1|0|||52|he46b237daaf787fda492f57ed6476c15f30f20e7e110417abc481e677af1ad44", "signature": "Equal = 52", "value": "52" }, { "name": "Escape", "kind": "enum value", "id": "enum value|Escape|1|0|||3|hd1e0c473b701376ebac9a5a639017dab928da597037ff025eaf0cb0886d380f5", "signature": "Escape = 3", "value": "3" }, { "name": "F", "kind": "enum value", "id": "enum value|F|1|0|||20|h63023b8e519cd49bdba70f74a6cdee6e204d8237907f4aed1c14f57fbf09ac5c", "signature": "F = 20", "value": "20" }, { "name": "F1", "kind": "enum value", "id": "enum value|F1|1|0|||56|h1d4a173280f1c81df99664ee5c857be49a5cb2b79bb280f275c3ceda3b389f54", "signature": "F1 = 56", "value": "56" }, { "name": "F10", "kind": "enum value", "id": "enum value|F10|1|0|||65|h39a42fd769fe3b4802aa987860a6d850b57711da28ba8137d9f4f66053646409", "signature": "F10 = 65", "value": "65" }, { "name": "F11", "kind": "enum value", "id": "enum value|F11|1|0|||66|h65d224ab7ea01d72364659df10306e344e9d6c125606df533e64f5d894f1d72c", "signature": "F11 = 66", "value": "66" }, { "name": "F12", "kind": "enum value", "id": "enum value|F12|1|0|||67|hd218a16650155a2871025f8203cc680211d52eebb3c937b7bb38441c95936900", "signature": "F12 = 67", "value": "67" }, { "name": "F2", "kind": "enum value", "id": "enum value|F2|1|0|||57|he1c5450d10ab8fa57f7b9341c3b82a0cd1696030b56b453f73728091a40fcc01", "signature": "F2 = 57", "value": "57" }, { "name": "F3", "kind": "enum value", "id": "enum value|F3|1|0|||58|h9f0a04c1a8f24dff2677e65120442802d166f1fa1e57f414c67abe95975bcc6d", "signature": "F3 = 58", "value": "58" }, { "name": "F4", "kind": "enum value", "id": "enum value|F4|1|0|||59|h94b1ae3f1e0784e4915920b177789fec43d9a100745682df58bcc05f4f98407f", "signature": "F4 = 59", "value": "59" }, { "name": "F5", "kind": "enum value", "id": "enum value|F5|1|0|||60|h69a8aea91e1024f20b5c37c71995aa79509eca8ad4c93eb4cfc13d963629be01", "signature": "F5 = 60", "value": "60" }, { "name": "F6", "kind": "enum value", "id": "enum value|F6|1|0|||61|hecc91ff375334a69c1e48e2a50f25d28501d03ce54fb3eeed30034c406bb57d7", "signature": "F6 = 61", "value": "61" }, { "name": "F7", "kind": "enum value", "id": "enum value|F7|1|0|||62|hab8de3acc4a2cc329ec60b3c8dc14008996332c3808420712aa61f6999660cde", "signature": "F7 = 62", "value": "62" }, { "name": "F8", "kind": "enum value", "id": "enum value|F8|1|0|||63|h47ccd00c0548262ad9e0de11ef48c602cd5e3facf407395559877f5cd6b4176b", "signature": "F8 = 63", "value": "63" }, { "name": "F9", "kind": "enum value", "id": "enum value|F9|1|0|||64|h5eb9c1f041fd1873fa2ea1004654cf160eb1214fa7ef4b7f6b7bc9d6a0ab1737", "signature": "F9 = 64", "value": "64" }, { "name": "G", "kind": "enum value", "id": "enum value|G|1|0|||21|h7a7c7b1c2c445242b2b6856fa462dfe1e83640f67b4a3c01adbcae4da01b2700", "signature": "G = 21", "value": "21" }, { "name": "H", "kind": "enum value", "id": "enum value|H|1|0|||22|h54d0247c7a708b123801f86b544b569b1c9f7b182806a98913122db25b453fef", "signature": "H = 22", "value": "22" }, { "name": "Home", "kind": "enum value", "id": "enum value|Home|1|0|||11|hb7eb97197fa263839ac1d73b03b49831efb7463d9b6086cbf487ef3c4956eba9", "signature": "Home = 11", "value": "11" }, { "name": "I", "kind": "enum value", "id": "enum value|I|1|0|||23|h78048a83754ac01d5b878b867c1b1fd6da52c3da9e779ed859fe7f4ccb168404", "signature": "I = 23", "value": "23" }, { "name": "J", "kind": "enum value", "id": "enum value|J|1|0|||24|h49abe3291ffdcb3ff37abf32744550145f7ef8be8fb452faa6d00f672b0366f9", "signature": "J = 24", "value": "24" }, { "name": "K", "kind": "enum value", "id": "enum value|K|1|0|||25|he597d0c6d950f1bb71da89c6dcffa6489fdc23304eef18df306c02eb92f4c118", "signature": "K = 25", "value": "25" }, { "name": "L", "kind": "enum value", "id": "enum value|L|1|0|||26|hd4dac79206ae9f91febf04c8cdd1b641f236d156e62f8759492abebfe067ae30", "signature": "L = 26", "value": "26" }, { "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||7|hf484cf57e27ba6e627aef7a40bb7cb859310a1b13f917cd971eaeef5d8618b04", "signature": "Left = 7", "value": "7" }, { "name": "M", "kind": "enum value", "id": "enum value|M|1|0|||27|h1d9bd3b98ba8c5828f8abc568793ca47ce7b5b02b0f0cc7ac709d44d6c8d0bb9", "signature": "M = 27", "value": "27" }, { "name": "Minus", "kind": "enum value", "id": "enum value|Minus|1|0|||51|h77dc87500ec4655404db594f9261bbcbe34d92d8ecc8376ceb3505a834cca6df", "signature": "Minus = 51", "value": "51" }, { "name": "N", "kind": "enum value", "id": "enum value|N|1|0|||28|h908bd7fad9771873c5fe0cdfb0d7e9dfc8a1ede81f169c915a700174e4d9dfb7", "signature": "N = 28", "value": "28" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "O", "kind": "enum value", "id": "enum value|O|1|0|||29|hb48f91b1b8087592017c096695b3610b2c5625342a474ff4dd4ba4f237ca111d", "signature": "O = 29", "value": "29" }, { "name": "P", "kind": "enum value", "id": "enum value|P|1|0|||30|h01e36a12ad9d510e9a2a326f69d9186e162f11ada296ed8b21bfcc350bda75bd", "signature": "P = 30", "value": "30" }, { "name": "PageDown", "kind": "enum value", "id": "enum value|PageDown|1|0|||14|hecdb541560339ccdbacf438e73458e855e46427749df4fdc614e1d1fcdfd2fb2", "signature": "PageDown = 14", "value": "14" }, { "name": "PageUp", "kind": "enum value", "id": "enum value|PageUp|1|0|||13|hba200b987b39fdf2479c05690f939b7ca57047057996d03ca48cfde0b415069c", "signature": "PageUp = 13", "value": "13" }, { "name": "Period", "kind": "enum value", "id": "enum value|Period|1|0|||54|h24b423bb25e9191b38b37992ba890d8a107334f6e46864bf61987c16bd0a2041", "signature": "Period = 54", "value": "54" }, { "name": "Q", "kind": "enum value", "id": "enum value|Q|1|0|||31|ha040411bafeb10f8f52314031e397b52bef78120658a85600655ebdea6b83197", "signature": "Q = 31", "value": "31" }, { "name": "R", "kind": "enum value", "id": "enum value|R|1|0|||32|h60fa8be8e4156f245cfb621d0d173a8f90cf1a72801703f6d8b4e33e4b4781f5", "signature": "R = 32", "value": "32" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||8|h1b98d7a43dddc2834373bc7c9487a6f1fba5e78b6322e5e7acc8b1f42176a50e", "signature": "Right = 8", "value": "8" }, { "name": "S", "kind": "enum value", "id": "enum value|S|1|0|||33|h7f90502eccac7d9bd8f630ddb0ae1ba8a1a932d002de4169a8ffc43ecc61977a", "signature": "S = 33", "value": "33" }, { "name": "Slash", "kind": "enum value", "id": "enum value|Slash|1|0|||55|h46f68fe67c9c5d68659c2a3899fd479b940a21d05c63d8921ec4eadeca4a712e", "signature": "Slash = 55", "value": "55" }, { "name": "Space", "kind": "enum value", "id": "enum value|Space|1|0|||6|he26d8819f3fafbe843239dc287b8191eb2a945ed1a57d518c7bb49c6e19e89e7", "signature": "Space = 6", "value": "6" }, { "name": "T", "kind": "enum value", "id": "enum value|T|1|0|||34|h40b54dd7d3aa665935078f18a456b7cbe7cd45585c1a7e9ab869b70ba8f7a080", "signature": "T = 34", "value": "34" }, { "name": "Tab", "kind": "enum value", "id": "enum value|Tab|1|0|||1|h1c406143015c36cdfba76145e989131174f44aab872a7d807ba43b99954b04a4", "signature": "Tab = 1", "value": "1" }, { "name": "U", "kind": "enum value", "id": "enum value|U|1|0|||35|hf4c256b9116156eba084bda1d866b4b073115a5eda3d4ce17576716341bec41b", "signature": "U = 35", "value": "35" }, { "name": "Up", "kind": "enum value", "id": "enum value|Up|1|0|||9|h851532ad5fd9962f9a5729ee3cd696d7941f4d5933bae9e13e4ed9607d594086", "signature": "Up = 9", "value": "9" }, { "name": "V", "kind": "enum value", "id": "enum value|V|1|0|||36|h17196d9249b088f9b1abde32a2a8e509550985e367a82f7ac0fcb141c4c4bcf2", "signature": "V = 36", "value": "36" }, { "name": "W", "kind": "enum value", "id": "enum value|W|1|0|||37|hecdada88a402ba7784a19e71cfa92f76901969b582e40ad63a12a08d9356ca31", "signature": "W = 37", "value": "37" }, { "name": "X", "kind": "enum value", "id": "enum value|X|1|0|||38|h95a821b1fe391c6fac4727697f43b5b377dd1b80fbbedf699bc727b2da7c7f45", "signature": "X = 38", "value": "38" }, { "name": "Y", "kind": "enum value", "id": "enum value|Y|1|0|||39|h98a5d9fb514297280eeca55c405b7971b2bbbea88f8d80938b9a5632b97d1a45", "signature": "Y = 39", "value": "39" }, { "name": "Z", "kind": "enum value", "id": "enum value|Z|1|0|||40|h366155cf1ec1442b59f50bad8176fe162b311b1ae475abbb952fc1750b3d9355", "signature": "Z = 40", "value": "40" }] }, + { "name": "CuiSharp.KeyCombo", "displayName": "KeyCombo", "kind": "struct", "summary": "cui_key_combo. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Mods;Key Key = Key.None||h89eeef895337969820c6c19a53e4643dafca402ac080f4956eaba51386f6af8c", "signature": "KeyCombo(int Mods, Key Key = Key.None)", "parameters": [{ "name": "Mods", "type": "int" }, { "name": "Key", "type": "Key", "default": "Key.None" }] }, { "name": "Key", "kind": "field", "id": "field|Key|0|0|Key|||ha8a2ef1e5766d0ded6949b45f1180b64bdf9ef3740bc5c193694a2938f483f10", "signature": "public Key Key", "summary": "cui_key key" }, { "name": "Mods", "kind": "field", "id": "field|Mods|0|0|int|||h0557a35558abe6a9a70cd6ee363474ffd9ef430fca04fd8f09e8787557a8daf4", "signature": "public int Mods", "summary": "int mods" }] }, + { "name": "CuiSharp.KeyFn\u00601", "displayName": "KeyFn", "kind": "delegate", "summary": "The key for one item in Keyed\u0060\u00601.", "members": [{ "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|in T item;AsyncCallback callback;object object||hf7cb1f1676fb0b51dc3ecbf4ed3a526d0f518953c7edef952f2e1dcd6d65c874", "signature": "IAsyncResult BeginInvoke(in T item, AsyncCallback callback, object @object)", "parameters": [{ "name": "item", "type": "in T" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||hbea1b12cd583e36c8cb961e9a06002994ee001ee6ec5ef5af9e07605f6bc3247", "signature": "KeyFn\u003CT\u003E(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|int|in T item;IAsyncResult result||h0a4b2d3b06fb6e400bd0949060936ff4b81b766c1f1f00b81766ff4ff34ae119", "signature": "int EndInvoke(in T item, IAsyncResult result)", "parameters": [{ "name": "item", "type": "in T" }, { "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|int|in T item||h8aacdafa962458b3a57c20d4bce4c17959cc07da83e2b6abc24d98744e2d8cb5", "signature": "int Invoke(in T item)", "parameters": [{ "name": "item", "type": "in T" }] }] }, + { "name": "CuiSharp.KeyValue", "displayName": "KeyValue", "kind": "struct", "summary": "cui_kv_pair. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Key;string? Value = null;bool Enabled = default;bool Secret = default||h2d273870818a0c6b1bde8383b3a9b65cd31cf4e7b77d80a9ca2216756d76b81f", "signature": "KeyValue(string? Key, string? Value = null, bool Enabled = default, bool Secret = default)", "parameters": [{ "name": "Key", "type": "string?" }, { "name": "Value", "type": "string?", "default": "null" }, { "name": "Enabled", "type": "bool", "default": "default" }, { "name": "Secret", "type": "bool", "default": "default" }] }, { "name": "Enabled", "kind": "field", "id": "field|Enabled|0|0|bool|||hc401cd7bda117e45326caf1c9d7cc2717bc6fc849b596b4a9463e1ef0546b200", "signature": "public bool Enabled", "summary": "_Bool enabled" }, { "name": "Secret", "kind": "field", "id": "field|Secret|0|0|bool|||h4de133bb5431ea230e8e57004a24c27e2ab6f05ffe7a72a4f38da89a94d1dde8", "signature": "public bool Secret", "summary": "_Bool secret" }, { "name": "Key", "kind": "field", "id": "field|Key|0|0|string?|||h281882e813d8ea53a018b2a3c3109be418f13385ae48845424a2b53db1b89958", "signature": "public string? Key", "summary": "char[64] key" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|string?|||h5ce95573760fbed490482794a8054e38848c0b6a2d40e7e67f6af14eb4564732", "signature": "public string? Value", "summary": "char[256] value" }] }, + { "name": "CuiSharp.KeyedScope\u00601", "displayName": "KeyedScope", "kind": "ref struct", "summary": "Enumerates items, pushing one id scope per item, so the same markup can draw every row while each row keeps its own widget state. The items are an array, not a span: the enumerator holds them for the length of the loop, and a span would tie that loop to the span\u0027s own lifetime. The key selector is a delegate: a capturing lambda allocates once per call, so prefer a static lambda or a method group in the frame loop.", "members": [{ "name": "GetEnumerator", "kind": "method", "id": "method|GetEnumerator|0|0|KeyedScope\u003CT\u003E|||h844468ea452e6961ad0aecbe77c0ae7e1588bf5c97ec0d4db9171b4dd6bf48c9", "signature": "KeyedScope\u003CT\u003E GetEnumerator()" }, { "name": "Current", "kind": "property", "id": "property|Current|0|0|T||get;|h46d41df1fe5e1853a0ed08a02dced7bac58515abab4200a69a62d0fe757c5fe2", "signature": "T Current { get; }", "summary": "The item for the current iteration." }, { "name": "MoveNext", "kind": "method", "id": "method|MoveNext|0|0|bool|||h1ef98337f66029bc42a1160083450ca5e0c3c28f861b03640bac18a6072153ce", "signature": "bool MoveNext()", "summary": "Pops the previous item\u0027s id and pushes this one\u0027s." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Pops the last item\u0027s id scope, if one is still open." }] }, + { "name": "CuiSharp.KeymapBinding", "displayName": "KeymapBinding", "kind": "struct", "summary": "cui_keymap_binding. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||KeyCombo Combo;string? Action = null;int Category = default||hbd093a7d7fc8c5273faea92a699c561787258fa0a1992b7a77326e554db53023", "signature": "KeymapBinding(KeyCombo Combo, string? Action = null, int Category = default)", "parameters": [{ "name": "Combo", "type": "KeyCombo" }, { "name": "Action", "type": "string?", "default": "null" }, { "name": "Category", "type": "int", "default": "default" }] }, { "name": "Combo", "kind": "field", "id": "field|Combo|0|0|KeyCombo|||h720d33ef730c421b20a32fdfb6d2d33e6cf041f3ec3bff9a554c42efb81815fe", "signature": "public KeyCombo Combo", "summary": "cui_key_combo combo" }, { "name": "Category", "kind": "field", "id": "field|Category|0|0|int|||hdd47e2b092c5ca594640eebe08c268434674a147ebf5eafb2a46a5da46f07ed4", "signature": "public int Category", "summary": "index into the categories, colors the key" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }] }, + { "name": "CuiSharp.KeymapOpts", "displayName": "KeymapOpts", "kind": "struct", "summary": "cui_keymap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoFunctionRow", "kind": "field", "id": "field|NoFunctionRow|0|0|bool|||h30e4d0c7a82c0d24ff8cd08afe19f2d85f0725aa4d8171206a069927b93b9ae9", "signature": "public bool NoFunctionRow", "summary": "_Bool no_function_row" }, { "name": "Categories", "kind": "field", "id": "field|Categories|0|0|string[]?|||h3de549c63b119c475f9f8f9e332f4ea8ea0de761d9259cb33cea1f89448d1b0f", "signature": "public string[]? Categories", "summary": "names for the legend" }] }, + { "name": "CuiSharp.KeymapResult", "displayName": "KeymapResult", "kind": "struct", "summary": "cui_keymap_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Key Clicked;int Conflicts = default||h1d67c7d8149df93cfc1734144ba23f4ece5bb3fdb772465f21d29b1ba80eb33b", "signature": "KeymapResult(Key Clicked, int Conflicts = default)", "parameters": [{ "name": "Clicked", "type": "Key" }, { "name": "Conflicts", "type": "int", "default": "default" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|Key|||hf3d1089c0e1e46bc83fd27808a70e56ed41a70657965029f08dbfc901fbc370d", "signature": "public Key Clicked", "summary": "cui_key clicked" }, { "name": "Conflicts", "kind": "field", "id": "field|Conflicts|0|0|int|||h789812c8ba17c03535e8408d067679a4be25b10d6c3816628d8bb1c973ecd39c", "signature": "public int Conflicts", "summary": "int conflicts" }] }, + { "name": "CuiSharp.KnobOpts", "displayName": "KnobOpts", "kind": "struct", "summary": "cui_knob_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "the value arc, default the control color" }, { "name": "Bipolar", "kind": "field", "id": "field|Bipolar|0|0|bool|||hfd442dc5ac1edaf4637b59f8431024c601179da8a97e788d68ccdcbe169e294b", "signature": "public bool Bipolar", "summary": "the arc grows from the middle: pan, EQ gain" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "HideValue", "kind": "field", "id": "field|HideValue|0|0|bool|||h20146cccd15f7f41f4700bc1046703defa878698eed0451ccdc8acf0325f3763", "signature": "public bool HideValue", "summary": "_Bool hide_value" }, { "name": "LogScale", "kind": "field", "id": "field|LogScale|0|0|bool|||h2225f0b0b5d35122d9c7403f0c7fbea2bfb761378cbb11349ccd4b908cc12a16", "signature": "public bool LogScale", "summary": "equal turns multiply the value: frequency, time (min \u003E 0)" }, { "name": "Reset", "kind": "field", "id": "field|Reset|0|0|float|||h6f7e0b1685ab6d501be44af24ff4fc26ab960c5abf2371bc447d2d1768038172", "signature": "public float Reset", "summary": "double-click value, default 0 (clamped to the range)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "diameter, default 48" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "0 = continuous (keys move 1% of the range)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "printf format for the value, default \u0022%.0f\u0022" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "under the knob; the id when NULL" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "after the value, e.g. \u0022Hz\u0022 or \u0022dB\u0022" }] }, + { "name": "CuiSharp.KvEditorOpts", "displayName": "KvEditorOpts", "kind": "struct", "summary": "cui_kv_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "NoSecrets", "kind": "field", "id": "field|NoSecrets|0|0|bool|||hb812e236dd78060429f982f487c0335c418e28dfc6639a6d019e2b4c3b8de81b", "signature": "public bool NoSecrets", "summary": "no eye button" }, { "name": "NoToggles", "kind": "field", "id": "field|NoToggles|0|0|bool|||h0dea1fee99c678a80060d07f9324720431aac8d7bb4805e64f0ece12dc442a9e", "signature": "public bool NoToggles", "summary": "no checkboxes: every pair is on" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "KeyPlaceholder", "kind": "field", "id": "field|KeyPlaceholder|0|0|string?|||hedf304f45469c5fccb451372ec7a6a06f648bd5b9a999271d5c1dcbeb18609d5", "signature": "public string? KeyPlaceholder", "summary": "default \u0022Key\u0022" }, { "name": "ValuePlaceholder", "kind": "field", "id": "field|ValuePlaceholder|0|0|string?|||hf52548b8628a0f3b479fb60579bb8ca6de0d4d8f6ceaf412af16e60c8be996ca", "signature": "public string? ValuePlaceholder", "summary": "default \u0022Value\u0022" }] }, + { "name": "CuiSharp.LayoutScope", "displayName": "LayoutScope", "kind": "ref struct", "summary": "An always-open container. Use using to close it, including on exceptions.", "members": [{ "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Closes this container. Disposing the same instance again does nothing." }] }, + { "name": "CuiSharp.LevelMeterOpts", "displayName": "LevelMeterOpts", "kind": "struct", "summary": "cui_level_meter_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|bool|||h526d7918635bb7515376b05bb273960bfff3d8076453a269cb0cc74fef6ec108", "signature": "public bool Horizontal", "summary": "_Bool horizontal" }, { "name": "Scale", "kind": "field", "id": "field|Scale|0|0|bool|||h0d8a3f3cb6185546497459a8c952cb3d8b471e12bb580ed4da19337f86b39a06", "signature": "public bool Scale", "summary": "dB labels beside the bars" }, { "name": "Segmented", "kind": "field", "id": "field|Segmented|0|0|bool|||h32669c3e675c6f25d76741286cebfbdc27f4116dc826d2c356869c3f01e33a05", "signature": "public bool Segmented", "summary": "LED segments instead of a solid bar" }, { "name": "Decay", "kind": "field", "id": "field|Decay|0|0|float|||h067240cd90c29d217819d40156fc0debc9d7b6e5290807eea7a28cffb399a6eb", "signature": "public float Decay", "summary": "fall rate, dB per second; default 20" }, { "name": "Hold", "kind": "field", "id": "field|Hold|0|0|float|||hf9cf9b5a4d1a55101a8a988c06df2d2cadf6464a1b411ed219b71cf735f20622", "signature": "public float Hold", "summary": "peak hold, seconds; default 1.5, \u003C 0 none" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|float|||hde0ed5b9413eadd735eb6ae0346647e34ca58923c6d228bcc21459281e52a172", "signature": "public float Length", "summary": "default 160" }, { "name": "MaxDb", "kind": "field", "id": "field|MaxDb|0|0|float|||h05af64f8eaf6361804782ad98715d074c249913dc00324f60ff072dd17a84ea9", "signature": "public float MaxDb", "summary": "default -60 and \u002B6" }, { "name": "MinDb", "kind": "field", "id": "field|MinDb|0|0|float|||hf0f618cb58cf13fd6bb97d775f5351393d15723ccaf0a1a2d3ce7d92fae8a2b5", "signature": "public float MinDb", "summary": "default -60 and \u002B6" }, { "name": "Thickness", "kind": "field", "id": "field|Thickness|0|0|float|||h032ae3f08d1f764102a5ab4e3449cb25f2ae394d97fb8b90dd505ead7b8576f6", "signature": "public float Thickness", "summary": "each channel\u0027s bar, default 6" }] }, + { "name": "CuiSharp.ListItemOpts", "displayName": "ListItemOpts", "kind": "struct", "summary": "cui_list_item_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "_Bool selected" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|string?|||h9d0d544d7549508f61434ad5871b2b0572260bc680b2d8dad077b002b5a22c7a", "signature": "public string? Avatar", "summary": "const char * avatar" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Subtitle", "kind": "field", "id": "field|Subtitle|0|0|string?|||h370a50a915562d87bd3c3dd57879ea2e95f02f8dcf9dc1b4e921775dc91ffdac", "signature": "public string? Subtitle", "summary": "const char * subtitle" }, { "name": "Trailing", "kind": "field", "id": "field|Trailing|0|0|string?|||h74345f37cd2a39e019887165055697c10b43ca54d151eaad795ee3df8fc7ab5a", "signature": "public string? Trailing", "summary": "const char * trailing" }] }, + { "name": "CuiSharp.LoaderOpts", "displayName": "LoaderOpts", "kind": "struct", "summary": "cui_loader_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Style", "kind": "field", "id": "field|Style|0|0|LoaderStyle|||h8b8796b8c95829a2fdf2777456dde7dd852dc38a8878ac87018bf5c5c966e0ab", "signature": "public LoaderStyle Style", "summary": "cui_loader_style style" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }] }, + { "name": "CuiSharp.LoaderStyle", "displayName": "LoaderStyle", "kind": "enum", "summary": "cui_loader_style", "members": [{ "name": "Bars", "kind": "enum value", "id": "enum value|Bars|1|0|||1|h4973b3a2c0057c461ebae49937f2896371b8de77acfed984bebf0837dc020c18", "signature": "Bars = 1", "value": "1" }, { "name": "Dots", "kind": "enum value", "id": "enum value|Dots|1|0|||0|h4926168dff81e42b6a4bda1682aa80de31936f45651d4358e2fd8fb6981c8350", "signature": "Dots = 0", "value": "0" }, { "name": "Grid", "kind": "enum value", "id": "enum value|Grid|1|0|||4|hcf44f6539f24fd68b75e055f68f1e6f11bbc2c866a4943cdb2b154f3a452a8a8", "signature": "Grid = 4", "value": "4" }, { "name": "Orbit", "kind": "enum value", "id": "enum value|Orbit|1|0|||3|h7f1416fa91c330075f7287ca6dc42ade9fc4cceac3857a756d326313c6c03884", "signature": "Orbit = 3", "value": "3" }, { "name": "Pulse", "kind": "enum value", "id": "enum value|Pulse|1|0|||2|h9f9e2b3346cb5719dfefaa92a5361311bc6b85390ad691cbc30987fa6343b946", "signature": "Pulse = 2", "value": "2" }] }, + { "name": "CuiSharp.Localization", "displayName": "Localization", "kind": "class", "summary": "The month, weekday and \u0022Today\u0022 names the date components show, for another language: the table SetLocalization hands to CUI. CUI keeps the pointer it is given and reads it every frame, so this table cannot live in the frame arena. This class owns one unmanaged block, rebuilt only when a name changes, and the surface that published it keeps this object alive and frees a replaced block at a frame boundary. Every entry is optional: a null falls back to the English name, so a partial table is a complete one. Weeks start on Monday, as in every CUI calendar, so Weekdays starts at Monday. A table belongs to one surface: publishing it to a second one throws, because only the surface that owns it is told when a name changes and a block is replaced.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||he310586623afe13ace2a6ddaf900a62ac5a4b843a912b4603cdf0ab6bab33cca", "signature": "Localization()" }, { "name": "Today", "kind": "property", "id": "property|Today|0|0|string?||get;set;|h30122b32b11d395d8852fec5dba1b5269b77c0ae0d872cb5e18f75e351e16dac", "signature": "string? Today { get; set; }", "summary": "The word the \u0022Today\u0022 button shows. Null falls back to English." }, { "name": "Months", "kind": "property", "id": "property|Months|0|0|string?[]?||get;set;|h7f616cb1dc3604985dfed433d1bc9eed7a931a849234749698feb40d66bbcc40", "signature": "string?[]? Months { get; set; }", "summary": "Twelve month names, index 0 = January. Null entries fall back to English." }, { "name": "MonthsShort", "kind": "property", "id": "property|MonthsShort|0|0|string?[]?||get;set;|h0d869db752e7a20a54ea28959ba679395be1b82567d9d2ab096bfaef54622f63", "signature": "string?[]? MonthsShort { get; set; }", "summary": "Twelve short month names, index 0 = January. Null entries fall back to English." }, { "name": "Weekdays", "kind": "property", "id": "property|Weekdays|0|0|string?[]?||get;set;|h9af2dc21d1a49cd684be0d39f950658bd43ec4ad859d330fba9846fcd3766d3e", "signature": "string?[]? Weekdays { get; set; }", "summary": "Seven weekday names, index 0 = Monday. Null entries fall back to English." }, { "name": "WeekdaysMin", "kind": "property", "id": "property|WeekdaysMin|0|0|string?[]?||get;set;|h1b5bed40453f71829eab6c85e6bf801c10b74e5379d05e11d6d9017f16de33a0", "signature": "string?[]? WeekdaysMin { get; set; }", "summary": "Seven minimal weekday names, index 0 = Monday. Null entries fall back to English." }, { "name": "WeekdaysShort", "kind": "property", "id": "property|WeekdaysShort|0|0|string?[]?||get;set;|h20403cb0e830160750ce76693bb879485e38dd231eba3c4f6aa579ec3c6bf304", "signature": "string?[]? WeekdaysShort { get; set; }", "summary": "Seven short weekday names, index 0 = Monday. Null entries fall back to English." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Frees the table now, or \u2014 while a surface still reads it \u2014 hands the block to that surface, which frees it at the next frame boundary. Either way the frames after that one draw English." }] }, + { "name": "CuiSharp.LogBuffer", "displayName": "LogBuffer", "kind": "class", "summary": "A log\u0027s ring buffer and line index, owned by managed code. CUI keeps the text in storage the app supplies, so this type owns it: an unmanaged text block plus the line ring behind it. Append with Append or AppendLine and draw it with ui.LogView(id, log, opts), which adds the level filters, search, follow and copy toolbar.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int maxLines = 500;int maxChars = 65536||h15ee0eceaf3001248cd3ead585fa448dfd3a674c2b27c96afedc78e53f0a7276", "signature": "LogBuffer(int maxLines = 500, int maxChars = 65536)", "parameters": [{ "name": "maxLines", "type": "int", "default": "500" }, { "name": "maxChars", "type": "int", "default": "65536" }], "summary": "Creates a log that keeps maxLines lines of history." }, { "name": "Now", "kind": "property", "id": "property|Now|0|0|double||get;set;|h5b3b774ef76bc338b52fc1d30d8695cd7caef2945941184fa0dde6e9eca6028b", "signature": "double Now { get; set; }", "summary": "The timestamp the next line is stamped with, in seconds since the app started." }, { "name": "LineCount", "kind": "property", "id": "property|LineCount|0|0|int||get;|hccbe0d10fc4cba769fdf8bce186b88747cbf2bca89c28ea1307a990b730397dc", "signature": "int LineCount { get; }", "summary": "Lines currently in the buffer." }, { "name": "Text", "kind": "method", "id": "method|Text|0|0|string|||hda2af15c75622bf49ebd1d697b569642d3082d9ef9331399eaeb62527259b3fe", "signature": "string Text()", "summary": "Everything from the oldest line on, as text, with \\n between lines." }, { "name": "TotalLines", "kind": "property", "id": "property|TotalLines|0|0|ulong||get;|h278c4dd16e141f4395398ec1ff80e516fb4a90a880be506e1993f9a16bd317aa", "signature": "ulong TotalLines { get; }", "summary": "Lines ever appended, so the buffer can tell \u0022empty\u0022 from \u0022scrolled\u0022." }, { "name": "Append", "kind": "method", "id": "method|Append|0|0|void|string? text;LogLevel level;double time||h58a765c41c94e3f7a2cdbe6163f77cdbd3464e39c7caeed5a903018721e870e4", "signature": "void Append(string? text, LogLevel level, double time)", "parameters": [{ "name": "text", "type": "string?" }, { "name": "level", "type": "LogLevel" }, { "name": "time", "type": "double" }], "summary": "Appends one line stamped with time, in seconds." }, { "name": "AppendLine", "kind": "method", "id": "method|AppendLine|0|0|void|string? text;LogLevel level = LogLevel.Info||hc3c846d0b1a0b99fb0205109d32d141b8ee141999d9e1d48586ed7441ccc969e", "signature": "void AppendLine(string? text, LogLevel level = LogLevel.Info)", "parameters": [{ "name": "text", "type": "string?" }, { "name": "level", "type": "LogLevel", "default": "LogLevel.Info" }], "summary": "Appends one line at the buffer\u0027s own clock (Now)." }, { "name": "Clear", "kind": "method", "id": "method|Clear|0|0|void|||h9dc9f5ebe2d0fc5a7062ed0b58be5aadd046849041bb7d63ac9b387851728fe8", "signature": "void Clear()", "summary": "Forgets every line." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }] }, + { "name": "CuiSharp.LogLevel", "displayName": "LogLevel", "kind": "enum", "summary": "cui_log_level", "members": [{ "name": "Debug", "kind": "enum value", "id": "enum value|Debug|1|0|||1|h21de1c42bd8aeb7315c8ed5ec0bb7000616a3459707634a360c7a387476a4498", "signature": "Debug = 1", "value": "1" }, { "name": "Error", "kind": "enum value", "id": "enum value|Error|1|0|||4|h46cfe2086501cd9668374608efc825ba07d8a3d752322c578ab14f7b36ec8162", "signature": "Error = 4", "value": "4" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||2|h9d07ea1e38d6abe142845630dc2f28ea265d47cf4ff8de68a0fe4011916186d3", "signature": "Info = 2", "value": "2" }, { "name": "LevelCount", "kind": "enum value", "id": "enum value|LevelCount|1|0|||5|h90bc784d902aca1b088b3d173ae7cb5c8e2a40faa1eaa5423dd46e19ab199164", "signature": "LevelCount = 5", "value": "5" }, { "name": "Trace", "kind": "enum value", "id": "enum value|Trace|1|0|||0|he40bc5b267de21151499cbcb80a1c2119938310f5bbcfffb071b0e5723ab7bc9", "signature": "Trace = 0", "value": "0" }, { "name": "Warn", "kind": "enum value", "id": "enum value|Warn|1|0|||3|h614f3bc18c5372cda07b6d70455bad4f0b9023f718c8d5dad5083300b4b4f4ff", "signature": "Warn = 3", "value": "3" }] }, + { "name": "CuiSharp.LogLine", "displayName": "LogLine", "kind": "struct", "summary": "cui_log_line. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||uint Offset;uint Len = default;double Time = default;byte Level = default||h810039738fb39504ee35961d1050a9d7722dbafd0675ce287bbad9ceaa5c6075", "signature": "LogLine(uint Offset, uint Len = default, double Time = default, byte Level = default)", "parameters": [{ "name": "Offset", "type": "uint" }, { "name": "Len", "type": "uint", "default": "default" }, { "name": "Time", "type": "double", "default": "default" }, { "name": "Level", "type": "byte", "default": "default" }] }, { "name": "Level", "kind": "field", "id": "field|Level|0|0|byte|||hf95527e917db045b4141feff514aa39480a59a94561f62de0df5d44c3b0694a9", "signature": "public byte Level", "summary": "uint8_t level" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|double|||hf6eb8bfefd7957f87b5ed2738bc9a721b9ff45c732f53108d799ad2931a6b170", "signature": "public double Time", "summary": "double time" }, { "name": "Len", "kind": "field", "id": "field|Len|0|0|uint|||h9a7aa5477bab3013c524af61a8579b6327603d131ea638cadc7b4f4863a23b7e", "signature": "public uint Len", "summary": "uint32_t len" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|uint|||h05a920517fe4fac075579a468ffc003bcb5361b495613ee0c64c3c8b144de92f", "signature": "public uint Offset", "summary": "uint32_t offset" }] }, + { "name": "CuiSharp.LogViewOpts", "displayName": "LogViewOpts", "kind": "struct", "summary": "cui_log_view_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|bool|||h860df392a169878debf9e5d580124ccf63bf097014494370a8967baea8fd1225", "signature": "public bool NoToolbar", "summary": "just the lines" }, { "name": "Timestamps", "kind": "field", "id": "field|Timestamps|0|0|bool|||hc03df9126deae7312fab653657291e107622d766388d5e3b4186961b9dcc9080", "signature": "public bool Timestamps", "summary": "show each line\u0027s time as HH:MM:SS.mmm" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 12" }] }, + { "name": "CuiSharp.MarkdownOpts", "displayName": "MarkdownOpts", "kind": "struct", "summary": "cui_markdown_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "body text color, default foreground; links then take it too, underlined" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "smaller headings and tighter spacing, for chat bubbles" }, { "name": "FitContent", "kind": "field", "id": "field|FitContent|0|0|bool|||h31d43fc045d41dad6020d77eca4c4371f8237efa14a9a5db4c3f2179252380ff", "signature": "public bool FitContent", "summary": "as wide as the content needs, up to the space there is (chat bubbles)" }, { "name": "Streaming", "kind": "field", "id": "field|Streaming|0|0|bool|||hdeefea706ecc5ad3a5031c8102dc76f9e58b038200426557206f2a5e604d28b3", "signature": "public bool Streaming", "summary": "text is still arriving" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "body text size, default theme text_body" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "bytes of text to show, default strlen (text then need not end in a NUL)" }] }, + { "name": "CuiSharp.MarkdownResult", "displayName": "MarkdownResult", "kind": "struct", "summary": "cui_markdown_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Link;string? HoveredLink = null;int TaskOffset = default;int TaskLine = default;bool TaskChecked = default;float Height = default||h30b9deee7276dbc4cb48b59e54e18477ef29169e075aa62449b068cd2d15a338", "signature": "MarkdownResult(string? Link, string? HoveredLink = null, int TaskOffset = default, int TaskLine = default, bool TaskChecked = default, float Height = default)", "parameters": [{ "name": "Link", "type": "string?" }, { "name": "HoveredLink", "type": "string?", "default": "null" }, { "name": "TaskOffset", "type": "int", "default": "default" }, { "name": "TaskLine", "type": "int", "default": "default" }, { "name": "TaskChecked", "type": "bool", "default": "default" }, { "name": "Height", "type": "float", "default": "default" }] }, { "name": "TaskChecked", "kind": "field", "id": "field|TaskChecked|0|0|bool|||h86884b7eeaa0835281c8d55ede906c31347dd03b40214a4a6e4838996a50ddb8", "signature": "public bool TaskChecked", "summary": "the state the box was toggled to" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "height of the view in the latest layout" }, { "name": "TaskLine", "kind": "field", "id": "field|TaskLine|0|0|int|||h7e3bf329b030f664448bfbcf31830d3f925a03fd004a165b8de0edc39fbbae69", "signature": "public int TaskLine", "summary": "that item\u0027s 1 based line in text, 0 when none" }, { "name": "TaskOffset", "kind": "field", "id": "field|TaskOffset|0|0|int|||hc553ca4fe536319901025ae7db24cfa0ee4ba0e9ba7365622cd500b903057157", "signature": "public int TaskOffset", "summary": "a task box was toggled: byte offset in text of the character between its brackets, else -1" }, { "name": "HoveredLink", "kind": "field", "id": "field|HoveredLink|0|0|string?|||h32a43ce4bbf5a5a0c181174098c430123e6638a9dc4856da993c7f781faf3f4c", "signature": "public string? HoveredLink", "summary": "URL of the link under the pointer, or NULL; frame memory" }, { "name": "Link", "kind": "field", "id": "field|Link|0|0|string?|||hfc849a5fa2adda0ebfb00023870b1ee3135db107a2fb8cc11f845b89834fdcd1", "signature": "public string? Link", "summary": "URL of the link clicked (or activated with Enter) this frame, or NULL; frame memory" }] }, + { "name": "CuiSharp.MarkdownText", "displayName": "MarkdownText", "kind": "static class", "summary": "Applies an interactive checkbox toggle to markdown text: flips the [ ]/[x] at the offset a MarkdownResult reports.", "members": [{ "name": "ToggleTask", "kind": "method", "id": "method|ToggleTask|1|0|bool|ref string text;int taskOffset;MarkdownResult result||h019b7011964f54e98adb5a78064fd41cac4d7f7c29cc37653bd97b68c3b89197", "signature": "static bool ToggleTask(ref string text, int taskOffset, MarkdownResult result)", "parameters": [{ "name": "text", "type": "ref string" }, { "name": "taskOffset", "type": "int" }, { "name": "result", "type": "MarkdownResult" }], "summary": "Rewrites text with the task box at taskOffset flipped, keeping every other byte." }] }, + { "name": "CuiSharp.MenuBarMenuOpts", "displayName": "MenuBarMenuOpts", "kind": "struct", "summary": "cui_menu_bar_menu_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }, { "name": "Mnemonic", "kind": "field", "id": "field|Mnemonic|0|0|sbyte|||hacfbb11e49ff4749382abc40b19888f44cb46198f0c8b86ad384e244793a71f1", "signature": "public sbyte Mnemonic", "summary": "char mnemonic" }] }, + { "name": "CuiSharp.MenuBarOpts", "displayName": "MenuBarOpts", "kind": "struct", "summary": "cui_menu_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|bool|||hb6606a0691e1878d2d505efaca98f05506ff46d2cad01766c9efde8a172544e3", "signature": "public bool NoBorder", "summary": "_Bool no_border" }] }, + { "name": "CuiSharp.MenuItemOpts", "displayName": "MenuItemOpts", "kind": "struct", "summary": "cui_menu_item_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Checked", "kind": "field", "id": "field|Checked|0|0|bool|||hb2ccb44fb881c0e3e6aa40c0bf9d6aebc2964a76744af30085a6ff1ce582fac4", "signature": "public bool Checked", "summary": "_Bool checked" }, { "name": "Danger", "kind": "field", "id": "field|Danger|0|0|bool|||h3e552965bd0c23ceb0f571e7b36f3aff5b19af39ece9e0ca708e9a8028437fdf", "signature": "public bool Danger", "summary": "_Bool danger" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "const char * shortcut" }] }, + { "name": "CuiSharp.MenuOpts", "displayName": "MenuOpts", "kind": "struct", "summary": "cui_menu_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant variant" }, { "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "IconOnly", "kind": "field", "id": "field|IconOnly|0|0|bool|||ha338e8c8d1c6b6f843f2ac0c9673ab05d124e55bcb723e302ca438605f613acf", "signature": "public bool IconOnly", "summary": "_Bool icon_only" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.MetricOpts", "displayName": "MetricOpts", "kind": "struct", "summary": "cui_metric_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|bool|||hdbb63017a214eb7f7b2818c5485cd80ae1d87f9c8fd20fc1e56e32d63eec76ee", "signature": "public bool LowerIsBetter", "summary": "build times, errors, latency: a fall is good news, shown in green" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "float delta" }, { "name": "Spark", "kind": "field", "id": "field|Spark|0|0|float[]?|||hc9e1b6fccaebd6abaa47807970031bdfc70e61fc113b21ee950fb6f17590e6e1", "signature": "public float[]? Spark", "summary": "const float * spark" }, { "name": "DeltaLabel", "kind": "field", "id": "field|DeltaLabel|0|0|string?|||h8adc762344509f394ae06230bb6bc2bc963256ce9b575f04d462e1f7ed6ad15f", "signature": "public string? DeltaLabel", "summary": "const char * delta_label" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.Model", "displayName": "Model", "kind": "struct", "summary": "cui_model. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? Detail = null;string? Badge = null;string? Icon = null||h77344b8a557e720bbed7c2bdf438bbb0cf88b9304917ff297b2bce771b84a02b", "signature": "Model(string? Name, string? Detail = null, string? Badge = null, string? Icon = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Detail", "type": "string?", "default": "null" }, { "name": "Badge", "type": "string?", "default": "null" }, { "name": "Icon", "type": "string?", "default": "null" }] }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.ModelPickerOpts", "displayName": "ModelPickerOpts", "kind": "struct", "summary": "cui_model_picker_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Ghost", "kind": "field", "id": "field|Ghost|0|0|bool|||h9a0454fdd8bc7e4ba216478b4bc6a82cf83e57f56126c994723ed2f8139f5dbe", "signature": "public bool Ghost", "summary": "_Bool ghost" }] }, + { "name": "CuiSharp.Mods", "displayName": "Mods", "kind": "enum", "summary": "cui_mod", "members": [{ "name": "Alt", "kind": "enum value", "id": "enum value|Alt|1|0|||4|hbd31537ac8a6bc47e9d556e937a5f027cf645b28bc12825e5cbcf87e3ffc7ae2", "signature": "Alt = 4", "value": "4" }, { "name": "Ctrl", "kind": "enum value", "id": "enum value|Ctrl|1|0|||2|h9ba5357acc87d963a81a5da6fa5a6ca5d901cbf297d2f7db199110f0800a921a", "signature": "Ctrl = 2", "value": "2" }, { "name": "Primary", "kind": "enum value", "id": "enum value|Primary|1|0|||2|h0e4c408ff3df183ec6a5bda2a176eb76858f0b55c583a21318273b354abb4333", "signature": "Primary = 2", "value": "2" }, { "name": "Shift", "kind": "enum value", "id": "enum value|Shift|1|0|||1|hef4a9644eec61cac19c5aecdf0c8955bf41e2022cdf39cac85ad8329ce67c805", "signature": "Shift = 1", "value": "1" }, { "name": "Super", "kind": "enum value", "id": "enum value|Super|1|0|||8|h633fe5adaae4e192c0cc3c53dafe4009c85d114ee1d2afc4bd664d1fce2dfc11", "signature": "Super = 8", "value": "8" }] }, + { "name": "CuiSharp.MoneyOpts", "displayName": "MoneyOpts", "kind": "struct", "summary": "cui_money_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int decimals" }, { "name": "Code", "kind": "field", "id": "field|Code|0|0|string?|||hde42c28fc8c88660f5826912133eb893ad7c711775687d27f968d87c856ed456", "signature": "public string? Code", "summary": "const char * code" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|string?|||h6e4db358e5bb7cc3e8ac0f128ae742d77d252775d935f95c1c7492d00fc7cd97", "signature": "public string? Hint", "summary": "const char * hint" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Symbol", "kind": "field", "id": "field|Symbol|0|0|string?|||h148cc6ccee7adb79b9d6d0102150b28b69a2c2e77159c167f5bba469c61f3818", "signature": "public string? Symbol", "summary": "const char * symbol" }] }, + { "name": "CuiSharp.MonthEvent", "displayName": "MonthEvent", "kind": "struct", "summary": "cui_month_event. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;Date Start = default;Date End = default;float Time = default;bool AllDay = default;Tone Tone = Tone.Neutral||h39acac260f7353bd50fbe047bedb9d573cff1edb74cabd3633c9b3c4db71b783", "signature": "MonthEvent(string? Title, Date Start = default, Date End = default, float Time = default, bool AllDay = default, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Start", "type": "Date", "default": "default" }, { "name": "End", "type": "Date", "default": "default" }, { "name": "Time", "type": "float", "default": "default" }, { "name": "AllDay", "type": "bool", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|Date|||h2f89325764b6e561f40d25c0710559925a9d23b2f268dee7a53f0a4c0e99f15b", "signature": "public Date End", "summary": "inclusive; an unset or earlier end means one day" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|Date|||h5308fa14681e4e7754e3fa507d5ec9848904ff7bb147546c875b26a58cda5588", "signature": "public Date Start", "summary": "inclusive; an unset or earlier end means one day" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "AllDay", "kind": "field", "id": "field|AllDay|0|0|bool|||h733907b86017aed670b0a1c3b0adfedc3f2245e28cffba20fc22cc369b91e06e", "signature": "public bool AllDay", "summary": "a bar, like every event that spans days" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|float|||h15580e530959593ba26e1516c12ce319fbad5d5b9d84fe7810a722131f57f895", "signature": "public float Time", "summary": "hour of a timed event (9.5 is 9:30); ignored when all_day" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.MonthOpts", "displayName": "MonthOpts", "kind": "struct", "summary": "cui_month_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Today", "kind": "field", "id": "field|Today|0|0|Date|||h4ddaac7f888b19523e879039fb8c7d4cd05d5d0b7b4ee66ac05e7cafabae2551", "signature": "public Date Today", "summary": "overrides the system date when set (another time zone, tests)" }, { "name": "Hour12", "kind": "field", "id": "field|Hour12|0|0|bool|||hde952b6b9440a2d05be1f1a294867e3314125c276408d4c22e63a6eb694793f1", "signature": "public bool Hour12", "summary": "9:30a rather than 9:30" }, { "name": "CellHeight", "kind": "field", "id": "field|CellHeight|0|0|float|||hf4309f4d2441e17367cb19c170e3dc8474ed98149a30e30cb2e5983a5f6da8b8", "signature": "public float CellHeight", "summary": "default 104, 44 on a phone" }, { "name": "FirstWeekday", "kind": "field", "id": "field|FirstWeekday|0|0|int|||h3ef476bd8d4650cc173a18a8ce98dacca1ff9beff34ac40ecbbf945c23df4199", "signature": "public int FirstWeekday", "summary": "0 Monday (default) .. 6 Sunday" }, { "name": "DayNames", "kind": "field", "id": "field|DayNames|0|0|string[]?|||h3e2e3113c7a30b96c60119dbd3e7ce6430b4e0ed18f6ecddd6942a868943a44c", "signature": "public string[]? DayNames", "summary": "7 short names, Monday first" }, { "name": "MonthNames", "kind": "field", "id": "field|MonthNames|0|0|string[]?|||h15bb3950293a7020197785285f9ed1e1b9fa2b0cd40063b23c31d8ef549a2a34", "signature": "public string[]? MonthNames", "summary": "12 names for another language, January first" }] }, + { "name": "CuiSharp.MonthResult", "displayName": "MonthResult", "kind": "struct", "summary": "cui_month_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Event;bool DayClicked = default;bool DayActivated = default;bool MonthChanged = default||heb24359c6e93e506b075fcdba19fd6fb03cf2bda8d5b475b3f0b4b53497c8a81", "signature": "MonthResult(int Event, bool DayClicked = default, bool DayActivated = default, bool MonthChanged = default)", "parameters": [{ "name": "Event", "type": "int" }, { "name": "DayClicked", "type": "bool", "default": "default" }, { "name": "DayActivated", "type": "bool", "default": "default" }, { "name": "MonthChanged", "type": "bool", "default": "default" }] }, { "name": "DayActivated", "kind": "field", "id": "field|DayActivated|0|0|bool|||h0acec02d7a457957bf2c9891ee8d06b56cc8a1295bd2f9abd73607c07a9cfc79", "signature": "public bool DayActivated", "summary": "double-clicked or Enter: add an event there" }, { "name": "DayClicked", "kind": "field", "id": "field|DayClicked|0|0|bool|||h2a8ce07c1d0c4e0e8a840ef9cd7740e9e71e7800450fdc3ca006456f32a2a514", "signature": "public bool DayClicked", "summary": "a day was clicked or moved to with the keys (see selected)" }, { "name": "MonthChanged", "kind": "field", "id": "field|MonthChanged|0|0|bool|||hbe6795ad5e09bd5c4c0026e468e42c35952d86f671a9ce005bae9d45205af4de", "signature": "public bool MonthChanged", "summary": "the arrows, Today or the keys changed *month" }, { "name": "Event", "kind": "field", "id": "field|Event|0|0|int|||hf874e9890201f2fa587b91d9d374afbc1ab3d09f700c4a38f45f91cafea69f11", "signature": "public int Event", "summary": "clicked event, or -1" }] }, + { "name": "CuiSharp.MouseButton", "displayName": "MouseButton", "kind": "enum", "summary": "cui_mouse_button", "members": [{ "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||0|hbe7aa7b592bed7bbd61d522a9f2403b9475421178f93cb513b79a7ddb0edae48", "signature": "Left = 0", "value": "0" }, { "name": "Middle", "kind": "enum value", "id": "enum value|Middle|1|0|||2|hb48ed983676e5a072c73ea7b5adc47987426b06a77359d8321d3cc8438e934f4", "signature": "Middle = 2", "value": "2" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||1|ha49e326d8e596c96baeeb0893fa229748ba21aa2344fa6f87f2a08b5a9bb6b6b", "signature": "Right = 1", "value": "1" }] }, + { "name": "CuiSharp.MultiSelectOpts", "displayName": "MultiSelectOpts", "kind": "struct", "summary": "cui_multi_select_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Searchable", "kind": "field", "id": "field|Searchable|0|0|bool|||he07abb6a59c4f1b548e1e75a7d0a2b5775f298d1d816b82649be0aadf7f20bc5", "signature": "public bool Searchable", "summary": "_Bool searchable" }, { "name": "MaxChips", "kind": "field", "id": "field|MaxChips|0|0|int|||h5a257dc5993646fab646b8979966626c37e6b96141761792a36818501629ad17", "signature": "public int MaxChips", "summary": "chips before \u0022\u002BN\u0022, default 3" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, + { "name": "CuiSharp.NativeFileDialogProvider", "displayName": "NativeFileDialogProvider", "kind": "class", "summary": "The OS dialog, through CUI. This is what an app gets unless it supplies its own.", "members": [{ "name": "Pick", "kind": "method", "id": "method|Pick|0|0|FilePickResult|CuiWindow window;FileDialogOpts options||h9f867669da4a21c3b53bce004250b8d1847a0abeb5d7077e199bd76432ff6d37", "signature": "FilePickResult Pick(CuiWindow window, FileDialogOpts options)", "parameters": [{ "name": "window", "type": "CuiWindow" }, { "name": "options", "type": "FileDialogOpts" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h49319a3310167653083d957024f735ba37a664463111e4301604d963a480f641", "signature": "NativeFileDialogProvider()" }, { "name": "Instance", "kind": "property", "id": "property|Instance|1|0|NativeFileDialogProvider||get;|hdb5dfd82ab8e7302592f98a044ea242b45c550f7a12409b68383013ab3c9ce5f", "signature": "static NativeFileDialogProvider Instance { get; }", "summary": "Shares the one implementation, which holds no state." }] }, + { "name": "CuiSharp.NavOpts", "displayName": "NavOpts", "kind": "struct", "summary": "cui_nav_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "_Bool selected" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|string?|||hf3da4970c81056945d7238681c51ca4ab28004c0ca941fabfe885256c6388d9b", "signature": "public string? Group", "summary": "const char * group" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.NetRequest", "displayName": "NetRequest", "kind": "struct", "summary": "cui_net_request. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? Method = null;int Status = default;string? Type = null;double Size = default;double Start = default;float[]? Timing = null||h363a19c2efa88c581ac3795fbf54709ed4c2f3c49306d9b62e97b1cf4daf874c", "signature": "NetRequest(string? Name, string? Method = null, int Status = default, string? Type = null, double Size = default, double Start = default, float[]? Timing = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Method", "type": "string?", "default": "null" }, { "name": "Status", "type": "int", "default": "default" }, { "name": "Type", "type": "string?", "default": "null" }, { "name": "Size", "type": "double", "default": "default" }, { "name": "Start", "type": "double", "default": "default" }, { "name": "Timing", "type": "float[]?", "default": "null" }] }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|double|||h7b5849893687f979193405168798960c297b79687570ed452c529a187133d42f", "signature": "public double Size", "summary": "bytes transferred" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "seconds from the start of the page" }, { "name": "Timing", "kind": "field", "id": "field|Timing|0|0|float[]?|||hd135f088c5510056d2faa184de202fd2432165878bc79d42ae4f93dad8e70251", "signature": "public float[]? Timing", "summary": "seconds: queued, dns, connect, tls, waiting, download" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|int|||hcc92df3b247bff320f1b619f5ff854b64fdb1ce369fb4396a12c2d29bb6a04d8", "signature": "public int Status", "summary": "0 while pending or when it failed" }, { "name": "Method", "kind": "field", "id": "field|Method|0|0|string?|||h43edb6c576a75b56573640fa1b3c3165aeef627fe5c8abe6714ca10bf2480613", "signature": "public string? Method", "summary": "\u0022GET\u0022" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "path or URL; the last part is shown" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|string?|||hd13f10c6a1a43e5dad4e56f1c9942eeda7e31c88858c2d5b682e8c3bf87faf1f", "signature": "public string? Type", "summary": "\u0022fetch\u0022, \u0022script\u0022, \u0022image\u0022..." }] }, + { "name": "CuiSharp.NodeEditorOpts", "displayName": "NodeEditorOpts", "kind": "struct", "summary": "cui_node_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default: fill the width, 440 tall" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default: fill the width, 440 tall" }, { "name": "Minimap", "kind": "field", "id": "field|Minimap|0|0|bool|||h91fd5e33468d3c229fcb0ed2e9fb28bfdc5efafe51ff5aa1bfe64751e4cfd2b1", "signature": "public bool Minimap", "summary": "an overview of the graph in the bottom right corner; click it to move there" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|bool|||h3235658a755bd4564629364c715a172c1b27a0be758c9a47167e63c08938a56d", "signature": "public bool NoGrid", "summary": "_Bool no_grid" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "default 0.25 .. 2" }, { "name": "MinZoom", "kind": "field", "id": "field|MinZoom|0|0|float|||h29a9b1097fc3444e1615953dab0039e9cc2b1daf864d629ecf3057778d2512c1", "signature": "public float MinZoom", "summary": "default 0.25 .. 2" }] }, + { "name": "CuiSharp.NodeOpts", "displayName": "NodeOpts", "kind": "struct", "summary": "cui_node_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "width default 184" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "width default 184" }] }, + { "name": "CuiSharp.NodeView", "displayName": "NodeView", "kind": "struct", "summary": "cui_node_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float X;float Y = default;float Zoom = default||h4f09583e7e954efae5f3260f31684e5139214de10736978ab2039f088f7a47e1", "signature": "NodeView(float X, float Y = default, float Zoom = default)", "parameters": [{ "name": "X", "type": "float" }, { "name": "Y", "type": "float", "default": "default" }, { "name": "Zoom", "type": "float", "default": "default" }] }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "pan in points; zoom 0 means 1" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "pan in points; zoom 0 means 1" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "pan in points; zoom 0 means 1" }] }, + { "name": "CuiSharp.NowPlayingOpts", "displayName": "NowPlayingOpts", "kind": "struct", "summary": "cui_now_playing_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "_Bool compact" }] }, + { "name": "CuiSharp.NowPlayingState", "displayName": "NowPlayingState", "kind": "struct", "summary": "cui_now_playing. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Artist = null;ulong Art = default;Color ArtColor = default;float Position = default;float Duration = default;bool Playing = default||hbb9e94dbc0e87767dd3aa06e23d7f01d947304dca3824a060aa52b74fb96da1e", "signature": "NowPlayingState(string? Title, string? Artist = null, ulong Art = default, Color ArtColor = default, float Position = default, float Duration = default, bool Playing = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Artist", "type": "string?", "default": "null" }, { "name": "Art", "type": "ulong", "default": "default" }, { "name": "ArtColor", "type": "Color", "default": "default" }, { "name": "Position", "type": "float", "default": "default" }, { "name": "Duration", "type": "float", "default": "default" }, { "name": "Playing", "type": "bool", "default": "default" }] }, { "name": "ArtColor", "kind": "field", "id": "field|ArtColor|0|0|Color|||h244eb7cccbf77df1ddb22633c7fd350f094198b6b2aadf2578281d01374036e8", "signature": "public Color ArtColor", "summary": "cui_color art_color" }, { "name": "Playing", "kind": "field", "id": "field|Playing|0|0|bool|||hdf6871b87f5c865fbbb8cb1ba249b1a8417a1a2fd21b6fe9e7d44948808de1af", "signature": "public bool Playing", "summary": "_Bool playing" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float duration" }, { "name": "Position", "kind": "field", "id": "field|Position|0|0|float|||hd7fd432a49838186bd7a06ec98a4843ede3007d3a1803ab3581dabd884c9c313", "signature": "public float Position", "summary": "float position" }, { "name": "Artist", "kind": "field", "id": "field|Artist|0|0|string?|||h07dabe513fac6496756425c36fdb68907748dada03582ca5fa245ec67ec449d2", "signature": "public string? Artist", "summary": "const char * artist" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }, { "name": "Art", "kind": "field", "id": "field|Art|0|0|ulong|||h19abe1aca1c372b5d71e6ee5c212ee79fe340cde357d6c23bf3af4a305f7caba", "signature": "public ulong Art", "summary": "cui_texture art" }] }, + { "name": "CuiSharp.NumberOpts", "displayName": "NumberOpts", "kind": "struct", "summary": "cui_number_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|double|||h44b63c009d1e13f96b6beedec59bbb32a22e099dcdc403d6954e0407657f670a", "signature": "public double Step", "summary": "double step" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int decimals" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "const char * suffix" }] }, + { "name": "CuiSharp.OpenScope", "displayName": "OpenScope", "kind": "ref struct", "summary": "A conditional container. Use using var scope = \u2026; if (scope) { \u2026 }.", "members": [{ "name": "Open", "kind": "property", "id": "property|Open|0|0|bool||get;|h6f230c8664d026604496adcaeb16e6ee760fdae9254fd2f5c98a7b49ae4549e6", "signature": "bool Open { get; }", "summary": "Whether the native container opened and its body should be drawn." }, { "name": "implicit operator bool", "kind": "conversion", "id": "conversion|op_Implicit|1|0|bool|OpenScope scope||ha3f24f17d003f9819102f485eb8ea795e3cdbdfd9a7779996b7ddb7445f92c2b", "signature": "static implicit operator bool(OpenScope scope)", "member": "op_Implicit", "parameters": [{ "name": "scope", "type": "OpenScope" }], "summary": "Tests whether the body should be drawn." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Closes the container only if it opened." }] }, + { "name": "CuiSharp.PaintFn", "displayName": "PaintFn", "kind": "delegate", "summary": "A canvas painter, invoked after layout with a fresh stack-only UI value.", "members": [{ "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|Ui ui;RectF rect;AsyncCallback callback;object object||hd1cb9625acad153c3c617f4a807c644656ea9aea371cc8374146177d63e409d4", "signature": "IAsyncResult BeginInvoke(Ui ui, RectF rect, AsyncCallback callback, object @object)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "rect", "type": "RectF" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||h5b7bac8ff65ff761901fd9c3234b2d0701314e7fa30a78cd84b7c5176edd3e0d", "signature": "PaintFn(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|void|IAsyncResult result||h477a5257f2f4c2172e54e854d9bc2f5c7bb790dade430a493c5a1c7d25248214", "signature": "void EndInvoke(IAsyncResult result)", "parameters": [{ "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|void|Ui ui;RectF rect||hfa6527aba7d9f93374c5eb721cc5288568b084d05d6e4697f034a81326571b2a", "signature": "void Invoke(Ui ui, RectF rect)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "rect", "type": "RectF" }] }] }, + { "name": "CuiSharp.PathBarOpts", "displayName": "PathBarOpts", "kind": "struct", "summary": "cui_path_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Menus", "kind": "field", "id": "field|Menus|0|0|bool|||h289bddb311246ca876859a205e5f81cc2870db62c5217694981239fde27b7d7b", "signature": "public bool Menus", "summary": "separators open a menu of the next segment\u0027s siblings" }, { "name": "NoEdit", "kind": "field", "id": "field|NoEdit|0|0|bool|||ha3bd0df1896a5ea75bedca8344056a60172b60916f05917d9637a1c21b3348a1", "signature": "public bool NoEdit", "summary": "no text mode" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "before the first segment" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|string?|||h1d596481f0534ef4670b109aa09a18150844b650eb6d98ed99b486585a9b119f", "signature": "public string? Text", "summary": "what editing starts with, default the segments joined by \u0022/\u0022" }] }, + { "name": "CuiSharp.PathBarResult", "displayName": "PathBarResult", "kind": "struct", "summary": "cui_path_bar_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;string? Submitted = null;bool Editing = default||h38c6b295cd2ce16cd3875f32827c2cfd8543b5c5446014331fec112c69cdebfe", "signature": "PathBarResult(int Clicked, string? Submitted = null, bool Editing = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Submitted", "type": "string?", "default": "null" }, { "name": "Editing", "type": "bool", "default": "default" }] }, { "name": "Editing", "kind": "field", "id": "field|Editing|0|0|bool|||hf6da8912c99ee0eb02d64cb361db4ad7c5648ed260c587b4f2b39cdd5515b8bb", "signature": "public bool Editing", "summary": "_Bool editing" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "segment clicked (here or in the \u0022...\u0022 menu), else -1" }, { "name": "Submitted", "kind": "field", "id": "field|Submitted|0|0|string?|||hbd70346b1db65285e15a9439e2c1153bea12b0603a582388ffe3e0368249c370", "signature": "public string? Submitted", "summary": "the typed path after Enter, else NULL; valid this frame" }] }, + { "name": "CuiSharp.PinOpts", "displayName": "PinOpts", "kind": "struct", "summary": "cui_pin_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Type", "kind": "field", "id": "field|Type|0|0|int|||h291cfcf7e8be08751051d80452d4ba9737270b48802d5b353cb8f86b5c8d4c2a", "signature": "public int Type", "summary": "int type" }] }, + { "name": "CuiSharp.PipelineJob", "displayName": "PipelineJob", "kind": "struct", "summary": "cui_pipeline_job. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;int Stage = default;JobStatus Status = JobStatus.Pending;float Duration = default;bool AllowFailure = default||hf1d70c487faa81899160b80600c3418d3c007842940d27bbfede44daf45aa8f8", "signature": "PipelineJob(string? Name, int Stage = default, JobStatus Status = JobStatus.Pending, float Duration = default, bool AllowFailure = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Stage", "type": "int", "default": "default" }, { "name": "Status", "type": "JobStatus", "default": "JobStatus.Pending" }, { "name": "Duration", "type": "float", "default": "default" }, { "name": "AllowFailure", "type": "bool", "default": "default" }] }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|JobStatus|||h8dbfd9370caabecd55d2b859321b59d6a4ee052ab7364783aff88cbd0eff2901", "signature": "public JobStatus Status", "summary": "cui_job_status status" }, { "name": "AllowFailure", "kind": "field", "id": "field|AllowFailure|0|0|bool|||h24c9847020a78476426dad2b6b095d67d1a9a130d38c4c5e3be5532607a0ba1f", "signature": "public bool AllowFailure", "summary": "a failure does not fail the stage" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "seconds; negative when it has not run" }, { "name": "Stage", "kind": "field", "id": "field|Stage|0|0|int|||h6fc576c7f16ed80d38f61828b33d23fb8c2ef709dfff4121d292da2de39e7868", "signature": "public int Stage", "summary": "index into the stage names" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.PipelineOpts", "displayName": "PipelineOpts", "kind": "struct", "summary": "cui_pipeline_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "job shown selected, set on a click" }] }, + { "name": "CuiSharp.PipelineResult", "displayName": "PipelineResult", "kind": "struct", "summary": "cui_pipeline_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Hovered = default||ha08a55a9bdd30e063c3836c583a82e4211ac87856c7365e728fe3ab0e85355cd", "signature": "PipelineResult(int Clicked, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "job indices, or -1" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "job indices, or -1" }] }, + { "name": "CuiSharp.PixelFormat", "displayName": "PixelFormat", "kind": "enum", "summary": "Pixel layout for Render.", "members": [{ "name": "Bgra", "kind": "enum value", "id": "enum value|Bgra|1|0|||1|h8c5e5d26ea6e8313039382a525db7a512308017c8b8b62061deaa37e7c202df4", "signature": "Bgra = 1", "summary": "Bytes B, G, R, A (Win32 DIBs, and what most framebuffers want).", "value": "1" }, { "name": "Rgba", "kind": "enum value", "id": "enum value|Rgba|1|0|||0|hc7fcacd0ab678cc1579948fc3eb8e07774063388065bdc4edb7957d68b3a2efa", "signature": "Rgba = 0", "summary": "Bytes R, G, B, A.", "value": "0" }] }, + { "name": "CuiSharp.Placement", "displayName": "Placement", "kind": "enum", "summary": "cui_placement", "members": [{ "name": "Bottom", "kind": "enum value", "id": "enum value|Bottom|1|0|||1|h997cd45c98b3147942efa729e07c36fa2f0a30a89e304cf6991322e27b322ed0", "signature": "Bottom = 1", "value": "1" }, { "name": "BottomEnd", "kind": "enum value", "id": "enum value|BottomEnd|1|0|||2|h9b6b149aa7bac6706bdda2c808067687e645210e40450cd3abacbb40c79e25b2", "signature": "BottomEnd = 2", "value": "2" }, { "name": "BottomStart", "kind": "enum value", "id": "enum value|BottomStart|1|0|||0|h5234647b992b2dafe2011a0d8f8a813ae3840a6c0f1b640e82975bd758cb8966", "signature": "BottomStart = 0", "value": "0" }, { "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||9|h41840e9c8028f2df892da2d80c3f6762f6c5a25e4d22db24f23eb24d549ee2a7", "signature": "Left = 9", "value": "9" }, { "name": "LeftStart", "kind": "enum value", "id": "enum value|LeftStart|1|0|||7|h0f631620b393d113fcc13f4ab100e52f8fd3e28bd6b85b94eb0128bba2310875", "signature": "LeftStart = 7", "value": "7" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||8|h1b98d7a43dddc2834373bc7c9487a6f1fba5e78b6322e5e7acc8b1f42176a50e", "signature": "Right = 8", "value": "8" }, { "name": "RightStart", "kind": "enum value", "id": "enum value|RightStart|1|0|||6|hb88f595137f2657a29c127ce18f43ccdb828957e04f3d832a997f81c4e5d54a3", "signature": "RightStart = 6", "value": "6" }, { "name": "Top", "kind": "enum value", "id": "enum value|Top|1|0|||4|h0634112b52bc85364fae2088535e4a22f7edcfaeca6c1b7e6feb028c823633f5", "signature": "Top = 4", "value": "4" }, { "name": "TopEnd", "kind": "enum value", "id": "enum value|TopEnd|1|0|||5|h1f8031a858198c43f8ef481f5c46a4df5d1b7cd68e9fe3594f519f79a5210629", "signature": "TopEnd = 5", "value": "5" }, { "name": "TopStart", "kind": "enum value", "id": "enum value|TopStart|1|0|||3|h6f0dc1d520e146104a3d5f06af838b4f461907eda8c4af65c2665f25988f6e7e", "signature": "TopStart = 3", "value": "3" }] }, + { "name": "CuiSharp.PlanStep", "displayName": "PlanStep", "kind": "struct", "summary": "cui_plan_step. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Detail = null;CuiTaskStatus Status = CuiTaskStatus.Pending||h47227e6be66b2a52ab2c93521766d315872cdc85e25337d1b0507d4978ffa2c3", "signature": "PlanStep(string? Title, string? Detail = null, CuiTaskStatus Status = CuiTaskStatus.Pending)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Detail", "type": "string?", "default": "null" }, { "name": "Status", "type": "CuiTaskStatus", "default": "CuiTaskStatus.Pending" }] }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status status" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.PlayerEvents", "displayName": "PlayerEvents", "kind": "enum", "summary": "CUI_PLAYER_TOGGLE", "members": [{ "name": "Next", "kind": "enum value", "id": "enum value|Next|1|0|||4|hb9eed07a8764318c4bf93c00a16f0099da2e9ee3628adbf85288fab4642dcdfd", "signature": "Next = 4", "value": "4" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Prev", "kind": "enum value", "id": "enum value|Prev|1|0|||2|h39afbb6c0deff438bb7922f5d7d445709ae6bfa1fa65a25e401c41cd84d0a06a", "signature": "Prev = 2", "value": "2" }, { "name": "Seek", "kind": "enum value", "id": "enum value|Seek|1|0|||8|h5b24943e0dc23a9fc85d950bed20b4b04b04b5feadb16c1dc60719c70552a530", "signature": "Seek = 8", "value": "8" }, { "name": "Toggle", "kind": "enum value", "id": "enum value|Toggle|1|0|||1|h8d1267db6f2e2b404b183eab5c47c5fcc7ca7f75bfdb67381e662c97f931f11e", "signature": "Toggle = 1", "value": "1" }] }, + { "name": "CuiSharp.PopoverOpts", "displayName": "PopoverOpts", "kind": "struct", "summary": "cui_popover_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }] }, + { "name": "CuiSharp.PresenceUser", "displayName": "PresenceUser", "kind": "struct", "summary": "cui_presence_user. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;Color Color = default;ulong Avatar = default;bool Idle = default||hdb436cb70c2db907d4474ac13b15de2953ac7f28ffcb52ee87ea18c1234ca05f", "signature": "PresenceUser(string? Name, Color Color = default, ulong Avatar = default, bool Idle = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Color", "type": "Color", "default": "default" }, { "name": "Avatar", "type": "ulong", "default": "default" }, { "name": "Idle", "type": "bool", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Idle", "kind": "field", "id": "field|Idle|0|0|bool|||h442e9857afee320342ed5cd5da27a5fd4579e0f9b73b29455fda773c08d75f59", "signature": "public bool Idle", "summary": "_Bool idle" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture avatar" }] }, + { "name": "CuiSharp.ProblemItem", "displayName": "ProblemItem", "kind": "struct", "summary": "cui_diagnostic. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Severity Severity;string? Message = null;string? File = null;int Line = default;int Column = default;string? Source = null;string? Code = null||hfbda9a242fd94806258fd1326f897c71ac365457f4db60f3f59fdc3e84ca14ee", "signature": "ProblemItem(Severity Severity, string? Message = null, string? File = null, int Line = default, int Column = default, string? Source = null, string? Code = null)", "parameters": [{ "name": "Severity", "type": "Severity" }, { "name": "Message", "type": "string?", "default": "null" }, { "name": "File", "type": "string?", "default": "null" }, { "name": "Line", "type": "int", "default": "default" }, { "name": "Column", "type": "int", "default": "default" }, { "name": "Source", "type": "string?", "default": "null" }, { "name": "Code", "type": "string?", "default": "null" }] }, { "name": "Severity", "kind": "field", "id": "field|Severity|0|0|Severity|||h9e5e3ed80aa43cf83d574b57f16dd2271622ff069cd74d83468aa520e5b9608b", "signature": "public Severity Severity", "summary": "cui_severity severity" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "1 based; 0 leaves it out" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "1 based; 0 leaves it out" }, { "name": "Code", "kind": "field", "id": "field|Code|0|0|string?|||hde42c28fc8c88660f5826912133eb893ad7c711775687d27f968d87c856ed456", "signature": "public string? Code", "summary": "\u0022-Wunused-variable\u0022... (may be NULL)" }, { "name": "File", "kind": "field", "id": "field|File|0|0|string?|||hcb0b8d0218e8cf25aa697a2fe7d3f1b57e07380a5833c8f8df5ed5a679ae940a", "signature": "public string? File", "summary": "groups the rows; NULL or \u0022\u0022 groups as \u0022No file\u0022" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|string?|||hef2e6225d86c6eb3366a0a172da793ed9f3ab16202af98b590c25bfb4adb1feb", "signature": "public string? Message", "summary": "const char * message" }, { "name": "Source", "kind": "field", "id": "field|Source|0|0|string?|||haadc02f4fa442e516b6de4476ffe875cdf7c960634984573467eba700b08ca50", "signature": "public string? Source", "summary": "\u0022gcc\u0022, \u0022clang-tidy\u0022... (may be NULL)" }] }, + { "name": "CuiSharp.ProblemsOpts", "displayName": "ProblemsOpts", "kind": "struct", "summary": "cui_problems_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|bool|||h860df392a169878debf9e5d580124ccf63bf097014494370a8967baea8fd1225", "signature": "public bool NoToolbar", "summary": "_Bool no_toolbar" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.ProblemsResult", "displayName": "ProblemsResult", "kind": "struct", "summary": "cui_problems_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Selected;int Activated = default;int Shown = default||h4ce40ab59a6ee7d82fbf606d923abcbb711077e222e79b4ff925d83426750ac5", "signature": "ProblemsResult(int Selected, int Activated = default, int Shown = default)", "parameters": [{ "name": "Selected", "type": "int" }, { "name": "Activated", "type": "int", "default": "default" }, { "name": "Shown", "type": "int", "default": "default" }] }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "diagnostic opened this frame (Enter, double-click), or -1" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "diagnostic selected, or -1" }, { "name": "Shown", "kind": "field", "id": "field|Shown|0|0|int|||hb58805b7e5564373001000b59ffc5a328243e1da90b1bf69d07d8ff266b1d72f", "signature": "public int Shown", "summary": "diagnostics that pass the filters" }] }, + { "name": "CuiSharp.ProgressOpts", "displayName": "ProgressOpts", "kind": "struct", "summary": "cui_progress_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|bool|||he38813187674932a5621bb6b38b49afa8004ab77baa2505c22f3600d136405a8", "signature": "public bool Indeterminate", "summary": "_Bool indeterminate" }, { "name": "ShowValue", "kind": "field", "id": "field|ShowValue|0|0|bool|||hd0974546e5f5fd0d3590998a1e541a6ef369d199dd57720a3611943d5245da68", "signature": "public bool ShowValue", "summary": "_Bool show_value" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.PromptSuggestion", "displayName": "PromptSuggestion", "kind": "struct", "summary": "cui_prompt_suggestion. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Icon;string? Title = null;string? Detail = null||h15207afd2883d9e79f6b30aea0910e160070efdcc85035e872cb68acb84ca94c", "signature": "PromptSuggestion(string? Icon, string? Title = null, string? Detail = null)", "parameters": [{ "name": "Icon", "type": "string?" }, { "name": "Title", "type": "string?", "default": "null" }, { "name": "Detail", "type": "string?", "default": "null" }] }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.PromptSuggestionsOpts", "displayName": "PromptSuggestionsOpts", "kind": "struct", "summary": "cui_prompt_suggestions_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int columns" }] }, + { "name": "CuiSharp.PropOpts", "displayName": "PropOpts", "kind": "struct", "summary": "cui_prop_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Checkbox", "kind": "field", "id": "field|Checkbox|0|0|bool|||he961fa78e7edf313d192909f2ef79c43a4a19f9cf45d780434ed05e9ebce0ec1", "signature": "public bool Checkbox", "summary": "bool rows: a checkbox instead of a switch" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "number and vector rows; both 0 = unbounded" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "number and vector rows; both 0 = unbounded" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "drag and arrow step, default 1/100 of the range (0.1 unbounded)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "printf format, default from the step (\u0022%.2f\u0022 for 0.01)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "text rows" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "unit after the value, e.g. \u0022px\u0022 or \u0022deg\u0022" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "shown on the label" }] }, + { "name": "CuiSharp.QueryField", "displayName": "QueryField", "kind": "struct", "summary": "cui_query_field. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;QueryType Type = QueryType.Text;string[]? Choices = null||h48b8fb8a05d287dd9b566adc6675a494744df5aaf3cb9fdd909bf2f50a2414ad", "signature": "QueryField(string? Name, QueryType Type = QueryType.Text, string[]? Choices = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Type", "type": "QueryType", "default": "QueryType.Text" }, { "name": "Choices", "type": "string[]?", "default": "null" }] }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|QueryType|||hf209f50f5f23cd7bcfb0c92b4bab8a6e54deec08302998719d5a083a7aeda993", "signature": "public QueryType Type", "summary": "cui_query_type type" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "Choices", "kind": "field", "id": "field|Choices|0|0|string[]?|||h41277725d7540813139d9729883d7c141827a738cde2cc8d3310f3742bc4c0d9", "signature": "public string[]? Choices", "summary": "CUI_QUERY_CHOICE: the values to pick from" }] }, + { "name": "CuiSharp.QueryNode", "displayName": "QueryNode", "kind": "struct", "summary": "cui_query_node. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Depth;bool Group = default;bool Any = default;int Field = default;int Op = default;string? Value = null||h7b62a5aaf018e81c58eaa9c35ee1d467cf0a67670a81e3c0fc77ae397b3295b3", "signature": "QueryNode(int Depth, bool Group = default, bool Any = default, int Field = default, int Op = default, string? Value = null)", "parameters": [{ "name": "Depth", "type": "int" }, { "name": "Group", "type": "bool", "default": "default" }, { "name": "Any", "type": "bool", "default": "default" }, { "name": "Field", "type": "int", "default": "default" }, { "name": "Op", "type": "int", "default": "default" }, { "name": "Value", "type": "string?", "default": "null" }] }, { "name": "Any", "kind": "field", "id": "field|Any|0|0|bool|||hdcec9da6cacd41baef4b6038493eb7e4b2369f5278d4378cd1c4b0470dee7bf7", "signature": "public bool Any", "summary": "group: any rule (or) instead of all (and)" }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|bool|||h8db773c070c0474234b3161d5fef6b1f242445122c5d4bb61313a44c589024b9", "signature": "public bool Group", "summary": "_Bool group" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "0 for the outer group" }, { "name": "Field", "kind": "field", "id": "field|Field|0|0|int|||hdcf6cff1322591f3a88cb72bd2e2121e1e20ef1a7c6b74518e9e156290f19324", "signature": "public int Field", "summary": "rule: index into the fields" }, { "name": "Op", "kind": "field", "id": "field|Op|0|0|int|||h6505aa172e0f27a8b351e7d974812a780ea421fa10662d2e3e0f3d89db6217e1", "signature": "public int Op", "summary": "rule: see cui_query_op_name" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|string?|||h5ce95573760fbed490482794a8054e38848c0b6a2d40e7e67f6af14eb4564732", "signature": "public string? Value", "summary": "rule: the text, number or choice compared with" }] }, + { "name": "CuiSharp.QueryOpts", "displayName": "QueryOpts", "kind": "struct", "summary": "cui_query_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default 3" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "MaxDepth", "kind": "field", "id": "field|MaxDepth|0|0|int|||he1682a88cdc03d3743c38ec2bdc17f9131942fa953ffde04cded5fc866b9afdd", "signature": "public int MaxDepth", "summary": "default 3" }] }, + { "name": "CuiSharp.QueryType", "displayName": "QueryType", "kind": "enum", "summary": "cui_query_type", "members": [{ "name": "Bool", "kind": "enum value", "id": "enum value|Bool|1|0|||3|h538c6993afa1ce50c1c93514479790bb337ead9ac3fe898d6b7d82a52715778f", "signature": "Bool = 3", "value": "3" }, { "name": "Choice", "kind": "enum value", "id": "enum value|Choice|1|0|||2|hf1169fec4fb5876b0369a473b2ec2f5a2939be7e10c67fe57c40cacf9e4f8299", "signature": "Choice = 2", "value": "2" }, { "name": "Number", "kind": "enum value", "id": "enum value|Number|1|0|||1|hb42a4997c878db766c147fade150c3f834e94aba6360a2559c0cc924b8cadf2a", "signature": "Number = 1", "value": "1" }, { "name": "Text", "kind": "enum value", "id": "enum value|Text|1|0|||0|he5c95b6734225e148880cf2d14fecb3cc9df5415fd27e1da617cef31bc50c963", "signature": "Text = 0", "value": "0" }] }, + { "name": "CuiSharp.RadarOpts", "displayName": "RadarOpts", "kind": "struct", "summary": "cui_radar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float max" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.RadialGaugeOpts", "displayName": "RadialGaugeOpts", "kind": "struct", "summary": "cui_radial_gauge_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Bands", "kind": "field", "id": "field|Bands|0|0|GaugeBand[]?|||he11dadf277f590d78b997c9d0d36d8512bf09e4b084bcde46b1f1b047d68eb2f", "signature": "public GaugeBand[]? Bands", "summary": "const cui_gauge_band * bands" }, { "name": "NoNeedle", "kind": "field", "id": "field|NoNeedle|0|0|bool|||h954eb16283d88b6d3f382b5e415deffda19a2b4b4ae12ce76c1295a94f5862a9", "signature": "public bool NoNeedle", "summary": "a thick arc filled to the value instead of a needle" }, { "name": "ShowTarget", "kind": "field", "id": "field|ShowTarget|0|0|bool|||h035e45d43dc281b3ba770544e2dd2414155aa4218c1b801728d5cdd977d5d3be", "signature": "public bool ShowTarget", "summary": "_Bool show_target" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "width, default 200; the height follows the sweep" }, { "name": "Sweep", "kind": "field", "id": "field|Sweep|0|0|float|||h7fb4447237bd85b4fcbb34bc83034682a6f51ce1885fdf1656d0e29fa9bde9ce", "signature": "public float Sweep", "summary": "degrees of arc, default 240 (90 to 300)" }, { "name": "Target", "kind": "field", "id": "field|Target|0|0|float|||hcde29887b1065a0d920ec35b586d383741d5219b2c69db75b52f3c59633bdfe2", "signature": "public float Target", "summary": "a marker on the arc, when show_target is set" }, { "name": "BandCount", "kind": "field", "id": "field|BandCount|0|0|int|||h8f772448f68b8cd351be66664954248f0016d89e0ec779c00a5d8db33648680f", "signature": "public int BandCount", "summary": "int band_count" }, { "name": "Ticks", "kind": "field", "id": "field|Ticks|0|0|int|||hdd7be04ef4d976cb0eb1119ce46c1e28a88d3f9b64451ac52a79686542ec0cce", "signature": "public int Ticks", "summary": "labelled divisions, default 5; -1 hides the ticks" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "the value and the tick labels, default \u0022%.0f\u0022" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "under the value" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "after the value, smaller" }] }, + { "name": "CuiSharp.RadioCardsOpts", "displayName": "RadioCardsOpts", "kind": "struct", "summary": "cui_radio_cards_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int columns" }] }, + { "name": "CuiSharp.Reaction", "displayName": "Reaction", "kind": "struct", "summary": "cui_reaction. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Icon;int Count = default;bool Active = default||h7d711ba4172aadd90bd6cbccd4cf9e1e5300cb18f697354cc0682d655adcdb76", "signature": "Reaction(string? Icon, int Count = default, bool Active = default)", "parameters": [{ "name": "Icon", "type": "string?" }, { "name": "Count", "type": "int", "default": "default" }, { "name": "Active", "type": "bool", "default": "default" }] }, { "name": "Active", "kind": "field", "id": "field|Active|0|0|bool|||h5929e7f8064e6c5eab88e5392b559dde918574728d1991b0c837588fd8751952", "signature": "public bool Active", "summary": "_Bool active" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int count" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.ReasoningOpts", "displayName": "ReasoningOpts", "kind": "struct", "summary": "cui_reasoning_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Thinking", "kind": "field", "id": "field|Thinking|0|0|bool|||hf464dd50d39d6e096e88d04456a95154dc06cb7f7f5c070f29d098699665adeb", "signature": "public bool Thinking", "summary": "_Bool thinking" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float seconds" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.RectF", "displayName": "RectF", "kind": "struct", "summary": "A rectangle in points, top-left origin.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float x;float y;float w;float h||h9e81656e2b44f26304f8313bf1a5e6c734e8d9f31e47d112457ebe3b356ad18f", "signature": "RectF(float x, float y, float w, float h)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "w", "type": "float" }, { "name": "h", "type": "float" }] }, { "name": "H", "kind": "field", "id": "field|H|0|0|float|||h34e3709364550cb1072bf7ad817825ef5ddd27e4a18917ae3882b1483139eb14", "signature": "public readonly float H" }, { "name": "W", "kind": "field", "id": "field|W|0|0|float|||h3ba3b1b0d772a0242db76240f298906a598bbb46a8952da8c5f8ea9a24658970", "signature": "public readonly float W" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||he9261fd2b117657f94cf3da6b2dc69c3a3903a39db96e08c0d82688405c814b3", "signature": "public readonly float X" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||h69d39d9a6029300bf6f486747fb3a60594fa57563f1d4c360b012a1343b06361", "signature": "public readonly float Y" }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.RegexFlags", "displayName": "RegexFlags", "kind": "enum", "summary": "How a pattern matches. CUI\u0027s engine ignores case, ^/$ per line, or both.", "members": [{ "name": "IgnoreCase", "kind": "enum value", "id": "enum value|IgnoreCase|1|0|||1|h624bf4c6d904d509dca79f8ffa1a7505dadbbbc57330f9cc35cf634e006be0d5", "signature": "IgnoreCase = 1", "value": "1" }, { "name": "Multiline", "kind": "enum value", "id": "enum value|Multiline|1|0|||2|hcc1c9ba71c6d30c7aae577310db90bb4370c7323777e7abb7c8b29998cfc5626", "signature": "Multiline = 2", "value": "2" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Singleline", "kind": "enum value", "id": "enum value|Singleline|1|0|||4|h4ce72671299a769bba4bfbc67b309f3a2c0599a3269f1e472b6f79722322e62e", "signature": "Singleline = 4", "value": "4" }] }, + { "name": "CuiSharp.RegexGroup", "displayName": "RegexGroup", "kind": "struct", "summary": "One capture group of a match: byte offsets into the text, and the group\u0027s name when it has one.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Start;int End;string? Name||h8ffbf8ebcec21a024f13137e69afc5c507a6f2e9d2241fd0214772d7d1136306", "signature": "RegexGroup(int Start, int End, string? Name)", "parameters": [{ "name": "Start", "type": "int" }, { "name": "End", "type": "int" }, { "name": "Name", "type": "string?" }], "summary": "One capture group of a match: byte offsets into the text, and the group\u0027s name when it has one." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|RegexGroup other||h354529fe9114f3072c523483f22e7e4e742ab15c5b3873b39f19f3865378e382", "signature": "bool Equals(RegexGroup other)", "parameters": [{ "name": "other", "type": "RegexGroup" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object obj||hdf2fccef3fb95cd65c067116b7fab214698fd62b7ba7acf819e39cecdecd49f0", "signature": "bool Equals(object obj)", "parameters": [{ "name": "obj", "type": "object" }] }, { "name": "End", "kind": "property", "id": "property|End|0|0|int||get;set;|ha559f0a4bc280302cff7f466cdbbb1ea1234e58ee712872083504c98970d34bb", "signature": "int End { get; init; }", "summary": "One past the last byte, or -1 when it took no part." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Start", "kind": "property", "id": "property|Start|0|0|int||get;set;|hfc864694bad8d8d1a3ef716a34299634c51031de85178a15fcda940b5d4a4525", "signature": "int Start { get; init; }", "summary": "The first byte of the group, or -1 when the group took no part in the match." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|RegexGroup left;RegexGroup right||h2853ab582306013249d4bb5f41763f5226e78c7d0b51e0bd8c6454b87a326e52", "signature": "static bool operator !=(RegexGroup left, RegexGroup right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "RegexGroup" }, { "name": "right", "type": "RegexGroup" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|RegexGroup left;RegexGroup right||h35f2d00b713c0a00fb7689f4e9ac68b39ba1164603b7dbad3f5fa1f16f0bec23", "signature": "static bool operator ==(RegexGroup left, RegexGroup right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "RegexGroup" }, { "name": "right", "type": "RegexGroup" }] }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Name", "kind": "property", "id": "property|Name|0|0|string?||get;set;|h5248972ea91eb27d71985a233b1d930452e3c7af716b1382a1c21ad2b804a208", "signature": "string? Name { get; init; }", "summary": "The name in (?\u003Cname\u003E\u2026), or null for a positional group." }, { "name": "Deconstruct", "kind": "method", "id": "method|Deconstruct|0|0|void|out int Start;out int End;out string? Name||h9b6f6955d207a5c01bb51e04dad769f7a5b7b721ca6a38a8e111767173253e1f", "signature": "void Deconstruct(out int Start, out int End, out string? Name)", "parameters": [{ "name": "Start", "type": "out int" }, { "name": "End", "type": "out int" }, { "name": "Name", "type": "out string?" }] }] }, + { "name": "CuiSharp.RegexMatch", "displayName": "RegexMatch", "kind": "struct", "summary": "One match: its byte range, and one RegexGroup per group, index 0 being the whole match.", "members": [{ "name": "Groups", "kind": "property", "id": "property|Groups|0|0|RegexGroup[]||get;set;|ha0934472bbaf03084668dbedfe3b7e562ec5e274b06fdc9163f803380afe2ff8", "signature": "RegexGroup[] Groups { get; init; }" }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Start;int End;RegexGroup[] Groups||hd7d6c336dd2b47312ec353e2966335d0e1b32230f6ac9fbd74cdf9e22b3e4c24", "signature": "RegexMatch(int Start, int End, RegexGroup[] Groups)", "parameters": [{ "name": "Start", "type": "int" }, { "name": "End", "type": "int" }, { "name": "Groups", "type": "RegexGroup[]" }], "summary": "One match: its byte range, and one RegexGroup per group, index 0 being the whole match." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|RegexMatch other||h4d127bc5a3dcadabb8eb6868e5ce7e938175f3c075c5e9936e89ca2711cbf3d6", "signature": "bool Equals(RegexMatch other)", "parameters": [{ "name": "other", "type": "RegexMatch" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object obj||hdf2fccef3fb95cd65c067116b7fab214698fd62b7ba7acf819e39cecdecd49f0", "signature": "bool Equals(object obj)", "parameters": [{ "name": "obj", "type": "object" }] }, { "name": "End", "kind": "property", "id": "property|End|0|0|int||get;set;|ha559f0a4bc280302cff7f466cdbbb1ea1234e58ee712872083504c98970d34bb", "signature": "int End { get; init; }" }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Start", "kind": "property", "id": "property|Start|0|0|int||get;set;|hfc864694bad8d8d1a3ef716a34299634c51031de85178a15fcda940b5d4a4525", "signature": "int Start { get; init; }" }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|RegexMatch left;RegexMatch right||h22e817ba564a4eb792d0de6ce5fd0f02d94dfbb21dcf019ccc9ca5caed67e8c5", "signature": "static bool operator !=(RegexMatch left, RegexMatch right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "RegexMatch" }, { "name": "right", "type": "RegexMatch" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|RegexMatch left;RegexMatch right||h5ed1591cfb286468fae185ae563d7c7b69e76bda8ed87eb0f94e3b9153a41008", "signature": "static bool operator ==(RegexMatch left, RegexMatch right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "RegexMatch" }, { "name": "right", "type": "RegexMatch" }] }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Deconstruct", "kind": "method", "id": "method|Deconstruct|0|0|void|out int Start;out int End;out RegexGroup[] Groups||h8dd3c05d106f084566437cc915f32cc2e5cb3fb4c4902b197d8cf271815c3437", "signature": "void Deconstruct(out int Start, out int End, out RegexGroup[] Groups)", "parameters": [{ "name": "Start", "type": "out int" }, { "name": "End", "type": "out int" }, { "name": "Groups", "type": "out RegexGroup[]" }] }] }, + { "name": "CuiSharp.RegexTesterOpts", "displayName": "RegexTesterOpts", "kind": "struct", "summary": "cui_regex_tester_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "of the test text, default 180" }] }, + { "name": "CuiSharp.RegexTesterResult", "displayName": "RegexTesterResult", "kind": "struct", "summary": "cui_regex_tester_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Valid;int Matches = default;string? Error = null||he6f4f4e14ca7d9019cda96bee63475fcb4663f5970fa1d423eb538657e8b2228", "signature": "RegexTesterResult(bool Valid, int Matches = default, string? Error = null)", "parameters": [{ "name": "Valid", "type": "bool" }, { "name": "Matches", "type": "int", "default": "default" }, { "name": "Error", "type": "string?", "default": "null" }] }, { "name": "Valid", "kind": "field", "id": "field|Valid|0|0|bool|||h7ca8856a4d2de0f5a2a653cccda6609bb071117f9dc2b81e77d45f50fd6b8385", "signature": "public bool Valid", "summary": "_Bool valid" }, { "name": "Matches", "kind": "field", "id": "field|Matches|0|0|int|||hcedd9515c638fc304b4b46a264002d08e5bd2da7de258318812e2fb6ea94b072", "signature": "public int Matches", "summary": "int matches" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|string?|||h0b7f7e3a629b91e7b6cf4f9562657aad586fd4666941bbac0e0e8fccbc0ea31d", "signature": "public string? Error", "summary": "const char * error" }] }, + { "name": "CuiSharp.Renderer", "displayName": "Renderer", "kind": "enum", "summary": "cui_renderer_kind", "members": [{ "name": "Auto", "kind": "enum value", "id": "enum value|Auto|1|0|||0|h284236ae44d2136d400d7adf09d16069ad74e439b1df76d7c8eddc5385164140", "signature": "Auto = 0", "value": "0" }, { "name": "OpenGL", "kind": "enum value", "id": "enum value|OpenGL|1|0|||1|hb9692d6e72320810bff0c91c598bbed9993bb9c9465d0f979cf5f0e92ede1417", "signature": "OpenGL = 1", "value": "1" }, { "name": "Software", "kind": "enum value", "id": "enum value|Software|1|0|||2|h28bc4665785d34e42fb52be1dafd3b6e20ca521221646f8e5f7e7965c2451ac5", "signature": "Software = 2", "value": "2" }] }, + { "name": "CuiSharp.RequestBarOpts", "displayName": "RequestBarOpts", "kind": "struct", "summary": "cui_request_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|bool|||h1a1df670039b692be8a827bee28c939371fe741e0871265ea4bdd3a172311bd8", "signature": "public bool Loading", "summary": "_Bool loading" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.RequestBarResult", "displayName": "RequestBarResult", "kind": "struct", "summary": "cui_request_bar_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Send;bool Cancel = default;bool Changed = default||h68d778d1cd29be8f34a56c061b429131b33869382c4a2e78ec4ead662a0446d3", "signature": "RequestBarResult(bool Send, bool Cancel = default, bool Changed = default)", "parameters": [{ "name": "Send", "type": "bool" }, { "name": "Cancel", "type": "bool", "default": "default" }, { "name": "Changed", "type": "bool", "default": "default" }] }, { "name": "Cancel", "kind": "field", "id": "field|Cancel|0|0|bool|||h415f8fb17ae6a4daf79803e4d07341fefe680a32dc62663c2503d7e8eaa13c45", "signature": "public bool Cancel", "summary": "_Bool cancel" }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "_Bool changed" }, { "name": "Send", "kind": "field", "id": "field|Send|0|0|bool|||he70bac26a761d17520ddb5d7d37168ad091ede3b4c7cba9d5d8eb0f6f5e382d7", "signature": "public bool Send", "summary": "_Bool send" }] }, + { "name": "CuiSharp.ResponseActionsOpts", "displayName": "ResponseActionsOpts", "kind": "struct", "summary": "cui_response_actions_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoRegenerate", "kind": "field", "id": "field|NoRegenerate|0|0|bool|||h06b5931683cdcc4cc9ae926772734510653e788fc8f6189b22819f9e647a2894", "signature": "public bool NoRegenerate", "summary": "_Bool no_regenerate" }, { "name": "NoShare", "kind": "field", "id": "field|NoShare|0|0|bool|||h32a001d872c2df9d7c8035c43bf1acbcd7d42ab762cc139aa15394787d93d6f4", "signature": "public bool NoShare", "summary": "_Bool no_share" }, { "name": "CopyText", "kind": "field", "id": "field|CopyText|0|0|string?|||hfe793dda98f888020e54f1782d429935c4c338206c4238febd197ee92f0efe2e", "signature": "public string? CopyText", "summary": "const char * copy_text" }] }, + { "name": "CuiSharp.ResponseEvents", "displayName": "ResponseEvents", "kind": "enum", "summary": "CUI_RESPONSE_COPY", "members": [{ "name": "Copy", "kind": "enum value", "id": "enum value|Copy|1|0|||1|hf0f7587488c431e2cc70dd51d76355f6d7635084b7ad3883f21f85fd74adab27", "signature": "Copy = 1", "value": "1" }, { "name": "Down", "kind": "enum value", "id": "enum value|Down|1|0|||8|h20d969dac1f8d8d88f699088e4d1761dd52b626d4b4a8ce5f50beca2a5dd8e6c", "signature": "Down = 8", "value": "8" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Regenerate", "kind": "enum value", "id": "enum value|Regenerate|1|0|||2|h8a1e965bb8924bc13884397b214a06230370a18eaa605912e2cef0065ef10d4a", "signature": "Regenerate = 2", "value": "2" }, { "name": "Share", "kind": "enum value", "id": "enum value|Share|1|0|||16|h0e99b7d0e2186e5c2bb5846a6c021c3ba97040cd815b090307b71db08933513a", "signature": "Share = 16", "value": "16" }, { "name": "Up", "kind": "enum value", "id": "enum value|Up|1|0|||4|hd533e8226c4ebc0b022d15d20378306ca776b9697192f1023e888f6ecab1d962", "signature": "Up = 4", "value": "4" }] }, + { "name": "CuiSharp.RingsOpts", "displayName": "RingsOpts", "kind": "struct", "summary": "cui_rings_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Legend", "kind": "field", "id": "field|Legend|0|0|bool|||haed9472a8896500486e1ecb259e7670594a043839c501669b2ebbeca29a2f1d2", "signature": "public bool Legend", "summary": "names and shares beside the rings" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "names and shares beside the rings" }, { "name": "Thickness", "kind": "field", "id": "field|Thickness|0|0|float|||h032ae3f08d1f764102a5ab4e3449cb25f2ae394d97fb8b90dd505ead7b8576f6", "signature": "public float Thickness", "summary": "names and shares beside the rings" }, { "name": "Caption", "kind": "field", "id": "field|Caption|0|0|string?|||hcef7118db71b438fca0f3f6c713c711ebcdb3e5c7a4f0fba8f4999852652040a", "signature": "public string? Caption", "summary": "names and shares beside the rings" }, { "name": "Center", "kind": "field", "id": "field|Center|0|0|string?|||h40bba056e10dcb46add9a06319d319f1245a2c7ea611e35032ff42b9d4d074f0", "signature": "public string? Center", "summary": "names and shares beside the rings" }] }, + { "name": "CuiSharp.RulerOpts", "displayName": "RulerOpts", "kind": "struct", "summary": "cui_ruler_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Spacing", "kind": "field", "id": "field|Spacing|0|0|float|||h22da469a15540ae6a7f22a07bcce21a26b31756bc58b41e93dfacd4da75285a9", "signature": "public float Spacing", "summary": "float spacing" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "float step" }, { "name": "MajorEvery", "kind": "field", "id": "field|MajorEvery|0|0|int|||hb8966c550f0af08c692ad9b7a0009bc4750e28358fc03967f4a7ff5bc21f7ed4", "signature": "public int MajorEvery", "summary": "int major_every" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "const char * unit" }] }, + { "name": "CuiSharp.SankeyLink", "displayName": "SankeyLink", "kind": "struct", "summary": "cui_sankey_link. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int From;int To = default;float Value = default||h4935e90b35af0cd8f9b7a8ab66b1e944478ea669af6a08d5b20071f2627078a2", "signature": "SankeyLink(int From, int To = default, float Value = default)", "parameters": [{ "name": "From", "type": "int" }, { "name": "To", "type": "int", "default": "default" }, { "name": "Value", "type": "float", "default": "default" }] }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float value" }, { "name": "From", "kind": "field", "id": "field|From|0|0|int|||h11f7cebcf77a074c120dda4af3a2c2a7d6533333236d3fbb272c705fd58fd693", "signature": "public int From", "summary": "int from" }, { "name": "To", "kind": "field", "id": "field|To|0|0|int|||h51c44d9327d4ff5ec543672605cdc9085758c30f02fb02478eed8ab117d48e44", "signature": "public int To", "summary": "int to" }] }, + { "name": "CuiSharp.SankeyOpts", "displayName": "SankeyOpts", "kind": "struct", "summary": "cui_sankey_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "NodeWidth", "kind": "field", "id": "field|NodeWidth|0|0|float|||h854c8bca8b3d6404a03cf66a2c3c87c152ea3dd5251148ee7b7181601bb4ff91", "signature": "public float NodeWidth", "summary": "float node_width" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.ScatterOpts", "displayName": "ScatterOpts", "kind": "struct", "summary": "cui_scatter_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "XFormat", "kind": "field", "id": "field|XFormat|0|0|string?|||h84bff9c35a9947f320862f17d212a1b90a915ce62a3a97933b6134f65d16e852", "signature": "public string? XFormat", "summary": "const char * x_format" }, { "name": "XLabel", "kind": "field", "id": "field|XLabel|0|0|string?|||h5bda4d949c0c6ca8d8d6347120ba210c06bb017646874d73dcfab798cd0f5724", "signature": "public string? XLabel", "summary": "const char * x_label" }, { "name": "YFormat", "kind": "field", "id": "field|YFormat|0|0|string?|||h8b96500d860715a132efa2f0dd7a26efcb7f23b9fe640633606ca592f8524e17", "signature": "public string? YFormat", "summary": "const char * y_format" }, { "name": "YLabel", "kind": "field", "id": "field|YLabel|0|0|string?|||h6f154799663b1b32e6e6b484a6c3d43ea71d2e2ce48ec0d8f1d95fefb34fab4d", "signature": "public string? YLabel", "summary": "const char * y_label" }] }, + { "name": "CuiSharp.ScatterSeries", "displayName": "ScatterSeries", "kind": "struct", "summary": "cui_scatter_series. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;Vec2[]? Points = null;float[]? Sizes = null;int Count = default;Color Color = default||h0c9e3772ee6d1d273d5874e58f32817c4678849464ced5108825fbee4a08c30b", "signature": "ScatterSeries(string? Name, Vec2[]? Points = null, float[]? Sizes = null, int Count = default, Color Color = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Points", "type": "Vec2[]?", "default": "null" }, { "name": "Sizes", "type": "float[]?", "default": "null" }, { "name": "Count", "type": "int", "default": "default" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Points", "kind": "field", "id": "field|Points|0|0|Vec2[]?|||h3dbc7a42c52c429bb7adfaec324112224e57926f57024ea34e1c28545f737119", "signature": "public Vec2[]? Points", "summary": "const cui_vec2 * points" }, { "name": "Sizes", "kind": "field", "id": "field|Sizes|0|0|float[]?|||h94a77f6a194c7ae18baaa6fde73c8103a184b0113eda7b42552249abdbf6f1bf", "signature": "public float[]? Sizes", "summary": "const float * sizes" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int count" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.ScheduleOpts", "displayName": "ScheduleOpts", "kind": "struct", "summary": "cui_schedule_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Utc", "kind": "field", "id": "field|Utc|0|0|bool|||hce27528a0642529c63bbecfb74ceeffd4af58ffbe72eea12d92db228ca35332e", "signature": "public bool Utc", "summary": "times in UTC instead of local time" }, { "name": "NextCount", "kind": "field", "id": "field|NextCount|0|0|int|||h80bfe4de5677a884d75cb874b420721eb542ff4df1afc53136faf5ba124b192b", "signature": "public int NextCount", "summary": "runs listed, default 3, 0 hides them" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|long|||h949d29ec25550cd1c5e589c99b5e39471c9584ce47315d26d5fa02dc132525d7", "signature": "public long Now", "summary": "the next runs are counted from here, Unix seconds; 0: the clock" }] }, + { "name": "CuiSharp.ScheduleResult", "displayName": "ScheduleResult", "kind": "struct", "summary": "cui_schedule_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;bool Valid = default;long Next = default||h7e003c234503259c0f88543cf0bcd89f1a498367b301084dede97cf4807b1e37", "signature": "ScheduleResult(bool Changed, bool Valid = default, long Next = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Valid", "type": "bool", "default": "default" }, { "name": "Next", "type": "long", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "the next run, Unix seconds, 0 none" }, { "name": "Valid", "kind": "field", "id": "field|Valid|0|0|bool|||h7ca8856a4d2de0f5a2a653cccda6609bb071117f9dc2b81e77d45f50fd6b8385", "signature": "public bool Valid", "summary": "the next run, Unix seconds, 0 none" }, { "name": "Next", "kind": "field", "id": "field|Next|0|0|long|||hd7ee1f886f886259549f3654f5275aaa94247e8c4d9446f9f2a3a90e2de894d3", "signature": "public long Next", "summary": "the next run, Unix seconds, 0 none" }] }, + { "name": "CuiSharp.ScrollOpts", "displayName": "ScrollOpts", "kind": "struct", "summary": "cui_scroll_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "FadeColor", "kind": "field", "id": "field|FadeColor|0|0|Color|||h450b978d4c657ce0b5a9766567452335438f0c631c9ab3811a7e7e4ea4b744e4", "signature": "public Color FadeColor", "summary": "what it fades into (default: the nearest opaque box around it)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "FadeEdges", "kind": "field", "id": "field|FadeEdges|0|0|bool|||ha1edfcc7531e10879bb73f5b6efd91c9042d4d3b43fc89822a2c6a89f259854b", "signature": "public bool FadeEdges", "summary": "content fades out at an edge with more to scroll" }, { "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|bool|||h526d7918635bb7515376b05bb273960bfff3d8076453a269cb0cc74fef6ec108", "signature": "public bool Horizontal", "summary": "also scroll horizontally" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "const char * id" }] }, + { "name": "CuiSharp.ScrubOpts", "displayName": "ScrubOpts", "kind": "struct", "summary": "cui_scrub_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "default (max - min) / 100" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "default \u0022%.0f\u0022" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "shown instead of the label" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "e.g. \u0022px\u0022 or \u0022%\u0022" }] }, + { "name": "CuiSharp.SegmentedOpts", "displayName": "SegmentedOpts", "kind": "struct", "summary": "cui_segmented_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|bool|||hdc8aafcce927648adf0c0145203424f8957fc857f5c4d890241daae15b5eac45", "signature": "public bool FullWidth", "summary": "_Bool full_width" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, + { "name": "CuiSharp.SelectOpts", "displayName": "SelectOpts", "kind": "struct", "summary": "cui_select_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Searchable", "kind": "field", "id": "field|Searchable|0|0|bool|||he07abb6a59c4f1b548e1e75a7d0a2b5775f298d1d816b82649be0aadf7f20bc5", "signature": "public bool Searchable", "summary": "combobox: filter options by typing" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, + { "name": "CuiSharp.SemanticNode", "displayName": "SemanticNode", "kind": "class", "summary": "One named thing in a frame \u2014 a control, or a container the app gave an id \u2014 and everything drawn inside it.", "members": [{ "name": "Descendants", "kind": "method", "id": "method|Descendants|0|0|IEnumerable\u003CSemanticNode\u003E|||hb2e00cdf2d1e34171d687045000fe4dd6904f246cc4904cbaa8a21fdd3e29b8b", "signature": "IEnumerable\u003CSemanticNode\u003E Descendants()", "summary": "Every node below this one, depth first." }, { "name": "Children", "kind": "property", "id": "property|Children|0|0|IReadOnlyList\u003CSemanticNode\u003E||get;|h5966cf2ffc85aa0cefb339b7a12aecbb96d2e1b1cbdc4d0ae23e0a897ad1bb69", "signature": "IReadOnlyList\u003CSemanticNode\u003E Children { get; }", "summary": "Everything drawn inside it, in drawing order." }, { "name": "Rect", "kind": "property", "id": "property|Rect|0|0|RectF||get;|hf755173a5fe47fca342422117b9258f72be7002a01ae38cb809f072f70e4e9a6", "signature": "RectF Rect { get; }", "summary": "Where it was laid out, in points." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|SemanticNode|string query||h9aa27c93146559c3380a35c8c7bb7292a46ce84553a02211995082057dc09c66", "signature": "SemanticNode Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a node below this one, or explains what is there instead." }, { "name": "Parent", "kind": "property", "id": "property|Parent|0|0|SemanticNode?||get;|h0a677e23dee947553b8ffbefec3d898ffd27e077224bc55a9e2bd8c65cba3b33", "signature": "SemanticNode? Parent { get; }", "summary": "The container it sits in, or null for a node at the top of the frame." }, { "name": "IsContainer", "kind": "property", "id": "property|IsContainer|0|0|bool||get;|h58e6d50111e3867dc21d8ff3f8e340fcdce36de432ab79c3dd814dea5f335c26", "signature": "bool IsContainer { get; }", "summary": "True when the app drew something inside it, so it can be a parent." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out SemanticNode node||h10f68a1bf1fea034c9872526bdc9b2bebc5d2ef0e770be328c4ca3ce8928dbb7", "signature": "bool TryFind(string query, out SemanticNode node)", "parameters": [{ "name": "query", "type": "string" }, { "name": "node", "type": "out SemanticNode" }], "summary": "Finds this node or anything below it by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "Depth", "kind": "property", "id": "property|Depth|0|0|int||get;|h005393779795fcee5a87d55774bb521a2fdf30d65e68e7ea958f24c21fa71717", "signature": "int Depth { get; }", "summary": "How many containers were open around it." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|string||get;|h388961e1f6a3037bd4a4c8333a144e60a99cdcd3bd10798d477a76bdae288a1d", "signature": "string Kind { get; }", "summary": "The wrapper that drew it: Button, Input, Card." }, { "name": "Path", "kind": "property", "id": "property|Path|0|0|string||get;|hb2d3527ced8c78e3ca97b5a77f9028096a1989cb0f7317d6116bac0bf5229f5e", "signature": "string Path { get; }", "summary": "The nesting that leads here, e.g. Card \u0022editor\u0022 \u003E Button \u0022Save\u0022: the shortest description of where a control is." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The tree as text, one line per node: what a test prints when it fails, and what an agent reads to find out which controls a frame drew." }, { "name": "Text", "kind": "property", "id": "property|Text|0|0|string||get;|h221097532e4154611cbbc42c65b80d74f8055bd282efb709184598cd9d2c27bb", "signature": "string Text { get; }", "summary": "The label, or the id when the widget or container has one." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Id", "kind": "property", "id": "property|Id|0|0|uint||get;|hc3025f4e0981c7ad622608a2293f185737bdcec4eb82f21efce88bc6011cdaed", "signature": "uint Id { get; }", "summary": "The id CUI laid it out under \u2014 for an item of a tab strip or a segmented control, the id the widget derived for that item. Unrelated to the label, so it survives translation." }] }, + { "name": "CuiSharp.SemanticWidget", "displayName": "SemanticWidget", "kind": "struct", "summary": "One thing a frame recorded: a control, or a container the app gave an id, with the text that names it and where it was laid out.", "members": [{ "name": "Center", "kind": "property", "id": "property|Center|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h0a928e20a77e4a851575877bd247d3e0bfd675854061d20c99152b0ee772b6a0", "signature": "ValueTuple\u003Cfloat, float\u003E Center { get; }", "summary": "The point at the middle: where a simulated click goes." }, { "name": "Contains", "kind": "method", "id": "method|Contains|0|0|bool|float x;float y||h5e2c35791a73fb0fecb5d484bb6de7e408b5219215458ddd10c4b7637a782e0b", "signature": "bool Contains(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "True when the point is inside it." }, { "name": "Rect", "kind": "field", "id": "field|Rect|0|0|RectF|||h36c84f4bf259c7df4e00bfe92693bbcd043eb64d7e623295afc1e04bc98f27cf", "signature": "public readonly RectF Rect", "summary": "Where it was laid out, in points, in the frame that produced it." }, { "name": "IsContainer", "kind": "field", "id": "field|IsContainer|0|0|bool|||hc7454505ba97259cb1cc992d89ed1c2a725cf4d19a0bb95b3707be1f64bc21b6", "signature": "public readonly bool IsContainer", "summary": "True for a container that recorded itself because the app named it." }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||ha8878fee53eb9cf2414e3afde3184f31a9eb3bf9f98176af4487368b5b454317", "signature": "public readonly int Depth", "summary": "How many containers were open around it: 0 for a widget at the top of the frame, 1 for one inside a card, and so on." }, { "name": "Kind", "kind": "field", "id": "field|Kind|0|0|string|||h4c541c4957c89762e7d2d2e3e33b14a44c2b1619f09f22b3a8d6e0a8c941f23c", "signature": "public readonly string Kind", "summary": "The wrapper\u0027s name: Button, Input, Card." }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|string|||h68b7cc166e7738ce60e67f228271e2cb816cb8f3d6800b8f76b1b01d3a1fbf83", "signature": "public readonly string Text", "summary": "The widget\u0027s id, or its label when it has no id." }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|uint|||h9c07ed1bc23d891c34bd2cf77a987ddd1ee61647bb18261e3ca19e1b6b2d6b48", "signature": "public readonly uint Id", "summary": "The id CUI laid this widget out under. Stable while the widget exists, and unrelated to the text, so it is what a test can hold on to when the label is translated." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()", "summary": "The kind and the text, e.g. Button \u0022Save\u0022." }] }, + { "name": "CuiSharp.Series", "displayName": "Series", "kind": "struct", "summary": "cui_series. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;float[]? Values = null;int Count = default;Color Color = default||h9a61f1f33b52068aa9ce296dda6a5add41bce025de6a0a5bd4185bd6709f3a55", "signature": "Series(string? Name, float[]? Values = null, int Count = default, Color Color = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Values", "type": "float[]?", "default": "null" }, { "name": "Count", "type": "int", "default": "default" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default: series palette" }, { "name": "Values", "kind": "field", "id": "field|Values|0|0|float[]?|||h2297887dc39e194c11ed11a1bc7d673508c8c381e7f2c43c6669bc8a49edec45", "signature": "public float[]? Values", "summary": "const float * values" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int count" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.SeriesDecimator", "displayName": "SeriesDecimator", "kind": "static class", "summary": "Reduces a long series to something a chart can draw in real time. A chart is a few hundred pixels wide, so points beyond roughly two per pixel cannot be seen \u2014 but they still cost geometry. This collapses each bucket of consecutive samples into its minimum and its maximum, in the order they occurred, which keeps spikes and gaps that plain averaging would erase. That is what financial and monitoring charts do. Copy-based and allocation-free: pass a destination span and reuse it every frame. See RequiredCapacity.", "members": [{ "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|float[]|ReadOnlySpan\u003Cfloat\u003E source;int buckets||h57be39ba7b62d04901227ad335a715cdc65b0e15d7aca2281d6671d35b6aabab", "signature": "static float[] Decimate(ReadOnlySpan\u003Cfloat\u003E source, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Convenience overload for callers that would rather not size a buffer. Allocates; prefer the span overload inside a frame." }, { "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|int|ReadOnlySpan\u003Cfloat\u003E source;Span\u003Cfloat\u003E destination;int buckets||h33b46cde5ca131f2feaa537df35b0d4942a589525ab6a83a0dd11cc2aafe289d", "signature": "static int Decimate(ReadOnlySpan\u003Cfloat\u003E source, Span\u003Cfloat\u003E destination, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "destination", "type": "Span\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Decimates source into destination. Returns the number of points written, which is 0, source.Length when it already fits, or an even number up to buckets * 2." }, { "name": "RequiredCapacity", "kind": "method", "id": "method|RequiredCapacity|1|0|int|int buckets||h0ba19241dfd2882418a4df437ca414de20707e5ad3098dbd9ac046454f14832e", "signature": "static int RequiredCapacity(int buckets)", "parameters": [{ "name": "buckets", "type": "int" }], "summary": "Points written at most for a given bucket count." }] }, + { "name": "CuiSharp.Severity", "displayName": "Severity", "kind": "enum", "summary": "cui_severity", "members": [{ "name": "Error", "kind": "enum value", "id": "enum value|Error|1|0|||0|h1be74ca9b09430ce431ffab022c61f7d490899907fffc473c0d4263ea397cf72", "signature": "Error = 0", "value": "0" }, { "name": "Hint", "kind": "enum value", "id": "enum value|Hint|1|0|||3|h8d01460ad77a1547aaf15f014ccfbafe2609035a1d0f145ad03c97bda2143974", "signature": "Hint = 3", "value": "3" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||2|h9d07ea1e38d6abe142845630dc2f28ea265d47cf4ff8de68a0fe4011916186d3", "signature": "Info = 2", "value": "2" }, { "name": "Warning", "kind": "enum value", "id": "enum value|Warning|1|0|||1|h3699e894f07e195e49680b995c40992a452b1434348b9c7a1704f55611bae132", "signature": "Warning = 1", "value": "1" }] }, + { "name": "CuiSharp.SheetOpts", "displayName": "SheetOpts", "kind": "struct", "summary": "cui_sheet_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Side", "kind": "field", "id": "field|Side|0|0|Side|||h246cd6630b9e5173ef64270ae4793d84e4ae57c4170b390ddf3234197dd10321", "signature": "public Side Side", "summary": "cui_side side" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, + { "name": "CuiSharp.ShortcutRecorderOpts", "displayName": "ShortcutRecorderOpts", "kind": "struct", "summary": "cui_shortcut_recorder_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.Side", "displayName": "Side", "kind": "enum", "summary": "cui_side", "members": [{ "name": "Bottom", "kind": "enum value", "id": "enum value|Bottom|1|0|||2|h0862538babcf2a086a256d007852bc8a43bf86d313ddc23c41ade284f27b2a9e", "signature": "Bottom = 2", "value": "2" }, { "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||1|hf671bc6932922aef2ac1a4125ae2532931f30a2d397b0f0ca21018c00c6c84da", "signature": "Left = 1", "value": "1" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||0|h08d50cb63b6adb063b6c50afa635847a93edcdfbcf063d547d6fca799afbb6d0", "signature": "Right = 0", "value": "0" }, { "name": "Top", "kind": "enum value", "id": "enum value|Top|1|0|||3|hb1ed46e3dd5f59ea3d0b551cf80d64f49880e3f6dd1eaef702171ed9a19ec755", "signature": "Top = 3", "value": "3" }] }, + { "name": "CuiSharp.SignatureOpts", "displayName": "SignatureOpts", "kind": "struct", "summary": "cui_signature_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Ink", "kind": "field", "id": "field|Ink|0|0|Color|||h1e489f3751f1bcc46a8bd2c784f7540a1695c7586c8c4873095168b14c285be5", "signature": "public Color Ink", "summary": "cui_color ink" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.Size", "displayName": "Size", "kind": "struct", "summary": "cui_size: FIT, FILL, a fixed size in points, or a percentage of the parent.", "members": [{ "name": "Fill", "kind": "field", "id": "field|Fill|1|0|Size|||h790115b6211329a34fc1b5834807c9eb7d393fea88cc38588cebb48424e35ea1", "signature": "public static readonly Size Fill" }, { "name": "Fit", "kind": "field", "id": "field|Fit|1|0|Size|||hdaa4842ff2d572e20f3cd6e736da2c5505704cc9c606c11a63518add68d41804", "signature": "public static readonly Size Fit" }, { "name": "Grow", "kind": "method", "id": "method|Grow|1|0|Size|float w||h5596ca63547629277fcdf13865a1ed206da91439840235e6710713bfd08ea4bd", "signature": "static Size Grow(float w)", "parameters": [{ "name": "w", "type": "float" }] }, { "name": "Percent", "kind": "method", "id": "method|Percent|1|0|Size|float p||heab4606395abad8b3c38a5d65afa384229a1999668ab119e49682d758090d023", "signature": "static Size Percent(float p)", "parameters": [{ "name": "p", "type": "float" }] }, { "name": "Px", "kind": "method", "id": "method|Px|1|0|Size|float v||h719d0c5ced61889c531b21ea4e449976a8a3dea18d23d3ec61f75cd39c82f204", "signature": "static Size Px(float v)", "parameters": [{ "name": "v", "type": "float" }] }, { "name": "implicit operator Size", "kind": "conversion", "id": "conversion|op_Implicit|1|0|Size|float points||haa7af4a383872bdd173c483aa2417db201ae049698d7e393bef2b4a290d48f0f", "signature": "static implicit operator Size(float points)", "member": "op_Implicit", "parameters": [{ "name": "points", "type": "float" }], "summary": "A bare number is a fixed size in points, so Width = 240 reads like every other layout value. Use Fill, Fit or Percent when the size is relative." }] }, + { "name": "CuiSharp.SizeKind", "displayName": "SizeKind", "kind": "enum", "summary": "cui_size_kind", "members": [{ "name": "Fit", "kind": "enum value", "id": "enum value|Fit|1|0|||0|hcdd031f42e54d697a13b2efcae71f1bc9d7acfd1d0d99910b287245b73e035bc", "signature": "Fit = 0", "value": "0" }, { "name": "Fixed", "kind": "enum value", "id": "enum value|Fixed|1|0|||2|h6970e23dec123bc9a61175098a09ff33d85995ba44643367aecbdea462662478", "signature": "Fixed = 2", "value": "2" }, { "name": "Grow", "kind": "enum value", "id": "enum value|Grow|1|0|||1|h64ad9af845328d80462ccb115e33b85b01a66a2524b2116c36dc1526a4a4942a", "signature": "Grow = 1", "value": "1" }, { "name": "Percent", "kind": "enum value", "id": "enum value|Percent|1|0|||3|h335bc15932474690bbb8bf068ec30c38b8ce86636d11e701ce648866ccaf80dd", "signature": "Percent = 3", "value": "3" }] }, + { "name": "CuiSharp.SliderOpts", "displayName": "SliderOpts", "kind": "struct", "summary": "cui_slider_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "ShowValue", "kind": "field", "id": "field|ShowValue|0|0|bool|||hd0974546e5f5fd0d3590998a1e541a6ef369d199dd57720a3611943d5245da68", "signature": "public bool ShowValue", "summary": "_Bool show_value" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "0 = continuous" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "printf format for the value, default \u0022%.0f\u0022" }] }, + { "name": "CuiSharp.Source", "displayName": "Source", "kind": "struct", "summary": "cui_source. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Url = null;string? Snippet = null||h39e0a65c6c954596245d39a1b9a35ef0bb8f95e8bbf5ec0920915c9468f048bf", "signature": "Source(string? Title, string? Url = null, string? Snippet = null)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Url", "type": "string?", "default": "null" }, { "name": "Snippet", "type": "string?", "default": "null" }] }, { "name": "Snippet", "kind": "field", "id": "field|Snippet|0|0|string?|||hce8601e46b8098c0405f6b5767e2110391ffe8ecbe0d08165351569ed2e71ca2", "signature": "public string? Snippet", "summary": "const char * snippet" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }, { "name": "Url", "kind": "field", "id": "field|Url|0|0|string?|||h019bf1b15b950788d9efa2764da1816a2b3f9583d4fd74a01e5e11cc1ab6b5d9", "signature": "public string? Url", "summary": "const char * url" }] }, + { "name": "CuiSharp.SpeedAction", "displayName": "SpeedAction", "kind": "struct", "summary": "cui_speed_action. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Icon;string? Label = null||h2735c656af1a3e39a08390cc4dafa6e8fa78d7ad0ac7b4c6e8d46d9ab30a902b", "signature": "SpeedAction(string? Icon, string? Label = null)", "parameters": [{ "name": "Icon", "type": "string?" }, { "name": "Label", "type": "string?", "default": "null" }] }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.SpeedDialOpts", "displayName": "SpeedDialOpts", "kind": "struct", "summary": "cui_speed_dial_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "const char * tooltip" }] }, + { "name": "CuiSharp.SplitBarOpts", "displayName": "SplitBarOpts", "kind": "struct", "summary": "cui_split_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.SplitButtonOpts", "displayName": "SplitButtonOpts", "kind": "struct", "summary": "cui_split_button_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "default primary" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "ItemIcons", "kind": "field", "id": "field|ItemIcons|0|0|string[]?|||hcaf91bea3358468010ed20f67d366d25d10034afbcebd60dc1efe82b736bcef4", "signature": "public string[]? ItemIcons", "summary": "const char *const * item_icons" }] }, + { "name": "CuiSharp.SplitOpts", "displayName": "SplitOpts", "kind": "struct", "summary": "cui_split_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Vertical", "kind": "field", "id": "field|Vertical|0|0|bool|||hfd18d3a96b7fc20c4a8bf4afbba876db1cf5ccde6a27c0179f2b46b01ecdbd8d", "signature": "public bool Vertical", "summary": "_Bool vertical" }, { "name": "MinFirst", "kind": "field", "id": "field|MinFirst|0|0|float|||h203ccf5752771158a9004b5869c64efac48743fd8ad2d4052049ab858c705911", "signature": "public float MinFirst", "summary": "float min_first" }, { "name": "MinSecond", "kind": "field", "id": "field|MinSecond|0|0|float|||hc79d7e0191f3217f02adf136ff4c3f9fbe0fad72ad8716f348481f65792590d7", "signature": "public float MinSecond", "summary": "float min_second" }] }, + { "name": "CuiSharp.SpotlightOpts", "displayName": "SpotlightOpts", "kind": "struct", "summary": "cui_spotlight_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Beam", "kind": "field", "id": "field|Beam|0|0|bool|||h94bae9852abad3bd381ea73d57f0b896f08f6d5f9a7fb68cce0f0c5f85159a0a", "signature": "public bool Beam", "summary": "_Bool beam" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }] }, + { "name": "CuiSharp.StackFrame", "displayName": "StackFrame", "kind": "struct", "summary": "cui_stack_frame. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Function;string? File = null;int Line = default;int Column = default;bool External = default;string[]? Source = null;int SourceFirst = default||he4c88fd7ad093d972722ba4e5a587548b111212d4d273403f1addcba9af51ba8", "signature": "StackFrame(string? Function, string? File = null, int Line = default, int Column = default, bool External = default, string[]? Source = null, int SourceFirst = default)", "parameters": [{ "name": "Function", "type": "string?" }, { "name": "File", "type": "string?", "default": "null" }, { "name": "Line", "type": "int", "default": "default" }, { "name": "Column", "type": "int", "default": "default" }, { "name": "External", "type": "bool", "default": "default" }, { "name": "Source", "type": "string[]?", "default": "null" }, { "name": "SourceFirst", "type": "int", "default": "default" }] }, { "name": "External", "kind": "field", "id": "field|External|0|0|bool|||h17b17a8ebe312ce76e5204293f4544a40d41af42dfded01c79a3c6a1392eb1ff", "signature": "public bool External", "summary": "library or runtime code" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "1 based; 0 leaves it out" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "1 based; 0 leaves it out" }, { "name": "SourceFirst", "kind": "field", "id": "field|SourceFirst|0|0|int|||hdbfe26cdd0e9e35221244418a1765d3b7ab294b68bdd1b1356d37e84561caf72", "signature": "public int SourceFirst", "summary": "line number of source[0]" }, { "name": "File", "kind": "field", "id": "field|File|0|0|string?|||hcb0b8d0218e8cf25aa697a2fe7d3f1b57e07380a5833c8f8df5ed5a679ae940a", "signature": "public string? File", "summary": "const char * file" }, { "name": "Function", "kind": "field", "id": "field|Function|0|0|string?|||h63bca84090f11c69fcfbed586b3dea60c3bff045be3cd738824a9ab3dcbf1a2c", "signature": "public string? Function", "summary": "const char * function" }, { "name": "Source", "kind": "field", "id": "field|Source|0|0|string[]?|||h06eff54a16a0ace906a605734f7edf82903829b89d67ba3bc94f2ffdd5e4c24c", "signature": "public string[]? Source", "summary": "lines around the frame, may be NULL" }] }, + { "name": "CuiSharp.StackTraceOpts", "displayName": "StackTraceOpts", "kind": "struct", "summary": "cui_stack_trace_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "highlights the source, as the code block" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|string?|||hef2e6225d86c6eb3366a0a172da793ed9f3ab16202af98b590c25bfb4adb1feb", "signature": "public string? Message", "summary": "\u0022Cannot read properties of undefined\u0022" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "\u0022TypeError\u0022" }] }, + { "name": "CuiSharp.StackTraceResult", "displayName": "StackTraceResult", "kind": "struct", "summary": "cui_stack_trace_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked||ha42e5e32b4ac620e2d6f06d81ff8da5ffa676464f314186237b331b4317b8f7b", "signature": "StackTraceResult(int Clicked)", "parameters": [{ "name": "Clicked", "type": "int" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "frame, or -1" }] }, + { "name": "CuiSharp.Status", "displayName": "Status", "kind": "enum", "summary": "cui_status", "members": [{ "name": "Busy", "kind": "enum value", "id": "enum value|Busy|1|0|||1|h378ab634bbf8bb78570fd40d5f1b7c6f8c45f221ee77b0cd236f479a1b9d7e17", "signature": "Busy = 1", "value": "1" }, { "name": "Error", "kind": "enum value", "id": "enum value|Error|1|0|||3|h68b7ce13e0519d729c752ef576237d56a4727cd9d47dd2fb3e15249371dc4aea", "signature": "Error = 3", "value": "3" }, { "name": "Idle", "kind": "enum value", "id": "enum value|Idle|1|0|||0|h20c3936fb6d84745aab37d74d712fd6dfdf7b2e28735244f399d17b466c6d050", "signature": "Idle = 0", "value": "0" }, { "name": "Success", "kind": "enum value", "id": "enum value|Success|1|0|||2|h9453fe91cad217e9affb373e791ef407f27e2a00453790c4bdd9a094e56d63dc", "signature": "Success = 2", "value": "2" }] }, + { "name": "CuiSharp.StatusBarOpts", "displayName": "StatusBarOpts", "kind": "struct", "summary": "cui_status_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|bool|||hb6606a0691e1878d2d505efaca98f05506ff46d2cad01766c9efde8a172544e3", "signature": "public bool NoBorder", "summary": "_Bool no_border" }] }, + { "name": "CuiSharp.StatusButtonOpts", "displayName": "StatusButtonOpts", "kind": "struct", "summary": "cui_status_button_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "default primary" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "BusyLabel", "kind": "field", "id": "field|BusyLabel|0|0|string?|||h0403c19987ce94fd75aa609b1dbae50ef96c5bcbc8372daae42c9c047aa504f9", "signature": "public string? BusyLabel", "summary": "default label \u002B \u0022...\u0022" }, { "name": "ErrorLabel", "kind": "field", "id": "field|ErrorLabel|0|0|string?|||h765709e038bdbddf204086838f91e505e493728bb83e20bf3f432835e10d0f61", "signature": "public string? ErrorLabel", "summary": "default \u0022Failed\u0022" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "SuccessLabel", "kind": "field", "id": "field|SuccessLabel|0|0|string?|||h00d5182028e0fcd6c82e33fbb6b7a8f27b8d1d43cc8587bb8294ce3e681aa459", "signature": "public string? SuccessLabel", "summary": "default \u0022Done\u0022" }] }, + { "name": "CuiSharp.StatusItemOpts", "displayName": "StatusItemOpts", "kind": "struct", "summary": "cui_status_item_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "const char * tooltip" }] }, + { "name": "CuiSharp.StatusProgressOpts", "displayName": "StatusProgressOpts", "kind": "struct", "summary": "cui_status_progress_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|bool|||he38813187674932a5621bb6b38b49afa8004ab77baa2505c22f3600d136405a8", "signature": "public bool Indeterminate", "summary": "_Bool indeterminate" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.SwFormat", "displayName": "SwFormat", "kind": "enum", "summary": "cui_sw_format", "members": [{ "name": "Bgra", "kind": "enum value", "id": "enum value|Bgra|1|0|||1|h8c5e5d26ea6e8313039382a525db7a512308017c8b8b62061deaa37e7c202df4", "signature": "Bgra = 1", "value": "1" }, { "name": "Rgba", "kind": "enum value", "id": "enum value|Rgba|1|0|||0|hc7fcacd0ab678cc1579948fc3eb8e07774063388065bdc4edb7957d68b3a2efa", "signature": "Rgba = 0", "value": "0" }] }, + { "name": "CuiSharp.SwipeAction", "displayName": "SwipeAction", "kind": "struct", "summary": "cui_swipe_action. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Icon;string? Label = null;Tone Tone = Tone.Neutral||h3975a6cdf5c88713cb133bb7305e3ebdb4495bb7bd3f114e9bcf9970469e5b68", "signature": "SwipeAction(string? Icon, string? Label = null, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Icon", "type": "string?" }, { "name": "Label", "type": "string?", "default": "null" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.TabBarItem", "displayName": "TabBarItem", "kind": "struct", "summary": "cui_tab_bar_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Icon;string? Label = null;int Badge = default||hde457cb2a5b9ce1c1fb9e25bdf335be3001808caedb1d20900b1b1b34678ec84", "signature": "TabBarItem(string? Icon, string? Label = null, int Badge = default)", "parameters": [{ "name": "Icon", "type": "string?" }, { "name": "Label", "type": "string?", "default": "null" }, { "name": "Badge", "type": "int", "default": "default" }] }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|int|||h1ea0a5985eea3db7ed64622a6693b2d10e07bdfdc4610208a1b5ee962fce491c", "signature": "public int Badge", "summary": "int badge" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.TabBarOpts", "displayName": "TabBarOpts", "kind": "struct", "summary": "cui_tab_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "LabelsOnSelectedOnly", "kind": "field", "id": "field|LabelsOnSelectedOnly|0|0|bool|||h93eb4f461e702a18879a2a8f4f330ad0205586732b401def0874e804b16b7eb7", "signature": "public bool LabelsOnSelectedOnly", "summary": "_Bool labels_on_selected_only" }] }, + { "name": "CuiSharp.TableColumn", "displayName": "TableColumn", "kind": "struct", "summary": "cui_table_column. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;Size Width = default;TextAlign Align = TextAlign.Start;bool Sortable = default||hb239bc5cd660ab6314bf7c8024cf937f976f2238f0258bb4f53cdf3219c29eee", "signature": "TableColumn(string? Title, Size Width = default, TextAlign Align = TextAlign.Start, bool Sortable = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Width", "type": "Size", "default": "default" }, { "name": "Align", "type": "TextAlign", "default": "TextAlign.Start" }, { "name": "Sortable", "type": "bool", "default": "default" }] }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "Sortable", "kind": "field", "id": "field|Sortable|0|0|bool|||ha21687844f87f043066ecf4a581aada41967a9906bbaa3897b2a88d640efc033", "signature": "public bool Sortable", "summary": "_Bool sortable" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.TableOpts", "displayName": "TableOpts", "kind": "struct", "summary": "cui_table_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "scrolls when set" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "_Bool compact" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|bool|||h1a73ba6030aa83f21295dd2f784fe3b67bc0f00f1e6159545865f03b1c0cb4a4", "signature": "public bool Selectable", "summary": "_Bool selectable" }, { "name": "Striped", "kind": "field", "id": "field|Striped|0|0|bool|||h8ee3cac64f2feaa8e6270ae2b329845033941012b85937e8fd5ac134a90bb7dc", "signature": "public bool Striped", "summary": "_Bool striped" }] }, + { "name": "CuiSharp.TableSort", "displayName": "TableSort", "kind": "struct", "summary": "cui_table_sort. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Column;bool Descending = default||h0bdf2a03f829284a59c5a4e38dc34975c677cd3924924279015fe940d6e20401", "signature": "TableSort(int Column, bool Descending = default)", "parameters": [{ "name": "Column", "type": "int" }, { "name": "Descending", "type": "bool", "default": "default" }] }, { "name": "Descending", "kind": "field", "id": "field|Descending|0|0|bool|||h1a360352e80820c7abfc68e033c0efd7511fb05677a9bded45e8e83643b17746", "signature": "public bool Descending", "summary": "_Bool descending" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "int column" }] }, + { "name": "CuiSharp.TabsOpts", "displayName": "TabsOpts", "kind": "struct", "summary": "cui_tabs_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|TabsVariant|||h49f8a6f3a6cada318bc7957941b921d2719766718e3e73680559679aab99b41d", "signature": "public TabsVariant Variant", "summary": "cui_tabs_variant variant" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|bool|||hdc8aafcce927648adf0c0145203424f8957fc857f5c4d890241daae15b5eac45", "signature": "public bool FullWidth", "summary": "_Bool full_width" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, + { "name": "CuiSharp.TabsVariant", "displayName": "TabsVariant", "kind": "enum", "summary": "cui_tabs_variant", "members": [{ "name": "Pill", "kind": "enum value", "id": "enum value|Pill|1|0|||1|h8ee7ccf29aba7d6b7ec2355c686fbdd019f4da4ab5c390de8702d5613e71ff66", "signature": "Pill = 1", "value": "1" }, { "name": "Underline", "kind": "enum value", "id": "enum value|Underline|1|0|||0|heec07c0faa5bc1f63dbd25ceb654980dca96b37125d8e7e19137e5c5542d667f", "signature": "Underline = 0", "value": "0" }] }, + { "name": "CuiSharp.TagOpts", "displayName": "TagOpts", "kind": "struct", "summary": "cui_tag_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "MaxTags", "kind": "field", "id": "field|MaxTags|0|0|int|||h8b26d1afd151f6d00ddf61355c9b723d07f9b163c1b15507df383533264ce0ab", "signature": "public int MaxTags", "summary": "int max_tags" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, + { "name": "CuiSharp.Terminal", "displayName": "Terminal", "kind": "class", "summary": "A terminal\u0027s scrollback and its line index, owned by managed code. CUI keeps the text in a buffer the app supplies, so this type owns that storage and keeps it valid: an unmanaged text block plus the line ring behind it. Write with Write, Write or an interpolated string, then draw it with ui.Terminal(id, terminal, opts). The ring recycles the oldest lines when it fills, so a long-running log never has to grow; Clear empties it.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int maxLines = 500;int maxChars = 65536||h470d76ea89a1c94ac1b1a71181ba9e2e25595945088fd78c030d4e4d65ac6089", "signature": "Terminal(int maxLines = 500, int maxChars = 65536)", "parameters": [{ "name": "maxLines", "type": "int", "default": "500" }, { "name": "maxChars", "type": "int", "default": "65536" }], "summary": "Creates a terminal with a fixed scrollback size." }, { "name": "LineCount", "kind": "property", "id": "property|LineCount|0|0|int||get;|hccbe0d10fc4cba769fdf8bce186b88747cbf2bca89c28ea1307a990b730397dc", "signature": "int LineCount { get; }", "summary": "Lines currently in the scrollback, including the one being written." }, { "name": "TotalLines", "kind": "property", "id": "property|TotalLines|0|0|ulong||get;|h278c4dd16e141f4395398ec1ff80e516fb4a90a880be506e1993f9a16bd317aa", "signature": "ulong TotalLines { get; }", "summary": "Lines ever started, so a caller can tell an empty terminal from a scrolled one." }, { "name": "Clear", "kind": "method", "id": "method|Clear|0|0|void|||h9dc9f5ebe2d0fc5a7062ed0b58be5aadd046849041bb7d63ac9b387851728fe8", "signature": "void Clear()", "summary": "Empties the scrollback, leaving one empty line." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Write", "kind": "method", "id": "method|Write|0|0|void|ReadOnlySpan\u003Cbyte\u003E utf8||h8fe8907e0c2ef9b0917714e8359bc752a00f15e967215dc287c34e173ff31700", "signature": "void Write(ReadOnlySpan\u003Cbyte\u003E utf8)", "parameters": [{ "name": "utf8", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Appends UTF-8 text, interpreting \\n, \\r, \\t, \\b and ANSI SGR colours." }, { "name": "Write", "kind": "method", "id": "method|Write|0|0|void|string? text||h8a0dc0c50258d2942ea4556cc038f9f61fd651794e249ea6596045d8ab581e63", "signature": "void Write(string? text)", "parameters": [{ "name": "text", "type": "string?" }], "summary": "Appends text, interpreting \\n, \\r, \\t, \\b and ANSI SGR colours." }, { "name": "WriteLine", "kind": "method", "id": "method|WriteLine|0|0|void|string? text||h49ba439d2981699955fa3657bf89a801474697369593bd0e598a38b77310d6f7", "signature": "void WriteLine(string? text)", "parameters": [{ "name": "text", "type": "string?" }], "summary": "Appends one line and starts a new one." }] }, + { "name": "CuiSharp.TerminalOpts", "displayName": "TerminalOpts", "kind": "struct", "summary": "cui_terminal_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "NoInput", "kind": "field", "id": "field|NoInput|0|0|bool|||h5751fec1ea64489ef496c378dc86e188c0c92abbca35d28332c835f99baa2052", "signature": "public bool NoInput", "summary": "output only" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 13" }, { "name": "Prompt", "kind": "field", "id": "field|Prompt|0|0|string?|||h451a5e8b7aa4a14280613568617226b5573fbb551c31b0b7fe9c33b136ce1eb5", "signature": "public string? Prompt", "summary": "default \u0022$ \u0022" }] }, + { "name": "CuiSharp.TerminalResult", "displayName": "TerminalResult", "kind": "struct", "summary": "cui_terminal_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Command;bool Interrupt = default||hb9c9fc210ac716512de52c6a2e77e0872954e629f5e6f211ced782976a0a086a", "signature": "TerminalResult(string? Command, bool Interrupt = default)", "parameters": [{ "name": "Command", "type": "string?" }, { "name": "Interrupt", "type": "bool", "default": "default" }] }, { "name": "Interrupt", "kind": "field", "id": "field|Interrupt|0|0|bool|||hcd6bb3802ee93b93c229b22dc4f7f8be2e11ab1bee985b5ccdaa8ceb7993b60f", "signature": "public bool Interrupt", "summary": "Ctrl\u002BC with nothing selected" }, { "name": "Command", "kind": "field", "id": "field|Command|0|0|string?|||h102268d764529c1c4e1c301f36fa8e23135fc6d5efb34c8b2f9d67ec59145719", "signature": "public string? Command", "summary": "the line entered (Enter), already echoed; valid this frame" }] }, + { "name": "CuiSharp.TestExplorerOpts", "displayName": "TestExplorerOpts", "kind": "struct", "summary": "cui_test_explorer_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default 320" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320" }] }, + { "name": "CuiSharp.TestExplorerResult", "displayName": "TestExplorerResult", "kind": "struct", "summary": "cui_test_explorer_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Selected;int Activated = default;int Run = default;bool RunAll = default;int Passed = default;int Failed = default;int Skipped = default;int Total = default||h9259b82a75ad6dca89e55663dba836fdbaad0a7a0286dc59724c92e0ac55df92", "signature": "TestExplorerResult(int Selected, int Activated = default, int Run = default, bool RunAll = default, int Passed = default, int Failed = default, int Skipped = default, int Total = default)", "parameters": [{ "name": "Selected", "type": "int" }, { "name": "Activated", "type": "int", "default": "default" }, { "name": "Run", "type": "int", "default": "default" }, { "name": "RunAll", "type": "bool", "default": "default" }, { "name": "Passed", "type": "int", "default": "default" }, { "name": "Failed", "type": "int", "default": "default" }, { "name": "Skipped", "type": "int", "default": "default" }, { "name": "Total", "type": "int", "default": "default" }] }, { "name": "RunAll", "kind": "field", "id": "field|RunAll|0|0|bool|||h88b3c69231e42061271d0f1fa6f711106ea7bacadb202da4bc197feec04a1363", "signature": "public bool RunAll", "summary": "_Bool run_all" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "items, or -1" }, { "name": "Failed", "kind": "field", "id": "field|Failed|0|0|int|||h954e3e1cff0f1c1bb6525eb637eb532fe3800ffae0e88a17e8937e71770eb878", "signature": "public int Failed", "summary": "tests, not suites" }, { "name": "Passed", "kind": "field", "id": "field|Passed|0|0|int|||ha54154687a68e2d3d923fd44deff6ffd7b2827cd859fd5c85fb74ca762065819", "signature": "public int Passed", "summary": "tests, not suites" }, { "name": "Run", "kind": "field", "id": "field|Run|0|0|int|||h0ec7bdebf60675d120297a95cf2c08e9e717550db21f2ba45d23e163df40ba24", "signature": "public int Run", "summary": "item whose run button was pressed this frame, or -1" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "items, or -1" }, { "name": "Skipped", "kind": "field", "id": "field|Skipped|0|0|int|||h9233e29a38823c989e2d1ba105e13aa0edb8fb494155446c9779f82e28e85383", "signature": "public int Skipped", "summary": "tests, not suites" }, { "name": "Total", "kind": "field", "id": "field|Total|0|0|int|||h2541c69f06cf8d174824c50787be284aaf2e18bcc6734e72b01d11fde3e30f21", "signature": "public int Total", "summary": "tests, not suites" }] }, + { "name": "CuiSharp.TestItem", "displayName": "TestItem", "kind": "struct", "summary": "cui_test_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;int Depth = default;JobStatus Status = JobStatus.Pending;float Duration = default;string? Message = null||h68299cc02838d0bbbaf19c50d166a72f839f1de71cd868c55290bcc71b4c26b5", "signature": "TestItem(string? Name, int Depth = default, JobStatus Status = JobStatus.Pending, float Duration = default, string? Message = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Depth", "type": "int", "default": "default" }, { "name": "Status", "type": "JobStatus", "default": "JobStatus.Pending" }, { "name": "Duration", "type": "float", "default": "default" }, { "name": "Message", "type": "string?", "default": "null" }] }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|JobStatus|||h8dbfd9370caabecd55d2b859321b59d6a4ee052ab7364783aff88cbd0eff2901", "signature": "public JobStatus Status", "summary": "a suite\u0027s own status is ignored when it has tests" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "seconds, negative when it has not run" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "0 for the top suites" }, { "name": "Message", "kind": "field", "id": "field|Message|0|0|string?|||hef2e6225d86c6eb3366a0a172da793ed9f3ab16202af98b590c25bfb4adb1feb", "signature": "public string? Message", "summary": "why it failed, may be NULL" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.TextAlign", "displayName": "TextAlign", "kind": "enum", "summary": "cui_text_align", "members": [{ "name": "Center", "kind": "enum value", "id": "enum value|Center|1|0|||1|h4686332f74612068f01a4f33de206306d6fb2c9c2179083777b04e191a22c459", "signature": "Center = 1", "value": "1" }, { "name": "End", "kind": "enum value", "id": "enum value|End|1|0|||4|h89bf9f40742bd2f9c5fab43da2e39ff58c9a085150662373e119b920fdecb6e3", "signature": "End = 4", "value": "4" }, { "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||3|heb11e40928826e6e89050314c8a90225a5e0aeef58e5238a505c274183aa0739", "signature": "Left = 3", "value": "3" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||2|h04490d416bd05ae4ce2e2653a2b85d7aeb03d602051b05e2e85af2f720b753c6", "signature": "Right = 2", "value": "2" }, { "name": "Start", "kind": "enum value", "id": "enum value|Start|1|0|||0|h7ed6ed3a37dd742f4ad5c45d58358615134c8004790a39b9f752c72aff023900", "signature": "Start = 0", "value": "0" }] }, + { "name": "CuiSharp.TextBuffer", "displayName": "TextBuffer", "kind": "class", "summary": "Unmanaged, NUL-terminated UTF-8 storage that CUI can read and write: the value of an editable field lives here, not in a managed string. One allocation per buffer for the lifetime of the app. Reading costs one decode; Utf8 exposes it as a span without allocating, and Value decodes only when the text actually changed \u2014 CuiSharp invalidates the cached string when a widget reports an edit.", "members": [{ "name": "Utf8", "kind": "property", "id": "property|Utf8|0|0|ReadOnlySpan\u003Cbyte\u003E||get;|h1ebf5f96fdd2cb5d308d5f5cc2113cca0b1b2d030ff6494e3e786e7cf1b30f9a", "signature": "ReadOnlySpan\u003Cbyte\u003E Utf8 { get; }", "summary": "The current value as UTF-8 bytes, without copying." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int capacity = 256||h4f98254a6c6ef755cafed2e00c59e7edf3b04564b4c7491995819fe86512318f", "signature": "TextBuffer(int capacity = 256)", "parameters": [{ "name": "capacity", "type": "int", "default": "256" }], "summary": "Allocates a zeroed buffer of capacity bytes." }, { "name": "ValueIs", "kind": "method", "id": "method|ValueIs|0|0|bool|ReadOnlySpan\u003Cbyte\u003E utf8||h1ba89803debaa14d0efafe427db0823432dd875d731f3dc6c3fa55369109548a", "signature": "bool ValueIs(ReadOnlySpan\u003Cbyte\u003E utf8)", "parameters": [{ "name": "utf8", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "True when the value equals utf8 without allocating." }, { "name": "ByteLength", "kind": "property", "id": "property|ByteLength|0|0|int||get;|hc47798bc282290b4b4bceb55542db0b2995e2be505c886181213e32d780afb70", "signature": "int ByteLength { get; }", "summary": "Length of the current value in bytes, excluding the terminator." }, { "name": "Value", "kind": "property", "id": "property|Value|0|0|string||get;|hc35438a76c40e8b63585a0d550bdfb10f4a04799456d09f5dde8333ee1700156", "signature": "string Value { get; }", "summary": "The current value as a string. Cached until the buffer changes, so it is free to read every frame; the first read after an edit allocates." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Set", "kind": "method", "id": "method|Set|0|0|void|ReadOnlySpan\u003Cbyte\u003E utf8||hf0407ead5b3d98000b367da645046c3cc2ec02def483b99b0d11d971a3005b7a", "signature": "void Set(ReadOnlySpan\u003Cbyte\u003E utf8)", "parameters": [{ "name": "utf8", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Writes UTF-8 bytes into the buffer. Throws when they do not fit." }, { "name": "Set", "kind": "method", "id": "method|Set|0|0|void|string s||hdc78ae56ef8e4eb0ae403bc11dcbc6b61a55a98d11c3b89d583dbece2a63b114", "signature": "void Set(string s)", "parameters": [{ "name": "s", "type": "string" }], "summary": "Writes s into the buffer. Throws when it does not fit." }] }, + { "name": "CuiSharp.TextFxOpts", "displayName": "TextFxOpts", "kind": "struct", "summary": "cui_text_fx_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font font" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Caret", "kind": "field", "id": "field|Caret|0|0|bool|||h6a4b096973d26880743eac4163bd442ca2c3b0a536c27cbbf75318078e8ed5d7", "signature": "public bool Caret", "summary": "typewriter: a blinking caret while typing" }, { "name": "Nowrap", "kind": "field", "id": "field|Nowrap|0|0|bool|||h3e6f1021d5f3b77726fa0a88094dafcffdc12f5cc518b270882f4a24c205131a", "signature": "public bool Nowrap", "summary": "_Bool nowrap" }, { "name": "Delay", "kind": "field", "id": "field|Delay|0|0|float|||h3a45177d911de60d3c1058d19f965797cda6f4da3e3656b82d0a5ea6832de388", "signature": "public float Delay", "summary": "seconds before it starts" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "shimmer: sweeps per second; typewriter: characters per second" }] }, + { "name": "CuiSharp.TextMark", "displayName": "TextMark", "kind": "struct", "summary": "cui_text_mark. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Start;int End = default;int Color = default||hafe09d30eba5083a70c3264a76bcb76d925efa104b16dc2be2556bb8c14d4ccc", "signature": "TextMark(int Start, int End = default, int Color = default)", "parameters": [{ "name": "Start", "type": "int" }, { "name": "End", "type": "int", "default": "default" }, { "name": "Color", "type": "int", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|int|||hc8bb6c96b99475fa7944168851a42353a5485b00cf73bf71a02c209b6e3d49c6", "signature": "public int Color", "summary": "int color" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int start" }] }, + { "name": "CuiSharp.TextMetrics", "displayName": "TextMetrics", "kind": "struct", "summary": "The measurements CUI reports for one run of text.", "members": [{ "name": "LinesThatFit", "kind": "method", "id": "method|LinesThatFit|0|0|int|float height||h198746ff21467ce014888bd94a232d7d0b6a746391c0cf13a7598dee22c3e2fb", "signature": "int LinesThatFit(float height)", "parameters": [{ "name": "height", "type": "float" }], "summary": "How many lines of this text fit in height." }, { "name": "Ascent", "kind": "field", "id": "field|Ascent|0|0|float|||hd735eb2af9d20d8ce6b7d75fcb79636fae516b8878acaf26403550200b287571", "signature": "public readonly float Ascent" }, { "name": "Descent", "kind": "field", "id": "field|Descent|0|0|float|||h281e63bf4b6d08469804e17678606438e1af6f6b9a2d6934d788590b5da98d31", "signature": "public readonly float Descent" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||hc9362a720c3b97791ec30d3850d9813d8f4e227c5188afa6d0806110c66249e9", "signature": "public readonly float Height" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||he1885c26bf82b2f6f134df36f48f39e22d95c987bf85a99e854e0914187f8e9d", "signature": "public readonly float LineHeight" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||hcdb1ac85607320d5b5d642eab49e7434d35785b47abc3babb99fc1e5fcb1713c", "signature": "public readonly float Width" }] }, + { "name": "CuiSharp.TextOpts", "displayName": "TextOpts", "kind": "struct", "summary": "cui_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default foreground" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited; AUTO examines this text" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "default CUI_FONT_BODY (0)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "NoWrap", "kind": "field", "id": "field|NoWrap|0|0|bool|||hedd425991122684c109be1619269b4c271ddd90b9731a6baf6c7ac0e19b21ab6", "signature": "public bool NoWrap", "summary": "single line, ellipsis when it does not fit" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|bool|||h1a73ba6030aa83f21295dd2f784fe3b67bc0f00f1e6159545865f03b1c0cb4a4", "signature": "public bool Selectable", "summary": "reserved" }, { "name": "Tabular", "kind": "field", "id": "field|Tabular|0|0|bool|||h8a172f3b677c83acfc294103bfd5e56cf751642ac5f8f4f45ea2219e3eaff000", "signature": "public bool Tabular", "summary": "tabular numbers" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "multiplier, default 1.45" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "default theme text_body" }] }, + { "name": "CuiSharp.TextureFormat", "displayName": "TextureFormat", "kind": "enum", "summary": "cui_texture_format", "members": [{ "name": "R8", "kind": "enum value", "id": "enum value|R8|1|0|||1|hdd8be0dbf2a049b003e11447885b2e0d5ae1de58fd464162f4620db2ed01680b", "signature": "R8 = 1", "value": "1" }, { "name": "Rgba8", "kind": "enum value", "id": "enum value|Rgba8|1|0|||4|h8352b01d9e8e33271e076f18d36014030f5f1b09a0f58594d44660e4b691215c", "signature": "Rgba8 = 4", "value": "4" }] }, + { "name": "CuiSharp.Theme", "displayName": "Theme", "kind": "enum", "summary": "cui_theme_mode", "members": [{ "name": "Dark", "kind": "enum value", "id": "enum value|Dark|1|0|||1|h1bb1fceb859fee3f48eb51b0b9088420db8d84887553aee0a6b4939b01589d5c", "signature": "Dark = 1", "value": "1" }, { "name": "Light", "kind": "enum value", "id": "enum value|Light|1|0|||0|h9ea9168c351f3ca9162554dd3570ab1f3235da7717acdf1017c007eda5943a2d", "signature": "Light = 0", "value": "0" }] }, + { "name": "CuiSharp.TickerItem", "displayName": "TickerItem", "kind": "struct", "summary": "cui_ticker_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Label;string? Value = null;float Delta = default;bool LowerIsBetter = default||h792dce0cb71de14ba3388589db1ef9d58ad44289c7edd5f3771ee88210200a37", "signature": "TickerItem(string? Label, string? Value = null, float Delta = default, bool LowerIsBetter = default)", "parameters": [{ "name": "Label", "type": "string?" }, { "name": "Value", "type": "string?", "default": "null" }, { "name": "Delta", "type": "float", "default": "default" }, { "name": "LowerIsBetter", "type": "bool", "default": "default" }] }, { "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|bool|||hdbb63017a214eb7f7b2818c5485cd80ae1d87f9c8fd20fc1e56e32d63eec76ee", "signature": "public bool LowerIsBetter", "summary": "a fall is good: shown green" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "a fall is good: shown green" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "a fall is good: shown green" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|string?|||h5ce95573760fbed490482794a8054e38848c0b6a2d40e7e67f6af14eb4564732", "signature": "public string? Value", "summary": "a fall is good: shown green" }] }, + { "name": "CuiSharp.TickerOpts", "displayName": "TickerOpts", "kind": "struct", "summary": "cui_ticker_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "float speed" }] }, + { "name": "CuiSharp.TileOpts", "displayName": "TileOpts", "kind": "struct", "summary": "cui_tile_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Wide", "kind": "field", "id": "field|Wide|0|0|bool|||he3f28dc2c3369b3bae8254c3abb8b09cf3925a27b4b01fe3aea8dbfe787424e3", "signature": "public bool Wide", "summary": "_Bool wide" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.TimeHistogramOpts", "displayName": "TimeHistogramOpts", "kind": "struct", "summary": "cui_time_histogram_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default 140" }, { "name": "Utc", "kind": "field", "id": "field|Utc|0|0|bool|||hce27528a0642529c63bbecfb74ceeffd4af58ffbe72eea12d92db228ca35332e", "signature": "public bool Utc", "summary": "_Bool utc" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 140" }] }, + { "name": "CuiSharp.TimeHistogramResult", "displayName": "TimeHistogramResult", "kind": "struct", "summary": "cui_time_histogram_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool SelectionChanged;int Hovered = default||hdc2711e7483548d8b0b410cc4d8901d4f9eb51005c974809f249fef139294c8f", "signature": "TimeHistogramResult(bool SelectionChanged, int Hovered = default)", "parameters": [{ "name": "SelectionChanged", "type": "bool" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||h05b0cea014ff6284a7cc2c58dd6fb1035a7e0e81c25aa7972d22ca756915ea7a", "signature": "public bool SelectionChanged", "summary": "bucket, or -1" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "bucket, or -1" }] }, + { "name": "CuiSharp.TimeOpts", "displayName": "TimeOpts", "kind": "struct", "summary": "cui_time_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "TwelveHour", "kind": "field", "id": "field|TwelveHour|0|0|bool|||h9947b8902a5782d09675e98cab40ee27b992c6b0e89095d1c8e273bde5f2c71a", "signature": "public bool TwelveHour", "summary": "_Bool twelve_hour" }, { "name": "MinuteStep", "kind": "field", "id": "field|MinuteStep|0|0|int|||h8b617dbbc51baef740290e5dbf1841a2842003c33375c72d7fc0340267dda89a", "signature": "public int MinuteStep", "summary": "int minute_step" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.TimelineEditorOpts", "displayName": "TimelineEditorOpts", "kind": "struct", "summary": "cui_timeline_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "FreeDrag", "kind": "field", "id": "field|FreeDrag|0|0|bool|||hcf7bcc6af3f6823ecda6e49d1828ccac3be4b48776137fa7bc60760728123918", "signature": "public bool FreeDrag", "summary": "drags and scrubbing do not snap to frames" }, { "name": "Toggles", "kind": "field", "id": "field|Toggles|0|0|bool|||hc56f327425b105a2cd091fdea353e07bf2b9e7d75d9ca27d00e90523f3c4bd54", "signature": "public bool Toggles", "summary": "hide and lock buttons on every track" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "the sequence in seconds; both 0 = 0..10" }, { "name": "Fps", "kind": "field", "id": "field|Fps|0|0|float|||hd2f14e8d0c94590cc91095a6112128e328e291713114ddde746a2f651504d635", "signature": "public float Fps", "summary": "frames per second, default 30: snapping, stepping and frame labels" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default: fits every track (up to 360)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 26" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "the sequence in seconds; both 0 = 0..10" }, { "name": "TrackWidth", "kind": "field", "id": "field|TrackWidth|0|0|float|||h5be028c49353fefae2fc30686c1ecbee4d2683da191546d7ee2049c3050c7282", "signature": "public float TrackWidth", "summary": "track list, default 184; narrower (then icons only) on a narrow editor" }, { "name": "Ruler", "kind": "field", "id": "field|Ruler|0|0|int|||hac6a7a1e03a54bf8ec255254799822b67c702cb2dff94260c7dcf36e7f9ba893", "signature": "public int Ruler", "summary": "cui_timeline_ruler" }] }, + { "name": "CuiSharp.TimelineEditorResult", "displayName": "TimelineEditorResult", "kind": "struct", "summary": "cui_timeline_editor_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;bool TimeChanged = default;bool Scrubbing = default;bool PlayToggled = default;bool SelectionChanged = default;bool ViewChanged = default;bool KeysMoved = default;int AddedTrack = default;int AddedKey = default;int RemovedKeys = default;int RemovedClips = default;int ClipTrack = default;int Clip = default;int Toggled = default;int CurrentTrack = default;int CurrentKey = default;int HoveredTrack = default;int HoveredKey = default||h07f2fe9c82e3f17831ab25869edd78c087c208c03c4d002322a7a9990ac30a83", "signature": "TimelineEditorResult(bool Changed, bool TimeChanged = default, bool Scrubbing = default, bool PlayToggled = default, bool SelectionChanged = default, bool ViewChanged = default, bool KeysMoved = default, int AddedTrack = default, int AddedKey = default, int RemovedKeys = default, int RemovedClips = default, int ClipTrack = default, int Clip = default, int Toggled = default, int CurrentTrack = default, int CurrentKey = default, int HoveredTrack = default, int HoveredKey = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "TimeChanged", "type": "bool", "default": "default" }, { "name": "Scrubbing", "type": "bool", "default": "default" }, { "name": "PlayToggled", "type": "bool", "default": "default" }, { "name": "SelectionChanged", "type": "bool", "default": "default" }, { "name": "ViewChanged", "type": "bool", "default": "default" }, { "name": "KeysMoved", "type": "bool", "default": "default" }, { "name": "AddedTrack", "type": "int", "default": "default" }, { "name": "AddedKey", "type": "int", "default": "default" }, { "name": "RemovedKeys", "type": "int", "default": "default" }, { "name": "RemovedClips", "type": "int", "default": "default" }, { "name": "ClipTrack", "type": "int", "default": "default" }, { "name": "Clip", "type": "int", "default": "default" }, { "name": "Toggled", "type": "int", "default": "default" }, { "name": "CurrentTrack", "type": "int", "default": "default" }, { "name": "CurrentKey", "type": "int", "default": "default" }, { "name": "HoveredTrack", "type": "int", "default": "default" }, { "name": "HoveredKey", "type": "int", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "keys or clips moved, were added or removed, or a track flag changed" }, { "name": "KeysMoved", "kind": "field", "id": "field|KeysMoved|0|0|bool|||hdc57514bf704c645ad41be07e5a873e2a8013bb89e3fae35e6a7dec4d98ff09c", "signature": "public bool KeysMoved", "summary": "selected keys moved this frame (drag or Alt\u002Barrows)" }, { "name": "PlayToggled", "kind": "field", "id": "field|PlayToggled|0|0|bool|||h802f49c116da95a4854cd70378df8a981f32161447e6a274554d3762ae5cccd4", "signature": "public bool PlayToggled", "summary": "Space: start or stop playback" }, { "name": "Scrubbing", "kind": "field", "id": "field|Scrubbing|0|0|bool|||hda2d5b4a77455b38ed4cfcd8031063262078a8daa09121271bdff83faaf587f3", "signature": "public bool Scrubbing", "summary": "the playhead is being dragged" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||h05b0cea014ff6284a7cc2c58dd6fb1035a7e0e81c25aa7972d22ca756915ea7a", "signature": "public bool SelectionChanged", "summary": "_Bool selection_changed" }, { "name": "TimeChanged", "kind": "field", "id": "field|TimeChanged|0|0|bool|||h8000cd3a016d4b70379af3762d2ef941ed548963f32abd218ee0e0f6817ae5f1", "signature": "public bool TimeChanged", "summary": "time moved (scrub, ruler click, keys)" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|bool|||h644da108e153019ae339e325a567b1b89a1cc6e0c8470c8761ac096a08aee5ee", "signature": "public bool ViewChanged", "summary": "_Bool view_changed" }, { "name": "AddedKey", "kind": "field", "id": "field|AddedKey|0|0|int|||ha8e58faba1c728fe25d31ea3e66082285970f2ec12ab48f52376a20679473da9", "signature": "public int AddedKey", "summary": "the key added this frame (double click), or -1" }, { "name": "AddedTrack", "kind": "field", "id": "field|AddedTrack|0|0|int|||hd09c9d0b3aaf7c0a2f00f840aad0417f84f4096dcfd34c9bbb7837e2452ee4da", "signature": "public int AddedTrack", "summary": "the key added this frame (double click), or -1" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|int|||ha920295d84599cdc0940acb2d6a074abbe96d37d1c4b07783b3d79dc3b94a907", "signature": "public int Clip", "summary": "the clip moved or trimmed this frame, or -1" }, { "name": "ClipTrack", "kind": "field", "id": "field|ClipTrack|0|0|int|||hd040e6fd1c8a24948aa8714159d0f6860d9dfa74526817d24bf44b0750aeccf0", "signature": "public int ClipTrack", "summary": "the clip moved or trimmed this frame, or -1" }, { "name": "CurrentKey", "kind": "field", "id": "field|CurrentKey|0|0|int|||h1f9f9e276d189f141cc95626370c85293587bbc81d6ed41c542bf89d7b66a89e", "signature": "public int CurrentKey", "summary": "int current_key" }, { "name": "CurrentTrack", "kind": "field", "id": "field|CurrentTrack|0|0|int|||h1cd8beaafe2750d4e51c20d8c9bd32973b6b59d441d469e210cd68066b762a5f", "signature": "public int CurrentTrack", "summary": "int current_track" }, { "name": "HoveredKey", "kind": "field", "id": "field|HoveredKey|0|0|int|||h5f9a0b03a58b19df9fe682e41ca82692d9a7d27ef2cf9eb436df6a03faed7ec7", "signature": "public int HoveredKey", "summary": "the key under the pointer, or -1" }, { "name": "HoveredTrack", "kind": "field", "id": "field|HoveredTrack|0|0|int|||hef9e0c1f9c6600daf6fa5e659af87654318417480a903f316dcb65f0c22b9976", "signature": "public int HoveredTrack", "summary": "the key under the pointer, or -1" }, { "name": "RemovedClips", "kind": "field", "id": "field|RemovedClips|0|0|int|||hd2490000eb723d503a8568158ee4c011ed9b150aa2b815079cc13d7aa054a4b9", "signature": "public int RemovedClips", "summary": "how many were removed this frame (Delete)" }, { "name": "RemovedKeys", "kind": "field", "id": "field|RemovedKeys|0|0|int|||h4df23841d98bd9d4b2bfc95ae5403d1478d1ffd2f7398843b1f8ee32c749837f", "signature": "public int RemovedKeys", "summary": "how many were removed this frame (Delete)" }, { "name": "Toggled", "kind": "field", "id": "field|Toggled|0|0|int|||h82e392de52553e129e49d9cce4050ccbbcd5dc4b65665d552caefdfb90d73691", "signature": "public int Toggled", "summary": "the track whose collapsed, muted or locked flag changed, or -1" }] }, + { "name": "CuiSharp.TimelineOpts", "displayName": "TimelineOpts", "kind": "struct", "summary": "cui_timeline_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Last", "kind": "field", "id": "field|Last|0|0|bool|||h02dc1e060c4cf29b134ec89650f2519c9b8961c1f5d9e8e81f180758d80cb4da", "signature": "public bool Last", "summary": "_Bool last" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|string?|||h3fa6df975c274c56979003cf790a67367077eb0ba02d23dac030823b376828bc", "signature": "public string? Time", "summary": "const char * time" }] }, + { "name": "CuiSharp.TimelineRuler", "displayName": "TimelineRuler", "kind": "enum", "summary": "cui_timeline_ruler", "members": [{ "name": "Frames", "kind": "enum value", "id": "enum value|Frames|1|0|||0|hd9e3da7733a73f760367f7156c48512e8f0cfb00915bc925a9b8786aedd31ac7", "signature": "Frames = 0", "value": "0" }, { "name": "Seconds", "kind": "enum value", "id": "enum value|Seconds|1|0|||1|h331e51325a49359813ac0df726f2d7026395578f81b8760460e31b5342b73cb1", "signature": "Seconds = 1", "value": "1" }, { "name": "Timecode", "kind": "enum value", "id": "enum value|Timecode|1|0|||2|haad37a0eafc5b4421bcefc243456200d652e768aea7dab644b1a28d2bfb98c3d", "signature": "Timecode = 2", "value": "2" }] }, + { "name": "CuiSharp.TimelineView", "displayName": "TimelineView", "kind": "struct", "summary": "cui_timeline_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float Start;float End = default;float Scroll = default||h2470c0a69bbb86925e7d0ac7ee7e3607562ac231be8ff16d4f17391ad3c44c3c", "signature": "TimelineView(float Start, float End = default, float Scroll = default)", "parameters": [{ "name": "Start", "type": "float" }, { "name": "End", "type": "float", "default": "default" }, { "name": "Scroll", "type": "float", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "visible time range; end \u003C= start fits the sequence" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "rows scrolled off the top, in points" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "visible time range; end \u003C= start fits the sequence" }] }, + { "name": "CuiSharp.ToastOpts", "displayName": "ToastOpts", "kind": "struct", "summary": "cui_toast_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "ShowTimer", "kind": "field", "id": "field|ShowTimer|0|0|bool|||h2cdb08fb0e12e79b037d47e88d3090ed559a3a9fe94d455d0f41c78dac20f989", "signature": "public bool ShowTimer", "summary": "a draining line shows how long the action stays (undo)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "seconds, default 4; negative = until dismissed" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "optional action button label" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, + { "name": "CuiSharp.TocItem", "displayName": "TocItem", "kind": "struct", "summary": "cui_toc_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Anchor = null;int Level = default||hca9f52fd38877b08bbef1ed6d92adf8e0237c5dd22b79f8cca1113fc12e8f748", "signature": "TocItem(string? Title, string? Anchor = null, int Level = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Anchor", "type": "string?", "default": "null" }, { "name": "Level", "type": "int", "default": "default" }] }, { "name": "Level", "kind": "field", "id": "field|Level|0|0|int|||h17c0e20faecc69c8472481644557574bb0d4d89b76f0c643524eb31d6b244fbe", "signature": "public int Level", "summary": "int level" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|string?|||h3eec5228ee60e1f13b26e0130c9811acd29052cd6e4584dcd45fea8634dda5ee", "signature": "public string? Anchor", "summary": "const char * anchor" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, + { "name": "CuiSharp.ToggleGroupOpts", "displayName": "ToggleGroupOpts", "kind": "struct", "summary": "cui_toggle_group_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Exclusive", "kind": "field", "id": "field|Exclusive|0|0|bool|||hf045fa9c2f55c09fade33be7364323e4cad988e1083cb700daa415e4ef6f9ee1", "signature": "public bool Exclusive", "summary": "_Bool exclusive" }, { "name": "IconOnly", "kind": "field", "id": "field|IconOnly|0|0|bool|||ha338e8c8d1c6b6f843f2ac0c9673ab05d124e55bcb723e302ca438605f613acf", "signature": "public bool IconOnly", "summary": "_Bool icon_only" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, + { "name": "CuiSharp.Token", "displayName": "Token", "kind": "enum", "summary": "cui_token", "members": [{ "name": "Accent", "kind": "enum value", "id": "enum value|Accent|1|0|||11|h5ab8881b5d2a8c62a4436b488de4977723b2487ca95acd7517943f5b5f724ed3", "signature": "Accent = 11", "value": "11" }, { "name": "AccentForeground", "kind": "enum value", "id": "enum value|AccentForeground|1|0|||14|h30640c7095f9d89437785178d6e8641ca66703e86e57be0686544e63f95eb84d", "signature": "AccentForeground = 14", "value": "14" }, { "name": "AccentStrong", "kind": "enum value", "id": "enum value|AccentStrong|1|0|||12|h3137bc51891c00083d747aab5e814229e6cff0cee617550e73d75530c0562e77", "signature": "AccentStrong = 12", "value": "12" }, { "name": "AccentSubtle", "kind": "enum value", "id": "enum value|AccentSubtle|1|0|||13|hcf962b2b79c5a3585673fc5db0e7c6270e2ce8bf1eb8e4e55278d0b61094f4f3", "signature": "AccentSubtle = 13", "value": "13" }, { "name": "Active", "kind": "enum value", "id": "enum value|Active|1|0|||26|h9d5cfb74d1f84452fdafc38d3bf340430dd0eb55e24485b0ca69356f047e0acd", "signature": "Active = 26", "value": "26" }, { "name": "Background", "kind": "enum value", "id": "enum value|Background|1|0|||1|h30ad77272d912b62754c76a53c0d00468a7387cc9f4fb3713223f35d7d3398e1", "signature": "Background = 1", "value": "1" }, { "name": "Border", "kind": "enum value", "id": "enum value|Border|1|0|||8|hf00422bf72c08cdcbbd6dc1259d192c49f05a5ab7437a9b0549d9871d2216ba4", "signature": "Border = 8", "value": "8" }, { "name": "BorderStrong", "kind": "enum value", "id": "enum value|BorderStrong|1|0|||10|h7562e8dfa914b7e908a4368ec7f090953c2d0554f9ea854093366e6bad45bcec", "signature": "BorderStrong = 10", "value": "10" }, { "name": "BorderSubtle", "kind": "enum value", "id": "enum value|BorderSubtle|1|0|||9|h9ae587f03cf2939594c5c5ae76ead449d96359daa1f773b3f177e3b4d445a534", "signature": "BorderSubtle = 9", "value": "9" }, { "name": "ControlGlyph", "kind": "enum value", "id": "enum value|ControlGlyph|1|0|||20|h11e9cb10a3f81908e66911d0462fa8bfc7eff0f92044b1423b756046998ae5cb", "signature": "ControlGlyph = 20", "value": "20" }, { "name": "ControlOn", "kind": "enum value", "id": "enum value|ControlOn|1|0|||19|he51a5cb79aa16502073f220a2eb5e16e2528068593d2a6290781ccadd6b8c721", "signature": "ControlOn = 19", "value": "19" }, { "name": "ControlThumb", "kind": "enum value", "id": "enum value|ControlThumb|1|0|||23|h781136c315e8bb7cd38d6acf9c62dc8543d84a07260f1c8605af7175d9b9f366", "signature": "ControlThumb = 23", "value": "23" }, { "name": "ControlThumbOn", "kind": "enum value", "id": "enum value|ControlThumbOn|1|0|||24|h6d26162d0bf916a435e97ae99f262f2fa255128c569ec7dba2d23233436305c1", "signature": "ControlThumbOn = 24", "value": "24" }, { "name": "ControlTrack", "kind": "enum value", "id": "enum value|ControlTrack|1|0|||21|hfa0ab87837ef76b9285a75f480b215038ca59ee6b3e38cf92620afaa18010be1", "signature": "ControlTrack = 21", "value": "21" }, { "name": "ControlTrackHover", "kind": "enum value", "id": "enum value|ControlTrackHover|1|0|||22|ha89e11ded1b73f818d4cacc2d554576ef74df6ed4c731023cc9dd27173df2da0", "signature": "ControlTrackHover = 22", "value": "22" }, { "name": "Count", "kind": "enum value", "id": "enum value|Count|1|0|||35|h98b1296ac30e673cbd8b8efc1bfcff7291ff8761c6c947eecc9ba9290a7699b3", "signature": "Count = 35", "value": "35" }, { "name": "Danger", "kind": "enum value", "id": "enum value|Danger|1|0|||17|h15907d9f3fde7e7dacac2ec86c8719c10fa97406bb1204f5d67192cb74e24aef", "signature": "Danger = 17", "value": "17" }, { "name": "FocusRing", "kind": "enum value", "id": "enum value|FocusRing|1|0|||28|h2b502adaf6eb5c074ef9ee76d03e6a95cc50f1ccdfe6d45c35a73ab88e28a609", "signature": "FocusRing = 28", "value": "28" }, { "name": "Foreground", "kind": "enum value", "id": "enum value|Foreground|1|0|||5|h80f9ae28668bdbf57a03a86897cb18c07828a8980b86c72544207f8ed1977ebf", "signature": "Foreground = 5", "value": "5" }, { "name": "Hover", "kind": "enum value", "id": "enum value|Hover|1|0|||25|h23758fcd560bbd1c5ce2af0cd021b126f27fbf9b992c19cb2d708040344396f5", "signature": "Hover = 25", "value": "25" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||18|h6a5b4760da82ce8799d7c1fb0b85804722ed836b52afb044ef14bcd9b110d096", "signature": "Info = 18", "value": "18" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Scrim", "kind": "enum value", "id": "enum value|Scrim|1|0|||27|h50a00c34c057e83e20a0947c16e77817f193858a835aa16d268fbd93a5f7528a", "signature": "Scrim = 27", "value": "27" }, { "name": "Series1", "kind": "enum value", "id": "enum value|Series1|1|0|||29|h9796d61fea966ec7cb28e19d4982225552ce3d59ea58d653f245a4ed94c0619e", "signature": "Series1 = 29", "value": "29" }, { "name": "Series2", "kind": "enum value", "id": "enum value|Series2|1|0|||30|h0282faae917f90ae21394330e3c757b2d959ddc19eac9e7123531ba117796af0", "signature": "Series2 = 30", "value": "30" }, { "name": "Series3", "kind": "enum value", "id": "enum value|Series3|1|0|||31|h1ed22591b548cbf5c25902587d9e0d315863a136d930549ef8dfedf69fb200d4", "signature": "Series3 = 31", "value": "31" }, { "name": "Series4", "kind": "enum value", "id": "enum value|Series4|1|0|||32|hd49e17877d1f6ecba263b4c6f865f9ff4d4097b945b35c31941cbcf7cfcc586a", "signature": "Series4 = 32", "value": "32" }, { "name": "Series5", "kind": "enum value", "id": "enum value|Series5|1|0|||33|hb0fbc6f0ba160aca060f721eacf08ca69bc658a7a7786e720f63fa3be6c06f2c", "signature": "Series5 = 33", "value": "33" }, { "name": "Series6", "kind": "enum value", "id": "enum value|Series6|1|0|||34|he0925e7b8f50d180ddb97b5cabc593d4d572fe2d12f0d1d731d33b2a971e12a4", "signature": "Series6 = 34", "value": "34" }, { "name": "Success", "kind": "enum value", "id": "enum value|Success|1|0|||15|h74e37af322e3c5902bf73383b88981f7de2d8690e9ade95aa35e372430c1da73", "signature": "Success = 15", "value": "15" }, { "name": "Surface", "kind": "enum value", "id": "enum value|Surface|1|0|||2|h4d12977973b741d8666721db493bb5f4221b58e2862d1095b4062dc2fc131527", "signature": "Surface = 2", "value": "2" }, { "name": "SurfaceMuted", "kind": "enum value", "id": "enum value|SurfaceMuted|1|0|||4|hf18f3ad0be6b129bcc1f7c4ccb563593f3c91322225309c71faad2dc8871cc03", "signature": "SurfaceMuted = 4", "value": "4" }, { "name": "SurfaceRaised", "kind": "enum value", "id": "enum value|SurfaceRaised|1|0|||3|h42eb1df34fc7c65a9ed804208f59d9508c3a0302d16d9c655f9c91bbb13ab18d", "signature": "SurfaceRaised = 3", "value": "3" }, { "name": "TextMuted", "kind": "enum value", "id": "enum value|TextMuted|1|0|||7|h0242b2867e0f15e77deabc0cdb95eb506458651d5328bd4bb479999ac07ea56a", "signature": "TextMuted = 7", "value": "7" }, { "name": "TextSecondary", "kind": "enum value", "id": "enum value|TextSecondary|1|0|||6|hfb227b99ea881d1e92c43ed51e5c2549fcd3770be91cc1d5632d852d214286e3", "signature": "TextSecondary = 6", "value": "6" }, { "name": "Warning", "kind": "enum value", "id": "enum value|Warning|1|0|||16|h1ea02043c9dc4508528988c5aa54155a5ffc142cc52ea35be5443aff4e80f5c0", "signature": "Warning = 16", "value": "16" }] }, + { "name": "CuiSharp.Tone", "displayName": "Tone", "kind": "enum", "summary": "cui_tone", "members": [{ "name": "Accent", "kind": "enum value", "id": "enum value|Accent|1|0|||8|hbcf0e8370c5837a6c6a719ef8d72af8e02d6fdbfd38e67102abe8f1066d532ad", "signature": "Accent = 8", "value": "8" }, { "name": "Danger", "kind": "enum value", "id": "enum value|Danger|1|0|||4|hebcc3dc3f414ec1060069244194e1348739a5a0a44a4e1999ceadd0666068873", "signature": "Danger = 4", "value": "4" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||1|h32ee2601ed4abeda8105c41a479d58367921cf05c79dedb87cbb5d3e71ecd911", "signature": "Info = 1", "value": "1" }, { "name": "Neutral", "kind": "enum value", "id": "enum value|Neutral|1|0|||0|h7da2b00cd549e0ae5dedf23ebaa10ee7a6b5919fa688f312008de9ec173d7926", "signature": "Neutral = 0", "value": "0" }, { "name": "Rose", "kind": "enum value", "id": "enum value|Rose|1|0|||7|ha5672793379d76359c9deeeb24b9e6e01894be1258c7570b394712a946dbaaab", "signature": "Rose = 7", "value": "7" }, { "name": "Success", "kind": "enum value", "id": "enum value|Success|1|0|||2|h9453fe91cad217e9affb373e791ef407f27e2a00453790c4bdd9a094e56d63dc", "signature": "Success = 2", "value": "2" }, { "name": "Teal", "kind": "enum value", "id": "enum value|Teal|1|0|||6|hb614d0b22c54ae283e5666a52a2ec1634b60b1dea42f7482e51c305c9c7fd2e2", "signature": "Teal = 6", "value": "6" }, { "name": "Violet", "kind": "enum value", "id": "enum value|Violet|1|0|||5|he96215a3fdd9bab30d6ad16124d63af290b9ddaf5e517fb8904ad601ba9ac6a0", "signature": "Violet = 5", "value": "5" }, { "name": "Warning", "kind": "enum value", "id": "enum value|Warning|1|0|||3|he550c5ec3f41a05e788c812470fd3009a451f0ea6af0afa60b0693ac4f41ee90", "signature": "Warning = 3", "value": "3" }] }, + { "name": "CuiSharp.ToolCallOpts", "displayName": "ToolCallOpts", "kind": "struct", "summary": "cui_tool_call_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status status" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float seconds" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Input", "kind": "field", "id": "field|Input|0|0|string?|||h8a7ba97ac09e13ba6d9fd85cf570de2432378775e3f8057eee8b8ae214a7359d", "signature": "public string? Input", "summary": "const char * input" }, { "name": "Output", "kind": "field", "id": "field|Output|0|0|string?|||ha4486258c9347f466518682fdd390375f3ae5e9cd368d7181387fa1339b251e4", "signature": "public string? Output", "summary": "const char * output" }] }, + { "name": "CuiSharp.ToolOpts", "displayName": "ToolOpts", "kind": "struct", "summary": "cui_tool_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "text on the button (icon may be NULL); also its name in the overflow menu" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "shown in the tooltip, e.g. \u0022Ctrl B\u0022" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "the name of an icon only button" }] }, + { "name": "CuiSharp.ToolbarOpts", "displayName": "ToolbarOpts", "kind": "struct", "summary": "cui_toolbar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoBorder", "kind": "field", "id": "field|NoBorder|0|0|bool|||hb6606a0691e1878d2d505efaca98f05506ff46d2cad01766c9efde8a172544e3", "signature": "public bool NoBorder", "summary": "_Bool no_border" }] }, + { "name": "CuiSharp.TourAction", "displayName": "TourAction", "kind": "enum", "summary": "CUI_TOUR_NONE", "members": [{ "name": "Back", "kind": "enum value", "id": "enum value|Back|1|0|||2|hff1014b8954dcd676df9df977aacada314fffd94909d9b148f45ddd7db2b99c0", "signature": "Back = 2", "value": "2" }, { "name": "Done", "kind": "enum value", "id": "enum value|Done|1|0|||3|ha4bc5831131391f7fb2327344257f10b5c1247e168ed91a14b6f8c1b1bd95449", "signature": "Done = 3", "value": "3" }, { "name": "Next", "kind": "enum value", "id": "enum value|Next|1|0|||1|h2aadc2235858bed934d4752e58564d8f65bae992bc09edc0e64a0d8adc2998b6", "signature": "Next = 1", "value": "1" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Skipped", "kind": "enum value", "id": "enum value|Skipped|1|0|||4|hc86a6a4cf9d7fbe0d4b4f660230c7effb152c9749550c01b40366787bc1640b4", "signature": "Skipped = 4", "value": "4" }] }, + { "name": "CuiSharp.TourOpts", "displayName": "TourOpts", "kind": "struct", "summary": "cui_tour_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "BlockTarget", "kind": "field", "id": "field|BlockTarget|0|0|bool|||hc54dd82166075855eb3447029292a804808a9ffb616f8982505652faa49b6a2f", "signature": "public bool BlockTarget", "summary": "the spotlighted control ignores the pointer too" }, { "name": "Padding", "kind": "field", "id": "field|Padding|0|0|float|||h5921be8adbefbfcb4404da7db85d1cb3731c758d863577be4fbce92451350649", "signature": "public float Padding", "summary": "room around the target inside the spotlight, default 6" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "the card, default 300" }, { "name": "BackLabel", "kind": "field", "id": "field|BackLabel|0|0|string?|||h890944a46dcecfa4148ac8a5893912710e3adb907b4dfa51320e35d338bb98b2", "signature": "public string? BackLabel", "summary": "default \u0022Next\u0022, \u0022Back\u0022, \u0022Done\u0022" }, { "name": "CountFormat", "kind": "field", "id": "field|CountFormat|0|0|string?|||hcd488b92046f94c8ab3c58db743f23405d8eb2ee0793df1695a74b1afa9ce82e", "signature": "public string? CountFormat", "summary": "the step count, default \u0022%d of %d\u0022 (step, then total)" }, { "name": "DoneLabel", "kind": "field", "id": "field|DoneLabel|0|0|string?|||h49f02e29ac797c25df73a6aa480f8e6ea3c16789f168ffdd7cc282980771c4e4", "signature": "public string? DoneLabel", "summary": "default \u0022Next\u0022, \u0022Back\u0022, \u0022Done\u0022" }, { "name": "NextLabel", "kind": "field", "id": "field|NextLabel|0|0|string?|||hf68c00f75ffaab77da7a20859ec292e622ffeec83256e9b9a2960ae0b56a234b", "signature": "public string? NextLabel", "summary": "default \u0022Next\u0022, \u0022Back\u0022, \u0022Done\u0022" }] }, + { "name": "CuiSharp.TourStep", "displayName": "TourStep", "kind": "struct", "summary": "cui_tour_step. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||uint Target;string? Title = null;string? Body = null;Placement Placement = Placement.BottomStart||ha0e63858101ca2bc0a30175686c4d52a76f578cfa000b771f07abcd48132ded5", "signature": "TourStep(uint Target, string? Title = null, string? Body = null, Placement Placement = Placement.BottomStart)", "parameters": [{ "name": "Target", "type": "uint" }, { "name": "Title", "type": "string?", "default": "null" }, { "name": "Body", "type": "string?", "default": "null" }, { "name": "Placement", "type": "Placement", "default": "Placement.BottomStart" }] }, { "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "the card\u0027s side of the target, default below it" }, { "name": "Body", "kind": "field", "id": "field|Body|0|0|string?|||h359dc924fe6434cd62ccb077f8293542411e1affb331176c8bd8c2155d017c49", "signature": "public string? Body", "summary": "const char * body" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }, { "name": "Target", "kind": "field", "id": "field|Target|0|0|uint|||he9ee9dd345fe17fa7d374fd3bbf2d77faa51c7aa3b0c74aba7353f9abfa39524", "signature": "public uint Target", "summary": "the control to point at (cui_last_id after it); 0: a card in the middle" }] }, + { "name": "CuiSharp.TraceMarker", "displayName": "TraceMarker", "kind": "struct", "summary": "cui_trace_marker. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;double Time = default;Tone Tone = Tone.Neutral||h987415e60e77e6d92905126b647219b2bd52fbbb66f06f7a65b50eb84c158d95", "signature": "TraceMarker(string? Name, double Time = default, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Time", "type": "double", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|double|||hf6eb8bfefd7957f87b5ed2738bc9a721b9ff45c732f53108d799ad2931a6b170", "signature": "public double Time", "summary": "double time" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.TraceOpts", "displayName": "TraceOpts", "kind": "struct", "summary": "cui_trace_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Markers", "kind": "field", "id": "field|Markers|0|0|TraceMarker[]?|||ha15b2672eaf5697815e581f2168823bf6d0bd845bc7f4ac7692c751438405e08", "signature": "public TraceMarker[]? Markers", "summary": "const cui_trace_marker * markers" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 20" }, { "name": "MarkerCount", "kind": "field", "id": "field|MarkerCount|0|0|int|||hd02925399c1946c54760fa87c0cf0fc40e035f18f37eefaa1c62d9287953f517", "signature": "public int MarkerCount", "summary": "int marker_count" }] }, + { "name": "CuiSharp.TraceResult", "displayName": "TraceResult", "kind": "struct", "summary": "cui_trace_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool SelectionChanged;bool ViewChanged = default;int Hovered = default||h877b66a976f96361fffb3dc5ce0f9118fa4f9111e5da9165ba1a175ee657d38e", "signature": "TraceResult(bool SelectionChanged, bool ViewChanged = default, int Hovered = default)", "parameters": [{ "name": "SelectionChanged", "type": "bool" }, { "name": "ViewChanged", "type": "bool", "default": "default" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||h05b0cea014ff6284a7cc2c58dd6fb1035a7e0e81c25aa7972d22ca756915ea7a", "signature": "public bool SelectionChanged", "summary": "_Bool selection_changed" }, { "name": "ViewChanged", "kind": "field", "id": "field|ViewChanged|0|0|bool|||h644da108e153019ae339e325a567b1b89a1cc6e0c8470c8761ac096a08aee5ee", "signature": "public bool ViewChanged", "summary": "_Bool view_changed" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int hovered" }] }, + { "name": "CuiSharp.TraceSpan", "displayName": "TraceSpan", "kind": "struct", "summary": "cui_trace_span. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;double Start = default;double End = default;int Track = default;int Depth = default;uint ColorKey = default||h318ab1b416f7f76477208583d7ee0a1bafafd70676f571c1fa4b60a65337ae1d", "signature": "TraceSpan(string? Name, double Start = default, double End = default, int Track = default, int Depth = default, uint ColorKey = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Start", "type": "double", "default": "default" }, { "name": "End", "type": "double", "default": "default" }, { "name": "Track", "type": "int", "default": "default" }, { "name": "Depth", "type": "int", "default": "default" }, { "name": "ColorKey", "type": "uint", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "double end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "double start" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int depth" }, { "name": "Track", "kind": "field", "id": "field|Track|0|0|int|||h9c37b28844517649f18e47061d3bb9ab42f294995e73a6edbf8deb27d891797c", "signature": "public int Track", "summary": "int track" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }, { "name": "ColorKey", "kind": "field", "id": "field|ColorKey|0|0|uint|||hbbc8b9d5c464ef1cd597c6f62696a77755f8847c84433421ceea1723416ab5bd", "signature": "public uint ColorKey", "summary": "uint32_t color_key" }] }, + { "name": "CuiSharp.TraceTrack", "displayName": "TraceTrack", "kind": "struct", "summary": "cui_trace_track. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;bool Collapsed = default||hb6c92adbe1e1698c807549b8dca0e0385a2377fbad5bc4f56207ada0eb76bc07", "signature": "TraceTrack(string? Name, bool Collapsed = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Collapsed", "type": "bool", "default": "default" }] }, { "name": "Collapsed", "kind": "field", "id": "field|Collapsed|0|0|bool|||hff01a5ca4f7c74b1b48bd9b63d63e7035971a03ec821d972bb3d0af55a386c69", "signature": "public bool Collapsed", "summary": "_Bool collapsed" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.TraceViewState", "displayName": "TraceViewState", "kind": "struct", "summary": "cui_trace_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||double Start;double End = default;float Scroll = default;double MarkStart = default;double MarkEnd = default||hb47178c03c4179a3cad63bc37fa630b2b822ba96a6f824134bec5fc92d6891d2", "signature": "TraceViewState(double Start, double End = default, float Scroll = default, double MarkStart = default, double MarkEnd = default)", "parameters": [{ "name": "Start", "type": "double" }, { "name": "End", "type": "double", "default": "default" }, { "name": "Scroll", "type": "float", "default": "default" }, { "name": "MarkStart", "type": "double", "default": "default" }, { "name": "MarkEnd", "type": "double", "default": "default" }] }, { "name": "End", "kind": "field", "id": "field|End|0|0|double|||h6036cc8c80c4f7fe4db06e1f6a110eab3e3a9c853bbcfa03ca04aaaf19719aa6", "signature": "public double End", "summary": "visible time range; end \u003C= start fits everything" }, { "name": "MarkEnd", "kind": "field", "id": "field|MarkEnd|0|0|double|||h699816d1c0538e008f463ac8f850d0a13da89e363166dd067ec66639d88d61fa", "signature": "public double MarkEnd", "summary": "measured range; mark_end \u003C= mark_start: none" }, { "name": "MarkStart", "kind": "field", "id": "field|MarkStart|0|0|double|||h35e62cd0862ac884bb6c77fa8438ba07d7a031aa2c53827132af5f19a5e16bf4", "signature": "public double MarkStart", "summary": "measured range; mark_end \u003C= mark_start: none" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|double|||h16038a000538b7b1f579c15d36736f51594d056fbf691fb893afd369cec10be0", "signature": "public double Start", "summary": "visible time range; end \u003C= start fits everything" }, { "name": "Scroll", "kind": "field", "id": "field|Scroll|0|0|float|||h0dfb15b9f1ad3ea27fb4bb36094488302791ae6da1fc5727249bcba34280b5fb", "signature": "public float Scroll", "summary": "points scrolled down" }] }, + { "name": "CuiSharp.TreeNode", "displayName": "TreeNode", "kind": "struct", "summary": "One node of a ui.TreeTable model: a flat array linked by index, so a hundred thousand nodes cost what one screenful does.", "members": [{ "name": "IsLoading", "kind": "property", "id": "property|IsLoading|0|0|bool||get;|h1000d5a5af6a7de8621a806a9d6788c2b158ca1464f05ee1ff0985fb5fb2ccb5", "signature": "bool IsLoading { get; }", "summary": "The table asked for this node\u0027s children and they have not arrived yet." }, { "name": "IsOpen", "kind": "property", "id": "property|IsOpen|0|0|bool||get;|h96b23fc8d76da78cf5192392dbc1c068d4f138bb5af686d1949fa0f77fad9d9f", "signature": "bool IsOpen { get; }", "summary": "The node is expanded." }, { "name": "IsSelected", "kind": "property", "id": "property|IsSelected|0|0|bool||get;|h4fe4acc829c155fc706f9f9d41e2d850c4ab3d570b838abaffd1b48ba94b077d", "signature": "bool IsSelected { get; }", "summary": "The node is selected." }, { "name": "Flags", "kind": "field", "id": "field|Flags|0|0|TreeNodeFlags|||h30d77de956fd75ffb6db0fe1d49652e7c3770f8f602195447d5ef2c60d2bb911", "signature": "public TreeNodeFlags Flags", "summary": "Open, selected and loading state, plus whether children are pending." }, { "name": "FirstChild", "kind": "field", "id": "field|FirstChild|0|0|int|||hf352db55e0335cdbaba7921f10fcce1a433441b9e9200bbbffc55ea64941e15f", "signature": "public int FirstChild", "summary": "The first child\u0027s index, or -1 when it has none or none are loaded yet." }, { "name": "NextSibling", "kind": "field", "id": "field|NextSibling|0|0|int|||h91edbf9b95ba6415a86ef01020d77d524dc26276aeb561f29306da80f336c887", "signature": "public int NextSibling", "summary": "The next sibling\u0027s index, or -1 for the last one." }, { "name": "Parent", "kind": "field", "id": "field|Parent|0|0|int|||h337a9d403da4862c29838d25d5876fa8d3e3fbbc6d85493b646b4fd3986ce253", "signature": "public int Parent", "summary": "The parent\u0027s index, or -1 for a top level node." }, { "name": "Detached", "kind": "property", "id": "property|Detached|1|0|TreeNode||get;|hdc007f657e128f0442981656c6199a5b0550304e29c95d5b342ce17ac41dfd30", "signature": "static TreeNode Detached { get; }", "summary": "A detached node: no parent, no children, no state." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.TreeNodeFlags", "displayName": "TreeNodeFlags", "kind": "enum", "summary": "cui_tree_node flags: what the tree table toggles as you use it.", "members": [{ "name": "HasChildren", "kind": "enum value", "id": "enum value|HasChildren|1|0|||1|h8b94abcf62b3c228023ca60518f889bd7a7ca85c3cc267c3399fe6fe5c7e5294", "signature": "HasChildren = 1", "summary": "Show a chevron before the children are loaded.", "value": "1" }, { "name": "Loading", "kind": "enum value", "id": "enum value|Loading|1|0|||8|hd47dfc49768b2c9a74cac1c7d7522b8ff8ba795b966c510f781b81d92b29d8dc", "signature": "Loading = 8", "summary": "Children are arriving: an open node shows a spinner row until this is cleared.", "value": "8" }, { "name": "Open", "kind": "enum value", "id": "enum value|Open|1|0|||2|h72c06004b608acab9f58a1959dc7e8ba4c9b77f2ef339d98a9960394ce79b50f", "signature": "Open = 2", "summary": "Expanded. The table toggles this when the chevron is clicked.", "value": "2" }, { "name": "Selected", "kind": "enum value", "id": "enum value|Selected|1|0|||4|hbbb533099a9bb876754c4154b3f8f5c50a5eb9b2c609408c798179f0188cb6d5", "signature": "Selected = 4", "summary": "Selected. The table sets and clears this.", "value": "4" }] }, + { "name": "CuiSharp.TreeOpts", "displayName": "TreeOpts", "kind": "struct", "summary": "cui_tree_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Leaf", "kind": "field", "id": "field|Leaf|0|0|bool|||h9e0b7d1fb275ead7e56429825f41e5b25adba52a81b1e2f5b6f2186737ba0aec", "signature": "public bool Leaf", "summary": "_Bool leaf" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "_Bool selected" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.TreeTableEvents", "displayName": "TreeTableEvents", "kind": "struct", "summary": "What the tree table reported after its rows were drawn.", "members": [{ "name": "Load", "kind": "property", "id": "property|Load|0|0|ReadOnlySpan\u003Cint\u003E||get;|hf574fe7d86fb9203bea2da3fe001c215448afd499772bfaf3fe2954e21a86348", "signature": "ReadOnlySpan\u003Cint\u003E Load { get; }", "summary": "Nodes whose children the table wants: each now has Loading. Link them in, then clear Loading." }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|bool|||hfc2fabdd111f94408cc1374997bcce1f837e9af90c5d57ed179cdf79b2024282", "signature": "public readonly bool SelectionChanged", "summary": "True when the selection changed." }, { "name": "SortChanged", "kind": "field", "id": "field|SortChanged|0|0|bool|||h4ed34b6a17b64739dccb45acd519e7ae49ee1e04f7ed3c7e2084d1d8236e7db5", "signature": "public readonly bool SortChanged", "summary": "True when a sortable header was clicked: sort the model and pass the new root back in." }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hf82a7fddd9f722e744daa5da83239837a9bcd1d31fdab1d134ee7a8f3c6567ab", "signature": "public readonly int Activated", "summary": "The node chosen with Enter or a double click, or -1." }, { "name": "Collapsed", "kind": "field", "id": "field|Collapsed|0|0|int|||hdca337d55089a7479ff0d43b36ff981f9e1b6a860520a0079aa259f098e4dfa2", "signature": "public readonly int Collapsed", "summary": "The node the user closed this frame, or -1." }, { "name": "Expanded", "kind": "field", "id": "field|Expanded|0|0|int|||hce43280ac2d5d6338c86ce97e134376691cf6d6df4ffff508be1c93c3ff5ca36", "signature": "public readonly int Expanded", "summary": "The node the user opened this frame, or -1." }] }, + { "name": "CuiSharp.TreeTableOpts", "displayName": "TreeTableOpts", "kind": "struct", "summary": "cui_tree_table_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Guides", "kind": "field", "id": "field|Guides|0|0|bool|||h7e9ab088cd84e6855062433d2087613e5fb8460e5ed62e343e4c52830488ac6b", "signature": "public bool Guides", "summary": "quiet vertical lines for each indentation level" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 32" }, { "name": "Root", "kind": "field", "id": "field|Root|0|0|int|||h6951cf8e44d999438aa751b095b478c002e3b8defd9d6fa77bc90f1c5a707dfb", "signature": "public int Root", "summary": "the first top level node, default 0" }] }, + { "name": "CuiSharp.TreeTableRow", "displayName": "TreeTableRow", "kind": "delegate", "summary": "Draws one tree row: the caller writes the cells, the widget the indentation and chevron.", "members": [{ "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|Ui ui;int node;int depth;AsyncCallback callback;object object||hb8e87a7a2022e77c4a6ee5001cb539806ecfb6ef5552cdea8804276f71f2232c", "signature": "IAsyncResult BeginInvoke(Ui ui, int node, int depth, AsyncCallback callback, object @object)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||he6641ea5e617ffa8974579447d4c8370257dc98cf899f5b6a348234630ca3eeb", "signature": "TreeTableRow(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|void|IAsyncResult result||h477a5257f2f4c2172e54e854d9bc2f5c7bb790dade430a493c5a1c7d25248214", "signature": "void EndInvoke(IAsyncResult result)", "parameters": [{ "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|void|Ui ui;int node;int depth||h9a371e5ae54502a8006d96dcddef3da1e0c9c674283682bf899a96595e9eecde", "signature": "void Invoke(Ui ui, int node, int depth)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }] }] }, + { "name": "CuiSharp.TreemapOpts", "displayName": "TreemapOpts", "kind": "struct", "summary": "cui_treemap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "summary": "A stack-only drawing context. Do not retain it outside the current frame.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "The accent in use, and the way to change it. See Theme." }, { "name": "ApiExplorer", "kind": "extension", "id": "extension|ApiExplorer|0|0|ApiExplorerResult|UiText id;ReadOnlySpan\u003CApiEndpoint\u003E endpoints;ref int selected;ApiExplorerOpts o = default||h8e1274e09ed373172bec2fe1ee1969a7f9b2e594fbeed0ea8abed98302f3ed84", "signature": "ApiExplorerResult ApiExplorer(UiText id, ReadOnlySpan\u003CApiEndpoint\u003E endpoints, ref int selected, ApiExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "endpoints", "type": "ReadOnlySpan\u003CApiEndpoint\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ApiExplorerOpts", "default": "default" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "extension", "id": "extension|Blame|0|0|BlameResult|UiText id;ReadOnlySpan\u003Cstring\u003E lines;ReadOnlySpan\u003Cint\u003E lineCommit;ReadOnlySpan\u003CBlameCommit\u003E commits;BlameOpts o = default||hdf716d42271c45696039bb07abacc01b9b0b2a935ee05dc1842213c276edf5eb", "signature": "BlameResult Blame(UiText id, ReadOnlySpan\u003Cstring\u003E lines, ReadOnlySpan\u003Cint\u003E lineCommit, ReadOnlySpan\u003CBlameCommit\u003E commits, BlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "lines", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "lineCommit", "type": "ReadOnlySpan\u003Cint\u003E" }, { "name": "commits", "type": "ReadOnlySpan\u003CBlameCommit\u003E" }, { "name": "o", "type": "BlameOpts", "default": "default" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|0|0|CanvasResult|UiText id;Size width;Size height;PaintFn paint||hf2c318f0b609f7226e807d7cf7e4edada63dc45f85bb57025ad7567a006824a0", "signature": "CanvasResult Canvas(UiText id, Size width, Size height, PaintFn paint)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "Size" }, { "name": "paint", "type": "PaintFn" }], "summary": "Reserves a box of the given size and lets you paint it." }, { "name": "Clip", "kind": "method", "id": "method|Clip|0|0|ClipScope|RectF r||h81bb7c5dd19720d5aa2ee17f5cb20e0238b08db45d6d0cb5700d16ce531ec5f2", "signature": "ClipScope Clip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle, closing the clip on dispose." }, { "name": "CodeEditor", "kind": "extension", "id": "extension|CodeEditor|0|0|CodeEditorResult|UiText id;ref string buf;int cap;CodeEditorOpts o = default||h3f99c4340c4ea2a0ae4ecc840716120045f85d30ea53f0aebe7ab1be2c09aa9a", "signature": "CodeEditorResult CodeEditor(UiText id, ref string buf, int cap, CodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "CodeEditorOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|0|0|Color|Color color||h980f9c13c6409b9b666e72b6641e22a816c4a7d68a80eb109a44bc201bceceb0", "signature": "Color ColorOf(Color color)", "parameters": [{ "name": "color", "type": "Color" }], "summary": "Resolves a semantic token to its channels; other colors come back unchanged." }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|0|0|Color|Token token||h0916cfc8affaa4db1788c2edd8ac85f518f146b3b691ef4d7181b7ad8ccac2fe", "signature": "Color TokenColor(Token token)", "parameters": [{ "name": "token", "type": "Token" }], "summary": "The channels a theme token resolves to this frame." }, { "name": "Comment", "kind": "extension", "id": "extension|Comment|0|0|CommentEvents|UiText id;UiText author;UiText text;ref int likes;ref bool liked;CommentOpts o = default||hd58eadbf1b4e2807aa889ed3f4c70606227f61711c62110ec27aebc46c70512c", "signature": "CommentEvents Comment(UiText id, UiText author, UiText text, ref int likes, ref bool liked, CommentOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "author", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "likes", "type": "ref int" }, { "name": "liked", "type": "ref bool" }, { "name": "o", "type": "CommentOpts", "default": "default" }], "summary": "cui_comment_ex" }, { "name": "CommitGraph", "kind": "extension", "id": "extension|CommitGraph|0|0|CommitGraphResult|UiText id;ReadOnlySpan\u003CCommit\u003E commits;ref int selected;CommitGraphOpts o = default||h8d094156c694b6c409f8abe92f01e016c9b138a44ea76b0770f70f4fd34781c7", "signature": "CommitGraphResult CommitGraph(UiText id, ReadOnlySpan\u003CCommit\u003E commits, ref int selected, CommitGraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "commits", "type": "ReadOnlySpan\u003CCommit\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CommitGraphOpts", "default": "default" }], "summary": "cui_commit_graph_ex" }, { "name": "ChatComposer", "kind": "extension", "id": "extension|ChatComposer|0|0|ComposerEvents|UiText id;ref string buf;int cap;ref int removed;ref int model;ComposerOpts o = default||ha61bd40b4efb8355a255edc7d36d348178993536309ab1ee4c6c9a381fd22431", "signature": "ComposerEvents ChatComposer(UiText id, ref string buf, int cap, ref int removed, ref int model, ComposerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "removed", "type": "ref int" }, { "name": "model", "type": "ref int" }, { "name": "o", "type": "ComposerOpts", "default": "default" }], "summary": "cui_chat_composer_ex" }, { "name": "Coverage", "kind": "extension", "id": "extension|Coverage|0|0|CoverageResult|UiText id;ReadOnlySpan\u003CCoverageFile\u003E files;CoverageOpts o = default||h71a24310abd0377c27ded9130e91e48dc3e91a798d1a79f3563a30b446fe6a95", "signature": "CoverageResult Coverage(UiText id, ReadOnlySpan\u003CCoverageFile\u003E files, CoverageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "files", "type": "ReadOnlySpan\u003CCoverageFile\u003E" }, { "name": "o", "type": "CoverageOpts", "default": "default" }], "summary": "cui_coverage_ex" }, { "name": "Cursor", "kind": "property", "id": "property|Cursor|0|0|Cursor||get;|hc22a16db67c85c2843d2f88cc8ab464d28c155381bf1d1998e9fc4743eb42043", "signature": "Cursor Cursor { get; }", "summary": "The cursor the UI asked for last frame, for a backend that draws its own." }, { "name": "CurveEditor", "kind": "extension", "id": "extension|CurveEditor|0|0|CurveResult|UiText id;Span\u003CCurveKey\u003E keys;ref int count;int capacity;ref int selected;CurveOpts o = default||h0aa646bcaa2a7a88d9f7fb5646774b70a481e877c7087d2169536d01d2eb89dc", "signature": "CurveResult CurveEditor(UiText id, Span\u003CCurveKey\u003E keys, ref int count, int capacity, ref int selected, CurveOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "keys", "type": "Span\u003CCurveKey\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CurveOpts", "default": "default" }], "summary": "cui_curve_editor_ex" }, { "name": "DiffView", "kind": "extension", "id": "extension|DiffView|0|0|DiffResult|UiText id;UiText oldText;UiText newText;ref int current;DiffOpts o = default||h1928b65f5fa6dc715c0e20351e64a90a55ca9b8fd792c4a9a6e3df7545ba072a", "signature": "DiffResult DiffView(UiText id, UiText oldText, UiText newText, ref int current, DiffOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "oldText", "type": "UiText" }, { "name": "newText", "type": "UiText" }, { "name": "current", "type": "ref int" }, { "name": "o", "type": "DiffOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled||h3a515a3de1d8d0205d97aef4118bf5ab6c5af12e051d859d3b8cabae81fb9db1", "signature": "DisabledScope Disabled(bool disabled)", "parameters": [{ "name": "disabled", "type": "bool" }], "summary": "Opens a disabled gate that using closes." }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled;DrawFn body||hcc29e71513d0c4970a98faee97bed37a754ecae1da31ed37b95a7e3588c336d9", "signature": "DisabledScope Disabled(bool disabled, DrawFn body)", "parameters": [{ "name": "disabled", "type": "bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws body with every control inside it disabled: it still lays out and paints, but clicks, keys and hover do nothing." }, { "name": "DocTabs", "kind": "extension", "id": "extension|DocTabs|0|0|DocTabsResult|UiText id;ReadOnlySpan\u003CDocTab\u003E tabs;ref int selected;DocTabsOpts o = default||hdb202a4c9e42fa362479fb5e674bee39fa9949e204316f94f4197f0a54fe4c83", "signature": "DocTabsResult DocTabs(UiText id, ReadOnlySpan\u003CDocTab\u003E tabs, ref int selected, DocTabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tabs", "type": "ReadOnlySpan\u003CDocTab\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "DocTabsOpts", "default": "default" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "extension", "id": "extension|FeatureFlags|0|0|FeatureFlagsResult|UiText id;Span\u003CFeatureFlag\u003E flags;ReadOnlySpan\u003Cstring\u003E envs;FeatureFlagsOpts o = default||h1c2c043a1a911bf524b328f35cfa7f2ee4862adfb16f1b0cbd98cf1077245b34", "signature": "FeatureFlagsResult FeatureFlags(UiText id, Span\u003CFeatureFlag\u003E flags, ReadOnlySpan\u003Cstring\u003E envs, FeatureFlagsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "flags", "type": "Span\u003CFeatureFlag\u003E" }, { "name": "envs", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "FeatureFlagsOpts", "default": "default" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "extension", "id": "extension|FileBrowser|0|0|FileBrowserResult|UiText id;ref string path;int pathCap = 1024;FileBrowserOpts o = default||hdcc3319728f0b23560a33e9d8c875e4b5389d816f8e66b4e3630e917284e3bf8", "signature": "FileBrowserResult FileBrowser(UiText id, ref string path, int pathCap = 1024, FileBrowserOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "path", "type": "ref string" }, { "name": "pathCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FileBrowserOpts", "default": "default" }], "summary": "path: the folder shown, yours; the browser writes it as you move around." }, { "name": "FlameGraph", "kind": "extension", "id": "extension|FlameGraph|0|0|FlameResult|UiText id;ReadOnlySpan\u003CFlameSpan\u003E spans;ref FlameView view;ref int selected;FlameOpts o = default||h825a9e17f3b7381f2b9b6b4244a8edbabda629701c297e3c877a4e13fc43e98c", "signature": "FlameResult FlameGraph(UiText id, ReadOnlySpan\u003CFlameSpan\u003E spans, ref FlameView view, ref int selected, FlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "spans", "type": "ReadOnlySpan\u003CFlameSpan\u003E" }, { "name": "view", "type": "ref FlameView" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "FlameOpts", "default": "default" }], "summary": "selected: index into spans, -1 for none (may be NULL)." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|ReadOnlySpan\u003Cbyte\u003E data;bool copy = true||h73d65ad67f9acdd48823d96c747c086a24a1625658056e8af856a3bd4d554241", "signature": "Font LoadFont(ReadOnlySpan\u003Cbyte\u003E data, bool copy = true)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool", "default": "true" }], "summary": "Loads a font from memory and returns a handle for SetFont." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|UiText path||h5faed851de772ad862622c3312f2aeae3c81ef7915ae305e81bb638cf9b3b107", "signature": "Font LoadFont(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "Loads a font file (TTF/OTF) and returns a handle for SetFont." }, { "name": "UseSystemFontFallback", "kind": "extension", "id": "extension|UseSystemFontFallback|0|0|Font|string sample||h718698d4ba3dba692a0bf04e8e6729a2aae4ac8563689108bb00fdf124984df6", "signature": "Font UseSystemFontFallback(string sample)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "sample", "type": "string" }], "summary": "Finds a face on this machine that can draw sample and registers it as a fallback for the app\u0027s roles, so a UI in a script the bundled faces do not cover renders instead of going blank." }, { "name": "GradientEditor", "kind": "extension", "id": "extension|GradientEditor|0|0|GradientResult|UiText id;Span\u003CGradientStop\u003E stops;ref int count;int capacity;ref int selected;GradientOpts o = default||h22ba29de3dd5440cd7373415c1f48323da92a14dd19862d6a962bbf6a3147afd", "signature": "GradientResult GradientEditor(UiText id, Span\u003CGradientStop\u003E stops, ref int count, int capacity, ref int selected, GradientOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stops", "type": "Span\u003CGradientStop\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GradientOpts", "default": "default" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "extension", "id": "extension|GraphView|0|0|GraphResult|UiText id;ReadOnlySpan\u003CGraphNode\u003E nodes;ReadOnlySpan\u003CGraphEdge\u003E edges;ref int selected;GraphOpts o = default||hbce489b5fa6d64979be674221b7ae61e945b26d0224773080270c2c7dfd8b3bc", "signature": "GraphResult GraphView(UiText id, ReadOnlySpan\u003CGraphNode\u003E nodes, ReadOnlySpan\u003CGraphEdge\u003E edges, ref int selected, GraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003CGraphNode\u003E" }, { "name": "edges", "type": "ReadOnlySpan\u003CGraphEdge\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GraphOpts", "default": "default" }], "summary": "cui_graph_view_ex" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|GridScope|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;GridOpts o = default||hae20817285aa5f5ee430918dd512e707df8a0306e32777f0e13839f607262829", "signature": "GridScope DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Opens a virtualized grid; draw rows in [state.First, state.Last)." }, { "name": "HexView", "kind": "extension", "id": "extension|HexView|0|0|HexResult|UiText id;Span\u003Cbyte\u003E bytes;ref HexSelection selection;HexViewOpts o = default||hb82ecf6f9d8a58d5c2bce7702bd188c8bb502de7a2d696f1a0af827be5fa22d9", "signature": "HexResult HexView(UiText id, Span\u003Cbyte\u003E bytes, ref HexSelection selection, HexViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bytes", "type": "Span\u003Cbyte\u003E" }, { "name": "selection", "type": "ref HexSelection" }, { "name": "o", "type": "HexViewOpts", "default": "default" }], "summary": "Draws bytes and lets the user overwrite them in place." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|UiText id||hf913a0d346bf51d9f7a0e55299041c30e8aa0eeb2f93eadbe20cad0c4ae3879b", "signature": "IdScope Id(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Pushes a string id for the widgets drawn inside the scope." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|int key||h3b4b6991acded6793bc66a091956c19c02661da15fabdf72db107273b8ed3d1b", "signature": "IdScope Id(int key)", "parameters": [{ "name": "key", "type": "int" }], "summary": "Pushes an integer id, typically a row or item index." }, { "name": "Input", "kind": "method", "id": "method|Input|0|0|InputResult|UiText id;ref string value;InputOpts o = default||he495e19d9d5cb23d03e35f0f55ea0ebafd853d7386ae9e4989697b39cec38980", "signature": "InputResult Input(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A single-line text field. Assign the string; CUI edits it in place and the new value comes back through value on the frames it changed." }, { "name": "Search", "kind": "method", "id": "method|Search|0|0|InputResult|UiText id;ref string value;InputOpts o = default||h11bb746b263541b15457e9933eac6e37a6cdfac44547449d0d7375a7431b87da", "signature": "InputResult Search(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A search field. See Input." }, { "name": "TextArea", "kind": "method", "id": "method|TextArea|0|0|InputResult|UiText id;ref string value;InputOpts o = default||ha0535c062baff5583884fcf6394397476e4b2a40ee79b643e731e601e2daad5c", "signature": "InputResult TextArea(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A multi-line text field. See Input." }, { "name": "Keyed", "kind": "method", "id": "method|Keyed|0|1|KeyedScope\u003CT\u003E|T[] items;KeyFn\u003CT\u003E key||h3645b3dae05812e37fd01340a5693892b688bf1436826030f83bf34e5dca43f8", "signature": "KeyedScope\u003CT\u003E Keyed\u003CT\u003E(T[] items, KeyFn\u003CT\u003E key)", "parameters": [{ "name": "items", "type": "T[]" }, { "name": "key", "type": "KeyFn\u003CT\u003E" }], "summary": "Enumerates items, each inside its own id scope derived from key." }, { "name": "Keymap", "kind": "extension", "id": "extension|Keymap|0|0|KeymapResult|UiText id;ReadOnlySpan\u003CKeymapBinding\u003E bindings;ref Mods mods;KeymapOpts o = default||h986c8ea2572b42d56814a32427ed89b00db2a4a2ff3ba6c7a4711a66da3c0bae", "signature": "KeymapResult Keymap(UiText id, ReadOnlySpan\u003CKeymapBinding\u003E bindings, ref Mods mods, KeymapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bindings", "type": "ReadOnlySpan\u003CKeymapBinding\u003E" }, { "name": "mods", "type": "ref Mods" }, { "name": "o", "type": "KeymapOpts", "default": "default" }], "summary": "cui_keymap_ex" }, { "name": "Box", "kind": "extension", "id": "extension|Box|0|0|LayoutScope|Box o = default||haec5c052acbeeaca94cb5a10a37f80e98abc85d069b6fa9aec58cf20715c0a06", "signature": "LayoutScope Box(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_box_begin" }, { "name": "ButtonGroup", "kind": "extension", "id": "extension|ButtonGroup|0|0|LayoutScope|||h8a2a0872d3ba1595bf0e1d9ad5860dfa36735b0ac74178a57cc8157b6493d6d4", "signature": "LayoutScope ButtonGroup()", "extensionOn": "CuiSharp.Ui", "summary": "Connected buttons. Put buttons between begin and end." }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o = default||hb8d0387f360f71c39f098c9de712bb4aa0eb22a25fffee4615049459c0cc224e", "signature": "LayoutScope Card(Card o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card", "default": "default" }], "summary": "cui_card_begin" }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o;out bool clicked||he64474f809036667bb19ed0028db705f58a61d124f67b6520b26f73775ae32e5", "signature": "LayoutScope Card(Card o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "CardStackItem", "kind": "extension", "id": "extension|CardStackItem|0|0|LayoutScope|int depth||h6f29f3239b665449b7d0d9b4e5177cb4099b541e3423fcb9d1a9b14fb1f686d0", "signature": "LayoutScope CardStackItem(int depth)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CarouselSlide", "kind": "extension", "id": "extension|CarouselSlide|0|0|LayoutScope|||h9755b016a070064271f7e45738238254443cdfcb4d22aca524774095031595ec", "signature": "LayoutScope CarouselSlide()", "extensionOn": "CuiSharp.Ui", "summary": "cui_carousel_slide_begin" }, { "name": "Column", "kind": "extension", "id": "extension|Column|0|0|LayoutScope|Box o = default||h78447c50c087189e1c45a5984115c6b2709affec511cf6ab6521254dd0406549", "signature": "LayoutScope Column(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_column_begin" }, { "name": "DialogFooter", "kind": "extension", "id": "extension|DialogFooter|0|0|LayoutScope|||hea62c5e329105c7d787894e1fbdbbd9b079d2910e82c4be61263045ff18c81f3", "signature": "LayoutScope DialogFooter()", "extensionOn": "CuiSharp.Ui", "summary": "A right-aligned row for dialog actions." }, { "name": "Dock", "kind": "extension", "id": "extension|Dock|0|0|LayoutScope|UiText id;DockOpts o = default||ha8052963c653afff4ec2b3304515265b67454d94f44ee3c01d076c1e27148816", "signature": "LayoutScope Dock(UiText id, DockOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockOpts", "default": "default" }], "summary": "cui_dock_begin" }, { "name": "Dockspace", "kind": "extension", "id": "extension|Dockspace|0|0|LayoutScope|UiText id;DockspaceOpts o = default||hd8cabbad4df58a75fbb1e93299868d95ae7671ca676e01478b8c6067ace5a82d", "signature": "LayoutScope Dockspace(UiText id, DockspaceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockspaceOpts", "default": "default" }], "summary": "cui_dockspace_begin_ex" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId||h04d36b815b7f14d7d624e0b56c06560e052f6458aecd5cd68f485e0c8dc64b11", "signature": "LayoutScope KanbanCard(int cardId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId;out bool clicked||h0ef9ec0801ab926804d1119b9bc9dc886afc490850829ed33cad336f7ee94f50", "signature": "LayoutScope KanbanCard(int cardId, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o = default||hd3dcefdc81fb36dfee31edd1754914e0453a4c7e0b1bb4c4b2b20b542eb8adaa", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts", "default": "default" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o;out bool clicked||h7c9ca66f79f064c49eed8f4544d8fea1ed3304dc45d84e5ec067d319ed4ea113", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "MenuBar", "kind": "extension", "id": "extension|MenuBar|0|0|LayoutScope|UiText id;MenuBarOpts o = default||h29b57cc387904e3c1d3083b170ceaa309e6bc4a2535b4c27f22ecd482570e152", "signature": "LayoutScope MenuBar(UiText id, MenuBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "MenuBarOpts", "default": "default" }], "summary": "cui_menu_bar_begin" }, { "name": "NodeContent", "kind": "extension", "id": "extension|NodeContent|0|0|LayoutScope|||h6a09d812c8b6d9c4a4f2fc6aedc000b977da707334c08c94ee4e6dd62573dd59", "signature": "LayoutScope NodeContent()", "extensionOn": "CuiSharp.Ui", "summary": "A row for ordinary components. They are laid out at 100% and scaled with the view, so their text is sharpest at 100% zoom and below." }, { "name": "ReorderItem", "kind": "method", "id": "method|ReorderItem|0|0|LayoutScope|int position||h407076f847f4d4f606b87a109b5a505ca525179c0bff6726382889745d33f038", "signature": "LayoutScope ReorderItem(int position)", "parameters": [{ "name": "position", "type": "int" }] }, { "name": "Row", "kind": "extension", "id": "extension|Row|0|0|LayoutScope|Box o = default||ha02204054f3ea32388e8e24fc8038f253dd0b3504b0e01b650d69265773cb67e", "signature": "LayoutScope Row(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_row_begin" }, { "name": "Scroll", "kind": "extension", "id": "extension|Scroll|0|0|LayoutScope|ScrollOpts o = default||h7aa8eed4bb32b5efc54efbe5c6c7c19215ddf1d8ffed8dfc60e0c8d5234bc6f7", "signature": "LayoutScope Scroll(ScrollOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "ScrollOpts", "default": "default" }], "summary": "cui_scroll_begin" }, { "name": "Split", "kind": "extension", "id": "extension|Split|0|0|LayoutScope|UiText id;ref float ratio;SplitOpts o = default||h83e75ece850ab88dc38fde4b7d1d8ae789128ab387c95d8025b6302e8f59269f", "signature": "LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "ratio", "type": "ref float" }, { "name": "o", "type": "SplitOpts", "default": "default" }], "summary": "cui_split_begin" }, { "name": "Spotlight", "kind": "extension", "id": "extension|Spotlight|0|0|LayoutScope|UiText id;SpotlightOpts o = default||hfb70f807d4c0a2d5450e1ff296551adc78a8733ed06c6b0cb9ed7427add12f16", "signature": "LayoutScope Spotlight(UiText id, SpotlightOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SpotlightOpts", "default": "default" }], "summary": "cui_spotlight_begin" }, { "name": "StatusBar", "kind": "extension", "id": "extension|StatusBar|0|0|LayoutScope|UiText id;StatusBarOpts o = default||h394ecf13ba82c0abd4bdf1a5b7cb5fce6102392c5a87cea283bc38fd2213e96a", "signature": "LayoutScope StatusBar(UiText id, StatusBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "StatusBarOpts", "default": "default" }], "summary": "cui_status_bar_begin" }, { "name": "Toolbar", "kind": "extension", "id": "extension|Toolbar|0|0|LayoutScope|UiText id;ToolbarOpts o = default||hc5826ec43e3d8bf178cfa9f1605bd29bded229aae82424077aa18e1ae7e9cc61", "signature": "LayoutScope Toolbar(UiText id, ToolbarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ToolbarOpts", "default": "default" }], "summary": "cui_toolbar_begin" }, { "name": "VirtualList", "kind": "extension", "id": "extension|VirtualList|0|0|LayoutScope|UiText id;int count;float rowHeight;Size height;out int first;out int last||h90165d4490987ebd4d90276d5b449695a1f58d89f212149090827bfd08a055f2", "signature": "LayoutScope VirtualList(UiText id, int count, float rowHeight, Size height, out int first, out int last)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "Size" }, { "name": "first", "type": "out int" }, { "name": "last", "type": "out int" }], "summary": "Virtual list: only the visible rows are built, so lists with a million rows stay fast. Fills first/last with the visible range." }, { "name": "Localization", "kind": "property", "id": "property|Localization|0|0|Localization?||get;|h0a921bf7a95ff40f095f5e7f43cc6d636b74f025ae427be1edbd250e93f88e54", "signature": "Localization? Localization { get; }", "summary": "The table this surface published, or null for English." }, { "name": "Markdown", "kind": "extension", "id": "extension|Markdown|0|0|MarkdownResult|UiText id;UiText text;MarkdownOpts o = default||h61fdb7c6fb770f95ff734bbdf7b607bad9e23af8b25df034da34f408eed536fa", "signature": "MarkdownResult Markdown(UiText id, UiText text, MarkdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "MarkdownOpts", "default": "default" }], "summary": "cui_markdown_ex" }, { "name": "Modifiers", "kind": "property", "id": "property|Modifiers|0|0|Mods||get;|h994504ae5710377741956558b3dae0b4e2fc318f73c5408e701c6675295af911", "signature": "Mods Modifiers { get; }", "summary": "The modifier keys held right now." }, { "name": "MonthCalendar", "kind": "extension", "id": "extension|MonthCalendar|0|0|MonthResult|UiText id;ref Date month;ReadOnlySpan\u003CMonthEvent\u003E events;ref Date selected;MonthOpts o = default||hacb7fb0b706addd9098a1569df3adbf8cff5b20d3b0bf01f49970bd839da7523", "signature": "MonthResult MonthCalendar(UiText id, ref Date month, ReadOnlySpan\u003CMonthEvent\u003E events, ref Date selected, MonthOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "month", "type": "ref Date" }, { "name": "events", "type": "ReadOnlySpan\u003CMonthEvent\u003E" }, { "name": "selected", "type": "ref Date" }, { "name": "o", "type": "MonthOpts", "default": "default" }], "summary": "cui_month_calendar_ex" }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|OpenScope|UiText title;ref bool open||h485829d02ee323bfa485f05285d6b19d78dcf02ed0a36c9ca4b1da7e70f540e5", "signature": "OpenScope Accordion(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "Accordion / disclosure. Content animates its height." }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|OpenScope|UiText id;int count;ref int index;CarouselOpts o = default||hbcf0bd0059da4b82e6417513dac4646a1ad558c1f46fc3c55b233c3367ef0a4e", "signature": "OpenScope Carousel(UiText id, int count, ref int index, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "cui_carousel_begin" }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|OpenScope|UiText id||hb5be2e863b82aa032d3281886a07b75e6a10932b22c9c06daa36e6ec8460b9c3", "signature": "OpenScope ContextMenu(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Context menu: opens on right click over the previous component." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|OpenScope|UiText title;ref bool open;DialogOpts o = default||h08e9cf3a4bf5178fc47947da0ad76b53486c74b4ebd9c7e92e078d4cb3653668", "signature": "OpenScope Dialog(UiText title, ref bool open, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Modal dialog. Shown while *open is true; closing sets it to false." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|OpenScope|UiText title;ref bool open;DockPanelOpts o = default||h983b85f4b88defb64e03c80c7fd67832cccc8b15fa3b11e9e9c8954cdd239b75", "signature": "OpenScope DockPanel(UiText title, ref bool open, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|OpenScope|UiText title;ref bool open;ExpandableCardOpts o = default||h19637d079a2ee9821dfa4b6223ecf9694471f6157ed61e0139e207c045d56878", "signature": "OpenScope ExpandableCard(UiText title, ref bool open, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "cui_expandable_card_begin" }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|OpenScope|UiText id;HoverCardOpts o = default||hd31fbafd01c517229f3a54d9fbeed478689533294a82e16da99cb56ed4b82d37", "signature": "OpenScope HoverCard(UiText id, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "cui_hover_card_begin" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|OpenScope|UiText id;InspectorOpts o = default||hdb3db7ec75e95846d7b987536583618b0b9445c2deb40a5f16828b5d2d735020", "signature": "OpenScope Inspector(UiText id, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "cui_inspector_begin_ex" }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|OpenScope|UiText label;MenuOpts o = default||hec1b2b131f19c8f1eb37269016b963aed4449341b367ca89e175c1940294ab63", "signature": "OpenScope Menu(UiText label, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "cui_menu_begin" }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|OpenScope|UiText label;MenuBarMenuOpts o = default||h32c463fd3c1d7fa382d82e43f75326d1e14efad5ce907db7337df9ba3480688b", "signature": "OpenScope MenuBarMenu(UiText label, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|OpenScope|int nodeId;ref float x;ref float y;UiText title;NodeOpts o = default||hb7439d9c37ecca24fb0858272f81826919b789149f2a34acd1e1c44ff3266f62", "signature": "OpenScope Node(int nodeId, ref float x, ref float y, UiText title, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "cui_node_begin_ex" }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|OpenScope|UiText id;ref NodeView view;NodeEditorOpts o = default||h4e3c9c7bbaa0ed5b0750957f90a5c6c86f0fbfea8e96d4a8cacd68503ae7ad85", "signature": "OpenScope NodeEditor(UiText id, ref NodeView view, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "cui_node_editor_begin_ex" }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|OpenScope|UiText id;ref int segment||h2aeb15441c53f332d451a287be64ba38ecdb4c05be10ad0f8a2412b04c3ad51a", "signature": "OpenScope PathBarMenu(UiText id, ref int segment)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }], "summary": "True while the menu of separator *segment is showing: build menu items for the children of that segment, then call cui_path_bar_menu_end." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|OpenScope|UiText id;PopoverOpts o = default||had5881283c2885b236d342cac799068e3bd7a8c2d4272ceb08bf27aa60e812f7", "signature": "OpenScope Popover(UiText id, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "cui_popover_begin" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|OpenScope|UiText id;ReasoningOpts o = default||hd8c6837b660811abb55b30c3bcc35eb42dd2099f40a5a73eb35972aca384d12b", "signature": "OpenScope Reasoning(UiText id, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "cui_reasoning_begin" }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|OpenScope|UiText title;ref bool open;SheetOpts o = default||heb98d14c7c6250a83593cac259a583d17aa8636e9eaa839b64b4b5e3db2551d7", "signature": "OpenScope Sheet(UiText title, ref bool open, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "cui_sheet_begin" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;TableOpts o = default||hfd909896b0ab780a5093f3e917adaa2e23e03121d3b8e920a5305582c66486d0", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Same as the overload with ref sort, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;TableOpts o = default||hfda1db8518191e5d1de411deaefeed0d0f8d6838a3a1398abfa10ad4b36ff692", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "cui_table_begin_ex" }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|OpenScope|UiText label;ref bool open;TreeOpts o = default||h4406f8e6a4e0d2f04e9468f25ca87def814144056b1780a4e869ea86998fdd10", "signature": "OpenScope Tree(UiText label, ref bool open, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "cui_tree_begin" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|OpenScope|UiText name;UserMenuOpts o = default||h5323b7ef69eef4b5689f61a0c79b09355b7d2e1579ced7536bd574838f5eb096", "signature": "OpenScope UserMenu(UiText name, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "cui_user_menu_begin" }, { "name": "PathBar", "kind": "extension", "id": "extension|PathBar|0|0|PathBarResult|UiText id;ReadOnlySpan\u003Cstring\u003E segments;PathBarOpts o = default||h5256da01c2004bf6922b836f1b3e9fbc43ed881a67e823c1895ab05f0949dd56", "signature": "PathBarResult PathBar(UiText id, ReadOnlySpan\u003Cstring\u003E segments, PathBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segments", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "PathBarOpts", "default": "default" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "extension", "id": "extension|Pipeline|0|0|PipelineResult|UiText id;ReadOnlySpan\u003Cstring\u003E stages;ReadOnlySpan\u003CPipelineJob\u003E jobs;ref int selected;PipelineOpts o = default||h57164c455b64addad840b532dee1f4eb3acaba49d3b9d3b92afbab5d775aa6e7", "signature": "PipelineResult Pipeline(UiText id, ReadOnlySpan\u003Cstring\u003E stages, ReadOnlySpan\u003CPipelineJob\u003E jobs, ref int selected, PipelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "jobs", "type": "ReadOnlySpan\u003CPipelineJob\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "PipelineOpts", "default": "default" }], "summary": "cui_pipeline_ex" }, { "name": "NowPlaying", "kind": "extension", "id": "extension|NowPlaying|0|0|PlayerEvents|UiText id;ref NowPlayingState np;NowPlayingOpts o = default||h9fae980dc34277b737fa803cbecd222d9c0a4c796e96fa70b56eeeefd0df2b25", "signature": "PlayerEvents NowPlaying(UiText id, ref NowPlayingState np, NowPlayingOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "np", "type": "ref NowPlayingState" }, { "name": "o", "type": "NowPlayingOpts", "default": "default" }], "summary": "cui_now_playing_ex" }, { "name": "Problems", "kind": "extension", "id": "extension|Problems|0|0|ProblemsResult|UiText id;ReadOnlySpan\u003CProblemItem\u003E diags;ProblemsOpts o = default||h6893f9c629255366d4079d33866236777cdcf107644e4109933ef620b8022eed", "signature": "ProblemsResult Problems(UiText id, ReadOnlySpan\u003CProblemItem\u003E diags, ProblemsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "diags", "type": "ReadOnlySpan\u003CProblemItem\u003E" }, { "name": "o", "type": "ProblemsOpts", "default": "default" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "extension", "id": "extension|FlameSpanRect|0|0|RectF|uint flame;in FlameSpan span||haa242a01ec7cc85ea2f271378c3c8c334942d3f054714bdc41b27574a4327c82", "signature": "RectF FlameSpanRect(uint flame, in FlameSpan span)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "flame", "type": "uint" }, { "name": "span", "type": "in FlameSpan" }], "summary": "Where a span was drawn in the latest frame, in points (zero size when out of view). flame is the graph\u0027s id: cui_last_id(ui) right after the call." }, { "name": "LastRect", "kind": "property", "id": "property|LastRect|0|0|RectF||get;|ha796a249509c6af4a48352050e2d549bf5de307702a0f97fbc12276bc4b72b7b", "signature": "RectF LastRect { get; }", "summary": "Rectangle of the most recent component." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|UiText id||hf03418b016be6b023e965616caed52e5a7dd6a367152691bc14de3eb646ed966", "signature": "RectF RectOf(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Rectangle of the widget with this string id." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|uint id||hc518e049cee7502b5770da6d0349e6e1b3764c8cc67fc33e3a92b5006d46ad99", "signature": "RectF RectOf(uint id)", "parameters": [{ "name": "id", "type": "uint" }], "summary": "Rectangle of any widget by id, for hit tests and overlays." }, { "name": "RegexTester", "kind": "extension", "id": "extension|RegexTester|0|0|RegexTesterResult|UiText id;ref string pattern;int patternCap;ref string text;int textCap;ref RegexFlags flags;RegexTesterOpts o = default||h53b2155ffb50f74e3cdbeb47580968a3b4c6256e0cbe584d8955de62e7015f50", "signature": "RegexTesterResult RegexTester(UiText id, ref string pattern, int patternCap, ref string text, int textCap, ref RegexFlags flags, RegexTesterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pattern", "type": "ref string" }, { "name": "patternCap", "type": "int" }, { "name": "text", "type": "ref string" }, { "name": "textCap", "type": "int" }, { "name": "flags", "type": "ref RegexFlags" }, { "name": "o", "type": "RegexTesterOpts", "default": "default" }], "summary": "cui_regex_tester_ex" }, { "name": "RequestBar", "kind": "extension", "id": "extension|RequestBar|0|0|RequestBarResult|UiText id;ref HttpMethod method;ref string url;int cap = 2048;RequestBarOpts o = default||h400ba2e5c7aed931b8c2e5897d16438378b1652b5dfca8f9a1057e88fcb46043", "signature": "RequestBarResult RequestBar(UiText id, ref HttpMethod method, ref string url, int cap = 2048, RequestBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "method", "type": "ref HttpMethod" }, { "name": "url", "type": "ref string" }, { "name": "cap", "type": "int", "default": "2048" }, { "name": "o", "type": "RequestBarOpts", "default": "default" }], "summary": "cui_request_bar_ex" }, { "name": "ResponseActions", "kind": "extension", "id": "extension|ResponseActions|0|0|ResponseEvents|UiText id;ref int vote;ResponseActionsOpts o = default||hc81149b07827af0f59a3269486e0d44858ac9bb48073ed5150872c876c11984c", "signature": "ResponseEvents ResponseActions(UiText id, ref int vote, ResponseActionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "vote", "type": "ref int" }, { "name": "o", "type": "ResponseActionsOpts", "default": "default" }], "summary": "cui_response_actions_ex" }, { "name": "SchedulePicker", "kind": "extension", "id": "extension|SchedulePicker|0|0|ScheduleResult|UiText id;ref string cron;int cap = 128;ScheduleOpts o = default||h5e149aabf00cdaf3e05fa29f62f956e474f8fee28641ae71fde4eaaeb8801f91", "signature": "ScheduleResult SchedulePicker(UiText id, ref string cron, int cap = 128, ScheduleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "cron", "type": "ref string" }, { "name": "cap", "type": "int", "default": "128" }, { "name": "o", "type": "ScheduleOpts", "default": "default" }], "summary": "cui_schedule_picker_ex" }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id||h8505c3ecbdde9acd049fc2d5d47e3c43d0545b89b2b78cc39c0a3993049107cf", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Persistent, zeroed storage for a widget id, for values that must survive between frames (animation phases, drag state, hit-test scratch)." }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id;Action onFree||hbfa4567fbf2313cbdd3cc11d8daae823c35ccab56e58f7f91c8635a98f228824", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id, Action onFree) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "onFree", "type": "Action" }], "summary": "Persistent, zeroed storage for a widget id, with a callback CUI runs when it throws that id\u0027s state away (about five idle seconds, or when the window closes)." }, { "name": "StackTrace", "kind": "extension", "id": "extension|StackTrace|0|0|StackTraceResult|UiText id;ReadOnlySpan\u003CStackFrame\u003E frames;StackTraceOpts o = default||h31d88e2151b353d79ca390bcbc46b17c2882a950f9cf2239a266b97eeaa36a9b", "signature": "StackTraceResult StackTrace(UiText id, ReadOnlySpan\u003CStackFrame\u003E frames, StackTraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "frames", "type": "ReadOnlySpan\u003CStackFrame\u003E" }, { "name": "o", "type": "StackTraceOpts", "default": "default" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "extension", "id": "extension|Terminal|0|0|TerminalResult|UiText id;Terminal terminal;TerminalOpts o = default||h3bb90fc3e22f3e909beb279d5867cc2751b7287513f1480f8c73f2e7405f14d7", "signature": "TerminalResult Terminal(UiText id, Terminal terminal, TerminalOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "terminal", "type": "Terminal" }, { "name": "o", "type": "TerminalOpts", "default": "default" }], "summary": "Draws terminal and reports what the user did in it." }, { "name": "TestExplorer", "kind": "extension", "id": "extension|TestExplorer|0|0|TestExplorerResult|UiText id;ReadOnlySpan\u003CTestItem\u003E items;TestExplorerOpts o = default||h9eeb18e60e88e82a908b873a27468f9699a55c61fb36da8ff356557f102e3862", "signature": "TestExplorerResult TestExplorer(UiText id, ReadOnlySpan\u003CTestItem\u003E items, TestExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTestItem\u003E" }, { "name": "o", "type": "TestExplorerOpts", "default": "default" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|0|0|TextMetrics|UiText text;float size = 12f;Font font = Font.Body||h992b53c9418ee9ba19c1fd34ea05dca44fabbaac335e2ecdd31ccf760fd4f66f", "signature": "TextMetrics MeasureText(UiText text, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Width and height of a single line of text, without wrapping." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "The theme this frame draws with. Assign to switch, from anywhere inside a frame." }, { "name": "TimeHistogram", "kind": "extension", "id": "extension|TimeHistogram|0|0|TimeHistogramResult|UiText id;double start;double bucketSeconds;int buckets;ReadOnlySpan\u003CHistogramSeries\u003E series;ref double selStart;ref double selEnd;TimeHistogramOpts o = default||hfc0784cb52bfd6a3615191c61545b37c444f2ce965ef93b671333df27d4bf165", "signature": "TimeHistogramResult TimeHistogram(UiText id, double start, double bucketSeconds, int buckets, ReadOnlySpan\u003CHistogramSeries\u003E series, ref double selStart, ref double selEnd, TimeHistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "ReadOnlySpan\u003CHistogramSeries\u003E" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "o", "type": "TimeHistogramOpts", "default": "default" }], "summary": "cui_time_histogram_ex" }, { "name": "Tour", "kind": "extension", "id": "extension|Tour|0|0|TourAction|UiText id;ReadOnlySpan\u003CTourStep\u003E steps;ref int step;TourOpts o = default||h7a480bb022c619036d7ca1d19006a7d5aa923a84ea3fc62b5eae88ea7b1088c8", "signature": "TourAction Tour(UiText id, ReadOnlySpan\u003CTourStep\u003E steps, ref int step, TourOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CTourStep\u003E" }, { "name": "step", "type": "ref int" }, { "name": "o", "type": "TourOpts", "default": "default" }], "summary": "What happened this frame: one of CUI_TOUR_*." }, { "name": "TraceView", "kind": "extension", "id": "extension|TraceView|0|0|TraceResult|UiText id;ReadOnlySpan\u003CTraceTrack\u003E tracks;ReadOnlySpan\u003CTraceSpan\u003E spans;ref TraceViewState view;ref int selected;TraceOpts o = default||h7ab8ce526cada0bd73b947180d909dfa39f159b47ac14940ec53b67f28158b92", "signature": "TraceResult TraceView(UiText id, ReadOnlySpan\u003CTraceTrack\u003E tracks, ReadOnlySpan\u003CTraceSpan\u003E spans, ref TraceViewState view, ref int selected, TraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tracks", "type": "ReadOnlySpan\u003CTraceTrack\u003E" }, { "name": "spans", "type": "ReadOnlySpan\u003CTraceSpan\u003E" }, { "name": "view", "type": "ref TraceViewState" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TraceOpts", "default": "default" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||h5ad3a7ebd26d1298c20becc826efa4b5392b7ddbca0d68cfbb1f162eb572fd75", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws a tree without sort or keyboard state: the table keeps no per-id interaction state, which is all a static tree needs." }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;ref TableSort sort;ref int cursor;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||hdc8db941f4c0a5cc7a1e81a316f1e56fbc2468020569fb6cacf3307bec596a1d", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, ref TableSort sort, ref int cursor, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "sort", "type": "ref TableSort" }, { "name": "cursor", "type": "ref int" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws nodes as a tree with columns, calling row once per visible node to fill its cells." }, { "name": "Uptime", "kind": "extension", "id": "extension|Uptime|0|0|UptimeResult|UiText id;ReadOnlySpan\u003CUptimeService\u003E services;UptimeOpts o = default||h60131e1db59b8a809d222a6d6dee840e1ccde25607a2c4178418eef8a488dccb", "signature": "UptimeResult Uptime(UiText id, ReadOnlySpan\u003CUptimeService\u003E services, UptimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "services", "type": "ReadOnlySpan\u003CUptimeService\u003E" }, { "name": "o", "type": "UptimeOpts", "default": "default" }], "summary": "cui_uptime_ex" }, { "name": "MousePosition", "kind": "property", "id": "property|MousePosition|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h02b51b7243b762c56e53482522c31644d844cd12e36381af09a9700cd549db93", "signature": "ValueTuple\u003Cfloat, float\u003E MousePosition { get; }", "summary": "Pointer position in points, top-left origin." }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|0|0|ValueTuple\u003Cfloat, float\u003E|||h7a26e2e5e6b39edb5a26a6e7adde40edf0bcd8599f3d7629ea37d02c109493a2", "signature": "ValueTuple\u003Cfloat, float\u003E ViewportSize()" }, { "name": "Waterfall", "kind": "extension", "id": "extension|Waterfall|0|0|WaterfallResult|UiText id;ReadOnlySpan\u003CNetRequest\u003E requests;ref int selected;WaterfallOpts o = default||h419b5ccb1a80d64ac3cce058fa79a3ac44664f29e8c9685c083cf8552c6714e6", "signature": "WaterfallResult Waterfall(UiText id, ReadOnlySpan\u003CNetRequest\u003E requests, ref int selected, WaterfallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "requests", "type": "ReadOnlySpan\u003CNetRequest\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "WaterfallOpts", "default": "default" }], "summary": "cui_waterfall_ex" }, { "name": "Alert", "kind": "extension", "id": "extension|Alert|0|0|bool|UiText title;AlertOpts o = default||hb9b8786bcd05d91b48b9d5b7e7c8dfe99eab8a18cccf61ee5708920e8c2c65a0", "signature": "bool Alert(UiText title, AlertOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "AlertOpts", "default": "default" }], "summary": "Inline alert. Returns false once dismissed (when dismissible)." }, { "name": "Banner", "kind": "extension", "id": "extension|Banner|0|0|bool|UiText text;ref bool open;BannerOpts o = default||hded3699dd8c0717c5f0d2f8a60f5b76364aaa539a156402e1d68fed1e8b19dd6", "signature": "bool Banner(UiText text, ref bool open, BannerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "BannerOpts", "default": "default" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "extension", "id": "extension|Button|0|0|bool|UiText label;ButtonOpts o = default||h0824ce1ee9db1a3102bbbc57b5f43c838d0aac0c456dc9d0f5ddf3a8bb9eaae3", "signature": "bool Button(UiText label, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "extension", "id": "extension|Calendar|0|0|bool|UiText id;ref Date value||he2d734019c4ba63e626cffe267911189a15dbf5b403eff0fc6fd9898d4334662", "signature": "bool Calendar(UiText id, ref Date value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }], "summary": "cui_calendar" }, { "name": "Checkbox", "kind": "extension", "id": "extension|Checkbox|0|0|bool|UiText label;ref bool value;CheckOpts o = default||h5e553956f3358e286491451619c072577baad5689e0ba2b38257460dced857ee", "signature": "bool Checkbox(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "extension", "id": "extension|Chip|0|0|bool|UiText label;ref bool selected;ChipOpts o = default||h4ff38ab2a9a818e7526990ee6c9e6f19f63a1138e5fb79d08917e25c0d0a78ee", "signature": "bool Chip(UiText label, ref bool selected, ChipOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "selected", "type": "ref bool" }, { "name": "o", "type": "ChipOpts", "default": "default" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "extension", "id": "extension|Citation|0|0|bool|int number;in Source source||ha19b93ee36f160c6271aaa8db69ab4937531c6d0be1bdcd8e208aa7eb206aee7", "signature": "bool Citation(int number, in Source source)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "number", "type": "int" }, { "name": "source", "type": "in Source" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "extension", "id": "extension|ColorPicker|0|0|bool|UiText id;ref Color value||h337517bd7bbb67ac9f2a0f2cd3561338116b8bbce4aab6736de92c41bd706e10", "signature": "bool ColorPicker(UiText id, ref Color value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Color" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "extension", "id": "extension|ConfirmButton|0|0|bool|UiText label;ConfirmOpts o = default||ha173e8d04000010db239a95f45b5a65630e6c3a32565f48acd835a79732b2383", "signature": "bool ConfirmButton(UiText label, ConfirmOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ConfirmOpts", "default": "default" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "extension", "id": "extension|ConfirmPopover|0|0|bool|UiText id;ConfirmPopoverOpts o = default||h1c2e0982b9c59e893eae1a02030bc1dcf3a82997c3f51101dbeae1b45e768ee2", "signature": "bool ConfirmPopover(UiText id, ConfirmPopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ConfirmPopoverOpts", "default": "default" }], "summary": "cui_confirm_popover_ex" }, { "name": "ControlTile", "kind": "extension", "id": "extension|ControlTile|0|0|bool|UiText label;ref bool on;TileOpts o = default||h030def7b2183e0b26721bad6afc91a710eb6f7cf309e2889db383c64f1477cbd", "signature": "bool ControlTile(UiText label, ref bool on, TileOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "on", "type": "ref bool" }, { "name": "o", "type": "TileOpts", "default": "default" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "extension", "id": "extension|CopyButton|0|0|bool|UiText id;UiText text||hbc740c15d3716aa5400fb730217b29b8462ce4a82a1b3b2c9884600f4fbfe844", "signature": "bool CopyButton(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "Icon button that copies text to the clipboard and confirms with a check." }, { "name": "Cropper", "kind": "extension", "id": "extension|Cropper|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref RectF crop;CropperOpts o = default||hc4433b320e719d68cf000799d9f75543139b19ed26265d5d5b7ef0e7cb29a2cf", "signature": "bool Cropper(UiText id, ulong tex, int imageW, int imageH, ref RectF crop, CropperOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref RectF" }, { "name": "o", "type": "CropperOpts", "default": "default" }], "summary": "Returns true when the crop changed." }, { "name": "DataGridCellEdit", "kind": "extension", "id": "extension|DataGridCellEdit|0|0|bool|ref string buf;int cap||h36d248e6c06ee8f7c129163000d2afe51274d879f2f2a6dd8f75e48579c04c63", "signature": "bool DataGridCellEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Editable text cell: double click (or Enter on the cursor row) to edit, Enter or clicking away commits, Esc reverts. True when committed." }, { "name": "DataGridEdit", "kind": "extension", "id": "extension|DataGridEdit|0|0|bool|ref string buf;int cap||h4a0248a3c48520cf419b921b7953de24c458026bb86ab7bd00ba08e5d194ef65", "signature": "bool DataGridEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "The same editable text, inside the current cell (after an avatar, say)." }, { "name": "DataGridRow", "kind": "extension", "id": "extension|DataGridRow|0|0|bool|int row||h5fe4fdf7429d5b5aac0325fa0af56631c8d8a1ff342c03251fe30d766d9f9225", "signature": "bool DataGridRow(int row)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "extension", "id": "extension|DatePicker|0|0|bool|UiText id;ref Date value;DateOpts o = default||h993523ace680cddb6c1434059ef52f3fb34d716bed495d79d97b148118785ee2", "signature": "bool DatePicker(UiText id, ref Date value, DateOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }, { "name": "o", "type": "DateOpts", "default": "default" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "extension", "id": "extension|DateRangePicker|0|0|bool|UiText id;ref DateRange range;DateRangeOpts o = default||h9daa98cbb5461612c53362c329641eba719561905ce1865087421113c0ee84d1", "signature": "bool DateRangePicker(UiText id, ref DateRange range, DateRangeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "o", "type": "DateRangeOpts", "default": "default" }], "summary": "cui_date_range_picker_ex" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|0|0|bool|out Date value||h2030bff62c6a99d4c47e3fa2a09f8c125232327d048faf8c41c853eeafa84679", "signature": "bool DateToday(out Date value)", "parameters": [{ "name": "value", "type": "out Date" }] }, { "name": "DockItem", "kind": "extension", "id": "extension|DockItem|0|0|bool|UiText icon;UiText label;DockItemOpts o = default||h6868974ee881c1a4f660ae0207737b226f6822fd1064babdbda9860825db89d1", "signature": "bool DockItem(UiText icon, UiText label, DockItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "DockItemOpts", "default": "default" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "extension", "id": "extension|DockLoad|0|0|bool|UiText id;UiText text||hffd91787faf77c3d390dfe7deb8bb16df93eb717a31ba3fd4130eac2e2e134b4", "signature": "bool DockLoad(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "cui_dock_load" }, { "name": "EmojiFontLoadFile", "kind": "extension", "id": "extension|EmojiFontLoadFile|0|0|bool|UiText path||hf9ed3d99d8c528c9df41c7bca5721cb0eb461686e0a48bc35d1cf718f13ba0f6", "signature": "bool EmojiFontLoadFile(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "---- Emoji ---- Color emoji come from an emoji font: the system\u0027s (cui_emoji_font_load_system, which the picker calls by itself when nothing is loaded) or one the app ships. Bitmap color fonts (sbix as on macOS, CBDT as on Linux and Android) and layered ones (COLR version 0, as on Windows) are read, as is a plain outline font for one-color emoji. Sequences with skin tones, joined people and flags are looked up through the font\u0027s ligatures. Big fonts are read from the file as needed rather than loaded whole. Drawn emoji are kept in one texture and reused." }, { "name": "EmojiFontLoadMemory", "kind": "extension", "id": "extension|EmojiFontLoadMemory|0|0|bool|ReadOnlySpan\u003Cbyte\u003E data;bool copy||h8f31cf994f46f3f46e0c7fdefbd7d39be865056bcb0700421f0fee7be7142342", "signature": "bool EmojiFontLoadMemory(ReadOnlySpan\u003Cbyte\u003E data, bool copy)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "extension", "id": "extension|EmojiFontLoadSystem|0|0|bool|||he4386dbb08b9f31fd0c23d6cb333b56d4babcbd26d5e38fa72a56bc89a6bac12", "signature": "bool EmojiFontLoadSystem()", "extensionOn": "CuiSharp.Ui", "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "extension", "id": "extension|EmojiSupported|0|0|bool|UiText utf8||he0adda46557f9d84dbc4c6feb4f995d99998ffae9bdabd33371c8df1fc7899fb", "signature": "bool EmojiSupported(UiText utf8)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "extension", "id": "extension|EmptyState|0|0|bool|UiText title;EmptyOpts o = default||h3447935b9ffe834dcbe57094c2bd062fa6216fbbd3d59e4e2527f7da36f6f369", "signature": "bool EmptyState(UiText title, EmptyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "EmptyOpts", "default": "default" }], "summary": "Empty state. Returns true when its action button is clicked." }, { "name": "ExpandableText", "kind": "extension", "id": "extension|ExpandableText|0|0|bool|UiText id;UiText text;ExpandableTextOpts o = default||h0853336278f85890679dc7cd1bc9eb77a34f2cf61567d87164045778c0f8d6ad", "signature": "bool ExpandableText(UiText id, UiText text, ExpandableTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "ExpandableTextOpts", "default": "default" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "extension", "id": "extension|Fader|0|0|bool|UiText id;ref float value;float min;float max;FaderOpts o = default||h8266bbe632feda1ec1b4b87bd7f41cc9e107e496de7dfb957c9d87f1e63f8835", "signature": "bool Fader(UiText id, ref float value, float min, float max, FaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "FaderOpts", "default": "default" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the window, for a drop target to light up." }, { "name": "FilePicker", "kind": "extension", "id": "extension|FilePicker|0|0|bool|UiText id;ref bool open;ref string out;int outCap = 1024;FilePickerOpts o = default||hb1ce6182678b8b2ca569fff7fdf6d4a781314228ed80d25a4c02a48b368dd07f", "signature": "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "out", "type": "ref string" }, { "name": "outCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FilePickerOpts", "default": "default" }], "summary": "True once, with the chosen path in out, when the dialog is confirmed; *open turns false then, or on Cancel and Esc." }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|0|0|bool|UiText id;ReadOnlySpan\u003CFilterField\u003E fields;Span\u003Cuint\u003E selected;ref string search;int searchCap = 256||h05b35fdecfc879680ca00e844554bef0fb0d2b9ee533e72f50a25b4cb5e4be7a", "signature": "bool FilterBar(UiText id, ReadOnlySpan\u003CFilterField\u003E fields, Span\u003Cuint\u003E selected, ref string search, int searchCap = 256)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CFilterField\u003E" }, { "name": "selected", "type": "Span\u003Cuint\u003E" }, { "name": "search", "type": "ref string" }, { "name": "searchCap", "type": "int", "default": "256" }], "summary": "Filter chips, one dropdown per field plus a search. selected holds one option bitmask per field; returns true on any change." }, { "name": "HistogramSlider", "kind": "extension", "id": "extension|HistogramSlider|0|0|bool|UiText label;ReadOnlySpan\u003Cfloat\u003E bins;ref float lo;ref float hi;float min;float max;HistogramOpts o = default||h72cc41a613543670d7d773f53d3ed618f4ca5dda5c9cf710a8ea0c0745f9816a", "signature": "bool HistogramSlider(UiText label, ReadOnlySpan\u003Cfloat\u003E bins, ref float lo, ref float hi, float min, float max, HistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "bins", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "HistogramOpts", "default": "default" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "extension", "id": "extension|HoldButton|0|0|bool|UiText label;HoldOpts o = default||ha44fcfbb972ecfbea614fbc280b43abd9c243c1e05ac46d39ac240667e1b2a30", "signature": "bool HoldButton(UiText label, HoldOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "HoldOpts", "default": "default" }], "summary": "cui_hold_button_ex" }, { "name": "IconButton", "kind": "extension", "id": "extension|IconButton|0|0|bool|UiText icon;ButtonOpts o = default||h5215045b3b917c5c328653c82d759d884c905c9bee3fd2bcae9c23b95552a5e2", "signature": "bool IconButton(UiText icon, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "Square/round button with only an icon. Give it a tooltip so it has a name." }, { "name": "ImageCompare", "kind": "extension", "id": "extension|ImageCompare|0|0|bool|UiText id;ulong before;ulong after;ref float pos;CompareOpts o = default||hbf70b5332c704791b825e9cb8d9e14cd4661dfc72efb9bed54e7afc61aac7221", "signature": "bool ImageCompare(UiText id, ulong before, ulong after, ref float pos, CompareOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "o", "type": "CompareOpts", "default": "default" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "extension", "id": "extension|ImageViewer|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref ImageView view;ImageViewerOpts o = default||hfd49614f5ed12268c88fafc87f200f9ba92c7a0989e02c2476dadf0bb0fab3b3", "signature": "bool ImageViewer(UiText id, ulong tex, int imageW, int imageH, ref ImageView view, ImageViewerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref ImageView" }, { "name": "o", "type": "ImageViewerOpts", "default": "default" }], "summary": "Returns true when the view changed." }, { "name": "InspectorGroup", "kind": "extension", "id": "extension|InspectorGroup|0|0|bool|UiText title;ref bool open||hba33317836e4529b513b762245b52b82d2fc8fd252b7ae2174d7ffdf7ff08018", "signature": "bool InspectorGroup(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "A folding group header. Build its rows only when this returns true (it stays true while the group animates closed). open may be NULL for a plain section that does not fold." }, { "name": "IsDisabled", "kind": "property", "id": "property|IsDisabled|0|0|bool||get;|h66819bb8e34991aa0b9a8fdf312d84bcc577f1aed8196c14e9cfc9792bab4b6e", "signature": "bool IsDisabled { get; }", "summary": "True inside a Disabled scope (or one a parent opened)." }, { "name": "JsonView", "kind": "extension", "id": "extension|JsonView|0|0|bool|UiText id;UiText json;JsonOpts o = default||h206112d6d2798b04c8b2e35b11a492fe5022438268206f218c32f29f9efa0bbf", "signature": "bool JsonView(UiText id, UiText json, JsonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "json", "type": "UiText" }, { "name": "o", "type": "JsonOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Kanban", "kind": "extension", "id": "extension|Kanban|0|0|bool|UiText id;out KanbanMove kanbanmove;DrawFn body||h06459ebde22b2b48e212f80454450eb468aac078e18e50dee8f7aa756afdbe5e", "signature": "bool Kanban(UiText id, out KanbanMove kanbanmove, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "kanbanmove", "type": "out KanbanMove" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_kanban_begin The card was dropped into another column, and the move is written into the out parameter." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|bool|Key key||h8b8a390f57bfe976c9fae2d30fec99be77322f69944968534c26bc08482cb159", "signature": "bool KeyDown(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True while the key is held (with auto-repeat)." }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|0|0|bool|Key key||hd4bc534b9e8b12976f0c38f87635500fca89a9d6949ea0a103354f41e6d39700", "signature": "bool KeyPressed(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True on the frame the key went down, including repeats." }, { "name": "Knob", "kind": "extension", "id": "extension|Knob|0|0|bool|UiText id;ref float value;float min;float max;KnobOpts o = default||hfceb051da509c5e36d4bd22400b42f24a8cc0da8ba2c27a23c8e378855c66680", "signature": "bool Knob(UiText id, ref float value, float min, float max, KnobOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "KnobOpts", "default": "default" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "extension", "id": "extension|KvEditor|0|0|bool|UiText id;Span\u003CKeyValue\u003E pairs;ref int count;int capacity;KvEditorOpts o = default||h5d7a626c1e0d0a2cbf62a8c0287d50a3401dbcf803f979b35c42c7899fb4db07", "signature": "bool KvEditor(UiText id, Span\u003CKeyValue\u003E pairs, ref int count, int capacity, KvEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pairs", "type": "Span\u003CKeyValue\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "KvEditorOpts", "default": "default" }], "summary": "cui_kv_editor_ex" }, { "name": "LevelMeter", "kind": "extension", "id": "extension|LevelMeter|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E levels;LevelMeterOpts o = default||he2b90272968549a2bc948844fa0f2e5fcb787783f5c0716cf3d8c48db532ab7e", "signature": "bool LevelMeter(UiText id, ReadOnlySpan\u003Cfloat\u003E levels, LevelMeterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "levels", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "LevelMeterOpts", "default": "default" }], "summary": "Returns true when the clip light was clicked to clear it." }, { "name": "Link", "kind": "extension", "id": "extension|Link|0|0|bool|UiText text||h20b90df40ad793aa00f00bae1aeddd8c78d8d1ee7eccdf7f709db8b78317b57a", "signature": "bool Link(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "extension", "id": "extension|ListItem|0|0|bool|UiText title;ListItemOpts o = default||h59240e7a8fd8d1115830e25d32bfc60e47f14e4645e8e48b58281c710be7f5c9", "signature": "bool ListItem(UiText title, ListItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ListItemOpts", "default": "default" }], "summary": "cui_list_item_ex" }, { "name": "LoadImage", "kind": "method", "id": "method|LoadImage|0|0|bool|UiText path;out ulong texture;out int width;out int height||hfe19783db558936a04580a0831ac4289470f120ccd1ef3163fcee3e05649da1f", "signature": "bool LoadImage(UiText path, out ulong texture, out int width, out int height)", "parameters": [{ "name": "path", "type": "UiText" }, { "name": "texture", "type": "out ulong" }, { "name": "width", "type": "out int" }, { "name": "height", "type": "out int" }], "summary": "Decodes a PNG or JPEG from disk into a texture and reports its pixel size. Returns false when the file cannot be read or decoded; the texture is then 0. Release it with DestroyImage." }, { "name": "MenuItem", "kind": "extension", "id": "extension|MenuItem|0|0|bool|UiText label;MenuItemOpts o = default||h6f02a24b8c3e14f743f1164e34c40e0c32e7647a378fc18f6fac4bd77708b604", "signature": "bool MenuItem(UiText label, MenuItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuItemOpts", "default": "default" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "extension", "id": "extension|ModelPicker|0|0|bool|UiText id;ReadOnlySpan\u003CModel\u003E models;ref int selected;ModelPickerOpts o = default||h30f09bcdbcd0511d67feaab5ce1eb2d84b0769c8eb387e2675cdc4b9faf9d869", "signature": "bool ModelPicker(UiText id, ReadOnlySpan\u003CModel\u003E models, ref int selected, ModelPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "models", "type": "ReadOnlySpan\u003CModel\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ModelPickerOpts", "default": "default" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "extension", "id": "extension|MoneyInput|0|0|bool|UiText id;ref double value;MoneyOpts o = default||hd65fb688e51d9a482d2f9031cdb57646790ad85a3c809e961601a8725a753b42", "signature": "bool MoneyInput(UiText id, ref double value, MoneyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "o", "type": "MoneyOpts", "default": "default" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|0|0|bool|MouseButton button||h8e0f0ad614e613c5c152543c9917af645f5ae90299577124c2da8f7863f69862", "signature": "bool MouseClicked(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True on the frame a mouse button went down." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|bool|MouseButton button||hf67b74dbd9e44892fdb6b384ac7537f75c21e2054ec9267ee7cf800f77c4c81d", "signature": "bool MouseDown(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True while a mouse button is held." }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;Span\u003Cbool\u003E selected;MultiSelectOpts o = default||h3e128721808f3d5d3438e029c09a821039a75342e2851271e35420570d1affca", "signature": "bool MultiSelect(UiText id, ReadOnlySpan\u003Cstring\u003E items, Span\u003Cbool\u003E selected, MultiSelectOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "selected", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "MultiSelectOpts", "default": "default" }], "summary": "A searchable list with one checkbox per item and chips for the chosen ones. Returns true on the frame an entry flips." }, { "name": "NavItem", "kind": "extension", "id": "extension|NavItem|0|0|bool|UiText label;NavOpts o = default||h163b7c5bf544cc2227cbef6b64c928a89e62b8536a9e4ab947179a86d455c59d", "signature": "bool NavItem(UiText label, NavOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "NavOpts", "default": "default" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "property", "id": "property|NeedsRedraw|0|0|bool||get;|h5aadd05568570958d5b9529ecc317e3ce874d6c40baa003636859fb90a0da9fc", "signature": "bool NeedsRedraw { get; }" }, { "name": "NodeDeleted", "kind": "extension", "id": "extension|NodeDeleted|0|0|bool|ref int nodeId||hc3cfc3ad4c4fc3a042b1dbb26d3de5739a59ee9b1e9f8c1741f772a5e535d6bc", "signature": "bool NodeDeleted(ref int nodeId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeInput", "kind": "extension", "id": "extension|NodeInput|0|0|bool|int pinId;UiText label;PinOpts o = default||hd37a374006c3c8cd18c68d9d7503bd5160359d3f3e458d3531e756c52700b1f0", "signature": "bool NodeInput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "extension", "id": "extension|NodeLink|0|0|bool|int linkId;int fromPin;int toPin||hab2ff05d12c3863dc35ff7ced8cdef83783fba6a2e16dbd81214feb3eaf01910", "signature": "bool NodeLink(int linkId, int fromPin, int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeLinkCreated", "kind": "extension", "id": "extension|NodeLinkCreated|0|0|bool|ref int fromPin;ref int toPin||h7c136a895333c132f83c1d99cf5809163d5430c0060eaaedcf7bbe0f15f462bd", "signature": "bool NodeLinkCreated(ref int fromPin, ref int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "What the user did this frame, one event per call; call them after cui_node_editor_begin (and up to the end of the frame)." }, { "name": "NodeLinkRemoved", "kind": "extension", "id": "extension|NodeLinkRemoved|0|0|bool|ref int linkId||h8cf7097abf407418a15af49e45ee086b240ec03b1e130c7888ce620da1bbadca", "signature": "bool NodeLinkRemoved(ref int linkId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "ref int" }], "summary": "Part of cui_node_link \u2014 A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeOutput", "kind": "extension", "id": "extension|NodeOutput|0|0|bool|int pinId;UiText label;PinOpts o = default||h3750efacdd047bf840c0482278adf33fa6dd72ffa3acb6bf2c1afd789b95d351", "signature": "bool NodeOutput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|0|0|bool|UiText id;ref double value;double min;double max;NumberOpts o = default||h695eacf696437442db4c71e212e9d772037965f7b79fa0164581c32f72012f09", "signature": "bool Number(UiText id, ref double value, double min, double max, NumberOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "o", "type": "NumberOpts", "default": "default" }] }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|0|0|bool|UiText id;ref string value;int length||h8029c922f0c302147b4a9d172f51e477cf692656857072b2505965f1cc911eaf", "signature": "bool OtpInput(UiText id, ref string value, int length)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "length", "type": "int" }], "summary": "One-time code input: length boxes, buffer length \u002B 1." }, { "name": "Pagination", "kind": "extension", "id": "extension|Pagination|0|0|bool|UiText id;ref int page;int pageCount||h79ccb8aea896cd889c714acd8763edcf22dbbfb029a1dbd70ed9639354c6b6c8", "signature": "bool Pagination(UiText id, ref int page, int pageCount)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PopoverIsOpen", "kind": "extension", "id": "extension|PopoverIsOpen|0|0|bool|UiText id||h83722811a2be8261fbe93cc555b026a4a1e130ec294d2cd25013358d929a3c0e", "signature": "bool PopoverIsOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "extension", "id": "extension|PropBool|0|0|bool|UiText label;ref bool value;PropOpts o = default||h121ac40771efea9741585563443f4c4687f7a10d137ffd9d268555b5501ddd64", "signature": "bool PropBool(UiText label, ref bool value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "extension", "id": "extension|PropColor|0|0|bool|UiText label;ref Color value;PropOpts o = default||h6ca0bc5ddc35dae8cf9131bd28c26cd31e497e501164de0d50828fb7983a1cc2", "signature": "bool PropColor(UiText label, ref Color value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref Color" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "A swatch and hex value that opens the color picker." }, { "name": "PropEnum", "kind": "extension", "id": "extension|PropEnum|0|0|bool|UiText label;ReadOnlySpan\u003Cstring\u003E items;ref int index;PropOpts o = default||h241aa42ffd01f5c7a9fadb861af4a608b0c8a014ae458b62692370d10cf009d8", "signature": "bool PropEnum(UiText label, ReadOnlySpan\u003Cstring\u003E items, ref int index, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "extension", "id": "extension|PropFloat|0|0|bool|UiText label;ref float value;PropOpts o = default||hc8efd7345903f342766598358e2e5c0998eb7933cf7f5cec0429b86873ff6ccf", "signature": "bool PropFloat(UiText label, ref float value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "extension", "id": "extension|PropInt|0|0|bool|UiText label;ref int value;PropOpts o = default||hd93df8234e1afb0dba5df9a1531c8936c732948e17db67e12102617d568c305b", "signature": "bool PropInt(UiText label, ref int value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "extension", "id": "extension|PropText|0|0|bool|UiText label;ref string buf;int cap;PropOpts o = default||h46a1a717145b1f3a7800e8921d45ea9b002d8c2fdf5958fbf3c03f97fc47d1db", "signature": "bool PropText(UiText label, ref string buf, int cap, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "extension", "id": "extension|PropVec|0|0|bool|UiText label;ref float value;int components;PropOpts o = default||h57600f963270b3c592fd247d9b1f943533361ae615e7b6ca52e287fa289a67b2", "signature": "bool PropVec(UiText label, ref float value, int components, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "Compact X, Y (Z, W) scrub fields side by side; value holds 2, 3 or 4 floats." }, { "name": "QueryBuilder", "kind": "extension", "id": "extension|QueryBuilder|0|0|bool|UiText id;ReadOnlySpan\u003CQueryField\u003E fields;Span\u003CQueryNode\u003E nodes;ref int count;int capacity;QueryOpts o = default||h63279934815740f429812f645fc20bbc38efc937b246d56e61a9f171034a9922", "signature": "bool QueryBuilder(UiText id, ReadOnlySpan\u003CQueryField\u003E fields, Span\u003CQueryNode\u003E nodes, ref int count, int capacity, QueryOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "Span\u003CQueryNode\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "QueryOpts", "default": "default" }], "summary": "cui_query_builder_ex" }, { "name": "Radio", "kind": "extension", "id": "extension|Radio|0|0|bool|UiText label;ref int value;int option;CheckOpts o = default||h837451b9483026bc7e273c76e5251c0de524d770f182a8365674ac44553130ee", "signature": "bool Radio(UiText label, ref int value, int option, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "extension", "id": "extension|RadioCards|0|0|bool|UiText id;ReadOnlySpan\u003CChoice\u003E choices;ref int index;RadioCardsOpts o = default||h277ecfd91b4ab6ad87556ac5585d5014c5f8f4b70743ded6f2d33b25b513c439", "signature": "bool RadioCards(UiText id, ReadOnlySpan\u003CChoice\u003E choices, ref int index, RadioCardsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "choices", "type": "ReadOnlySpan\u003CChoice\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "RadioCardsOpts", "default": "default" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "extension", "id": "extension|RadioGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index||h13b5e8871098bf87979cd713e4fa844042e8066de15ba83cf7b5cda071897cee", "signature": "bool RadioGroup(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "extension", "id": "extension|RangeCalendar|0|0|bool|UiText id;ref DateRange range;int months||h8c74871e3d5b09aa52567046cfb0cacddba5d6bd45af5a0343aa6ea880da3344", "signature": "bool RangeCalendar(UiText id, ref DateRange range, int months)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "months", "type": "int" }], "summary": "One or two months side by side; click a start and an end." }, { "name": "RangeSlider", "kind": "extension", "id": "extension|RangeSlider|0|0|bool|UiText label;ref float lo;ref float hi;float min;float max||h431a1c22347795ecfaf7422d776daf2552ad13b1bbafc0b34e7ddfbb9f6fca1e", "signature": "bool RangeSlider(UiText label, ref float lo, ref float hi, float min, float max)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "extension", "id": "extension|Rating|0|0|bool|UiText id;ref int value;int max = 5||ha54ef468c924f3613d361d9d3e4ba18c9bed4ef0f7d7dd855532a052b89231ce", "signature": "bool Rating(UiText id, ref int value, int max = 5)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int", "default": "5" }], "summary": "cui_rating" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|0|0|bool|||h289d889249190a219f4708d3f6a34916df30d8dccdd623b1af17d06cf7ad4fe9", "signature": "bool ReorderEnd()" }, { "name": "RulerSlider", "kind": "extension", "id": "extension|RulerSlider|0|0|bool|UiText label;ref float value;float min;float max;RulerOpts o = default||hda8dec175710635b7de7215517d587b9a5332ed440922d693ed02813d9c4deb7", "signature": "bool RulerSlider(UiText label, ref float value, float min, float max, RulerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RulerOpts", "default": "default" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "extension", "id": "extension|Scrub|0|0|bool|UiText label;ref float value;float min;float max;ScrubOpts o = default||h816f9787704b09241842573d59264e0cc5674f4a764e0ae2054b721f3ad20a7b", "signature": "bool Scrub(UiText label, ref float value, float min, float max, ScrubOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "ScrubOpts", "default": "default" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SegmentedOpts o = default||h8452b4d90fbd938f7492782df2bfd7e49e6f17b79bb32a7fa92536dbbc52bbfb", "signature": "bool Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "extension", "id": "extension|Select|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SelectOpts o = default||h4546d9051044aa80f649b171897799d53c415b998250abdc626bf84e5341bea3", "signature": "bool Select(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SelectOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SelectOpts", "default": "default" }], "summary": "cui_select_ex" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|0|0|bool|Mods mods;Key key||h23544d98ad9364c783897d23b07d28fd4c4889f44ac4f6b734142ae19cee295a", "signature": "bool Shortcut(Mods mods, Key key)", "parameters": [{ "name": "mods", "type": "Mods" }, { "name": "key", "type": "Key" }] }, { "name": "ShortcutRecorder", "kind": "extension", "id": "extension|ShortcutRecorder|0|0|bool|UiText id;ref KeyCombo combo;ShortcutRecorderOpts o = default||h22c067848057da16592bf471e38a3d5c8d3e7a976928a24a34dda5e650586e2a", "signature": "bool ShortcutRecorder(UiText id, ref KeyCombo combo, ShortcutRecorderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "combo", "type": "ref KeyCombo" }, { "name": "o", "type": "ShortcutRecorderOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "SignaturePad", "kind": "extension", "id": "extension|SignaturePad|0|0|bool|UiText id;SignatureOpts o = default||h26a7180ac812cfc40208765b73de3283d8bdc2a773db48e467c36bfac61e2f47", "signature": "bool SignaturePad(UiText id, SignatureOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SignatureOpts", "default": "default" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "extension", "id": "extension|Slider|0|0|bool|UiText label;ref float value;float min;float max;SliderOpts o = default||h07890e859be8c8053afac54f6a7ef888728ac54358e77cca1a0c6f9d5936fcd0", "signature": "bool Slider(UiText label, ref float value, float min, float max, SliderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "SliderOpts", "default": "default" }], "summary": "Elastic slider: the track stretches like rubber when dragged past its ends." }, { "name": "StatusBarItem", "kind": "extension", "id": "extension|StatusBarItem|0|0|bool|UiText label;StatusItemOpts o = default||h35fa1b9b36f005ceff913dc858202baee2f50d4678537b369e987582020f4d84", "signature": "bool StatusBarItem(UiText label, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A small clickable item (\u0022Ln 12, Col 4\u0022, \u0022UTF-8\u0022). Returns true when clicked." }, { "name": "StatusButton", "kind": "extension", "id": "extension|StatusButton|0|0|bool|UiText label;Status status;StatusButtonOpts o = default||h5c9d9e2cd49f70a00398d2fe51ccf1933f78becdf2d7e5b610c5e2427ee30722", "signature": "bool StatusButton(UiText label, Status status, StatusButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "status", "type": "Status" }, { "name": "o", "type": "StatusButtonOpts", "default": "default" }], "summary": "cui_status_button_ex" }, { "name": "Switch", "kind": "extension", "id": "extension|Switch|0|0|bool|UiText label;ref bool value;CheckOpts o = default||he58bf080044a84430ae1c50aae77072ba3e8bc1dc7ad4f8576f39e74324cd486", "signature": "bool Switch(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "extension", "id": "extension|TabBar|0|0|bool|UiText id;ReadOnlySpan\u003CTabBarItem\u003E items;ref int selected;TabBarOpts o = default||h3b532a1edd39eaf1a6db4278f4c3c26674c9a67777ba72dd890ca8c67ecbb0d8", "signature": "bool TabBar(UiText id, ReadOnlySpan\u003CTabBarItem\u003E items, ref int selected, TabBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTabBarItem\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TabBarOpts", "default": "default" }], "summary": "cui_tab_bar_ex" }, { "name": "TableRow", "kind": "extension", "id": "extension|TableRow|0|0|bool|bool selected||h5862a1074065231ee67e616f36b6ef2708e5a53d06e9c647dfc4e50f9f54feb9", "signature": "bool TableRow(bool selected)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "selected", "type": "bool" }], "summary": "Begin a row. Returns true when the row is clicked." }, { "name": "Tabs", "kind": "extension", "id": "extension|Tabs|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;TabsOpts o = default||h44602f1d285b43ccb2a4a3f04fc10eeb9824d034d9c4786918ec03417b25d800", "signature": "bool Tabs(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, TabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "TabsOpts", "default": "default" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|0|0|bool|UiText id;ref string value;TagOpts o = default||h7d78f96fc27b022e7ce11dd6a4742470284f57dc2e17866e76fb8b61780bf9f0", "signature": "bool TagInput(UiText id, ref string value, TagOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "TagOpts", "default": "default" }], "summary": "Comma-separated tags in one field; enter or comma adds, backspace removes." }, { "name": "ThemeSwitcher", "kind": "extension", "id": "extension|ThemeSwitcher|0|0|bool|ref int mode;bool withSystem||h6ac2911103fa89f29df34fe5abd3737f62b03fad01ac2c5f7ce9f96f81466e7b", "signature": "bool ThemeSwitcher(ref int mode, bool withSystem)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "bool" }], "summary": "Theme switcher: light, dark and (optionally) system, as a compact icon segmented control. mode is 0 light, 1 dark, 2 system. Light and dark are applied for you; for system call cui_set_theme with the OS setting. Returns true when mode changed." }, { "name": "ThemeToggle", "kind": "extension", "id": "extension|ThemeToggle|0|0|bool|||hac003993a346e758ec03a7b5cae2fbd886929a7ae077d9f9459a78e6cb9e9028", "signature": "bool ThemeToggle()", "extensionOn": "CuiSharp.Ui", "summary": "Sun and moon icon button that toggles the theme with a morph." }, { "name": "TimeDial", "kind": "extension", "id": "extension|TimeDial|0|0|bool|UiText id;ref int hour;ref int minute;float size||hc81f9c9c6cda6a218a1a97579124c3a6415d5a3bec246c2545e9638a3cbefadc", "signature": "bool TimeDial(UiText id, ref int hour, ref int minute, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "Time dial: a clock face. Drag the hand to set hours, then minutes." }, { "name": "TimePicker", "kind": "extension", "id": "extension|TimePicker|0|0|bool|UiText id;ref int hour;ref int minute;TimeOpts o = default||h2f5e91438efc0191e949769048849a3fb8bb629993aef37fa50790655d5a16e2", "signature": "bool TimePicker(UiText id, ref int hour, ref int minute, TimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "o", "type": "TimeOpts", "default": "default" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "extension", "id": "extension|ToastActionClicked|0|0|bool|int handle||h80802ec80123dda69208be2582b05ccc3d887063aa242cdb0a7d5f946417cce1", "signature": "bool ToastActionClicked(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E labels;Span\u003Cbool\u003E values;ToggleGroupOpts o = default||hbf4630396185f73a4900042d74fe62f684385217a55457d20067677982015437", "signature": "bool ToggleGroup(UiText id, ReadOnlySpan\u003Cstring\u003E labels, Span\u003Cbool\u003E values, ToggleGroupOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "labels", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "values", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "ToggleGroupOpts", "default": "default" }], "summary": "A row of toggle buttons sharing one bool per label. Independent by default; Exclusive makes them behave like radio buttons. Returns true on the frame an entry flips." }, { "name": "ToolbarButton", "kind": "extension", "id": "extension|ToolbarButton|0|0|bool|UiText icon;ref bool toggle;ToolOpts o = default||h280488daf404cebc0318d20c1e09b3000ff82103111371b7fdf8c2735fe2c970", "signature": "bool ToolbarButton(UiText icon, ref bool toggle, ToolOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "toggle", "type": "ref bool" }, { "name": "o", "type": "ToolOpts", "default": "default" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeCell", "kind": "extension", "id": "extension|TreeCell|0|0|bool|UiText label;int depth;bool hasChildren;ref bool open;UiText icon||h7d87cfa9d747ede3646c93ffc4296bb6d158f59a36670c943b38b8891f9a08bd", "signature": "bool TreeCell(UiText label, int depth, bool hasChildren, ref bool open, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "bool" }, { "name": "open", "type": "ref bool" }, { "name": "icon", "type": "UiText" }], "summary": "Tree cell: indentation, a disclosure chevron and a label, for tree tables (use it in a table or grid cell). Returns true when *open toggled." }, { "name": "TreeClicked", "kind": "extension", "id": "extension|TreeClicked|0|0|bool|||he0d6c1a473304bfa16c30035268639d026f37ddeade6a53e36b6a43056ea0039", "signature": "bool TreeClicked()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "extension", "id": "extension|Typewriter|0|0|bool|UiText id;UiText text;TextFxOpts o = default||hd2793d1d9701d6e1c2de232ed4163f8a0a17de8606e1a0c00033798e26804d7b", "signature": "bool Typewriter(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Types the text out. When the text grows (streamed tokens) it carries on from where it was; other changes start over. Returns true once complete." }, { "name": "VoiceOrb", "kind": "extension", "id": "extension|VoiceOrb|0|0|bool|UiText id;VoiceState state;float level;VoiceOrbOpts o = default||h55678c858554bd6ffbc3fbad4b03aeb90fff9d582a2dad8b10090a9496cf7d41", "signature": "bool VoiceOrb(UiText id, VoiceState state, float level, VoiceOrbOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "o", "type": "VoiceOrbOpts", "default": "default" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "property", "id": "property|WantsKeyboard|0|0|bool||get;|h9fd1d2033ea34ec49759c84f9a199c15d92ad7e28a6a1a4cc3ebee535bec764b", "signature": "bool WantsKeyboard { get; }" }, { "name": "WantsMouse", "kind": "property", "id": "property|WantsMouse|0|0|bool||get;|h88ad7771300bfdd824d0527cc05ab2978f5a741b34494adb9660c29ae0fd53b7", "signature": "bool WantsMouse { get; }", "summary": "True when the pointer is over this window and the UI wants it." }, { "name": "Waveform", "kind": "extension", "id": "extension|Waveform|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E peaks;ref float progress;WaveformOpts o = default||h82b5eb85d1dd0e891471303dae6af8ef45f993a4522c265b5380640be5f95a34", "signature": "bool Waveform(UiText id, ReadOnlySpan\u003Cfloat\u003E peaks, ref float progress, WaveformOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "peaks", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "progress", "type": "ref float" }, { "name": "o", "type": "WaveformOpts", "default": "default" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "extension", "id": "extension|WheelPicker|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;WheelOpts o = default||h6e20c98f3670a089db93c4a37a910bd23a7f6b3a8ad5c2cd67e1294d58a2fae4", "signature": "bool WheelPicker(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, WheelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "WheelOpts", "default": "default" }], "summary": "cui_wheel_picker_ex" }, { "name": "Time", "kind": "property", "id": "property|Time|0|0|double||get;|h59d804a6c66b43aad6ffe38fb8d686d405da1f1e73a127a3af738e7ba55df397", "signature": "double Time { get; }", "summary": "Seconds since the app started. Monotonic; use it for animation phases." }, { "name": "Animate", "kind": "method", "id": "method|Animate|0|0|float|UiText id;float target||h6aa8f80b2f784f8d21be090f3514e71ea8c5c9e820fb1fc041073b0956552fa8", "signature": "float Animate(UiText id, float target)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }], "summary": "Moves a value toward target with a spring, keyed by id." }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|0|0|float|UiText id;float target;float duration;float bounce||h18961b791dced18013209a15d6f4c3ea989233c2d507d6986cf80ff8eea91b47", "signature": "float AnimateSpring(UiText id, float target, float duration, float bounce)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "Moves a value toward target with a spring of the given duration and bounce." }, { "name": "DeltaTime", "kind": "property", "id": "property|DeltaTime|0|0|float||get;|h9b38e45e1e2ffd64837bd659bc02203c5bcd38701ca6046589022c3424ef1a09", "signature": "float DeltaTime { get; }", "summary": "Seconds since the previous frame, clamped by the host." }, { "name": "DpiScale", "kind": "property", "id": "property|DpiScale|0|0|float||get;|hd6fea6745004ce2bacbb8eac54eebd74e77705ff2605b31ccb4a18c241ebb063", "signature": "float DpiScale { get; }", "summary": "Device pixels per logical point for the window this frame draws into." }, { "name": "ActivityRings", "kind": "extension", "id": "extension|ActivityRings|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E rings;RingsOpts o = default||he739303ba236c8b2947fe3ee08443b09f019e41b8acac0f7da681d197ae0307e", "signature": "int ActivityRings(UiText id, ReadOnlySpan\u003CVizItem\u003E rings, RingsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rings", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "RingsOpts", "default": "default" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "extension", "id": "extension|AgentPlan|0|0|int|UiText id;ReadOnlySpan\u003CPlanStep\u003E steps;AgentPlanOpts o = default||h6067d2501a7a26bcccda0db7d672b245a2fcff12d68ede6c491d265a45d1b4b9", "signature": "int AgentPlan(UiText id, ReadOnlySpan\u003CPlanStep\u003E steps, AgentPlanOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CPlanStep\u003E" }, { "name": "o", "type": "AgentPlanOpts", "default": "default" }], "summary": "cui_agent_plan_ex" }, { "name": "AvatarUpload", "kind": "extension", "id": "extension|AvatarUpload|0|0|int|UiText id;UiText name;ref ulong image;float size||h2032bcd7f55566afffa2cde5d86987aa5b1a36719844c8d755d13b19b16255bb", "signature": "int AvatarUpload(UiText id, UiText name, ref ulong image, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "Avatar upload: a round avatar that takes a dropped image, with a camera badge on hover. Returns 1 when *image changed, -1 when clicked (browse), 0 otherwise. A dropped image is loaded with cui_image_load." }, { "name": "BarList", "kind": "extension", "id": "extension|BarList|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;BarListOpts o = default||h0e2abad96db38540b47d6c74f2cc68369ed40c046f6bf6c2d2dea3c10d465680", "signature": "int BarList(UiText id, ReadOnlySpan\u003CVizItem\u003E items, BarListOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "BarListOpts", "default": "default" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "extension", "id": "extension|Breadcrumb|0|0|int|ReadOnlySpan\u003Cstring\u003E items||h7e5435f64395bbaf15f18d4923a996c88ca3bd79318405fd33733751c65e8682", "signature": "int Breadcrumb(ReadOnlySpan\u003Cstring\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "extension", "id": "extension|CalendarHeatmap|0|0|int|UiText id;Date start;ReadOnlySpan\u003Cfloat\u003E values;CalendarHeatmapOpts o = default||hdf61b9c82e018ac6c9a5f0797950a2a53c4826b47594dd073d18121a1691e796", "signature": "int CalendarHeatmap(UiText id, Date start, ReadOnlySpan\u003Cfloat\u003E values, CalendarHeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "Date" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "CalendarHeatmapOpts", "default": "default" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "extension", "id": "extension|Candlestick|0|0|int|UiText id;ReadOnlySpan\u003CCandle\u003E candles;CandlestickOpts o = default||hdab8fd71be859d6cc56de05a9e2feb81a2532c176230e766fa2ba67fa5260e3c", "signature": "int Candlestick(UiText id, ReadOnlySpan\u003CCandle\u003E candles, CandlestickOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "candles", "type": "ReadOnlySpan\u003CCandle\u003E" }, { "name": "o", "type": "CandlestickOpts", "default": "default" }], "summary": "Returns the candle under the crosshair (pointer or keys), or -1." }, { "name": "CardStack", "kind": "extension", "id": "extension|CardStack|0|0|int|UiText id;int count;DrawFn body;CardStackOpts o = default||h2dadbccb1e5391a98cfda3530cd5b460c17e79dd01b6927d2346f58287b56332", "signature": "int CardStack(UiText id, int count, DrawFn body, CardStackOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CardStackOpts", "default": "default" }], "summary": "cui_card_stack_begin The end call reports which card in the stack is active, or -1, so the body overload returns it." }, { "name": "Checklist", "kind": "extension", "id": "extension|Checklist|0|0|int|UiText id;ReadOnlySpan\u003CCheckStep\u003E steps;ChecklistOpts o = default||hb1cdf5bee54759618ba4c2e6386ab30794ff911948e833f0610afb911e63f554", "signature": "int Checklist(UiText id, ReadOnlySpan\u003CCheckStep\u003E steps, ChecklistOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CCheckStep\u003E" }, { "name": "o", "type": "ChecklistOpts", "default": "default" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "extension", "id": "extension|CommandPalette|0|0|int|ref bool open;ReadOnlySpan\u003CCommand\u003E commands||h001b59aa0ea6df8a0ea3d57d57bc1d6c25690db136f11ce1d794c93d9c7bbfc3", "signature": "int CommandPalette(ref bool open, ReadOnlySpan\u003CCommand\u003E commands)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "open", "type": "ref bool" }, { "name": "commands", "type": "ReadOnlySpan\u003CCommand\u003E" }], "summary": "Spotlight style command palette. Returns the index of the chosen command, or -1. Open it with a shortcut: if (cui_shortcut(ui, CUI_MOD_PRIMARY, CUI_KEY_K)) open = true;" }, { "name": "DiffRows", "kind": "extension", "id": "extension|DiffRows|0|0|int|UiText id;Span\u003CDiffRow\u003E rows;int first = default||h5c94a97ef7958912de5bdb07673a9402664eef62f0238701e95229d154b6ac95", "signature": "int DiffRows(UiText id, Span\u003CDiffRow\u003E rows, int first = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rows", "type": "Span\u003CDiffRow\u003E" }, { "name": "first", "type": "int", "default": "default" }], "summary": "Copies up to rows.Length of the diff view\u0027s rows into rows, starting at row first." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the window is tracking as dropped; a dropzone reports them first." }, { "name": "Dropzone", "kind": "extension", "id": "extension|Dropzone|0|0|int|UiText id;DropzoneOpts o = default||h1a4c314252379bc356942c2d624bf8dc2388e096a816cda96c08748d80f874cf", "signature": "int Dropzone(UiText id, DropzoneOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DropzoneOpts", "default": "default" }], "summary": "cui_dropzone_ex" }, { "name": "Funnel", "kind": "extension", "id": "extension|Funnel|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E stages;FunnelOpts o = default||he5202d3e37c12c123db9bc8dddaf33f25d6ee0d1790d21a12846d2233ba2f5e4", "signature": "int Funnel(UiText id, ReadOnlySpan\u003CVizItem\u003E stages, FunnelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "FunnelOpts", "default": "default" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "extension", "id": "extension|Gantt|0|0|int|UiText id;Span\u003CGanttTask\u003E tasks;Date origin;int days;GanttOpts o = default||h6405eb5f36078bd6c78b652a408e39c0fdb1c3a89355a3c7e0368f5d2306981a", "signature": "int Gantt(UiText id, Span\u003CGanttTask\u003E tasks, Date origin, int days, GanttOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tasks", "type": "Span\u003CGanttTask\u003E" }, { "name": "origin", "type": "Date" }, { "name": "days", "type": "int" }, { "name": "o", "type": "GanttOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Heatmap", "kind": "extension", "id": "extension|Heatmap|0|0|int|UiText id;ReadOnlySpan\u003Cfloat\u003E values;int rows;int cols;HeatmapOpts o = default||hb23a8befed5cb93e645e80d3a23d15bd4f06bdbf22a6f65815edb1bef4129225", "signature": "int Heatmap(UiText id, ReadOnlySpan\u003Cfloat\u003E values, int rows, int cols, HeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "o", "type": "HeatmapOpts", "default": "default" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "extension", "id": "extension|InlineEdit|0|0|int|UiText id;ref string buf;int cap = 256;InlineEditOpts o = default||hdc2fcc11f00fc875b370e784540495eec9451da64bf16b076e0bf19bfc7c475a", "signature": "int InlineEdit(UiText id, ref string buf, int cap = 256, InlineEditOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int", "default": "256" }, { "name": "o", "type": "InlineEditOpts", "default": "default" }], "summary": "cui_inline_edit_ex" }, { "name": "PasswordStrength", "kind": "extension", "id": "extension|PasswordStrength|0|0|int|UiText password||h485b27b320ae208ea07b64ec8e1f317ab018ad6465c8ddb02cd01a4424689adb", "signature": "int PasswordStrength(UiText password)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "password", "type": "UiText" }], "summary": "Password strength meter (0 weak .. 4 strong). Returns the score." }, { "name": "PromptSuggestions", "kind": "extension", "id": "extension|PromptSuggestions|0|0|int|UiText id;ReadOnlySpan\u003CPromptSuggestion\u003E items;PromptSuggestionsOpts o = default||ha7ba62105e302f4fa64dd30bf005d6217ab47f44b8de4dcb382d55bb8686de65", "signature": "int PromptSuggestions(UiText id, ReadOnlySpan\u003CPromptSuggestion\u003E items, PromptSuggestionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CPromptSuggestion\u003E" }, { "name": "o", "type": "PromptSuggestionsOpts", "default": "default" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "extension", "id": "extension|RadarChart|0|0|int|UiText id;ReadOnlySpan\u003CSeries\u003E series;ReadOnlySpan\u003Cstring\u003E axes;RadarOpts o = default||hc3ad2df41c9c6b26dc90f3b916ae531651d598ceef8ab541dd035331b9ea768a", "signature": "int RadarChart(UiText id, ReadOnlySpan\u003CSeries\u003E series, ReadOnlySpan\u003Cstring\u003E axes, RadarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CSeries\u003E" }, { "name": "axes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "RadarOpts", "default": "default" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "extension", "id": "extension|Reactions|0|0|int|UiText id;Span\u003CReaction\u003E items||h7528193af8d452456269a4867874808d1a14d9b9b10f82f0f851537b4f5fcc31", "signature": "int Reactions(UiText id, Span\u003CReaction\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "Span\u003CReaction\u003E" }], "summary": "cui_reactions" }, { "name": "Sankey", "kind": "extension", "id": "extension|Sankey|0|0|int|UiText id;ReadOnlySpan\u003Cstring\u003E nodes;ReadOnlySpan\u003CSankeyLink\u003E links;SankeyOpts o = default||h54e60f881596c8425c36f81063bcf3bca0ae525a5cb9acb9d9291c93343d590b", "signature": "int Sankey(UiText id, ReadOnlySpan\u003Cstring\u003E nodes, ReadOnlySpan\u003CSankeyLink\u003E links, SankeyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "links", "type": "ReadOnlySpan\u003CSankeyLink\u003E" }, { "name": "o", "type": "SankeyOpts", "default": "default" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "extension", "id": "extension|ScatterChart|0|0|int|UiText id;ReadOnlySpan\u003CScatterSeries\u003E series;ScatterOpts o = default||hff3593e05140bd9fcdc8f3c4f996ca064ecb18c59024984a51431c04b86145eb", "signature": "int ScatterChart(UiText id, ReadOnlySpan\u003CScatterSeries\u003E series, ScatterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CScatterSeries\u003E" }, { "name": "o", "type": "ScatterOpts", "default": "default" }], "summary": "cui_scatter_chart_ex" }, { "name": "SourceList", "kind": "extension", "id": "extension|SourceList|0|0|int|UiText id;ReadOnlySpan\u003CSource\u003E sources||h6f59cfee8fa72dc7eca177af354e0a6f666d1ec1975ff987f31f00841dd57a41", "signature": "int SourceList(UiText id, ReadOnlySpan\u003CSource\u003E sources)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "sources", "type": "ReadOnlySpan\u003CSource\u003E" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "extension", "id": "extension|SpeedDial|0|0|int|UiText id;ReadOnlySpan\u003CSpeedAction\u003E actions;SpeedDialOpts o = default||h8f3dcc4f3e218426dd87000bfe603cd7a2a64cc3cdaa021cbc2dea064de87347", "signature": "int SpeedDial(UiText id, ReadOnlySpan\u003CSpeedAction\u003E actions, SpeedDialOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "actions", "type": "ReadOnlySpan\u003CSpeedAction\u003E" }, { "name": "o", "type": "SpeedDialOpts", "default": "default" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "extension", "id": "extension|SplitBar|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;SplitBarOpts o = default||h16bc37b28b54a3959b1ffffa5d212e2ce5767fa384b82e9693cfc0cf3ecba083", "signature": "int SplitBar(UiText id, ReadOnlySpan\u003CVizItem\u003E items, SplitBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "SplitBarOpts", "default": "default" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "extension", "id": "extension|SplitButton|0|0|int|UiText label;ReadOnlySpan\u003Cstring\u003E items;SplitButtonOpts o = default||hab5170280449718e8bb4e18299a9939e8c4585d7f457498a1884dce52f1a5b83", "signature": "int SplitButton(UiText label, ReadOnlySpan\u003Cstring\u003E items, SplitButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "SplitButtonOpts", "default": "default" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItem", "kind": "extension", "id": "extension|SwipeItem|0|0|int|UiText id;ReadOnlySpan\u003CSwipeAction\u003E left;ReadOnlySpan\u003CSwipeAction\u003E right;DrawFn body||hde404a799a1b468b7df4ac9ce65a247c02d83d6788917c5eb60378cb5ebf709d", "signature": "int SwipeItem(UiText id, ReadOnlySpan\u003CSwipeAction\u003E left, ReadOnlySpan\u003CSwipeAction\u003E right, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "left", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "right", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_swipe_item_begin The end call reports which swipe action was taken, or -1, so the body overload returns it." }, { "name": "Toast", "kind": "extension", "id": "extension|Toast|0|0|int|UiText title;ToastOpts o = default||hf3201662ddfe1d84b58e5851658ccd1e36ba6d53acdb101b80df283a2f0ee264", "signature": "int Toast(UiText title, ToastOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ToastOpts", "default": "default" }], "summary": "Queue a toast. Returns a handle; cui_toast_action_clicked(handle) tells whether its action button was pressed." }, { "name": "Toc", "kind": "extension", "id": "extension|Toc|0|0|int|UiText scrollId;ReadOnlySpan\u003CTocItem\u003E items||h226d5cf4f0b7b58f3c7df69b1762d483d977d46968c43d4468a7db886e3771f0", "signature": "int Toc(UiText scrollId, ReadOnlySpan\u003CTocItem\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTocItem\u003E" }], "summary": "cui_toc" }, { "name": "TreeTableDepth", "kind": "extension", "id": "extension|TreeTableDepth|0|0|int|||h6f4316e2e33c3ebb9b14932b5fc588d50a9b4b5b52a70f672523341f85c34b6b", "signature": "int TreeTableDepth()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "extension", "id": "extension|TreeTableRow|0|0|int|||h6f0d82997cbd7dfd529bd1d04c7fd279173e864794b9acde1a6f8cf0deb80e45", "signature": "int TreeTableRow()", "extensionOn": "CuiSharp.Ui", "summary": "The next row in view: returns its node, or -1 when done. Then build its cells: cui_tree_table_name first, then cui_data_grid_cell(_text)." }, { "name": "Treemap", "kind": "extension", "id": "extension|Treemap|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;TreemapOpts o = default||hea14dd60cbeb36d78c486e9549f6917d7d431d80c23f54fe86c191e4e647a6e4", "signature": "int Treemap(UiText id, ReadOnlySpan\u003CVizItem\u003E items, TreemapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "TreemapOpts", "default": "default" }], "summary": "cui_treemap_ex" }, { "name": "Waffle", "kind": "extension", "id": "extension|Waffle|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;WaffleOpts o = default||hbb9c8a5b82ec5547e3c36f001de128742bbee117c0a3da39be26ed99600e3617", "signature": "int Waffle(UiText id, ReadOnlySpan\u003CVizItem\u003E items, WaffleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "WaffleOpts", "default": "default" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "extension", "id": "extension|WeekCalendar|0|0|int|UiText id;Date weekStart;Span\u003CCalendarEvent\u003E events;WeekOpts o = default||h6ebe88be9f390e98d2c4c1e3f796e62f09b23309fe4f21093ce3e1e506653fc9", "signature": "int WeekCalendar(UiText id, Date weekStart, Span\u003CCalendarEvent\u003E events, WeekOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "weekStart", "type": "Date" }, { "name": "events", "type": "Span\u003CCalendarEvent\u003E" }, { "name": "o", "type": "WeekOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|int?|UiText id;ReadOnlySpan\u003Cstring\u003E items;int value;SegmentedOpts o = default||hfb54a79c3ab77ad5f8295229f391ceafab348451a898c9a700f5adccce24a7a9", "signature": "int? Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, int value, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "value", "type": "int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "Returns the chosen index on a change, otherwise null." }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|string|Accent accent||h0e37f10433228fc19b1442b10a947b92a35e4c1252d1688e2237e77f9c961f50", "signature": "static string AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "The name of an accent as the UI shows it: \u0022Violet\u0022." }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|string|Key key||ha31820aa00db9a4c2b6c84c51b79eb08b079cecb712605806d2763204d3f8fc8", "signature": "static string KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "The name of a key as the UI shows it: A, Space, F5." }, { "name": "CronDescribe", "kind": "extension", "id": "extension|CronDescribe|0|0|string?|UiText cron||hd4c9ada55bcf91c1c683541837ecf35a841f847a3eee89aabbb26c529db1cd47", "signature": "string? CronDescribe(UiText cron)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cron", "type": "UiText" }], "summary": "\u0022Every weekday at 09:30\u0022, in frame memory; NULL when invalid." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "EmojiPicker", "kind": "extension", "id": "extension|EmojiPicker|0|0|string?|UiText id;ref string recent;ref int tone;EmojiPickerOpts o = default||h15890f303b9bfcb523f735ab2f9e6844938b14c17122927fe58f4714c2d1577c", "signature": "string? EmojiPicker(UiText id, ref string recent, ref int tone, EmojiPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "recent", "type": "ref string" }, { "name": "tone", "type": "ref int" }, { "name": "o", "type": "EmojiPickerOpts", "default": "default" }], "summary": "cui_emoji_picker_ex" }, { "name": "ShortcutLabel", "kind": "extension", "id": "extension|ShortcutLabel|0|0|string?|KeyCombo combo||hbc2b6ede54efc1cdfc932533bfaa02df6e2091b08013ed268adaeb5f70fe77fd", "signature": "string? ShortcutLabel(KeyCombo combo)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "combo", "type": "KeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "LastId", "kind": "property", "id": "property|LastId|0|0|uint||get;|hb45a60a2627c7935e56a964ff3d4b23b89b21d8a180962ea221f54c95e1e68d2", "signature": "uint LastId { get; }", "summary": "The id of the widget drawn last, which is what Target and the other \u0022point at this\u0022 APIs take. Read it immediately after the control." }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|0|0|uint|UiText id||hf729d2c0f406a6b883b2cbb0e869941e897aaaef891e76b22daa8e479857208d", "signature": "uint MakeId(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "A stable cui_id for a string, for Animate and State callers." }, { "name": "CreateImage", "kind": "method", "id": "method|CreateImage|0|0|ulong|int width;int height;ReadOnlySpan\u003Cbyte\u003E rgba||h5ee4689276531d64da132f6a1cc9e229a83100259c335ca4ab5a007c20a68ce7", "signature": "ulong CreateImage(int width, int height, ReadOnlySpan\u003Cbyte\u003E rgba)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Uploads RGBA8 pixels as a texture. The pixels are copied, so the span may live on the stack. Release the handle with DestroyImage when the page that shows it is done with it \u2014 State\u0060\u00601 with an onFree callback is the usual owner." }, { "name": "DockSave", "kind": "extension", "id": "extension|DockSave|0|0|ulong|UiText id;ref string buf;int cap||h10c71156edbbe3c5e529016814c796584f469d6d0b0b7466e4bde6ba2b0893b4", "signature": "ulong DockSave(UiText id, ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Saved layout: one line, e.g. dock1 h0.22([*Scene tree,Assets],v0.7([*Viewport],[*Log,-Console])) h splits side by side and v stacks, the number is the first child\u0027s share, [..] is a leaf\u0027s tabs in order, * the selected tab, - a closed panel; a backslash escapes , [ ] ( ) and itself in names. cui_dock_save returns the full length (as snprintf does) and writes what fits, or 0 when there is no layout. cui_dock_load replaces the layout (and sets each panel\u0027s *open from it on its next frame); names it does not know yet are kept for when they appear. Malformed text returns false and changes nothing." }, { "name": "FrameCount", "kind": "property", "id": "property|FrameCount|0|0|ulong||get;|h7254dceb0c426d20c644d45bf8a5ca3e9a444a54dee4128f0adcf9db4b00c8fc", "signature": "ulong FrameCount { get; }", "summary": "Frames presented so far, counted by CUI." }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|void|UiText title;ref bool open;DrawFn body||h5a6e18ec6c43cdc43af8a25085ec728fca441d6f03d65c135ac01415603bdc5b", "signature": "void Accordion(UiText title, ref bool open, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "AddFontFallback", "kind": "extension", "id": "extension|AddFontFallback|0|0|void|Font font;Font fallback||h046e79521dc69de86a794461399d269a9ea51fd36fd162afddde019ca45934e1", "signature": "void AddFontFallback(Font font, Font fallback)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "Adds a fallback CUI reaches for when font has no glyph. The chain holds at most four fallbacks; when it is exhausted CUI scans every other loaded face before giving up. A glyph no face has draws nothing at all \u2014 not even a .notdef box in every font \u2014 so an untranslated screen comes up blank with no warning. UseSystemFontFallback is the check for that, and the bundled faces are Latin. The glyph atlas is what a large script actually costs: one texture of CUI_ATLAS_MAX (4096) pixels per side, with the frame\u0027s glyph cache reset between frames, so a font that makes every frame load new glyphs is the expensive case. Register the faces a language needs at startup, not per frame." }, { "name": "AgentStatus", "kind": "extension", "id": "extension|AgentStatus|0|0|void|UiText text;AgentStatusOpts o = default||h61ac25149bb714e9244c62474d67f93158a7f9bd1583135da08e6b32a5ac5120", "signature": "void AgentStatus(UiText text, AgentStatusOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "AgentStatusOpts", "default": "default" }], "summary": "cui_agent_status_ex" }, { "name": "Avatar", "kind": "extension", "id": "extension|Avatar|0|0|void|UiText name;AvatarOpts o = default||h86ad06b6f35491ed7cd4f337c2a2688db37d73bfec4c164c7b90267365ce8af2", "signature": "void Avatar(UiText name, AvatarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "AvatarOpts", "default": "default" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "extension", "id": "extension|AvatarGroup|0|0|void|ReadOnlySpan\u003Cstring\u003E names;int maxVisible = 4;float size = 32f||h2aebe32a1e3101b42a18771fc77f1b10cb011e17bea49c9f7cbf01e0be5ca252", "signature": "void AvatarGroup(ReadOnlySpan\u003Cstring\u003E names, int maxVisible = 4, float size = 32f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "names", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "maxVisible", "type": "int", "default": "4" }, { "name": "size", "type": "float", "default": "32f" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "extension", "id": "extension|Badge|0|0|void|UiText text;BadgeOpts o = default||h2e146cbd498ce9ebfdcbb978fe8414bd9ff4389e1361c02fa453b24fcfc15d1c", "signature": "void Badge(UiText text, BadgeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "BadgeOpts", "default": "default" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||hdd24ad8679c5e482e048ed73ce69225b69c19ad5704a83f9a427093e4551242a", "signature": "void BarChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A bar chart of one series. See LineChart." }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||h8d42b4d0a483459731da6ec00c3001f0d1f69bd28a07b4618095e800910f67c7", "signature": "void BarChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|void|UiText id;int count;ref int index;DrawFn body;CarouselOpts o = default||haf6583b1edd10132a276ed92f3c7cc7b139b36644ab8586eadce1ce1ae7cf431", "signature": "void Carousel(UiText id, int count, ref int index, DrawFn body, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ChatDivider", "kind": "extension", "id": "extension|ChatDivider|0|0|void|UiText label||hdb17d96dbafb815bdf9d77a06116d1a2d004dbf0c4190716f604d7f7503032a5", "signature": "void ChatDivider(UiText label)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ChatOpts o = default||h0067e7f3c9a991c64026e5433bcd84d614a634bb99011d70cf7548c49b4d0e46", "signature": "void ChatMessage(UiText text, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "Same as the overload with ref markdownResult, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ref MarkdownResult markdownResult;ChatOpts o = default||he419f66e4261e2e5f8341890ace8476938bbabe2ce7747bb1cf378821e824da4", "signature": "void ChatMessage(UiText text, ref MarkdownResult markdownResult, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "markdownResult", "type": "ref MarkdownResult" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "extension", "id": "extension|Code|0|0|void|UiText text||heb5c95cf0725be5b6a3d5d064b904bf47fbe9b2889e74bd910d61b666764b439", "signature": "void Code(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "extension", "id": "extension|CodeBlock|0|0|void|UiText id;UiText code;CodeOpts o = default||h649344835854747b9cbde6157eb263d70a9df1f246e3854f21806fef682fedac", "signature": "void CodeBlock(UiText id, UiText code, CodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "code", "type": "UiText" }, { "name": "o", "type": "CodeOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "CodeEditorFind", "kind": "extension", "id": "extension|CodeEditorFind|0|0|void|UiText id;UiText query||ha5ad5e0daacc15247f7497756195d2f521b1676f4f4275c1360e7dd6a099a27e", "signature": "void CodeEditorFind(UiText id, UiText query)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "query", "type": "UiText" }], "summary": "Opens the find bar with query and selects the next match (NULL closes)." }, { "name": "CodeEditorGoto", "kind": "extension", "id": "extension|CodeEditorGoto|0|0|void|UiText id;int line;int column||he046da323e1fb441003f0aff4a8b1fb21892920cc0d306e08811c4d4b477dfae", "signature": "void CodeEditorGoto(UiText id, int line, int column)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "On the editor\u0027s next frame: put the caret at a line and column (1 based), focus the editor and scroll there. Call from the same id scope." }, { "name": "CodeEditorSelect", "kind": "extension", "id": "extension|CodeEditorSelect|0|0|void|UiText id;int anchor;int cursor||hbae83fe5ce54e61f495c10224f17c5f97155815624a80c230f94b710bbd25bbc", "signature": "void CodeEditorSelect(UiText id, int anchor, int cursor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "On the next frame: select bytes anchor..cursor, focus and scroll there." }, { "name": "Component", "kind": "extension", "id": "extension|Component|0|0|void|Component component||h848740a50a9eb8dc56641315816144114376ac9c315542b20691de3cbc9300d4", "signature": "void Component(Component component)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "component", "type": "Component" }], "summary": "Draws component, with its own error boundary." }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|void|UiText id;DrawFn body||h639ca26a4859a28b5d0c68a17b414a22b59f92e32460ae828991807709b85741", "signature": "void ContextMenu(UiText id, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ContextMeter", "kind": "extension", "id": "extension|ContextMeter|0|0|void|UiText id;float used;float limit;ContextOpts o = default||h19d9530359d94af2f36c2f8a876d49576ae0e0c4c67e5270f45fdf36934d1c78", "signature": "void ContextMeter(UiText id, float used, float limit, ContextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "o", "type": "ContextOpts", "default": "default" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "extension", "id": "extension|Countdown|0|0|void|UiText id;double secondsLeft;CountdownOpts o = default||h821d564a1492fd931adfbbc43d4c182d207343abf289fdf0702df537f77d848a", "signature": "void Countdown(UiText id, double secondsLeft, CountdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "secondsLeft", "type": "double" }, { "name": "o", "type": "CountdownOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Counter", "kind": "extension", "id": "extension|Counter|0|0|void|UiText id;double value;CounterOpts o = default||h0b05971fdda28297316e6f4447ca5d501aa7a11fe9da2f3bdc3756e5b7c5ffd3", "signature": "void Counter(UiText id, double value, CounterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "double" }, { "name": "o", "type": "CounterOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|void|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;DrawFn body;GridOpts o = default||h9c456dfa1016ff4f42bd0014595270a05519919f42743036e5fc9f8cb8147c63", "signature": "void DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, DrawFn body, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Draws the body only when open; closes and publishes state even on exceptions." }, { "name": "DataGridCell", "kind": "extension", "id": "extension|DataGridCell|0|0|void|||h17266c47617cb3e20e5aafb4e0740fb451853300d3ea2f4cf357c27f4e0c97e5", "signature": "void DataGridCell()", "extensionOn": "CuiSharp.Ui", "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "extension", "id": "extension|DataGridCellText|0|0|void|UiText text||hbc15a57820d975503239bf1e6c43046de51dd25c53400b94dc05e4c5ec821c22", "signature": "void DataGridCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_data_grid_cell_text" }, { "name": "DestroyImage", "kind": "method", "id": "method|DestroyImage|0|0|void|ulong texture||h233513e5e0f04cab6a29321054080d17776d33b361cec53060f335038ac6c4f4", "signature": "void DestroyImage(ulong texture)", "parameters": [{ "name": "texture", "type": "ulong" }], "summary": "Frees a texture obtained from CreateImage, LoadImage or a widget that loaded one for you (the avatar upload). Passing 0 does nothing, so a field can be cleared and released in one step." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|void|UiText title;ref bool open;DrawFn body;DialogOpts o = default||hb9a2198e7b3396b3f8e81f53972b52816f4e10d0c965758cb0b8e59b20c0dad6", "signature": "void Dialog(UiText title, ref bool open, DrawFn body, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|void|UiText title;ref bool open;DrawFn body;DockPanelOpts o = default||haec3aec1f30c0641ff9d8d21ef9827c8984e582f195575f5bdafa8e30c26bf47", "signature": "void DockPanel(UiText title, ref bool open, DrawFn body, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockSeparator", "kind": "extension", "id": "extension|DockSeparator|0|0|void|||h4f7b4ffb27ff0752d3414c6e36155f014d64756d9c99299d0061f4d3b662e948", "signature": "void DockSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_dock_separator" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|0|0|void|UiText id;float[] values;string[]? labels = null;ChartOpts o = default||h105b6ba9a48212810ca8eaa543dfd59b8bcbb7a078d6d00c43caa8337cf3e984", "signature": "void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "float[]" }, { "name": "labels", "type": "string[]?", "default": "null" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|0|0|void|float cx;float cy;float radius;float fromRadians;float toRadians;float thickness;Color color||h75c08329ccf02db7c649c3de4062b857fcb9fb9b5607cc0cdc3ffa02cdd3a32a", "signature": "void DrawArc(float cx, float cy, float radius, float fromRadians, float toRadians, float thickness, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "fromRadians", "type": "float" }, { "name": "toRadians", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "An arc from fromRadians to toRadians." }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|0|0|void|float cx;float cy;float radius;Color color||hb1d4daba0313192a47661dfdcba2bbea774eacd066b6e992e4b4698dddcde09a", "signature": "void DrawCircle(float cx, float cy, float radius, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A filled circle." }, { "name": "DrawEmoji", "kind": "extension", "id": "extension|DrawEmoji|0|0|void|UiText utf8;RectF r||ha6979720ffa9f6b639eedcdc2f34912ae99c3e8f6db6d29d49b7a755626e5e61", "signature": "void DrawEmoji(UiText utf8, RectF r)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "r", "type": "RectF" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|0|0|void|UiText icon;RectF r;Color color;float size = 16f||hd54b671c520dcce41f616162ba2038b0604408edb2178e4e538b9fd737631621", "signature": "void DrawIcon(UiText icon, RectF r, Color color, float size = 16f)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "16f" }], "summary": "Draws an icon glyph into a rectangle." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;Color tint;float radius = default||h02908132cac945b65c579f6460fda70375b546d9df86cb8e4446b3d6369a8ad2", "signature": "void DrawImage(ulong texture, RectF destination, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws the whole texture into destination." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;RectF uv;Color tint;float radius = default||h19922f36165664b04b3f13745794f29cd576c87d690e38abfacd839c9eebe6ea", "signature": "void DrawImage(ulong texture, RectF destination, RectF uv, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "uv", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws a texture into destination, sampling uv in 0..1 texture coordinates." }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|0|0|void|float x0;float y0;float x1;float y1;float thickness;Color color||h7c718f3cf261fcdd9890ecc99c37b4c7ef88951855160bbd3b4b84bbb0906183", "signature": "void DrawLine(float x0, float y0, float x1, float y1, float thickness, Color color)", "parameters": [{ "name": "x0", "type": "float" }, { "name": "y0", "type": "float" }, { "name": "x1", "type": "float" }, { "name": "y1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A line between two points." }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;Color color||h0a35ee50b137930776943658c6a4b0a802340e6fc1443224120f511919b82309", "signature": "void DrawPolygon(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, Color color)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "color", "type": "Color" }], "summary": "A convex polygon through the given x/y pairs." }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;float thickness;Color color;bool closed = default||h4c7f07e3c9fc697e544cc98214f394946bae499ac03450d9e5812ced69ce04e9", "signature": "void DrawPolyline(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, float thickness, Color color, bool closed = default)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "closed", "type": "bool", "default": "default" }], "summary": "A polyline through the given x/y pairs." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;Color border;float borderWidth;float radius = default||h4ba9a89c0df1a36edef3bc858b12de8bb1c2d9020a801bc38d101b16e9839611", "signature": "void DrawRect(RectF r, Color fill, Color border, float borderWidth, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "border", "type": "Color" }, { "name": "borderWidth", "type": "float" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle and strokes its border." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;float radius = default||hbede7dc4a83173600f87c3151cfb881b786025c1a85bfc6cfd41ac9c76b997ec", "signature": "void DrawRect(RectF r, Color fill, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle." }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|0|0|void|RectF r;Color top;Color bottom;float radius = default||hdfb2b1697ea2ab6d38c629c2592cb4496e061c2c2d2d73080e90e315c179fa59", "signature": "void DrawRectGradient(RectF r, Color top, Color bottom, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "top", "type": "Color" }, { "name": "bottom", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle with a vertical gradient." }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|0|0|void|RectF r;Color color;float blur = 12f;float spread = default;float dx = default;float dy = 2f;float radius = default||hd608a1aa394a6724e278bdd79827b6dd27fa0b58389aad230a6976a37e6e1bc9", "signature": "void DrawShadow(RectF r, Color color, float blur = 12f, float spread = default, float dx = default, float dy = 2f, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "blur", "type": "float", "default": "12f" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "dx", "type": "float", "default": "default" }, { "name": "dy", "type": "float", "default": "2f" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "A soft drop shadow behind a rounded rectangle." }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|0|0|void|UiText text;float x;float y;Color color;float size = 12f;Font font = Font.Body||ha379555b96749e8089ccd4a67f9f06f0c97c8e3bf6628a829212e087cdf44073", "signature": "void DrawText(UiText text, float x, float y, Color color, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Draws text outside layout, from a string, UTF-8 bytes, or interpolation." }, { "name": "Emoji", "kind": "extension", "id": "extension|Emoji|0|0|void|UiText utf8;float size||hcce49478392e105a5082cf12fe2c18e8a68954f1395b48ec19c91052abdbfa90", "signature": "void Emoji(UiText utf8, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|void|UiText title;ref bool open;DrawFn body;ExpandableCardOpts o = default||h45a44cd40dda73a400ba664b3783303201ba3f221c6a0c0021b4519c21652a83", "signature": "void ExpandableCard(UiText title, ref bool open, DrawFn body, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Gap", "kind": "extension", "id": "extension|Gap|0|0|void|float size||h89c0f099b911f74a22d756328dc6f8c634ce4e2561cfb7403549af06bfe120d2", "signature": "void Gap(float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "extension", "id": "extension|Gauge|0|0|void|UiText label;float value;float size = 130f||h0d866db02a3773b1f94110de3177536a50289e2eb2f4f1328d5ea96164ce0e3d", "signature": "void Gauge(UiText label, float value, float size = 130f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "130f" }], "summary": "cui_gauge" }, { "name": "GradientText", "kind": "extension", "id": "extension|GradientText|0|0|void|UiText text;GradientTextOpts o = default||h3f77173db929d5d0326fb0d6aacd31968c768ec86de8e25973b46685c05898a0", "signature": "void GradientText(UiText text, GradientTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "GradientTextOpts", "default": "default" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "extension", "id": "extension|Heading|0|0|void|UiText text;int level = 2||h557aed71184ccf0f99a503a8e9e31f47bd8f19daa88deaf28acbf6bd2f58da8f", "signature": "void Heading(UiText text, int level = 2)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "level", "type": "int", "default": "2" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "extension", "id": "extension|HexViewGoto|0|0|void|UiText id;ulong offset||he99988413132b927d206b59bb10ff266913c4aed14642da49708324af5d3a4ea", "signature": "void HexViewGoto(UiText id, ulong offset)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "offset", "type": "ulong" }], "summary": "Go to offset: on the view\u0027s next frame its cursor moves to offset, that byte becomes the selection and it scrolls into view (to the middle when it was out of sight). Wire a \u0022Go to\u0022 field to it; it is safe to call every frame." }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|void|UiText id;DrawFn body;HoverCardOpts o = default||h1feb5df25fc90d51f65ce5d548e1c92a15c20d4dbcfb120ec57197031f6bf861", "signature": "void HoverCard(UiText id, DrawFn body, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Icon", "kind": "method", "id": "method|Icon|0|0|void|UiText icon;float size = 16f;Color color = default||ha3c2c3c378676921960172e72c0cd75e176f823d910f148819cb62c5c07fcdb7", "signature": "void Icon(UiText icon, float size = 16f, Color color = default)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "size", "type": "float", "default": "16f" }, { "name": "color", "type": "Color", "default": "default" }] }, { "name": "Image", "kind": "extension", "id": "extension|Image|0|0|void|ulong tex;ImageOpts o = default||h4aba4bdd877e6dfb8e45ba090aba9ec93a98e0c6441d125c9038d1be437dc417", "signature": "void Image(ulong tex, ImageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "tex", "type": "ulong" }, { "name": "o", "type": "ImageOpts", "default": "default" }], "summary": "cui_image_ex" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|void|UiText id;DrawFn body;InspectorOpts o = default||h841cdf7d1c9125bb04f373e4d2f93c10eccdb9bcbb43da0de7dccc3769b41a32", "signature": "void Inspector(UiText id, DrawFn body, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Kbd", "kind": "extension", "id": "extension|Kbd|0|0|void|UiText keys||h417076fb4869022dd26ff1c344a189d091fce7e448e96c96224d62f1a451f6d1", "signature": "void Kbd(UiText keys)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "keys", "type": "UiText" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Label", "kind": "extension", "id": "extension|Label|0|0|void|UiText text||h72e24445b52f829a1571cbd68c5c6fac6835700a497232df3ad518950a463221", "signature": "void Label(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||h3cdc2012853a1aaf00f86229fc128bb443d3b47540340bb22a37e12c48168603", "signature": "void LineChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A line chart of one series. This is the overload most charts want: the samples are passed directly, and an empty span draws nothing at all." }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||hc086d5dcd804a5f509ce75cc8bee9f3f8667a55ceb50af4ffaabadafd4609ad0", "signature": "void LineChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Loader", "kind": "extension", "id": "extension|Loader|0|0|void|LoaderOpts o = default||h5945e358ac0fbf3d0cb4c3df6db1ab5234d41a31263116b2fb63eee24b3e9451", "signature": "void Loader(LoaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "LoaderOpts", "default": "default" }], "summary": "cui_loader_ex" }, { "name": "LogView", "kind": "extension", "id": "extension|LogView|0|0|void|UiText id;LogBuffer log;LogViewOpts o = default||h629acfd43966ab117356ba793bd70ad6b9dfe93587dd289ab839a823556ecc7b", "signature": "void LogView(UiText id, LogBuffer log, LogViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "log", "type": "LogBuffer" }, { "name": "o", "type": "LogViewOpts", "default": "default" }], "summary": "Draws log with its toolbar: level filters, search with highlight, Follow, Copy and Clear. Scrolling up turns Follow off; reaching the bottom turns it back on." }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|void|UiText label;DrawFn body;MenuOpts o = default||h46a55ef5a629d54cea211e8cff97db0e260e3c390254e4a74263ef25c2b8fe9d", "signature": "void Menu(UiText label, DrawFn body, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|void|UiText label;DrawFn body;MenuBarMenuOpts o = default||h1b1bac394be04ea33333eee937841b7391a0fc642ea6951788ddb9eb4b199110", "signature": "void MenuBarMenu(UiText label, DrawFn body, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuLabel", "kind": "extension", "id": "extension|MenuLabel|0|0|void|UiText text||h55d6bbe5cef52bef1137dee2490a736200d78319bc81b81cdd5d2b7fbe16d2b6", "signature": "void MenuLabel(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "extension", "id": "extension|MenuSeparator|0|0|void|||h7babb70cb1540862bd8b5e000e173763dc48b627688082cf19bcc2e23c25ba73", "signature": "void MenuSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "extension", "id": "extension|Meter|0|0|void|UiText label;float used;float total;UiText unit = default||h1d8b4e728d051b711957aa7fbc9bcf832cd505900fdce01a27a79bdc8e9d89fa", "signature": "void Meter(UiText label, float used, float total, UiText unit = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "UiText", "default": "default" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "extension", "id": "extension|Metric|0|0|void|UiText label;UiText value;MetricOpts o = default||h9bab4a4dc12d3dace12e7106ac89323fdbfdf7c56bba9a0e2f0c40e9c95fbef6", "signature": "void Metric(UiText label, UiText value, MetricOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "UiText" }, { "name": "o", "type": "MetricOpts", "default": "default" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "extension", "id": "extension|Muted|0|0|void|UiText text||haf3dda321d9292f4d904d1870d8bb5dea3c49cb695524acb75572822bff2f9b8", "signature": "void Muted(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "extension", "id": "extension|NavSection|0|0|void|UiText title||hf901052c3e5ba17c7b523058746a19e11e181239069f2b8fbb43adfafdbdcafc", "signature": "void NavSection(UiText title)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }], "summary": "cui_nav_section" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|void|int nodeId;ref float x;ref float y;UiText title;DrawFn body;NodeOpts o = default||he2a131c3e341325536d7aaaafc4f83046a7d7e9c45eead6545f141826f6d7e82", "signature": "void Node(int nodeId, ref float x, ref float y, UiText title, DrawFn body, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|void|UiText id;ref NodeView view;DrawFn body;NodeEditorOpts o = default||h5854f9b818a6cafa92571b34f94f5f0c435142d546b6f628a1174b1effe7ac67", "signature": "void NodeEditor(UiText id, ref NodeView view, DrawFn body, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NumberRoll", "kind": "extension", "id": "extension|NumberRoll|0|0|void|UiText id;UiText text;TextFxOpts o = default||h67c63e017e57f215b45262ce043c429d9ff6e486e3c507e0c84f3d5daa53a5bf", "signature": "void NumberRoll(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "A figure whose changed digits roll into place: up when the value rises, down when it falls, a beat apart from the left; unchanged characters stay still. Pass the formatted text (\u0022$64,210\u0022, \u00221.2k\u0022); digits are tabular." }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|void|UiText id;ref int segment;DrawFn body||h875759cac9f5832bcb6782caaa672db98fbc277a19f31017d3155a38c398dce5", "signature": "void PathBarMenu(UiText id, ref int segment, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|0|0|void|||hd223700ffd7f730814c69ec5bd11dae3b4dd4a7a738e754b775a351e0c980575", "signature": "void PopClip()", "summary": "Ends the clip opened by PushClip." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|void|UiText id;DrawFn body;PopoverOpts o = default||h597b85fb0e87089ca73543226f68a70b713ea0f9c949974f2c0425c7028438f3", "signature": "void Popover(UiText id, DrawFn body, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopoverClose", "kind": "extension", "id": "extension|PopoverClose|0|0|void|UiText id||hca913fedac00c0c27ef6b37fb3f90cb88cd76862d0e5884e8f4e8dac8ba415b3", "signature": "void PopoverClose(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_close" }, { "name": "PopoverOpen", "kind": "extension", "id": "extension|PopoverOpen|0|0|void|UiText id||h424af0f304196b1a039d033eb75b4bff9dca251d0232dbc683699a925dfaa16d", "signature": "void PopoverOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "extension", "id": "extension|PopoverToggle|0|0|void|UiText id||h58628645f47f2c9c2896b1ec70e7d661c861b7abb26420d9b750e21380db5e02", "signature": "void PopoverToggle(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "extension", "id": "extension|Presence|0|0|void|UiText id;ReadOnlySpan\u003CPresenceUser\u003E users;int maxVisible;float size||h33db1325c05049463f7c9a97e3df833a114732c8a156f6ee2d775dad7a69c214", "signature": "void Presence(UiText id, ReadOnlySpan\u003CPresenceUser\u003E users, int maxVisible, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "users", "type": "ReadOnlySpan\u003CPresenceUser\u003E" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "extension", "id": "extension|Progress|0|0|void|float value;ProgressOpts o = default||h811e97c08fde2498427fc6a279e22a1c2ea3bc1ce69c3d642c73832f10623d4d", "signature": "void Progress(float value, ProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "ProgressOpts", "default": "default" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "extension", "id": "extension|ProgressRing|0|0|void|UiText label;float value;float size = 104f||h2e30430280ecfbc1925c0164f0bb59a54da3003b073ef1535c6cb3c2d4e8e057", "signature": "void ProgressRing(UiText label, float value, float size = 104f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "104f" }], "summary": "Circular progress with the value in the middle." }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|0|0|void|RectF r||h95bac6dcebf24b24b986a596422f965edfee8cd616663a1e59d0da09a9bd3efb", "signature": "void PushClip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle. Pair with PopClip." }, { "name": "RadialGauge", "kind": "extension", "id": "extension|RadialGauge|0|0|void|UiText id;float value;float min;float max;RadialGaugeOpts o = default||h69d72defa0179e7173e927724367a4bb9575a2e75bbd9949225f9eab886c2992", "signature": "void RadialGauge(UiText id, float value, float min, float max, RadialGaugeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RadialGaugeOpts", "default": "default" }], "summary": "cui_radial_gauge_ex" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|void|UiText id;DrawFn body;ReasoningOpts o = default||h892c50fc79e75386733c9149e18f72832dbdccb2d31c29b39a76a16ea185386e", "signature": "void Reasoning(UiText id, DrawFn body, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|0|0|void|UiText id;int[] order||hb312c00b771ad378a0324c96198659487c28a3c21c9d71a96e3f595957ffe21f", "signature": "void ReorderBegin(UiText id, int[] order)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "order", "type": "int[]" }] }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|0|0|void|||h4986f5ad7c5201d2830f1dee1e374ca29980fe9c408b3ef833336aabba3ed66c", "signature": "void RequestRedraw()", "summary": "Requests another frame; call only from the synchronous draw path." }, { "name": "RequestWakeup", "kind": "extension", "id": "extension|RequestWakeup|0|0|void|float seconds||h1e8d82035be8a5e226207bb6bd0874265dba29cf4b6a4779f60b95ab7cc567f7", "signature": "void RequestWakeup(float seconds)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "seconds", "type": "float" }], "summary": "Asks for one more frame after seconds, even when nothing else would wake the window. Use it for a timer, a toast timeout or a poll interval." }, { "name": "ResponseStatus", "kind": "extension", "id": "extension|ResponseStatus|0|0|void|int status;double seconds;double bytes||h63e7c9d5181d7379043415c904edf88e89db4e9781c0577d221801f58399a1cf", "signature": "void ResponseStatus(int status, double seconds, double bytes)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollTo", "kind": "extension", "id": "extension|ScrollTo|0|0|void|UiText scrollId;float y||h795b4245740f616fce2565ac40d5ea6dfa995143af81eedbc7067db0b0f1e7c0", "signature": "void ScrollTo(UiText scrollId, float y)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "extension", "id": "extension|Secondary|0|0|void|UiText text||h4f32c253f11a19b26ceb397d205e5e2d5c6c8e5db01a0ef2e8984e0a2c78ef46", "signature": "void Secondary(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "extension", "id": "extension|Separator|0|0|void|||h913edddc60366f9044c6b66111a5672080bdd3cb042c5febb3487cac873e4f6b", "signature": "void Separator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_separator" }, { "name": "SetFont", "kind": "extension", "id": "extension|SetFont|0|0|void|Font role;Font font||hcab29e22e2019bb3b541b3254c5e4027f76d357aa2ea4e762ced8560cad6c652", "signature": "void SetFont(Font role, Font font)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "Makes font the face every widget using role draws with." }, { "name": "SetLocalization", "kind": "method", "id": "method|SetLocalization|0|0|void|Localization? table||h9b1e18df8b05e42ae28fc53a566e5014c93cf59eea849033c0ab9f19b6bae9bd", "signature": "void SetLocalization(Localization? table)", "parameters": [{ "name": "table", "type": "Localization?" }], "summary": "Sets the month, weekday and \u0022Today\u0022 names the date components show, and returns to English with null." }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|0|0|void|bool reduced||hae4b830dd1026084cab290fac44e758b675baf93c35f70486ffa7547f059af88", "signature": "void SetReducedMotion(bool reduced)", "parameters": [{ "name": "reduced", "type": "bool" }], "summary": "Turns off animation (transitions, springs and spinners) for accessibility." }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|void|UiText title;ref bool open;DrawFn body;SheetOpts o = default||h65c09301eb5dd69c80862865570241bbd654452c640464cf772559af8fc6bf22", "signature": "void Sheet(UiText title, ref bool open, DrawFn body, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ShimmerText", "kind": "extension", "id": "extension|ShimmerText|0|0|void|UiText text;TextFxOpts o = default||h10fe1a4021ac0e8c72d7fdf6f3cb558e9a8c622c13f4749b7ac3d5d402cb9f57", "signature": "void ShimmerText(UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Text with a highlight sweeping across it, for \u0022Thinking...\u0022 states." }, { "name": "SignatureClear", "kind": "extension", "id": "extension|SignatureClear|0|0|void|UiText id||hf23272f80768839b31369fdd5a82c42808ef1d11985d804d96d54c704b0de8bf", "signature": "void SignatureClear(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "extension", "id": "extension|Skeleton|0|0|void|Size width;float height||h9a80641f8540ed71174043f46e0ff5190568ee803a507a52125ab6fd1ccd12ec", "signature": "void Skeleton(Size width, float height)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "width", "type": "Size" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "extension", "id": "extension|Spacer|0|0|void|||h8df9fad32f644fb75d2f19ff5d3057f2529306e3edc1921a901da58f59bdf332", "signature": "void Spacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "extension", "id": "extension|Sparkline|0|0|void|ReadOnlySpan\u003Cfloat\u003E values;Size width;float height;Color color||hf5e74b2ae617ca510b0dea71f3513379b77ff9597fa28585678fd9d5dc90c297", "signature": "void Sparkline(ReadOnlySpan\u003Cfloat\u003E values, Size width, float height, Color color)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "extension", "id": "extension|Spinner|0|0|void|float size = 16f||h910bfa94c12faa6f479982793408735550b3b41b6f58bf9d2ecbd8fbd8d537f9", "signature": "void Spinner(float size = 16f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float", "default": "16f" }], "summary": "cui_spinner" }, { "name": "SplitNext", "kind": "extension", "id": "extension|SplitNext|0|0|void|||h2e9b4df1853b9715ec487e793813aebc81a3f6ac93bd19f40400a8b7db5e57b1", "signature": "void SplitNext()", "extensionOn": "CuiSharp.Ui", "summary": "cui_split_next" }, { "name": "StatusBarProgress", "kind": "extension", "id": "extension|StatusBarProgress|0|0|void|float value;StatusProgressOpts o = default||h0d89461fbae2cb62b010aaa92c832f76c787764ad8bf6a7f6f3b2352d43eb62e", "signature": "void StatusBarProgress(float value, StatusProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "StatusProgressOpts", "default": "default" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "extension", "id": "extension|StatusBarSpacer|0|0|void|||hff79ec75c75a5a4046a3afdf7908bfa1687f1fccc3cca35aa6a3c05e5696b38d", "signature": "void StatusBarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "extension", "id": "extension|StatusBarText|0|0|void|UiText text;StatusItemOpts o = default||hf5288fddf236ac4166245c73e6f33c7b59cd60825aad4b4b26f2a62615179863", "signature": "void StatusBarText(UiText text, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A message; \u0060tone\u0060 colors its icon." }, { "name": "Stepper", "kind": "extension", "id": "extension|Stepper|0|0|void|ReadOnlySpan\u003Cstring\u003E steps;int current||h80f2e80af6bf18ef466ffe2f62937141940d661367c04989db4a52915786a5ca", "signature": "void Stepper(ReadOnlySpan\u003Cstring\u003E steps, int current)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "steps", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|void|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;DrawFn body;TableOpts o = default||h7968ef7a646f0817ff9658c4cbca9383316e49dd9c742c9662b2ff3812b0fd0a", "signature": "void Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, DrawFn body, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TableCell", "kind": "extension", "id": "extension|TableCell|0|0|void|||h7206d360daa4de79037d61b719094d0baea2de5a24e5aeb9f04149502f3db3bc", "signature": "void TableCell()", "extensionOn": "CuiSharp.Ui", "summary": "Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "TableCellText", "kind": "extension", "id": "extension|TableCellText|0|0|void|UiText text||h7ed6f22b1e22b71ecfb331830e30c25829c7af8fec09d3b888c861bbb28793a6", "signature": "void TableCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Part of cui_table_cell \u2014 Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "Text", "kind": "extension", "id": "extension|Text|0|0|void|UiText text;TextOpts o = default||h098380135ff70fa9e6364b4f5cb5baaa3d0d23bb4e06916511f00c01e904dcb6", "signature": "void Text(UiText text, TextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextOpts", "default": "default" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "extension", "id": "extension|TextReveal|0|0|void|UiText id;UiText text;TextFxOpts o = default||h7f99ba4d6b24021ea0f87d36914931f6994d1962327a22f1e8b4caad0115cafe", "signature": "void TextReveal(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Words fade and rise into place one after another, when first shown and again whenever the text changes." }, { "name": "Ticker", "kind": "extension", "id": "extension|Ticker|0|0|void|UiText id;ReadOnlySpan\u003CTickerItem\u003E items;TickerOpts o = default||h62c76d0d359572be4036b278345efbeac770ba89bef0d4343912d1b51ea0fc23", "signature": "void Ticker(UiText id, ReadOnlySpan\u003CTickerItem\u003E items, TickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTickerItem\u003E" }, { "name": "o", "type": "TickerOpts", "default": "default" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "extension", "id": "extension|TimelineItem|0|0|void|UiText title;TimelineOpts o = default||hd57ae894fcdcf6a57e4008b86ca1e4a0ea3d920a1be7b0beead7f0c64dce9b25", "signature": "void TimelineItem(UiText title, TimelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "TimelineOpts", "default": "default" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "extension", "id": "extension|ToastDismiss|0|0|void|int handle||h6a894b14bc221b765154e4ee9cf6cdd1812f544772192205c25a197be8077904", "signature": "void ToastDismiss(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "extension", "id": "extension|TocAnchor|0|0|void|UiText anchor||h474d1046a90fd952ce1996c9a0f04e59d8090e886222bfa8a62b08c2d191127c", "signature": "void TocAnchor(UiText anchor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "anchor", "type": "UiText" }], "summary": "cui_toc_anchor" }, { "name": "ToggleTheme", "kind": "method", "id": "method|ToggleTheme|0|0|void|||h9c315cf4c8d3ce0774082f4db1c10fdcde1dfdef8503f7e49968fc73805e19e8", "signature": "void ToggleTheme()", "summary": "Switches to the other theme: what a \u0022dark mode\u0022 command is." }, { "name": "ToolCall", "kind": "extension", "id": "extension|ToolCall|0|0|void|UiText id;UiText name;ToolCallOpts o = default||h16a78d12e8afd01cd74d0ff79d04eab871b3602eb401436850ec64b67c8d437d", "signature": "void ToolCall(UiText id, UiText name, ToolCallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "o", "type": "ToolCallOpts", "default": "default" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarSeparator", "kind": "extension", "id": "extension|ToolbarSeparator|0|0|void|||h1ac04b800f486b06135932d0c44c42e77b107a635f62f0ebe94dc31f9e99b9a6", "signature": "void ToolbarSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "extension", "id": "extension|ToolbarSpacer|0|0|void|||h494edd9bb119d78eaa1c281a125dd1a9effb7a85caa35e4b35c4253376bb92f3", "signature": "void ToolbarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "extension", "id": "extension|Tooltip|0|0|void|UiText text||h5665aef7d99446eea8e623f0f1227e52e0512f331e35936232eb9a28aa7f3634", "signature": "void Tooltip(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Tooltip for the previous component, shown after a short hover delay." }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|void|UiText label;ref bool open;DrawFn body;TreeOpts o = default||he13b4bfd412c90e5210ac7a3109d12fb25e4a2280312b5257572daebbb5bbd95", "signature": "void Tree(UiText label, ref bool open, DrawFn body, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TreeTableName", "kind": "extension", "id": "extension|TreeTableName|0|0|void|UiText label;UiText icon||h1db08630dbcd5478e4543d6fc7df51dec714a4cefea2efb55e95ec44273c7151", "signature": "void TreeTableName(UiText label, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "icon", "type": "UiText" }], "summary": "The first cell: indentation, guides, the chevron, an icon and the name (cut short with a tooltip of the whole name when it does not fit)." }, { "name": "TypingIndicator", "kind": "extension", "id": "extension|TypingIndicator|0|0|void|UiText name||h29e1190d004ef9cf04c8fb3bb6772b74ea89a31b5105bb6fe5d65e29383b006a", "signature": "void TypingIndicator(UiText name)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }], "summary": "cui_typing_indicator" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|void|UiText name;DrawFn body;UserMenuOpts o = default||h1d302e00c446dbae93ac0347cf4063547177c7d4c68194db26c7ca15c8128f8c", "signature": "void UserMenu(UiText name, DrawFn body, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "WordRotate", "kind": "extension", "id": "extension|WordRotate|0|0|void|UiText id;ReadOnlySpan\u003Cstring\u003E words;float interval;TextFxOpts o = default||he53938c5acb8d2d7786cb08323a565882c4e7c01bc50637a3c5c0d9131734da4", "signature": "void WordRotate(UiText id, ReadOnlySpan\u003Cstring\u003E words, float interval, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "words", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "interval", "type": "float" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "One word at a time; the next one rolls up into place and the width follows." }] }, + { "name": "CuiSharp.UiText", "displayName": "UiText", "kind": "ref struct", "summary": "Frame-local text: a string, UTF-8 bytes, or interpolation. All UI text parameters accept this type; interpolated values format directly into the frame arena without creating a managed string.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int literalLength;int formattedCount||h9d129c9e8c13f816fed4fd270b6f7361e24da4313ad96ee28152fbfd2d443819", "signature": "UiText(int literalLength, int formattedCount)", "parameters": [{ "name": "literalLength", "type": "int" }, { "name": "formattedCount", "type": "int" }], "summary": "Called by the compiler for interpolated text." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|ReadOnlySpan\u003Cbyte\u003E text||hd1579173337f67b3bf25d622e86eb7f148007c45b2d398328924b26ef41bed1a", "signature": "static implicit operator UiText(ReadOnlySpan\u003Cbyte\u003E text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Copies pre-encoded UTF-8 into the frame arena." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|string? text||ha192bca6069ef409f9cb822e5f7d0eaa3554d027fa4199e7d57af82030fd6b75", "signature": "static implicit operator UiText(string? text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "string?" }], "summary": "Copies a managed string into the frame arena; null means empty." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cbyte\u003E value||hef829454fbde18245e3b8ef1227cc657c7d0c8b8ac6043baddcb203e4e89ce11", "signature": "void AppendFormatted(ReadOnlySpan\u003Cbyte\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cbyte\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value||h512a8c46c33dd443943ef420e735689596e3dd472b3a96689fcb02b2ba852201", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value;int alignment||h982dbe4e0a26fe044f09d75a4d1104d13f46fc199f6c695c3782505e26cfbb9b", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value, int alignment)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|UiText value||h5e44e320cfaa7bde5f1329fb6b53cbdd46d63a7584a2c0fc9033ba79744123a3", "signature": "void AppendFormatted(UiText value)", "parameters": [{ "name": "value", "type": "UiText" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|bool value||h720aa8df35eebbf6f0d5f648fc9a056d974eb609b0040ec2c42fd468a06693a0", "signature": "void AppendFormatted(bool value)", "parameters": [{ "name": "value", "type": "bool" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|char value||h9d680ea6dfe9dbec87b517cb2cbddc8218746befbf6dd2ee68b35e855f8057ae", "signature": "void AppendFormatted(char value)", "parameters": [{ "name": "value", "type": "char" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value||hf93e8db4d0924f08e67f1ef03109839f6c73f17ad46779c6b8b380b8e05c7218", "signature": "void AppendFormatted(object? value)", "parameters": [{ "name": "value", "type": "object?" }], "summary": "Fallback for other values; their ToString() may allocate." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;int alignment;string? format = null||h059572468f1cfeb9ca57651003cde79067a087f489ab6d52b658fb044b3526ed", "signature": "void AppendFormatted(object? value, int alignment, string? format = null)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?", "default": "null" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;string? format||h9d8fbb16f8627e1d56ead9a8606ba99da5f85ef91fd9b3771d29f8c5e4c7e462", "signature": "void AppendFormatted(object? value, string? format)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value||h7ed9ddb298ac718e41c3694b560ffb5c9d2bc9abccaaeedd72c1132bffd4b796", "signature": "void AppendFormatted(string? value)", "parameters": [{ "name": "value", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value;int alignment||h51c88640d936ec7475bf76cd319665175a79b5198d79ca7c1a3ba95a51998749", "signature": "void AppendFormatted(string? value, int alignment)", "parameters": [{ "name": "value", "type": "string?" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value||h65df985b422ddbac895e2b797462d95fb3f98bb9ce9ccf9782ec6763b6832437", "signature": "void AppendFormatted\u003CT\u003E(T value) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment||h6468da91f19f1efef869ac4b11f9ff350163d77d76e6db4819ce47eefce59a06", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment;string? format||h1004c4617ff18f4ce7f5dfd22cacb4983c1cb3ae5b0581f5cdcfadab89abcd35", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;string? format||h2fc49aa45e0e759e36dd6df0e6e9d6157eff303a310b2b52f64f0ffa2635a4ad", "signature": "void AppendFormatted\u003CT\u003E(T value, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "format", "type": "string?" }] }, { "name": "AppendLiteral", "kind": "method", "id": "method|AppendLiteral|0|0|void|string value||h91e764bb2eb76e141ff133bb474648f96920b1561f73237554f400e459d22437", "signature": "void AppendLiteral(string value)", "parameters": [{ "name": "value", "type": "string" }] }] }, + { "name": "CuiSharp.UptimeOpts", "displayName": "UptimeOpts", "kind": "struct", "summary": "cui_uptime_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "LastDay", "kind": "field", "id": "field|LastDay|0|0|Date|||ha3f645ffdf8751c48a7a18f62ca5d5d533c04d6ba810e7a5b9e3d210de69be6b", "signature": "public Date LastDay", "summary": "the date of the last value, for the tooltips" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "the date of the last value, for the tooltips" }] }, + { "name": "CuiSharp.UptimeResult", "displayName": "UptimeResult", "kind": "struct", "summary": "cui_uptime_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Service;int Day = default||h4ee9e7c7a585a544f5268afb6a64a28897b9938d387b9170a817e81d7915e91b", "signature": "UptimeResult(int Service, int Day = default)", "parameters": [{ "name": "Service", "type": "int" }, { "name": "Day", "type": "int", "default": "default" }] }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "under the pointer, or -1" }, { "name": "Service", "kind": "field", "id": "field|Service|0|0|int|||hba0d1bf399894e025b711a3e44f55e40012b5deae721403f37ad45df303a1b8b", "signature": "public int Service", "summary": "under the pointer, or -1" }] }, + { "name": "CuiSharp.UptimeService", "displayName": "UptimeService", "kind": "struct", "summary": "cui_uptime_service. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;float[]? Days = null||hfa07e809ac4e14d16b3c1adb8af333482073950cf9509a92f142b47176aa9742", "signature": "UptimeService(string? Name, float[]? Days = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Days", "type": "float[]?", "default": "null" }] }, { "name": "Days", "kind": "field", "id": "field|Days|0|0|float[]?|||haec07f103a47589c307f89871f407df5923cd1318c8c1e972bc67b3576c549aa", "signature": "public float[]? Days", "summary": "oldest first: the fraction of the day it was up, 0..1; negative: no data" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, + { "name": "CuiSharp.UserMenuOpts", "displayName": "UserMenuOpts", "kind": "struct", "summary": "cui_user_menu_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement placement" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "_Bool compact" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float width" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|string?|||hea5150ac3e746a684c3b4c0832cabdae145da44e92c85bb412cef107598a117e", "signature": "public string? Status", "summary": "const char * status" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture avatar" }] }, + { "name": "CuiSharp.Vec2", "displayName": "Vec2", "kind": "struct", "summary": "cui_vec2. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float X;float Y = default||hae55464e836ae6a32248a070b8973014ba4694a45f738513a323a7dfdeddee51", "signature": "Vec2(float X, float Y = default)", "parameters": [{ "name": "X", "type": "float" }, { "name": "Y", "type": "float", "default": "default" }] }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float x" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float y" }] }, + { "name": "CuiSharp.VizItem", "displayName": "VizItem", "kind": "struct", "summary": "cui_viz_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Label;float Value = default;Color Color = default||h2246b9d94469e53b5b66267bbb3783660312f7556ab2bc1cff47f1312811b5a0", "signature": "VizItem(string? Label, float Value = default, Color Color = default)", "parameters": [{ "name": "Label", "type": "string?" }, { "name": "Value", "type": "float", "default": "default" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float value" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }] }, + { "name": "CuiSharp.VoiceOrbOpts", "displayName": "VoiceOrbOpts", "kind": "struct", "summary": "cui_voice_orb_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }] }, + { "name": "CuiSharp.VoiceState", "displayName": "VoiceState", "kind": "enum", "summary": "cui_voice_state", "members": [{ "name": "Idle", "kind": "enum value", "id": "enum value|Idle|1|0|||0|h20c3936fb6d84745aab37d74d712fd6dfdf7b2e28735244f399d17b466c6d050", "signature": "Idle = 0", "value": "0" }, { "name": "Listening", "kind": "enum value", "id": "enum value|Listening|1|0|||1|h90eb8e619675aa794a47372a8d974306b7c3927bb278c831ee6bbdf397555bb7", "signature": "Listening = 1", "value": "1" }, { "name": "Speaking", "kind": "enum value", "id": "enum value|Speaking|1|0|||3|h033f07612355ed8f81d5beeb952d477ee5ff9e6eaa745a3a2e9102996da1d8fa", "signature": "Speaking = 3", "value": "3" }, { "name": "Thinking", "kind": "enum value", "id": "enum value|Thinking|1|0|||2|hd3e9b1147cd042a94fb48641ad7dd7ffd430dde9c79aacabf1dc720a973290b1", "signature": "Thinking = 2", "value": "2" }] }, + { "name": "CuiSharp.WaffleOpts", "displayName": "WaffleOpts", "kind": "struct", "summary": "cui_waffle_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float cell" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "int columns" }, { "name": "Rows", "kind": "field", "id": "field|Rows|0|0|int|||hefb2c032827af5f9bdb34f5a833a498a2a3d7d65d6ddf1e90ac44faab38b24dc", "signature": "public int Rows", "summary": "int rows" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, + { "name": "CuiSharp.WaterfallOpts", "displayName": "WaterfallOpts", "kind": "struct", "summary": "cui_waterfall_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "seconds; 0: no line" }, { "name": "DomLoaded", "kind": "field", "id": "field|DomLoaded|0|0|double|||had711cfa961b378cf56ad55952a3763a8a8b982d4719b201917574db1440435b", "signature": "public double DomLoaded", "summary": "seconds; 0: no line" }, { "name": "Loaded", "kind": "field", "id": "field|Loaded|0|0|double|||h72af03b033f52e632df13177a005dcc56ae8a6f948dc761c60bb228b7ead174d", "signature": "public double Loaded", "summary": "seconds; 0: no line" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "seconds; 0: no line" }] }, + { "name": "CuiSharp.WaterfallResult", "displayName": "WaterfallResult", "kind": "struct", "summary": "cui_waterfall_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Activated = default;int Hovered = default||h1a1ea85d82faab62223df49381c24d9689c71f0db7e48778aabbc28fdd9d52a3", "signature": "WaterfallResult(int Clicked, int Activated = default, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Activated", "type": "int", "default": "default" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int activated" }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "int clicked" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "int hovered" }] }, + { "name": "CuiSharp.WaveformOpts", "displayName": "WaveformOpts", "kind": "struct", "summary": "cui_waveform_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Bar", "kind": "field", "id": "field|Bar|0|0|float|||h591ddfbd792b6ecacf5e925fb8b547031152808505904aa2466d8298c0ada87e", "signature": "public float Bar", "summary": "float bar" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, + { "name": "CuiSharp.WeekOpts", "displayName": "WeekOpts", "kind": "struct", "summary": "cui_week_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "EndHour", "kind": "field", "id": "field|EndHour|0|0|float|||hf2d73b4840a1592be5241a7d3de76347b3f0fa9a82072704ccc371b6dd7bd10d", "signature": "public float EndHour", "summary": "float end_hour" }, { "name": "HourHeight", "kind": "field", "id": "field|HourHeight|0|0|float|||hd99043ce8431fbebab02ad1cffe41da949e573d0bf135f08eb80493759cb456b", "signature": "public float HourHeight", "summary": "float hour_height" }, { "name": "StartHour", "kind": "field", "id": "field|StartHour|0|0|float|||hd84f53a0fa907b5d1904af3368ea78c32ea17804962c166927e7ad02ddae27f9", "signature": "public float StartHour", "summary": "float start_hour" }] }, + { "name": "CuiSharp.WheelOpts", "displayName": "WheelOpts", "kind": "struct", "summary": "cui_wheel_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "JoinLeft", "kind": "field", "id": "field|JoinLeft|0|0|bool|||h4065b1eb324d0954a4c5b0cc6ea19eee010a2152d8e132ede3077994bfcced1b", "signature": "public bool JoinLeft", "summary": "_Bool join_left" }, { "name": "JoinRight", "kind": "field", "id": "field|JoinRight|0|0|bool|||h922a39579650be390881d5edb26c2593c91193b13c7ca5259cff31b13f98370c", "signature": "public bool JoinRight", "summary": "_Bool join_right" }, { "name": "Loop", "kind": "field", "id": "field|Loop|0|0|bool|||h7274a1137877894804d8aab9d630e1af40661c2344ca1ff578904fa0bf31f6d9", "signature": "public bool Loop", "summary": "_Bool loop" }, { "name": "Rows", "kind": "field", "id": "field|Rows|0|0|int|||hefb2c032827af5f9bdb34f5a833a498a2a3d7d65d6ddf1e90ac44faab38b24dc", "signature": "public int Rows", "summary": "int rows" }] }, + { "name": "CuiSharp.WidgetQuery", "displayName": "WidgetQuery", "kind": "struct", "summary": "What a search for a control can say: a label, a kind and a label (Button \u0022Save\u0022), or a path through the tree (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022).", "members": [{ "name": "Parse", "kind": "method", "id": "method|Parse|1|0|WidgetQuery|string query||h2f5edda4f13fce617c8db2ae42e24b202c1231ad7664fd91017e4247112bc351", "signature": "static WidgetQuery Parse(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Reads a query: Save, Button \u0022Save\u0022, editor \u003E Save, or id:draft for a widget by the id it was drawn with \u2014 the one form that keeps working when the label is translated." }, { "name": "Text", "kind": "property", "id": "property|Text|0|0|string||get;|h221097532e4154611cbbc42c65b80d74f8055bd282efb709184598cd9d2c27bb", "signature": "string Text { get; }", "summary": "The text to look for: a label, an id, or the leaf of a path." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()", "summary": "The query as a person would write it." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|string?||get;|hf6519d7e4bd25a90454dce8bfbf1cd012be732dbace08b07e972678fed9b1c9e", "signature": "string? Kind { get; }", "summary": "The kind the caller named, or null." }, { "name": "Path", "kind": "property", "id": "property|Path|0|0|string[]||get;|h02f940b2565eea5f6649ab0fb9f12e9719ae8b070c06d1d0a4b04b5bb9611770", "signature": "string[] Path { get; }", "summary": "The containers to walk through, outermost first; empty for a plain search." }] }, + { "name": "CuiSharp.WidgetRecorder", "displayName": "WidgetRecorder", "kind": "static class", "summary": "The entry point every wrapper calls to record what it drew, and the switch that turns that recording on for a surface.", "members": [{ "name": "Enabled", "kind": "property", "id": "property|Enabled|1|0|bool||get;|h68c1f4ee4f2f10fd72384380655538d943b27f76af76ee104436002faf1c0965", "signature": "static bool Enabled { get; }", "summary": "True while some surface on this thread records what it draws." }, { "name": "Note", "kind": "method", "id": "method|Note|1|0|void|nint ui;string kind;UiText text||h239e16bff6ab4a9a0eef65ca564bea588e4d030a812b256cfaf69690ff005639", "signature": "static void Note(nint ui, string kind, UiText text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "kind", "type": "string" }, { "name": "text", "type": "UiText" }], "summary": "Called by every generated wrapper (and by the hand-written ones) with the text that identifies the widget." }] } + ] +} diff --git a/src/CuiSharp.Tests/ApiCatalogTests.cs b/src/CuiSharp.Tests/ApiCatalogTests.cs new file mode 100644 index 0000000..82ef261 --- /dev/null +++ b/src/CuiSharp.Tests/ApiCatalogTests.cs @@ -0,0 +1,724 @@ +using System.Globalization; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Security.Cryptography; +using System.Text; +using CuiSharp.Hosting; +using CuiSharp.Tools; + +namespace CuiSharp.Tests; + +/// +/// The catalog dotnet cui api answers from: exported by tools/export-api.cs, +/// shipped in the skill folder and embedded in the tools package. These tests are the second +/// reflection site in the repository (the exporter is the first): they compare the checked-in +/// catalog against the live assembly — per member, with parameter shape, not just names — and +/// they query the real catalog the way the CLI will, asserting on what a person would read. +/// +public class ApiCatalogTests +{ + private static readonly Lazy Catalog = new(LoadCatalog); + + private static ApiCatalog LoadCatalog() => ApiCatalog.Load( + File.ReadAllText(Path.Combine(TestPaths.RepositoryRoot, "skills", "cui-dotnet", "api", "catalog.json"))); + + // --- what the catalog contains ---------------------------------------------------------- + + [Fact] + public void TheCatalogHeaderCarriesTheSchemaAndTheAssemblyVersion() + { + Assert.Equal(1, Catalog.Value.Schema); + string informational = typeof(CuiApplication).Assembly + .GetCustomAttribute()!.InformationalVersion.Split('+')[0]; + Assert.Equal(informational, Catalog.Value.Version); + } + + /// + /// The acceptance rule, at member-identity granularity: every public member of the built + /// assembly is in the catalog under its owner with the same identity — kind, declaration + /// name, rendered-static, generic arity, return/property/field type, ordered parameter types + /// with ref/in/out modifiers and actual defaults, accessors and constant values, rebuilt + /// here from the live assembly — and that identity's trailing binding hash must recompute + /// from the signature, parameters and value the catalog actually stores (see + /// ). Extension methods compare against the type they + /// extend, receiver excluded, exactly where the exporter's per-member classification puts + /// them. A removed overload, a changed parameter type, a lost default, a migrated owner or + /// a declaration that drifted from its identity is a red test. + /// + [Fact] + public void EveryPublicMemberOfTheAssemblyIsInTheCatalogWithItsFullIdentity() + { + List problems = DiffIdentities(Catalog.Value.Types, ExpectedIdentities()); + + foreach (CatalogType type in Catalog.Value.Types) + { + var seen = new HashSet(StringComparer.Ordinal); + foreach (CatalogMember member in type.Members) + if (!seen.Add(member.Kind + "\n" + member.Signature)) + problems.Add($"{type.Name} lists {member.Signature} twice"); + } + + Assert.True(problems.Count == 0, "catalog disagrees with the assembly, regenerate with `dotnet run tools/export-api.cs`. " + + string.Join("\n ", problems.Take(10))); + } + + /// + /// Same-name overloads that differ only in parameter type are the case a shape-only key + /// (name, arity, parameter count, default count) cannot see. The identity must: tampering + /// one parameter type in the catalog must make the comparison fail. + /// + [Fact] + public void AMemberIdentityThatChangedItsParameterTypeIsRejected() + { + CatalogType uiText = Catalog.Value.Types.First(t => t.Name == "CuiSharp.UiText"); + string[] formatted = [.. uiText.Members.Where(m => m.Name == "AppendFormatted").Select(m => m.Id!)]; + string target = formatted.First(id => id.Contains("ReadOnlySpan value", StringComparison.Ordinal)); + string sibling = formatted.First(id => id.Contains("ReadOnlySpan value", StringComparison.Ordinal)); + // The old shape identity collides on exactly this pair; the full identity does not. + Assert.Equal(target.Split('|')[..5], sibling.Split('|')[..5]); + Assert.NotEqual(target, sibling); + + List tampered = + [ + .. Catalog.Value.Types.Select(t => t.Name != "CuiSharp.UiText" ? t : t with + { + Members = + [ + .. t.Members.Select(m => m.Id == target ? m with { Id = target.Replace("ReadOnlySpan", "byte[]") } : m), + ], + }), + ]; + + Assert.Contains(DiffIdentities(tampered, ExpectedIdentities()), + p => p.Contains("CuiSharp.UiText", StringComparison.Ordinal)); + } + + /// + /// What a person reads is the rendered declaration, not the identity string, so the + /// identity binds the declaration: mutate the stored signature, a stored parameter type, + /// or a stored default while hand-preserving the id, and parity must name it. Without + /// the binding, a same-length edit to the answer the CLI gives passes every structural + /// check — the identity would keep matching the assembly while the catalog lied. + /// + [Fact] + public void ADeclarationThatDisagreesWithItsOwnIdentityIsRejected() + { + Dictionary> expected = ExpectedIdentities(); + + List bySignature = DiffIdentities( + Tampered("CuiSharp.UiText", m => m.Signature.Contains("ReadOnlySpan", StringComparison.Ordinal) + ? m with { Signature = m.Signature.Replace("ReadOnlySpan", "byte[]") } + : m), + expected); + Assert.Contains(bySignature, p => p.Contains("CuiSharp.UiText", StringComparison.Ordinal)); + + List byParameter = DiffIdentities(Tampered("CuiSharp.UiText", WidenByteSlice), expected); + Assert.Contains(byParameter, p => p.Contains("CuiSharp.UiText", StringComparison.Ordinal)); + + List byDefault = DiffIdentities( + Tampered("CuiSharp.UiText", m => m.Parameters.Any(p => p.Default is not null) + ? m with { Parameters = [.. m.Parameters.Select(p => p.Default is null ? p : p with { Default = p.Default + " " })] } + : m), + expected); + Assert.Contains(byDefault, p => p.Contains("CuiSharp.UiText", StringComparison.Ordinal)); + } + + /// Rebuilds the catalog with one type's members edited; everything else untouched. + private static List Tampered(string typeName, Func edit) => + [.. Catalog.Value.Types.Select(t => t.Name != typeName ? t : t with { Members = [.. t.Members.Select(edit)] })]; + + /// Widens the byte-slice overloads' stored parameter type in place, id untouched. + private static CatalogMember WidenByteSlice(CatalogMember m) + { + if (!m.Parameters.Any(p => p.Type.Contains("ReadOnlySpan", StringComparison.Ordinal))) return m; + return m with + { + Parameters = + [ + .. m.Parameters.Select(p => p.Type.Contains("ReadOnlySpan", StringComparison.Ordinal) + ? p with { Type = p.Type.Replace("ReadOnlySpan", "byte[]") } + : p), + ], + }; + } + + [Fact] + public void TheCatalogCarriesNoCompilerMetadata() + { + Assert.DoesNotContain(Catalog.Value.Types, t => t.Name.Contains('$') || t.DisplayName.Contains('$')); + Assert.DoesNotContain(Catalog.Value.Types.SelectMany(t => t.Members), m => m.Name.Contains('$')); + } + + [Fact] + public void AnEnumListsEachValueOnceAndNeverItsBackingField() + { + Assert.DoesNotContain(Catalog.Value.Types.SelectMany(t => t.Members), m => m.Name == "value__"); + foreach (CatalogType type in Catalog.Value.Types.Where(t => t.Kind == "enum")) + Assert.Equal(type.Members.Count, type.Members.Select(m => m.Name).Distinct().Count()); + + CatalogType accent = Catalog.Value.Types.First(t => t.Name == "CuiSharp.Accent"); + Assert.Equal(1, accent.Members.Count(m => m.Name == "Blue")); + Assert.Equal("2", accent.Members.Single(m => m.Name == "Blue").Value); + } + + [Fact] + public void TheIconIndexMatchesTheRealConstantsAndPrintsPasteReadyGlyphs() + { + int constants = typeof(Icons).GetFields(BindingFlags.Public | BindingFlags.Static).Count(f => f.IsLiteral); + List all = [.. Catalog.Value.Icons(null)]; + Assert.Equal(constants, all.Count); + + string check = all.First(line => line.StartsWith("Check", StringComparison.Ordinal)); + string real = (string)typeof(Icons).GetField("Check")!.GetRawConstantValue()!; + Assert.Contains($"U+{(int)real[0]:X4}", check, StringComparison.Ordinal); + Assert.Contains($"\"\\u{(int)real[0]:X4}\"", check, StringComparison.Ordinal); + + IReadOnlyList filtered = Catalog.Value.Icons("chevron"); + Assert.Contains(filtered, line => line.StartsWith("ChevronDown", StringComparison.Ordinal)); + Assert.True(filtered.Count < all.Count, "the filter filtered"); + } + + // --- what a query answers --------------------------------------------------------------- + + [Fact] + public void AFullyQualifiedNameResolvesAsTheTypeItNames() + { + foreach (string term in new[] { "CuiSharp.ChartOpts", "ChartOpts" }) + { + CatalogResult result = Catalog.Value.Query(term); + Assert.True(result.IsExact, $"{term}: {result.Render()}"); + Assert.Contains("ChartOpts [struct]", result.Render(), StringComparison.Ordinal); + } + } + + [Fact] + public void AnOwnerWithoutTheMemberIsUnknownAndNeverAnUnrelatedExactHit() + { + CatalogResult result = Catalog.Value.Query("ChartOpts.Run"); + Assert.Equal(CatalogMatch.Unknown, result.Match); + // the old failure was a confident answer from the wrong types + Assert.DoesNotContain("CuiApp.Run", result.Render(), StringComparison.Ordinal); + Assert.DoesNotContain("CuiApplication", result.Render(), StringComparison.Ordinal); + Assert.Contains("nothing named", result.Render(), StringComparison.Ordinal); + } + + [Fact] + public void ABareMemberOnSeveralOwnersIsAmbiguousWithQualifiedCandidates() + { + CatalogResult result = Catalog.Value.Query("Run"); + Assert.Equal(CatalogMatch.Ambiguous, result.Match); + Assert.False(result.IsExact); + Assert.Contains(result.Lines, line => line.StartsWith("CuiApp.Run", StringComparison.Ordinal)); + Assert.Contains(result.Lines, line => line.StartsWith("CuiApplication.Run", StringComparison.Ordinal)); + Assert.Contains(result.Lines, line => line.Contains("Run() where TRoot : Component", StringComparison.Ordinal)); + } + + [Fact] + public void ABareMemberWithExactlyOneOwnerIsExact() + { + CatalogResult result = Catalog.Value.Query("ToggleTheme"); + Assert.True(result.IsExact, result.Render()); + } + + [Fact] + public void AnExactMemberQueryPrintsTheRealOverloadsDefaultsAndGenerics() + { + CatalogResult result = Catalog.Value.Query("Ui.LineChart"); + Assert.True(result.IsExact, result.Render()); + string text = result.Render(); + + // The real surface has two overloads; the readable form keeps generics and defaults. + Assert.Contains("ReadOnlySpan", text, StringComparison.Ordinal); + Assert.Contains("Series[]", text, StringComparison.Ordinal); + Assert.Contains("= default", text, StringComparison.Ordinal); + Assert.Contains("id", text, StringComparison.Ordinal); // the parameter is named, not `arg0` + } + + [Fact] + public void ATypeListingPrintsDeclarationsAndNeverInventedCalls() + { + string chartOpts = Catalog.Value.Query("ChartOpts").Render(); + Assert.Contains("public Size Width", chartOpts, StringComparison.Ordinal); + Assert.DoesNotContain("ui.Width", chartOpts, StringComparison.Ordinal); + + string icons = Catalog.Value.Query("Icons").Render(); + Assert.Contains("public const string Check = \"", icons, StringComparison.Ordinal); + + // a static factory reads static, a nullable parameter keeps its annotation + Assert.Contains("static CuiApplicationBuilder CreateBuilder(string[]? args = null)", + Catalog.Value.Query("CuiApplication").Render(), StringComparison.Ordinal); + } + + [Fact] + public void AnExtensionGetsACallExampleBesideItsDeclarationAndNotInPlaceOfIt() + { + string ui = Catalog.Value.Query("Ui").Render(); + Assert.Contains("bool Button(UiText label, ButtonOpts o = default)", ui, StringComparison.Ordinal); + Assert.Contains("call: ui.Button(UiText label, ButtonOpts o = default)", ui, StringComparison.Ordinal); + } + + [Fact] + public void SignaturesSayWhatTheSourceSays() + { + Assert.Contains("int Run() where TRoot : Component", + Catalog.Value.Query("CuiApplication").Render(), StringComparison.Ordinal); + Assert.Contains("int Invoke(in T item)", + Catalog.Value.Query("KeyFn").Render(), StringComparison.Ordinal); + + string size = Catalog.Value.Query("Size").Render(); + Assert.Contains("static implicit operator Size(float points)", size, StringComparison.Ordinal); + Assert.DoesNotContain("Size implicit operator Size", size, StringComparison.Ordinal); + + Assert.Contains("operator ==(", Catalog.Value.Query("CuiAppOptions").Render(), StringComparison.Ordinal); + Assert.Contains("{ get; init; }", Catalog.Value.Query("CuiDiagnostics").Render(), StringComparison.Ordinal); + + // `where T : unmanaged` is one constraint; struct + ValueType is a lie that does not compile. + string ui = Catalog.Value.Query("Ui").Render(); + Assert.Equal(2, ui.Split("where T : unmanaged").Length - 1); + Assert.DoesNotContain("struct, ValueType", ui, StringComparison.Ordinal); + Assert.DoesNotContain("where T : struct", ui, StringComparison.Ordinal); + + // a nonzero enum default names its type, a nullable reference keeps its ?, + // and the one `T?` on the surface renders while the bare T's stay bare. + Assert.Contains("void AppendLine(string? text, LogLevel level = LogLevel.Info)", + Catalog.Value.Query("LogBuffer").Render(), StringComparison.Ordinal); + Assert.Contains("string? Error { get; }", + Catalog.Value.Query("FilePickResult").Render(), StringComparison.Ordinal); + Assert.Contains("Exception? Error { get; }", + Catalog.Value.Query("Mutation").Render(), StringComparison.Ordinal); + Assert.Contains("SemanticNode? Parent { get; }", + Catalog.Value.Query("SemanticNode").Render(), StringComparison.Ordinal); + Assert.Contains("string?[]? Months { get; set; }", + Catalog.Value.Query("Localization").Render(), StringComparison.Ordinal); + string mutationOfT = Catalog.Value.Query("CuiSharp.Hosting.Mutation`1").Render(); + Assert.Contains("bool TryPublish(out T? result)", mutationOfT, StringComparison.Ordinal); + + // Keyword identifier names are only legal with `@`: the compiler names delegate + // parameters after their metadata (`object object`) and interop wrappers name a + // buffer `out`; unescaped, the printed declaration does not compile. + string drawFn = Catalog.Value.Query("DrawFn").Render(); + Assert.Contains("DrawFn(object @object, nint method)", drawFn, StringComparison.Ordinal); + Assert.DoesNotContain("(object object", drawFn, StringComparison.Ordinal); + Assert.Contains("KeyFn(object @object, nint method)", Catalog.Value.Query("KeyFn").Render(), StringComparison.Ordinal); + Assert.Contains("ref string @out", Catalog.Value.Query("Ui.FilePicker").Render(), StringComparison.Ordinal); + } + + [Fact] + public void TheXmlDocumentationSurvivesTheExport() + { + Assert.Contains("Resolves the root component", + Catalog.Value.Query("CuiApplication").Render(), StringComparison.Ordinal); + Assert.Contains("t 0 is a", Catalog.Value.Query("Color").Render(), StringComparison.Ordinal); + Assert.Contains("Fill", Catalog.Value.Query("Size").Render(), StringComparison.Ordinal); + + // Generic owners lost every summary while doc ids were built from Type.ToString(). + Assert.Contains("One background operation", + Catalog.Value.Query("CuiSharp.Hosting.Mutation`1").Render(), StringComparison.Ordinal); + Assert.Contains("failure that ended", + Catalog.Value.Query("CuiSharp.Hosting.Mutation`1").Render(), StringComparison.Ordinal); + Assert.Contains("key for one item", + Catalog.Value.Query("KeyFn").Render(), StringComparison.Ordinal); + Assert.Contains("pushing one id scope", + Catalog.Value.Query("KeyedScope").Render(), StringComparison.Ordinal); + + // A nested inside a rendered as nothing while the walker fell back to Value. + Assert.Contains("RequiredCapacity", + Catalog.Value.Query("SeriesDecimator").Render(), StringComparison.Ordinal); + Assert.Contains("Write with Write", + Catalog.Value.Query("Terminal").Render(), StringComparison.Ordinal); + + // Paragraph boundaries ran together while the whitespace between and + // collapsed with the paragraphs' own padding — "charts do.Copy-based" is the tell. + Assert.Contains("charts do. Copy-based", + Catalog.Value.Query("SeriesDecimator").Render(), StringComparison.Ordinal); + Assert.Contains("message loop. Frames", + Catalog.Value.Query("CuiSurface").Render(), StringComparison.Ordinal); + + // The same walker must not invent separators either: a one-line summary built from + // inline references renders exactly, escapes and all. + Assert.Contains("Blends two colors: t 0 is a, 1 is b.", + Catalog.Value.Query("Color").Render(), StringComparison.Ordinal); + } + + [Fact] + public void SuggestionsIgnoreCaseAndUnknownAlwaysExplainsItself() + { + CatalogResult nearMiss = Catalog.Value.Query("linchrt"); + Assert.Equal(CatalogMatch.Unknown, nearMiss.Match); + Assert.Contains("LineChart", nearMiss.Suggestions); + Assert.Contains("LineChart", nearMiss.Render(), StringComparison.Ordinal); + + CatalogResult nonsense = Catalog.Value.Query("zzqqxwvzn1234567890"); + Assert.Equal(CatalogMatch.Unknown, nonsense.Match); + Assert.Contains("nothing named", nonsense.Render(), StringComparison.Ordinal); + Assert.Contains("no name is close", nonsense.Render(), StringComparison.Ordinal); + } + + [Fact] + public void TheMachineReadableAnswerIsSelfContainedJson() + { + CatalogResult result = Catalog.Value.Query("Ui.Button"); + using var doc = System.Text.Json.JsonDocument.Parse(result.RenderJson()); + Assert.Equal("exact", doc.RootElement.GetProperty("match").GetString()); + Assert.Contains(doc.RootElement.GetProperty("lines").EnumerateArray(), + line => line.GetString()!.Contains("ui.Button", StringComparison.Ordinal)); + } + + // --- refusing a catalog this build cannot answer from ---------------------------------- + + private const string MinimalCatalog = + """{ "schema": 1, "generator": "fixture", "assembly": "CuiSharp", "version": "0.0.1", "types": [ { "name": "N", "displayName": "N", "kind": "class", "members": [ { "name": "M", "kind": "method", "signature": "void M()" } ] } ] }"""; + + [Fact] + public void ACatalogFromAnotherSchemaIsRefusedWithADiagnostic() + { + InvalidDataException error = Assert.Throws(() => + ApiCatalog.Load(MinimalCatalog.Replace("\"schema\": 1", "\"schema\": 999"))); + Assert.Contains("schema 999", error.Message, StringComparison.Ordinal); + Assert.Contains("schema 1", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void ATypeMissingItsMemberListIsRefusedNamingItsPath() + { + InvalidDataException error = Assert.Throws(() => + ApiCatalog.Load(MinimalCatalog.Replace("\"members\":", "\"named\":"))); + Assert.Contains("types[0].members", error.Message, StringComparison.Ordinal); + Assert.Contains("present", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void AMemberMissingItsNameIsAnErrorNamingItsPath() + { + InvalidDataException error = Assert.Throws(() => + ApiCatalog.Load(MinimalCatalog.Replace("\"name\": \"M\"", "\"named\": \"M\""))); + Assert.Contains("types[0].members[0].name", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void ASummaryOfTheWrongKindIsAnErrorNamingItsPath() + { + InvalidDataException error = Assert.Throws(() => + ApiCatalog.Load(MinimalCatalog.Replace( + "\"signature\": \"void M()\"", + "\"signature\": \"void M()\", \"summary\": 7"))); + Assert.Contains("types[0].members[0].summary", error.Message, StringComparison.Ordinal); + Assert.Contains("string", error.Message, StringComparison.Ordinal); + } + + [Fact] + public void ANonJsonCatalogIsRefusedRatherThanCrashing() + { + InvalidDataException error = Assert.Throws(() => ApiCatalog.Load("{not json")); + Assert.Contains("not valid JSON", error.Message, StringComparison.Ordinal); + } + + // --- the reflection side of the contract, mirroring the exporter's identity rules ------- + + /// Every public member's expected identity, grouped by the catalog owner it names. + private static Dictionary> ExpectedIdentities() + { + var expected = new Dictionary>(StringComparer.Ordinal); + void Expect(string typeName, string identity) + { + if (!expected.TryGetValue(typeName, out List? list)) expected[typeName] = list = []; + list.Add(identity); + } + + const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + foreach (Type type in typeof(CuiApplication).Assembly.GetExportedTypes()) + { + if (IsCompilerMetadata(type)) continue; + + // the exporter catalogues the type even when reflection sees no public members on it + if (!expected.ContainsKey(type.FullName!)) expected[type.FullName!] = []; + + if (type.IsEnum) + { + // enumerands only: the exporter lists each once and hides the backing field. + foreach (FieldInfo field in type.GetFields(BindingFlags.Public | BindingFlags.Static).Where(f => !f.IsSpecialName)) + Expect(type.FullName!, $"enum value|{field.Name}|1|0|||{Raw(field)}"); + continue; + } + + int forwardedCount = 0, ownCount = 0; + foreach (MethodInfo m in type.GetMethods(flags) + .Where(m => (!m.IsSpecialName || m.Name.StartsWith("op_", StringComparison.Ordinal)) && !m.Name.Contains('$'))) + { + // The exporter's classification, per member: attributed receiver method or not. + bool forwarded = type.IsAbstract && type.IsSealed && m.IsStatic && m.GetParameters().Length > 0 + && m.GetCustomAttributesData().Any(a => + a.AttributeType.FullName == "System.Runtime.CompilerServices.ExtensionAttribute"); + if (forwarded) { forwardedCount++; Expect(m.GetParameters()[0].ParameterType.FullName!, MemberId(m, forwarded: true)); } + else { ownCount++; Expect(type.FullName!, MemberId(m, forwarded: false)); } + } + + foreach (ConstructorInfo c in type.GetConstructors(flags)) + { + ownCount++; + string parameters = string.Join(";", c.GetParameters().Select(ParameterId)); + Expect(type.FullName!, $"constructor|.ctor|0|0||{parameters}|"); + } + + foreach (PropertyInfo p in type.GetProperties(flags)) + { + ownCount++; + string access = (p.GetMethod?.IsPublic == true ? "get;" : "") + (p.SetMethod?.IsPublic == true ? "set;" : ""); + Expect(type.FullName!, $"property|{p.Name}|{(p.GetMethod?.IsStatic == true ? "1" : "0")}|0|{PropertyIdType(p)}||{access}"); + } + + foreach (FieldInfo f in type.GetFields(flags).Where(f => !f.IsSpecialName)) + { + ownCount++; + Expect(type.FullName!, f.IsLiteral + ? $"constant|{f.Name}|{(f.IsStatic ? "1" : "0")}|0|{PlainNameOf(f.FieldType)}||{Raw(f)}" + : $"field|{f.Name}|{(f.IsStatic ? "1" : "0")}|0|{IdType(f.FieldType, Nulls.Create(f), write: false)}||{Raw(f)}"); + } + + foreach (EventInfo e in type.GetEvents(flags)) + { + ownCount++; + Expect(type.FullName!, $"event|{e.Name}|0|0|{PlainNameOf(e.EventHandlerType!)}||"); + } + + // a host whose every member forwarded is metadata, not a type: the exporter drops it + if (forwardedCount > 0 && ownCount == 0) expected.Remove(type.FullName!); + } + + return expected; + } + + private static string MemberId(MethodInfo m, bool forwarded) + { + string kind = m.Name switch + { + "op_Implicit" => "conversion", + "op_Explicit" => "operator", + _ when m.Name.StartsWith("op_", StringComparison.Ordinal) => "operator", + _ => forwarded ? "extension" : "method", + }; + ParameterInfo[] parameters = forwarded ? m.GetParameters()[1..] : m.GetParameters(); + return $"{kind}|{m.Name}|{(m.IsStatic && !forwarded ? "1" : "0")}|" + + $"{(m.IsGenericMethodDefinition ? m.GetGenericArguments().Length : 0)}|" + + $"{IdType(m.ReturnType, Nulls.Create(m.ReturnParameter), write: true)}|" + + $"{string.Join(";", parameters.Select(ParameterId))}|"; + } + + private static string ParameterId(ParameterInfo p) + { + string modifier = p.IsOut ? "out " : p.IsIn ? "in " : p.ParameterType.IsByRef ? "ref " : ""; + string type = modifier + IdType(p.ParameterType, Nulls.Create(p), write: true); + return p.HasDefaultValue ? $"{type} {p.Name} = {DefaultOf(p)}" : $"{type} {p.Name}"; + } + + /// + /// The exporter's annotated rendering minus the one fact reflection cannot give a test + /// (the signature evidence behind a bare `T` versus a written `T?`): every generic + /// parameter renders bare on both sides of the identity. + /// + private static string IdType(Type type, NullabilityInfo? info, bool write) + { + try + { + if (type.IsGenericParameter) return type.Name; + NullabilityState state = info is null ? NullabilityState.NotNull : write ? info.WriteState : info.ReadState; + string suffix = state == NullabilityState.Nullable ? "?" : ""; + if (Keywords.TryGetValue(type, out string? keyword)) return keyword + suffix; + if (type.IsByRef) return IdType(type.GetElementType()!, info, write); + if (type.IsPointer) return IdType(type.GetElementType()!, Element(info), write) + "*" + suffix; + if (type.IsArray && type.GetArrayRank() == 1) return IdType(type.GetElementType()!, Element(info), write) + "[]" + suffix; + if (!type.IsGenericType) return type.Name + suffix; + if (type.GetGenericTypeDefinition() == typeof(Nullable<>)) return PlainNameOf(type); + return type.Name[..type.Name.IndexOf('`')] + "<" + + string.Join(", ", type.GetGenericArguments().Select((a, i) => IdType(a, Argument(info, i), write))) + + ">" + suffix; + } + catch (Exception) { return type.Name; } + } + + /// The exporter's plain name renderer: keywords, arrays, `int?` for Nullable<int>. + private static string PlainNameOf(Type t) + { + if (Keywords.TryGetValue(t, out string? keyword)) return keyword; + if (t.IsByRef) return PlainNameOf(t.GetElementType()!); + if (t.IsArray) + { + int rank = t.GetArrayRank(); + return PlainNameOf(t.GetElementType()!) + (rank == 1 ? "[]" : "[" + new string(',', rank - 1) + "]"); + } + + if (t.IsPointer) return PlainNameOf(t.GetElementType()!) + "*"; + if (!t.IsGenericType) return t.Name; + if (t.GetGenericTypeDefinition() == typeof(Nullable<>)) return PlainNameOf(t.GetGenericArguments()[0]) + "?"; + return t.Name[..t.Name.IndexOf('`')] + "<" + string.Join(", ", t.GetGenericArguments().Select(PlainNameOf)) + ">"; + } + + private static string PropertyIdType(PropertyInfo p) => + p.SetMethod is null && p.GetMethod is not null + ? IdType(p.PropertyType, Nulls.Create(p.GetMethod.ReturnParameter), write: false) + : IdType(p.PropertyType, Nulls.Create(p), write: false); + + private static string Raw(FieldInfo f) + { + if (!f.IsLiteral) return ""; // only constants carry a value; reading a plain field's would throw + object? raw = f.GetRawConstantValue(); + return raw switch { null => "", string s => s, _ => Convert.ToString(raw, CultureInfo.InvariantCulture)! }; + } + + private static string DefaultOf(ParameterInfo p) + { + object? value = p.DefaultValue; + Type type = p.ParameterType.IsByRef ? p.ParameterType.GetElementType()! : p.ParameterType; + if (value is null or DBNull) return type.IsValueType ? "default" : "null"; + if (type.IsValueType && !type.IsEnum && value.Equals(Activator.CreateInstance(type))) return "default"; + if (type.IsEnum) + { + string? name = Enum.GetName(type, value); + return name is not null ? $"{type.Name}.{name}" : $"({type.Name}){Literal(value)}"; + } + + return Literal(value); + } + + private static string Literal(object value) => value switch + { + string s => Quote(s), + char c => "'" + c + "'", + bool b => b ? "true" : "false", + float f => f.ToString("R", CultureInfo.InvariantCulture) + "f", + double d => d.ToString("R", CultureInfo.InvariantCulture) + "d", + _ => Convert.ToString(value, CultureInfo.InvariantCulture) ?? "?", + }; + + /// The JSON string literal, spelled without JsonSerializer (the AOT analyzer is right). + private static string Quote(string s) + { + var sb = new StringBuilder("\""); + foreach (char c in s) + { + switch (c) + { + case '"': sb.Append("\\\""); break; + case '\\': sb.Append("\\\\"); break; + case '\n': sb.Append("\\n"); break; + case '\r': sb.Append("\\r"); break; + case '\t': sb.Append("\\t"); break; + default: + if (c < 0x20) sb.Append("\\u").Append(((int)c).ToString("X4")); + else sb.Append(c); + break; + } + } + + return sb.Append('"').ToString(); + } + + private static NullabilityInfo? Element(NullabilityInfo? info) + { + try { return info?.ElementType; } + catch (Exception) { return null; } + } + + private static NullabilityInfo? Argument(NullabilityInfo? info, int index) + { + try + { + NullabilityInfo[] arguments = info!.GenericTypeArguments; + return index < arguments.Length ? arguments[index] : null; + } + catch (Exception) { return null; } + } + + private static readonly NullabilityInfoContext Nulls = new(); + + private static readonly Dictionary Keywords = new() + { + [typeof(void)] = "void", + [typeof(bool)] = "bool", + [typeof(char)] = "char", + [typeof(string)] = "string", + [typeof(int)] = "int", + [typeof(uint)] = "uint", + [typeof(long)] = "long", + [typeof(ulong)] = "ulong", + [typeof(short)] = "short", + [typeof(ushort)] = "ushort", + [typeof(byte)] = "byte", + [typeof(sbyte)] = "sbyte", + [typeof(float)] = "float", + [typeof(double)] = "double", + [typeof(object)] = "object", + [typeof(nint)] = "nint", + [typeof(nuint)] = "nuint", + }; + + /// Compares the identity multiset per catalogued type; every disagreement is one line. + private static List DiffIdentities(IReadOnlyList catalogTypes, Dictionary> expected) + { + var problems = new List(); + foreach ((string typeName, List ids) in expected) + { + CatalogType? entry = catalogTypes.FirstOrDefault(t => t.Name == typeName); + if (entry is null) + { + problems.Add($"type {typeName} is missing"); + continue; + } + + if (entry.Members.Any(m => string.IsNullOrEmpty(m.Id))) + { + problems.Add($"{typeName} has members without an identity - regenerate the catalog"); + continue; + } + + List actual = [.. entry.Members.Select(m => StructureOf(m.Id!))]; + actual.Sort(StringComparer.Ordinal); + ids.Sort(StringComparer.Ordinal); + if (!actual.SequenceEqual(ids)) + problems.Add($"{typeName}\n only in the assembly: {string.Join(" | ", ids.Except(actual).Take(6))}" + + $"\n only in the catalog: {string.Join(" | ", actual.Except(ids).Take(6))}"); + + // The structural identity says the member is the assembly's; the binding hash says + // the stored declaration is still the one that identity was built over. Both halves + // must hold, or the answer the CLI renders drifted from what was verified. + foreach (CatalogMember member in entry.Members) + if (!IdentityBindsDeclaration(member)) + problems.Add($"{typeName}: {member.Name}'s identity does not bind its rendered declaration - regenerate the catalog"); + } + + foreach (CatalogType type in catalogTypes) + if (!expected.ContainsKey(type.Name)) + problems.Add($"catalog lists a type the assembly does not export: {type.Name}"); + + return problems; + } + + /// The identity's structure: everything before the binding hash the exporter appends. + private static string StructureOf(string id) + { + int at = id.LastIndexOf('|'); + return at < 0 ? id : id[..at]; + } + + /// + /// Recomputes the binding hash from the fields a consumer reads — the rendered signature, + /// the ordered parameter types, names and defaults, and the value — and requires the stored + /// identity to carry it. The canonical mirrors the exporter's `Bind`: field-separated with + /// unit separators, sha256, lowercase, `h`-tagged; built here without calling the exporter, + /// so the check is independent of the code that produced the catalog. + /// + private static bool IdentityBindsDeclaration(CatalogMember member) + { + string id = member.Id ?? ""; + int at = id.LastIndexOf('|'); + if (at <= 0) return false; + string canonical = string.Join('\u001f', + [member.Signature, .. member.Parameters.Select(p => $"{p.Type}\u001e{p.Name}\u001e{p.Default ?? string.Empty}"), member.Value ?? string.Empty]); + return id[(at + 1)..] == "h" + Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(canonical))).ToLowerInvariant(); + } + + /// The exporter's filter: extension carriers, closures and generated types are not API. + private static bool IsCompilerMetadata(Type type) => + type.Name.Contains('$') || type.Name.Contains('<') || + type.IsDefined(typeof(CompilerGeneratedAttribute), false); +} diff --git a/src/CuiSharp.Tools/ApiCatalog.cs b/src/CuiSharp.Tools/ApiCatalog.cs new file mode 100644 index 0000000..6b2baaa --- /dev/null +++ b/src/CuiSharp.Tools/ApiCatalog.cs @@ -0,0 +1,439 @@ +using System.Text; +using System.Text.Json; + +namespace CuiSharp.Tools; + +/// +/// The offline API catalog: the JSON the exporter wrote at build time, read as data. No +/// reflection, no project, no app, no native library — `dotnet cui api` answers from these +/// bytes alone. The exporter owns the truth; this class only finds entries in it and renders +/// them for a person or, with , for a machine. +/// +internal sealed class ApiCatalog +{ + private readonly List types; + + private ApiCatalog(int schema, string version, List types) + { + Schema = schema; + Version = version; + this.types = types; + } + + internal int Schema { get; } + + /// The catalog schema this reader understands; anything else is refused by name. + internal const int SupportedSchema = 1; + + /// The CuiSharp version the catalog was exported from. + internal string Version { get; } + + internal IReadOnlyList Types => types; + + /// + /// Reads the shipped catalog, refusing anything this build cannot answer from: a wrong + /// schema and a malformed shape both name their path, because the alternative is an + /// api answer that quietly reads as empty. + /// + internal static ApiCatalog Load(string json) + { + JsonDocument doc; + try + { + doc = JsonDocument.Parse(json); + } + catch (JsonException error) + { + throw new InvalidDataException("the API catalog is not valid JSON: " + error.Message, error); + } + + using (doc) + { + JsonElement root = doc.RootElement; + if (root.ValueKind != JsonValueKind.Object) throw Bad("$", "an object"); + + int schema = RequireInt(root, "schema", "$"); + if (schema != SupportedSchema) + throw new InvalidDataException( + $"the API catalog uses schema {schema}; this build of cui reads schema {SupportedSchema}. " + + "Update CuiSharp.Tools, or regenerate the catalog with tools/export-api.cs."); + + string version = RequireString(root, "version", "$"); + var types = new List(); + int atType = 0; + foreach (JsonElement t in RequireArray(root, "types", "$")) + { + string typePath = "$.types[" + atType++ + "]"; + if (t.ValueKind != JsonValueKind.Object) throw Bad(typePath, "an object"); + + var members = new List(); + int atMember = 0; + foreach (JsonElement m in RequireArray(t, "members", typePath)) + { + string memberPath = typePath + ".members[" + atMember++ + "]"; + if (m.ValueKind != JsonValueKind.Object) throw Bad(memberPath, "an object"); + + var parameters = new List(); + if (m.TryGetProperty("parameters", out JsonElement ps)) + { + int atParameter = 0; + foreach (JsonElement p in RequireValue(ps, memberPath + ".parameters", JsonValueKind.Array).EnumerateArray()) + { + string parameterPath = memberPath + ".parameters[" + atParameter++ + "]"; + if (p.ValueKind != JsonValueKind.Object) throw Bad(parameterPath, "an object"); + parameters.Add(new CatalogParameter( + RequireString(p, "name", parameterPath), + RequireString(p, "type", parameterPath), + OptionalString(p, "default", parameterPath))); + } + } + + members.Add(new CatalogMember( + RequireString(m, "name", memberPath), + RequireString(m, "kind", memberPath), + RequireString(m, "signature", memberPath), + OptionalString(m, "extensionOn", memberPath), + OptionalString(m, "member", memberPath), + OptionalString(m, "summary", memberPath) ?? "", + OptionalString(m, "value", memberPath), + parameters, + OptionalString(m, "id", memberPath))); + } + + types.Add(new CatalogType( + RequireString(t, "name", typePath), + RequireString(t, "displayName", typePath), + RequireString(t, "kind", typePath), + OptionalString(t, "summary", typePath) ?? "", + members)); + } + + return new ApiCatalog(schema, version, types); + } + } + + private static InvalidDataException Bad(string path, string what) => + new("the API catalog is malformed: " + path + " should be " + what); + + private static JsonElement RequireValue(JsonElement value, string path, JsonValueKind kind) => + value.ValueKind == kind ? value : throw Bad(path, kind.ToString().ToLowerInvariant()); + + private static JsonElement Require(JsonElement parent, string name, string path) + { + if (!parent.TryGetProperty(name, out JsonElement value)) throw Bad(path + "." + name, "present"); + return value; + } + + private static int RequireInt(JsonElement parent, string name, string path) + { + JsonElement value = RequireValue(Require(parent, name, path), path + "." + name, JsonValueKind.Number); + if (!value.TryGetInt32(out int number)) throw Bad(path + "." + name, "a 32-bit number"); + return number; + } + + private static string RequireString(JsonElement parent, string name, string path) => + RequireValue(Require(parent, name, path), path + "." + name, JsonValueKind.String).GetString()!; + + private static string? OptionalString(JsonElement parent, string name, string path) => + parent.TryGetProperty(name, out JsonElement value) + ? RequireValue(value, path + "." + name, JsonValueKind.String).GetString() + : null; + + private static JsonElement[] RequireArray(JsonElement parent, string name, string path) => + [.. RequireValue(Require(parent, name, path), path + "." + name, JsonValueKind.Array).EnumerateArray()]; + + /// + /// Finds Ui.LineChart, CuiSharp.ChartOpts, or a bare member name. An unknown + /// term is not dead air: it comes back with the nearest names, so the next call is one edit + /// away, and an ambiguous one names its owners instead of pretending to answer. + /// + internal CatalogResult Query(string term) + { + // `Ui.LineChart(UiText, ChartOpts)` asks about the same member as `Ui.LineChart`. + string clean = term.Trim(); + int paren = clean.IndexOf('('); + if (paren > 0) clean = clean[..paren].TrimEnd(); + + if (clean.Length == 0) return CatalogResult.Unknown(term, []); + + // `CuiSharp.ChartOpts` is a type name, not an owner and a member: the whole term + // resolves as a type before anything is split, or the qualified name reads as a failed + // owner lookup and answers with suggestions instead of the type the caller asked for. + CatalogType? whole = FindType(clean); + if (whole is not null) return CatalogResult.Exact(term, TypeLines(whole)); + + string[] parts = clean.Split('.'); + if (parts.Length > 1) + { + // An owner was named: either that owner has the member or the term is unknown. + // Falling back to every other type's member of that name would be a confident + // wrong answer — `ChartOpts.Run` must not come back with `CuiApp.Run`. + string ownerName = string.Join('.', parts[..^1]); + string last = parts[^1]; + CatalogType? owner = FindType(ownerName); + if (owner is null) + { + int dot = ownerName.LastIndexOf('.'); + string ownerLeaf = dot < 0 ? ownerName : ownerName[(dot + 1)..]; + return CatalogResult.Unknown(term, [.. Suggest(last).Concat(Suggest(ownerLeaf)).Distinct().Take(3)]); + } + + if (HasMember(owner, last)) return CatalogResult.Exact(term, MemberLines(owner, last)); + return CatalogResult.Unknown(term, [.. SuggestWithin(last, owner.Members.Select(m => m.Name))]); + } + + // A bare member name belongs to whoever declares it. One owner answers the question; + // several owners means the term is ambiguous, and the qualified candidates are it. + List<(CatalogType Owner, CatalogMember Member)> hits = + [.. types.SelectMany(t => t.Members + .Where(m => Equal(m.Name, clean) || Equal(m.SourceName ?? "", clean)) + .Select(m => (Owner: t, Member: m)))]; + if (hits.Count > 0) + { + List owners = [.. hits.Select(h => h.Owner).Distinct()]; + if (owners.Count == 1) return CatalogResult.Exact(term, MemberLines(owners[0], clean)); + + var lines = new List(); + foreach (CatalogType owner in owners) + { + foreach (CatalogMember member in owner.Members.Where(m => Equal(m.Name, clean) || Equal(m.SourceName ?? "", clean))) + lines.Add($"{owner.DisplayName}.{member.Name} {member.Signature}"); + if (lines.Count >= MaxCandidates) break; + } + + if (owners.Count > MaxCandidates) + lines.Add($"… {owners.Count} owners in all; name the owner to narrow it (`{owners[0].DisplayName}.{clean}`)."); + return CatalogResult.Ambiguous(term, [.. lines.Distinct().Take(MaxCandidates + 1)]); + } + + List candidates = Candidates(clean); + if (candidates.Count > 0) return CatalogResult.Ambiguous(term, candidates); + return CatalogResult.Unknown(term, [.. Suggest(clean)]); + } + + /// How many qualified candidates an ambiguous answer lists before pointing at the owners. + private const int MaxCandidates = 15; + + private CatalogType? FindType(string name) => + types.FirstOrDefault(t => Equal(t.Name, name) || Equal(Arityless(t.Name), name) || Equal(t.DisplayName, name)); + + /// `CuiSharp.KeyFn`1` is reachable as `CuiSharp.KeyFn` too. + private static string Arityless(string name) + { + int tick = name.IndexOf('`'); + return tick < 0 ? name : name[..tick]; + } + + private static bool HasMember(CatalogType owner, string name) => + owner.Members.Any(m => Equal(m.Name, name) || Equal(m.SourceName ?? "", name)); + + private static bool Equal(string a, string b) => string.Equals(a, b, StringComparison.OrdinalIgnoreCase); + + private List TypeLines(CatalogType type) + { + var lines = new List { $"{type.DisplayName} [{type.Kind}]" }; + if (type.Summary.Length > 0) lines.Add($" {type.Summary}"); + foreach (CatalogMember member in type.Members) + { + // The declaration is the answer: return type, parameter types, defaults, values. + // A hoisted extension gets its call form as an example beneath it, never in place + // of the signature — a field rendered as `ui.Width` is neither declaration nor call. + lines.Add($" {member.Signature}"); + if (member.ExtensionOn is not null) lines.Add($" call: {Call(member)}"); + if (member.Summary.Length > 0) lines.Add($" {member.Summary}"); + } + + return lines; + } + + private List MemberLines(CatalogType owner, string name) + { + var lines = new List(); + foreach (CatalogMember member in owner.Members.Where(m => Equal(m.Name, name) || Equal(m.SourceName ?? "", name))) + { + string line = member.ExtensionOn is not null + ? $"{member.Signature} call: {Call(member)}" + : member.Name == ".ctor" || member.Kind is "operator" or "conversion" + ? $"{owner.DisplayName}.{member.Name} {member.Signature}" + : member.Signature; + lines.Add(line); + if (member.Summary.Length > 0) lines.Add($" {member.Summary}"); + } + + return lines; + } + + /// How the call is typed: `ui.Button(UiText label, ButtonOpts o = default)`. + private static string Call(CatalogMember member) + { + int arguments = member.Signature.IndexOf('('); + return arguments < 0 ? $"ui.{member.Name}" : $"ui.{member.Name}{member.Signature[arguments..]}"; + } + + /// + /// The icon index straight off the constant fields: name, private-use code point, and the + /// literal to paste. The filter matches anywhere in the name, empty shows all. + /// + internal IReadOnlyList Icons(string? filter) + { + CatalogType? icons = types.FirstOrDefault(t => Equal(t.Name, "CuiSharp.Icons")); + if (icons is null) return ["the catalog has no icon constants."]; + + var lines = new List(); + foreach (CatalogMember member in icons.Members.Where(m => m.Kind == "constant")) + { + if (filter is { Length: > 0 } && !member.Name.Contains(filter, StringComparison.OrdinalIgnoreCase)) continue; + string codepoint = member.Value is { Length: > 0 } glyph + ? $"U+{(int)glyph[0]:X4}" + : "?"; + string literal = member.Value is { Length: > 0 } g && g.Length == 1 + ? $"\"\\u{(int)g[0]:X4}\"" + : JsonSerializer.Serialize(member.Value ?? ""); + lines.Add($"{member.Name,-28} {codepoint} {literal}"); + } + + return lines.Count > 0 ? lines : [$"no icon matches \"{filter}\". `cui icons` lists them all."]; + } + + private List Candidates(string clean) + { + var names = new SortedSet(StringComparer.OrdinalIgnoreCase); + foreach (CatalogType type in types) + { + if (type.DisplayName.Contains(clean, StringComparison.OrdinalIgnoreCase)) names.Add(type.DisplayName); + foreach (CatalogMember member in type.Members) + if (member.Name.Contains(clean, StringComparison.OrdinalIgnoreCase)) names.Add(member.Name); + } + + return [.. names.Take(20)]; + } + + private IEnumerable Suggest(string term) => SuggestWithin(term, AllNames()); + + /// + /// Nearest names within a given set. Distance is case-insensitive because the lookup is: + /// a reader who mistyped `linchrt` must still be offered `LineChart`. + /// + private static IEnumerable SuggestWithin(string term, IEnumerable names) + { + int budget = Math.Max(2, term.Length / 2); + string needle = term.ToLowerInvariant(); + var scored = new List<(int Distance, string Name)>(); + foreach (string name in names) + { + if (Math.Abs(name.Length - term.Length) > budget) continue; + int distance = EditDistance(needle, name.ToLowerInvariant()); + if (distance <= budget) scored.Add((distance, name)); + } + + return scored + .OrderBy(s => s.Distance).ThenBy(s => s.Name, StringComparer.Ordinal) + .Select(s => s.Name) + .Distinct() + .Take(3); + } + + private IEnumerable AllNames() + { + foreach (CatalogType type in types) + { + yield return type.DisplayName; + foreach (CatalogMember member in type.Members) yield return member.Name; + } + } + + private static int EditDistance(string a, string b) + { + int[] row = new int[b.Length + 1]; + for (int j = 0; j <= b.Length; j++) row[j] = j; + for (int i = 1; i <= a.Length; i++) + { + int previous = row[0]; + row[0] = i; + for (int j = 1; j <= b.Length; j++) + { + int swap = row[j]; + row[j] = Math.Min(row[j] + 1, Math.Min(row[j - 1] + 1, previous + (a[i - 1] == b[j - 1] ? 0 : 1))); + previous = swap; + } + } + + return row[b.Length]; + } +} + +internal sealed record CatalogType(string Name, string DisplayName, string Kind, string Summary, IReadOnlyList Members); + +internal sealed record CatalogMember( + string Name, string Kind, string Signature, string? ExtensionOn, string? SourceName, string Summary, string? Value, + IReadOnlyList Parameters, string? Id = null); + +internal sealed record CatalogParameter(string Name, string Type, string? Default); + +internal enum CatalogMatch +{ + /// The term named exactly one type or one set of member overloads. + Exact, + + /// Nothing matched exactly, but these names do. + Ambiguous, + + /// Nothing matched; the suggestions are the point. + Unknown, +} + +internal sealed class CatalogResult +{ + private CatalogResult(CatalogMatch match, string term, IReadOnlyList lines, IReadOnlyList suggestions) + { + Match = match; + Term = term; + Lines = lines; + Suggestions = suggestions; + } + + internal CatalogMatch Match { get; } + + /// Exit-code ready: exact answers succeed, everything else is a mistake worth naming. + internal bool IsExact => Match == CatalogMatch.Exact; + + internal string Term { get; } + + internal IReadOnlyList Lines { get; } + + internal IReadOnlyList Suggestions { get; } + + internal string Render() => string.Join('\n', Lines); + + internal string RenderJson() + { + var sb = new StringBuilder("{ \"match\": ") + .Append(JsonSerializer.Serialize(Match.ToString().ToLowerInvariant())) + .Append(", \"term\": ").Append(JsonSerializer.Serialize(Term)) + .Append(", \"lines\": [").Append(string.Join(", ", Lines.Select(s => JsonSerializer.Serialize(s)))) + .Append("], \"suggestions\": [").Append(string.Join(", ", Suggestions.Select(s => JsonSerializer.Serialize(s)))) + .Append("] }"); + return sb.ToString(); + } + + internal static CatalogResult Exact(string term, IReadOnlyList lines) => new(CatalogMatch.Exact, term, lines, []); + + internal static CatalogResult Ambiguous(string term, IReadOnlyList candidates) => new(CatalogMatch.Ambiguous, term, candidates, []); + + /// + /// Unknown is never dead air: the explanation is the answer even when no name is close, + /// so the caller learns to re-ask rather than reading silence as "no such API". + /// + internal static CatalogResult Unknown(string term, IReadOnlyList suggestions) + { + var lines = new List + { + suggestions.Count > 0 + ? $"nothing named \"{term}\" is in the CuiSharp catalog." + : $"nothing named \"{term}\" is in the CuiSharp catalog, and no name is close.", + }; + if (suggestions.Count > 0) lines.Add("nearest: " + string.Join(", ", suggestions)); + lines.Add("name the owner to narrow it — `api Ui.Button`, `api ChartOpts` — or `cui icons` for glyphs."); + return new(CatalogMatch.Unknown, term, lines, suggestions); + } +} diff --git a/tools/export-api.cs b/tools/export-api.cs new file mode 100644 index 0000000..bb5c7a9 --- /dev/null +++ b/tools/export-api.cs @@ -0,0 +1,1797 @@ +#:property PublishAot=false +// CuiSharp managed-API exporter. +// +// Reads the BUILT CuiSharp assembly and its XML documentation and emits the one catalog a +// consumer needs: `skills/cui-dotnet/api/catalog.json`. This is the only place reflection is +// allowed to run (the other is the test that keeps it honest); `dotnet cui` ships the JSON as +// embedded data and reflects over nothing at run time. +// +// dotnet run tools/export-api.cs # write the catalog +// dotnet run tools/export-api.cs --check # fail if the checked-in catalog is stale +// dotnet run tools/export-api.cs --self-test # contract checks against the live build, +// # writes nothing into the repository +// +// C# 14 extension members compile to nested `$`/`$` carrier types. They are metadata, +// not API: the catalog drops the carriers and hoists their callable members onto the type +// they extend, so a query for `Ui.Button` finds the button. +// +// Output is deterministic: every collection sorted ordinal, invariant culture, LF newlines. + +using System.Globalization; +using System.Reflection; +using System.Reflection.Metadata; +using System.Reflection.PortableExecutable; +using System.Runtime.CompilerServices; +using System.Runtime.Loader; +using System.Security.Cryptography; +using System.Text; +using System.Text.Json; + +bool check = args.Contains("--check"); +bool selfTest = args.Contains("--self-test"); +string root = FindRepoRoot(Environment.CurrentDirectory); + +string assemblyPath = OptionValue(args, "--assembly") + ?? Path.Combine(root, "src", "CuiSharp", "bin", "Release", "net10.0", "CuiSharp.dll"); +string xmlPath = OptionValue(args, "--xml") + ?? Path.Combine(Path.GetDirectoryName(assemblyPath)!, Path.GetFileNameWithoutExtension(assemblyPath) + ".xml"); +string outPath = OptionValue(args, "--out") + ?? Path.Combine(root, "skills", "cui-dotnet", "api", "catalog.json"); + +if (!File.Exists(assemblyPath)) + throw new InvalidOperationException($"built assembly not found: {assemblyPath} (build src/CuiSharp -c Release first)"); +if (!File.Exists(xmlPath)) + Console.Error.WriteLine($"warning: no XML documentation at {xmlPath}; summaries will be empty"); + +string assetsPath = OptionValue(args, "--assets") + ?? Path.Combine(root, "src", "CuiSharp", "obj", "project.assets.json"); +AssetResolver.Hook(Path.GetDirectoryName(assemblyPath)!, assetsPath); +var assembly = Assembly.LoadFrom(assemblyPath); +var docs = Documentation.Load(xmlPath); +var inits = InitAccessors.Load(assemblyPath); +var modopts = NullableModopts.Load(assemblyPath); +var catalog = Catalog.Build(assembly, docs, inits, modopts); +string json = Catalog.Render(catalog, assembly); + +int failures = 0; +if (selfTest) +{ + failures = SelfTest.Run(json, assembly, docs, assetsPath); +} +else if (check) +{ + string current = File.Exists(outPath) ? File.ReadAllText(outPath).Replace("\r\n", "\n") : ""; + if (current != json) + { + Console.Error.WriteLine($"catalog is stale or missing: {outPath}"); + Console.Error.WriteLine("regenerate with: dotnet run tools/export-api.cs"); + return 1; + } + + Console.WriteLine("export-api: no diff"); +} +else +{ + Directory.CreateDirectory(Path.GetDirectoryName(outPath)!); + File.WriteAllText(outPath, json); + Console.WriteLine($"export-api: {catalog.Types.Count} types, {catalog.Types.Sum(t => t.Members.Count)} members, {docs.Summaries} summaries -> {Path.GetRelativePath(root, outPath)}"); +} + +return failures; + +static string? OptionValue(string[] args, string name) +{ + int at = Array.IndexOf(args, name); + return at >= 0 && at + 1 < args.Length ? args[at + 1] : null; +} + +static string FindRepoRoot(string start) +{ + for (string? dir = start; dir is not null; dir = Path.GetDirectoryName(dir)) + if (File.Exists(Path.Combine(dir, "CuiSharp.slnx"))) return dir; + throw new InvalidOperationException("not inside the CuiSharp repository"); +} + + + +/// +/// The library's public signatures reference NuGet types (Hosting takes DI abstractions), +/// and a library build does not copy them next to its dll. The restored assets file is the +/// record of which package asset restore selected — deps.json names libraries but not the +/// package roots, so it cannot answer that. Resolve against the assets file instead of +/// hoping the machine's current shared framework happens to contain the dependency: a newer +/// shared framework masking the problem is exactly how a broken resolution stays hidden. +/// +internal static class AssetResolver +{ + public static void Hook(string assemblyDir, string assetsPath) + { + Dictionary assets = ReadAssets(assetsPath); + AssemblyLoadContext.Default.Resolving += (ctx, name) => + { + string local = Path.Combine(assemblyDir, name.Name + ".dll"); + if (File.Exists(local)) return ctx.LoadFromAssemblyPath(local); + return assets.TryGetValue(name.Name ?? "", out string? path) ? ctx.LoadFromAssemblyPath(path) : null; + }; + } + + /// Assembly simple name -> file, exactly as the restore picked it. + public static Dictionary ReadAssets(string assetsPath) + { + var map = new Dictionary(StringComparer.OrdinalIgnoreCase); + if (!File.Exists(assetsPath)) return map; + using var doc = JsonDocument.Parse(File.ReadAllText(assetsPath)); + JsonElement root = doc.RootElement; + if (root.ValueKind != JsonValueKind.Object + || !root.TryGetProperty("packageFolders", out JsonElement folders) || folders.ValueKind != JsonValueKind.Object + || !root.TryGetProperty("targets", out JsonElement targets)) return map; + + // packageFolders lists the caches by *property name*, not by value. + string[] caches = [.. folders.EnumerateObject().Select(p => p.Name)]; + + // The restored folder is libraries[].path: the target key keeps the package's display + // casing (Microsoft.Extensions.DependencyInjection.Abstractions) while the folder on disk + // is lowercase. Reconstructing from the key works only on file systems that do not care. + var libraryPaths = new Dictionary(StringComparer.Ordinal); + if (root.TryGetProperty("libraries", out JsonElement libraries) && libraries.ValueKind == JsonValueKind.Object) + foreach (JsonProperty library in libraries.EnumerateObject()) + if (library.Value.ValueKind == JsonValueKind.Object + && library.Value.TryGetProperty("path", out JsonElement path) && path.ValueKind == JsonValueKind.String) + libraryPaths[library.Name] = path.GetString()!; + + foreach (JsonProperty target in targets.EnumerateObject()) + { + // The framework target without a rid suffix is the one this restore chose. The + // assets file spells a rid-qualified target with a slash ("….Version=v10.0/win-x64"); + // that, not a bracket that never appears in the name, is the filter. Take the first + // framework-only target and stop, so the map never depends on enumeration of a second. + if (target.Value.ValueKind != JsonValueKind.Object || target.Name.Contains('/')) continue; + foreach (JsonProperty library in target.Value.EnumerateObject()) + { + if (library.Value.ValueKind != JsonValueKind.Object + || !library.Value.TryGetProperty("type", out JsonElement type) || type.GetString() != "package") continue; + if (!libraryPaths.TryGetValue(library.Name, out string? packagePath)) continue; + // Known caveat, harmless on this graph and reported rather than redesigned: + // `compile` is read last, so a package shipping distinct runtime and compile + // assets would end mapped to its reference assembly. Nothing this project + // restores differs today (every runtime/compile pair is the same file); if one + // ever differs, runtime must win — this map feeds an executing assembly. + foreach (string section in new[] { "runtime", "compile" }) + { + if (!library.Value.TryGetProperty(section, out JsonElement files) || files.ValueKind != JsonValueKind.Object) continue; + foreach (JsonProperty file in files.EnumerateObject()) + { + if (!file.Name.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)) continue; + foreach (string cache in caches) + { + string candidate = Path.Combine(cache, + packagePath.Replace('/', Path.DirectorySeparatorChar), + file.Name.Replace('/', Path.DirectorySeparatorChar)); + if (File.Exists(candidate)) map[Path.GetFileNameWithoutExtension(file.Name)] = candidate; + } + } + } + } + + break; + } + + return map; + } +} + +/// +/// Which properties carry an `init` accessor, and (via beside it) +/// which generic parameters the source wrote as `T?`. Both facts live only in signature +/// modifiers — an IsExternalInit modreq on a setter's return, a NullableAttribute modopt on a +/// `T?` — and reflection's attribute API does not surface signature modifiers, so the +/// assembly's own metadata signatures are the only honest answer. +/// +internal sealed class InitAccessors +{ + private readonly HashSet properties; + + private InitAccessors(HashSet properties) => this.properties = properties; + + public static InitAccessors Empty { get; } = new([]); + + public static InitAccessors Load(string assemblyPath) + { + var set = new HashSet(StringComparer.Ordinal); + if (!File.Exists(assemblyPath)) return new InitAccessors(set); + using var stream = File.OpenRead(assemblyPath); + using var pe = new PEReader(stream); + if (!pe.HasMetadata) return new InitAccessors(set); + + MetadataReader md = pe.GetMetadataReader(); + var modifier = new ReturnTypeModifier(); + foreach (TypeDefinitionHandle typeHandle in md.TypeDefinitions) + { + TypeDefinition type = md.GetTypeDefinition(typeHandle); + string ns = md.GetString(type.Namespace); + string name = md.GetString(type.Name); + string full = ns.Length == 0 ? name : ns + "." + name; + foreach (PropertyDefinitionHandle propertyHandle in type.GetProperties()) + { + PropertyDefinition property = md.GetPropertyDefinition(propertyHandle); + MethodDefinitionHandle setterHandle = property.GetAccessors().Setter; + if (setterHandle.IsNil) continue; + string returnType = md.GetMethodDefinition(setterHandle).DecodeSignature(modifier, null).ReturnType; + if (returnType.StartsWith("modreq:System.Runtime.CompilerServices.IsExternalInit", StringComparison.Ordinal)) + set.Add(full + "." + md.GetString(property.Name)); + } + } + + return new InitAccessors(set); + } + + public bool IsInit(Type owner, string propertyName) => + properties.Contains((owner.FullName ?? owner.Name) + "." + propertyName); + + /// Builds just enough of a return-type name to see whether an init modreq wraps it. + private sealed class ReturnTypeModifier : System.Reflection.Metadata.ISignatureTypeProvider + { + public string GetArrayType(string element, System.Reflection.Metadata.ArrayShape shape) => element + "[]"; + public string GetSZArrayType(string element) => element + "[]"; + public string GetByReferenceType(string element) => element + "&"; + public string GetPointerType(string element) => element + "*"; + public string GetPinnedType(string element) => element; + public string GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature) => "fnptr"; + public string GetGenericInstantiation(string genericType, System.Collections.Immutable.ImmutableArray typeArguments) => genericType; + public string GetGenericMethodParameter(object? genericContext, int index) => "!!" + index; + public string GetGenericTypeParameter(object? genericContext, int index) => "`" + index; + public string GetModifiedType(string modifier, string unmodifiedType, bool isRequired) + => isRequired ? "modreq:" + modifier + ":" + unmodifiedType : unmodifiedType; + public string GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode typeCode) => typeCode.ToString(); + public string GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader md, System.Reflection.Metadata.TypeDefinitionHandle type, byte rawTypeKind) + { + System.Reflection.Metadata.TypeDefinition definition = md.GetTypeDefinition(type); + string ns = md.GetString(definition.Namespace); + string name = md.GetString(definition.Name); + return ns.Length == 0 ? name : ns + "." + name; + } + + public string GetTypeFromReference(System.Reflection.Metadata.MetadataReader md, System.Reflection.Metadata.TypeReferenceHandle type, byte rawTypeKind) + { + System.Reflection.Metadata.TypeReference reference = md.GetTypeReference(type); + string ns = md.GetString(reference.Namespace); + string name = md.GetString(reference.Name); + return ns.Length == 0 ? name : ns + "." + name; + } + + public string GetTypeFromSerializedName(string name) => name; + + public string GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader md, object? genericContext, + System.Reflection.Metadata.TypeSpecificationHandle type, byte rawTypeKind) => + md.GetTypeSpecification(type).DecodeSignature(this, genericContext); + public System.Reflection.Metadata.PrimitiveTypeCode GetUnderlyingEnumType(string type) => System.Reflection.Metadata.PrimitiveTypeCode.Int32; + public bool IsSystemType(string type) => type == "System.Type"; + } +} + +/// +/// Which generic parameters a member wrote as `T?`. For an unconstrained `T`, the bare `T` +/// and the annotated `T?` are the same runtime type, and NullabilityInfoContext reports both +/// as Nullable — the compiler's per-element NullableAttribute modopt in the signature is what +/// tells them apart (`in T item` bare, `out T? result` annotated). This pass collects, per +/// method parameter / return / field, the generic parameters carrying that modopt. +/// +internal sealed class NullableModopts +{ + private readonly Dictionary> sets; + private readonly Dictionary contexts; + + private NullableModopts(Dictionary> sets, Dictionary contexts) + { + this.sets = sets; + this.contexts = contexts; + } + + public static NullableModopts Empty { get; } = new([], []); + + public static NullableModopts Load(string assemblyPath) + { + var sets = new Dictionary>(); + var contexts = new Dictionary(); + if (!File.Exists(assemblyPath)) return new NullableModopts(sets, contexts); + using var stream = File.OpenRead(assemblyPath); + using var pe = new PEReader(stream); + if (!pe.HasMetadata) return new NullableModopts(sets, contexts); + + MetadataReader md = pe.GetMetadataReader(); + var provider = new Marker(); + int methodRid = 1; + foreach (MethodDefinitionHandle handle in md.MethodDefinitions) + { + int token = 0x06000000 | methodRid++; // MethodDefinition table token + try + { + MethodSignature signature = md.GetMethodDefinition(handle).DecodeSignature(provider, null); + Add(sets, token, -1, signature.ReturnType); + for (int i = 0; i < signature.ParameterTypes.Length; i++) + Add(sets, token, i, signature.ParameterTypes[i]); + } + catch (Exception) { /* an undecodable signature keeps its parameters unannotated */ } + + try + { + (byte, bool)? context = ReadContext(md, md.GetMethodDefinition(handle)); + if (context is not null) contexts[token] = context.Value; + } + catch (Exception) { } + } + + int fieldRid = 1; + foreach (FieldDefinitionHandle handle in md.FieldDefinitions) + { + try + { + int token = 0x04000000 | fieldRid++; // FieldDefinition table token + Add(sets, token, 0, md.GetFieldDefinition(handle).DecodeSignature(provider, null)); + } + catch (Exception) { } + } + + return new NullableModopts(sets, contexts); + } + + /// + /// NullableContext defaults the whole member to nullable (byte 2) whenever every annotable + /// element agrees — that is how `out T? result` reaches metadata without a modopt or a blob. + /// A member that also carries a per-element NullableAttribute blob has disagreed somewhere, + /// and only explicit modopts may then annotate a generic leaf. + /// + private static (byte, bool)? ReadContext(MetadataReader md, MethodDefinition definition) + { + byte context = 0; + bool hasBlob = false; + foreach (CustomAttributeHandle attributeHandle in definition.GetCustomAttributes()) + { + CustomAttribute attribute = md.GetCustomAttribute(attributeHandle); + if (attribute.Constructor.Kind != HandleKind.MemberReference) continue; + MemberReference reference = md.GetMemberReference((MemberReferenceHandle)attribute.Constructor); + if (reference.Parent.Kind != HandleKind.TypeReference) continue; + string name = md.GetString(md.GetTypeReference((TypeReferenceHandle)reference.Parent).Name); + byte[] value = md.GetBlobBytes(attribute.Value); + if (name == "NullableContextAttribute" && value.Length >= 3) context = value[2]; + else if (name == "NullableAttribute") hasBlob = true; + } + + return context == 0 && !hasBlob ? null : (context, hasBlob); + } + + /// The generic parameters slot 0..n (or -1 for the return) wrote as `T?`, or null. + public HashSet<(bool TypeParameter, int Index)>? For(MethodBase member, int slot) => + sets.TryGetValue(Key(member.MetadataToken, slot), out HashSet<(bool, int)>? set) ? set : null; + + /// + /// The reflection types slot 0..n (or -1 for the return) wrote as `T?`. A leaf is annotated + /// when the signature carried its modopt, or when the member's whole-member default says + /// nullable and nothing contradicted it. Null means "the member annotates nothing". + /// + public HashSet? AnnotatedTypes(MethodBase member, int slot) + { + HashSet? resolved = null; + HashSet<(bool TypeParameter, int Index)>? raw = For(member, slot); + Type[] typeParameters = member.DeclaringType?.GetGenericArguments() ?? []; + Type[] methodParameters = member is MethodInfo method ? method.GetGenericArguments() : []; + if (raw is not null) + { + resolved = new HashSet(); + foreach ((bool typeParameter, int index) in raw) + { + Type?[] source = typeParameter ? typeParameters : methodParameters; + if (index < source.Length && source[index] is Type found) resolved.Add(found); + } + } + + if (contexts.TryGetValue(member.MetadataToken, out (byte Context, bool HasElementBlob) context) && context.Context == 2 && !context.HasElementBlob) + { + // Uniform nullable default: every generic parameter this member can name. + resolved ??= []; + foreach (Type parameter in typeParameters) resolved.Add(parameter); + foreach (Type parameter in methodParameters) resolved.Add(parameter); + } + + return resolved; + } + + public HashSet? AnnotatedFieldTypes(FieldInfo field) + { + HashSet<(bool TypeParameter, int Index)>? raw = ForField(field); + if (raw is null) return null; + Type[] typeParameters = field.DeclaringType?.GetGenericArguments() ?? []; + var resolved = new HashSet(); + foreach ((bool _, int index) in raw) + if (index < typeParameters.Length) resolved.Add(typeParameters[index]); + + return resolved; + } + + public HashSet<(bool TypeParameter, int Index)>? ForField(FieldInfo field) => + sets.TryGetValue(Key(field.MetadataToken, 0), out HashSet<(bool, int)>? set) ? set : null; + + private static long Key(int token, int slot) => ((long)token << 32) | (uint)(slot + 1); + + private static void Add(Dictionary> sets, int token, int slot, string marker) + { + HashSet<(bool, int)>? found = Extract(marker); + if (found is not null) sets[Key(token, slot)] = found; + } + + /// + /// Generic parameters inside an `N[...]` (NullableAttribute modopt) region of the decoded + /// signature marker. + /// + private static HashSet<(bool, int)>? Extract(string marker) + { + HashSet<(bool, int)>? set = null; + for (int i = 0; i < marker.Length - 1; i++) + { + if (marker[i] != 'N' || marker[i + 1] != '[') continue; + int depth = 0, end = i + 1; + for (; end < marker.Length; end++) + { + if (marker[end] == '[') depth++; + else if (marker[end] == ']' && --depth == 0) break; + } + + for (int j = i + 2; j < end; j++) + { + if (marker[j] != '!') continue; + bool typeParameter = marker[j + 1] != '!'; + j += typeParameter ? 0 : 1; + int start = j + 1; + while (j + 1 < end && char.IsDigit(marker[j + 1])) j++; + (set ??= []).Add((typeParameter, int.Parse(marker.AsSpan(start, j - start + 1)))); + } + } + + return set; + } + + /// Builds a signature string that marks NullableAttribute modopts and generic parameters. + private sealed class Marker : System.Reflection.Metadata.ISignatureTypeProvider + { + public string GetArrayType(string element, System.Reflection.Metadata.ArrayShape shape) => "A[" + element + "]"; + public string GetSZArrayType(string element) => "S[" + element + "]"; + public string GetByReferenceType(string element) => "R[" + element + "]"; + public string GetPointerType(string element) => "P[" + element + "]"; + public string GetPinnedType(string element) => element; + public string GetFunctionPointerType(System.Reflection.Metadata.MethodSignature signature) => "fnptr"; + public string GetGenericInstantiation(string genericType, System.Collections.Immutable.ImmutableArray typeArguments) + => genericType + "<" + string.Join(",", typeArguments) + ">"; + public string GetGenericMethodParameter(object? genericContext, int index) => "!!" + index; + public string GetGenericTypeParameter(object? genericContext, int index) => "!" + index; + public string GetModifiedType(string modifier, string unmodifiedType, bool isRequired) + => modifier.EndsWith(".NullableAttribute", StringComparison.Ordinal) && !isRequired ? "N[" + unmodifiedType + "]" : unmodifiedType; + public string GetPrimitiveType(System.Reflection.Metadata.PrimitiveTypeCode typeCode) => typeCode.ToString(); + public string GetTypeFromDefinition(System.Reflection.Metadata.MetadataReader md, System.Reflection.Metadata.TypeDefinitionHandle type, byte rawTypeKind) + { + System.Reflection.Metadata.TypeDefinition definition = md.GetTypeDefinition(type); + string ns = md.GetString(definition.Namespace); + return ns.Length == 0 ? md.GetString(definition.Name) : ns + "." + md.GetString(definition.Name); + } + + public string GetTypeFromReference(System.Reflection.Metadata.MetadataReader md, System.Reflection.Metadata.TypeReferenceHandle type, byte rawTypeKind) + { + System.Reflection.Metadata.TypeReference reference = md.GetTypeReference(type); + string ns = md.GetString(reference.Namespace); + return ns.Length == 0 ? md.GetString(reference.Name) : ns + "." + md.GetString(reference.Name); + } + + public string GetTypeFromSerializedName(string name) => name; + public string GetTypeFromSpecification(System.Reflection.Metadata.MetadataReader md, object? genericContext, + System.Reflection.Metadata.TypeSpecificationHandle type, byte rawTypeKind) => + md.GetTypeSpecification(type).DecodeSignature(this, genericContext); + public System.Reflection.Metadata.PrimitiveTypeCode GetUnderlyingEnumType(string type) => System.Reflection.Metadata.PrimitiveTypeCode.Int32; + public bool IsSystemType(string type) => type == "System.Type"; + } +} + +/// The catalog document. Public field shapes are the JSON shape, one member per line. +internal sealed class Catalog +{ + public List Types { get; } = []; + + public static Catalog Build(Assembly assembly, Documentation docs, InitAccessors inits, NullableModopts modopts) + { + var catalog = new Catalog(); + var hoisted = new Dictionary>(StringComparer.Ordinal); + + foreach (Type type in assembly.GetExportedTypes().OrderBy(t => t.FullName, StringComparer.Ordinal)) + { + if (CatalogFilter.IsCompilerMetadata(type)) continue; + CatalogType entry = CatalogType.For(type, docs, hoisted, inits, modopts); + if (entry is not null) catalog.Types.Add(entry); + } + + // Extension members were collected off the carrier classes; they belong to the type they + // extend, which is what `ui.Button(...)` reads like and what a query for `Ui.Button` finds. + foreach (CatalogType entry in catalog.Types) + if (hoisted.Remove(entry.Name, out List? extra)) + { + entry.Members.AddRange(extra); + entry.Members.Sort((a, b) => string.CompareOrdinal(a.Signature, b.Signature)); + } + + foreach ((string target, List members) in hoisted) + throw new InvalidOperationException($"extension members name unknown target {target}: {members[0].Name}"); + + return catalog; + } + + public static string Render(Catalog catalog, Assembly assembly) + { + var info = assembly.GetCustomAttribute(); + string version = (info?.InformationalVersion ?? assembly.GetName().Version?.ToString() ?? "0.0.0").Split('+')[0]; + + var sb = new StringBuilder(); + sb.Append('{').Append('\n'); + sb.Append(" \"schema\": 1,").Append('\n'); + sb.Append(" \"generator\": \"tools/export-api.cs\"").Append(",\n"); + sb.Append($" \"assembly\": {JsonSerializer.Serialize(assembly.GetName().Name)},").Append('\n'); + sb.Append($" \"version\": {JsonSerializer.Serialize(version)},").Append('\n'); + sb.Append(" \"types\": [").Append('\n'); + for (int i = 0; i < catalog.Types.Count; i++) + { + sb.Append(" ").Append(catalog.Types[i].ToJson()); + sb.Append(i + 1 < catalog.Types.Count ? "," : "").Append('\n'); + } + + sb.Append(" ]").Append('\n').Append('}').Append('\n'); + return sb.ToString(); + } +} + +/// +/// What is compiler metadata rather than API: C# 14 extension carriers (`$`/`$` nested +/// types), closures, and anything the compiler marked generated. The carrier's callable members +/// are hoisted onto the extended type before this filter is asked about them, so nothing that a +/// person can call is dropped. +/// +internal static class CatalogFilter +{ + public static bool IsCompilerMetadata(Type type) => + type.Name.Contains('$') || + type.Name.Contains('<') || + type.IsDefined(typeof(CompilerGeneratedAttribute), false); + + /// True for the nested carrier types the compiler builds for `extension` blocks. + public static bool IsExtensionCarrier(Type type) => type.DeclaringType is not null && type.Name.Contains("$"); +} + +internal sealed class CatalogType +{ + public required string Name { get; init; } + public required string DisplayName { get; init; } + public required string Kind { get; init; } + public string Summary { get; init; } = ""; + public List Members { get; } = []; + + /// Build one entry; null when the type is filtered out entirely. + public static CatalogType? For(Type type, Documentation docs, Dictionary> hoisted, InitAccessors inits, NullableModopts modopts) + { + if (CatalogFilter.IsCompilerMetadata(type)) return null; + + // A C# 14 `extension` block compiles to a static class whose forwarding methods carry + // [Extension] and take the receiver first; the implementations live in nested `$` + // carriers. The classification is per member, not per class: only those methods are + // hoisted onto the type they extend — which is what `ui.Button(...)` reads like and + // what `Ui.Button` finds — and every other member of the class (fields, properties, + // zero-parameter or unattributed methods) stays on the class as ordinary API, exactly + // once. The host itself is metadata only when nothing of its own is left. + List forwarded = ForwardedExtensionMethods(type); + foreach (MethodInfo m in forwarded) + { + CatalogMember member = CatalogMember.ForMethod(m, docs, m.GetParameters()[0].ParameterType, modopts); + string target = member.ExtensionOn!; + if (!hoisted.TryGetValue(target, out List? list)) hoisted[target] = list = []; + list.Add(member); + } + + // An enum's public surface is its enumerands, each listed once with its value. The + // `value__` field is the compiler's backing storage and a field walk finds it, so the + // enum path enumerates the fields itself and skips the general member walk entirely. + List own = type.IsEnum + ? [.. type.GetFields(BindingFlags.Public | BindingFlags.Static) + .Where(f => !f.IsSpecialName) + .OrderBy(f => f.Name, StringComparer.Ordinal) + .Select(f => CatalogMember.ForEnumValue(f, docs))] + : [.. MembersOf(type, docs, [.. forwarded.Select(m => m.MetadataToken)], inits, modopts)]; + + if (forwarded.Count > 0 && own.Count == 0) return null; + + var entry = new CatalogType + { + Name = type.FullName ?? type.Name, + DisplayName = FriendlyName(type.Name), + Kind = KindOf(type), + Summary = docs.SummaryFor("T:" + DocId.TypeKey(type)), + }; + entry.Members.AddRange(own); + entry.Members.Sort((a, b) => string.CompareOrdinal(a.Signature, b.Signature)); + return entry; + } + + /// `KeyFn`1` is metadata syntax; the catalog calls the type `KeyFn`. + private static string FriendlyName(string metadataName) + { + int tick = metadataName.IndexOf('`'); + return tick < 0 ? metadataName : metadataName[..tick]; + } + + /// + /// The forwarding extension methods of a static class: attributed by the compiler + /// (`System.Runtime.CompilerServices.ExtensionAttribute`) and taking the receiver as the + /// first parameter. Everything else on the class is ordinary API and stays there. + /// + private static List ForwardedExtensionMethods(Type type) + { + if (!type.IsAbstract || !type.IsSealed) return []; + return [.. type.GetMethods(BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly) + .Where(m => !m.IsSpecialName && !m.Name.Contains('$') && m.GetParameters().Length > 0 + && m.GetCustomAttributesData().Any(a => + a.AttributeType.FullName == "System.Runtime.CompilerServices.ExtensionAttribute")) + .OrderBy(m => m.Name, StringComparer.Ordinal)]; + } + + private static IEnumerable MembersOf(Type type, Documentation docs, HashSet? forwardedTokens = null, InitAccessors? inits = null, NullableModopts? modopts = null) + { + modopts ??= NullableModopts.Empty; + const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static | BindingFlags.DeclaredOnly; + + // Identity for "already hoisted onto the type it extends" is the method's metadata + // token. Name plus parameter types would collide between a forwarding overload and an + // ordinary generic one (`Extend(this int)` and `Extend(int)`), and the ordinary + // method would then vanish from the host next to the extension that shares its name. + HashSet skip = forwardedTokens ?? []; + + // Operators are special-named (`op_Implicit`) but they are the API of a type like Size; + // everything else special-named is an accessor a property entry already carries. + foreach (MethodInfo m in type.GetMethods(flags) + .Where(m => (!m.IsSpecialName || m.Name.StartsWith("op_", StringComparison.Ordinal)) && !m.Name.Contains('$') && !skip.Contains(m.MetadataToken)) + .OrderBy(m => m.Name, StringComparer.Ordinal)) + yield return CatalogMember.ForMethod(m, docs, null, modopts); + + foreach (ConstructorInfo c in type.GetConstructors(flags).OrderBy(c => c.GetParameters().Length)) + yield return CatalogMember.ForCtor(c, docs, modopts); + + foreach (PropertyInfo p in type.GetProperties(flags).OrderBy(p => p.Name, StringComparer.Ordinal)) + yield return CatalogMember.ForProperty(p, docs, inits ?? InitAccessors.Empty, modopts); + + foreach (FieldInfo f in type.GetFields(flags).Where(f => !f.IsSpecialName).OrderBy(f => f.Name, StringComparer.Ordinal)) + yield return CatalogMember.ForField(f, docs, modopts); + + foreach (EventInfo e in type.GetEvents(flags).OrderBy(e => e.Name, StringComparer.Ordinal)) + yield return CatalogMember.ForEvent(e, docs); + } + + private static string KindOf(Type t) + { + if (t.IsEnum) return "enum"; + if (t.IsInterface) return "interface"; + if (typeof(MulticastDelegate).IsAssignableFrom(t)) return "delegate"; + if (t.IsValueType) return IsByRefLike(t) ? "ref struct" : "struct"; + if (t.IsAbstract && t.IsSealed) return "static class"; + return "class"; + } + + private static bool IsByRefLike(Type t) => + t.GetCustomAttributesData().Any(a => a.AttributeType.FullName == "System.Runtime.CompilerServices.IsByRefLikeAttribute"); + + public string ToJson() + { + var parts = new List + { + "\"name\": " + CatalogMember.Js(Name), + "\"displayName\": " + CatalogMember.Js(DisplayName), + "\"kind\": " + CatalogMember.Js(Kind), + }; + if (Summary.Length > 0) parts.Add("\"summary\": " + CatalogMember.Js(Summary)); + parts.Add("\"members\": [" + string.Join(", ", Members.Select(m => m.ToJson())) + "]"); + return "{ " + string.Join(", ", parts) + " }"; + } +} + +internal sealed class CatalogMember +{ + public required string Name { get; init; } + public required string Kind { get; init; } // method | constructor | property | field | constant | event | operator | conversion + + /// The declaration name behind a friendly one (`op_Implicit` behind an operator). + public string? SourceName { get; init; } + public required string Signature { get; init; } + public string Summary { get; init; } = ""; + public string? ExtensionOn { get; init; } + public bool Static { get; init; } + public List Parameters { get; init; } = []; + public string? Value { get; init; } // constants and enum values + + /// + /// A stable identity of what the member IS, not of how it is written: kind, declaration + /// name, rendered-static, generic arity, return/property/field type, ordered parameter + /// types with modifiers and actual defaults, accessors and constant values, each field + /// exactly as the consumer sees it — plus a trailing binding hash over the rendered + /// declaration (signature, ordered parameter types/names/defaults, value). Generic + /// parameter nullability is deliberately excluded from the structure (both sides render + /// those bare); everything else a drifted export could silently change is inside. The + /// parity test rebuilds the structure from the live assembly and recomputes the binding + /// hash from the stored declaration, so neither half can be preserved past an edit of + /// the other. + /// + public string Id { get; init; } = ""; + + public static CatalogMember ForMethod(MethodInfo m, Documentation docs, Type? extensionTarget, NullableModopts modopts) + { + string kind = m.Name switch + { + "op_Implicit" => "conversion", + "op_Explicit" => "operator", + _ when m.Name.StartsWith("op_", StringComparison.Ordinal) => "operator", + _ => extensionTarget is not null ? "extension" : "method", + }; + + // The documentation was written with every parameter, receiver included; the catalog + // renders the call as a person types it, which drops the receiver of an extension. + string summary = docs.SummaryFor(DocId.Method(m, null)); + ParameterInfo[] all = m.GetParameters(); + var parameters = new List(); + for (int i = extensionTarget is null ? 0 : 1; i < all.Length; i++) + parameters.Add(CatalogParameter.For(all[i], modopts.AnnotatedTypes(m, i))); + string name = DisplayMethodName(m); + string signature = m.Name.StartsWith("op_", StringComparison.Ordinal) + ? OperatorSignature(m, parameters) + : MethodSignature(m, name, parameters, extensionTarget is not null, modopts.AnnotatedTypes(m, -1)); + return new CatalogMember + { + Name = name, + SourceName = name == m.Name ? null : m.Name, + Kind = kind, + Signature = signature, + Summary = summary, + ExtensionOn = extensionTarget?.FullName, + Static = m.IsStatic, + Parameters = parameters, + Id = IdOf(kind, m.Name, m.IsStatic && extensionTarget is null, + m.IsGenericMethodDefinition ? m.GetGenericArguments().Length : 0, + SignatureNames.Annotated(m.ReturnParameter, null), + string.Join(";", all.Skip(extensionTarget is null ? 0 : 1).Select(ParameterIdentity)), "") + + "|" + Bind(signature, parameters, null), + }; + } + + internal static string IdOf(string kind, string source, bool isStatic, int arity, string type, string parameters, string tail) => + $"{kind}|{source}|{(isStatic ? "1" : "0")}|{arity}|{type}|{parameters}|{tail}"; + + /// + /// The id's binding hash: a digest over the exact declaration fields a consumer reads — + /// the rendered signature, the ordered parameter types, names and defaults, and the + /// constant value. The parity test recomputes it from the catalog it parsed, so a stored + /// signature or parameter list that drifted from the identity the assembly produced fails + /// even when the identity string itself was hand-preserved. + /// + internal static string Bind(string signature, List parameters, string? value) => + BindingHash(string.Join('\u001f', + [signature, .. parameters.Select(p => $"{p.Type}\u001e{p.Name}\u001e{p.Default ?? string.Empty}"), value ?? string.Empty])); + + /// The lowercase sha256 of a binding canonical, with the `h` tag the ids carry. + internal static string BindingHash(string canonical) => + "h" + Convert.ToHexString(SHA256.HashData(Encoding.UTF8.GetBytes(canonical))).ToLowerInvariant(); + + /// A parameter as identity: modifier, type, name, and its actual default. + internal static string ParameterIdentity(ParameterInfo p) + { + string modifier = p.IsOut ? "out " : p.IsIn ? "in " : p.ParameterType.IsByRef ? "ref " : ""; + string type = modifier + SignatureNames.Annotated(p, null); + return p.HasDefaultValue ? $"{type} {p.Name} = {SignatureNames.Default(p)}" : $"{type} {p.Name}"; + } + + /// + /// A method declaration the way C# writes it: `static` where it is static, the generic + /// parameters and their constraints spelled out, the nullable annotations kept. An + /// extension member is shown as the instance call it is used as, so it carries no `static`. + /// + private static string MethodSignature(MethodInfo m, string name, List parameters, bool isExtension, HashSet? returns) + => $"{(m.IsStatic && !isExtension ? "static " : "")}{SignatureNames.Annotated(m.ReturnParameter, returns)} " + + $"{SignatureNames.Identifier(name)}{GenericParameterList(m)}({SignatureNames.Parameters(parameters)}){Constraints(m)}"; + + /// A conversion names its result once — `implicit operator Size(float points)`. + private static string OperatorSignature(MethodInfo m, List parameters) + { + string args = SignatureNames.Parameters(parameters); + if (m.Name == "op_Implicit") return $"static implicit operator {SignatureNames.Name(m.ReturnType)}({args})"; + if (m.Name == "op_Explicit") return $"static explicit operator {SignatureNames.Name(m.ReturnType)}({args})"; + string op = m.Name switch + { + "op_Equality" => "==", + "op_Inequality" => "!=", + "op_Addition" => "+", + "op_Subtraction" => "-", + "op_Multiply" => "*", + "op_Division" => "/", + _ => m.Name[3..], + }; + return $"static {SignatureNames.Name(m.ReturnType)} operator {op}({args})"; + } + + private static string GenericParameterList(MethodInfo m) => m.IsGenericMethodDefinition + ? "<" + string.Join(", ", m.GetGenericArguments().Select(g => g.Name)) + ">" + : ""; + + /// The `where T : Base, IFace` clause the declaration carries, if any. + private static string Constraints(MethodInfo m) + { + if (!m.IsGenericMethodDefinition) return ""; + List clauses = []; + foreach (Type parameter in m.GetGenericArguments()) + { + List parts = []; + GenericParameterAttributes attributes = parameter.GenericParameterAttributes; + bool valueTypesOnly = (attributes & GenericParameterAttributes.NotNullableValueTypeConstraint) != 0; + // `where T : unmanaged` is the struct constraint plus an IsUnmanagedAttribute + // modreq on the parameter — the one reflection does surface for generic parameters. + // Rendering it as `struct, ValueType` would both lie and fail to compile: ValueType + // is the implicit face of the struct constraint, never written by hand. + bool unmanaged = parameter.GetCustomAttributesData().Any(a => + a.AttributeType.FullName == "System.Runtime.CompilerServices.IsUnmanagedAttribute"); + if (unmanaged) parts.Add("unmanaged"); + else if ((attributes & GenericParameterAttributes.ReferenceTypeConstraint) != 0) parts.Add("class"); + else if (valueTypesOnly) parts.Add("struct"); + if ((attributes & GenericParameterAttributes.DefaultConstructorConstraint) != 0 && !unmanaged && !valueTypesOnly) + parts.Add("new()"); + parts.AddRange(parameter.GetGenericParameterConstraints().Where(c => c != typeof(ValueType)).Select(SignatureNames.Name)); + if (parts.Count > 0) clauses.Add($"{parameter.Name} : {string.Join(", ", parts)}"); + } + + return clauses.Count > 0 ? " where " + string.Join(", ", clauses) : ""; + } + + private static string DisplayMethodName(MethodInfo m) => m.Name switch + { + "op_Implicit" => $"implicit operator {SignatureNames.Name(m.ReturnType)}", + "op_Explicit" => $"explicit operator {SignatureNames.Name(m.ReturnType)}", + "op_Equality" => "==", + "op_Inequality" => "!=", + "op_Addition" => "+", + "op_Subtraction" => "-", + _ => m.Name, + }; + + public static CatalogMember ForCtor(ConstructorInfo c, Documentation docs, NullableModopts modopts) + { + ParameterInfo[] all = c.GetParameters(); + var parameters = new List(); + for (int i = 0; i < all.Length; i++) parameters.Add(CatalogParameter.For(all[i], modopts.AnnotatedTypes(c, i))); + // the constructor of KeyFn reads as KeyFn(...), not as KeyFn`1(...) + string signature = $"{SignatureNames.Name(c.DeclaringType!)}({SignatureNames.Parameters(parameters)})"; + return new CatalogMember + { + Name = ".ctor", + Kind = "constructor", + Signature = signature, + Summary = docs.SummaryFor(DocId.Constructor(c)), + Parameters = parameters, + Id = IdOf("constructor", ".ctor", false, 0, "", string.Join(";", all.Select(ParameterIdentity)), "") + + "|" + Bind(signature, parameters, null), + }; + } + + public static CatalogMember ForProperty(PropertyInfo p, Documentation docs, InitAccessors inits, NullableModopts modopts) + { + // An init accessor differs from a set only by an IsExternalInit modreq on the setter's + // return; reflection's attribute API does not surface modreqs, so the answer comes from + // the assembly's metadata signature (InitAccessors). Rendering init as `set` would + // invite the after-construction assignment the declaration forbids. + bool isInit = inits.IsInit(p.DeclaringType, p.Name); + string access = (p.GetMethod?.IsPublic == true ? "get; " : "") + + (p.SetMethod?.IsPublic == true ? (isInit ? "init; " : "set; ") : ""); + HashSet? generics = p.GetMethod is null ? null : modopts.AnnotatedTypes(p.GetMethod, -1); + string signature = $"{(p.GetMethod?.IsStatic == true ? "static " : "")}{SignatureNames.Annotated(p, generics)} {SignatureNames.Identifier(p.Name)} {{ {access.TrimEnd()} }}"; + return new CatalogMember + { + Name = p.Name, + Kind = "property", + Signature = signature, + Summary = docs.SummaryFor("P:" + DocId.TypeKey(p.DeclaringType!) + "." + p.Name), + Static = p.GetMethod?.IsStatic == true, + // The identity spells init as set: init lives only in a modreq the parity test cannot + // re-derive from reflection, and the rendered `{ get; init; }` is pinned behaviourally. + Id = IdOf("property", p.Name, p.GetMethod?.IsStatic == true, 0, + SignatureNames.Annotated(p, null), "", + (p.GetMethod?.IsPublic == true ? "get;" : "") + (p.SetMethod?.IsPublic == true ? "set;" : "")) + + "|" + Bind(signature, [], null), + }; + } + + public static CatalogMember ForField(FieldInfo f, Documentation docs, NullableModopts modopts) + { + bool constant = f.IsLiteral; + object? raw = constant ? f.GetRawConstantValue() : null; + string? value = raw switch + { + null => null, + string s => s, + _ => Convert.ToString(raw, CultureInfo.InvariantCulture), + }; + string signature = constant + ? $"public const {SignatureNames.Name(f.FieldType)} {SignatureNames.Identifier(f.Name)} = {SignatureNames.Literal(raw)}" + : $"public {(f.IsStatic ? "static " : "")}{(f.IsInitOnly ? "readonly " : "")}{SignatureNames.Annotated(f, modopts.AnnotatedFieldTypes(f))} {SignatureNames.Identifier(f.Name)}"; + return new CatalogMember + { + Name = f.Name, + Kind = constant ? "constant" : "field", + Signature = signature, + Summary = docs.SummaryFor("F:" + DocId.TypeKey(f.DeclaringType!) + "." + f.Name), + Static = f.IsStatic, + Value = value, + Id = IdOf(constant ? "constant" : "field", f.Name, f.IsStatic, 0, + constant ? SignatureNames.Name(f.FieldType) : SignatureNames.Annotated(f, null), "", value ?? "") + + "|" + Bind(signature, [], value), + }; + } + + public static CatalogMember ForEvent(EventInfo e, Documentation docs) + { + string signature = $"event {SignatureNames.Name(e.EventHandlerType!)} {SignatureNames.Identifier(e.Name)}"; + return new CatalogMember + { + Name = e.Name, + Kind = "event", + Signature = signature, + Summary = docs.SummaryFor("E:" + DocId.TypeKey(e.DeclaringType!) + "." + e.Name), + Id = IdOf("event", e.Name, false, 0, SignatureNames.Name(e.EventHandlerType!), "", "") + + "|" + Bind(signature, [], null), + }; + } + + public static CatalogMember ForEnumValue(FieldInfo f, Documentation docs) + { + string value = Convert.ToString(f.GetRawConstantValue(), CultureInfo.InvariantCulture)!; + string signature = $"{SignatureNames.Identifier(f.Name)} = {value}"; + return new CatalogMember + { + Name = f.Name, + Kind = "enum value", + Signature = signature, + Summary = docs.SummaryFor("F:" + DocId.TypeKey(f.DeclaringType!) + "." + f.Name), + Value = value, + Id = IdOf("enum value", f.Name, true, 0, "", "", value) + "|" + Bind(signature, [], value), + }; + } + + public string ToJson() + { + var parts = new List + { + "\"name\": " + Js(Name), + "\"kind\": " + Js(Kind), + "\"id\": " + Js(Id), + "\"signature\": " + Js(Signature), + }; + if (ExtensionOn is not null) parts.Add("\"extensionOn\": " + Js(ExtensionOn)); + if (SourceName is not null) parts.Add("\"member\": " + Js(SourceName)); + if (Parameters.Count > 0) parts.Add("\"parameters\": [" + string.Join(", ", Parameters.Select(p => p.ToJson())) + "]"); + if (Summary.Length > 0) parts.Add("\"summary\": " + Js(Summary)); + if (Value is not null) parts.Add("\"value\": " + Js(Value)); + return "{ " + string.Join(", ", parts) + " }"; + } + + internal static string Js(string value) => JsonSerializer.Serialize(value); +} + +internal sealed class CatalogParameter +{ + public required string Name { get; init; } + public required string Type { get; init; } + public string? Default { get; init; } + + public static CatalogParameter For(ParameterInfo p, HashSet? genericNullable) + { + // Order matters: `in` and `out` parameters are by-ref too, and testing that first + // rendered every generated `in opts` as `ref opts`. + string modifier = p.IsOut ? "out " : p.IsIn ? "in " : p.ParameterType.IsByRef ? "ref " : ""; + return new CatalogParameter + { + Name = p.Name ?? "?", + Type = modifier + SignatureNames.Annotated(p, genericNullable), + Default = p.HasDefaultValue ? SignatureNames.Default(p) : null, + }; + } + + public string ToJson() + { + var parts = new List { "\"name\": " + CatalogMember.Js(Name), "\"type\": " + CatalogMember.Js(Type) }; + if (Default is not null) parts.Add("\"default\": " + CatalogMember.Js(Default)); + return "{ " + string.Join(", ", parts) + " }"; + } +} + +/// Readable C# names from reflection types, and the JSON leaf values. +internal static class SignatureNames +{ + private static readonly Dictionary Keywords = new() + { + [typeof(void)] = "void", [typeof(bool)] = "bool", [typeof(char)] = "char", + [typeof(string)] = "string", [typeof(int)] = "int", [typeof(uint)] = "uint", + [typeof(long)] = "long", [typeof(ulong)] = "ulong", [typeof(short)] = "short", + [typeof(ushort)] = "ushort", [typeof(byte)] = "byte", [typeof(sbyte)] = "sbyte", + [typeof(float)] = "float", [typeof(double)] = "double", [typeof(object)] = "object", + [typeof(nint)] = "nint", [typeof(nuint)] = "nuint", + }; + + public static string Name(Type t) + { + if (Keywords.TryGetValue(t, out string? keyword)) return keyword; + if (t.IsByRef) return Name(t.GetElementType()!); + if (t.IsArray) + { + int rank = t.GetArrayRank(); + return Name(t.GetElementType()!) + (rank == 1 ? "[]" : "[" + new string(',', rank - 1) + "]"); + } + + if (t.IsPointer) return Name(t.GetElementType()!) + "*"; + if (!t.IsGenericType) return t.Name; + + Type definition = t.GetGenericTypeDefinition(); + if (definition == typeof(Nullable<>)) return Name(t.GetGenericArguments()[0]) + "?"; + + string head = t.Name[..t.Name.IndexOf('`')]; + return head + "<" + string.Join(", ", t.GetGenericArguments().Select(Name)) + ">"; + } + + public static string Return(MethodInfo m) => Name(m.ReturnType); + + private static readonly NullabilityInfoContext Nulls = new(); + + /// + /// The type as the declaration writes it, with `?` wherever null is allowed — recursively: + /// `string?`, `string?[]?`, `Task`. Generic parameters are the one question the + /// nullable context cannot answer (bare `T` and `T?` report alike), so the caller supplies + /// the signature's NullableAttribute modopts for those leaves; null renders them bare, + /// which is what a member identity uses. + /// + public static string Annotated(ParameterInfo parameter, HashSet? genericNullable = null) => + Annotate(parameter.ParameterType, Nulls.Create(parameter), true, genericNullable); + + public static string Annotated(PropertyInfo property, HashSet? genericNullable = null) => + // A get-only property carries its annotation on the getter; Create(PropertyInfo) reads + // the setter that is not there and would report a get-only `string?` as `string`. + property.SetMethod is null && property.GetMethod is not null + ? Annotate(property.PropertyType, Nulls.Create(property.GetMethod.ReturnParameter), false, genericNullable) + : Annotate(property.PropertyType, Nulls.Create(property), false, genericNullable); + + public static string Annotated(FieldInfo field, HashSet? genericNullable = null) => + Annotate(field.FieldType, Nulls.Create(field), false, genericNullable); + + private static string Annotate(Type type, NullabilityInfo? info, bool write, HashSet? genericNullable) + { + try + { + if (type.IsGenericParameter) + return type.Name + (genericNullable?.Contains(type) == true ? "?" : ""); + + NullabilityState state = info is null ? NullabilityState.NotNull : write ? info.WriteState : info.ReadState; + string suffix = state == NullabilityState.Nullable ? "?" : ""; + + if (Keywords.TryGetValue(type, out string? keyword)) return keyword + suffix; + if (type.IsByRef) return Annotate(type.GetElementType()!, info, write, genericNullable); + if (type.IsPointer) return Annotate(type.GetElementType()!, Element(info), write, genericNullable) + "*" + suffix; + if (type.IsArray && type.GetArrayRank() == 1) + return Annotate(type.GetElementType()!, Element(info), write, genericNullable) + "[]" + suffix; + if (!type.IsGenericType) return Name(type) + suffix; + + // Nullable already spells its own `?`; a second annotation would double it. + if (type.GetGenericTypeDefinition() == typeof(Nullable<>)) return Name(type); + + return type.Name[..type.Name.IndexOf('`')] + "<" + + string.Join(", ", type.GetGenericArguments().Select((a, i) => Annotate(a, Argument(info, i), write, genericNullable))) + + ">" + suffix; + } + catch (Exception) + { + // A pointer or an unannotatable signature falls back to the plain name rather + // than crashing the export. + return Name(type); + } + } + + private static NullabilityInfo? Element(NullabilityInfo? info) + { + try { return info?.ElementType; } + catch (Exception) { return null; } + } + + private static NullabilityInfo? Argument(NullabilityInfo? info, int index) + { + try + { + NullabilityInfo[] arguments = info!.GenericTypeArguments; + return index < arguments.Length ? arguments[index] : null; + } + catch (Exception) { return null; } + } + + public static string Parameters(List parameters) => + string.Join(", ", parameters.Select(p => p.Default is null ? $"{p.Type} {Identifier(p.Name)}" : $"{p.Type} {Identifier(p.Name)} = {p.Default}")); + + /// + /// A name a declaration can only spell with `@`. The compiler names delegate parameters + /// after their metadata (`DrawFn(object object, nint method)`) and interop wrappers name a + /// buffer `out`; a rendered signature that does not escape them is not a signature. Only + /// rendered C# takes the escape — ids, lookups and the stored parameter names keep the raw + /// metadata name, which is what a query for `FilePicker` matches on. + /// + public static string Identifier(string name) => Reserved.Contains(name) ? "@" + name : name; + + private static readonly HashSet Reserved = + [ + "abstract", "as", "base", "bool", "break", "byte", "case", "catch", "char", "checked", + "class", "const", "continue", "decimal", "default", "delegate", "do", "double", "else", + "enum", "event", "explicit", "extern", "false", "finally", "fixed", "float", "for", + "foreach", "goto", "if", "implicit", "in", "int", "interface", "internal", "is", "lock", + "long", "namespace", "new", "null", "object", "operator", "out", "override", "params", + "private", "protected", "public", "readonly", "ref", "return", "sbyte", "sealed", + "short", "sizeof", "stackalloc", "static", "string", "struct", "switch", "this", "throw", + "true", "try", "typeof", "uint", "ulong", "unchecked", "unsafe", "ushort", "using", + "virtual", "void", "volatile", "while", + ]; + + public static string Literal(object? value) => value switch + { + null => "null", + string s => JsonSerializer.Serialize(s), + char c => "'" + c + "'", + bool b => b ? "true" : "false", + float f => f.ToString("R", CultureInfo.InvariantCulture) + "f", + double d => d.ToString("R", CultureInfo.InvariantCulture) + "d", + _ => Convert.ToString(value, CultureInfo.InvariantCulture) ?? "?", + }; + + /// + /// A default rendered the way a caller would write it. A struct or enum whose value is all + /// zeroes renders as `default`, because that is what it means to the caller; a non-zero + /// default renders as its literal so the reader can see the number. + /// + public static string Default(ParameterInfo p) + { + object? value = p.DefaultValue; + Type type = p.ParameterType.IsByRef ? p.ParameterType.GetElementType()! : p.ParameterType; + // A struct or enum default arrives as a boxed zero from some compilers and as null from + // others; to the caller both mean `default`. + if (value is null || value is DBNull) return type.IsValueType ? "default" : "null"; + if (type.IsValueType && !type.IsEnum && value.Equals(Activator.CreateInstance(type))) return "default"; + if (type.IsEnum) + { + // A default a caller must be able to re-type: `LogLevel.Info`, not a bare `Info` + // under another namespace's import, and an unnamed value as the cast that names + // its type. Zero keeps meaning `default`, which is what the call site reads. + string? name = Enum.GetName(type, value); + return name is not null ? Name(type) + "." + name : "(" + Name(type) + ")" + Literal(value); + } + + return Literal(value); + } +} + +/// Reflection -> the `T:`/`M:`/`F:` keys Roslyn wrote the XML documentation with. +internal static class DocId +{ + /// + /// The document id of a method. A carrier member's runtime owner is the `<G>$` type, but + /// Roslyn wrote its id with the source owner (the extension class), so the caller passes + /// that owner when it knows it. A generic method takes two backticks — one backtick is the + /// id of a generic *type* — and a conversion names its result, because that is the only + /// thing separating it from the other conversion of the same name. + /// + public static string Method(MethodInfo m, Type? owner) + { + var sb = new StringBuilder("M:").Append(FullName(owner ?? m.DeclaringType!)).Append('.').Append(m.Name); + if (m.IsGenericMethodDefinition) sb.Append("``").Append(m.GetGenericArguments().Length); + + ParameterInfo[] parameters = m.GetParameters(); + if (parameters.Length > 0) + sb.Append('(').Append(string.Join(",", parameters.Select(p => Type(p.ParameterType, m)))).Append(')'); + if (m.Name is "op_Implicit" or "op_Explicit") + sb.Append('~').Append(Type(m.ReturnType, m)); + return sb.ToString(); + } + + public static string Constructor(ConstructorInfo c) => + $"M:{FullName(c.DeclaringType!)}.#ctor({string.Join(",", c.GetParameters().Select(p => Type(p.ParameterType, null)))})"; + + /// + /// An open generic type has no `FullName` and `ToString` appends `[T]`; the document keys + /// Roslyn wrote are the definition name with its arity, namespace-qualified. + /// + public static string FullName(Type t) + { + if (t.FullName is string full) return full; + List parts = [t.Name]; + for (Type? declaring = t.DeclaringType; declaring is not null; declaring = declaring.DeclaringType) + parts.Add(declaring.Name); + parts.Reverse(); + string nested = string.Join('/', parts); + return string.IsNullOrEmpty(t.Namespace) ? nested : t.Namespace + "." + nested; + } + + /// + /// The `T:`/`P:`/`F:`/`E:` side of a document id: reflection spells nesting with `+`, + /// Roslyn wrote it with `/`, and `ToString()` on an open generic appends `[T]`. + /// + public static string TypeKey(Type t) => FullName(t).Replace('+', '/'); + + private static string Type(Type t, MethodInfo? generic) + { + if (t.IsGenericParameter) + // the member's own type parameters take two backticks, the enclosing type's one + return generic is not null && Array.IndexOf(generic.GetGenericArguments(), t) >= 0 + ? "``" + Array.IndexOf(generic.GetGenericArguments(), t) + : "`" + t.GenericParameterPosition; + + if (t.IsByRef) return Type(t.GetElementType()!, generic) + "@"; + if (t.IsPointer) return Type(t.GetElementType()!, generic) + "*"; + if (t.IsArray) + { + int rank = t.GetArrayRank(); + return Type(t.GetElementType()!, generic) + (rank == 1 ? "[]" : "[" + new string(',', rank - 1) + "]"); + } + + if (!t.IsGenericType) return FullName(t); + + string name = FullName(t); + int tick = name.IndexOf('`'); + if (tick < 0) return name; + return name[..tick] + "{" + string.Join(",", t.GetGenericArguments().Select(a => Type(a, generic))) + "}"; + } +} + +/// The `` text of the generated XML documentation, keyed by doc id. +internal sealed class Documentation +{ + private readonly Dictionary summaries; + + private Documentation(Dictionary summaries) => this.summaries = summaries; + + public int Summaries => summaries.Count; + + public string SummaryFor(string docId) => summaries.TryGetValue(docId, out string? text) ? text : ""; + public string? SummaryOrNull(string docId) => summaries.TryGetValue(docId, out string? text) ? text : null; + + public static Documentation Load(string xmlPath) + { + var summaries = new Dictionary(StringComparer.Ordinal); + if (!File.Exists(xmlPath)) return new Documentation(summaries); + + // Extension-block members carry an `inheritdoc` element pointing at the carrier's real + // summary, so an id lookup only pays off once the chain is followed to its text. + var elements = new Dictionary(StringComparer.Ordinal); + var doc = System.Xml.Linq.XDocument.Load(xmlPath); + foreach (System.Xml.Linq.XElement member in doc.Descendants("member")) + { + string key = member.Attribute("name")?.Value ?? ""; + if (key.Length > 0) elements[key] = member; + } + + foreach (string key in elements.Keys) + { + string text = Resolve(key, 0); + if (text.Length > 0) summaries[key] = text; + } + + return new Documentation(summaries); + + string Resolve(string key, int depth) + { + if (depth > 4 || !elements.TryGetValue(key, out System.Xml.Linq.XElement? element)) return ""; + System.Xml.Linq.XElement? summary = element.Element("summary"); + string text = summary is not null ? Text(summary) : ""; + if (text.Length == 0) + { + string? cref = element.Descendants("inheritdoc") + .Select(x => x.Attribute("cref")?.Value) + .FirstOrDefault(c => c is not null); + if (cref is not null) text = Resolve(cref, depth + 1); + } + + return text; + } + } + + private static string Text(System.Xml.Linq.XElement element) + { + // element.Value drops the content of child elements written as empty tags — + // , — and the summary reads "0 is , 1 is ". + // Each reference contributes the name it points at; inline markup its own text. + var sb = new StringBuilder(); + foreach (System.Xml.Linq.XNode node in element.Nodes()) + { + if (node is System.Xml.Linq.XText text) + { + sb.Append(text.Value); + continue; + } + + if (node is not System.Xml.Linq.XElement x) continue; + switch (x.Name.LocalName) + { + case "paramref" or "typeparamref": + sb.Append(x.Attribute("name")?.Value ?? ""); + break; + case "see" or "seealso": + string inner = string.Concat(x.Nodes().OfType().Select(t => t.Value)); + sb.Append(inner.Length > 0 + ? inner + : x.Attribute("langword")?.Value ?? ShortCref(x.Attribute("cref")?.Value)); + break; + case "para" or "list" or "item": + // Blocks are separated from what precedes them. The newline a source + // comment writes between and belongs to the paragraphs' + // own leading/trailing text, and each recursion collapses whitespace — + // so the boundary arrives here with nothing between the sentences and + // the summary reads "charts do.Copy-based". , and are + // inline and stay unseparated. + if (sb.Length > 0 && !char.IsWhiteSpace(sb[^1])) sb.Append(' '); + sb.Append(Text(x)); + break; + default: + // , , and friends: recurse, so a nested inside a + // paragraph still contributes the name it points at — x.Value on the + // container drops every child written as an empty tag. + sb.Append(Text(x)); + break; + } + } + + return string.Join(' ', sb.ToString().Split((char[]?)null, StringSplitOptions.RemoveEmptyEntries)); + } + + /// `M:CuiSharp.Size.Percent(System.Single)` reads as `Percent`: the member, not its signature. + private static string ShortCref(string? cref) + { + if (string.IsNullOrEmpty(cref)) return ""; + int colon = cref!.IndexOf(':'); + string body = colon >= 0 ? cref[(colon + 1)..] : cref; + int paren = body.IndexOf('('); + if (paren > 0) body = body[..paren]; + int dot = body.LastIndexOf('.'); + return dot >= 0 && dot + 1 < body.Length ? body[(dot + 1)..] : body; + } +} + +/// +/// A synthetic extension host for the self-test: one real forwarding method beside an +/// ordinary field, a zero-parameter method and a plain parameterised method. +/// +internal static class ProbeExtensionHost +{ + public static string Label = "probe"; + + public static int Count { get; set; } + + public static int Ordinary() => 1; + + public static int Unrelated(int a, int b) => a + b; + + /// Shares a name with the forwarding `Extend` below; must survive on the host. + public static int Extend(int value) => value; + + public static int Twice(this int value) => value * 2; + + public static int Extend(this int value) => value; +} + +/// A host that is pure metadata: every member forwards, so no type entry survives. +internal static class ProbeAllForwarded +{ + public static int Thrice(this int value) => value * 3; +} + +internal static class SelfTest +{ + /// + /// Contract checks against the live build. Writes nothing into the repository: this runs + /// before the checked-in catalog exists and must pass while its shape is still moving. + /// + public static int Run(string json, Assembly assembly, Documentation docs, string assetsPath) + { + int failures = RunChecks(json, assembly, docs, assetsPath, Console.Out) + RunFixtures(Console.Out); + + // The negative side: a catalog that lost its content must come back as named failed + // checks, not as an exception out of a GetProperty on a field that is not there. + var noise = new StringWriter(); + int mangled = RunChecks(StrippedCatalog, assembly, docs, assetsPath, noise); + bool reported = mangled > 0 && noise.ToString().Contains("FAIL", StringComparison.Ordinal); + Console.WriteLine($"self-test: {(reported ? "ok " : "FAIL")} a stripped catalog fails with diagnostics ({mangled} checks) instead of crashing"); + if (!reported) failures++; + + return failures; + } + + private const string StrippedCatalog = """ + { "schema": 1, "generator": "fixture", "assembly": "fixture", "version": "0", + "types": [ { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "members": [] } ] } + """; + + /// + /// A synthetic extension host proving the classification is per member, not per class: + /// the attribute-and-receiver shape is what makes a forwarding member, and an ordinary + /// field, a zero-parameter method and a plain parameterised method beside it all stay + /// on the host, once each. A `this`-parameter method needs a top-level static class, so + /// the probe hosts live beside this class, not inside it. + /// + + private static int RunFixtures(TextWriter output) + { + int failures = 0; + var hoisted = new Dictionary>(StringComparer.Ordinal); + CatalogType? mixed = CatalogType.For(typeof(ProbeExtensionHost), Documentation.Load("no-such-file.xml"), hoisted, InitAccessors.Empty, NullableModopts.Empty); + Check(mixed is not null, "an extension host with ordinary members stays a catalogued type"); + Check(mixed?.Members.Any(m => m.Name == "Ordinary") == true, "the host's zero-parameter method stays on the host"); + Check(mixed?.Members.Any(m => m.Name == "Unrelated") == true, "the host's ordinary parameterised method is not forwarded"); + Check(mixed?.Members.Any(m => m.Name == "Label") == true, "the host's field stays on the host"); + Check(mixed?.Members.Any(m => m.Name == "Count" && m.Kind == "property") == true, "the host's property stays on the host"); + Check(mixed?.Members.Count(m => m.Name == "Extend") == 1 + && mixed?.Members.Any(m => m.Name == "Extend" && m.ExtensionOn is null) == true, + "an ordinary generic overload survives beside the forwarding method that shares its name"); + Check(mixed?.Members.All(m => m.ExtensionOn is null) == true, "no member of the host itself is marked as an extension"); + Check(hoisted.Count == 1 && hoisted.ContainsKey("System.Int32") + && hoisted["System.Int32"].Count == 2 + && hoisted["System.Int32"].Any(m => m.Name == "Twice") + && hoisted["System.Int32"].Count(m => m.Name == "Extend") == 1, + "only the attributed receiver methods are forwarded, each exactly once"); + + CatalogType? allForwarded = CatalogType.For(typeof(ProbeAllForwarded), Documentation.Load("no-such-file.xml"), hoisted, InitAccessors.Empty, NullableModopts.Empty); + Check(allForwarded is null, "a host whose every member is forwarded is metadata, not a type"); + Check(hoisted.Values.Sum(v => v.Count) == 3 + && hoisted.Values.SelectMany(v => v).Select(v => v.Signature).Distinct().Count() == 3, + "forwarded members are never duplicated"); + + // The binding hash is only a guard if it moves exactly when the declaration does: + // a signature edit and a parameter-type edit, each same-shape, must rebind. + string bound = CatalogMember.Bind("void M(ReadOnlySpan value)", + [new CatalogParameter { Name = "value", Type = "ReadOnlySpan" }], null); + Check(bound != CatalogMember.Bind("void M(byte[] value)", + [new CatalogParameter { Name = "value", Type = "ReadOnlySpan" }], null) + && bound != CatalogMember.Bind("void M(ReadOnlySpan value)", + [new CatalogParameter { Name = "value", Type = "byte[]" }], null) + && bound == CatalogMember.Bind("void M(ReadOnlySpan value)", + [new CatalogParameter { Name = "value", Type = "ReadOnlySpan" }], null), + "the binding hash moves when the rendered declaration moves, and only then"); + + // A two-paragraph summary, written the way the source comments write it — the + // boundary newline inside the paragraphs' own text. Exact output, both separators + // and both inline references, or the paragraph walker regresses unseen. + string paraXml = Path.Combine(Path.GetTempPath(), $"export-api-paragraph-{Guid.NewGuid():N}.xml"); + File.WriteAllText(paraXml, """ + + + + Reduces a long series to something a chart can draw. + + A chart is a few hundred pixels wide; that is what financial charts do. + + + Copy-based: see and pass . + + + + + """); + try + { + Check(Documentation.Load(paraXml).SummaryFor("T:Probe.Para") + == "Reduces a long series to something a chart can draw. A chart is a few hundred pixels wide; that is what financial charts do. Copy-based: see RequiredCapacity and pass cap.", + "a two-paragraph summary renders with its boundaries and its inline references intact"); + } + finally + { + File.Delete(paraXml); + } + + return failures; + + void Check(bool ok, string what) + { + output.WriteLine($"self-test: {(ok ? "ok " : "FAIL")} {what}"); + if (!ok) failures++; + } + } + + private static int RunChecks(string json, Assembly assembly, Documentation docs, string assetsPath, TextWriter output) + { + int failures = 0; + using var doc = JsonDocument.Parse(json); + JsonElement root = doc.RootElement; + if (root.ValueKind != JsonValueKind.Object) + { + Check(false, "the document is a JSON object"); + return failures; + } + + Check(root.TryGetProperty("schema", out JsonElement schema) + && schema.ValueKind == JsonValueKind.Number && schema.TryGetInt32(out int schemaValue) && schemaValue == 1, + "schema is 1"); + Check(root.TryGetProperty("version", out JsonElement version) + && version.ValueKind == JsonValueKind.String && version.GetString()!.Length > 0, + "header carries the assembly version"); + if (!root.TryGetProperty("types", out JsonElement types) || types.ValueKind != JsonValueKind.Array) + { + Check(false, "the document has a types array"); + return failures; + } + + Check(types.EnumerateArray().All(t => !Str(t, "name").Contains('$')), + "no compiler-metadata type names in the catalog"); + + bool hasUi = FindType(types, "CuiSharp.Ui", out JsonElement ui); + Check(hasUi, "Ui is in the catalog"); + Check(!types.EnumerateArray().Any(t => Str(t, "name").EndsWith("UiExtensions", StringComparison.Ordinal)), + "extension carrier classes are not catalogued as types"); + if (hasUi) + { + List buttons = MembersNamed(ui, "Button"); + Check(buttons.Count == 1, $"the extension Button is hoisted onto Ui exactly once (found {buttons.Count})"); + if (buttons.Count == 1) + { + Check(Str(buttons[0], "kind") == "extension", "Button is marked as an extension"); + Check(Str(buttons[0], "extensionOn") == "CuiSharp.Ui", "Button names the type it extends"); + Check(Str(buttons[0], "summary").Length > 0, "Button carries its documentation summary"); + string signature = Str(buttons[0], "signature"); + Check(signature.Length > 0 && !signature.Contains("CuiSharp.Ui ui") && !signature.Contains("Ui ui"), + "the extension receiver is not repeated in the parameters"); + } + + List charts = MembersNamed(ui, "LineChart"); + Check(charts.Count >= 2, $"LineChart keeps its overloads (found {charts.Count})"); + Check(charts.Any(c => Str(c, "signature").Contains("ReadOnlySpan", StringComparison.Ordinal)), + "generic parameters render readably"); + Check(charts.Count > 0 && charts.All(c => Str(c, "signature").Contains("= default", StringComparison.Ordinal)), + "optional parameters render their defaults"); + } + + bool hasIcons = FindType(types, "CuiSharp.Icons", out JsonElement icons); + int iconFields = assembly.GetType("CuiSharp.Icons")?.GetFields(BindingFlags.Public | BindingFlags.Static).Count(f => f.IsLiteral) ?? 0; + int iconConstants = hasIcons ? MembersOf(icons).Count(m => Str(m, "kind") == "constant") : -1; + Check(hasIcons && iconConstants == iconFields, + $"every icon constant is in the catalog ({iconFields} in the assembly, {iconConstants} in the catalog)"); + if (hasIcons) + { + string glyph = ""; + foreach (JsonElement m in MembersNamed(icons, "Check")) + if (m.TryGetProperty("value", out JsonElement value) && value.ValueKind == JsonValueKind.String) + glyph = value.GetString()!; + Check(glyph.Length == 1 && glyph[0] >= 0xE000 && glyph[0] <= 0xF8FF, "icon constants are private-use glyphs"); + } + + bool hasSize = FindType(types, "CuiSharp.Size", out JsonElement size); + Check(hasSize && MembersOf(size).Any(m => Str(m, "kind") is "operator" or "conversion"), + "operators and conversions are catalogued"); + + CheckSignatureGoldens(types); + CheckDeclarationGoldens(types); + CheckDocumentationGoldens(assembly, docs); + CheckDependencyResolution(assembly, assetsPath); + + // Every member carries the identity the parity test compares against the assembly. + Check(types.EnumerateArray().All(t => MembersOf(t).All(m => Str(m, "id").Length > 0)), + "every member carries a member identity"); + + // The identity binds the declaration the CLI renders: a stored signature, parameter + // list or value that does not hash to the id's tail is the corruption the structural + // identity alone cannot see. + Check(types.EnumerateArray().All(t => MembersOf(t).All(Binds)), + "every member identity binds its rendered declaration"); + + // Enumerands are the enum's API, each exactly once; `value__` is the compiler's storage. + Check(!types.EnumerateArray().SelectMany(MembersOf).Any(m => Str(m, "name") == "value__"), + "no enum backing fields in the catalog"); + Check(types.EnumerateArray().Where(t => Str(t, "kind") == "enum").All(t => + MembersOf(t).All(m => Str(m, "kind") == "enum value") + && MembersOf(t).Select(m => Str(m, "name")).Distinct().Count() == MembersOf(t).Count), + "an enum lists each value once and nothing else"); + + // A quiet check with a number, not a gate: the exporter either wires the XML + // documentation or it does not, and 208 wrappers carry only the C name. + int withSummary = types.EnumerateArray().SelectMany(MembersOf) + .Count(m => m.ValueKind == JsonValueKind.Object && m.TryGetProperty("summary", out _)); + output.WriteLine($"self-test: info {withSummary} members carry a summary, {docs.Summaries} summaries in the XML"); + + return failures; + + void Check(bool ok, string what) + { + output.WriteLine($"self-test: {(ok ? "ok " : "FAIL")} {what}"); + if (!ok) failures++; + } + + // Recomputed from the rendered JSON, not from the model: the same check the parity + // test runs against the shipped catalog, so a binding that only survives the + // exporter's own objects is caught here. + static bool Binds(JsonElement m) + { + string id = Str(m, "id"); + int at = id.LastIndexOf('|'); + if (at <= 0) return false; + List parts = [Str(m, "signature")]; + if (m.TryGetProperty("parameters", out JsonElement ps) && ps.ValueKind == JsonValueKind.Array) + foreach (JsonElement p in ps.EnumerateArray()) + parts.Add($"{Str(p, "type")}\u001e{Str(p, "name")}\u001e{Str(p, "default")}"); + parts.Add(Str(m, "value")); + return id[(at + 1)..] == CatalogMember.BindingHash(string.Join('\u001f', parts)); + } + + void CheckSignatureGoldens(JsonElement types) + { + if (FindType(types, "CuiSharp.Hosting.CuiApplication", out JsonElement app)) + { + Check(MembersNamed(app, "Run").Any(r => Str(r, "signature") + .Contains("Run() where TRoot : Component", StringComparison.Ordinal)), + "a generic method keeps its parameter and constraint in the declaration"); + Check(MembersNamed(app, "CreateBuilder").Any(r => Str(r, "signature") + .Contains("static CuiApplicationBuilder CreateBuilder(string[]? args = null)", StringComparison.Ordinal)), + "static and the nullable annotation are visible in the declaration"); + } + + if (FindType(types, "CuiSharp.KeyFn`1", out JsonElement keyFn)) + Check(MembersNamed(keyFn, "Invoke").Any(r => Str(r, "signature").Contains("(in T item", StringComparison.Ordinal)), + "an in-parameter renders as in, not as ref"); + + if (FindType(types, "CuiSharp.Size", out JsonElement sizeType)) + { + Check(MembersOf(sizeType).Any(m => Str(m, "signature") == "static implicit operator Size(float points)"), + "a conversion names its result once, in operator syntax"); + Check(!MembersOf(sizeType).Any(m => Str(m, "signature").Contains("Size implicit operator Size", StringComparison.Ordinal)), + "the conversion result is not doubled"); + } + + if (FindType(types, "CuiSharp.CuiAppOptions", out JsonElement options)) + Check(MembersOf(options).Any(m => Str(m, "signature").Contains("operator ==(", StringComparison.Ordinal)), + "equality operators use operator syntax"); + + if (FindType(types, "CuiSharp.CuiDiagnostics", out JsonElement diagnostics)) + Check(MembersOf(diagnostics).Any(m => Str(m, "signature").Contains("{ get; init; }", StringComparison.Ordinal)), + "init accessors are not shown as set"); + + if (FindType(types, "CuiSharp.Ui", out JsonElement uiType)) + { + List states = MembersNamed(uiType, "State"); + Check(states.Count == 2 && states.All(s => Str(s, "signature").Contains("where T : unmanaged", StringComparison.Ordinal)), + "the unmanaged constraint renders as unmanaged"); + Check(states.All(s => !Str(s, "signature").Contains("ValueType", StringComparison.Ordinal)), + "the implicit ValueType constraint is not rendered"); + } + } + + /// + /// Declarations whose accuracy was separately reviewed: nested nullability, qualified + /// enum defaults, and the bare-T-versus-T? line the metadata modopts draw. + /// + void CheckDeclarationGoldens(JsonElement types) + { + (string type, string signature, string why)[] goldens = + [ + ("CuiSharp.FilePickResult", "string? Error { get; }", "a get-only nullable property keeps its ?"), + ("CuiSharp.SemanticNode", "SemanticNode? Parent { get; }", "a nullable reference property keeps its ?"), + ("CuiSharp.Hosting.Mutation", "Exception? Error { get; }", "a nullable exception property keeps its ?"), + ("CuiSharp.Localization", "string?[]? Months { get; set; }", "nested and outer nullability render together"), + ("CuiSharp.Hosting.Mutation`1", "bool TryPublish(out T? result)", "a generic parameter written T? renders T?"), + ("CuiSharp.KeyFn`1", "int Invoke(in T item)", "a bare generic parameter stays bare"), + ("CuiSharp.LogBuffer", "void AppendLine(string? text, LogLevel level = LogLevel.Info)", "a nonzero enum default names its type"), + ("CuiSharp.DrawFn", "DrawFn(object @object, nint method)", "a compiler-named keyword parameter is escaped in the declaration"), + ("CuiSharp.KeyFn`1", "KeyFn(object @object, nint method)", "the generic delegate's constructor escapes too"), + ("CuiSharp.Ui", "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "a source-named `out` parameter is escaped in the declaration"), + ]; + foreach ((string type, string signature, string why) in goldens) + Check(FindType(types, type, out JsonElement entry) && MembersOf(entry).Any(m => Str(m, "signature") == signature), + $"{why} ({signature})"); + } + + void CheckDocumentationGoldens(Assembly assembly, Documentation docs) + { + Type? app = assembly.GetType("CuiSharp.Hosting.CuiApplication"); + MethodInfo? run = app?.GetMethods().FirstOrDefault(m => m.Name == "Run" && m.IsGenericMethodDefinition); + Check(run is not null && DocId.Method(run, null) == "M:CuiSharp.Hosting.CuiApplication.Run``1", + "a generic method's document id takes two backticks"); + Check(run is not null && docs.SummaryFor(DocId.Method(run, null)).Contains("Resolves the root component", StringComparison.Ordinal), + "the generic Run found its documentation"); + + MethodInfo? mix = assembly.GetType("CuiSharp.Color")?.GetMethods().FirstOrDefault(m => m.Name == "Mix"); + Check(mix is not null && docs.SummaryFor(DocId.Method(mix, null)).Contains("t 0 is a", StringComparison.Ordinal), + " references survive into the summary"); + + MethodInfo? conversion = assembly.GetType("CuiSharp.Size")?.GetMethods().FirstOrDefault(m => m.Name == "op_Implicit"); + Check(conversion is not null + && DocId.Method(conversion, null) == "M:CuiSharp.Size.op_Implicit(System.Single)~CuiSharp.Size", + "a conversion's id names its result"); + Check(conversion is not null && docs.SummaryFor(DocId.Method(conversion, null)).Length > 0, + "the conversion found its documentation"); + + ConstructorInfo? mutation = assembly.GetType("CuiSharp.Hosting.Mutation")?.GetConstructors() + .FirstOrDefault(c => c.GetParameters().Length == 1); + Check(mutation is not null && DocId.Constructor(mutation) + == "M:CuiSharp.Hosting.Mutation.#ctor(System.Func{System.Threading.CancellationToken,System.Threading.Tasks.Task})", + "a constructor's id reads as #ctor"); + + ConstructorInfo? mutationOf = assembly.GetType("CuiSharp.Hosting.Mutation`1")?.GetConstructors() + .FirstOrDefault(c => c.GetParameters().Length == 1); + Check(mutationOf is not null && DocId.Constructor(mutationOf) + == "M:CuiSharp.Hosting.Mutation`1.#ctor(System.Func{System.Threading.CancellationToken,System.Threading.Tasks.Task{`0}})", + "the enclosing type's generic parameter takes one backtick"); + + // Generic owners lost their summaries entirely while type and property keys were + // built from Type.ToString(); these fail again the moment the keys drift. + Check(docs.SummaryFor("T:CuiSharp.Hosting.Mutation`1").Contains("background operation", StringComparison.Ordinal), + "a generic type found its summary"); + Check(docs.SummaryFor("P:CuiSharp.Hosting.Mutation`1.Error").Contains("failure that ended", StringComparison.Ordinal), + "a property of a generic type found its summary"); + Check(docs.SummaryFor("T:CuiSharp.KeyFn`1").Contains("key for one item", StringComparison.Ordinal), + "a generic delegate found its summary"); + Check(docs.SummaryFor("T:CuiSharp.KeyedScope`1").Contains("pushing one id scope", StringComparison.Ordinal), + "a generic struct found its summary"); + + // References nested inside disappeared while the walker fell back to Value. + Check(docs.SummaryFor("T:CuiSharp.SeriesDecimator").Contains("RequiredCapacity", StringComparison.Ordinal), + "a nested in a paragraph contributes its target"); + Check(docs.SummaryFor("T:CuiSharp.Terminal").Contains("Write with Write", StringComparison.Ordinal), + "paragraph references render the members they name"); + + // Paragraph boundaries: the newline between and is inside the + // paragraphs' own text and the collapse trims it, so without a block separator + // the summary reads "charts do.Copy-based". + Check(docs.SummaryFor("T:CuiSharp.SeriesDecimator").Contains("charts do. Copy-based", StringComparison.Ordinal), + "a paragraph boundary keeps its separator"); + Check(docs.SummaryFor("T:CuiSharp.CuiSurface").Contains("message loop. Frames", StringComparison.Ordinal), + "the live surface summary still reads as two paragraphs"); + Check(docs.SummaryFor("T:CuiSharp.Localization").Contains("complete one. Weeks", StringComparison.Ordinal), + "the live localization summary still reads as two paragraphs"); + + // The other side of the same walker: a one-line summary whose only children are + // inline references must gain nothing — no invented separator. + MethodInfo? mixLine = assembly.GetType("CuiSharp.Color")?.GetMethods().FirstOrDefault(m => m.Name == "Mix"); + Check(mixLine is not null && docs.SummaryFor(DocId.Method(mixLine, null)) + == "Blends two colors: t 0 is a, 1 is b.", + "an inline-reference summary renders exactly"); + } + + void CheckDependencyResolution(Assembly assembly, string assetsPath) + { + Dictionary assets = AssetResolver.ReadAssets(assetsPath); + Check(assets.TryGetValue("Microsoft.Extensions.DependencyInjection.Abstractions", out string? diPath) + && diPath!.Contains("microsoft.extensions.dependencyinjection.abstractions", StringComparison.Ordinal), + $"the restored-asset map names the DI abstractions by restored folder case ({assets.Count} assets from {Path.GetFileName(assetsPath)})"); + Check(assets.Values.All(File.Exists), "every resolved asset path exists on disk"); + Type? builder = assembly.GetType("CuiSharp.Hosting.CuiApplicationBuilder"); + Check(builder?.GetProperty("Services")?.PropertyType.FullName + == "Microsoft.Extensions.DependencyInjection.IServiceCollection", + "the DI surface resolves from restored packages, not the host's shared framework"); + } + } + + private static bool FindType(JsonElement types, string name, out JsonElement found) + { + foreach (JsonElement t in types.EnumerateArray()) + if (t.ValueKind == JsonValueKind.Object && Str(t, "name") == name) + { + found = t; + return true; + } + + found = default; + return false; + } + + private static List MembersOf(JsonElement type) => + type.ValueKind == JsonValueKind.Object && type.TryGetProperty("members", out JsonElement m) && m.ValueKind == JsonValueKind.Array + ? [.. m.EnumerateArray()] + : []; + + private static List MembersNamed(JsonElement type, string name) => + MembersOf(type).Where(m => Str(m, "name") == name).ToList(); + + /// A string property, or "" when it is absent or of another kind: a failed Check, never an exception. + private static string Str(JsonElement e, string property) => + e.ValueKind == JsonValueKind.Object && e.TryGetProperty(property, out JsonElement v) && v.ValueKind == JsonValueKind.String + ? v.GetString()! + : ""; +} From 6a9a196740c9a8f9bcd67234587e970cd41c5656 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 14:34:58 +0800 Subject: [PATCH 13/18] Document new CLI, readiness, chart and layout capabilities --- README.md | 2 +- docs/ARCHITECTURE.md | 2 +- docs/PLAN.md | 10 ++++ docs/RELEASING.md | 6 +-- skills/cui-dotnet/SKILL.md | 7 +++ skills/cui-dotnet/llms.txt | 1 + src/CuiSharp.Templates/CuiSharp.App/AGENTS.md | 2 +- src/CuiSharp.Templates/CuiSharp.App/README.md | 2 +- tools/verify-template.ps1 | 52 +++++++++++++++++-- 9 files changed, 72 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 2d009c0..a1717ac 100644 --- a/README.md +++ b/README.md @@ -213,7 +213,7 @@ nested loops and while/do loops need explicit keys. The other rules still requir ```sh dotnet add package CuiSharp # library + analyzers + cui.dll/cui.lib dotnet add package CuiSharp.Testing # tests only -dotnet tool install -g CuiSharp.Tools # the `cui` command +dotnet tool install -g CuiSharp.Tools # exposes `dotnet cui` ``` ```xml diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 5932b67..9254841 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -268,5 +268,5 @@ timeout says which wait it gave up on — the banner or the answer. |---|---|---| | `CuiSharp` | the library, each RID's `runtimes//native/` files, `runtimes/native-provenance.txt`, analyzers and IDE fixes, build targets | AOT links the RID's static archive through `build/CuiSharp.targets`; the RID is matched exactly and a missing archive is an error, not a warning | | `CuiSharp.Testing` | `TestApp` (a `HeadlessApp` under the name a test wants) | test-only dependency | -| `CuiSharp.Tools` | `dotnet cui` | `PackAsTool`, `ToolCommandName=cui` | +| `CuiSharp.Tools` | `dotnet cui` | `PackAsTool`, `ToolCommandName=dotnet-cui` | | `CuiSharp.Templates` | `dotnet new cui-app`, `dotnet new cui-mini` | a solution (app + tests + `AGENTS.md`) or a file-based app named with `-n` in the current directory (optional `-o`), with a package directive | diff --git a/docs/PLAN.md b/docs/PLAN.md index ed1b334..c430f48 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -30,4 +30,14 @@ in [ARCHITECTURE.md](ARCHITECTURE.md). Every item here passes the same gates as NSAccessibility. The semantic tree is the foundation to build on, not a substitute. - **One window per app.** CUI creates one window; multi-window is an upstream question. - **IME coverage** beyond what upstream implements. +- **Chart time axes and gaps.** The managed `NormalizeMode` is a y-value transform; CUI still spaces + line/bar points uniformly by index and has no explicit gap segments. True timestamps, irregular + calendars, aligned hover/labels and NaN-gap semantics need native API and renderer work upstream. +- **Complete layout introspection.** `cui layout` can report verified named rectangles and + lower-bound unions, but CUI exposes neither id-0 container rectangles nor authoritative + scroll/content extents. A read-only layout walk and scroll-info API belong upstream. +- **Safe live-window control.** A managed window-session prototype cannot prove callbacks are at a + safe frame boundary during nested modal/deferred-paint pumps, nor reliably cancel input during + native teardown. This needs an upstream post-at-frame-boundary/wake and destroy-lifecycle hook; + do not ship the current prototype as a supported tool. - **macOS signing and notarization** for a distributed `.app`. diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 5e138ff..075c3ba 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -87,7 +87,7 @@ unzip -l artifacts/packages/CuiSharp.Templates.*.nupkg | head -20 |---|---| | `CuiSharp` | `lib/net10.0/CuiSharp.dll`, each RID's `runtimes//native/` files, `runtimes/native-provenance.txt` (revision, compiler, ABI, hashes — see [native-abi.md](../skills/cui-dotnet/native-abi.md)), `analyzers/dotnet/cs/CuiSharp.Analyzers.dll`, `analyzers/dotnet/cs/CuiSharp.CodeFixes.dll`, `build/CuiSharp.targets`, `README.md` | | `CuiSharp.Testing` | `lib/net10.0/CuiSharp.Testing.dll` and a dependency on `CuiSharp` | -| `CuiSharp.Tools` | a `DotnetToolSettings.xml` with `CommandName=cui` | +| `CuiSharp.Tools` | a `DotnetToolSettings.xml` with `CommandName=dotnet-cui` | | `CuiSharp.Templates` | `content/CuiSharp.App/…` including the app, its tests and `AGENTS.md` | `dotnet pack` warns when no native artifacts are found, because a managed-only package installs @@ -117,7 +117,7 @@ Then the template, from the same local feed: dotnet new install /artifacts/packages/CuiSharp.Templates.*.nupkg dotnet new cui-app -n FreshApp && cd FreshApp && dotnet test dotnet tool install --add-source /artifacts/packages -g CuiSharp.Tools -cui tree --project CuiSharp.App --no-build +dotnet cui tree --project CuiSharp.App --no-build ``` ## 7. Publish @@ -141,5 +141,5 @@ dotnet nuget push "artifacts/packages/*.nupkg" -s https://api.nuget.org/v3/index ## 8. After - Check the NuGet page renders the README and the version is listed. -- `dotnet tool update -g CuiSharp.Tools` on a clean machine and run `cui tree` once. +- `dotnet tool update -g CuiSharp.Tools` on a clean machine and run `dotnet cui tree` once. - Record the numbers the gates printed in the release notes, next to the version. diff --git a/skills/cui-dotnet/SKILL.md b/skills/cui-dotnet/SKILL.md index 50710be..2294d46 100644 --- a/skills/cui-dotnet/SKILL.md +++ b/skills/cui-dotnet/SKILL.md @@ -292,6 +292,13 @@ about 12 µs — the same as a thousand. for you — `LineChart`/`BarChart` collapse anything longer than `ChartOpts.MaxPoints` (default: twice the viewport width) into min/max pairs in the frame arena — so pass the whole feed. +`ChartOpts.Normalize` rebases each line/bar series to its own first finite non-zero sample: +`NormalizeMode.Index100` makes that point 100; `NormalizeMode.Percent` makes it 0. A negative +baseline is allowed (and reverses the direction). The setting applies to `LineChart` and +`BarChart`; `DonutChart` shares the options type but rejects normalization. When normalization is +enabled, NaN/infinity and all-zero series are errors — **NaN is not a gap marker**. CUI spaces +points uniformly by index, not by time; `Labels` are positional, and this is not a timestamp axis. + ```csharp private readonly float[] _window = new float[SeriesDecimator.RequiredCapacity(400)]; private readonly Series[] _series = [new Series { Values = _window }]; diff --git a/skills/cui-dotnet/llms.txt b/skills/cui-dotnet/llms.txt index 6204b03..15cdf4a 100644 --- a/skills/cui-dotnet/llms.txt +++ b/skills/cui-dotnet/llms.txt @@ -385,6 +385,7 @@ Hand-written, because the wrapper needs state a C call cannot carry; they are pa - `ui.LoadImage(...)` — hand-written in `Ui/Ui.Images.cs` - `ui.LogView(...)` — hand-written in `Ui/Ui.Log.cs` - `ui.MakeId(...)` — hand-written in `Ui/Ui.Draw.cs` +- `ui.MarkReady(...)` — hand-written in `Ui/Ui.Frame.cs` - `ui.MeasureText(...)` — hand-written in `Ui/Ui.Frame.cs` - `ui.MouseClicked(...)` — hand-written in `Ui/Ui.Frame.cs` - `ui.MouseDown(...)` — hand-written in `Ui/Ui.Frame.cs` diff --git a/src/CuiSharp.Templates/CuiSharp.App/AGENTS.md b/src/CuiSharp.Templates/CuiSharp.App/AGENTS.md index ec33ef1..08cc70a 100644 --- a/src/CuiSharp.Templates/CuiSharp.App/AGENTS.md +++ b/src/CuiSharp.Templates/CuiSharp.App/AGENTS.md @@ -49,7 +49,7 @@ A render test draws a real frame into a pixel buffer and asserts `surface.Faults page that throws cannot pass as a page that works. `dotnet cui tree` prints what a frame drew: ```sh -dotnet tool install -g CuiSharp.Tools +dotnet tool install -g CuiSharp.Tools # exposes `dotnet cui` dotnet cui tree --project . # the controls of the last frame, nested dotnet cui click Dark # a control, by the label or id the tree printed dotnet cui png shot.png # the frame as a PNG, for you or for a person diff --git a/src/CuiSharp.Templates/CuiSharp.App/README.md b/src/CuiSharp.Templates/CuiSharp.App/README.md index 6416e79..3fb0903 100644 --- a/src/CuiSharp.Templates/CuiSharp.App/README.md +++ b/src/CuiSharp.Templates/CuiSharp.App/README.md @@ -218,7 +218,7 @@ The app is inspectable and clickable as it runs, which is what makes it workable agent as well as a person: ```sh -dotnet tool install -g CuiSharp.Tools +dotnet tool install -g CuiSharp.Tools # exposes `dotnet cui` dotnet cui tree --project CuiSharp.App # the controls of the last frame, nested dotnet cui click Dark # a control, by the label the tree printed dotnet cui png shot.png # the frame as a PNG diff --git a/tools/verify-template.ps1 b/tools/verify-template.ps1 index c3e8393..f988ca5 100644 --- a/tools/verify-template.ps1 +++ b/tools/verify-template.ps1 @@ -242,6 +242,17 @@ internal static class AnalyzerProbe if ($generated.Count -ne 1 -or $generated[0].Name -cne $miniFile) { throw "cui-mini must generate exactly one file named $miniFile" } + # Deterministic non-ASCII label: the tool's strict UTF-8 decoder below must observe these + # exact characters; this check never silently skips because a sample page happened to be ASCII. + $miniPath = Join-Path $miniApp $miniFile + $miniSource = [System.IO.File]::ReadAllText($miniPath) + $asciiHeading = 'ui.Heading("MiniApp", 1);' + if (-not $miniSource.Contains($asciiHeading, [StringComparison]::Ordinal)) { + throw "the generated mini no longer contains the expected heading: $miniPath" + } + $miniSource = $miniSource.Replace($asciiHeading, 'ui.Heading("保存", 1);') + [System.IO.File]::WriteAllText($miniPath, $miniSource, [System.Text.UTF8Encoding]::new($false)) + Copy-Item (Join-Path $app 'NuGet.config') (Join-Path $miniApp 'NuGet.config') $psi = [System.Diagnostics.ProcessStartInfo]::new('dotnet') @@ -280,12 +291,15 @@ internal static class AnalyzerProbe # This is the whole tool path on a file-based app — Release build through the SDK's file # handling, a headless launch, one command — checked on the app the template actually ships. Step 'driving the file-based app with dotnet cui' - $fileToolInfo = [System.Diagnostics.ProcessStartInfo]::new($cui) - foreach ($argument in @('tree', '--project', (Join-Path $miniApp $miniFile), '--frames', '2')) { $fileToolInfo.ArgumentList.Add($argument) } + $fileToolInfo = [System.Diagnostics.ProcessStartInfo]::new('dotnet') + $fileToolInfo.WorkingDirectory = $miniApp + foreach ($argument in @('cui', 'tree', '--project', $miniFile, '--frames', '2')) { $fileToolInfo.ArgumentList.Add($argument) } $fileToolInfo.UseShellExecute = $false $fileToolInfo.RedirectStandardOutput = $true $fileToolInfo.RedirectStandardError = $true $fileToolInfo.StandardOutputEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $fileToolInfo.StandardErrorEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $fileToolInfo.Environment['PATH'] = "$toolPath$([System.IO.Path]::PathSeparator)$env:PATH" $fileTool = [System.Diagnostics.Process]::Start($fileToolInfo) try { $stdout = $fileTool.StandardOutput.ReadToEndAsync() @@ -294,16 +308,44 @@ internal static class AnalyzerProbe $tree = $stdout.GetAwaiter().GetResult() $errors = $stderr.GetAwaiter().GetResult() if ($fileTool.ExitCode -ne 0) { throw "dotnet cui tree on $miniFile failed: $errors" } - if ($tree -notmatch 'Frame' -or $tree -notmatch 'Increment') { - throw "dotnet cui did not see the file-based app's button: $tree" + if ($tree -notmatch 'Frame' -or $tree -notmatch 'Increment' -or -not $tree.Contains('保存')) { + throw "the installed dotnet cui did not build and render the file-based app as UTF-8: $tree" } - Write-Host " dotnet cui built and drove $miniFile without a project file" -ForegroundColor Green + Write-Host " installed dotnet cui built and drove $miniFile; Unicode label round-tripped as UTF-8" -ForegroundColor Green } finally { if (-not $fileTool.HasExited) { $fileTool.Kill($true); $fileTool.WaitForExit() } $fileTool.Dispose() } + # Redirected diagnostics are UTF-8 too. A non-existent filename that itself contains + # non-ASCII text checks stderr independently from the successful Unicode tree payload. + $badToolInfo = [System.Diagnostics.ProcessStartInfo]::new('dotnet') + $badToolInfo.WorkingDirectory = $miniApp + foreach ($argument in @('cui', 'tree', '--project', '不存在.cs')) { $badToolInfo.ArgumentList.Add($argument) } + $badToolInfo.UseShellExecute = $false + $badToolInfo.RedirectStandardOutput = $true + $badToolInfo.RedirectStandardError = $true + $badToolInfo.StandardOutputEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $badToolInfo.StandardErrorEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $badToolInfo.Environment['PATH'] = "$toolPath$([System.IO.Path]::PathSeparator)$env:PATH" + $badTool = [System.Diagnostics.Process]::Start($badToolInfo) + try { + $badOut = $badTool.StandardOutput.ReadToEndAsync() + $badErr = $badTool.StandardError.ReadToEndAsync() + if (-not $badTool.WaitForExit(60000)) { throw 'dotnet cui diagnostic smoke timed out' } + $diagnostic = $badErr.GetAwaiter().GetResult() + $null = $badOut.GetAwaiter().GetResult() + if ($badTool.ExitCode -ne 1 -or -not $diagnostic.Contains('不存在.cs')) { + throw "installed dotnet cui did not preserve the UTF-8 diagnostic: $diagnostic" + } + Write-Host ' installed tool stderr round-tripped UTF-8 diagnostics' -ForegroundColor Green + } + finally { + if (-not $badTool.HasExited) { $badTool.Kill($true); $badTool.WaitForExit() } + $badTool.Dispose() + } + # The template's promise is one binary, and a publish that leaves a .pdb beside it is how that # breaks quietly: the app still runs, and the folder has two things in it. DebugType=none is # what suppresses the native symbols on every platform: .pdb, .dbg or .dSYM. From 9801c3206d754c5905014502028be13e3449f203 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 16:05:38 +0800 Subject: [PATCH 14/18] Expose offline API and icon catalog commands --- skills/cui-dotnet/SKILL.md | 6 +- skills/cui-dotnet/api/catalog.json | 24 +- src/CuiSharp.Tests/ApiCatalogCliTests.cs | 500 +++++++++++++++++++++++ src/CuiSharp.Tools/ApiCatalog.cs | 86 +++- src/CuiSharp.Tools/Cli.cs | 221 +++++++++- src/CuiSharp.Tools/CuiSharp.Tools.csproj | 9 + src/CuiSharp/CuiSharp.csproj | 4 + tools/regen.ps1 | 20 + 8 files changed, 846 insertions(+), 24 deletions(-) create mode 100644 src/CuiSharp.Tests/ApiCatalogCliTests.cs diff --git a/skills/cui-dotnet/SKILL.md b/skills/cui-dotnet/SKILL.md index 2294d46..78e6fb8 100644 --- a/skills/cui-dotnet/SKILL.md +++ b/skills/cui-dotnet/SKILL.md @@ -612,7 +612,10 @@ dialog is modal, a dropzone returns the paths it received. - **Icons** — 168 constants generated from `cui_icons.h`: `Icons.Check`, `Icons.Plus`, `Icons.Search`, … Each generated component has one line of documentation with its exact signature in `llms.txt`, and a -per-section page under `api/`. +per-section page under `api/`. To look one up without opening a file, `dotnet cui api ` prints +the live declarations of `ChartOpts`, `Ui.LineChart`, or a bare member name from the catalog packaged +with the tool (`--json` for machine output), and `dotnet cui icons [filter]` lists every glyph with +its code point. Both answer offline from `api/catalog.json`: no app, no build, no native library. ## Files @@ -625,6 +628,7 @@ Everything below is in this folder, beside this guide; nothing here points outsi | option structs and their fields | `api/Options.md` | | records used as array items | `api/Records.md` | | the whole API paged, one file per section | `api/` | +| every declaration as data, for offline lookup | `api/catalog.json` (`dotnet cui api --json`) | | what each widget does, and its keyboard | `widgets.md`, `widgets-more.md` | | hosting: components, mutations, DI | `hosting.md` | | which RIDs the package carries, and the glibc floor | `native-abi.md` | diff --git a/skills/cui-dotnet/api/catalog.json b/skills/cui-dotnet/api/catalog.json index 4ff1fc4..64b1f2c 100644 --- a/skills/cui-dotnet/api/catalog.json +++ b/skills/cui-dotnet/api/catalog.json @@ -14,13 +14,13 @@ { "name": "CuiSharp.ApiExplorerResult", "displayName": "ApiExplorerResult", "kind": "struct", "summary": "cui_api_explorer_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Selected;int TryIt = default||hac6596a15f6063fe4ce04a8c27bf6079bd6cc12e30e980f4bae515c0fdc822bd", "signature": "ApiExplorerResult(int Selected, int TryIt = default)", "parameters": [{ "name": "Selected", "type": "int" }, { "name": "TryIt", "type": "int", "default": "default" }] }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "endpoint, or -1" }, { "name": "TryIt", "kind": "field", "id": "field|TryIt|0|0|int|||h5b7497c7ff57eca579c0220484ed786050570c5aa1615b0f5118bc1ae8af3b74", "signature": "public int TryIt", "summary": "endpoint, or -1" }] }, { "name": "CuiSharp.ApiParam", "displayName": "ApiParam", "kind": "struct", "summary": "cui_api_param. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;string? In = null;string? Type = null;bool Required = default;string? Description = null||h91ef145f6fd0be325481474d76af2a84766c93ba0b369ce9adf437fdd41951aa", "signature": "ApiParam(string? Name, string? In = null, string? Type = null, bool Required = default, string? Description = null)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "In", "type": "string?", "default": "null" }, { "name": "Type", "type": "string?", "default": "null" }, { "name": "Required", "type": "bool", "default": "default" }, { "name": "Description", "type": "string?", "default": "null" }] }, { "name": "Required", "kind": "field", "id": "field|Required|0|0|bool|||hb6aec04b549eaa0bb337715fa9a3aaa889086dfc1dbd6d0b555826d7ce836b48", "signature": "public bool Required", "summary": "_Bool required" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "In", "kind": "field", "id": "field|In|0|0|string?|||h5311dc7b652ebc0c442baa10c3ef5359c19f57d1feeb1a212fba7e36a425a488", "signature": "public string? In", "summary": "\u0022path\u0022, \u0022query\u0022, \u0022header\u0022, \u0022body\u0022" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "\u0022path\u0022, \u0022query\u0022, \u0022header\u0022, \u0022body\u0022" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|string?|||hd13f10c6a1a43e5dad4e56f1c9942eeda7e31c88858c2d5b682e8c3bf87faf1f", "signature": "public string? Type", "summary": "const char * type" }] }, { "name": "CuiSharp.AvatarOpts", "displayName": "AvatarOpts", "kind": "struct", "summary": "cui_avatar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Square", "kind": "field", "id": "field|Square|0|0|bool|||h3398a8febfe56ac8052a2486a1cba1999b01c4910184d7a2b01bd9600e1ed263", "signature": "public bool Square", "summary": "_Bool square" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|string?|||hea5150ac3e746a684c3b4c0832cabdae145da44e92c85bb412cef107598a117e", "signature": "public string? Status", "summary": "const char * status" }, { "name": "Image", "kind": "field", "id": "field|Image|0|0|ulong|||he25dd60d612e9a06babb072bcf3c76754f6f813f5113d829ed08e969dc20f672", "signature": "public ulong Image", "summary": "cui_texture image" }] }, - { "name": "CuiSharp.BadgeOpts", "displayName": "BadgeOpts", "kind": "struct", "summary": "cui_badge_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dot", "kind": "field", "id": "field|Dot|0|0|bool|||h2c1cc597459b498ce2f3dd2878d6499c9cf8ef48c0603c3a097c5f56751d30d9", "signature": "public bool Dot", "summary": "_Bool dot" }, { "name": "Solid", "kind": "field", "id": "field|Solid|0|0|bool|||h938690fcaa55f8f20d4eb1f6bdad82856b9119192f5dd841daa133c854056596", "signature": "public bool Solid", "summary": "_Bool solid" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, + { "name": "CuiSharp.BadgeOpts", "displayName": "BadgeOpts", "kind": "struct", "summary": "cui_badge_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Tone tone = Tone.Neutral||hf41ea10b22440a272ef4b1ca8ad61390d4b0450f2767621ad1e0bae737d0936f", "signature": "BadgeOpts(Tone tone = Tone.Neutral)", "parameters": [{ "name": "tone", "type": "Tone", "default": "Tone.Neutral" }], "summary": "A badge in one word: ui.Badge(\u0022Updating\u0022, new(Tone.Danger)). Every other field keeps its native default, exactly as the equivalent object initializer." }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dot", "kind": "field", "id": "field|Dot|0|0|bool|||h2c1cc597459b498ce2f3dd2878d6499c9cf8ef48c0603c3a097c5f56751d30d9", "signature": "public bool Dot", "summary": "_Bool dot" }, { "name": "Solid", "kind": "field", "id": "field|Solid|0|0|bool|||h938690fcaa55f8f20d4eb1f6bdad82856b9119192f5dd841daa133c854056596", "signature": "public bool Solid", "summary": "_Bool solid" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, { "name": "CuiSharp.BannerOpts", "displayName": "BannerOpts", "kind": "struct", "summary": "cui_banner_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|bool|||h7796da526a083f4775f676304b27d97ecd77b43cfa36072c0cca539af9ae884b", "signature": "public bool Dismissible", "summary": "_Bool dismissible" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, { "name": "CuiSharp.BarListOpts", "displayName": "BarListOpts", "kind": "struct", "summary": "cui_bar_list_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "KeepOrder", "kind": "field", "id": "field|KeepOrder|0|0|bool|||hf12573cda7d5c6ce51d5a43ecfa5b8683a8482b185376fa3c1a76ee844ba6f3d", "signature": "public bool KeepOrder", "summary": "_Bool keep_order" }, { "name": "MaxRows", "kind": "field", "id": "field|MaxRows|0|0|int|||h82a530e961fd20944667ea1ad6f4d328cd4ce0e5c238e091ebaa74d2086ed486", "signature": "public int MaxRows", "summary": "int max_rows" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, { "name": "CuiSharp.BlameCommit", "displayName": "BlameCommit", "kind": "struct", "summary": "cui_blame_commit. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Hash;string? Author = null;string? Summary = null;long Time = default||h05100a81b2f2d39e2e7a4db65654080df5fbd3a27ca828ee7e99e8810d69dfa9", "signature": "BlameCommit(string? Hash, string? Author = null, string? Summary = null, long Time = default)", "parameters": [{ "name": "Hash", "type": "string?" }, { "name": "Author", "type": "string?", "default": "null" }, { "name": "Summary", "type": "string?", "default": "null" }, { "name": "Time", "type": "long", "default": "default" }] }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|long|||h382e39ea1b3f79836fb7922bfa24e88b592f7f612357f065c055e7b46e60270d", "signature": "public long Time", "summary": "Unix seconds" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|string?|||h5d1fc170a7dcd4b8e80156dab09738bd64f10f589e9ac4a8e02e5fdc43adb431", "signature": "public string? Author", "summary": "Unix seconds" }, { "name": "Hash", "kind": "field", "id": "field|Hash|0|0|string?|||h95e6d6d6d205a91ba5b07f33a3714e158b5d5e595387bd4d4e731aadfa81def7", "signature": "public string? Hash", "summary": "Unix seconds" }, { "name": "Summary", "kind": "field", "id": "field|Summary|0|0|string?|||h8385df67ed47afeb0919f599fea724e61b9b1c51e95bd9d8ec4e369db57dbc8d", "signature": "public string? Summary", "summary": "Unix seconds" }] }, { "name": "CuiSharp.BlameOpts", "displayName": "BlameOpts", "kind": "struct", "summary": "cui_blame_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 360" }, { "name": "FirstLine", "kind": "field", "id": "field|FirstLine|0|0|int|||h1ab09d25eaa64ebab6cfe486404f0958dc364ecc142585baf2abf1130d0833f3", "signature": "public int FirstLine", "summary": "number of the first line, default 1" }, { "name": "Now", "kind": "field", "id": "field|Now|0|0|long|||h949d29ec25550cd1c5e589c99b5e39471c9584ce47315d26d5fa02dc132525d7", "signature": "public long Now", "summary": "ages are counted to here; 0: the clock" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "highlights the code, as the code block" }] }, { "name": "CuiSharp.BlameResult", "displayName": "BlameResult", "kind": "struct", "summary": "cui_blame_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Clicked;int Hovered = default||hb1adf65814756b5ef4c1181973a88397aa75de71ac6a215607b1f39e43c885d2", "signature": "BlameResult(int Clicked, int Hovered = default)", "parameters": [{ "name": "Clicked", "type": "int" }, { "name": "Hovered", "type": "int", "default": "default" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|int|||h6031d38fe0a03c9e84105b11fd943f9c402249a8f2a374a85eff025acb845931", "signature": "public int Clicked", "summary": "commits, or -1" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|int|||h26e8b438ed7af63a2d920cee8fc22d0ac2a2efa801cc89a59125d0c7c03529e3", "signature": "public int Hovered", "summary": "commits, or -1" }] }, - { "name": "CuiSharp.Box", "displayName": "Box", "kind": "struct", "summary": "cui_box. All fields are optional; zero selects native defaults.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cross axis alignment of children" }, { "name": "Bg", "kind": "field", "id": "field|Bg|0|0|Color|||h202c1642f9d390c957a66afa64c92a12856dec696301aef52d51b6cd0862c639", "signature": "public Color Bg", "summary": "background" }, { "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|Color|||h972eda0c8fa110c72268d5ac944f0b43c5dc51b304b4c62290999eb105e519cf", "signature": "public Color BorderColor", "summary": "defaults to CUI_COLOR_BORDER when border \u003E 0" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "CUI_COLUMN (default), CUI_ROW, CUI_STACK, CUI_GRID" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited by default; mirrors horizontal layout and padding" }, { "name": "Elevation", "kind": "field", "id": "field|Elevation|0|0|Elevation|||he0a7c311160b4a1eff39232663778806740ff0dbee335caec9c9e85ca308541e", "signature": "public Elevation Elevation", "summary": "cui_elevation elevation" }, { "name": "Justify", "kind": "field", "id": "field|Justify|0|0|Justify|||hf004d9d46fdf7b0e648b8005eefcd94a2875126011393877c0f22d333513e2ef", "signature": "public Justify Justify", "summary": "main axis distribution" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|bool|||h5216b6f2f31363ae7228e32f5ca20a079eb5e999fae48f94da46613946cce79d", "signature": "public bool Clip", "summary": "clip children to the box" }, { "name": "ScrollX", "kind": "field", "id": "field|ScrollX|0|0|bool|||h6ae2052c4eb70e4eb0304226ce6169523e57d8278e3ba35cca97ca3379370051", "signature": "public bool ScrollX", "summary": "make the box a scroll area (clips content)" }, { "name": "ScrollY", "kind": "field", "id": "field|ScrollY|0|0|bool|||h847b268e6ea6fa9b1edbf04544f448cf555492d55d4e2e09556e2e04c9ba939b", "signature": "public bool ScrollY", "summary": "make the box a scroll area (clips content)" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW: children that do not fit move to a new line" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "border width" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "space between children (and between wrapped lines)" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float max_height" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "float max_width" }, { "name": "MinColumnWidth", "kind": "field", "id": "field|MinColumnWidth|0|0|float|||h3bf72f06ae16007da1aa4132cf4b98d6c659d256b3af795fc2b66943463ec497", "signature": "public float MinColumnWidth", "summary": "CUI_GRID: as many columns as fit at this width, at least one" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|float|||ha292b3b72be6a5893414fe5fc78e9c3c32fdca9ee4f85aaeb3161e6842440033", "signature": "public float MinHeight", "summary": "float min_height" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "float min_width" }, { "name": "Opacity", "kind": "field", "id": "field|Opacity|0|0|float|||hde7eb5efb94b5e9dd209e0982456759c12c57b2c83531f251a12e65cbe6b1e13", "signature": "public float Opacity", "summary": "0 means 1 (fully opaque)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadBottom", "kind": "field", "id": "field|PadBottom|0|0|float|||hc1c67a6a2548abf224e047c651d6a7cb45329e967b322af5dfe524a07f5e2620", "signature": "public float PadBottom", "summary": "float pad_bottom" }, { "name": "PadLeft", "kind": "field", "id": "field|PadLeft|0|0|float|||h70bf8d58e7c7a29cfdb6a63424ba305385f7538afd0181c1518eee1ed9f61b1b", "signature": "public float PadLeft", "summary": "float pad_left" }, { "name": "PadRight", "kind": "field", "id": "field|PadRight|0|0|float|||h47fc325b4ba851dd9c4be8407fc7051641fbb4f71aae1b8cd4448ca21bb0f8b6", "signature": "public float PadRight", "summary": "float pad_right" }, { "name": "PadTop", "kind": "field", "id": "field|PadTop|0|0|float|||hbb5c17b3bf02fb73ab1351bef2ea7c7446fa1d77e66e8a8fa1077ff4b5f0ba3e", "signature": "public float PadTop", "summary": "float pad_top" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "corner radius; use radius_tl.. for single corners" }, { "name": "RadiusBl", "kind": "field", "id": "field|RadiusBl|0|0|float|||h9dd1fafd2e82c84b61ae611cdc8a30354ae3db4a16a977547d65e6ba6c8f29cf", "signature": "public float RadiusBl", "summary": "float radius_bl" }, { "name": "RadiusBr", "kind": "field", "id": "field|RadiusBr|0|0|float|||h2234ef53764aea1f5c8535a3bf90ae370665341580a63b651f5d700ac65573ed", "signature": "public float RadiusBr", "summary": "float radius_br" }, { "name": "RadiusTl", "kind": "field", "id": "field|RadiusTl|0|0|float|||he23d55a47528087e12871dd0cfa80caa841145f35df4ceb0535f6351d0d1e78b", "signature": "public float RadiusTl", "summary": "float radius_tl" }, { "name": "RadiusTr", "kind": "field", "id": "field|RadiusTr|0|0|float|||hb0e758616eae542125924701530e0fd1f7106694d1eb38533996552033f3bac6", "signature": "public float RadiusTr", "summary": "float radius_tr" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "CUI_GRID: column count (with min_column_width: the most columns)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "identity for scroll state etc. (defaults to an automatic id)" }] }, + { "name": "CuiSharp.Box", "displayName": "Box", "kind": "struct", "summary": "cui_box. All fields are optional; zero selects native defaults.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float gap = default;float pad = default;Align align = Align.Default;Size width = default;Size height = default||h7f1ba54cd72a71d55501a6362bc3f8446aef984e009632bc4e5ca8182ab543dd", "signature": "Box(float gap = default, float pad = default, Align align = Align.Default, Size width = default, Size height = default)", "parameters": [{ "name": "gap", "type": "float", "default": "default" }, { "name": "pad", "type": "float", "default": "default" }, { "name": "align", "type": "Align", "default": "Align.Default" }, { "name": "width", "type": "Size", "default": "default" }, { "name": "height", "type": "Size", "default": "default" }], "summary": "A box with its hot layout fields set: ui.Row(new(gap: 12, align: Align.Center)), ui.Column(new(pad: 18, gap: 12, height: Size.Fill)). Every other field keeps its native default, exactly as the equivalent object initializer." }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cross axis alignment of children" }, { "name": "Bg", "kind": "field", "id": "field|Bg|0|0|Color|||h202c1642f9d390c957a66afa64c92a12856dec696301aef52d51b6cd0862c639", "signature": "public Color Bg", "summary": "background" }, { "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|Color|||h972eda0c8fa110c72268d5ac944f0b43c5dc51b304b4c62290999eb105e519cf", "signature": "public Color BorderColor", "summary": "defaults to CUI_COLOR_BORDER when border \u003E 0" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "CUI_COLUMN (default), CUI_ROW, CUI_STACK, CUI_GRID" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited by default; mirrors horizontal layout and padding" }, { "name": "Elevation", "kind": "field", "id": "field|Elevation|0|0|Elevation|||he0a7c311160b4a1eff39232663778806740ff0dbee335caec9c9e85ca308541e", "signature": "public Elevation Elevation", "summary": "cui_elevation elevation" }, { "name": "Justify", "kind": "field", "id": "field|Justify|0|0|Justify|||hf004d9d46fdf7b0e648b8005eefcd94a2875126011393877c0f22d333513e2ef", "signature": "public Justify Justify", "summary": "main axis distribution" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default: fit content (columns stretch children horizontally)" }, { "name": "Clip", "kind": "field", "id": "field|Clip|0|0|bool|||h5216b6f2f31363ae7228e32f5ca20a079eb5e999fae48f94da46613946cce79d", "signature": "public bool Clip", "summary": "clip children to the box" }, { "name": "ScrollX", "kind": "field", "id": "field|ScrollX|0|0|bool|||h6ae2052c4eb70e4eb0304226ce6169523e57d8278e3ba35cca97ca3379370051", "signature": "public bool ScrollX", "summary": "make the box a scroll area (clips content)" }, { "name": "ScrollY", "kind": "field", "id": "field|ScrollY|0|0|bool|||h847b268e6ea6fa9b1edbf04544f448cf555492d55d4e2e09556e2e04c9ba939b", "signature": "public bool ScrollY", "summary": "make the box a scroll area (clips content)" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW: children that do not fit move to a new line" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "border width" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "space between children (and between wrapped lines)" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "float max_height" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "float max_width" }, { "name": "MinColumnWidth", "kind": "field", "id": "field|MinColumnWidth|0|0|float|||h3bf72f06ae16007da1aa4132cf4b98d6c659d256b3af795fc2b66943463ec497", "signature": "public float MinColumnWidth", "summary": "CUI_GRID: as many columns as fit at this width, at least one" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|float|||ha292b3b72be6a5893414fe5fc78e9c3c32fdca9ee4f85aaeb3161e6842440033", "signature": "public float MinHeight", "summary": "float min_height" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "float min_width" }, { "name": "Opacity", "kind": "field", "id": "field|Opacity|0|0|float|||hde7eb5efb94b5e9dd209e0982456759c12c57b2c83531f251a12e65cbe6b1e13", "signature": "public float Opacity", "summary": "0 means 1 (fully opaque)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadBottom", "kind": "field", "id": "field|PadBottom|0|0|float|||hc1c67a6a2548abf224e047c651d6a7cb45329e967b322af5dfe524a07f5e2620", "signature": "public float PadBottom", "summary": "float pad_bottom" }, { "name": "PadLeft", "kind": "field", "id": "field|PadLeft|0|0|float|||h70bf8d58e7c7a29cfdb6a63424ba305385f7538afd0181c1518eee1ed9f61b1b", "signature": "public float PadLeft", "summary": "float pad_left" }, { "name": "PadRight", "kind": "field", "id": "field|PadRight|0|0|float|||h47fc325b4ba851dd9c4be8407fc7051641fbb4f71aae1b8cd4448ca21bb0f8b6", "signature": "public float PadRight", "summary": "float pad_right" }, { "name": "PadTop", "kind": "field", "id": "field|PadTop|0|0|float|||hbb5c17b3bf02fb73ab1351bef2ea7c7446fa1d77e66e8a8fa1077ff4b5f0ba3e", "signature": "public float PadTop", "summary": "float pad_top" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Radius", "kind": "field", "id": "field|Radius|0|0|float|||h565c7c94c17c4e0d68e71b97e4dacf48df705124ce26655589804f82ae3a5afe", "signature": "public float Radius", "summary": "corner radius; use radius_tl.. for single corners" }, { "name": "RadiusBl", "kind": "field", "id": "field|RadiusBl|0|0|float|||h9dd1fafd2e82c84b61ae611cdc8a30354ae3db4a16a977547d65e6ba6c8f29cf", "signature": "public float RadiusBl", "summary": "float radius_bl" }, { "name": "RadiusBr", "kind": "field", "id": "field|RadiusBr|0|0|float|||h2234ef53764aea1f5c8535a3bf90ae370665341580a63b651f5d700ac65573ed", "signature": "public float RadiusBr", "summary": "float radius_br" }, { "name": "RadiusTl", "kind": "field", "id": "field|RadiusTl|0|0|float|||he23d55a47528087e12871dd0cfa80caa841145f35df4ceb0535f6351d0d1e78b", "signature": "public float RadiusTl", "summary": "float radius_tl" }, { "name": "RadiusTr", "kind": "field", "id": "field|RadiusTr|0|0|float|||hb0e758616eae542125924701530e0fd1f7106694d1eb38533996552033f3bac6", "signature": "public float RadiusTr", "summary": "float radius_tr" }, { "name": "Columns", "kind": "field", "id": "field|Columns|0|0|int|||h559b71c7310b7fbfd42a362221a5ff693033ac427ba75417f9fbcd448f34bd58", "signature": "public int Columns", "summary": "CUI_GRID: column count (with min_column_width: the most columns)" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "identity for scroll state etc. (defaults to an automatic id)" }] }, { "name": "CuiSharp.ButtonOpts", "displayName": "ButtonOpts", "kind": "struct", "summary": "cui_button_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Variant", "kind": "field", "id": "field|Variant|0|0|ButtonVariant|||h7b0e90262431904c9074f1d022ec6c9718cb83c4c116f49c1cedf677a7b35f5e", "signature": "public ButtonVariant Variant", "summary": "cui_button_variant variant" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "text and icon color, e.g. CUI_COLOR_ACCENT for a toggled icon" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|bool|||hdc8aafcce927648adf0c0145203424f8957fc857f5c4d890241daae15b5eac45", "signature": "public bool FullWidth", "summary": "_Bool full_width" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|bool|||h1a1df670039b692be8a827bee28c939371fe741e0871265ea4bdd3a172311bd8", "signature": "public bool Loading", "summary": "spinner, ignores clicks" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "toggled look" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "leading icon, e.g. CUI_ICON_PLUS" }, { "name": "IconRight", "kind": "field", "id": "field|IconRight|0|0|string?|||hd9890d28fa630bfee88ff4a42700bc6620d173ee889863bcd75ad9b336da131f", "signature": "public string? IconRight", "summary": "trailing icon" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "shown as a hint in the tooltip, e.g. \u0022Ctrl S\u0022" }, { "name": "Tooltip", "kind": "field", "id": "field|Tooltip|0|0|string?|||h82837286b4f40e657285a1f72d68bcf8fa107f1c1022330456870eeab4fce431", "signature": "public string? Tooltip", "summary": "const char * tooltip" }] }, { "name": "CuiSharp.ButtonVariant", "displayName": "ButtonVariant", "kind": "enum", "summary": "cui_button_variant", "members": [{ "name": "Danger", "kind": "enum value", "id": "enum value|Danger|1|0|||5|h154afd4a1e02206d84054a76e1820f500566fedea82541d87fd986309c744776", "signature": "Danger = 5", "value": "5" }, { "name": "Default", "kind": "enum value", "id": "enum value|Default|1|0|||0|h865e49ef9e11ff3a18410e624292e1e6225511c59ebfa8a1f5a7db0c73c44e9c", "signature": "Default = 0", "value": "0" }, { "name": "Ghost", "kind": "enum value", "id": "enum value|Ghost|1|0|||4|h967aa1d871ab9bf4d2721d9ba3d7b245fdc2b396eeaae0eac0db0e4015fd7812", "signature": "Ghost = 4", "value": "4" }, { "name": "Link", "kind": "enum value", "id": "enum value|Link|1|0|||6|h52ac401c000476e81f2f411c1f1152fa88e8a43c314ce0d42546a89b566e38ba", "signature": "Link = 6", "value": "6" }, { "name": "Outline", "kind": "enum value", "id": "enum value|Outline|1|0|||3|h3e8e4a2bec5c7c94933012284f777a915254f5efc780d8353778442f20cdb6a9", "signature": "Outline = 3", "value": "3" }, { "name": "Primary", "kind": "enum value", "id": "enum value|Primary|1|0|||2|h0e4c408ff3df183ec6a5bda2a176eb76858f0b55c583a21318273b354abb4333", "signature": "Primary = 2", "value": "2" }, { "name": "Secondary", "kind": "enum value", "id": "enum value|Secondary|1|0|||1|hee4108bb3088e87b92ae739cbff6ecedd6f67a4425f86e71ffef6503d0942708", "signature": "Secondary = 1", "value": "1" }] }, { "name": "CuiSharp.CalendarEvent", "displayName": "CalendarEvent", "kind": "struct", "summary": "cui_cal_event. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Detail = null;int Day = default;float Start = default;float End = default;Tone Tone = Tone.Neutral||h7946645244d289112773e6e7bac57dd4abeb945a6a29fed738e0f7030997c2dd", "signature": "CalendarEvent(string? Title, string? Detail = null, int Day = default, float Start = default, float End = default, Tone Tone = Tone.Neutral)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Detail", "type": "string?", "default": "null" }, { "name": "Day", "type": "int", "default": "default" }, { "name": "Start", "type": "float", "default": "default" }, { "name": "End", "type": "float", "default": "default" }, { "name": "Tone", "type": "Tone", "default": "Tone.Neutral" }] }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone tone" }, { "name": "End", "kind": "field", "id": "field|End|0|0|float|||h746aa4735d52d974b98a908b8c756c9e0c0f37203b3999ab7359e161064f649d", "signature": "public float End", "summary": "float end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|float|||ha3e89c7d95d80cd26b26f17ad97c1dd953e50a5774663a52471d8a17579c8978", "signature": "public float Start", "summary": "float start" }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int day" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, @@ -28,10 +28,11 @@ { "name": "CuiSharp.Candle", "displayName": "Candle", "kind": "struct", "summary": "cui_candle. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float Open;float High = default;float Low = default;float Close = default;float Volume = default||h7c86989071a9997b55d9ad731004e8592e634e70e2a01a08c55f1d6f4c5fceb5", "signature": "Candle(float Open, float High = default, float Low = default, float Close = default, float Volume = default)", "parameters": [{ "name": "Open", "type": "float" }, { "name": "High", "type": "float", "default": "default" }, { "name": "Low", "type": "float", "default": "default" }, { "name": "Close", "type": "float", "default": "default" }, { "name": "Volume", "type": "float", "default": "default" }] }, { "name": "Close", "kind": "field", "id": "field|Close|0|0|float|||hdbf413c58a9f47dea0a50fed460dbd93d29daa77401f940f16af6251e2028722", "signature": "public float Close", "summary": "float close" }, { "name": "High", "kind": "field", "id": "field|High|0|0|float|||h8d86ceb8300b405923f523b6dfd491fceedb9688753dea5f6c0ed797466bffb1", "signature": "public float High", "summary": "float high" }, { "name": "Low", "kind": "field", "id": "field|Low|0|0|float|||h5bec759be4f0ae85b0ce5535aeb5d662da36d7c794ada46efc1c76f1e46fbd11", "signature": "public float Low", "summary": "float low" }, { "name": "Open", "kind": "field", "id": "field|Open|0|0|float|||hc9eb0b7a2eda17a016265abb4149c4d6320d1a0ad9e2d574af040fea57e2b535", "signature": "public float Open", "summary": "float open" }, { "name": "Volume", "kind": "field", "id": "field|Volume|0|0|float|||h4e862718c5c149dfe923f34f73565a8823a0e676880e4f814cc54cf696444405", "signature": "public float Volume", "summary": "float volume" }] }, { "name": "CuiSharp.CandlestickOpts", "displayName": "CandlestickOpts", "kind": "struct", "summary": "cui_candlestick_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Down", "kind": "field", "id": "field|Down|0|0|Color|||hfa7033dc15fd180b0a52414254e800b520ddb1e0c5b9bd7d938efeead31cc834", "signature": "public Color Down", "summary": "default the success and danger colors" }, { "name": "Up", "kind": "field", "id": "field|Up|0|0|Color|||hfd2b630167ee38aa8121e0a1b046324c54fd844162ae66b0da436de2d6d4326e", "signature": "public Color Up", "summary": "default the success and danger colors" }, { "name": "Overlays", "kind": "field", "id": "field|Overlays|0|0|Series[]?|||h9c211d52d77baa0e5de591688834b2793f6d2e5f0705e1396cf270b69ca18777", "signature": "public Series[]? Overlays", "summary": "lines with one value per candle, e.g. moving averages" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "NoVolume", "kind": "field", "id": "field|NoVolume|0|0|bool|||h0c18beecfdc80f8b8f03426f8e5497e98d0a4473f1d296518dfd07f2b8d2ca54", "signature": "public bool NoVolume", "summary": "volume bars show when any candle has volume" }, { "name": "Ohlc", "kind": "field", "id": "field|Ohlc|0|0|bool|||h7780e0bece6df1b12f0cf07d686a977f39645b36c26f85569b5c945a8f1c5b72", "signature": "public bool Ohlc", "summary": "OHLC bars instead of candle bodies" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320" }, { "name": "OverlayCount", "kind": "field", "id": "field|OverlayCount|0|0|int|||ha8d99630aed0348e05d42fcd4a15671c1288e5c9fb38a9067b57636b13b7a171", "signature": "public int OverlayCount", "summary": "lines with one value per candle, e.g. moving averages" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "prices, default \u0022%.2f\u0022" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|string[]?|||h8fb4abf556b1cb1de99178be1a8d46296633251acb19bfe3c6cbb44da2314abf", "signature": "public string[]? Labels", "summary": "one per candle (dates or times): the time axis and the tooltip" }] }, { "name": "CuiSharp.CanvasResult", "displayName": "CanvasResult", "kind": "struct", "summary": "The result of a custom-drawn canvas.", "members": [{ "name": "Rect", "kind": "field", "id": "field|Rect|0|0|RectF|||h36c84f4bf259c7df4e00bfe92693bbcd043eb64d7e623295afc1e04bc98f27cf", "signature": "public readonly RectF Rect", "summary": "The rectangle the canvas was laid out into." }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|bool|||h2d9baa27957cae9c7eaba8beabe991c7b9ff9e07d168a554fa9f7da7a8f5d207", "signature": "public readonly bool Clicked", "summary": "The canvas was clicked this frame." }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|bool|||h49c38ab06e9dd9cfd6fcd6f9dea03371344678650491d1b5664641f3d03a56da", "signature": "public readonly bool Hovered", "summary": "The pointer is over the canvas." }, { "name": "Pressed", "kind": "field", "id": "field|Pressed|0|0|bool|||hab93d4072df49020fad47e7b93bc9764da989cb4e5e21bd8ff218213e1fbffe0", "signature": "public readonly bool Pressed", "summary": "The pointer is pressed on the canvas." }, { "name": "MouseX", "kind": "field", "id": "field|MouseX|0|0|float|||h70d7285a38a8c23aaa4a93d10f223cef0e113ddcd45851544484b2d50adf275c", "signature": "public readonly float MouseX", "summary": "Pointer position relative to the canvas origin." }, { "name": "MouseY", "kind": "field", "id": "field|MouseY|0|0|float|||h3c973c4669280a34439fe98b1c6ad895f07e3b0b2a68e846c1b4a4edfcbb3bfc", "signature": "public readonly float MouseY", "summary": "Pointer position relative to the canvas origin." }] }, - { "name": "CuiSharp.Card", "displayName": "Card", "kind": "struct", "summary": "cui_card_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cui_align align" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "cui_dir dir" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Hoverable", "kind": "field", "id": "field|Hoverable|0|0|bool|||h8bc3667c9d7573a6738403a706e069869cfc71d7687c3c23f76d42bca85f08c6", "signature": "public bool Hoverable", "summary": "lifts slightly on hover and returns clicks" }, { "name": "Muted", "kind": "field", "id": "field|Muted|0|0|bool|||h15f64003cacc444653e6f77aca48e4daa71cb73612c0c923d6d49ae8836b0bf3", "signature": "public bool Muted", "summary": "muted surface, no border" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "accent border" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW cards: children that do not fit move to a new line" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "const char * id" }] }, + { "name": "CuiSharp.Card", "displayName": "Card", "kind": "struct", "summary": "cui_card_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float pad = default;float gap = default;Dir dir = Dir.Column;Size width = default;Size height = default||hdd0f075ff6e4e7b51c89f91648936ed18a626c0e0fcb4959315b90f8f0def6cd", "signature": "Card(float pad = default, float gap = default, Dir dir = Dir.Column, Size width = default, Size height = default)", "parameters": [{ "name": "pad", "type": "float", "default": "default" }, { "name": "gap", "type": "float", "default": "default" }, { "name": "dir", "type": "Dir", "default": "Dir.Column" }, { "name": "width", "type": "Size", "default": "default" }, { "name": "height", "type": "Size", "default": "default" }], "summary": "A card with its hot fields set: ui.Card(new(pad: 16, gap: 12, dir: Dir.Column)). Every other field keeps its native default, exactly as the equivalent object initializer." }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|Align|||hbfab2ef993c61054e2f8f5ce6be2dad9452bc3394d4804b70659bacd284f6875", "signature": "public Align Align", "summary": "cui_align align" }, { "name": "Dir", "kind": "field", "id": "field|Dir|0|0|Dir|||h4234b97a5550923f99238823065b45fc864e22c26f0c83f8c84555cb61b7d89b", "signature": "public Dir Dir", "summary": "cui_dir dir" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "cui_size height" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Hoverable", "kind": "field", "id": "field|Hoverable|0|0|bool|||h8bc3667c9d7573a6738403a706e069869cfc71d7687c3c23f76d42bca85f08c6", "signature": "public bool Hoverable", "summary": "lifts slightly on hover and returns clicks" }, { "name": "Muted", "kind": "field", "id": "field|Muted|0|0|bool|||h15f64003cacc444653e6f77aca48e4daa71cb73612c0c923d6d49ae8836b0bf3", "signature": "public bool Muted", "summary": "muted surface, no border" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "accent border" }, { "name": "Wrap", "kind": "field", "id": "field|Wrap|0|0|bool|||h285798f359c0d7dbf8aab48f86fc58cedd7f2818d242a32ba0b3ce9bd903fb20", "signature": "public bool Wrap", "summary": "CUI_ROW cards: children that do not fit move to a new line" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "MaxWidth", "kind": "field", "id": "field|MaxWidth|0|0|float|||h6955c9491dc05b5aeba77dc176d769dc41bee5636e74696cc5ac75aede49296b", "signature": "public float MaxWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|float|||h7e959c77177556152f99de8073ad52de6c88f583955bbebe8b717d02776d9e64", "signature": "public float MinWidth", "summary": "e.g. CUI_FILL up to max_width: fills narrow screens, stops on wide ones" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float pad" }, { "name": "PadX", "kind": "field", "id": "field|PadX|0|0|float|||h173de26af4d61cccda65dc4e4a2134425ccb87e453814b3fc09477116f152937", "signature": "public float PadX", "summary": "float pad_x" }, { "name": "PadY", "kind": "field", "id": "field|PadY|0|0|float|||he7a54032c34537ad78c4c2a6e6dcd1656a79aa395a54ecd5a4ed46c891e7cf37", "signature": "public float PadY", "summary": "float pad_y" }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|string?|||h903b441d2692d36130aa05f5607dedb9f29f50f33eb6b8e718d9e7958d011fa9", "signature": "public string? Id", "summary": "const char * id" }] }, { "name": "CuiSharp.CardStackOpts", "displayName": "CardStackOpts", "kind": "struct", "summary": "cui_card_stack_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Visible", "kind": "field", "id": "field|Visible|0|0|int|||h4fdf87b1e77faeb11e5326e71ffb6338d699f8b49d4a214a0b6bef7bf1309566", "signature": "public int Visible", "summary": "int visible" }] }, { "name": "CuiSharp.CarouselOpts", "displayName": "CarouselOpts", "kind": "struct", "summary": "cui_carousel_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Loop", "kind": "field", "id": "field|Loop|0|0|bool|||h7274a1137877894804d8aab9d630e1af40661c2344ca1ff578904fa0bf31f6d9", "signature": "public bool Loop", "summary": "_Bool loop" }, { "name": "NoArrows", "kind": "field", "id": "field|NoArrows|0|0|bool|||he1e36f8505e4731fbd3d02c552fdf5018377bba3b4e8b69ddb70e7ba3da4e164", "signature": "public bool NoArrows", "summary": "_Bool no_arrows" }, { "name": "NoDots", "kind": "field", "id": "field|NoDots|0|0|bool|||h7736ebc5622d944b1450b6f0dfefc48695406941db021b1c3c53dca07781fbf1", "signature": "public bool NoDots", "summary": "_Bool no_dots" }, { "name": "AutoAdvance", "kind": "field", "id": "field|AutoAdvance|0|0|float|||h33329d1b2d0ca9a63bdd777428459fd84fbfa04489f913ad51d47d16c7581b9c", "signature": "public float AutoAdvance", "summary": "float auto_advance" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float gap" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }] }, - { "name": "CuiSharp.ChartOpts", "displayName": "ChartOpts", "kind": "struct", "summary": "cui_chart_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Area", "kind": "field", "id": "field|Area|0|0|bool|||h5258652e0aa90cdc233857253e23843fa08ace551de565297c7fd1a6d3d5b39b", "signature": "public bool Area", "summary": "fill under lines" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|bool|||h3235658a755bd4564629364c715a172c1b27a0be758c9a47167e63c08938a56d", "signature": "public bool NoGrid", "summary": "_Bool no_grid" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Smooth", "kind": "field", "id": "field|Smooth|0|0|bool|||h1f23f1b174e637ce50e7c6158d9817f5467411003318e980ab1e81d7a965c008", "signature": "public bool Smooth", "summary": "curved lines" }, { "name": "Stacked", "kind": "field", "id": "field|Stacked|0|0|bool|||hdece4b272c81b345467a1a9b965aff06ac663b6b0602384d2f1f7b8ba7807eba", "signature": "public bool Stacked", "summary": "bar chart" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 220" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "fixed y range when min != max" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "fixed y range when min != max" }, { "name": "MaxPoints", "kind": "field", "id": "field|MaxPoints|0|0|int|||h61fad7eaf34eea9e9232b042b34e6818e5a52c2f1db8f2fee7e2161f37a8cdfd", "signature": "public int MaxPoints", "summary": "C# only: Upper bound on drawn points. 0 derives twice the viewport width; longer series are min/max decimated into the frame arena." }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "value format for axis and tooltip, default \u0022%.0f\u0022" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|string[]?|||h8fb4abf556b1cb1de99178be1a8d46296633251acb19bfe3c6cbb44da2314abf", "signature": "public string[]? Labels", "summary": "x axis labels" }] }, + { "name": "CuiSharp.ChartNormalizer", "displayName": "ChartNormalizer", "kind": "static class", "summary": "Rescales a series against its baseline so several series share a comparable y range. The baseline is the first finite nonzero sample. A negative baseline is allowed and inverts the scale (-200 against -100 is Index100 200, not 50). The math is done in double and rounded to float once, so scaling does not compound rounding. A requested normalization rejects samples it cannot scale: NaN or infinity anywhere in the series, a series with no finite nonzero baseline (all zero, say), and results beyond the finite float range all throw ArgumentException rather than draw a line that silently lies. NaN is not a gap marker; the renderer has no gap concept. Copy-based and allocation-free like SeriesDecimator: the source is never mutated, results go into a caller-owned destination, and reuse keeps a frame at 0 B. The empty series is not an error \u2014 it means \u0022nothing to draw\u0022 and returns 0. None keeps the old pass-through behavior, validation included, so opting out opts out of everything.", "members": [{ "name": "FindBaseline", "kind": "method", "id": "method|FindBaseline|1|0|float|ReadOnlySpan\u003Cfloat\u003E values||h53868861596c7efd37a97cc1d36c50a380402d3ca6f15a0b0f2d073cca2f3c38", "signature": "static float FindBaseline(ReadOnlySpan\u003Cfloat\u003E values)", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }], "summary": "The baseline a normalization would use: the first nonzero sample of values." }, { "name": "Normalize", "kind": "method", "id": "method|Normalize|1|0|int|ReadOnlySpan\u003Cfloat\u003E values;Span\u003Cfloat\u003E destination;NormalizeMode mode||hc219730abe578c57ea1e22a653fa86db0c9737b33627eb681ff18e7add343394", "signature": "static int Normalize(ReadOnlySpan\u003Cfloat\u003E values, Span\u003Cfloat\u003E destination, NormalizeMode mode)", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "destination", "type": "Span\u003Cfloat\u003E" }, { "name": "mode", "type": "NormalizeMode" }], "summary": "Writes values scaled against their baseline into destination and returns the number of points written." }] }, + { "name": "CuiSharp.ChartOpts", "displayName": "ChartOpts", "kind": "struct", "summary": "cui_chart_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Normalize", "kind": "field", "id": "field|Normalize|0|0|NormalizeMode|||h256fe14a078b8aa575d3880e26963f73dc9a07db47d6f9d95845fde79ffe2654", "signature": "public NormalizeMode Normalize", "summary": "C# only: Scale each series against its own first finite nonzero sample so series of different magnitudes compare by shape; see ChartNormalizer." }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Area", "kind": "field", "id": "field|Area|0|0|bool|||h5258652e0aa90cdc233857253e23843fa08ace551de565297c7fd1a6d3d5b39b", "signature": "public bool Area", "summary": "fill under lines" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|bool|||h3235658a755bd4564629364c715a172c1b27a0be758c9a47167e63c08938a56d", "signature": "public bool NoGrid", "summary": "_Bool no_grid" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|bool|||h250c4eea95a5d266560d2d964fb9559196dd3c844895b86f25edb16e6fe18fef", "signature": "public bool NoLegend", "summary": "_Bool no_legend" }, { "name": "Smooth", "kind": "field", "id": "field|Smooth|0|0|bool|||h1f23f1b174e637ce50e7c6158d9817f5467411003318e980ab1e81d7a965c008", "signature": "public bool Smooth", "summary": "curved lines" }, { "name": "Stacked", "kind": "field", "id": "field|Stacked|0|0|bool|||hdece4b272c81b345467a1a9b965aff06ac663b6b0602384d2f1f7b8ba7807eba", "signature": "public bool Stacked", "summary": "bar chart" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 220" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "fixed y range when min != max" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "fixed y range when min != max" }, { "name": "MaxPoints", "kind": "field", "id": "field|MaxPoints|0|0|int|||h61fad7eaf34eea9e9232b042b34e6818e5a52c2f1db8f2fee7e2161f37a8cdfd", "signature": "public int MaxPoints", "summary": "C# only: Upper bound on drawn points. 0 derives twice the viewport width; longer series are min/max decimated into the frame arena." }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "value format for axis and tooltip, default \u0022%.0f\u0022" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|string[]?|||h8fb4abf556b1cb1de99178be1a8d46296633251acb19bfe3c6cbb44da2314abf", "signature": "public string[]? Labels", "summary": "x axis labels" }] }, { "name": "CuiSharp.ChatOpts", "displayName": "ChatOpts", "kind": "struct", "summary": "cui_chat_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Grouped", "kind": "field", "id": "field|Grouped|0|0|bool|||hc680c213e3ec617dca9a7a343272ea4fd0730bdf400cc38a5bbe306f2c64a7bb", "signature": "public bool Grouped", "summary": "continues the previous message" }, { "name": "LastInGroup", "kind": "field", "id": "field|LastInGroup|0|0|bool|||h2689180cedbd5fa492aefb520cc6b005a7e82f1ca6125c932a29d222ac2f8906", "signature": "public bool LastInGroup", "summary": "shows the avatar (others) and status (mine)" }, { "name": "Markdown", "kind": "field", "id": "field|Markdown|0|0|bool|||h8646a503edb5fac09528cc1b3296c0e33fbed6c42e119b1cb999bafcfb06e318", "signature": "public bool Markdown", "summary": "render the text with cui_markdown (compact, as wide as it needs)" }, { "name": "Mine", "kind": "field", "id": "field|Mine|0|0|bool|||h152dcab50a106cee7066c57c9ad93d10f47f30a414176e6fdef78157bcf017d7", "signature": "public bool Mine", "summary": "right aligned, accent bubble" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|string?|||h5d1fc170a7dcd4b8e80156dab09738bd64f10f589e9ac4a8e02e5fdc43adb431", "signature": "public string? Author", "summary": "name above the first bubble of a group" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|string?|||hea5150ac3e746a684c3b4c0832cabdae145da44e92c85bb412cef107598a117e", "signature": "public string? Status", "summary": "under your own last message, e.g. \u0022Read\u0022" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|string?|||h3fa6df975c274c56979003cf790a67367077eb0ba02d23dac030823b376828bc", "signature": "public string? Time", "summary": "const char * time" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture avatar" }] }, { "name": "CuiSharp.CheckOpts", "displayName": "CheckOpts", "kind": "struct", "summary": "cui_check_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|bool|||he38813187674932a5621bb6b38b49afa8004ab77baa2505c22f3600d136405a8", "signature": "public bool Indeterminate", "summary": "_Bool indeterminate" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, { "name": "CuiSharp.CheckStep", "displayName": "CheckStep", "kind": "struct", "summary": "cui_check_step. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Description = null;string? Action = null;bool Done = default||h11acbb85c777af80b2da820b9f9ea3866c944e58a45284b74a1020f1caa06456", "signature": "CheckStep(string? Title, string? Description = null, string? Action = null, bool Done = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Description", "type": "string?", "default": "null" }, { "name": "Action", "type": "string?", "default": "null" }, { "name": "Done", "type": "bool", "default": "default" }] }, { "name": "Done", "kind": "field", "id": "field|Done|0|0|bool|||h5497d5e8bf2538fda1c8cdc8402011bb90be2ccee1f0bf0226919c8061b80373", "signature": "public bool Done", "summary": "_Bool done" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|string?|||h288a83cea0bad5b5f38d9c844869a799f6116f3a3d074f257d6240feed95d754", "signature": "public string? Action", "summary": "const char * action" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, @@ -72,7 +73,7 @@ { "name": "CuiSharp.CuiQuery", "displayName": "CuiQuery", "kind": "static class", "summary": "A filter built by the query builder, usable without a frame: the sentence it reads as, the operators a field type offers, and whether a record matches. The builder edits QueryNode values the app owns, so these take the same two arrays it draws from.", "members": [{ "name": "Match", "kind": "method", "id": "method|Match|1|0|bool|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;ReadOnlySpan\u003Cstring\u003E values||hfe5a111eb371af93ddd479c8559033524b4074d21c2ef10252a21d545327d9f8", "signature": "static bool Match(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, ReadOnlySpan\u003Cstring\u003E values)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "values", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "Whether a record satisfies the nodes; values is its value for each field, as text (\u00221\u0022, \u0022true\u0022, \u0022open\u0022), so the caller decides how a record becomes text." }, { "name": "OperatorCount", "kind": "method", "id": "method|OperatorCount|1|0|int|QueryType type||h162ddc6a768bee14f6da83dc85f76d19fb3b1684d6716e077767217648284a65", "signature": "static int OperatorCount(QueryType type)", "parameters": [{ "name": "type", "type": "QueryType" }], "summary": "How many operators a field type offers, which is what the picker lists." }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|string|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;int capacity = 1024||h648c3fcacc7e1fc238a6df0318764f71ca5cacefb654e336a383476bafe697cf", "signature": "static string Text(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, int capacity = 1024)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "capacity", "type": "int", "default": "1024" }], "summary": "The nodes as one sentence, the way the builder reads them back: \u0022Status is open and priority is high\u0022." }, { "name": "OperatorName", "kind": "method", "id": "method|OperatorName|1|0|string?|QueryType type;int op||he15a9e66e87e8831a4bf64cfb27b67684b1880491d2201106cd850600c1e5820", "signature": "static string? OperatorName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "The name of one operator of a field type, e.g. \u0022contains\u0022; null for none." }] }, { "name": "CuiSharp.CuiRegex", "displayName": "CuiRegex", "kind": "static class", "summary": "CUI\u0027s regular expression engine, usable without a frame: the same backtracking matcher the regex tester draws its highlights with. It supports the common syntax (classes, anchors, groups and the usual quantifiers) and no lookaround or backreferences.", "members": [{ "name": "TrySearch", "kind": "method", "id": "method|TrySearch|1|0|bool|string pattern;string text;out RegexMatch match;out string? error;int from = default;RegexFlags flags = RegexFlags.None||hb2d5b003461d8b1897c2d86a3e8e5b39c0447ee43b09f0319df8b21e6a26e012", "signature": "static bool TrySearch(string pattern, string text, out RegexMatch match, out string? error, int from = default, RegexFlags flags = RegexFlags.None)", "parameters": [{ "name": "pattern", "type": "string" }, { "name": "text", "type": "string" }, { "name": "match", "type": "out RegexMatch" }, { "name": "error", "type": "out string?" }, { "name": "from", "type": "int", "default": "default" }, { "name": "flags", "type": "RegexFlags", "default": "RegexFlags.None" }], "summary": "Finds the first match of pattern in text at or after from (a byte offset)." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexGroup group||h2b82ba310f5930d0a5935ef237fb39a338249e8785db65743e1a58e255ccb1ff", "signature": "static string Slice(string text, RegexGroup group)", "parameters": [{ "name": "text", "type": "string" }, { "name": "group", "type": "RegexGroup" }], "summary": "One group\u0027s text, which is what a caller marking the groups wants. Nothing is encoded again, so calling it per group over one match costs one substring each." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexMatch match||hc3106500ab56083da4c72cdbdb2c3eb7bd26ca73028fa3e6683c72062e654e6b", "signature": "static string Slice(string text, RegexMatch match)", "parameters": [{ "name": "text", "type": "string" }, { "name": "match", "type": "RegexMatch" }], "summary": "The whole match\u0027s text." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;int start;int end||h607f1e88bd9a77d1ca487c76bc09d7749148df45f3d744269c4fce5fdf263bf6", "signature": "static string Slice(string text, int start, int end)", "parameters": [{ "name": "text", "type": "string" }, { "name": "start", "type": "int" }, { "name": "end", "type": "int" }], "summary": "The text between two UTF-8 byte offsets. The engine reports bytes, so a caller holding bytes uses them directly; a caller holding a string gets the characters they cover." }] }, { "name": "CuiSharp.CuiSharpNativeException", "displayName": "CuiSharpNativeException", "kind": "class", "summary": "The native library that draws could not be loaded, or does not match the managed one. The loader\u0027s own message has no context \u2014 a real app reported version \u0060GLIBC_2.43\u0027 not found, raised at the first frame, inside a test \u2014 so this type names what was shipped, what it promises, and what to do about it.", "members": [] }, - { "name": "CuiSharp.CuiSurface", "displayName": "CuiSurface", "kind": "class", "summary": "A CUI context with no window, rendered by the built-in software rasterizer. This is the piece that makes UI code testable: the same CuiApp draw callback can run here, produce real pixels, and be asserted on in a unit test or a benchmark \u2014 no display, no GPU, no message loop. Frames are driven explicitly, which also makes it a stable way to measure build, layout and rasterization cost separately.", "members": [{ "name": "LastFrame", "kind": "property", "id": "property|LastFrame|0|0|FrameSample||get;|h5d220482c835fbe61d8c95e7613db0b9375f74f7460b6b5cd5596bdcfce3dae7", "signature": "FrameSample LastFrame { get; }", "summary": "What the last frame this surface drew cost: the same numbers as FrameStats, but owned by this surface, so a test that draws more than one \u2014 or a run with tests in parallel \u2014 reads the frame it drew rather than whichever frame finished last." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003CException\u003E||get;|h4f10b41d7a3334d039192ccfb2968378893ebf27bc3e3666101eff230e00ebfb", "signature": "IReadOnlyList\u003CException\u003E Faults { get; }", "summary": "Exceptions a component threw while this surface drew. A component\u0027s error boundary keeps the frame going, which would otherwise make a broken page look like a passing render test; assert Assert.Empty(surface.Faults)." }, { "name": "SemanticFrame", "kind": "property", "id": "property|SemanticFrame|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|h8f412fb194f3fab1ae344da5e6581baeb53f0b112d0db04f3574312c3606e25f", "signature": "IReadOnlyList\u003CSemanticWidget\u003E SemanticFrame { get; }", "summary": "Everything the last frame recorded, containers included and in drawing order: each entry\u0027s Depth is the nesting a tree can be rebuilt from." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "The controls the last completed frame drew, in drawing order." }, { "name": "LastDamage", "kind": "property", "id": "property|LastDamage|0|0|RectF?||get;|h886de16f648660ebaf8c90a11f1b17c7239d2ac8329f66ff56f8a41df7009b26", "signature": "RectF? LastDamage { get; }", "summary": "The rectangle the last render touched, or null when nothing was drawn." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for the current frame." }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the surface." }, { "name": "Incremental", "kind": "property", "id": "property|Incremental|0|0|bool||get;set;|hacb9ec72a98978bf472e802f469a46afecf64c7a317e69d960279507dbe0b8e5", "signature": "bool Incremental { get; set; }", "summary": "Renders only the part of the frame that changed since the last one." }, { "name": "RecordWidgets", "kind": "property", "id": "property|RecordWidgets|0|0|bool||get;set;|h12ff7eba27f200a3b7c19203bce586ffee8d30f4d92e098b9ce3c98c5db904b5", "signature": "bool RecordWidgets { get; set; }", "summary": "Records every widget this surface draws, so a test can find one by its label." }, { "name": "Scale", "kind": "property", "id": "property|Scale|0|0|float||get;|h883e3357763ccf7007445c3d9be5685c0c7f1c33b640549c04f3194acd9d1d98", "signature": "float Scale { get; }", "summary": "Device pixels per point." }, { "name": "CommandCount", "kind": "property", "id": "property|CommandCount|0|0|int||get;|h7015d40e472d6bd097f66cebf670d3d6ab94440536251a89021f1b2b123d8fe2", "signature": "int CommandCount { get; }", "summary": "How many draw commands the last frame produced. Useful in assertions." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the surface is tracking as dropped." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "PixelHeight", "kind": "property", "id": "property|PixelHeight|0|0|int||get;|h2bd224b0d7ef52ea2bc164604c2a48e2f715ab1a30078212b10a61040f105b5d", "signature": "int PixelHeight { get; }", "summary": "Framebuffer height in pixels." }, { "name": "PixelWidth", "kind": "property", "id": "property|PixelWidth|0|0|int||get;|h039e47804e7011558cf1a9c30c80148d2f7d83cc220bbc9ac831b2fa520315fe", "signature": "int PixelWidth { get; }", "summary": "Framebuffer width in pixels." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiSurface|int width;int height;float scale = 1f;int threads = 1;Theme theme = Theme.Light;Accent accent = Accent.Neutral||hc293129e10d7ddd50cc2c9ce993e45a91ec4818fb8e3d8b6ae3d2b77d5af2e28", "signature": "static CuiSurface Create(int width, int height, float scale = 1f, int threads = 1, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "threads", "type": "int", "default": "1" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context backed by the software rasterizer." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|0|0|void|float deltaSeconds = 0.016666668f||h08dcc7bc90dc1fbdc778c187534cdd6398e8ddf6390f6f1e80456526080c03af", "signature": "void BeginFrame(float deltaSeconds = 0.016666668f)", "parameters": [{ "name": "deltaSeconds", "type": "float", "default": "0.016666668f" }], "summary": "Starts a frame. Call EndFrame when the UI is built." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|void|MouseButton button = MouseButton.Left||h4d2f11669db57aa42eebc0eb7a4412070235903a0829a1bd133822b9b359c645", "signature": "void Click(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses and releases a button in one call, as a click through the frames that follow." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Draw", "kind": "method", "id": "method|Draw|0|0|void|DrawFn draw;byte[] pixels;PixelFormat format = PixelFormat.Bgra||hd3406c88dd83c4d2c78435b959e74a3c6bdfdfbfaeb3b4a9155b371284ec9c58", "signature": "void Draw(DrawFn draw, byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Convenience: build one frame with draw, end it and rasterize." }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|0|0|void|||h11cffed674475ec67c9e1db52e8a9a166b9de0e3a7b8cd5de25bcef9c33eb0e5", "signature": "void EndFrame()", "summary": "Ends the frame, finalising layout and the draw list." }, { "name": "FileDrop", "kind": "method", "id": "method|FileDrop|0|0|void|ReadOnlySpan\u003Cstring\u003E paths;float x;float y||h8e6fa8c5438b8df376665746710240d45da51c3bfdf763a06c087deb7ccd4e8a", "signature": "void FileDrop(ReadOnlySpan\u003Cstring\u003E paths, float x, float y)", "parameters": [{ "name": "paths", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dropped onto the surface at a position, in points." }, { "name": "FileHover", "kind": "method", "id": "method|FileHover|0|0|void|float x;float y||had6fb9fbe10cf6a7bcfe4b6ba2eb7aa741b5fed9e6167067f1a58d410338b3e1", "signature": "void FileHover(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dragged over the surface at a position, in points." }, { "name": "FileHoverEnd", "kind": "method", "id": "method|FileHoverEnd|0|0|void|||hf19c54630ff34fbe37cd70dd4eb1b999645a28f9577a369ac8c2d6035fca906d", "signature": "void FileHoverEnd()", "summary": "Reports that the drag left the surface." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|void|bool focused||ha34742eaa087dc3d112e143ded154bc310bcf0d4066b4ee49224925f287925dd", "signature": "void Focus(bool focused)", "parameters": [{ "name": "focused", "type": "bool" }], "summary": "Reports the window gaining or losing focus." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|void|Key key;Mods mods = (Mods)0||h9ed561245b24462be02e967c4af12b68cd5bfd3e9b3b5bdc127fd3ff8735ede0", "signature": "void KeyDown(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses a key, with the modifiers held at the same time." }, { "name": "KeyUp", "kind": "method", "id": "method|KeyUp|0|0|void|Key key;Mods mods = (Mods)0||h5f2f6b3f7a90feb6417e82e4faac750354301a486f0d7b94aedb59b6b10832e9", "signature": "void KeyUp(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Releases a key." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|void|MouseButton button = MouseButton.Left||hf7dc7f2f467e7a8890d3740e4dc73e761739a8203b3a6251f1a5834742b52913", "signature": "void MouseDown(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses a mouse button." }, { "name": "MouseLeave", "kind": "method", "id": "method|MouseLeave|0|0|void|||hb35bfc658e6ced59b07d192c7504782278306f4eddf257bf8675e58dc0821cd6", "signature": "void MouseLeave()", "summary": "The pointer left the window: hover state clears and no tooltip stays behind. This is what a screenshot wants, so the picture is the UI and not the mouse." }, { "name": "MouseMove", "kind": "method", "id": "method|MouseMove|0|0|void|float x;float y||h320f681d2766c5f9d42ab60fef452e41fb1d284a5964a4e65d43eac98f64ca07", "signature": "void MouseMove(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer, in points." }, { "name": "MouseUp", "kind": "method", "id": "method|MouseUp|0|0|void|MouseButton button = MouseButton.Left||h1dcbe29fd920bc03d7ec9c110aa2d027f329130e75a900307c3c5b385d99747a", "signature": "void MouseUp(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Releases a mouse button." }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|byte[] pixels;PixelFormat format = PixelFormat.Bgra||h778b6c9b38e5bca115053abf3f2f16bdc2d9384aece41aa3e433b2d7b34de987", "signature": "void Render(byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Rasterizes the last completed frame into pixels. The buffer must hold at least PixelWidth * PixelHeight * 4 bytes." }, { "name": "Resize", "kind": "method", "id": "method|Resize|0|0|void|int width;int height;float? scale = default||h13f0e92f027e4ff6e848843ffa015b7bd69d4175b6ae2f6da1fd43ed595e4f57", "signature": "void Resize(int width, int height, float? scale = default)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float?", "default": "default" }], "summary": "Resizes the logical viewport." }, { "name": "Scroll", "kind": "method", "id": "method|Scroll|0|0|void|float dy;float dx = default||hab95d953d9270d2ab04de27d9a826699c8daf68a3a13e5d8fedeee40f363cd93", "signature": "void Scroll(float dy, float dx = default)", "parameters": [{ "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Scrolls at the pointer\u0027s position. The distance is in wheel notches, and a positive dy scrolls up, towards the start, exactly as a real wheel does." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|void|UiText text||h460d8a1f013378ef18c04a0824d73403c4c15b1fffc12a2b2d599ca01f3be8f6", "signature": "void Type(UiText text)", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Types UTF-8 text, as the keyboard layout would deliver it." }] }, + { "name": "CuiSharp.CuiSurface", "displayName": "CuiSurface", "kind": "class", "summary": "A CUI context with no window, rendered by the built-in software rasterizer. This is the piece that makes UI code testable: the same CuiApp draw callback can run here, produce real pixels, and be asserted on in a unit test or a benchmark \u2014 no display, no GPU, no message loop. Frames are driven explicitly, which also makes it a stable way to measure build, layout and rasterization cost separately.", "members": [{ "name": "LastFrame", "kind": "property", "id": "property|LastFrame|0|0|FrameSample||get;|h5d220482c835fbe61d8c95e7613db0b9375f74f7460b6b5cd5596bdcfce3dae7", "signature": "FrameSample LastFrame { get; }", "summary": "What the last frame this surface drew cost: the same numbers as FrameStats, but owned by this surface, so a test that draws more than one \u2014 or a run with tests in parallel \u2014 reads the frame it drew rather than whichever frame finished last." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003CException\u003E||get;|h4f10b41d7a3334d039192ccfb2968378893ebf27bc3e3666101eff230e00ebfb", "signature": "IReadOnlyList\u003CException\u003E Faults { get; }", "summary": "Exceptions a component threw while this surface drew. A component\u0027s error boundary keeps the frame going, which would otherwise make a broken page look like a passing render test; assert Assert.Empty(surface.Faults)." }, { "name": "SemanticFrame", "kind": "property", "id": "property|SemanticFrame|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|h8f412fb194f3fab1ae344da5e6581baeb53f0b112d0db04f3574312c3606e25f", "signature": "IReadOnlyList\u003CSemanticWidget\u003E SemanticFrame { get; }", "summary": "Everything the last frame recorded, containers included and in drawing order: each entry\u0027s Depth is the nesting a tree can be rebuilt from." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "The controls the last completed frame drew, in drawing order." }, { "name": "LastDamage", "kind": "property", "id": "property|LastDamage|0|0|RectF?||get;|h886de16f648660ebaf8c90a11f1b17c7239d2ac8329f66ff56f8a41df7009b26", "signature": "RectF? LastDamage { get; }", "summary": "The rectangle the last render touched, or null when nothing was drawn." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for the current frame." }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the surface." }, { "name": "Incremental", "kind": "property", "id": "property|Incremental|0|0|bool||get;set;|hacb9ec72a98978bf472e802f469a46afecf64c7a317e69d960279507dbe0b8e5", "signature": "bool Incremental { get; set; }", "summary": "Renders only the part of the frame that changed since the last one." }, { "name": "LastFrameReady", "kind": "property", "id": "property|LastFrameReady|0|0|bool||get;|h3d304f4e1e9e1dd6ef3dfa5ea31e40bfcfb0af6b8c409d977112a2fe2165e791", "signature": "bool LastFrameReady { get; }", "summary": "Whether the latest completed frame declared its app data complete with MarkReady." }, { "name": "RecordWidgets", "kind": "property", "id": "property|RecordWidgets|0|0|bool||get;set;|h12ff7eba27f200a3b7c19203bce586ffee8d30f4d92e098b9ce3c98c5db904b5", "signature": "bool RecordWidgets { get; set; }", "summary": "Records every widget this surface draws, so a test can find one by its label." }, { "name": "Scale", "kind": "property", "id": "property|Scale|0|0|float||get;|h883e3357763ccf7007445c3d9be5685c0c7f1c33b640549c04f3194acd9d1d98", "signature": "float Scale { get; }", "summary": "Device pixels per point." }, { "name": "CommandCount", "kind": "property", "id": "property|CommandCount|0|0|int||get;|h7015d40e472d6bd097f66cebf670d3d6ab94440536251a89021f1b2b123d8fe2", "signature": "int CommandCount { get; }", "summary": "How many draw commands the last frame produced. Useful in assertions." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the surface is tracking as dropped." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "PixelHeight", "kind": "property", "id": "property|PixelHeight|0|0|int||get;|h2bd224b0d7ef52ea2bc164604c2a48e2f715ab1a30078212b10a61040f105b5d", "signature": "int PixelHeight { get; }", "summary": "Framebuffer height in pixels." }, { "name": "PixelWidth", "kind": "property", "id": "property|PixelWidth|0|0|int||get;|h039e47804e7011558cf1a9c30c80148d2f7d83cc220bbc9ac831b2fa520315fe", "signature": "int PixelWidth { get; }", "summary": "Framebuffer width in pixels." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiSurface|int width;int height;float scale = 1f;int threads = 1;Theme theme = Theme.Light;Accent accent = Accent.Neutral||hc293129e10d7ddd50cc2c9ce993e45a91ec4818fb8e3d8b6ae3d2b77d5af2e28", "signature": "static CuiSurface Create(int width, int height, float scale = 1f, int threads = 1, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "threads", "type": "int", "default": "1" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context backed by the software rasterizer." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|0|0|void|float deltaSeconds = 0.016666668f||h08dcc7bc90dc1fbdc778c187534cdd6398e8ddf6390f6f1e80456526080c03af", "signature": "void BeginFrame(float deltaSeconds = 0.016666668f)", "parameters": [{ "name": "deltaSeconds", "type": "float", "default": "0.016666668f" }], "summary": "Starts a frame. Call EndFrame when the UI is built." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|void|MouseButton button = MouseButton.Left||h4d2f11669db57aa42eebc0eb7a4412070235903a0829a1bd133822b9b359c645", "signature": "void Click(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses and releases a button in one call, as a click through the frames that follow." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Draw", "kind": "method", "id": "method|Draw|0|0|void|DrawFn draw;byte[] pixels;PixelFormat format = PixelFormat.Bgra||hd3406c88dd83c4d2c78435b959e74a3c6bdfdfbfaeb3b4a9155b371284ec9c58", "signature": "void Draw(DrawFn draw, byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Convenience: build one frame with draw, end it and rasterize." }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|0|0|void|||h11cffed674475ec67c9e1db52e8a9a166b9de0e3a7b8cd5de25bcef9c33eb0e5", "signature": "void EndFrame()", "summary": "Ends the frame, finalising layout and the draw list." }, { "name": "FileDrop", "kind": "method", "id": "method|FileDrop|0|0|void|ReadOnlySpan\u003Cstring\u003E paths;float x;float y||h8e6fa8c5438b8df376665746710240d45da51c3bfdf763a06c087deb7ccd4e8a", "signature": "void FileDrop(ReadOnlySpan\u003Cstring\u003E paths, float x, float y)", "parameters": [{ "name": "paths", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dropped onto the surface at a position, in points." }, { "name": "FileHover", "kind": "method", "id": "method|FileHover|0|0|void|float x;float y||had6fb9fbe10cf6a7bcfe4b6ba2eb7aa741b5fed9e6167067f1a58d410338b3e1", "signature": "void FileHover(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dragged over the surface at a position, in points." }, { "name": "FileHoverEnd", "kind": "method", "id": "method|FileHoverEnd|0|0|void|||hf19c54630ff34fbe37cd70dd4eb1b999645a28f9577a369ac8c2d6035fca906d", "signature": "void FileHoverEnd()", "summary": "Reports that the drag left the surface." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|void|bool focused||ha34742eaa087dc3d112e143ded154bc310bcf0d4066b4ee49224925f287925dd", "signature": "void Focus(bool focused)", "parameters": [{ "name": "focused", "type": "bool" }], "summary": "Reports the window gaining or losing focus." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|void|Key key;Mods mods = (Mods)0||h9ed561245b24462be02e967c4af12b68cd5bfd3e9b3b5bdc127fd3ff8735ede0", "signature": "void KeyDown(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses a key, with the modifiers held at the same time." }, { "name": "KeyUp", "kind": "method", "id": "method|KeyUp|0|0|void|Key key;Mods mods = (Mods)0||h5f2f6b3f7a90feb6417e82e4faac750354301a486f0d7b94aedb59b6b10832e9", "signature": "void KeyUp(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Releases a key." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|void|MouseButton button = MouseButton.Left||hf7dc7f2f467e7a8890d3740e4dc73e761739a8203b3a6251f1a5834742b52913", "signature": "void MouseDown(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses a mouse button." }, { "name": "MouseLeave", "kind": "method", "id": "method|MouseLeave|0|0|void|||hb35bfc658e6ced59b07d192c7504782278306f4eddf257bf8675e58dc0821cd6", "signature": "void MouseLeave()", "summary": "The pointer left the window: hover state clears and no tooltip stays behind. This is what a screenshot wants, so the picture is the UI and not the mouse." }, { "name": "MouseMove", "kind": "method", "id": "method|MouseMove|0|0|void|float x;float y||h320f681d2766c5f9d42ab60fef452e41fb1d284a5964a4e65d43eac98f64ca07", "signature": "void MouseMove(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer, in points." }, { "name": "MouseUp", "kind": "method", "id": "method|MouseUp|0|0|void|MouseButton button = MouseButton.Left||h1dcbe29fd920bc03d7ec9c110aa2d027f329130e75a900307c3c5b385d99747a", "signature": "void MouseUp(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Releases a mouse button." }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|byte[] pixels;PixelFormat format = PixelFormat.Bgra||h778b6c9b38e5bca115053abf3f2f16bdc2d9384aece41aa3e433b2d7b34de987", "signature": "void Render(byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Rasterizes the last completed frame into pixels. The buffer must hold at least PixelWidth * PixelHeight * 4 bytes." }, { "name": "Resize", "kind": "method", "id": "method|Resize|0|0|void|int width;int height;float? scale = default||h13f0e92f027e4ff6e848843ffa015b7bd69d4175b6ae2f6da1fd43ed595e4f57", "signature": "void Resize(int width, int height, float? scale = default)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float?", "default": "default" }], "summary": "Resizes the logical viewport." }, { "name": "Scroll", "kind": "method", "id": "method|Scroll|0|0|void|float dy;float dx = default||hab95d953d9270d2ab04de27d9a826699c8daf68a3a13e5d8fedeee40f363cd93", "signature": "void Scroll(float dy, float dx = default)", "parameters": [{ "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Scrolls at the pointer\u0027s position. The distance is in wheel notches, and a positive dy scrolls up, towards the start, exactly as a real wheel does." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|void|UiText text||h460d8a1f013378ef18c04a0824d73403c4c15b1fffc12a2b2d599ca01f3be8f6", "signature": "void Type(UiText text)", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Types UTF-8 text, as the keyboard layout would deliver it." }] }, { "name": "CuiSharp.CuiTaskStatus", "displayName": "CuiTaskStatus", "kind": "enum", "summary": "cui_task_status", "members": [{ "name": "Done", "kind": "enum value", "id": "enum value|Done|1|0|||2|h0d09b1ff6e353c36e5dd900182fe0c3ee544588418c008f9ec0398c0c6a3c5af", "signature": "Done = 2", "value": "2" }, { "name": "Failed", "kind": "enum value", "id": "enum value|Failed|1|0|||3|ha388847ac08b3e9c6aa93135681165d44342146d113eb7d424d79c6566af73e3", "signature": "Failed = 3", "value": "3" }, { "name": "Pending", "kind": "enum value", "id": "enum value|Pending|1|0|||0|hec96e2e3e744271639d8f4254e04687bf499d49642bb25da3eda1e9c5271971c", "signature": "Pending = 0", "value": "0" }, { "name": "Running", "kind": "enum value", "id": "enum value|Running|1|0|||1|h5fc8ea303ee3335e9b6c77adb13ed145130ac296d646919227c7232708248684", "signature": "Running = 1", "value": "1" }, { "name": "Skipped", "kind": "enum value", "id": "enum value|Skipped|1|0|||4|hc86a6a4cf9d7fbe0d4b4f660230c7effb152c9749550c01b40366787bc1640b4", "signature": "Skipped = 4", "value": "4" }] }, { "name": "CuiSharp.CuiTree", "displayName": "CuiTree", "kind": "static class", "summary": "Sorts a tree model the way the tree table expects: every sibling list, relinked.", "members": [{ "name": "Sort", "kind": "method", "id": "method|Sort|1|0|int|TreeNode[] nodes;int root;Comparison\u003Cint\u003E compare;string key = \u0022tree-sort\u0022||h55f0abe563ef752ff38a7832d697465670f98a7cd688f1af5cec9b962807946b", "signature": "static int Sort(TreeNode[] nodes, int root, Comparison\u003Cint\u003E compare, string key = \u0022tree-sort\u0022)", "parameters": [{ "name": "nodes", "type": "TreeNode[]" }, { "name": "root", "type": "int" }, { "name": "compare", "type": "Comparison\u003Cint\u003E" }, { "name": "key", "type": "string", "default": "\u0022tree-sort\u0022" }], "summary": "Sorts each sibling list of nodes with compare, relinking the indices, and returns the new first top level node." }] }, { "name": "CuiSharp.CuiWindow", "displayName": "CuiWindow", "kind": "class", "summary": "The OS window behind a running app: the handle to brand, log and query, without a P/Invoke of your own. WindowCreated hands one of these over after CUI has created the window and before the first frame draws, which is the first moment a window has a handle at all \u2014 far too late for OnInitialized, which runs before the window exists. Windows-only members report 0/false elsewhere: the app loop keeps its cui_app* to itself, and Windows is the one platform where the window can be asked for it back (its user data is that pointer).", "members": [{ "name": "PickFile", "kind": "method", "id": "method|PickFile|0|0|FilePickResult|FileDialogOpts options||h2f928bfe207b9eda497652e9a996483cfeda718eca492357c6eca5cebda1b45d", "signature": "FilePickResult PickFile(FileDialogOpts options)", "parameters": [{ "name": "options", "type": "FileDialogOpts" }], "summary": "Shows the OS\u0027s file, folder or save dialog and reports what the user did. Modal and blocking, so call it from a click, not from work that has to keep drawing." }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null means the OS\u0027s own dialog through CUI; a test sets a provider here (or on FileDialog) and the picker flow runs with no display and no dialog in the way." }, { "name": "PixelSize", "kind": "property", "id": "property|PixelSize|0|0|ValueTuple\u003Cint, int\u003E||get;|h1049152ea53b5dff6fd469d3f658f0b563323b3eec4d42c550fc77f96c46bd59", "signature": "ValueTuple\u003Cint, int\u003E PixelSize { get; }", "summary": "The client area in physical pixels." }, { "name": "IsMaximized", "kind": "property", "id": "property|IsMaximized|0|0|bool||get;|hfc25b64604e9ea0e3c723dbda0dbba4b18badeaba57aa00663e20ad1607f48ed", "signature": "bool IsMaximized { get; }", "summary": "True when the window is maximized." }, { "name": "IsSoftwareRenderer", "kind": "property", "id": "property|IsSoftwareRenderer|0|0|bool||get;|h3f27446eacdf04d1fecebceee1cefae62e919fd65275bec82b6fe24474df4568", "signature": "bool IsSoftwareRenderer { get; }", "summary": "True when OpenGL was unavailable and CUI draws with its software rasterizer. Worth logging on a station or a remote session: it explains a frame rate nobody can reproduce." }, { "name": "NativeWindow", "kind": "property", "id": "property|NativeWindow|0|0|nint||get;|ha25309f909158c2015eb52345e6663cba17bb84816dcc0f42e5d0bc51c47a5b2", "signature": "nint NativeWindow { get; }", "summary": "The HWND on Windows, the X11 window id on Linux, and NSWindow * on macOS \u2014 whatever this platform\u0027s own APIs expect. 0 until the window exists." }, { "name": "OpenUrl", "kind": "method", "id": "method|OpenUrl|1|0|bool|string url||h36d4863040754a133b65165de645036cae9628789e921f86c4e96dcabe98a403", "signature": "static bool OpenUrl(string url)", "parameters": [{ "name": "url", "type": "string" }], "summary": "Opens an https: URL in the user\u0027s browser. False when the OS refused it." }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;|h71c8721a8cabf6ac9b6a38bb4aab8d0ede6c619052f697732584e574de3f6619", "signature": "string Backend { get; }", "summary": "The backend that created the window: win32, x11, cocoa, \u2026" }, { "name": "Minimize", "kind": "method", "id": "method|Minimize|0|0|void|||h2860f633e87f0e7e97be2e82dd4b4b77230f13533c648a1be17c41020ae3d35b", "signature": "void Minimize()", "summary": "Minimizes the window." }, { "name": "RequestClose", "kind": "method", "id": "method|RequestClose|0|0|void|||hb8e5c8757281b7813c0ddf13bc355f759625e935e912784f82ffc434fb19a7d0", "signature": "void RequestClose()", "summary": "Closes the window, exactly as its own close button would." }, { "name": "SetTitle", "kind": "method", "id": "method|SetTitle|0|0|void|string title||he58ba132a5185e4a1d7f928750cc61d9fefcbceadcab750d0574f406cb35bd2a", "signature": "void SetTitle(string title)", "parameters": [{ "name": "title", "type": "string" }], "summary": "Retitles the window. Safe to call from a frame." }, { "name": "ToggleMaximize", "kind": "method", "id": "method|ToggleMaximize|0|0|void|||h7281054f8f114f52232a500cf106c448776f57d00b9485febb705097f13dec5c", "signature": "void ToggleMaximize()", "summary": "Maximizes the window, or restores it when it is already maximized." }] }, @@ -157,7 +158,8 @@ { "name": "CuiSharp.Hosting.CuiApplicationBuilder", "displayName": "CuiApplicationBuilder", "kind": "class", "summary": "Collects services and window options before the window exists.", "members": [{ "name": "Window", "kind": "property", "id": "property|Window|0|0|CuiAppOptions||get;set;|hb4f402a692934c77e62da0173ddd890f74e45c40f58fa933ff2536baedc0fe79", "signature": "CuiAppOptions Window { get; set; }", "summary": "Window options: title, size, renderer, theme, accent." }, { "name": "Build", "kind": "method", "id": "method|Build|0|0|CuiApplication|||h9d2e6ba46af012770ff325c47a1dd1a56cfe59b9a18204feffa806a963f69a68", "signature": "CuiApplication Build()", "summary": "Builds the container. The window itself is created by Run\u0060\u00601." }, { "name": "Services", "kind": "property", "id": "property|Services|0|0|IServiceCollection||get;|h0f02e1c313ac8a81062e4bd937a51a3b05a63a9a49ae45ff523b68ec55bf3e96", "signature": "IServiceCollection Services { get; }", "summary": "The container. Register services and components here." }, { "name": "Args", "kind": "property", "id": "property|Args|0|0|string[]||get;|h7a56b0f7d1c60a9bad709dda1a5112461efb41c9711599d27545d3a75b062410", "signature": "string[] Args { get; }", "summary": "Command-line arguments, as handed to the process." }] }, { "name": "CuiSharp.Hosting.FrameSample", "displayName": "FrameSample", "kind": "struct", "summary": "What one frame cost. FrameStats holds the last one in the process.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||long Frames;double FrameMs;double DrawMs;long AllocatedBytes;double Fps;bool IsLive||h1f4338d9ac6a5eac1c91dc224727f64973ef42b2881098fdca3e8dca2b2b6eef", "signature": "FrameSample(long Frames, double FrameMs, double DrawMs, long AllocatedBytes, double Fps, bool IsLive)", "parameters": [{ "name": "Frames", "type": "long" }, { "name": "FrameMs", "type": "double" }, { "name": "DrawMs", "type": "double" }, { "name": "AllocatedBytes", "type": "long" }, { "name": "Fps", "type": "double" }, { "name": "IsLive", "type": "bool" }], "summary": "What one frame cost. FrameStats holds the last one in the process." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|FrameSample other||h6b5e8e167a39bfe41c6778b24750f83049be7b632bb609b3b315f8433032f6df", "signature": "bool Equals(FrameSample other)", "parameters": [{ "name": "other", "type": "FrameSample" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object obj||hdf2fccef3fb95cd65c067116b7fab214698fd62b7ba7acf819e39cecdecd49f0", "signature": "bool Equals(object obj)", "parameters": [{ "name": "obj", "type": "object" }] }, { "name": "IsLive", "kind": "property", "id": "property|IsLive|0|0|bool||get;set;|h6fb5ef11f1ee36bb8cc50da3708ecc7839b9ea761592d6eec3068c2daf512df2", "signature": "bool IsLive { get; init; }", "summary": "Whether anything asked for this frame." }, { "name": "DrawMs", "kind": "property", "id": "property|DrawMs|0|0|double||get;set;|h412ea96c16410ddaf605871b1b505bc8ccd9dfb2a05fa7c70f60311dae4dd9e3", "signature": "double DrawMs { get; init; }", "summary": "Time spent drawing this frame\u0027s components." }, { "name": "Fps", "kind": "property", "id": "property|Fps|0|0|double||get;set;|h32cd94cea8713530575a786026ed29b0ecca6c7fc6ec78a6aa22a19f614a3e43", "signature": "double Fps { get; init; }", "summary": "Smoothed frame rate of the run this frame belongs to." }, { "name": "FrameMs", "kind": "property", "id": "property|FrameMs|0|0|double||get;set;|h3f5dccbe685e3fd6ac024b48e5ab7029dbb34dadb3f73e5bc2ea02482f41568a", "signature": "double FrameMs { get; init; }", "summary": "Wall-clock time between this frame and the previous one." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "AllocatedBytes", "kind": "property", "id": "property|AllocatedBytes|0|0|long||get;set;|ha2f53be0b74179c0733ded33b815505ae61640803eca28ca76e7151842f6a916", "signature": "long AllocatedBytes { get; init; }", "summary": "Managed bytes allocated while drawing it." }, { "name": "Frames", "kind": "property", "id": "property|Frames|0|0|long||get;set;|h6b895a790d6a6e62dac0164488207995443321314ea277546d53964ebee21474", "signature": "long Frames { get; init; }", "summary": "Frames rendered since the process started." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|FrameSample left;FrameSample right||h1621bbc9c95d57d2b3212169f2f018f2560446a437bf869ca714e562ce6b341d", "signature": "static bool operator !=(FrameSample left, FrameSample right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "FrameSample" }, { "name": "right", "type": "FrameSample" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|FrameSample left;FrameSample right||hcae28c34e7edfb01c0b5ee5beed82a18fbfbfef921183af0ec80a036a4f505e4", "signature": "static bool operator ==(FrameSample left, FrameSample right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "FrameSample" }, { "name": "right", "type": "FrameSample" }] }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Deconstruct", "kind": "method", "id": "method|Deconstruct|0|0|void|out long Frames;out double FrameMs;out double DrawMs;out long AllocatedBytes;out double Fps;out bool IsLive||h505ffebce7d4ff615c36f2202efa12440c4b4131624dfc04cebe36b338a5c8e3", "signature": "void Deconstruct(out long Frames, out double FrameMs, out double DrawMs, out long AllocatedBytes, out double Fps, out bool IsLive)", "parameters": [{ "name": "Frames", "type": "out long" }, { "name": "FrameMs", "type": "out double" }, { "name": "DrawMs", "type": "out double" }, { "name": "AllocatedBytes", "type": "out long" }, { "name": "Fps", "type": "out double" }, { "name": "IsLive", "type": "out bool" }] }] }, { "name": "CuiSharp.Hosting.FrameStats", "displayName": "FrameStats", "kind": "static class", "summary": "Per-frame numbers for the frame that just rendered, so a footer or a trace can show them without every app measuring the clock itself. The host fills these in around each component render; nothing here allocates.", "members": [{ "name": "IsLive", "kind": "property", "id": "property|IsLive|1|0|bool||get;|h444d8f50956934219eebcfcb5639eae0c5423d84c4df24bee7585d9a3fe41f3a", "signature": "static bool IsLive { get; }", "summary": "True when something asked for this frame: a component that changes on its own (WantsFrames) or work that is still in flight. An app that says false is asleep between input, so a frame rate would be a number about nothing." }, { "name": "DrawMs", "kind": "property", "id": "property|DrawMs|1|0|double||get;|h3fbf0f50fafa5b894128da08fec11f4bb522f7c4091b33f87829fe96f1bd3527", "signature": "static double DrawMs { get; }", "summary": "Time spent drawing this frame\u0027s components." }, { "name": "Fps", "kind": "property", "id": "property|Fps|1|0|double||get;|h935cbfa0adde0346221a688f7ba88d870a04f16531a1627c79bac153f42a8dd7", "signature": "static double Fps { get; }", "summary": "Frames per second, smoothed over the frames of the current run. Zero until there is something to average, and unchanged while the app is asleep \u2014 see the remarks on this type." }, { "name": "FrameMs", "kind": "property", "id": "property|FrameMs|1|0|double||get;|hd346decc3ed1e65d26fbd6ac1aaec24590a9299477bd79ca99e7b533ab13f911", "signature": "static double FrameMs { get; }", "summary": "Wall-clock time between the start of this frame and the previous one." }, { "name": "AllocatedBytes", "kind": "property", "id": "property|AllocatedBytes|1|0|long||get;|h3a901b93e508e893524c27ba1fd9bbb474d30876c4140a4255359004eb69679b", "signature": "static long AllocatedBytes { get; }", "summary": "Managed bytes allocated while drawing this frame. It should read 0: the frame\u0027s own numbers are the cheapest way to notice a hidden allocation." }, { "name": "Frames", "kind": "property", "id": "property|Frames|1|0|long||get;|heb8351bd9b4d67895ea2fd8fdd741b7234e6c5709baebe7651fabe90b4558c4c", "signature": "static long Frames { get; }", "summary": "Number of frames rendered since the process started." }] }, - { "name": "CuiSharp.Hosting.HeadlessApp", "displayName": "HeadlessApp", "kind": "class", "summary": "An app drawn without a window: frames you drive, controls you find by label, and the pixels they produced.", "members": [{ "name": "Root", "kind": "property", "id": "property|Root|0|0|Component?||get;|hf43d1318450e8d46d53aed28e29e6b08c07342c8f234fd9bb9d1e8bf9399c60d", "signature": "Component? Root { get; }", "summary": "The component being drawn, if this app draws one." }, { "name": "Surface", "kind": "property", "id": "property|Surface|0|0|CuiSurface||get;|hf0799171cdc83f0900df39a80392efea137100437e738539c2a86d1ffe79fc8a", "signature": "CuiSurface Surface { get; }", "summary": "The surface underneath: pixels, viewport and the software rasterizer." }, { "name": "Advance", "kind": "method", "id": "method|Advance|0|0|HeadlessApp|TimeSpan time;int frames = 1||h626da333c8675acee966c0b66a045e0937e87454db20859c3126a6a2131aabdb", "signature": "HeadlessApp Advance(TimeSpan time, int frames = 1)", "parameters": [{ "name": "time", "type": "TimeSpan" }, { "name": "frames", "type": "int", "default": "1" }], "summary": "Moves the clock forward by time over frames frames. Frames are free but time is not: an animation is only as far along as the clock says, so a snapshot taken without advancing is a snapshot of an animation that never started." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|HeadlessApp|bool focused = true||h4945a8a1105ecf005cd92bad3d05dcdbd0a2541a0331e9e546561ad788d06b67", "signature": "HeadlessApp Focus(bool focused = true)", "parameters": [{ "name": "focused", "type": "bool", "default": "true" }], "summary": "Reports the window gaining focus, which a text field needs before it takes keys." }, { "name": "Frame", "kind": "method", "id": "method|Frame|0|0|HeadlessApp|int count = 1||h3eda7515dee4cdcb51e35ef741e13b3705d1e379e87fb6785baa2861f228929b", "signature": "HeadlessApp Frame(int count = 1)", "parameters": [{ "name": "count", "type": "int", "default": "1" }], "summary": "Draws one frame and returns this app, so calls chain." }, { "name": "Key", "kind": "method", "id": "method|Key|0|0|HeadlessApp|Key key;Mods mods = (Mods)0||he72d4ecc571d6f2de7a08564e0a99caeef13f5b658ae8c4df1b11ac4836ed6ed", "signature": "HeadlessApp Key(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses and releases a key, drawing a frame for each." }, { "name": "MoveTo", "kind": "method", "id": "method|MoveTo|0|0|HeadlessApp|float x;float y||ha3d010dbe8ab0243c5eae4a920c66aafbaf5c51ddd93abe3a88fa789058cce0a", "signature": "HeadlessApp MoveTo(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer and draws the frame that reacts to the move (hover, tooltip)." }, { "name": "ParkPointer", "kind": "method", "id": "method|ParkPointer|0|0|HeadlessApp|||hf7daf579df92089bf30365e8263d50a10ae0c71ee8d889653d46a70d05582292", "signature": "HeadlessApp ParkPointer()", "summary": "Takes the pointer off the app and draws the frame that reacts, so a screenshot is of the UI and not of the tooltip the last click left behind. SavePng does this itself." }, { "name": "Press", "kind": "method", "id": "method|Press|0|0|HeadlessApp|||hc70c9499839ffd7cca3a9e84665eebdf5c6f07debc4c1228d41459f627aacefb", "signature": "HeadlessApp Press()", "summary": "Presses the left button and draws the frame that sees the press." }, { "name": "Release", "kind": "method", "id": "method|Release|0|0|HeadlessApp|||h7fa05977d3791cb22f0fcdefe9bf86efd4ae76ad199e58772b976d73fd1740b7", "signature": "HeadlessApp Release()", "summary": "Releases the left button and draws the frame that reports the click." }, { "name": "ScrollAt", "kind": "method", "id": "method|ScrollAt|0|0|HeadlessApp|float x;float y;float dy;float dx = default||h62b831947b3ac89b348a26f2df1f78176801e668e13e4c465e94b3374218cadc", "signature": "HeadlessApp ScrollAt(float x, float y, float dy, float dx = default)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Moves the pointer to (x, y) and scrolls there: the wheel goes to whichever scroll area holds that point. The distance is in wheel notches and a positive dy scrolls up, as a real wheel does; a negative one reaches for what is below the fold. Draws the frame that shows the new offset \u2014 a spring-animated scroll needs a few Frame calls to settle where it lands." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|HeadlessApp|string text||h97a1e4d23535309d2f6404313656a2ce95275d0e1ba3c2df130c7a3f70782245", "signature": "HeadlessApp Type(string text)", "parameters": [{ "name": "text", "type": "string" }], "summary": "Types text into whatever has focus, and draws the frame that accepts it." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "Every control the last frame drew, in drawing order." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003Cstring\u003E||get;|hcd480861b6837af5e65e0c529272438bb9a9b6d01925a764ff47a3b315d18b1d", "signature": "IReadOnlyList\u003Cstring\u003E Faults { get; }", "summary": "Exceptions a component threw while drawing; an empty list is a healthy frame." }, { "name": "RawPixels", "kind": "property", "id": "property|RawPixels|0|0|ReadOnlySpan\u003Cbyte\u003E||get;|h1595671ac794e37c504b591f4dfb0b943209a8597317f116c01dc55bd38f7c6b", "signature": "ReadOnlySpan\u003Cbyte\u003E RawPixels { get; }", "summary": "The last frame\u0027s pixels, RGBA." }, { "name": "Tree", "kind": "property", "id": "property|Tree|0|0|SemanticNode||get;|h8545f28c2f25a968c4be78d681487aa8f42df7d54f6f6f5dd1e744f429c65806", "signature": "SemanticNode Tree { get; }", "summary": "The last frame\u0027s controls nested the way the app drew them: a button inside ui.Card(new() { Id = \u0022editor\u0022 }) is a child of Card \u0022editor\u0022, even when unnamed containers sit between them." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string kind;string text||h1bb2d62f3680eb0c19900c345fda3357c44b1deeb94d6ddbbe38eb3f42fc4ffd", "signature": "WidgetTarget Find(string kind, string text)", "parameters": [{ "name": "kind", "type": "string" }, { "name": "text", "type": "string" }], "summary": "Finds a control of a kind and a label, e.g. Find(\u0022Button\u0022, \u0022Save\u0022)." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string query||h9d9f9fac08a30a8548e9c7fbcda39ec13f1f404fa63de19b5fcee96ffd42cd91", "signature": "WidgetTarget Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a control by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "FindButton", "kind": "method", "id": "method|FindButton|0|0|WidgetTarget|string label||hbbacdbec5fb9f23bcc9d4aeb82b2fe3a5af64711fd42cce031629e935477e8c8", "signature": "WidgetTarget FindButton(string label)", "parameters": [{ "name": "label", "type": "string" }], "summary": "Finds a button by its label." }, { "name": "FindById", "kind": "method", "id": "method|FindById|0|0|WidgetTarget|string id||h0d9247bef6926b3d3b9d9c50e001208698befbb15643a9efc7dba9112efe52b6", "signature": "WidgetTarget FindById(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a widget by the exact text the app drew it with \u2014 its id, for every widget that has one \u2014 and never by a partial or fuzzy match. This is the query to write when a label can be translated: FindById(\u0022draft\u0022) keeps working in another language, while Find(\u0022draft\u0022) was only ever guessing." }, { "name": "FindInput", "kind": "method", "id": "method|FindInput|0|0|WidgetTarget|string id||ha21d8796c2e42e310d821632148f5696664e22789d7f9fca032bccf99f5ad419", "signature": "WidgetTarget FindInput(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a text field by its id." }, { "name": "FindItem", "kind": "method", "id": "method|FindItem|0|0|WidgetTarget|string id;int index||h58c7cbfca4332017d8867744ab1ca067e9a16b2f476dfa77500267d60c71f4e5", "signature": "WidgetTarget FindItem(string id, int index)", "parameters": [{ "name": "id", "type": "string" }, { "name": "index", "type": "int" }], "summary": "The indexth item of the multi-item widget drawn with id: a tab, a segment, a row. The label of an item is translatable, its position is not, so this is how a test names one without hard-coding the words." }, { "name": "Animating", "kind": "property", "id": "property|Animating|0|0|bool||get;|h31a492e61fccdc7fd83e6c8ed8e83345bdfccdafc84504c3e532f94155aeda56", "signature": "bool Animating { get; }", "summary": "True when something in the last frame asked for another one: an animation in flight, a transition, work that finished on a pool thread. Settle is the loop around it." }, { "name": "PaintedAnything", "kind": "method", "id": "method|PaintedAnything|0|0|bool|||hc6a981a5d4b20d54b1b865a8ed0f5fef77d3c9f59fec3259d142b03cc512642f", "signature": "bool PaintedAnything()", "summary": "True when the last frame painted anything at all." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out WidgetTarget widget||h392d9569dd63494ff11a7cba9bab5add41638093b36bfb0f0d11478be48eab60", "signature": "bool TryFind(string query, out WidgetTarget widget)", "parameters": [{ "name": "query", "type": "string" }, { "name": "widget", "type": "out WidgetTarget" }], "summary": "True when the last frame drew something that answers the query." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "Settle", "kind": "method", "id": "method|Settle|0|0|int|int maxFrames = 240;TimeSpan? step = default||h2884d1fda375f255880e29fef21977c3966174e05e4b0fda7cde38300a0612c3", "signature": "int Settle(int maxFrames = 240, TimeSpan? step = default)", "parameters": [{ "name": "maxFrames", "type": "int", "default": "240" }, { "name": "step", "type": "TimeSpan?", "default": "default" }], "summary": "Draws frames until nothing wants another one, moving the clock by step each time. This is the replacement for a sleep loop: an animation that takes half a second settles in a few milliseconds, and the count says how long it took." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|Component root;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||h1e5b5b0d7001e43da6fe7c233c65d21aef6bb43f443207e450b36d7f9bf2f5e5", "signature": "static HeadlessApp Start(Component root, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "root", "type": "Component" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app around one component, initializing it the way the host does." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|DrawFn draw;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||he7844293216898ca9b0b006f61b4910517fe23935747ae7f38412d03143dbbe9", "signature": "static HeadlessApp Start(DrawFn draw, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app that draws draw for every frame." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The last frame\u0027s tree as text, which is also what ToString gives." }, { "name": "SavePng", "kind": "method", "id": "method|SavePng|0|0|string|string? path = null;bool parked = true||hb90d4d8b7c789b4eddcca8f1bc64ed99b3ebc8de616717d3cbba041aff978a98", "signature": "string SavePng(string? path = null, bool parked = true)", "parameters": [{ "name": "path", "type": "string?", "default": "null" }, { "name": "parked", "type": "bool", "default": "true" }], "summary": "Writes the last frame as a PNG and returns the path, for a human or an agent to look at. The pointer is taken off the UI first, so a hover tooltip left by the last click is not in the picture; pass parked = false to photograph the app as it stands." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }] }, + { "name": "CuiSharp.Hosting.HeadlessApp", "displayName": "HeadlessApp", "kind": "class", "summary": "An app drawn without a window: frames you drive, controls you find by label, and the pixels they produced.", "members": [{ "name": "Root", "kind": "property", "id": "property|Root|0|0|Component?||get;|hf43d1318450e8d46d53aed28e29e6b08c07342c8f234fd9bb9d1e8bf9399c60d", "signature": "Component? Root { get; }", "summary": "The component being drawn, if this app draws one." }, { "name": "Surface", "kind": "property", "id": "property|Surface|0|0|CuiSurface||get;|hf0799171cdc83f0900df39a80392efea137100437e738539c2a86d1ffe79fc8a", "signature": "CuiSurface Surface { get; }", "summary": "The surface underneath: pixels, viewport and the software rasterizer." }, { "name": "Advance", "kind": "method", "id": "method|Advance|0|0|HeadlessApp|TimeSpan time;int frames = 1||h626da333c8675acee966c0b66a045e0937e87454db20859c3126a6a2131aabdb", "signature": "HeadlessApp Advance(TimeSpan time, int frames = 1)", "parameters": [{ "name": "time", "type": "TimeSpan" }, { "name": "frames", "type": "int", "default": "1" }], "summary": "Moves the clock forward by time over frames frames. Frames are free but time is not: an animation is only as far along as the clock says, so a snapshot taken without advancing is a snapshot of an animation that never started." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|HeadlessApp|bool focused = true||h4945a8a1105ecf005cd92bad3d05dcdbd0a2541a0331e9e546561ad788d06b67", "signature": "HeadlessApp Focus(bool focused = true)", "parameters": [{ "name": "focused", "type": "bool", "default": "true" }], "summary": "Reports the window gaining focus, which a text field needs before it takes keys." }, { "name": "Frame", "kind": "method", "id": "method|Frame|0|0|HeadlessApp|int count = 1||h3eda7515dee4cdcb51e35ef741e13b3705d1e379e87fb6785baa2861f228929b", "signature": "HeadlessApp Frame(int count = 1)", "parameters": [{ "name": "count", "type": "int", "default": "1" }], "summary": "Draws one frame and returns this app, so calls chain." }, { "name": "Key", "kind": "method", "id": "method|Key|0|0|HeadlessApp|Key key;Mods mods = (Mods)0||he72d4ecc571d6f2de7a08564e0a99caeef13f5b658ae8c4df1b11ac4836ed6ed", "signature": "HeadlessApp Key(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses and releases a key, drawing a frame for each." }, { "name": "MoveTo", "kind": "method", "id": "method|MoveTo|0|0|HeadlessApp|float x;float y||ha3d010dbe8ab0243c5eae4a920c66aafbaf5c51ddd93abe3a88fa789058cce0a", "signature": "HeadlessApp MoveTo(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer and draws the frame that reacts to the move (hover, tooltip)." }, { "name": "ParkPointer", "kind": "method", "id": "method|ParkPointer|0|0|HeadlessApp|||hf7daf579df92089bf30365e8263d50a10ae0c71ee8d889653d46a70d05582292", "signature": "HeadlessApp ParkPointer()", "summary": "Takes the pointer off the app and draws the frame that reacts, so a screenshot is of the UI and not of the tooltip the last click left behind. SavePng does this itself." }, { "name": "Press", "kind": "method", "id": "method|Press|0|0|HeadlessApp|||hc70c9499839ffd7cca3a9e84665eebdf5c6f07debc4c1228d41459f627aacefb", "signature": "HeadlessApp Press()", "summary": "Presses the left button and draws the frame that sees the press." }, { "name": "Release", "kind": "method", "id": "method|Release|0|0|HeadlessApp|||h7fa05977d3791cb22f0fcdefe9bf86efd4ae76ad199e58772b976d73fd1740b7", "signature": "HeadlessApp Release()", "summary": "Releases the left button and draws the frame that reports the click." }, { "name": "ScrollAt", "kind": "method", "id": "method|ScrollAt|0|0|HeadlessApp|float x;float y;float dy;float dx = default||h62b831947b3ac89b348a26f2df1f78176801e668e13e4c465e94b3374218cadc", "signature": "HeadlessApp ScrollAt(float x, float y, float dy, float dx = default)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Moves the pointer to (x, y) and scrolls there: the wheel goes to whichever scroll area holds that point. The distance is in wheel notches and a positive dy scrolls up, as a real wheel does; a negative one reaches for what is below the fold. Draws the frame that shows the new offset \u2014 a spring-animated scroll needs a few Frame calls to settle where it lands." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|HeadlessApp|string text||h97a1e4d23535309d2f6404313656a2ce95275d0e1ba3c2df130c7a3f70782245", "signature": "HeadlessApp Type(string text)", "parameters": [{ "name": "text", "type": "string" }], "summary": "Types text into whatever has focus, and draws the frame that accepts it." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "Every control the last frame drew, in drawing order." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003Cstring\u003E||get;|hcd480861b6837af5e65e0c529272438bb9a9b6d01925a764ff47a3b315d18b1d", "signature": "IReadOnlyList\u003Cstring\u003E Faults { get; }", "summary": "Exceptions a component threw while drawing; an empty list is a healthy frame." }, { "name": "RawPixels", "kind": "property", "id": "property|RawPixels|0|0|ReadOnlySpan\u003Cbyte\u003E||get;|h1595671ac794e37c504b591f4dfb0b943209a8597317f116c01dc55bd38f7c6b", "signature": "ReadOnlySpan\u003Cbyte\u003E RawPixels { get; }", "summary": "The last frame\u0027s pixels, RGBA." }, { "name": "Tree", "kind": "property", "id": "property|Tree|0|0|SemanticNode||get;|h8545f28c2f25a968c4be78d681487aa8f42df7d54f6f6f5dd1e744f429c65806", "signature": "SemanticNode Tree { get; }", "summary": "The last frame\u0027s controls nested the way the app drew them: a button inside ui.Card(new() { Id = \u0022editor\u0022 }) is a child of Card \u0022editor\u0022, even when unnamed containers sit between them." }, { "name": "WaitFor", "kind": "method", "id": "method|WaitFor|0|0|WaitOutcome|string query;TimeSpan timeout;CancellationToken cancellationToken = default||h1a2183f22c4e10789025f3ce403caa71a4adb22a527c15add25a744287d5f832", "signature": "WaitOutcome WaitFor(string query, TimeSpan timeout, CancellationToken cancellationToken = default)", "parameters": [{ "name": "query", "type": "string" }, { "name": "timeout", "type": "TimeSpan" }, { "name": "cancellationToken", "type": "CancellationToken", "default": "default" }], "summary": "Draws real frames until one draws a control that answers query (the same vocabulary as Find), or until timeout passes. The latest completed frame is asked first, so a wait for what is already on screen draws no frames at all." }, { "name": "WaitReady", "kind": "method", "id": "method|WaitReady|0|0|WaitOutcome|TimeSpan timeout;CancellationToken cancellationToken = default||h2344feda4bb984cdb8aed71ac4302bd94231f1e12e370ec3fa0b58f9a1d836d0", "signature": "WaitOutcome WaitReady(TimeSpan timeout, CancellationToken cancellationToken = default)", "parameters": [{ "name": "timeout", "type": "TimeSpan" }, { "name": "cancellationToken", "type": "CancellationToken", "default": "default" }], "summary": "Draws real frames until one completes that called MarkReady, or until timeout has passed on the wall clock. Every frame drains completed background work first, so data that arrives on a pool thread becomes visible on the frame that draws after it \u2014 which is what a wait is for. The latest completed frame may answer without another one being drawn: a wait that needs no frames reports Frames of 0 \u2014 and a window already spent when the first frame would have started is a miss that drew nothing. A draw cannot be interrupted, but a condition that turns true only after the window has passed is reported as a miss, not as a late success." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string kind;string text||h1bb2d62f3680eb0c19900c345fda3357c44b1deeb94d6ddbbe38eb3f42fc4ffd", "signature": "WidgetTarget Find(string kind, string text)", "parameters": [{ "name": "kind", "type": "string" }, { "name": "text", "type": "string" }], "summary": "Finds a control of a kind and a label, e.g. Find(\u0022Button\u0022, \u0022Save\u0022)." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|WidgetTarget|string query||h9d9f9fac08a30a8548e9c7fbcda39ec13f1f404fa63de19b5fcee96ffd42cd91", "signature": "WidgetTarget Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a control by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "FindButton", "kind": "method", "id": "method|FindButton|0|0|WidgetTarget|string label||hbbacdbec5fb9f23bcc9d4aeb82b2fe3a5af64711fd42cce031629e935477e8c8", "signature": "WidgetTarget FindButton(string label)", "parameters": [{ "name": "label", "type": "string" }], "summary": "Finds a button by its label." }, { "name": "FindById", "kind": "method", "id": "method|FindById|0|0|WidgetTarget|string id||h0d9247bef6926b3d3b9d9c50e001208698befbb15643a9efc7dba9112efe52b6", "signature": "WidgetTarget FindById(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a widget by the exact text the app drew it with \u2014 its id, for every widget that has one \u2014 and never by a partial or fuzzy match. This is the query to write when a label can be translated: FindById(\u0022draft\u0022) keeps working in another language, while Find(\u0022draft\u0022) was only ever guessing." }, { "name": "FindInput", "kind": "method", "id": "method|FindInput|0|0|WidgetTarget|string id||ha21d8796c2e42e310d821632148f5696664e22789d7f9fca032bccf99f5ad419", "signature": "WidgetTarget FindInput(string id)", "parameters": [{ "name": "id", "type": "string" }], "summary": "Finds a text field by its id." }, { "name": "FindItem", "kind": "method", "id": "method|FindItem|0|0|WidgetTarget|string id;int index||h58c7cbfca4332017d8867744ab1ca067e9a16b2f476dfa77500267d60c71f4e5", "signature": "WidgetTarget FindItem(string id, int index)", "parameters": [{ "name": "id", "type": "string" }, { "name": "index", "type": "int" }], "summary": "The indexth item of the multi-item widget drawn with id: a tab, a segment, a row. The label of an item is translatable, its position is not, so this is how a test names one without hard-coding the words." }, { "name": "Animating", "kind": "property", "id": "property|Animating|0|0|bool||get;|h31a492e61fccdc7fd83e6c8ed8e83345bdfccdafc84504c3e532f94155aeda56", "signature": "bool Animating { get; }", "summary": "True when something in the last frame asked for another one: an animation in flight, a transition, work that finished on a pool thread. Settle is the loop around it." }, { "name": "PaintedAnything", "kind": "method", "id": "method|PaintedAnything|0|0|bool|||hc6a981a5d4b20d54b1b865a8ed0f5fef77d3c9f59fec3259d142b03cc512642f", "signature": "bool PaintedAnything()", "summary": "True when the last frame painted anything at all." }, { "name": "Ready", "kind": "property", "id": "property|Ready|0|0|bool||get;|h03be3cfec0542d3cf3efe6003035d3a0d2f76ef268a62ef8589ca769105bcfd6", "signature": "bool Ready { get; }", "summary": "Whether the latest completed frame declared its data ready with MarkReady. A frame that did not mark itself is not ready, whatever the frame before it claimed." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out WidgetTarget widget||h392d9569dd63494ff11a7cba9bab5add41638093b36bfb0f0d11478be48eab60", "signature": "bool TryFind(string query, out WidgetTarget widget)", "parameters": [{ "name": "query", "type": "string" }, { "name": "widget", "type": "out WidgetTarget" }], "summary": "True when the last frame drew something that answers the query." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "Settle", "kind": "method", "id": "method|Settle|0|0|int|int maxFrames = 240;TimeSpan? step = default||h2884d1fda375f255880e29fef21977c3966174e05e4b0fda7cde38300a0612c3", "signature": "int Settle(int maxFrames = 240, TimeSpan? step = default)", "parameters": [{ "name": "maxFrames", "type": "int", "default": "240" }, { "name": "step", "type": "TimeSpan?", "default": "default" }], "summary": "Draws frames until nothing wants another one, moving the clock by step each time. This is the replacement for a sleep loop: an animation that takes half a second settles in a few milliseconds, and the count says how long it took." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|Component root;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||h1e5b5b0d7001e43da6fe7c233c65d21aef6bb43f443207e450b36d7f9bf2f5e5", "signature": "static HeadlessApp Start(Component root, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "root", "type": "Component" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app around one component, initializing it the way the host does." }, { "name": "Start", "kind": "method", "id": "method|Start|1|0|HeadlessApp|DrawFn draw;int width = 1024;int height = 768;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||he7844293216898ca9b0b006f61b4910517fe23935747ae7f38412d03143dbbe9", "signature": "static HeadlessApp Start(DrawFn draw, int width = 1024, int height = 768, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "width", "type": "int", "default": "1024" }, { "name": "height", "type": "int", "default": "768" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Starts an app that draws draw for every frame." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The last frame\u0027s tree as text, which is also what ToString gives." }, { "name": "PrintLayout", "kind": "method", "id": "method|PrintLayout|0|0|string|||h1aca4fa317bff1c9a17b9ff43a8ce93464478a32b3aba59b2cd66e9b17152dd5", "signature": "string PrintLayout()", "summary": "The LayoutFormatter view of the last frame: verified rectangles, observed bounds labelled as the lower bounds they are, and unknown extents named as unknowns." }, { "name": "SavePng", "kind": "method", "id": "method|SavePng|0|0|string|string? path = null;bool parked = true||hb90d4d8b7c789b4eddcca8f1bc64ed99b3ebc8de616717d3cbba041aff978a98", "signature": "string SavePng(string? path = null, bool parked = true)", "parameters": [{ "name": "path", "type": "string?", "default": "null" }, { "name": "parked", "type": "bool", "default": "true" }], "summary": "Writes the last frame as a PNG and returns the path, for a human or an agent to look at. The pointer is taken off the UI first, so a hover tooltip left by the last click is not in the picture; pass parked = false to photograph the app as it stands." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }] }, + { "name": "CuiSharp.Hosting.HeadlessApp\u002BWaitOutcome", "displayName": "WaitOutcome", "kind": "struct", "members": [{ "name": "Elapsed", "kind": "property", "id": "property|Elapsed|0|0|TimeSpan||get;|h943284be104648ac96f791bfd85ff89e3a5d8998ededcd19a3d86c2c5d54545f", "signature": "TimeSpan Elapsed { get; }" }, { "name": "Satisfied", "kind": "property", "id": "property|Satisfied|0|0|bool||get;|ha45053bdb077ec5171b51a538c43fc0d24edf017a9371dfc056a87f7e11ec855", "signature": "bool Satisfied { get; }" }, { "name": "Frames", "kind": "property", "id": "property|Frames|0|0|int||get;|h56bd5199d59de95a6bf113863a466497826770b49557c95cd41361a484c7fede", "signature": "int Frames { get; }" }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, { "name": "CuiSharp.Hosting.HeadlessLoop", "displayName": "HeadlessLoop", "kind": "static class", "summary": "Runs an app with no window and answers commands on a stream, so a tool \u2014 dotnet cui, an MCP server, a shell script \u2014 can look at a frame and act on it.", "members": [{ "name": "EnvironmentVariable", "kind": "constant", "id": "constant|EnvironmentVariable|1|0|string||CUISHARP_HEADLESS|ha44e567370773145da7ebbd6ebeac9df2b8139d701bac9a4c4e3e346e91b2991", "signature": "public const string EnvironmentVariable = \u0022CUISHARP_HEADLESS\u0022", "summary": "The environment variable an app checks to run without a window.", "value": "CUISHARP_HEADLESS" }, { "name": "Known", "kind": "property", "id": "property|Known|1|0|IReadOnlyList\u003Cstring\u003E||get;|h085bcbb292ce64c780e24a5c3a9f64db8dc642f5d755d39fca744503879f9a72", "signature": "static IReadOnlyList\u003Cstring\u003E Known { get; }", "summary": "The commands the loop understands, for a client that wants to list them." }, { "name": "Requested", "kind": "method", "id": "method|Requested|1|0|bool|string[]? args = null||hc0e5ea7160e0461cc5b41dbb44b88857ab431762b827314f910688ea78921a42", "signature": "static bool Requested(string[]? args = null)", "parameters": [{ "name": "args", "type": "string[]?", "default": "null" }], "summary": "True when this process was asked to run without a window." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|DrawFn draw;CuiAppOptions window;TextReader? input = null;TextWriter? output = null||h37edee97f7be63ccf9a98383e568e10725a14a8431d1b588b7a21cd59b07507d", "signature": "static int Run(DrawFn draw, CuiAppOptions window, TextReader? input = null, TextWriter? output = null)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "window", "type": "CuiAppOptions" }, { "name": "input", "type": "TextReader?", "default": "null" }, { "name": "output", "type": "TextWriter?", "default": "null" }], "summary": "Serves commands for an app that draws with a callback: a gallery, a demo, a single-file tool, or a hosted component \u2014 the host is the callback either way." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|HeadlessApp app;TextReader? input = null;TextWriter? output = null||hc55d4e1df5958d2b5f8157071f361936fb2ac62ac6ea15e2bffea83d29bee6de", "signature": "static int Run(HeadlessApp app, TextReader? input = null, TextWriter? output = null)", "parameters": [{ "name": "app", "type": "HeadlessApp" }, { "name": "input", "type": "TextReader?", "default": "null" }, { "name": "output", "type": "TextWriter?", "default": "null" }], "summary": "Serves commands against an app the caller already started." }] }, { "name": "CuiSharp.Hosting.Mutation", "displayName": "Mutation", "kind": "class", "summary": "A Mutation\u00601 whose work has no result.", "members": [{ "name": "Error", "kind": "property", "id": "property|Error|0|0|Exception?||get;|hb67d4cbeee04c77705d935c8f9afc91d020a674a85f3ebb45a3c6dfd8005cfea", "signature": "Exception? Error { get; }", "summary": "The failure that ended the last run, or null. Read it every frame; it costs nothing." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003E work||hfcf9ec1d5f318ee6d44a793ffdd1166e6d4e6b9833fa1bcdd8717280dcbda975", "signature": "Mutation(Func\u003CCancellationToken, Task\u003E work)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003E" }], "summary": "Creates a mutation around the work it runs." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003E work;Action? onSuccess||h089de149d2fa382d351a6f8460c423879bd62eceb657211b45a1c1b69d25f3fb", "signature": "Mutation(Func\u003CCancellationToken, Task\u003E work, Action? onSuccess)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003E" }, { "name": "onSuccess", "type": "Action?" }], "summary": "Creates a mutation that calls onSuccess on the UI thread, before the next frame draws, once the work completes." }, { "name": "IsRunning", "kind": "property", "id": "property|IsRunning|0|0|bool||get;|hdb50b35f9f11d94a95bf6f33b6d55042e6ef5b6754a94143c75a7814c03fafc3", "signature": "bool IsRunning { get; }", "summary": "True while the operation is in flight." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Cancels a running operation. Optional." }, { "name": "Run", "kind": "method", "id": "method|Run|0|0|void|||h7fa7970a6de0dd0432fb375a6fdd0984556b406ca72f5dcb18c83b9546faba45", "signature": "void Run()", "summary": "Starts the operation. Re-entry is ignored, so it is safe to call every frame." }] }, { "name": "CuiSharp.Hosting.Mutation\u00601", "displayName": "Mutation", "kind": "class", "summary": "One background operation owned by a component: start it, keep drawing, and see the result on a later frame. The frame loop is synchronous, so nothing inside Draw may await. A mutation is the shape that makes that safe: it runs the work on the pool, holds the outcome, and never touches a Ui from a pool thread. While the operation runs \u2014 and for the one frame its result still needs to be drawn \u2014 the host keeps requesting frames, so the state appears immediately instead of on the next mouse move. Error and IsRunning are always current and cost nothing to read, so a fire-and-forget mutation needs no bookkeeping in Draw. Pass an apply callback when the result has to change state, and Draw never polls: the callback runs on the UI thread, before the next frame draws.", "members": [{ "name": "Error", "kind": "property", "id": "property|Error|0|0|Exception?||get;|hb67d4cbeee04c77705d935c8f9afc91d020a674a85f3ebb45a3c6dfd8005cfea", "signature": "Exception? Error { get; }", "summary": "The failure that ended the last run, or null. Cached when the operation completes, so reading it every frame allocates nothing." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003CT\u003E\u003E work||h407c67811e4cd751644c16cd780b2aa8f6144d3999000bb9a13e4867a2511590", "signature": "Mutation\u003CT\u003E(Func\u003CCancellationToken, Task\u003CT\u003E\u003E work)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003CT\u003E\u003E" }], "summary": "Creates a mutation around the work it runs." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Func\u003CCancellationToken, Task\u003CT\u003E\u003E work;Action\u003CT\u003E? apply||h439a867bc51e16192ebb428f43d5d5ad97e83f3395e337d6fadd63dfcb5ec734", "signature": "Mutation\u003CT\u003E(Func\u003CCancellationToken, Task\u003CT\u003E\u003E work, Action\u003CT\u003E? apply)", "parameters": [{ "name": "work", "type": "Func\u003CCancellationToken, Task\u003CT\u003E\u003E" }, { "name": "apply", "type": "Action\u003CT\u003E?" }], "summary": "Creates a mutation that hands its result to apply on the UI thread, before the next frame draws." }, { "name": "IsRunning", "kind": "property", "id": "property|IsRunning|0|0|bool||get;|hdb50b35f9f11d94a95bf6f33b6d55042e6ef5b6754a94143c75a7814c03fafc3", "signature": "bool IsRunning { get; }", "summary": "True while the operation is in flight." }, { "name": "TryPublish", "kind": "method", "id": "method|TryPublish|0|0|bool|out T result||ha98becc21c9c0f32b7a93fa1ebe90da051774564169240986c82f6a725c2b6ce", "signature": "bool TryPublish(out T? result)", "parameters": [{ "name": "result", "type": "out T?" }], "summary": "Takes the result if the operation finished. Needed only when the result has no apply callback; an operation that was given one has already applied it." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Cancels a running operation and drops its result. Optional: a mutation that is never disposed is cancelled when the process exits, which is what an app usually wants. After this, a completion that arrives late \u2014 the work finished just before the page was navigated away from \u2014 is dropped instead of applying into a component that no longer exists." }, { "name": "Run", "kind": "method", "id": "method|Run|0|0|void|||h7fa7970a6de0dd0432fb375a6fdd0984556b406ca72f5dcb18c83b9546faba45", "signature": "void Run()", "summary": "Starts the operation \u2014 on the pool, never on the frame thread. Re-entry is ignored, so it is safe to call every frame, and a run started after Dispose is ignored too: the component that owned it is gone." }] }, @@ -497,6 +499,7 @@ { "name": "CuiSharp.KeymapResult", "displayName": "KeymapResult", "kind": "struct", "summary": "cui_keymap_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||Key Clicked;int Conflicts = default||h1d67c7d8149df93cfc1734144ba23f4ece5bb3fdb772465f21d29b1ba80eb33b", "signature": "KeymapResult(Key Clicked, int Conflicts = default)", "parameters": [{ "name": "Clicked", "type": "Key" }, { "name": "Conflicts", "type": "int", "default": "default" }] }, { "name": "Clicked", "kind": "field", "id": "field|Clicked|0|0|Key|||hf3d1089c0e1e46bc83fd27808a70e56ed41a70657965029f08dbfc901fbc370d", "signature": "public Key Clicked", "summary": "cui_key clicked" }, { "name": "Conflicts", "kind": "field", "id": "field|Conflicts|0|0|int|||h789812c8ba17c03535e8408d067679a4be25b10d6c3816628d8bb1c973ecd39c", "signature": "public int Conflicts", "summary": "int conflicts" }] }, { "name": "CuiSharp.KnobOpts", "displayName": "KnobOpts", "kind": "struct", "summary": "cui_knob_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "the value arc, default the control color" }, { "name": "Bipolar", "kind": "field", "id": "field|Bipolar|0|0|bool|||hfd442dc5ac1edaf4637b59f8431024c601179da8a97e788d68ccdcbe169e294b", "signature": "public bool Bipolar", "summary": "the arc grows from the middle: pan, EQ gain" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "HideValue", "kind": "field", "id": "field|HideValue|0|0|bool|||h20146cccd15f7f41f4700bc1046703defa878698eed0451ccdc8acf0325f3763", "signature": "public bool HideValue", "summary": "_Bool hide_value" }, { "name": "LogScale", "kind": "field", "id": "field|LogScale|0|0|bool|||h2225f0b0b5d35122d9c7403f0c7fbea2bfb761378cbb11349ccd4b908cc12a16", "signature": "public bool LogScale", "summary": "equal turns multiply the value: frequency, time (min \u003E 0)" }, { "name": "Reset", "kind": "field", "id": "field|Reset|0|0|float|||h6f7e0b1685ab6d501be44af24ff4fc26ab960c5abf2371bc447d2d1768038172", "signature": "public float Reset", "summary": "double-click value, default 0 (clamped to the range)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "diameter, default 48" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "0 = continuous (keys move 1% of the range)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "printf format for the value, default \u0022%.0f\u0022" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "under the knob; the id when NULL" }, { "name": "Unit", "kind": "field", "id": "field|Unit|0|0|string?|||h0c302a69bed7c7496c01c252ba72a9e4fdc11703160e8b42558740a0215d1888", "signature": "public string? Unit", "summary": "after the value, e.g. \u0022Hz\u0022 or \u0022dB\u0022" }] }, { "name": "CuiSharp.KvEditorOpts", "displayName": "KvEditorOpts", "kind": "struct", "summary": "cui_kv_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "NoSecrets", "kind": "field", "id": "field|NoSecrets|0|0|bool|||hb812e236dd78060429f982f487c0335c418e28dfc6639a6d019e2b4c3b8de81b", "signature": "public bool NoSecrets", "summary": "no eye button" }, { "name": "NoToggles", "kind": "field", "id": "field|NoToggles|0|0|bool|||h0dea1fee99c678a80060d07f9324720431aac8d7bb4805e64f0ece12dc442a9e", "signature": "public bool NoToggles", "summary": "no checkboxes: every pair is on" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "KeyPlaceholder", "kind": "field", "id": "field|KeyPlaceholder|0|0|string?|||hedf304f45469c5fccb451372ec7a6a06f648bd5b9a999271d5c1dcbeb18609d5", "signature": "public string? KeyPlaceholder", "summary": "default \u0022Key\u0022" }, { "name": "ValuePlaceholder", "kind": "field", "id": "field|ValuePlaceholder|0|0|string?|||hf52548b8628a0f3b479fb60579bb8ca6de0d4d8f6ceaf412af16e60c8be996ca", "signature": "public string? ValuePlaceholder", "summary": "default \u0022Value\u0022" }] }, + { "name": "CuiSharp.LayoutFormatter", "displayName": "LayoutFormatter", "kind": "static class", "summary": "A layout view of a recorded frame: each named node with the rectangle CUI laid it out under its own id where one is known, the observed bounds of what a container holds where any descendant has a verified rect, and the unknowns named as unknowns.", "members": [{ "name": "Header", "kind": "constant", "id": "constant|Header|1|0|string||layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and widgets without a proven own id print [rect:unverified]; union\u2265 is a lower bound of recorded rects, not a content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them private); floating layers (dialogs, popovers, toasts, ...) sit outside their container.|h34d346bf897ae3b2d613378aa8162fdd9c314e2cc1920373ddbf7043eabc9c51", "signature": "public const string Header = \u0022layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and widgets without a proven own id print [rect:unverified]; union\\u2265 is a lower bound of recorded rects, not a content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them private); floating layers (dialogs, popovers, toasts, ...) sit outside their container.\u0022", "summary": "The warning line every layout view carries, so no line below it reads as more than it is.", "value": "layout: rects exist only for ids CUI lays out; unnamed/id-0 containers and widgets without a proven own id print [rect:unverified]; union\u2265 is a lower bound of recorded rects, not a content extent; scrolled/virtualized extents are UNKNOWN (CUI keeps them private); floating layers (dialogs, popovers, toasts, ...) sit outside their container." }, { "name": "Print", "kind": "method", "id": "method|Print|1|0|string|SemanticNode frame||h19748982905939d1c43cb3f045d6f477bed6acf80d27bde18b0cd15ad6041ceb", "signature": "static string Print(SemanticNode frame)", "parameters": [{ "name": "frame", "type": "SemanticNode" }], "summary": "Renders the layout view of one recorded frame tree, header line first." }] }, { "name": "CuiSharp.LayoutScope", "displayName": "LayoutScope", "kind": "ref struct", "summary": "An always-open container. Use using to close it, including on exceptions.", "members": [{ "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()", "summary": "Closes this container. Disposing the same instance again does nothing." }] }, { "name": "CuiSharp.LevelMeterOpts", "displayName": "LevelMeterOpts", "kind": "struct", "summary": "cui_level_meter_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Horizontal", "kind": "field", "id": "field|Horizontal|0|0|bool|||h526d7918635bb7515376b05bb273960bfff3d8076453a269cb0cc74fef6ec108", "signature": "public bool Horizontal", "summary": "_Bool horizontal" }, { "name": "Scale", "kind": "field", "id": "field|Scale|0|0|bool|||h0d8a3f3cb6185546497459a8c952cb3d8b471e12bb580ed4da19337f86b39a06", "signature": "public bool Scale", "summary": "dB labels beside the bars" }, { "name": "Segmented", "kind": "field", "id": "field|Segmented|0|0|bool|||h32669c3e675c6f25d76741286cebfbdc27f4116dc826d2c356869c3f01e33a05", "signature": "public bool Segmented", "summary": "LED segments instead of a solid bar" }, { "name": "Decay", "kind": "field", "id": "field|Decay|0|0|float|||h067240cd90c29d217819d40156fc0debc9d7b6e5290807eea7a28cffb399a6eb", "signature": "public float Decay", "summary": "fall rate, dB per second; default 20" }, { "name": "Hold", "kind": "field", "id": "field|Hold|0|0|float|||hf9cf9b5a4d1a55101a8a988c06df2d2cadf6464a1b411ed219b71cf735f20622", "signature": "public float Hold", "summary": "peak hold, seconds; default 1.5, \u003C 0 none" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|float|||hde0ed5b9413eadd735eb6ae0346647e34ca58923c6d228bcc21459281e52a172", "signature": "public float Length", "summary": "default 160" }, { "name": "MaxDb", "kind": "field", "id": "field|MaxDb|0|0|float|||h05af64f8eaf6361804782ad98715d074c249913dc00324f60ff072dd17a84ea9", "signature": "public float MaxDb", "summary": "default -60 and \u002B6" }, { "name": "MinDb", "kind": "field", "id": "field|MinDb|0|0|float|||hf0f618cb58cf13fd6bb97d775f5351393d15723ccaf0a1a2d3ce7d92fae8a2b5", "signature": "public float MinDb", "summary": "default -60 and \u002B6" }, { "name": "Thickness", "kind": "field", "id": "field|Thickness|0|0|float|||h032ae3f08d1f764102a5ab4e3449cb25f2ae394d97fb8b90dd505ead7b8576f6", "signature": "public float Thickness", "summary": "each channel\u0027s bar, default 6" }] }, { "name": "CuiSharp.ListItemOpts", "displayName": "ListItemOpts", "kind": "struct", "summary": "cui_list_item_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|bool|||ha8f1fe2a399f368a574176637903c3d9775d632126ad3ed2ba7d99d9787055da", "signature": "public bool Selected", "summary": "_Bool selected" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|string?|||h9d0d544d7549508f61434ad5871b2b0572260bc680b2d8dad077b002b5a22c7a", "signature": "public string? Avatar", "summary": "const char * avatar" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Subtitle", "kind": "field", "id": "field|Subtitle|0|0|string?|||h370a50a915562d87bd3c3dd57879ea2e95f02f8dcf9dc1b4e921775dc91ffdac", "signature": "public string? Subtitle", "summary": "const char * subtitle" }, { "name": "Trailing", "kind": "field", "id": "field|Trailing|0|0|string?|||h74345f37cd2a39e019887165055697c10b43ca54d151eaad795ee3df8fc7ab5a", "signature": "public string? Trailing", "summary": "const char * trailing" }] }, @@ -530,6 +533,7 @@ { "name": "CuiSharp.NodeEditorOpts", "displayName": "NodeEditorOpts", "kind": "struct", "summary": "cui_node_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default: fill the width, 440 tall" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default: fill the width, 440 tall" }, { "name": "Minimap", "kind": "field", "id": "field|Minimap|0|0|bool|||h91fd5e33468d3c229fcb0ed2e9fb28bfdc5efafe51ff5aa1bfe64751e4cfd2b1", "signature": "public bool Minimap", "summary": "an overview of the graph in the bottom right corner; click it to move there" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|bool|||h3235658a755bd4564629364c715a172c1b27a0be758c9a47167e63c08938a56d", "signature": "public bool NoGrid", "summary": "_Bool no_grid" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "default 0.25 .. 2" }, { "name": "MinZoom", "kind": "field", "id": "field|MinZoom|0|0|float|||h29a9b1097fc3444e1615953dab0039e9cc2b1daf864d629ecf3057778d2512c1", "signature": "public float MinZoom", "summary": "default 0.25 .. 2" }] }, { "name": "CuiSharp.NodeOpts", "displayName": "NodeOpts", "kind": "struct", "summary": "cui_node_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "width default 184" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "width default 184" }] }, { "name": "CuiSharp.NodeView", "displayName": "NodeView", "kind": "struct", "summary": "cui_node_view. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float X;float Y = default;float Zoom = default||h4f09583e7e954efae5f3260f31684e5139214de10736978ab2039f088f7a47e1", "signature": "NodeView(float X, float Y = default, float Zoom = default)", "parameters": [{ "name": "X", "type": "float" }, { "name": "Y", "type": "float", "default": "default" }, { "name": "Zoom", "type": "float", "default": "default" }] }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "pan in points; zoom 0 means 1" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "pan in points; zoom 0 means 1" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "pan in points; zoom 0 means 1" }] }, + { "name": "CuiSharp.NormalizeMode", "displayName": "NormalizeMode", "kind": "enum", "summary": "How a chart scales each series against its own baseline, so series of very different magnitudes can be compared by shape. A baseline is the first finite nonzero sample of the series; see ChartNormalizer for the exact rules.", "members": [{ "name": "Index100", "kind": "enum value", "id": "enum value|Index100|1|0|||1|h5f7bef48f5c460a2cad08f7d327f678d1e95344d379c9b4bc93f5869bcf174d6", "signature": "Index100 = 1", "summary": "Rebase to 100 at the baseline, like a total-return index: 100 is \u0022unchanged\u0022.", "value": "1" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "summary": "No scaling: the samples are drawn as they are.", "value": "0" }, { "name": "Percent", "kind": "enum value", "id": "enum value|Percent|1|0|||2|h2153b9f4e108f6af3c957d56a5679cd80a26264ad0dd0396b776495ec07566c2", "signature": "Percent = 2", "summary": "Percent change from the baseline: 0 is \u0022unchanged\u0022.", "value": "2" }] }, { "name": "CuiSharp.NowPlayingOpts", "displayName": "NowPlayingOpts", "kind": "struct", "summary": "cui_now_playing_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|bool|||h5a2127a1e548266f50dbac415de28c4f38d4739bc0238184acf147186e6e67f6", "signature": "public bool Compact", "summary": "_Bool compact" }] }, { "name": "CuiSharp.NowPlayingState", "displayName": "NowPlayingState", "kind": "struct", "summary": "cui_now_playing. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Artist = null;ulong Art = default;Color ArtColor = default;float Position = default;float Duration = default;bool Playing = default||hbb9e94dbc0e87767dd3aa06e23d7f01d947304dca3824a060aa52b74fb96da1e", "signature": "NowPlayingState(string? Title, string? Artist = null, ulong Art = default, Color ArtColor = default, float Position = default, float Duration = default, bool Playing = default)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Artist", "type": "string?", "default": "null" }, { "name": "Art", "type": "ulong", "default": "default" }, { "name": "ArtColor", "type": "Color", "default": "default" }, { "name": "Position", "type": "float", "default": "default" }, { "name": "Duration", "type": "float", "default": "default" }, { "name": "Playing", "type": "bool", "default": "default" }] }, { "name": "ArtColor", "kind": "field", "id": "field|ArtColor|0|0|Color|||h244eb7cccbf77df1ddb22633c7fd350f094198b6b2aadf2578281d01374036e8", "signature": "public Color ArtColor", "summary": "cui_color art_color" }, { "name": "Playing", "kind": "field", "id": "field|Playing|0|0|bool|||hdf6871b87f5c865fbbb8cb1ba249b1a8417a1a2fd21b6fe9e7d44948808de1af", "signature": "public bool Playing", "summary": "_Bool playing" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float duration" }, { "name": "Position", "kind": "field", "id": "field|Position|0|0|float|||hd7fd432a49838186bd7a06ec98a4843ede3007d3a1803ab3581dabd884c9c313", "signature": "public float Position", "summary": "float position" }, { "name": "Artist", "kind": "field", "id": "field|Artist|0|0|string?|||h07dabe513fac6496756425c36fdb68907748dada03582ca5fa245ec67ec449d2", "signature": "public string? Artist", "summary": "const char * artist" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }, { "name": "Art", "kind": "field", "id": "field|Art|0|0|ulong|||h19abe1aca1c372b5d71e6ee5c212ee79fe340cde357d6c23bf3af4a305f7caba", "signature": "public ulong Art", "summary": "cui_texture art" }] }, { "name": "CuiSharp.NumberOpts", "displayName": "NumberOpts", "kind": "struct", "summary": "cui_number_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|double|||h44b63c009d1e13f96b6beedec59bbb32a22e099dcdc403d6954e0407657f670a", "signature": "public double Step", "summary": "double step" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int decimals" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "const char * suffix" }] }, @@ -586,8 +590,8 @@ { "name": "CuiSharp.ScrubOpts", "displayName": "ScrubOpts", "kind": "struct", "summary": "cui_scrub_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|float|||h0c90f87a47946c37f88110bf22e34747a17db5c6eac355fefc306b7187723b09", "signature": "public float Step", "summary": "default (max - min) / 100" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "default \u0022%.0f\u0022" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "shown instead of the label" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "e.g. \u0022px\u0022 or \u0022%\u0022" }] }, { "name": "CuiSharp.SegmentedOpts", "displayName": "SegmentedOpts", "kind": "struct", "summary": "cui_segmented_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "FullWidth", "kind": "field", "id": "field|FullWidth|0|0|bool|||hdc8aafcce927648adf0c0145203424f8957fc857f5c4d890241daae15b5eac45", "signature": "public bool FullWidth", "summary": "_Bool full_width" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, { "name": "CuiSharp.SelectOpts", "displayName": "SelectOpts", "kind": "struct", "summary": "cui_select_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Searchable", "kind": "field", "id": "field|Searchable|0|0|bool|||he07abb6a59c4f1b548e1e75a7d0a2b5775f298d1d816b82649be0aadf7f20bc5", "signature": "public bool Searchable", "summary": "combobox: filter options by typing" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "const char * label" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Icons", "kind": "field", "id": "field|Icons|0|0|string[]?|||h94d3abfae1e4e3aa50724c6bacdb1588c24d26764115ffa57679ae941c7f8b22", "signature": "public string[]? Icons", "summary": "const char *const * icons" }] }, - { "name": "CuiSharp.SemanticNode", "displayName": "SemanticNode", "kind": "class", "summary": "One named thing in a frame \u2014 a control, or a container the app gave an id \u2014 and everything drawn inside it.", "members": [{ "name": "Descendants", "kind": "method", "id": "method|Descendants|0|0|IEnumerable\u003CSemanticNode\u003E|||hb2e00cdf2d1e34171d687045000fe4dd6904f246cc4904cbaa8a21fdd3e29b8b", "signature": "IEnumerable\u003CSemanticNode\u003E Descendants()", "summary": "Every node below this one, depth first." }, { "name": "Children", "kind": "property", "id": "property|Children|0|0|IReadOnlyList\u003CSemanticNode\u003E||get;|h5966cf2ffc85aa0cefb339b7a12aecbb96d2e1b1cbdc4d0ae23e0a897ad1bb69", "signature": "IReadOnlyList\u003CSemanticNode\u003E Children { get; }", "summary": "Everything drawn inside it, in drawing order." }, { "name": "Rect", "kind": "property", "id": "property|Rect|0|0|RectF||get;|hf755173a5fe47fca342422117b9258f72be7002a01ae38cb809f072f70e4e9a6", "signature": "RectF Rect { get; }", "summary": "Where it was laid out, in points." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|SemanticNode|string query||h9aa27c93146559c3380a35c8c7bb7292a46ce84553a02211995082057dc09c66", "signature": "SemanticNode Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a node below this one, or explains what is there instead." }, { "name": "Parent", "kind": "property", "id": "property|Parent|0|0|SemanticNode?||get;|h0a677e23dee947553b8ffbefec3d898ffd27e077224bc55a9e2bd8c65cba3b33", "signature": "SemanticNode? Parent { get; }", "summary": "The container it sits in, or null for a node at the top of the frame." }, { "name": "IsContainer", "kind": "property", "id": "property|IsContainer|0|0|bool||get;|h58e6d50111e3867dc21d8ff3f8e340fcdce36de432ab79c3dd814dea5f335c26", "signature": "bool IsContainer { get; }", "summary": "True when the app drew something inside it, so it can be a parent." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out SemanticNode node||h10f68a1bf1fea034c9872526bdc9b2bebc5d2ef0e770be328c4ca3ce8928dbb7", "signature": "bool TryFind(string query, out SemanticNode node)", "parameters": [{ "name": "query", "type": "string" }, { "name": "node", "type": "out SemanticNode" }], "summary": "Finds this node or anything below it by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "Depth", "kind": "property", "id": "property|Depth|0|0|int||get;|h005393779795fcee5a87d55774bb521a2fdf30d65e68e7ea958f24c21fa71717", "signature": "int Depth { get; }", "summary": "How many containers were open around it." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|string||get;|h388961e1f6a3037bd4a4c8333a144e60a99cdcd3bd10798d477a76bdae288a1d", "signature": "string Kind { get; }", "summary": "The wrapper that drew it: Button, Input, Card." }, { "name": "Path", "kind": "property", "id": "property|Path|0|0|string||get;|hb2d3527ced8c78e3ca97b5a77f9028096a1989cb0f7317d6116bac0bf5229f5e", "signature": "string Path { get; }", "summary": "The nesting that leads here, e.g. Card \u0022editor\u0022 \u003E Button \u0022Save\u0022: the shortest description of where a control is." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The tree as text, one line per node: what a test prints when it fails, and what an agent reads to find out which controls a frame drew." }, { "name": "Text", "kind": "property", "id": "property|Text|0|0|string||get;|h221097532e4154611cbbc42c65b80d74f8055bd282efb709184598cd9d2c27bb", "signature": "string Text { get; }", "summary": "The label, or the id when the widget or container has one." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Id", "kind": "property", "id": "property|Id|0|0|uint||get;|hc3025f4e0981c7ad622608a2293f185737bdcec4eb82f21efce88bc6011cdaed", "signature": "uint Id { get; }", "summary": "The id CUI laid it out under \u2014 for an item of a tab strip or a segmented control, the id the widget derived for that item. Unrelated to the label, so it survives translation." }] }, - { "name": "CuiSharp.SemanticWidget", "displayName": "SemanticWidget", "kind": "struct", "summary": "One thing a frame recorded: a control, or a container the app gave an id, with the text that names it and where it was laid out.", "members": [{ "name": "Center", "kind": "property", "id": "property|Center|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h0a928e20a77e4a851575877bd247d3e0bfd675854061d20c99152b0ee772b6a0", "signature": "ValueTuple\u003Cfloat, float\u003E Center { get; }", "summary": "The point at the middle: where a simulated click goes." }, { "name": "Contains", "kind": "method", "id": "method|Contains|0|0|bool|float x;float y||h5e2c35791a73fb0fecb5d484bb6de7e408b5219215458ddd10c4b7637a782e0b", "signature": "bool Contains(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "True when the point is inside it." }, { "name": "Rect", "kind": "field", "id": "field|Rect|0|0|RectF|||h36c84f4bf259c7df4e00bfe92693bbcd043eb64d7e623295afc1e04bc98f27cf", "signature": "public readonly RectF Rect", "summary": "Where it was laid out, in points, in the frame that produced it." }, { "name": "IsContainer", "kind": "field", "id": "field|IsContainer|0|0|bool|||hc7454505ba97259cb1cc992d89ed1c2a725cf4d19a0bb95b3707be1f64bc21b6", "signature": "public readonly bool IsContainer", "summary": "True for a container that recorded itself because the app named it." }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||ha8878fee53eb9cf2414e3afde3184f31a9eb3bf9f98176af4487368b5b454317", "signature": "public readonly int Depth", "summary": "How many containers were open around it: 0 for a widget at the top of the frame, 1 for one inside a card, and so on." }, { "name": "Kind", "kind": "field", "id": "field|Kind|0|0|string|||h4c541c4957c89762e7d2d2e3e33b14a44c2b1619f09f22b3a8d6e0a8c941f23c", "signature": "public readonly string Kind", "summary": "The wrapper\u0027s name: Button, Input, Card." }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|string|||h68b7cc166e7738ce60e67f228271e2cb816cb8f3d6800b8f76b1b01d3a1fbf83", "signature": "public readonly string Text", "summary": "The widget\u0027s id, or its label when it has no id." }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|uint|||h9c07ed1bc23d891c34bd2cf77a987ddd1ee61647bb18261e3ca19e1b6b2d6b48", "signature": "public readonly uint Id", "summary": "The id CUI laid this widget out under. Stable while the widget exists, and unrelated to the text, so it is what a test can hold on to when the label is translated." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()", "summary": "The kind and the text, e.g. Button \u0022Save\u0022." }] }, + { "name": "CuiSharp.SemanticNode", "displayName": "SemanticNode", "kind": "class", "summary": "One named thing in a frame \u2014 a control, or a container the app gave an id \u2014 and everything drawn inside it.", "members": [{ "name": "Descendants", "kind": "method", "id": "method|Descendants|0|0|IEnumerable\u003CSemanticNode\u003E|||hb2e00cdf2d1e34171d687045000fe4dd6904f246cc4904cbaa8a21fdd3e29b8b", "signature": "IEnumerable\u003CSemanticNode\u003E Descendants()", "summary": "Every node below this one, depth first." }, { "name": "Children", "kind": "property", "id": "property|Children|0|0|IReadOnlyList\u003CSemanticNode\u003E||get;|h5966cf2ffc85aa0cefb339b7a12aecbb96d2e1b1cbdc4d0ae23e0a897ad1bb69", "signature": "IReadOnlyList\u003CSemanticNode\u003E Children { get; }", "summary": "Everything drawn inside it, in drawing order." }, { "name": "Rect", "kind": "property", "id": "property|Rect|0|0|RectF||get;|hf755173a5fe47fca342422117b9258f72be7002a01ae38cb809f072f70e4e9a6", "signature": "RectF Rect { get; }", "summary": "Where it was laid out, in points." }, { "name": "Find", "kind": "method", "id": "method|Find|0|0|SemanticNode|string query||h9aa27c93146559c3380a35c8c7bb7292a46ce84553a02211995082057dc09c66", "signature": "SemanticNode Find(string query)", "parameters": [{ "name": "query", "type": "string" }], "summary": "Finds a node below this one, or explains what is there instead." }, { "name": "Parent", "kind": "property", "id": "property|Parent|0|0|SemanticNode?||get;|h0a677e23dee947553b8ffbefec3d898ffd27e077224bc55a9e2bd8c65cba3b33", "signature": "SemanticNode? Parent { get; }", "summary": "The container it sits in, or null for a node at the top of the frame." }, { "name": "Detached", "kind": "property", "id": "property|Detached|0|0|bool||get;|hc64c578af9d7646df189fa7a1bdb0a3de267a533558de3b50292b286e8a16593", "signature": "bool Detached { get; }", "summary": "True when CUI draws this node on a floating layer of its own \u2014 a dialog, popover, menu, tooltip, toast or tour. The tree keeps it where the app drew it, but its geometry belongs to its own layer and says nothing about the bounds of its nesting ancestors." }, { "name": "HasOwnRect", "kind": "property", "id": "property|HasOwnRect|0|0|bool||get;|h2147106daf2920bdfba7a67efa15434b0bbc83cf365a412e6711199944e16f5e", "signature": "bool HasOwnRect { get; }", "summary": "True when the recorded id is one CUI laid this very widget out under, so its rect is its own. False means the id may belong to whatever was drawn before it: the rect is a hint, not a fact. This is geometry provenance, unrelated to how queries rank the node." }, { "name": "IsContainer", "kind": "property", "id": "property|IsContainer|0|0|bool||get;|h58e6d50111e3867dc21d8ff3f8e340fcdce36de432ab79c3dd814dea5f335c26", "signature": "bool IsContainer { get; }", "summary": "True when the app drew something inside it, so it can be a parent." }, { "name": "TryFind", "kind": "method", "id": "method|TryFind|0|0|bool|string query;out SemanticNode node||h10f68a1bf1fea034c9872526bdc9b2bebc5d2ef0e770be328c4ca3ce8928dbb7", "signature": "bool TryFind(string query, out SemanticNode node)", "parameters": [{ "name": "query", "type": "string" }, { "name": "node", "type": "out SemanticNode" }], "summary": "Finds this node or anything below it by a query: a label (Save), a kind and a label (Button \u0022Save\u0022), or a path (Card \u0022editor\u0022 \u003E Button \u0022Save\u0022)." }, { "name": "Depth", "kind": "property", "id": "property|Depth|0|0|int||get;|h005393779795fcee5a87d55774bb521a2fdf30d65e68e7ea958f24c21fa71717", "signature": "int Depth { get; }", "summary": "How many containers were open around it." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|string||get;|h388961e1f6a3037bd4a4c8333a144e60a99cdcd3bd10798d477a76bdae288a1d", "signature": "string Kind { get; }", "summary": "The wrapper that drew it: Button, Input, Card." }, { "name": "Path", "kind": "property", "id": "property|Path|0|0|string||get;|hb2d3527ced8c78e3ca97b5a77f9028096a1989cb0f7317d6116bac0bf5229f5e", "signature": "string Path { get; }", "summary": "The nesting that leads here, e.g. Card \u0022editor\u0022 \u003E Button \u0022Save\u0022: the shortest description of where a control is." }, { "name": "Print", "kind": "method", "id": "method|Print|0|0|string|bool rects = default||h06252dafaeb8005776cf294d00cc449cae2255f6fc351ae1f5be1e7d769c801e", "signature": "string Print(bool rects = default)", "parameters": [{ "name": "rects", "type": "bool", "default": "default" }], "summary": "The tree as text, one line per node: what a test prints when it fails, and what an agent reads to find out which controls a frame drew." }, { "name": "Text", "kind": "property", "id": "property|Text|0|0|string||get;|h221097532e4154611cbbc42c65b80d74f8055bd282efb709184598cd9d2c27bb", "signature": "string Text { get; }", "summary": "The label, or the id when the widget or container has one." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Id", "kind": "property", "id": "property|Id|0|0|uint||get;|hc3025f4e0981c7ad622608a2293f185737bdcec4eb82f21efce88bc6011cdaed", "signature": "uint Id { get; }", "summary": "The id CUI laid it out under \u2014 for an item of a tab strip or a segmented control, the id the widget derived for that item. Unrelated to the label, so it survives translation." }] }, + { "name": "CuiSharp.SemanticWidget", "displayName": "SemanticWidget", "kind": "struct", "summary": "One thing a frame recorded: a control, or a container the app gave an id, with the text that names it and where it was laid out.", "members": [{ "name": "Center", "kind": "property", "id": "property|Center|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h0a928e20a77e4a851575877bd247d3e0bfd675854061d20c99152b0ee772b6a0", "signature": "ValueTuple\u003Cfloat, float\u003E Center { get; }", "summary": "The point at the middle: where a simulated click goes." }, { "name": "Contains", "kind": "method", "id": "method|Contains|0|0|bool|float x;float y||h5e2c35791a73fb0fecb5d484bb6de7e408b5219215458ddd10c4b7637a782e0b", "signature": "bool Contains(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "True when the point is inside it." }, { "name": "Rect", "kind": "field", "id": "field|Rect|0|0|RectF|||h36c84f4bf259c7df4e00bfe92693bbcd043eb64d7e623295afc1e04bc98f27cf", "signature": "public readonly RectF Rect", "summary": "Where it was laid out, in points, in the frame that produced it." }, { "name": "Detached", "kind": "field", "id": "field|Detached|0|0|bool|||he6905cb36f4c3c3809678b25e7ae9d5832d501865c58ed49acedcf588989b1be", "signature": "public readonly bool Detached", "summary": "True when CUI draws this widget on a floating layer of its own \u2014 a dialog, popover, menu, tooltip, toast or tour. The recorded nesting still shows where the app drew it, but its geometry belongs to its own layer, not to the containers it is nested under." }, { "name": "HasOwnRect", "kind": "field", "id": "field|HasOwnRect|0|0|bool|||hbe275cc80db9d6625846a7ecbd505321e02f175f33417b35536afdb14ea6a8c1", "signature": "public readonly bool HasOwnRect", "summary": "True when the recorded id is one CUI laid this very widget out under \u2014 a container id its begin call returned, an id derived the way CUI derives it, or a kind proven to publish its own id as the last id. False means the id may be someone else\u0027s, so the rect is a hint about where to look, not a fact about this widget." }, { "name": "IsContainer", "kind": "field", "id": "field|IsContainer|0|0|bool|||hc7454505ba97259cb1cc992d89ed1c2a725cf4d19a0bb95b3707be1f64bc21b6", "signature": "public readonly bool IsContainer", "summary": "True for a container that recorded itself because the app named it." }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||ha8878fee53eb9cf2414e3afde3184f31a9eb3bf9f98176af4487368b5b454317", "signature": "public readonly int Depth", "summary": "How many containers were open around it: 0 for a widget at the top of the frame, 1 for one inside a card, and so on." }, { "name": "Kind", "kind": "field", "id": "field|Kind|0|0|string|||h4c541c4957c89762e7d2d2e3e33b14a44c2b1619f09f22b3a8d6e0a8c941f23c", "signature": "public readonly string Kind", "summary": "The wrapper\u0027s name: Button, Input, Card." }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|string|||h68b7cc166e7738ce60e67f228271e2cb816cb8f3d6800b8f76b1b01d3a1fbf83", "signature": "public readonly string Text", "summary": "The widget\u0027s id, or its label when it has no id." }, { "name": "Id", "kind": "field", "id": "field|Id|0|0|uint|||h9c07ed1bc23d891c34bd2cf77a987ddd1ee61647bb18261e3ca19e1b6b2d6b48", "signature": "public readonly uint Id", "summary": "The id CUI laid this widget out under. Stable while the widget exists, and unrelated to the text, so it is what a test can hold on to when the label is translated." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()", "summary": "The kind and the text, e.g. Button \u0022Save\u0022." }] }, { "name": "CuiSharp.Series", "displayName": "Series", "kind": "struct", "summary": "cui_series. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;float[]? Values = null;int Count = default;Color Color = default||h9a61f1f33b52068aa9ce296dda6a5add41bce025de6a0a5bd4185bd6709f3a55", "signature": "Series(string? Name, float[]? Values = null, int Count = default, Color Color = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Values", "type": "float[]?", "default": "null" }, { "name": "Count", "type": "int", "default": "default" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default: series palette" }, { "name": "Values", "kind": "field", "id": "field|Values|0|0|float[]?|||h2297887dc39e194c11ed11a1bc7d673508c8c381e7f2c43c6669bc8a49edec45", "signature": "public float[]? Values", "summary": "const float * values" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int count" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, { "name": "CuiSharp.SeriesDecimator", "displayName": "SeriesDecimator", "kind": "static class", "summary": "Reduces a long series to something a chart can draw in real time. A chart is a few hundred pixels wide, so points beyond roughly two per pixel cannot be seen \u2014 but they still cost geometry. This collapses each bucket of consecutive samples into its minimum and its maximum, in the order they occurred, which keeps spikes and gaps that plain averaging would erase. That is what financial and monitoring charts do. Copy-based and allocation-free: pass a destination span and reuse it every frame. See RequiredCapacity.", "members": [{ "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|float[]|ReadOnlySpan\u003Cfloat\u003E source;int buckets||h57be39ba7b62d04901227ad335a715cdc65b0e15d7aca2281d6671d35b6aabab", "signature": "static float[] Decimate(ReadOnlySpan\u003Cfloat\u003E source, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Convenience overload for callers that would rather not size a buffer. Allocates; prefer the span overload inside a frame." }, { "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|int|ReadOnlySpan\u003Cfloat\u003E source;Span\u003Cfloat\u003E destination;int buckets||h33b46cde5ca131f2feaa537df35b0d4942a589525ab6a83a0dd11cc2aafe289d", "signature": "static int Decimate(ReadOnlySpan\u003Cfloat\u003E source, Span\u003Cfloat\u003E destination, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "destination", "type": "Span\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Decimates source into destination. Returns the number of points written, which is 0, source.Length when it already fits, or an even number up to buckets * 2." }, { "name": "RequiredCapacity", "kind": "method", "id": "method|RequiredCapacity|1|0|int|int buckets||h0ba19241dfd2882418a4df437ca414de20707e5ad3098dbd9ac046454f14832e", "signature": "static int RequiredCapacity(int buckets)", "parameters": [{ "name": "buckets", "type": "int" }], "summary": "Points written at most for a given bucket count." }] }, { "name": "CuiSharp.Severity", "displayName": "Severity", "kind": "enum", "summary": "cui_severity", "members": [{ "name": "Error", "kind": "enum value", "id": "enum value|Error|1|0|||0|h1be74ca9b09430ce431ffab022c61f7d490899907fffc473c0d4263ea397cf72", "signature": "Error = 0", "value": "0" }, { "name": "Hint", "kind": "enum value", "id": "enum value|Hint|1|0|||3|h8d01460ad77a1547aaf15f014ccfbafe2609035a1d0f145ad03c97bda2143974", "signature": "Hint = 3", "value": "3" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||2|h9d07ea1e38d6abe142845630dc2f28ea265d47cf4ff8de68a0fe4011916186d3", "signature": "Info = 2", "value": "2" }, { "name": "Warning", "kind": "enum value", "id": "enum value|Warning|1|0|||1|h3699e894f07e195e49680b995c40992a452b1434348b9c7a1704f55611bae132", "signature": "Warning = 1", "value": "1" }] }, @@ -634,7 +638,7 @@ { "name": "CuiSharp.TextFxOpts", "displayName": "TextFxOpts", "kind": "struct", "summary": "cui_text_fx_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "cui_font font" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Caret", "kind": "field", "id": "field|Caret|0|0|bool|||h6a4b096973d26880743eac4163bd442ca2c3b0a536c27cbbf75318078e8ed5d7", "signature": "public bool Caret", "summary": "typewriter: a blinking caret while typing" }, { "name": "Nowrap", "kind": "field", "id": "field|Nowrap|0|0|bool|||h3e6f1021d5f3b77726fa0a88094dafcffdc12f5cc518b270882f4a24c205131a", "signature": "public bool Nowrap", "summary": "_Bool nowrap" }, { "name": "Delay", "kind": "field", "id": "field|Delay|0|0|float|||h3a45177d911de60d3c1058d19f965797cda6f4da3e3656b82d0a5ea6832de388", "signature": "public float Delay", "summary": "seconds before it starts" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "shimmer: sweeps per second; typewriter: characters per second" }] }, { "name": "CuiSharp.TextMark", "displayName": "TextMark", "kind": "struct", "summary": "cui_text_mark. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Start;int End = default;int Color = default||hafe09d30eba5083a70c3264a76bcb76d925efa104b16dc2be2556bb8c14d4ccc", "signature": "TextMark(int Start, int End = default, int Color = default)", "parameters": [{ "name": "Start", "type": "int" }, { "name": "End", "type": "int", "default": "default" }, { "name": "Color", "type": "int", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|int|||hc8bb6c96b99475fa7944168851a42353a5485b00cf73bf71a02c209b6e3d49c6", "signature": "public int Color", "summary": "int color" }, { "name": "End", "kind": "field", "id": "field|End|0|0|int|||h101ad3d5ebda13e9c347a22363390231322c8fbb64d191c3a092d362955b7964", "signature": "public int End", "summary": "int end" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|int|||ha1b0c3e4699fce964620bef0f781444da21c0b72084141f26a9e30e25bf70e5f", "signature": "public int Start", "summary": "int start" }] }, { "name": "CuiSharp.TextMetrics", "displayName": "TextMetrics", "kind": "struct", "summary": "The measurements CUI reports for one run of text.", "members": [{ "name": "LinesThatFit", "kind": "method", "id": "method|LinesThatFit|0|0|int|float height||h198746ff21467ce014888bd94a232d7d0b6a746391c0cf13a7598dee22c3e2fb", "signature": "int LinesThatFit(float height)", "parameters": [{ "name": "height", "type": "float" }], "summary": "How many lines of this text fit in height." }, { "name": "Ascent", "kind": "field", "id": "field|Ascent|0|0|float|||hd735eb2af9d20d8ce6b7d75fcb79636fae516b8878acaf26403550200b287571", "signature": "public readonly float Ascent" }, { "name": "Descent", "kind": "field", "id": "field|Descent|0|0|float|||h281e63bf4b6d08469804e17678606438e1af6f6b9a2d6934d788590b5da98d31", "signature": "public readonly float Descent" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||hc9362a720c3b97791ec30d3850d9813d8f4e227c5188afa6d0806110c66249e9", "signature": "public readonly float Height" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||he1885c26bf82b2f6f134df36f48f39e22d95c987bf85a99e854e0914187f8e9d", "signature": "public readonly float LineHeight" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||hcdb1ac85607320d5b5d642eab49e7434d35785b47abc3babb99fc1e5fcb1713c", "signature": "public readonly float Width" }] }, - { "name": "CuiSharp.TextOpts", "displayName": "TextOpts", "kind": "struct", "summary": "cui_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default foreground" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited; AUTO examines this text" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "default CUI_FONT_BODY (0)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "NoWrap", "kind": "field", "id": "field|NoWrap|0|0|bool|||hedd425991122684c109be1619269b4c271ddd90b9731a6baf6c7ac0e19b21ab6", "signature": "public bool NoWrap", "summary": "single line, ellipsis when it does not fit" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|bool|||h1a73ba6030aa83f21295dd2f784fe3b67bc0f00f1e6159545865f03b1c0cb4a4", "signature": "public bool Selectable", "summary": "reserved" }, { "name": "Tabular", "kind": "field", "id": "field|Tabular|0|0|bool|||h8a172f3b677c83acfc294103bfd5e56cf751642ac5f8f4f45ea2219e3eaff000", "signature": "public bool Tabular", "summary": "tabular numbers" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "multiplier, default 1.45" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "default theme text_body" }] }, + { "name": "CuiSharp.TextOpts", "displayName": "TextOpts", "kind": "struct", "summary": "cui_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float size = default;Color color = default||h00998a1e0fe432a66682bf0f54ca0243d94687307cb0c24b1559ac8c05b36d0a", "signature": "TextOpts(float size = default, Color color = default)", "parameters": [{ "name": "size", "type": "float", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "Text options with the two fields a call site reaches for most: ui.Text(\u0022Live\u0022, new(size: 12, color: Color.TextSecondary)). Every other field keeps its native default, exactly as the equivalent object initializer." }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default foreground" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited; AUTO examines this text" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "default CUI_FONT_BODY (0)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "NoWrap", "kind": "field", "id": "field|NoWrap|0|0|bool|||hedd425991122684c109be1619269b4c271ddd90b9731a6baf6c7ac0e19b21ab6", "signature": "public bool NoWrap", "summary": "single line, ellipsis when it does not fit" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|bool|||h1a73ba6030aa83f21295dd2f784fe3b67bc0f00f1e6159545865f03b1c0cb4a4", "signature": "public bool Selectable", "summary": "reserved" }, { "name": "Tabular", "kind": "field", "id": "field|Tabular|0|0|bool|||h8a172f3b677c83acfc294103bfd5e56cf751642ac5f8f4f45ea2219e3eaff000", "signature": "public bool Tabular", "summary": "tabular numbers" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "multiplier, default 1.45" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "default theme text_body" }] }, { "name": "CuiSharp.TextureFormat", "displayName": "TextureFormat", "kind": "enum", "summary": "cui_texture_format", "members": [{ "name": "R8", "kind": "enum value", "id": "enum value|R8|1|0|||1|hdd8be0dbf2a049b003e11447885b2e0d5ae1de58fd464162f4620db2ed01680b", "signature": "R8 = 1", "value": "1" }, { "name": "Rgba8", "kind": "enum value", "id": "enum value|Rgba8|1|0|||4|h8352b01d9e8e33271e076f18d36014030f5f1b09a0f58594d44660e4b691215c", "signature": "Rgba8 = 4", "value": "4" }] }, { "name": "CuiSharp.Theme", "displayName": "Theme", "kind": "enum", "summary": "cui_theme_mode", "members": [{ "name": "Dark", "kind": "enum value", "id": "enum value|Dark|1|0|||1|h1bb1fceb859fee3f48eb51b0b9088420db8d84887553aee0a6b4939b01589d5c", "signature": "Dark = 1", "value": "1" }, { "name": "Light", "kind": "enum value", "id": "enum value|Light|1|0|||0|h9ea9168c351f3ca9162554dd3570ab1f3235da7717acdf1017c007eda5943a2d", "signature": "Light = 0", "value": "0" }] }, { "name": "CuiSharp.TickerItem", "displayName": "TickerItem", "kind": "struct", "summary": "cui_ticker_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Label;string? Value = null;float Delta = default;bool LowerIsBetter = default||h792dce0cb71de14ba3388589db1ef9d58ad44289c7edd5f3771ee88210200a37", "signature": "TickerItem(string? Label, string? Value = null, float Delta = default, bool LowerIsBetter = default)", "parameters": [{ "name": "Label", "type": "string?" }, { "name": "Value", "type": "string?", "default": "null" }, { "name": "Delta", "type": "float", "default": "default" }, { "name": "LowerIsBetter", "type": "bool", "default": "default" }] }, { "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|bool|||hdbb63017a214eb7f7b2818c5485cd80ae1d87f9c8fd20fc1e56e32d63eec76ee", "signature": "public bool LowerIsBetter", "summary": "a fall is good: shown green" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "a fall is good: shown green" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "a fall is good: shown green" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|string?|||h5ce95573760fbed490482794a8054e38848c0b6a2d40e7e67f6af14eb4564732", "signature": "public string? Value", "summary": "a fall is good: shown green" }] }, @@ -672,7 +676,7 @@ { "name": "CuiSharp.TreeTableOpts", "displayName": "TreeTableOpts", "kind": "struct", "summary": "cui_tree_table_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Guides", "kind": "field", "id": "field|Guides|0|0|bool|||h7e9ab088cd84e6855062433d2087613e5fb8460e5ed62e343e4c52830488ac6b", "signature": "public bool Guides", "summary": "quiet vertical lines for each indentation level" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 32" }, { "name": "Root", "kind": "field", "id": "field|Root|0|0|int|||h6951cf8e44d999438aa751b095b478c002e3b8defd9d6fa77bc90f1c5a707dfb", "signature": "public int Root", "summary": "the first top level node, default 0" }] }, { "name": "CuiSharp.TreeTableRow", "displayName": "TreeTableRow", "kind": "delegate", "summary": "Draws one tree row: the caller writes the cells, the widget the indentation and chevron.", "members": [{ "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|Ui ui;int node;int depth;AsyncCallback callback;object object||hb8e87a7a2022e77c4a6ee5001cb539806ecfb6ef5552cdea8804276f71f2232c", "signature": "IAsyncResult BeginInvoke(Ui ui, int node, int depth, AsyncCallback callback, object @object)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||he6641ea5e617ffa8974579447d4c8370257dc98cf899f5b6a348234630ca3eeb", "signature": "TreeTableRow(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|void|IAsyncResult result||h477a5257f2f4c2172e54e854d9bc2f5c7bb790dade430a493c5a1c7d25248214", "signature": "void EndInvoke(IAsyncResult result)", "parameters": [{ "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|void|Ui ui;int node;int depth||h9a371e5ae54502a8006d96dcddef3da1e0c9c674283682bf899a96595e9eecde", "signature": "void Invoke(Ui ui, int node, int depth)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }] }] }, { "name": "CuiSharp.TreemapOpts", "displayName": "TreemapOpts", "kind": "struct", "summary": "cui_treemap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, - { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "summary": "A stack-only drawing context. Do not retain it outside the current frame.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "The accent in use, and the way to change it. See Theme." }, { "name": "ApiExplorer", "kind": "extension", "id": "extension|ApiExplorer|0|0|ApiExplorerResult|UiText id;ReadOnlySpan\u003CApiEndpoint\u003E endpoints;ref int selected;ApiExplorerOpts o = default||h8e1274e09ed373172bec2fe1ee1969a7f9b2e594fbeed0ea8abed98302f3ed84", "signature": "ApiExplorerResult ApiExplorer(UiText id, ReadOnlySpan\u003CApiEndpoint\u003E endpoints, ref int selected, ApiExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "endpoints", "type": "ReadOnlySpan\u003CApiEndpoint\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ApiExplorerOpts", "default": "default" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "extension", "id": "extension|Blame|0|0|BlameResult|UiText id;ReadOnlySpan\u003Cstring\u003E lines;ReadOnlySpan\u003Cint\u003E lineCommit;ReadOnlySpan\u003CBlameCommit\u003E commits;BlameOpts o = default||hdf716d42271c45696039bb07abacc01b9b0b2a935ee05dc1842213c276edf5eb", "signature": "BlameResult Blame(UiText id, ReadOnlySpan\u003Cstring\u003E lines, ReadOnlySpan\u003Cint\u003E lineCommit, ReadOnlySpan\u003CBlameCommit\u003E commits, BlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "lines", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "lineCommit", "type": "ReadOnlySpan\u003Cint\u003E" }, { "name": "commits", "type": "ReadOnlySpan\u003CBlameCommit\u003E" }, { "name": "o", "type": "BlameOpts", "default": "default" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|0|0|CanvasResult|UiText id;Size width;Size height;PaintFn paint||hf2c318f0b609f7226e807d7cf7e4edada63dc45f85bb57025ad7567a006824a0", "signature": "CanvasResult Canvas(UiText id, Size width, Size height, PaintFn paint)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "Size" }, { "name": "paint", "type": "PaintFn" }], "summary": "Reserves a box of the given size and lets you paint it." }, { "name": "Clip", "kind": "method", "id": "method|Clip|0|0|ClipScope|RectF r||h81bb7c5dd19720d5aa2ee17f5cb20e0238b08db45d6d0cb5700d16ce531ec5f2", "signature": "ClipScope Clip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle, closing the clip on dispose." }, { "name": "CodeEditor", "kind": "extension", "id": "extension|CodeEditor|0|0|CodeEditorResult|UiText id;ref string buf;int cap;CodeEditorOpts o = default||h3f99c4340c4ea2a0ae4ecc840716120045f85d30ea53f0aebe7ab1be2c09aa9a", "signature": "CodeEditorResult CodeEditor(UiText id, ref string buf, int cap, CodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "CodeEditorOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|0|0|Color|Color color||h980f9c13c6409b9b666e72b6641e22a816c4a7d68a80eb109a44bc201bceceb0", "signature": "Color ColorOf(Color color)", "parameters": [{ "name": "color", "type": "Color" }], "summary": "Resolves a semantic token to its channels; other colors come back unchanged." }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|0|0|Color|Token token||h0916cfc8affaa4db1788c2edd8ac85f518f146b3b691ef4d7181b7ad8ccac2fe", "signature": "Color TokenColor(Token token)", "parameters": [{ "name": "token", "type": "Token" }], "summary": "The channels a theme token resolves to this frame." }, { "name": "Comment", "kind": "extension", "id": "extension|Comment|0|0|CommentEvents|UiText id;UiText author;UiText text;ref int likes;ref bool liked;CommentOpts o = default||hd58eadbf1b4e2807aa889ed3f4c70606227f61711c62110ec27aebc46c70512c", "signature": "CommentEvents Comment(UiText id, UiText author, UiText text, ref int likes, ref bool liked, CommentOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "author", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "likes", "type": "ref int" }, { "name": "liked", "type": "ref bool" }, { "name": "o", "type": "CommentOpts", "default": "default" }], "summary": "cui_comment_ex" }, { "name": "CommitGraph", "kind": "extension", "id": "extension|CommitGraph|0|0|CommitGraphResult|UiText id;ReadOnlySpan\u003CCommit\u003E commits;ref int selected;CommitGraphOpts o = default||h8d094156c694b6c409f8abe92f01e016c9b138a44ea76b0770f70f4fd34781c7", "signature": "CommitGraphResult CommitGraph(UiText id, ReadOnlySpan\u003CCommit\u003E commits, ref int selected, CommitGraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "commits", "type": "ReadOnlySpan\u003CCommit\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CommitGraphOpts", "default": "default" }], "summary": "cui_commit_graph_ex" }, { "name": "ChatComposer", "kind": "extension", "id": "extension|ChatComposer|0|0|ComposerEvents|UiText id;ref string buf;int cap;ref int removed;ref int model;ComposerOpts o = default||ha61bd40b4efb8355a255edc7d36d348178993536309ab1ee4c6c9a381fd22431", "signature": "ComposerEvents ChatComposer(UiText id, ref string buf, int cap, ref int removed, ref int model, ComposerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "removed", "type": "ref int" }, { "name": "model", "type": "ref int" }, { "name": "o", "type": "ComposerOpts", "default": "default" }], "summary": "cui_chat_composer_ex" }, { "name": "Coverage", "kind": "extension", "id": "extension|Coverage|0|0|CoverageResult|UiText id;ReadOnlySpan\u003CCoverageFile\u003E files;CoverageOpts o = default||h71a24310abd0377c27ded9130e91e48dc3e91a798d1a79f3563a30b446fe6a95", "signature": "CoverageResult Coverage(UiText id, ReadOnlySpan\u003CCoverageFile\u003E files, CoverageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "files", "type": "ReadOnlySpan\u003CCoverageFile\u003E" }, { "name": "o", "type": "CoverageOpts", "default": "default" }], "summary": "cui_coverage_ex" }, { "name": "Cursor", "kind": "property", "id": "property|Cursor|0|0|Cursor||get;|hc22a16db67c85c2843d2f88cc8ab464d28c155381bf1d1998e9fc4743eb42043", "signature": "Cursor Cursor { get; }", "summary": "The cursor the UI asked for last frame, for a backend that draws its own." }, { "name": "CurveEditor", "kind": "extension", "id": "extension|CurveEditor|0|0|CurveResult|UiText id;Span\u003CCurveKey\u003E keys;ref int count;int capacity;ref int selected;CurveOpts o = default||h0aa646bcaa2a7a88d9f7fb5646774b70a481e877c7087d2169536d01d2eb89dc", "signature": "CurveResult CurveEditor(UiText id, Span\u003CCurveKey\u003E keys, ref int count, int capacity, ref int selected, CurveOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "keys", "type": "Span\u003CCurveKey\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CurveOpts", "default": "default" }], "summary": "cui_curve_editor_ex" }, { "name": "DiffView", "kind": "extension", "id": "extension|DiffView|0|0|DiffResult|UiText id;UiText oldText;UiText newText;ref int current;DiffOpts o = default||h1928b65f5fa6dc715c0e20351e64a90a55ca9b8fd792c4a9a6e3df7545ba072a", "signature": "DiffResult DiffView(UiText id, UiText oldText, UiText newText, ref int current, DiffOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "oldText", "type": "UiText" }, { "name": "newText", "type": "UiText" }, { "name": "current", "type": "ref int" }, { "name": "o", "type": "DiffOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled||h3a515a3de1d8d0205d97aef4118bf5ab6c5af12e051d859d3b8cabae81fb9db1", "signature": "DisabledScope Disabled(bool disabled)", "parameters": [{ "name": "disabled", "type": "bool" }], "summary": "Opens a disabled gate that using closes." }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled;DrawFn body||hcc29e71513d0c4970a98faee97bed37a754ecae1da31ed37b95a7e3588c336d9", "signature": "DisabledScope Disabled(bool disabled, DrawFn body)", "parameters": [{ "name": "disabled", "type": "bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws body with every control inside it disabled: it still lays out and paints, but clicks, keys and hover do nothing." }, { "name": "DocTabs", "kind": "extension", "id": "extension|DocTabs|0|0|DocTabsResult|UiText id;ReadOnlySpan\u003CDocTab\u003E tabs;ref int selected;DocTabsOpts o = default||hdb202a4c9e42fa362479fb5e674bee39fa9949e204316f94f4197f0a54fe4c83", "signature": "DocTabsResult DocTabs(UiText id, ReadOnlySpan\u003CDocTab\u003E tabs, ref int selected, DocTabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tabs", "type": "ReadOnlySpan\u003CDocTab\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "DocTabsOpts", "default": "default" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "extension", "id": "extension|FeatureFlags|0|0|FeatureFlagsResult|UiText id;Span\u003CFeatureFlag\u003E flags;ReadOnlySpan\u003Cstring\u003E envs;FeatureFlagsOpts o = default||h1c2c043a1a911bf524b328f35cfa7f2ee4862adfb16f1b0cbd98cf1077245b34", "signature": "FeatureFlagsResult FeatureFlags(UiText id, Span\u003CFeatureFlag\u003E flags, ReadOnlySpan\u003Cstring\u003E envs, FeatureFlagsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "flags", "type": "Span\u003CFeatureFlag\u003E" }, { "name": "envs", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "FeatureFlagsOpts", "default": "default" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "extension", "id": "extension|FileBrowser|0|0|FileBrowserResult|UiText id;ref string path;int pathCap = 1024;FileBrowserOpts o = default||hdcc3319728f0b23560a33e9d8c875e4b5389d816f8e66b4e3630e917284e3bf8", "signature": "FileBrowserResult FileBrowser(UiText id, ref string path, int pathCap = 1024, FileBrowserOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "path", "type": "ref string" }, { "name": "pathCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FileBrowserOpts", "default": "default" }], "summary": "path: the folder shown, yours; the browser writes it as you move around." }, { "name": "FlameGraph", "kind": "extension", "id": "extension|FlameGraph|0|0|FlameResult|UiText id;ReadOnlySpan\u003CFlameSpan\u003E spans;ref FlameView view;ref int selected;FlameOpts o = default||h825a9e17f3b7381f2b9b6b4244a8edbabda629701c297e3c877a4e13fc43e98c", "signature": "FlameResult FlameGraph(UiText id, ReadOnlySpan\u003CFlameSpan\u003E spans, ref FlameView view, ref int selected, FlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "spans", "type": "ReadOnlySpan\u003CFlameSpan\u003E" }, { "name": "view", "type": "ref FlameView" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "FlameOpts", "default": "default" }], "summary": "selected: index into spans, -1 for none (may be NULL)." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|ReadOnlySpan\u003Cbyte\u003E data;bool copy = true||h73d65ad67f9acdd48823d96c747c086a24a1625658056e8af856a3bd4d554241", "signature": "Font LoadFont(ReadOnlySpan\u003Cbyte\u003E data, bool copy = true)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool", "default": "true" }], "summary": "Loads a font from memory and returns a handle for SetFont." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|UiText path||h5faed851de772ad862622c3312f2aeae3c81ef7915ae305e81bb638cf9b3b107", "signature": "Font LoadFont(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "Loads a font file (TTF/OTF) and returns a handle for SetFont." }, { "name": "UseSystemFontFallback", "kind": "extension", "id": "extension|UseSystemFontFallback|0|0|Font|string sample||h718698d4ba3dba692a0bf04e8e6729a2aae4ac8563689108bb00fdf124984df6", "signature": "Font UseSystemFontFallback(string sample)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "sample", "type": "string" }], "summary": "Finds a face on this machine that can draw sample and registers it as a fallback for the app\u0027s roles, so a UI in a script the bundled faces do not cover renders instead of going blank." }, { "name": "GradientEditor", "kind": "extension", "id": "extension|GradientEditor|0|0|GradientResult|UiText id;Span\u003CGradientStop\u003E stops;ref int count;int capacity;ref int selected;GradientOpts o = default||h22ba29de3dd5440cd7373415c1f48323da92a14dd19862d6a962bbf6a3147afd", "signature": "GradientResult GradientEditor(UiText id, Span\u003CGradientStop\u003E stops, ref int count, int capacity, ref int selected, GradientOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stops", "type": "Span\u003CGradientStop\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GradientOpts", "default": "default" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "extension", "id": "extension|GraphView|0|0|GraphResult|UiText id;ReadOnlySpan\u003CGraphNode\u003E nodes;ReadOnlySpan\u003CGraphEdge\u003E edges;ref int selected;GraphOpts o = default||hbce489b5fa6d64979be674221b7ae61e945b26d0224773080270c2c7dfd8b3bc", "signature": "GraphResult GraphView(UiText id, ReadOnlySpan\u003CGraphNode\u003E nodes, ReadOnlySpan\u003CGraphEdge\u003E edges, ref int selected, GraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003CGraphNode\u003E" }, { "name": "edges", "type": "ReadOnlySpan\u003CGraphEdge\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GraphOpts", "default": "default" }], "summary": "cui_graph_view_ex" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|GridScope|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;GridOpts o = default||hae20817285aa5f5ee430918dd512e707df8a0306e32777f0e13839f607262829", "signature": "GridScope DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Opens a virtualized grid; draw rows in [state.First, state.Last)." }, { "name": "HexView", "kind": "extension", "id": "extension|HexView|0|0|HexResult|UiText id;Span\u003Cbyte\u003E bytes;ref HexSelection selection;HexViewOpts o = default||hb82ecf6f9d8a58d5c2bce7702bd188c8bb502de7a2d696f1a0af827be5fa22d9", "signature": "HexResult HexView(UiText id, Span\u003Cbyte\u003E bytes, ref HexSelection selection, HexViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bytes", "type": "Span\u003Cbyte\u003E" }, { "name": "selection", "type": "ref HexSelection" }, { "name": "o", "type": "HexViewOpts", "default": "default" }], "summary": "Draws bytes and lets the user overwrite them in place." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|UiText id||hf913a0d346bf51d9f7a0e55299041c30e8aa0eeb2f93eadbe20cad0c4ae3879b", "signature": "IdScope Id(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Pushes a string id for the widgets drawn inside the scope." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|int key||h3b4b6991acded6793bc66a091956c19c02661da15fabdf72db107273b8ed3d1b", "signature": "IdScope Id(int key)", "parameters": [{ "name": "key", "type": "int" }], "summary": "Pushes an integer id, typically a row or item index." }, { "name": "Input", "kind": "method", "id": "method|Input|0|0|InputResult|UiText id;ref string value;InputOpts o = default||he495e19d9d5cb23d03e35f0f55ea0ebafd853d7386ae9e4989697b39cec38980", "signature": "InputResult Input(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A single-line text field. Assign the string; CUI edits it in place and the new value comes back through value on the frames it changed." }, { "name": "Search", "kind": "method", "id": "method|Search|0|0|InputResult|UiText id;ref string value;InputOpts o = default||h11bb746b263541b15457e9933eac6e37a6cdfac44547449d0d7375a7431b87da", "signature": "InputResult Search(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A search field. See Input." }, { "name": "TextArea", "kind": "method", "id": "method|TextArea|0|0|InputResult|UiText id;ref string value;InputOpts o = default||ha0535c062baff5583884fcf6394397476e4b2a40ee79b643e731e601e2daad5c", "signature": "InputResult TextArea(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A multi-line text field. See Input." }, { "name": "Keyed", "kind": "method", "id": "method|Keyed|0|1|KeyedScope\u003CT\u003E|T[] items;KeyFn\u003CT\u003E key||h3645b3dae05812e37fd01340a5693892b688bf1436826030f83bf34e5dca43f8", "signature": "KeyedScope\u003CT\u003E Keyed\u003CT\u003E(T[] items, KeyFn\u003CT\u003E key)", "parameters": [{ "name": "items", "type": "T[]" }, { "name": "key", "type": "KeyFn\u003CT\u003E" }], "summary": "Enumerates items, each inside its own id scope derived from key." }, { "name": "Keymap", "kind": "extension", "id": "extension|Keymap|0|0|KeymapResult|UiText id;ReadOnlySpan\u003CKeymapBinding\u003E bindings;ref Mods mods;KeymapOpts o = default||h986c8ea2572b42d56814a32427ed89b00db2a4a2ff3ba6c7a4711a66da3c0bae", "signature": "KeymapResult Keymap(UiText id, ReadOnlySpan\u003CKeymapBinding\u003E bindings, ref Mods mods, KeymapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bindings", "type": "ReadOnlySpan\u003CKeymapBinding\u003E" }, { "name": "mods", "type": "ref Mods" }, { "name": "o", "type": "KeymapOpts", "default": "default" }], "summary": "cui_keymap_ex" }, { "name": "Box", "kind": "extension", "id": "extension|Box|0|0|LayoutScope|Box o = default||haec5c052acbeeaca94cb5a10a37f80e98abc85d069b6fa9aec58cf20715c0a06", "signature": "LayoutScope Box(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_box_begin" }, { "name": "ButtonGroup", "kind": "extension", "id": "extension|ButtonGroup|0|0|LayoutScope|||h8a2a0872d3ba1595bf0e1d9ad5860dfa36735b0ac74178a57cc8157b6493d6d4", "signature": "LayoutScope ButtonGroup()", "extensionOn": "CuiSharp.Ui", "summary": "Connected buttons. Put buttons between begin and end." }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o = default||hb8d0387f360f71c39f098c9de712bb4aa0eb22a25fffee4615049459c0cc224e", "signature": "LayoutScope Card(Card o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card", "default": "default" }], "summary": "cui_card_begin" }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o;out bool clicked||he64474f809036667bb19ed0028db705f58a61d124f67b6520b26f73775ae32e5", "signature": "LayoutScope Card(Card o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "CardStackItem", "kind": "extension", "id": "extension|CardStackItem|0|0|LayoutScope|int depth||h6f29f3239b665449b7d0d9b4e5177cb4099b541e3423fcb9d1a9b14fb1f686d0", "signature": "LayoutScope CardStackItem(int depth)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CarouselSlide", "kind": "extension", "id": "extension|CarouselSlide|0|0|LayoutScope|||h9755b016a070064271f7e45738238254443cdfcb4d22aca524774095031595ec", "signature": "LayoutScope CarouselSlide()", "extensionOn": "CuiSharp.Ui", "summary": "cui_carousel_slide_begin" }, { "name": "Column", "kind": "extension", "id": "extension|Column|0|0|LayoutScope|Box o = default||h78447c50c087189e1c45a5984115c6b2709affec511cf6ab6521254dd0406549", "signature": "LayoutScope Column(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_column_begin" }, { "name": "DialogFooter", "kind": "extension", "id": "extension|DialogFooter|0|0|LayoutScope|||hea62c5e329105c7d787894e1fbdbbd9b079d2910e82c4be61263045ff18c81f3", "signature": "LayoutScope DialogFooter()", "extensionOn": "CuiSharp.Ui", "summary": "A right-aligned row for dialog actions." }, { "name": "Dock", "kind": "extension", "id": "extension|Dock|0|0|LayoutScope|UiText id;DockOpts o = default||ha8052963c653afff4ec2b3304515265b67454d94f44ee3c01d076c1e27148816", "signature": "LayoutScope Dock(UiText id, DockOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockOpts", "default": "default" }], "summary": "cui_dock_begin" }, { "name": "Dockspace", "kind": "extension", "id": "extension|Dockspace|0|0|LayoutScope|UiText id;DockspaceOpts o = default||hd8cabbad4df58a75fbb1e93299868d95ae7671ca676e01478b8c6067ace5a82d", "signature": "LayoutScope Dockspace(UiText id, DockspaceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockspaceOpts", "default": "default" }], "summary": "cui_dockspace_begin_ex" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId||h04d36b815b7f14d7d624e0b56c06560e052f6458aecd5cd68f485e0c8dc64b11", "signature": "LayoutScope KanbanCard(int cardId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId;out bool clicked||h0ef9ec0801ab926804d1119b9bc9dc886afc490850829ed33cad336f7ee94f50", "signature": "LayoutScope KanbanCard(int cardId, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o = default||hd3dcefdc81fb36dfee31edd1754914e0453a4c7e0b1bb4c4b2b20b542eb8adaa", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts", "default": "default" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o;out bool clicked||h7c9ca66f79f064c49eed8f4544d8fea1ed3304dc45d84e5ec067d319ed4ea113", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "MenuBar", "kind": "extension", "id": "extension|MenuBar|0|0|LayoutScope|UiText id;MenuBarOpts o = default||h29b57cc387904e3c1d3083b170ceaa309e6bc4a2535b4c27f22ecd482570e152", "signature": "LayoutScope MenuBar(UiText id, MenuBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "MenuBarOpts", "default": "default" }], "summary": "cui_menu_bar_begin" }, { "name": "NodeContent", "kind": "extension", "id": "extension|NodeContent|0|0|LayoutScope|||h6a09d812c8b6d9c4a4f2fc6aedc000b977da707334c08c94ee4e6dd62573dd59", "signature": "LayoutScope NodeContent()", "extensionOn": "CuiSharp.Ui", "summary": "A row for ordinary components. They are laid out at 100% and scaled with the view, so their text is sharpest at 100% zoom and below." }, { "name": "ReorderItem", "kind": "method", "id": "method|ReorderItem|0|0|LayoutScope|int position||h407076f847f4d4f606b87a109b5a505ca525179c0bff6726382889745d33f038", "signature": "LayoutScope ReorderItem(int position)", "parameters": [{ "name": "position", "type": "int" }] }, { "name": "Row", "kind": "extension", "id": "extension|Row|0|0|LayoutScope|Box o = default||ha02204054f3ea32388e8e24fc8038f253dd0b3504b0e01b650d69265773cb67e", "signature": "LayoutScope Row(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_row_begin" }, { "name": "Scroll", "kind": "extension", "id": "extension|Scroll|0|0|LayoutScope|ScrollOpts o = default||h7aa8eed4bb32b5efc54efbe5c6c7c19215ddf1d8ffed8dfc60e0c8d5234bc6f7", "signature": "LayoutScope Scroll(ScrollOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "ScrollOpts", "default": "default" }], "summary": "cui_scroll_begin" }, { "name": "Split", "kind": "extension", "id": "extension|Split|0|0|LayoutScope|UiText id;ref float ratio;SplitOpts o = default||h83e75ece850ab88dc38fde4b7d1d8ae789128ab387c95d8025b6302e8f59269f", "signature": "LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "ratio", "type": "ref float" }, { "name": "o", "type": "SplitOpts", "default": "default" }], "summary": "cui_split_begin" }, { "name": "Spotlight", "kind": "extension", "id": "extension|Spotlight|0|0|LayoutScope|UiText id;SpotlightOpts o = default||hfb70f807d4c0a2d5450e1ff296551adc78a8733ed06c6b0cb9ed7427add12f16", "signature": "LayoutScope Spotlight(UiText id, SpotlightOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SpotlightOpts", "default": "default" }], "summary": "cui_spotlight_begin" }, { "name": "StatusBar", "kind": "extension", "id": "extension|StatusBar|0|0|LayoutScope|UiText id;StatusBarOpts o = default||h394ecf13ba82c0abd4bdf1a5b7cb5fce6102392c5a87cea283bc38fd2213e96a", "signature": "LayoutScope StatusBar(UiText id, StatusBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "StatusBarOpts", "default": "default" }], "summary": "cui_status_bar_begin" }, { "name": "Toolbar", "kind": "extension", "id": "extension|Toolbar|0|0|LayoutScope|UiText id;ToolbarOpts o = default||hc5826ec43e3d8bf178cfa9f1605bd29bded229aae82424077aa18e1ae7e9cc61", "signature": "LayoutScope Toolbar(UiText id, ToolbarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ToolbarOpts", "default": "default" }], "summary": "cui_toolbar_begin" }, { "name": "VirtualList", "kind": "extension", "id": "extension|VirtualList|0|0|LayoutScope|UiText id;int count;float rowHeight;Size height;out int first;out int last||h90165d4490987ebd4d90276d5b449695a1f58d89f212149090827bfd08a055f2", "signature": "LayoutScope VirtualList(UiText id, int count, float rowHeight, Size height, out int first, out int last)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "Size" }, { "name": "first", "type": "out int" }, { "name": "last", "type": "out int" }], "summary": "Virtual list: only the visible rows are built, so lists with a million rows stay fast. Fills first/last with the visible range." }, { "name": "Localization", "kind": "property", "id": "property|Localization|0|0|Localization?||get;|h0a921bf7a95ff40f095f5e7f43cc6d636b74f025ae427be1edbd250e93f88e54", "signature": "Localization? Localization { get; }", "summary": "The table this surface published, or null for English." }, { "name": "Markdown", "kind": "extension", "id": "extension|Markdown|0|0|MarkdownResult|UiText id;UiText text;MarkdownOpts o = default||h61fdb7c6fb770f95ff734bbdf7b607bad9e23af8b25df034da34f408eed536fa", "signature": "MarkdownResult Markdown(UiText id, UiText text, MarkdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "MarkdownOpts", "default": "default" }], "summary": "cui_markdown_ex" }, { "name": "Modifiers", "kind": "property", "id": "property|Modifiers|0|0|Mods||get;|h994504ae5710377741956558b3dae0b4e2fc318f73c5408e701c6675295af911", "signature": "Mods Modifiers { get; }", "summary": "The modifier keys held right now." }, { "name": "MonthCalendar", "kind": "extension", "id": "extension|MonthCalendar|0|0|MonthResult|UiText id;ref Date month;ReadOnlySpan\u003CMonthEvent\u003E events;ref Date selected;MonthOpts o = default||hacb7fb0b706addd9098a1569df3adbf8cff5b20d3b0bf01f49970bd839da7523", "signature": "MonthResult MonthCalendar(UiText id, ref Date month, ReadOnlySpan\u003CMonthEvent\u003E events, ref Date selected, MonthOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "month", "type": "ref Date" }, { "name": "events", "type": "ReadOnlySpan\u003CMonthEvent\u003E" }, { "name": "selected", "type": "ref Date" }, { "name": "o", "type": "MonthOpts", "default": "default" }], "summary": "cui_month_calendar_ex" }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|OpenScope|UiText title;ref bool open||h485829d02ee323bfa485f05285d6b19d78dcf02ed0a36c9ca4b1da7e70f540e5", "signature": "OpenScope Accordion(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "Accordion / disclosure. Content animates its height." }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|OpenScope|UiText id;int count;ref int index;CarouselOpts o = default||hbcf0bd0059da4b82e6417513dac4646a1ad558c1f46fc3c55b233c3367ef0a4e", "signature": "OpenScope Carousel(UiText id, int count, ref int index, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "cui_carousel_begin" }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|OpenScope|UiText id||hb5be2e863b82aa032d3281886a07b75e6a10932b22c9c06daa36e6ec8460b9c3", "signature": "OpenScope ContextMenu(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Context menu: opens on right click over the previous component." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|OpenScope|UiText title;ref bool open;DialogOpts o = default||h08e9cf3a4bf5178fc47947da0ad76b53486c74b4ebd9c7e92e078d4cb3653668", "signature": "OpenScope Dialog(UiText title, ref bool open, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Modal dialog. Shown while *open is true; closing sets it to false." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|OpenScope|UiText title;ref bool open;DockPanelOpts o = default||h983b85f4b88defb64e03c80c7fd67832cccc8b15fa3b11e9e9c8954cdd239b75", "signature": "OpenScope DockPanel(UiText title, ref bool open, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|OpenScope|UiText title;ref bool open;ExpandableCardOpts o = default||h19637d079a2ee9821dfa4b6223ecf9694471f6157ed61e0139e207c045d56878", "signature": "OpenScope ExpandableCard(UiText title, ref bool open, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "cui_expandable_card_begin" }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|OpenScope|UiText id;HoverCardOpts o = default||hd31fbafd01c517229f3a54d9fbeed478689533294a82e16da99cb56ed4b82d37", "signature": "OpenScope HoverCard(UiText id, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "cui_hover_card_begin" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|OpenScope|UiText id;InspectorOpts o = default||hdb3db7ec75e95846d7b987536583618b0b9445c2deb40a5f16828b5d2d735020", "signature": "OpenScope Inspector(UiText id, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "cui_inspector_begin_ex" }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|OpenScope|UiText label;MenuOpts o = default||hec1b2b131f19c8f1eb37269016b963aed4449341b367ca89e175c1940294ab63", "signature": "OpenScope Menu(UiText label, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "cui_menu_begin" }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|OpenScope|UiText label;MenuBarMenuOpts o = default||h32c463fd3c1d7fa382d82e43f75326d1e14efad5ce907db7337df9ba3480688b", "signature": "OpenScope MenuBarMenu(UiText label, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|OpenScope|int nodeId;ref float x;ref float y;UiText title;NodeOpts o = default||hb7439d9c37ecca24fb0858272f81826919b789149f2a34acd1e1c44ff3266f62", "signature": "OpenScope Node(int nodeId, ref float x, ref float y, UiText title, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "cui_node_begin_ex" }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|OpenScope|UiText id;ref NodeView view;NodeEditorOpts o = default||h4e3c9c7bbaa0ed5b0750957f90a5c6c86f0fbfea8e96d4a8cacd68503ae7ad85", "signature": "OpenScope NodeEditor(UiText id, ref NodeView view, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "cui_node_editor_begin_ex" }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|OpenScope|UiText id;ref int segment||h2aeb15441c53f332d451a287be64ba38ecdb4c05be10ad0f8a2412b04c3ad51a", "signature": "OpenScope PathBarMenu(UiText id, ref int segment)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }], "summary": "True while the menu of separator *segment is showing: build menu items for the children of that segment, then call cui_path_bar_menu_end." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|OpenScope|UiText id;PopoverOpts o = default||had5881283c2885b236d342cac799068e3bd7a8c2d4272ceb08bf27aa60e812f7", "signature": "OpenScope Popover(UiText id, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "cui_popover_begin" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|OpenScope|UiText id;ReasoningOpts o = default||hd8c6837b660811abb55b30c3bcc35eb42dd2099f40a5a73eb35972aca384d12b", "signature": "OpenScope Reasoning(UiText id, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "cui_reasoning_begin" }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|OpenScope|UiText title;ref bool open;SheetOpts o = default||heb98d14c7c6250a83593cac259a583d17aa8636e9eaa839b64b4b5e3db2551d7", "signature": "OpenScope Sheet(UiText title, ref bool open, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "cui_sheet_begin" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;TableOpts o = default||hfd909896b0ab780a5093f3e917adaa2e23e03121d3b8e920a5305582c66486d0", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Same as the overload with ref sort, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;TableOpts o = default||hfda1db8518191e5d1de411deaefeed0d0f8d6838a3a1398abfa10ad4b36ff692", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "cui_table_begin_ex" }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|OpenScope|UiText label;ref bool open;TreeOpts o = default||h4406f8e6a4e0d2f04e9468f25ca87def814144056b1780a4e869ea86998fdd10", "signature": "OpenScope Tree(UiText label, ref bool open, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "cui_tree_begin" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|OpenScope|UiText name;UserMenuOpts o = default||h5323b7ef69eef4b5689f61a0c79b09355b7d2e1579ced7536bd574838f5eb096", "signature": "OpenScope UserMenu(UiText name, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "cui_user_menu_begin" }, { "name": "PathBar", "kind": "extension", "id": "extension|PathBar|0|0|PathBarResult|UiText id;ReadOnlySpan\u003Cstring\u003E segments;PathBarOpts o = default||h5256da01c2004bf6922b836f1b3e9fbc43ed881a67e823c1895ab05f0949dd56", "signature": "PathBarResult PathBar(UiText id, ReadOnlySpan\u003Cstring\u003E segments, PathBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segments", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "PathBarOpts", "default": "default" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "extension", "id": "extension|Pipeline|0|0|PipelineResult|UiText id;ReadOnlySpan\u003Cstring\u003E stages;ReadOnlySpan\u003CPipelineJob\u003E jobs;ref int selected;PipelineOpts o = default||h57164c455b64addad840b532dee1f4eb3acaba49d3b9d3b92afbab5d775aa6e7", "signature": "PipelineResult Pipeline(UiText id, ReadOnlySpan\u003Cstring\u003E stages, ReadOnlySpan\u003CPipelineJob\u003E jobs, ref int selected, PipelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "jobs", "type": "ReadOnlySpan\u003CPipelineJob\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "PipelineOpts", "default": "default" }], "summary": "cui_pipeline_ex" }, { "name": "NowPlaying", "kind": "extension", "id": "extension|NowPlaying|0|0|PlayerEvents|UiText id;ref NowPlayingState np;NowPlayingOpts o = default||h9fae980dc34277b737fa803cbecd222d9c0a4c796e96fa70b56eeeefd0df2b25", "signature": "PlayerEvents NowPlaying(UiText id, ref NowPlayingState np, NowPlayingOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "np", "type": "ref NowPlayingState" }, { "name": "o", "type": "NowPlayingOpts", "default": "default" }], "summary": "cui_now_playing_ex" }, { "name": "Problems", "kind": "extension", "id": "extension|Problems|0|0|ProblemsResult|UiText id;ReadOnlySpan\u003CProblemItem\u003E diags;ProblemsOpts o = default||h6893f9c629255366d4079d33866236777cdcf107644e4109933ef620b8022eed", "signature": "ProblemsResult Problems(UiText id, ReadOnlySpan\u003CProblemItem\u003E diags, ProblemsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "diags", "type": "ReadOnlySpan\u003CProblemItem\u003E" }, { "name": "o", "type": "ProblemsOpts", "default": "default" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "extension", "id": "extension|FlameSpanRect|0|0|RectF|uint flame;in FlameSpan span||haa242a01ec7cc85ea2f271378c3c8c334942d3f054714bdc41b27574a4327c82", "signature": "RectF FlameSpanRect(uint flame, in FlameSpan span)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "flame", "type": "uint" }, { "name": "span", "type": "in FlameSpan" }], "summary": "Where a span was drawn in the latest frame, in points (zero size when out of view). flame is the graph\u0027s id: cui_last_id(ui) right after the call." }, { "name": "LastRect", "kind": "property", "id": "property|LastRect|0|0|RectF||get;|ha796a249509c6af4a48352050e2d549bf5de307702a0f97fbc12276bc4b72b7b", "signature": "RectF LastRect { get; }", "summary": "Rectangle of the most recent component." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|UiText id||hf03418b016be6b023e965616caed52e5a7dd6a367152691bc14de3eb646ed966", "signature": "RectF RectOf(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Rectangle of the widget with this string id." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|uint id||hc518e049cee7502b5770da6d0349e6e1b3764c8cc67fc33e3a92b5006d46ad99", "signature": "RectF RectOf(uint id)", "parameters": [{ "name": "id", "type": "uint" }], "summary": "Rectangle of any widget by id, for hit tests and overlays." }, { "name": "RegexTester", "kind": "extension", "id": "extension|RegexTester|0|0|RegexTesterResult|UiText id;ref string pattern;int patternCap;ref string text;int textCap;ref RegexFlags flags;RegexTesterOpts o = default||h53b2155ffb50f74e3cdbeb47580968a3b4c6256e0cbe584d8955de62e7015f50", "signature": "RegexTesterResult RegexTester(UiText id, ref string pattern, int patternCap, ref string text, int textCap, ref RegexFlags flags, RegexTesterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pattern", "type": "ref string" }, { "name": "patternCap", "type": "int" }, { "name": "text", "type": "ref string" }, { "name": "textCap", "type": "int" }, { "name": "flags", "type": "ref RegexFlags" }, { "name": "o", "type": "RegexTesterOpts", "default": "default" }], "summary": "cui_regex_tester_ex" }, { "name": "RequestBar", "kind": "extension", "id": "extension|RequestBar|0|0|RequestBarResult|UiText id;ref HttpMethod method;ref string url;int cap = 2048;RequestBarOpts o = default||h400ba2e5c7aed931b8c2e5897d16438378b1652b5dfca8f9a1057e88fcb46043", "signature": "RequestBarResult RequestBar(UiText id, ref HttpMethod method, ref string url, int cap = 2048, RequestBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "method", "type": "ref HttpMethod" }, { "name": "url", "type": "ref string" }, { "name": "cap", "type": "int", "default": "2048" }, { "name": "o", "type": "RequestBarOpts", "default": "default" }], "summary": "cui_request_bar_ex" }, { "name": "ResponseActions", "kind": "extension", "id": "extension|ResponseActions|0|0|ResponseEvents|UiText id;ref int vote;ResponseActionsOpts o = default||hc81149b07827af0f59a3269486e0d44858ac9bb48073ed5150872c876c11984c", "signature": "ResponseEvents ResponseActions(UiText id, ref int vote, ResponseActionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "vote", "type": "ref int" }, { "name": "o", "type": "ResponseActionsOpts", "default": "default" }], "summary": "cui_response_actions_ex" }, { "name": "SchedulePicker", "kind": "extension", "id": "extension|SchedulePicker|0|0|ScheduleResult|UiText id;ref string cron;int cap = 128;ScheduleOpts o = default||h5e149aabf00cdaf3e05fa29f62f956e474f8fee28641ae71fde4eaaeb8801f91", "signature": "ScheduleResult SchedulePicker(UiText id, ref string cron, int cap = 128, ScheduleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "cron", "type": "ref string" }, { "name": "cap", "type": "int", "default": "128" }, { "name": "o", "type": "ScheduleOpts", "default": "default" }], "summary": "cui_schedule_picker_ex" }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id||h8505c3ecbdde9acd049fc2d5d47e3c43d0545b89b2b78cc39c0a3993049107cf", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Persistent, zeroed storage for a widget id, for values that must survive between frames (animation phases, drag state, hit-test scratch)." }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id;Action onFree||hbfa4567fbf2313cbdd3cc11d8daae823c35ccab56e58f7f91c8635a98f228824", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id, Action onFree) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "onFree", "type": "Action" }], "summary": "Persistent, zeroed storage for a widget id, with a callback CUI runs when it throws that id\u0027s state away (about five idle seconds, or when the window closes)." }, { "name": "StackTrace", "kind": "extension", "id": "extension|StackTrace|0|0|StackTraceResult|UiText id;ReadOnlySpan\u003CStackFrame\u003E frames;StackTraceOpts o = default||h31d88e2151b353d79ca390bcbc46b17c2882a950f9cf2239a266b97eeaa36a9b", "signature": "StackTraceResult StackTrace(UiText id, ReadOnlySpan\u003CStackFrame\u003E frames, StackTraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "frames", "type": "ReadOnlySpan\u003CStackFrame\u003E" }, { "name": "o", "type": "StackTraceOpts", "default": "default" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "extension", "id": "extension|Terminal|0|0|TerminalResult|UiText id;Terminal terminal;TerminalOpts o = default||h3bb90fc3e22f3e909beb279d5867cc2751b7287513f1480f8c73f2e7405f14d7", "signature": "TerminalResult Terminal(UiText id, Terminal terminal, TerminalOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "terminal", "type": "Terminal" }, { "name": "o", "type": "TerminalOpts", "default": "default" }], "summary": "Draws terminal and reports what the user did in it." }, { "name": "TestExplorer", "kind": "extension", "id": "extension|TestExplorer|0|0|TestExplorerResult|UiText id;ReadOnlySpan\u003CTestItem\u003E items;TestExplorerOpts o = default||h9eeb18e60e88e82a908b873a27468f9699a55c61fb36da8ff356557f102e3862", "signature": "TestExplorerResult TestExplorer(UiText id, ReadOnlySpan\u003CTestItem\u003E items, TestExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTestItem\u003E" }, { "name": "o", "type": "TestExplorerOpts", "default": "default" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|0|0|TextMetrics|UiText text;float size = 12f;Font font = Font.Body||h992b53c9418ee9ba19c1fd34ea05dca44fabbaac335e2ecdd31ccf760fd4f66f", "signature": "TextMetrics MeasureText(UiText text, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Width and height of a single line of text, without wrapping." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "The theme this frame draws with. Assign to switch, from anywhere inside a frame." }, { "name": "TimeHistogram", "kind": "extension", "id": "extension|TimeHistogram|0|0|TimeHistogramResult|UiText id;double start;double bucketSeconds;int buckets;ReadOnlySpan\u003CHistogramSeries\u003E series;ref double selStart;ref double selEnd;TimeHistogramOpts o = default||hfc0784cb52bfd6a3615191c61545b37c444f2ce965ef93b671333df27d4bf165", "signature": "TimeHistogramResult TimeHistogram(UiText id, double start, double bucketSeconds, int buckets, ReadOnlySpan\u003CHistogramSeries\u003E series, ref double selStart, ref double selEnd, TimeHistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "ReadOnlySpan\u003CHistogramSeries\u003E" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "o", "type": "TimeHistogramOpts", "default": "default" }], "summary": "cui_time_histogram_ex" }, { "name": "Tour", "kind": "extension", "id": "extension|Tour|0|0|TourAction|UiText id;ReadOnlySpan\u003CTourStep\u003E steps;ref int step;TourOpts o = default||h7a480bb022c619036d7ca1d19006a7d5aa923a84ea3fc62b5eae88ea7b1088c8", "signature": "TourAction Tour(UiText id, ReadOnlySpan\u003CTourStep\u003E steps, ref int step, TourOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CTourStep\u003E" }, { "name": "step", "type": "ref int" }, { "name": "o", "type": "TourOpts", "default": "default" }], "summary": "What happened this frame: one of CUI_TOUR_*." }, { "name": "TraceView", "kind": "extension", "id": "extension|TraceView|0|0|TraceResult|UiText id;ReadOnlySpan\u003CTraceTrack\u003E tracks;ReadOnlySpan\u003CTraceSpan\u003E spans;ref TraceViewState view;ref int selected;TraceOpts o = default||h7ab8ce526cada0bd73b947180d909dfa39f159b47ac14940ec53b67f28158b92", "signature": "TraceResult TraceView(UiText id, ReadOnlySpan\u003CTraceTrack\u003E tracks, ReadOnlySpan\u003CTraceSpan\u003E spans, ref TraceViewState view, ref int selected, TraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tracks", "type": "ReadOnlySpan\u003CTraceTrack\u003E" }, { "name": "spans", "type": "ReadOnlySpan\u003CTraceSpan\u003E" }, { "name": "view", "type": "ref TraceViewState" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TraceOpts", "default": "default" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||h5ad3a7ebd26d1298c20becc826efa4b5392b7ddbca0d68cfbb1f162eb572fd75", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws a tree without sort or keyboard state: the table keeps no per-id interaction state, which is all a static tree needs." }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;ref TableSort sort;ref int cursor;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||hdc8db941f4c0a5cc7a1e81a316f1e56fbc2468020569fb6cacf3307bec596a1d", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, ref TableSort sort, ref int cursor, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "sort", "type": "ref TableSort" }, { "name": "cursor", "type": "ref int" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws nodes as a tree with columns, calling row once per visible node to fill its cells." }, { "name": "Uptime", "kind": "extension", "id": "extension|Uptime|0|0|UptimeResult|UiText id;ReadOnlySpan\u003CUptimeService\u003E services;UptimeOpts o = default||h60131e1db59b8a809d222a6d6dee840e1ccde25607a2c4178418eef8a488dccb", "signature": "UptimeResult Uptime(UiText id, ReadOnlySpan\u003CUptimeService\u003E services, UptimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "services", "type": "ReadOnlySpan\u003CUptimeService\u003E" }, { "name": "o", "type": "UptimeOpts", "default": "default" }], "summary": "cui_uptime_ex" }, { "name": "MousePosition", "kind": "property", "id": "property|MousePosition|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h02b51b7243b762c56e53482522c31644d844cd12e36381af09a9700cd549db93", "signature": "ValueTuple\u003Cfloat, float\u003E MousePosition { get; }", "summary": "Pointer position in points, top-left origin." }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|0|0|ValueTuple\u003Cfloat, float\u003E|||h7a26e2e5e6b39edb5a26a6e7adde40edf0bcd8599f3d7629ea37d02c109493a2", "signature": "ValueTuple\u003Cfloat, float\u003E ViewportSize()" }, { "name": "Waterfall", "kind": "extension", "id": "extension|Waterfall|0|0|WaterfallResult|UiText id;ReadOnlySpan\u003CNetRequest\u003E requests;ref int selected;WaterfallOpts o = default||h419b5ccb1a80d64ac3cce058fa79a3ac44664f29e8c9685c083cf8552c6714e6", "signature": "WaterfallResult Waterfall(UiText id, ReadOnlySpan\u003CNetRequest\u003E requests, ref int selected, WaterfallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "requests", "type": "ReadOnlySpan\u003CNetRequest\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "WaterfallOpts", "default": "default" }], "summary": "cui_waterfall_ex" }, { "name": "Alert", "kind": "extension", "id": "extension|Alert|0|0|bool|UiText title;AlertOpts o = default||hb9b8786bcd05d91b48b9d5b7e7c8dfe99eab8a18cccf61ee5708920e8c2c65a0", "signature": "bool Alert(UiText title, AlertOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "AlertOpts", "default": "default" }], "summary": "Inline alert. Returns false once dismissed (when dismissible)." }, { "name": "Banner", "kind": "extension", "id": "extension|Banner|0|0|bool|UiText text;ref bool open;BannerOpts o = default||hded3699dd8c0717c5f0d2f8a60f5b76364aaa539a156402e1d68fed1e8b19dd6", "signature": "bool Banner(UiText text, ref bool open, BannerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "BannerOpts", "default": "default" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "extension", "id": "extension|Button|0|0|bool|UiText label;ButtonOpts o = default||h0824ce1ee9db1a3102bbbc57b5f43c838d0aac0c456dc9d0f5ddf3a8bb9eaae3", "signature": "bool Button(UiText label, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "extension", "id": "extension|Calendar|0|0|bool|UiText id;ref Date value||he2d734019c4ba63e626cffe267911189a15dbf5b403eff0fc6fd9898d4334662", "signature": "bool Calendar(UiText id, ref Date value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }], "summary": "cui_calendar" }, { "name": "Checkbox", "kind": "extension", "id": "extension|Checkbox|0|0|bool|UiText label;ref bool value;CheckOpts o = default||h5e553956f3358e286491451619c072577baad5689e0ba2b38257460dced857ee", "signature": "bool Checkbox(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "extension", "id": "extension|Chip|0|0|bool|UiText label;ref bool selected;ChipOpts o = default||h4ff38ab2a9a818e7526990ee6c9e6f19f63a1138e5fb79d08917e25c0d0a78ee", "signature": "bool Chip(UiText label, ref bool selected, ChipOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "selected", "type": "ref bool" }, { "name": "o", "type": "ChipOpts", "default": "default" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "extension", "id": "extension|Citation|0|0|bool|int number;in Source source||ha19b93ee36f160c6271aaa8db69ab4937531c6d0be1bdcd8e208aa7eb206aee7", "signature": "bool Citation(int number, in Source source)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "number", "type": "int" }, { "name": "source", "type": "in Source" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "extension", "id": "extension|ColorPicker|0|0|bool|UiText id;ref Color value||h337517bd7bbb67ac9f2a0f2cd3561338116b8bbce4aab6736de92c41bd706e10", "signature": "bool ColorPicker(UiText id, ref Color value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Color" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "extension", "id": "extension|ConfirmButton|0|0|bool|UiText label;ConfirmOpts o = default||ha173e8d04000010db239a95f45b5a65630e6c3a32565f48acd835a79732b2383", "signature": "bool ConfirmButton(UiText label, ConfirmOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ConfirmOpts", "default": "default" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "extension", "id": "extension|ConfirmPopover|0|0|bool|UiText id;ConfirmPopoverOpts o = default||h1c2e0982b9c59e893eae1a02030bc1dcf3a82997c3f51101dbeae1b45e768ee2", "signature": "bool ConfirmPopover(UiText id, ConfirmPopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ConfirmPopoverOpts", "default": "default" }], "summary": "cui_confirm_popover_ex" }, { "name": "ControlTile", "kind": "extension", "id": "extension|ControlTile|0|0|bool|UiText label;ref bool on;TileOpts o = default||h030def7b2183e0b26721bad6afc91a710eb6f7cf309e2889db383c64f1477cbd", "signature": "bool ControlTile(UiText label, ref bool on, TileOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "on", "type": "ref bool" }, { "name": "o", "type": "TileOpts", "default": "default" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "extension", "id": "extension|CopyButton|0|0|bool|UiText id;UiText text||hbc740c15d3716aa5400fb730217b29b8462ce4a82a1b3b2c9884600f4fbfe844", "signature": "bool CopyButton(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "Icon button that copies text to the clipboard and confirms with a check." }, { "name": "Cropper", "kind": "extension", "id": "extension|Cropper|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref RectF crop;CropperOpts o = default||hc4433b320e719d68cf000799d9f75543139b19ed26265d5d5b7ef0e7cb29a2cf", "signature": "bool Cropper(UiText id, ulong tex, int imageW, int imageH, ref RectF crop, CropperOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref RectF" }, { "name": "o", "type": "CropperOpts", "default": "default" }], "summary": "Returns true when the crop changed." }, { "name": "DataGridCellEdit", "kind": "extension", "id": "extension|DataGridCellEdit|0|0|bool|ref string buf;int cap||h36d248e6c06ee8f7c129163000d2afe51274d879f2f2a6dd8f75e48579c04c63", "signature": "bool DataGridCellEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Editable text cell: double click (or Enter on the cursor row) to edit, Enter or clicking away commits, Esc reverts. True when committed." }, { "name": "DataGridEdit", "kind": "extension", "id": "extension|DataGridEdit|0|0|bool|ref string buf;int cap||h4a0248a3c48520cf419b921b7953de24c458026bb86ab7bd00ba08e5d194ef65", "signature": "bool DataGridEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "The same editable text, inside the current cell (after an avatar, say)." }, { "name": "DataGridRow", "kind": "extension", "id": "extension|DataGridRow|0|0|bool|int row||h5fe4fdf7429d5b5aac0325fa0af56631c8d8a1ff342c03251fe30d766d9f9225", "signature": "bool DataGridRow(int row)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "extension", "id": "extension|DatePicker|0|0|bool|UiText id;ref Date value;DateOpts o = default||h993523ace680cddb6c1434059ef52f3fb34d716bed495d79d97b148118785ee2", "signature": "bool DatePicker(UiText id, ref Date value, DateOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }, { "name": "o", "type": "DateOpts", "default": "default" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "extension", "id": "extension|DateRangePicker|0|0|bool|UiText id;ref DateRange range;DateRangeOpts o = default||h9daa98cbb5461612c53362c329641eba719561905ce1865087421113c0ee84d1", "signature": "bool DateRangePicker(UiText id, ref DateRange range, DateRangeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "o", "type": "DateRangeOpts", "default": "default" }], "summary": "cui_date_range_picker_ex" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|0|0|bool|out Date value||h2030bff62c6a99d4c47e3fa2a09f8c125232327d048faf8c41c853eeafa84679", "signature": "bool DateToday(out Date value)", "parameters": [{ "name": "value", "type": "out Date" }] }, { "name": "DockItem", "kind": "extension", "id": "extension|DockItem|0|0|bool|UiText icon;UiText label;DockItemOpts o = default||h6868974ee881c1a4f660ae0207737b226f6822fd1064babdbda9860825db89d1", "signature": "bool DockItem(UiText icon, UiText label, DockItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "DockItemOpts", "default": "default" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "extension", "id": "extension|DockLoad|0|0|bool|UiText id;UiText text||hffd91787faf77c3d390dfe7deb8bb16df93eb717a31ba3fd4130eac2e2e134b4", "signature": "bool DockLoad(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "cui_dock_load" }, { "name": "EmojiFontLoadFile", "kind": "extension", "id": "extension|EmojiFontLoadFile|0|0|bool|UiText path||hf9ed3d99d8c528c9df41c7bca5721cb0eb461686e0a48bc35d1cf718f13ba0f6", "signature": "bool EmojiFontLoadFile(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "---- Emoji ---- Color emoji come from an emoji font: the system\u0027s (cui_emoji_font_load_system, which the picker calls by itself when nothing is loaded) or one the app ships. Bitmap color fonts (sbix as on macOS, CBDT as on Linux and Android) and layered ones (COLR version 0, as on Windows) are read, as is a plain outline font for one-color emoji. Sequences with skin tones, joined people and flags are looked up through the font\u0027s ligatures. Big fonts are read from the file as needed rather than loaded whole. Drawn emoji are kept in one texture and reused." }, { "name": "EmojiFontLoadMemory", "kind": "extension", "id": "extension|EmojiFontLoadMemory|0|0|bool|ReadOnlySpan\u003Cbyte\u003E data;bool copy||h8f31cf994f46f3f46e0c7fdefbd7d39be865056bcb0700421f0fee7be7142342", "signature": "bool EmojiFontLoadMemory(ReadOnlySpan\u003Cbyte\u003E data, bool copy)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "extension", "id": "extension|EmojiFontLoadSystem|0|0|bool|||he4386dbb08b9f31fd0c23d6cb333b56d4babcbd26d5e38fa72a56bc89a6bac12", "signature": "bool EmojiFontLoadSystem()", "extensionOn": "CuiSharp.Ui", "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "extension", "id": "extension|EmojiSupported|0|0|bool|UiText utf8||he0adda46557f9d84dbc4c6feb4f995d99998ffae9bdabd33371c8df1fc7899fb", "signature": "bool EmojiSupported(UiText utf8)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "extension", "id": "extension|EmptyState|0|0|bool|UiText title;EmptyOpts o = default||h3447935b9ffe834dcbe57094c2bd062fa6216fbbd3d59e4e2527f7da36f6f369", "signature": "bool EmptyState(UiText title, EmptyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "EmptyOpts", "default": "default" }], "summary": "Empty state. Returns true when its action button is clicked." }, { "name": "ExpandableText", "kind": "extension", "id": "extension|ExpandableText|0|0|bool|UiText id;UiText text;ExpandableTextOpts o = default||h0853336278f85890679dc7cd1bc9eb77a34f2cf61567d87164045778c0f8d6ad", "signature": "bool ExpandableText(UiText id, UiText text, ExpandableTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "ExpandableTextOpts", "default": "default" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "extension", "id": "extension|Fader|0|0|bool|UiText id;ref float value;float min;float max;FaderOpts o = default||h8266bbe632feda1ec1b4b87bd7f41cc9e107e496de7dfb957c9d87f1e63f8835", "signature": "bool Fader(UiText id, ref float value, float min, float max, FaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "FaderOpts", "default": "default" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the window, for a drop target to light up." }, { "name": "FilePicker", "kind": "extension", "id": "extension|FilePicker|0|0|bool|UiText id;ref bool open;ref string out;int outCap = 1024;FilePickerOpts o = default||hb1ce6182678b8b2ca569fff7fdf6d4a781314228ed80d25a4c02a48b368dd07f", "signature": "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "out", "type": "ref string" }, { "name": "outCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FilePickerOpts", "default": "default" }], "summary": "True once, with the chosen path in out, when the dialog is confirmed; *open turns false then, or on Cancel and Esc." }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|0|0|bool|UiText id;ReadOnlySpan\u003CFilterField\u003E fields;Span\u003Cuint\u003E selected;ref string search;int searchCap = 256||h05b35fdecfc879680ca00e844554bef0fb0d2b9ee533e72f50a25b4cb5e4be7a", "signature": "bool FilterBar(UiText id, ReadOnlySpan\u003CFilterField\u003E fields, Span\u003Cuint\u003E selected, ref string search, int searchCap = 256)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CFilterField\u003E" }, { "name": "selected", "type": "Span\u003Cuint\u003E" }, { "name": "search", "type": "ref string" }, { "name": "searchCap", "type": "int", "default": "256" }], "summary": "Filter chips, one dropdown per field plus a search. selected holds one option bitmask per field; returns true on any change." }, { "name": "HistogramSlider", "kind": "extension", "id": "extension|HistogramSlider|0|0|bool|UiText label;ReadOnlySpan\u003Cfloat\u003E bins;ref float lo;ref float hi;float min;float max;HistogramOpts o = default||h72cc41a613543670d7d773f53d3ed618f4ca5dda5c9cf710a8ea0c0745f9816a", "signature": "bool HistogramSlider(UiText label, ReadOnlySpan\u003Cfloat\u003E bins, ref float lo, ref float hi, float min, float max, HistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "bins", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "HistogramOpts", "default": "default" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "extension", "id": "extension|HoldButton|0|0|bool|UiText label;HoldOpts o = default||ha44fcfbb972ecfbea614fbc280b43abd9c243c1e05ac46d39ac240667e1b2a30", "signature": "bool HoldButton(UiText label, HoldOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "HoldOpts", "default": "default" }], "summary": "cui_hold_button_ex" }, { "name": "IconButton", "kind": "extension", "id": "extension|IconButton|0|0|bool|UiText icon;ButtonOpts o = default||h5215045b3b917c5c328653c82d759d884c905c9bee3fd2bcae9c23b95552a5e2", "signature": "bool IconButton(UiText icon, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "Square/round button with only an icon. Give it a tooltip so it has a name." }, { "name": "ImageCompare", "kind": "extension", "id": "extension|ImageCompare|0|0|bool|UiText id;ulong before;ulong after;ref float pos;CompareOpts o = default||hbf70b5332c704791b825e9cb8d9e14cd4661dfc72efb9bed54e7afc61aac7221", "signature": "bool ImageCompare(UiText id, ulong before, ulong after, ref float pos, CompareOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "o", "type": "CompareOpts", "default": "default" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "extension", "id": "extension|ImageViewer|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref ImageView view;ImageViewerOpts o = default||hfd49614f5ed12268c88fafc87f200f9ba92c7a0989e02c2476dadf0bb0fab3b3", "signature": "bool ImageViewer(UiText id, ulong tex, int imageW, int imageH, ref ImageView view, ImageViewerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref ImageView" }, { "name": "o", "type": "ImageViewerOpts", "default": "default" }], "summary": "Returns true when the view changed." }, { "name": "InspectorGroup", "kind": "extension", "id": "extension|InspectorGroup|0|0|bool|UiText title;ref bool open||hba33317836e4529b513b762245b52b82d2fc8fd252b7ae2174d7ffdf7ff08018", "signature": "bool InspectorGroup(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "A folding group header. Build its rows only when this returns true (it stays true while the group animates closed). open may be NULL for a plain section that does not fold." }, { "name": "IsDisabled", "kind": "property", "id": "property|IsDisabled|0|0|bool||get;|h66819bb8e34991aa0b9a8fdf312d84bcc577f1aed8196c14e9cfc9792bab4b6e", "signature": "bool IsDisabled { get; }", "summary": "True inside a Disabled scope (or one a parent opened)." }, { "name": "JsonView", "kind": "extension", "id": "extension|JsonView|0|0|bool|UiText id;UiText json;JsonOpts o = default||h206112d6d2798b04c8b2e35b11a492fe5022438268206f218c32f29f9efa0bbf", "signature": "bool JsonView(UiText id, UiText json, JsonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "json", "type": "UiText" }, { "name": "o", "type": "JsonOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Kanban", "kind": "extension", "id": "extension|Kanban|0|0|bool|UiText id;out KanbanMove kanbanmove;DrawFn body||h06459ebde22b2b48e212f80454450eb468aac078e18e50dee8f7aa756afdbe5e", "signature": "bool Kanban(UiText id, out KanbanMove kanbanmove, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "kanbanmove", "type": "out KanbanMove" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_kanban_begin The card was dropped into another column, and the move is written into the out parameter." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|bool|Key key||h8b8a390f57bfe976c9fae2d30fec99be77322f69944968534c26bc08482cb159", "signature": "bool KeyDown(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True while the key is held (with auto-repeat)." }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|0|0|bool|Key key||hd4bc534b9e8b12976f0c38f87635500fca89a9d6949ea0a103354f41e6d39700", "signature": "bool KeyPressed(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True on the frame the key went down, including repeats." }, { "name": "Knob", "kind": "extension", "id": "extension|Knob|0|0|bool|UiText id;ref float value;float min;float max;KnobOpts o = default||hfceb051da509c5e36d4bd22400b42f24a8cc0da8ba2c27a23c8e378855c66680", "signature": "bool Knob(UiText id, ref float value, float min, float max, KnobOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "KnobOpts", "default": "default" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "extension", "id": "extension|KvEditor|0|0|bool|UiText id;Span\u003CKeyValue\u003E pairs;ref int count;int capacity;KvEditorOpts o = default||h5d7a626c1e0d0a2cbf62a8c0287d50a3401dbcf803f979b35c42c7899fb4db07", "signature": "bool KvEditor(UiText id, Span\u003CKeyValue\u003E pairs, ref int count, int capacity, KvEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pairs", "type": "Span\u003CKeyValue\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "KvEditorOpts", "default": "default" }], "summary": "cui_kv_editor_ex" }, { "name": "LevelMeter", "kind": "extension", "id": "extension|LevelMeter|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E levels;LevelMeterOpts o = default||he2b90272968549a2bc948844fa0f2e5fcb787783f5c0716cf3d8c48db532ab7e", "signature": "bool LevelMeter(UiText id, ReadOnlySpan\u003Cfloat\u003E levels, LevelMeterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "levels", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "LevelMeterOpts", "default": "default" }], "summary": "Returns true when the clip light was clicked to clear it." }, { "name": "Link", "kind": "extension", "id": "extension|Link|0|0|bool|UiText text||h20b90df40ad793aa00f00bae1aeddd8c78d8d1ee7eccdf7f709db8b78317b57a", "signature": "bool Link(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "extension", "id": "extension|ListItem|0|0|bool|UiText title;ListItemOpts o = default||h59240e7a8fd8d1115830e25d32bfc60e47f14e4645e8e48b58281c710be7f5c9", "signature": "bool ListItem(UiText title, ListItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ListItemOpts", "default": "default" }], "summary": "cui_list_item_ex" }, { "name": "LoadImage", "kind": "method", "id": "method|LoadImage|0|0|bool|UiText path;out ulong texture;out int width;out int height||hfe19783db558936a04580a0831ac4289470f120ccd1ef3163fcee3e05649da1f", "signature": "bool LoadImage(UiText path, out ulong texture, out int width, out int height)", "parameters": [{ "name": "path", "type": "UiText" }, { "name": "texture", "type": "out ulong" }, { "name": "width", "type": "out int" }, { "name": "height", "type": "out int" }], "summary": "Decodes a PNG or JPEG from disk into a texture and reports its pixel size. Returns false when the file cannot be read or decoded; the texture is then 0. Release it with DestroyImage." }, { "name": "MenuItem", "kind": "extension", "id": "extension|MenuItem|0|0|bool|UiText label;MenuItemOpts o = default||h6f02a24b8c3e14f743f1164e34c40e0c32e7647a378fc18f6fac4bd77708b604", "signature": "bool MenuItem(UiText label, MenuItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuItemOpts", "default": "default" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "extension", "id": "extension|ModelPicker|0|0|bool|UiText id;ReadOnlySpan\u003CModel\u003E models;ref int selected;ModelPickerOpts o = default||h30f09bcdbcd0511d67feaab5ce1eb2d84b0769c8eb387e2675cdc4b9faf9d869", "signature": "bool ModelPicker(UiText id, ReadOnlySpan\u003CModel\u003E models, ref int selected, ModelPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "models", "type": "ReadOnlySpan\u003CModel\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ModelPickerOpts", "default": "default" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "extension", "id": "extension|MoneyInput|0|0|bool|UiText id;ref double value;MoneyOpts o = default||hd65fb688e51d9a482d2f9031cdb57646790ad85a3c809e961601a8725a753b42", "signature": "bool MoneyInput(UiText id, ref double value, MoneyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "o", "type": "MoneyOpts", "default": "default" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|0|0|bool|MouseButton button||h8e0f0ad614e613c5c152543c9917af645f5ae90299577124c2da8f7863f69862", "signature": "bool MouseClicked(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True on the frame a mouse button went down." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|bool|MouseButton button||hf67b74dbd9e44892fdb6b384ac7537f75c21e2054ec9267ee7cf800f77c4c81d", "signature": "bool MouseDown(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True while a mouse button is held." }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;Span\u003Cbool\u003E selected;MultiSelectOpts o = default||h3e128721808f3d5d3438e029c09a821039a75342e2851271e35420570d1affca", "signature": "bool MultiSelect(UiText id, ReadOnlySpan\u003Cstring\u003E items, Span\u003Cbool\u003E selected, MultiSelectOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "selected", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "MultiSelectOpts", "default": "default" }], "summary": "A searchable list with one checkbox per item and chips for the chosen ones. Returns true on the frame an entry flips." }, { "name": "NavItem", "kind": "extension", "id": "extension|NavItem|0|0|bool|UiText label;NavOpts o = default||h163b7c5bf544cc2227cbef6b64c928a89e62b8536a9e4ab947179a86d455c59d", "signature": "bool NavItem(UiText label, NavOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "NavOpts", "default": "default" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "property", "id": "property|NeedsRedraw|0|0|bool||get;|h5aadd05568570958d5b9529ecc317e3ce874d6c40baa003636859fb90a0da9fc", "signature": "bool NeedsRedraw { get; }" }, { "name": "NodeDeleted", "kind": "extension", "id": "extension|NodeDeleted|0|0|bool|ref int nodeId||hc3cfc3ad4c4fc3a042b1dbb26d3de5739a59ee9b1e9f8c1741f772a5e535d6bc", "signature": "bool NodeDeleted(ref int nodeId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeInput", "kind": "extension", "id": "extension|NodeInput|0|0|bool|int pinId;UiText label;PinOpts o = default||hd37a374006c3c8cd18c68d9d7503bd5160359d3f3e458d3531e756c52700b1f0", "signature": "bool NodeInput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "extension", "id": "extension|NodeLink|0|0|bool|int linkId;int fromPin;int toPin||hab2ff05d12c3863dc35ff7ced8cdef83783fba6a2e16dbd81214feb3eaf01910", "signature": "bool NodeLink(int linkId, int fromPin, int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeLinkCreated", "kind": "extension", "id": "extension|NodeLinkCreated|0|0|bool|ref int fromPin;ref int toPin||h7c136a895333c132f83c1d99cf5809163d5430c0060eaaedcf7bbe0f15f462bd", "signature": "bool NodeLinkCreated(ref int fromPin, ref int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "What the user did this frame, one event per call; call them after cui_node_editor_begin (and up to the end of the frame)." }, { "name": "NodeLinkRemoved", "kind": "extension", "id": "extension|NodeLinkRemoved|0|0|bool|ref int linkId||h8cf7097abf407418a15af49e45ee086b240ec03b1e130c7888ce620da1bbadca", "signature": "bool NodeLinkRemoved(ref int linkId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "ref int" }], "summary": "Part of cui_node_link \u2014 A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeOutput", "kind": "extension", "id": "extension|NodeOutput|0|0|bool|int pinId;UiText label;PinOpts o = default||h3750efacdd047bf840c0482278adf33fa6dd72ffa3acb6bf2c1afd789b95d351", "signature": "bool NodeOutput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|0|0|bool|UiText id;ref double value;double min;double max;NumberOpts o = default||h695eacf696437442db4c71e212e9d772037965f7b79fa0164581c32f72012f09", "signature": "bool Number(UiText id, ref double value, double min, double max, NumberOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "o", "type": "NumberOpts", "default": "default" }] }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|0|0|bool|UiText id;ref string value;int length||h8029c922f0c302147b4a9d172f51e477cf692656857072b2505965f1cc911eaf", "signature": "bool OtpInput(UiText id, ref string value, int length)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "length", "type": "int" }], "summary": "One-time code input: length boxes, buffer length \u002B 1." }, { "name": "Pagination", "kind": "extension", "id": "extension|Pagination|0|0|bool|UiText id;ref int page;int pageCount||h79ccb8aea896cd889c714acd8763edcf22dbbfb029a1dbd70ed9639354c6b6c8", "signature": "bool Pagination(UiText id, ref int page, int pageCount)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PopoverIsOpen", "kind": "extension", "id": "extension|PopoverIsOpen|0|0|bool|UiText id||h83722811a2be8261fbe93cc555b026a4a1e130ec294d2cd25013358d929a3c0e", "signature": "bool PopoverIsOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "extension", "id": "extension|PropBool|0|0|bool|UiText label;ref bool value;PropOpts o = default||h121ac40771efea9741585563443f4c4687f7a10d137ffd9d268555b5501ddd64", "signature": "bool PropBool(UiText label, ref bool value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "extension", "id": "extension|PropColor|0|0|bool|UiText label;ref Color value;PropOpts o = default||h6ca0bc5ddc35dae8cf9131bd28c26cd31e497e501164de0d50828fb7983a1cc2", "signature": "bool PropColor(UiText label, ref Color value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref Color" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "A swatch and hex value that opens the color picker." }, { "name": "PropEnum", "kind": "extension", "id": "extension|PropEnum|0|0|bool|UiText label;ReadOnlySpan\u003Cstring\u003E items;ref int index;PropOpts o = default||h241aa42ffd01f5c7a9fadb861af4a608b0c8a014ae458b62692370d10cf009d8", "signature": "bool PropEnum(UiText label, ReadOnlySpan\u003Cstring\u003E items, ref int index, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "extension", "id": "extension|PropFloat|0|0|bool|UiText label;ref float value;PropOpts o = default||hc8efd7345903f342766598358e2e5c0998eb7933cf7f5cec0429b86873ff6ccf", "signature": "bool PropFloat(UiText label, ref float value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "extension", "id": "extension|PropInt|0|0|bool|UiText label;ref int value;PropOpts o = default||hd93df8234e1afb0dba5df9a1531c8936c732948e17db67e12102617d568c305b", "signature": "bool PropInt(UiText label, ref int value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "extension", "id": "extension|PropText|0|0|bool|UiText label;ref string buf;int cap;PropOpts o = default||h46a1a717145b1f3a7800e8921d45ea9b002d8c2fdf5958fbf3c03f97fc47d1db", "signature": "bool PropText(UiText label, ref string buf, int cap, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "extension", "id": "extension|PropVec|0|0|bool|UiText label;ref float value;int components;PropOpts o = default||h57600f963270b3c592fd247d9b1f943533361ae615e7b6ca52e287fa289a67b2", "signature": "bool PropVec(UiText label, ref float value, int components, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "Compact X, Y (Z, W) scrub fields side by side; value holds 2, 3 or 4 floats." }, { "name": "QueryBuilder", "kind": "extension", "id": "extension|QueryBuilder|0|0|bool|UiText id;ReadOnlySpan\u003CQueryField\u003E fields;Span\u003CQueryNode\u003E nodes;ref int count;int capacity;QueryOpts o = default||h63279934815740f429812f645fc20bbc38efc937b246d56e61a9f171034a9922", "signature": "bool QueryBuilder(UiText id, ReadOnlySpan\u003CQueryField\u003E fields, Span\u003CQueryNode\u003E nodes, ref int count, int capacity, QueryOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "Span\u003CQueryNode\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "QueryOpts", "default": "default" }], "summary": "cui_query_builder_ex" }, { "name": "Radio", "kind": "extension", "id": "extension|Radio|0|0|bool|UiText label;ref int value;int option;CheckOpts o = default||h837451b9483026bc7e273c76e5251c0de524d770f182a8365674ac44553130ee", "signature": "bool Radio(UiText label, ref int value, int option, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "extension", "id": "extension|RadioCards|0|0|bool|UiText id;ReadOnlySpan\u003CChoice\u003E choices;ref int index;RadioCardsOpts o = default||h277ecfd91b4ab6ad87556ac5585d5014c5f8f4b70743ded6f2d33b25b513c439", "signature": "bool RadioCards(UiText id, ReadOnlySpan\u003CChoice\u003E choices, ref int index, RadioCardsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "choices", "type": "ReadOnlySpan\u003CChoice\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "RadioCardsOpts", "default": "default" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "extension", "id": "extension|RadioGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index||h13b5e8871098bf87979cd713e4fa844042e8066de15ba83cf7b5cda071897cee", "signature": "bool RadioGroup(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "extension", "id": "extension|RangeCalendar|0|0|bool|UiText id;ref DateRange range;int months||h8c74871e3d5b09aa52567046cfb0cacddba5d6bd45af5a0343aa6ea880da3344", "signature": "bool RangeCalendar(UiText id, ref DateRange range, int months)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "months", "type": "int" }], "summary": "One or two months side by side; click a start and an end." }, { "name": "RangeSlider", "kind": "extension", "id": "extension|RangeSlider|0|0|bool|UiText label;ref float lo;ref float hi;float min;float max||h431a1c22347795ecfaf7422d776daf2552ad13b1bbafc0b34e7ddfbb9f6fca1e", "signature": "bool RangeSlider(UiText label, ref float lo, ref float hi, float min, float max)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "extension", "id": "extension|Rating|0|0|bool|UiText id;ref int value;int max = 5||ha54ef468c924f3613d361d9d3e4ba18c9bed4ef0f7d7dd855532a052b89231ce", "signature": "bool Rating(UiText id, ref int value, int max = 5)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int", "default": "5" }], "summary": "cui_rating" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|0|0|bool|||h289d889249190a219f4708d3f6a34916df30d8dccdd623b1af17d06cf7ad4fe9", "signature": "bool ReorderEnd()" }, { "name": "RulerSlider", "kind": "extension", "id": "extension|RulerSlider|0|0|bool|UiText label;ref float value;float min;float max;RulerOpts o = default||hda8dec175710635b7de7215517d587b9a5332ed440922d693ed02813d9c4deb7", "signature": "bool RulerSlider(UiText label, ref float value, float min, float max, RulerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RulerOpts", "default": "default" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "extension", "id": "extension|Scrub|0|0|bool|UiText label;ref float value;float min;float max;ScrubOpts o = default||h816f9787704b09241842573d59264e0cc5674f4a764e0ae2054b721f3ad20a7b", "signature": "bool Scrub(UiText label, ref float value, float min, float max, ScrubOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "ScrubOpts", "default": "default" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SegmentedOpts o = default||h8452b4d90fbd938f7492782df2bfd7e49e6f17b79bb32a7fa92536dbbc52bbfb", "signature": "bool Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "extension", "id": "extension|Select|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SelectOpts o = default||h4546d9051044aa80f649b171897799d53c415b998250abdc626bf84e5341bea3", "signature": "bool Select(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SelectOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SelectOpts", "default": "default" }], "summary": "cui_select_ex" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|0|0|bool|Mods mods;Key key||h23544d98ad9364c783897d23b07d28fd4c4889f44ac4f6b734142ae19cee295a", "signature": "bool Shortcut(Mods mods, Key key)", "parameters": [{ "name": "mods", "type": "Mods" }, { "name": "key", "type": "Key" }] }, { "name": "ShortcutRecorder", "kind": "extension", "id": "extension|ShortcutRecorder|0|0|bool|UiText id;ref KeyCombo combo;ShortcutRecorderOpts o = default||h22c067848057da16592bf471e38a3d5c8d3e7a976928a24a34dda5e650586e2a", "signature": "bool ShortcutRecorder(UiText id, ref KeyCombo combo, ShortcutRecorderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "combo", "type": "ref KeyCombo" }, { "name": "o", "type": "ShortcutRecorderOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "SignaturePad", "kind": "extension", "id": "extension|SignaturePad|0|0|bool|UiText id;SignatureOpts o = default||h26a7180ac812cfc40208765b73de3283d8bdc2a773db48e467c36bfac61e2f47", "signature": "bool SignaturePad(UiText id, SignatureOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SignatureOpts", "default": "default" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "extension", "id": "extension|Slider|0|0|bool|UiText label;ref float value;float min;float max;SliderOpts o = default||h07890e859be8c8053afac54f6a7ef888728ac54358e77cca1a0c6f9d5936fcd0", "signature": "bool Slider(UiText label, ref float value, float min, float max, SliderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "SliderOpts", "default": "default" }], "summary": "Elastic slider: the track stretches like rubber when dragged past its ends." }, { "name": "StatusBarItem", "kind": "extension", "id": "extension|StatusBarItem|0|0|bool|UiText label;StatusItemOpts o = default||h35fa1b9b36f005ceff913dc858202baee2f50d4678537b369e987582020f4d84", "signature": "bool StatusBarItem(UiText label, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A small clickable item (\u0022Ln 12, Col 4\u0022, \u0022UTF-8\u0022). Returns true when clicked." }, { "name": "StatusButton", "kind": "extension", "id": "extension|StatusButton|0|0|bool|UiText label;Status status;StatusButtonOpts o = default||h5c9d9e2cd49f70a00398d2fe51ccf1933f78becdf2d7e5b610c5e2427ee30722", "signature": "bool StatusButton(UiText label, Status status, StatusButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "status", "type": "Status" }, { "name": "o", "type": "StatusButtonOpts", "default": "default" }], "summary": "cui_status_button_ex" }, { "name": "Switch", "kind": "extension", "id": "extension|Switch|0|0|bool|UiText label;ref bool value;CheckOpts o = default||he58bf080044a84430ae1c50aae77072ba3e8bc1dc7ad4f8576f39e74324cd486", "signature": "bool Switch(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "extension", "id": "extension|TabBar|0|0|bool|UiText id;ReadOnlySpan\u003CTabBarItem\u003E items;ref int selected;TabBarOpts o = default||h3b532a1edd39eaf1a6db4278f4c3c26674c9a67777ba72dd890ca8c67ecbb0d8", "signature": "bool TabBar(UiText id, ReadOnlySpan\u003CTabBarItem\u003E items, ref int selected, TabBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTabBarItem\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TabBarOpts", "default": "default" }], "summary": "cui_tab_bar_ex" }, { "name": "TableRow", "kind": "extension", "id": "extension|TableRow|0|0|bool|bool selected||h5862a1074065231ee67e616f36b6ef2708e5a53d06e9c647dfc4e50f9f54feb9", "signature": "bool TableRow(bool selected)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "selected", "type": "bool" }], "summary": "Begin a row. Returns true when the row is clicked." }, { "name": "Tabs", "kind": "extension", "id": "extension|Tabs|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;TabsOpts o = default||h44602f1d285b43ccb2a4a3f04fc10eeb9824d034d9c4786918ec03417b25d800", "signature": "bool Tabs(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, TabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "TabsOpts", "default": "default" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|0|0|bool|UiText id;ref string value;TagOpts o = default||h7d78f96fc27b022e7ce11dd6a4742470284f57dc2e17866e76fb8b61780bf9f0", "signature": "bool TagInput(UiText id, ref string value, TagOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "TagOpts", "default": "default" }], "summary": "Comma-separated tags in one field; enter or comma adds, backspace removes." }, { "name": "ThemeSwitcher", "kind": "extension", "id": "extension|ThemeSwitcher|0|0|bool|ref int mode;bool withSystem||h6ac2911103fa89f29df34fe5abd3737f62b03fad01ac2c5f7ce9f96f81466e7b", "signature": "bool ThemeSwitcher(ref int mode, bool withSystem)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "bool" }], "summary": "Theme switcher: light, dark and (optionally) system, as a compact icon segmented control. mode is 0 light, 1 dark, 2 system. Light and dark are applied for you; for system call cui_set_theme with the OS setting. Returns true when mode changed." }, { "name": "ThemeToggle", "kind": "extension", "id": "extension|ThemeToggle|0|0|bool|||hac003993a346e758ec03a7b5cae2fbd886929a7ae077d9f9459a78e6cb9e9028", "signature": "bool ThemeToggle()", "extensionOn": "CuiSharp.Ui", "summary": "Sun and moon icon button that toggles the theme with a morph." }, { "name": "TimeDial", "kind": "extension", "id": "extension|TimeDial|0|0|bool|UiText id;ref int hour;ref int minute;float size||hc81f9c9c6cda6a218a1a97579124c3a6415d5a3bec246c2545e9638a3cbefadc", "signature": "bool TimeDial(UiText id, ref int hour, ref int minute, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "Time dial: a clock face. Drag the hand to set hours, then minutes." }, { "name": "TimePicker", "kind": "extension", "id": "extension|TimePicker|0|0|bool|UiText id;ref int hour;ref int minute;TimeOpts o = default||h2f5e91438efc0191e949769048849a3fb8bb629993aef37fa50790655d5a16e2", "signature": "bool TimePicker(UiText id, ref int hour, ref int minute, TimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "o", "type": "TimeOpts", "default": "default" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "extension", "id": "extension|ToastActionClicked|0|0|bool|int handle||h80802ec80123dda69208be2582b05ccc3d887063aa242cdb0a7d5f946417cce1", "signature": "bool ToastActionClicked(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E labels;Span\u003Cbool\u003E values;ToggleGroupOpts o = default||hbf4630396185f73a4900042d74fe62f684385217a55457d20067677982015437", "signature": "bool ToggleGroup(UiText id, ReadOnlySpan\u003Cstring\u003E labels, Span\u003Cbool\u003E values, ToggleGroupOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "labels", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "values", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "ToggleGroupOpts", "default": "default" }], "summary": "A row of toggle buttons sharing one bool per label. Independent by default; Exclusive makes them behave like radio buttons. Returns true on the frame an entry flips." }, { "name": "ToolbarButton", "kind": "extension", "id": "extension|ToolbarButton|0|0|bool|UiText icon;ref bool toggle;ToolOpts o = default||h280488daf404cebc0318d20c1e09b3000ff82103111371b7fdf8c2735fe2c970", "signature": "bool ToolbarButton(UiText icon, ref bool toggle, ToolOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "toggle", "type": "ref bool" }, { "name": "o", "type": "ToolOpts", "default": "default" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeCell", "kind": "extension", "id": "extension|TreeCell|0|0|bool|UiText label;int depth;bool hasChildren;ref bool open;UiText icon||h7d87cfa9d747ede3646c93ffc4296bb6d158f59a36670c943b38b8891f9a08bd", "signature": "bool TreeCell(UiText label, int depth, bool hasChildren, ref bool open, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "bool" }, { "name": "open", "type": "ref bool" }, { "name": "icon", "type": "UiText" }], "summary": "Tree cell: indentation, a disclosure chevron and a label, for tree tables (use it in a table or grid cell). Returns true when *open toggled." }, { "name": "TreeClicked", "kind": "extension", "id": "extension|TreeClicked|0|0|bool|||he0d6c1a473304bfa16c30035268639d026f37ddeade6a53e36b6a43056ea0039", "signature": "bool TreeClicked()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "extension", "id": "extension|Typewriter|0|0|bool|UiText id;UiText text;TextFxOpts o = default||hd2793d1d9701d6e1c2de232ed4163f8a0a17de8606e1a0c00033798e26804d7b", "signature": "bool Typewriter(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Types the text out. When the text grows (streamed tokens) it carries on from where it was; other changes start over. Returns true once complete." }, { "name": "VoiceOrb", "kind": "extension", "id": "extension|VoiceOrb|0|0|bool|UiText id;VoiceState state;float level;VoiceOrbOpts o = default||h55678c858554bd6ffbc3fbad4b03aeb90fff9d582a2dad8b10090a9496cf7d41", "signature": "bool VoiceOrb(UiText id, VoiceState state, float level, VoiceOrbOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "o", "type": "VoiceOrbOpts", "default": "default" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "property", "id": "property|WantsKeyboard|0|0|bool||get;|h9fd1d2033ea34ec49759c84f9a199c15d92ad7e28a6a1a4cc3ebee535bec764b", "signature": "bool WantsKeyboard { get; }" }, { "name": "WantsMouse", "kind": "property", "id": "property|WantsMouse|0|0|bool||get;|h88ad7771300bfdd824d0527cc05ab2978f5a741b34494adb9660c29ae0fd53b7", "signature": "bool WantsMouse { get; }", "summary": "True when the pointer is over this window and the UI wants it." }, { "name": "Waveform", "kind": "extension", "id": "extension|Waveform|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E peaks;ref float progress;WaveformOpts o = default||h82b5eb85d1dd0e891471303dae6af8ef45f993a4522c265b5380640be5f95a34", "signature": "bool Waveform(UiText id, ReadOnlySpan\u003Cfloat\u003E peaks, ref float progress, WaveformOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "peaks", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "progress", "type": "ref float" }, { "name": "o", "type": "WaveformOpts", "default": "default" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "extension", "id": "extension|WheelPicker|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;WheelOpts o = default||h6e20c98f3670a089db93c4a37a910bd23a7f6b3a8ad5c2cd67e1294d58a2fae4", "signature": "bool WheelPicker(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, WheelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "WheelOpts", "default": "default" }], "summary": "cui_wheel_picker_ex" }, { "name": "Time", "kind": "property", "id": "property|Time|0|0|double||get;|h59d804a6c66b43aad6ffe38fb8d686d405da1f1e73a127a3af738e7ba55df397", "signature": "double Time { get; }", "summary": "Seconds since the app started. Monotonic; use it for animation phases." }, { "name": "Animate", "kind": "method", "id": "method|Animate|0|0|float|UiText id;float target||h6aa8f80b2f784f8d21be090f3514e71ea8c5c9e820fb1fc041073b0956552fa8", "signature": "float Animate(UiText id, float target)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }], "summary": "Moves a value toward target with a spring, keyed by id." }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|0|0|float|UiText id;float target;float duration;float bounce||h18961b791dced18013209a15d6f4c3ea989233c2d507d6986cf80ff8eea91b47", "signature": "float AnimateSpring(UiText id, float target, float duration, float bounce)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "Moves a value toward target with a spring of the given duration and bounce." }, { "name": "DeltaTime", "kind": "property", "id": "property|DeltaTime|0|0|float||get;|h9b38e45e1e2ffd64837bd659bc02203c5bcd38701ca6046589022c3424ef1a09", "signature": "float DeltaTime { get; }", "summary": "Seconds since the previous frame, clamped by the host." }, { "name": "DpiScale", "kind": "property", "id": "property|DpiScale|0|0|float||get;|hd6fea6745004ce2bacbb8eac54eebd74e77705ff2605b31ccb4a18c241ebb063", "signature": "float DpiScale { get; }", "summary": "Device pixels per logical point for the window this frame draws into." }, { "name": "ActivityRings", "kind": "extension", "id": "extension|ActivityRings|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E rings;RingsOpts o = default||he739303ba236c8b2947fe3ee08443b09f019e41b8acac0f7da681d197ae0307e", "signature": "int ActivityRings(UiText id, ReadOnlySpan\u003CVizItem\u003E rings, RingsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rings", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "RingsOpts", "default": "default" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "extension", "id": "extension|AgentPlan|0|0|int|UiText id;ReadOnlySpan\u003CPlanStep\u003E steps;AgentPlanOpts o = default||h6067d2501a7a26bcccda0db7d672b245a2fcff12d68ede6c491d265a45d1b4b9", "signature": "int AgentPlan(UiText id, ReadOnlySpan\u003CPlanStep\u003E steps, AgentPlanOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CPlanStep\u003E" }, { "name": "o", "type": "AgentPlanOpts", "default": "default" }], "summary": "cui_agent_plan_ex" }, { "name": "AvatarUpload", "kind": "extension", "id": "extension|AvatarUpload|0|0|int|UiText id;UiText name;ref ulong image;float size||h2032bcd7f55566afffa2cde5d86987aa5b1a36719844c8d755d13b19b16255bb", "signature": "int AvatarUpload(UiText id, UiText name, ref ulong image, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "Avatar upload: a round avatar that takes a dropped image, with a camera badge on hover. Returns 1 when *image changed, -1 when clicked (browse), 0 otherwise. A dropped image is loaded with cui_image_load." }, { "name": "BarList", "kind": "extension", "id": "extension|BarList|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;BarListOpts o = default||h0e2abad96db38540b47d6c74f2cc68369ed40c046f6bf6c2d2dea3c10d465680", "signature": "int BarList(UiText id, ReadOnlySpan\u003CVizItem\u003E items, BarListOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "BarListOpts", "default": "default" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "extension", "id": "extension|Breadcrumb|0|0|int|ReadOnlySpan\u003Cstring\u003E items||h7e5435f64395bbaf15f18d4923a996c88ca3bd79318405fd33733751c65e8682", "signature": "int Breadcrumb(ReadOnlySpan\u003Cstring\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "extension", "id": "extension|CalendarHeatmap|0|0|int|UiText id;Date start;ReadOnlySpan\u003Cfloat\u003E values;CalendarHeatmapOpts o = default||hdf61b9c82e018ac6c9a5f0797950a2a53c4826b47594dd073d18121a1691e796", "signature": "int CalendarHeatmap(UiText id, Date start, ReadOnlySpan\u003Cfloat\u003E values, CalendarHeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "Date" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "CalendarHeatmapOpts", "default": "default" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "extension", "id": "extension|Candlestick|0|0|int|UiText id;ReadOnlySpan\u003CCandle\u003E candles;CandlestickOpts o = default||hdab8fd71be859d6cc56de05a9e2feb81a2532c176230e766fa2ba67fa5260e3c", "signature": "int Candlestick(UiText id, ReadOnlySpan\u003CCandle\u003E candles, CandlestickOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "candles", "type": "ReadOnlySpan\u003CCandle\u003E" }, { "name": "o", "type": "CandlestickOpts", "default": "default" }], "summary": "Returns the candle under the crosshair (pointer or keys), or -1." }, { "name": "CardStack", "kind": "extension", "id": "extension|CardStack|0|0|int|UiText id;int count;DrawFn body;CardStackOpts o = default||h2dadbccb1e5391a98cfda3530cd5b460c17e79dd01b6927d2346f58287b56332", "signature": "int CardStack(UiText id, int count, DrawFn body, CardStackOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CardStackOpts", "default": "default" }], "summary": "cui_card_stack_begin The end call reports which card in the stack is active, or -1, so the body overload returns it." }, { "name": "Checklist", "kind": "extension", "id": "extension|Checklist|0|0|int|UiText id;ReadOnlySpan\u003CCheckStep\u003E steps;ChecklistOpts o = default||hb1cdf5bee54759618ba4c2e6386ab30794ff911948e833f0610afb911e63f554", "signature": "int Checklist(UiText id, ReadOnlySpan\u003CCheckStep\u003E steps, ChecklistOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CCheckStep\u003E" }, { "name": "o", "type": "ChecklistOpts", "default": "default" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "extension", "id": "extension|CommandPalette|0|0|int|ref bool open;ReadOnlySpan\u003CCommand\u003E commands||h001b59aa0ea6df8a0ea3d57d57bc1d6c25690db136f11ce1d794c93d9c7bbfc3", "signature": "int CommandPalette(ref bool open, ReadOnlySpan\u003CCommand\u003E commands)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "open", "type": "ref bool" }, { "name": "commands", "type": "ReadOnlySpan\u003CCommand\u003E" }], "summary": "Spotlight style command palette. Returns the index of the chosen command, or -1. Open it with a shortcut: if (cui_shortcut(ui, CUI_MOD_PRIMARY, CUI_KEY_K)) open = true;" }, { "name": "DiffRows", "kind": "extension", "id": "extension|DiffRows|0|0|int|UiText id;Span\u003CDiffRow\u003E rows;int first = default||h5c94a97ef7958912de5bdb07673a9402664eef62f0238701e95229d154b6ac95", "signature": "int DiffRows(UiText id, Span\u003CDiffRow\u003E rows, int first = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rows", "type": "Span\u003CDiffRow\u003E" }, { "name": "first", "type": "int", "default": "default" }], "summary": "Copies up to rows.Length of the diff view\u0027s rows into rows, starting at row first." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the window is tracking as dropped; a dropzone reports them first." }, { "name": "Dropzone", "kind": "extension", "id": "extension|Dropzone|0|0|int|UiText id;DropzoneOpts o = default||h1a4c314252379bc356942c2d624bf8dc2388e096a816cda96c08748d80f874cf", "signature": "int Dropzone(UiText id, DropzoneOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DropzoneOpts", "default": "default" }], "summary": "cui_dropzone_ex" }, { "name": "Funnel", "kind": "extension", "id": "extension|Funnel|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E stages;FunnelOpts o = default||he5202d3e37c12c123db9bc8dddaf33f25d6ee0d1790d21a12846d2233ba2f5e4", "signature": "int Funnel(UiText id, ReadOnlySpan\u003CVizItem\u003E stages, FunnelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "FunnelOpts", "default": "default" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "extension", "id": "extension|Gantt|0|0|int|UiText id;Span\u003CGanttTask\u003E tasks;Date origin;int days;GanttOpts o = default||h6405eb5f36078bd6c78b652a408e39c0fdb1c3a89355a3c7e0368f5d2306981a", "signature": "int Gantt(UiText id, Span\u003CGanttTask\u003E tasks, Date origin, int days, GanttOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tasks", "type": "Span\u003CGanttTask\u003E" }, { "name": "origin", "type": "Date" }, { "name": "days", "type": "int" }, { "name": "o", "type": "GanttOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Heatmap", "kind": "extension", "id": "extension|Heatmap|0|0|int|UiText id;ReadOnlySpan\u003Cfloat\u003E values;int rows;int cols;HeatmapOpts o = default||hb23a8befed5cb93e645e80d3a23d15bd4f06bdbf22a6f65815edb1bef4129225", "signature": "int Heatmap(UiText id, ReadOnlySpan\u003Cfloat\u003E values, int rows, int cols, HeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "o", "type": "HeatmapOpts", "default": "default" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "extension", "id": "extension|InlineEdit|0|0|int|UiText id;ref string buf;int cap = 256;InlineEditOpts o = default||hdc2fcc11f00fc875b370e784540495eec9451da64bf16b076e0bf19bfc7c475a", "signature": "int InlineEdit(UiText id, ref string buf, int cap = 256, InlineEditOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int", "default": "256" }, { "name": "o", "type": "InlineEditOpts", "default": "default" }], "summary": "cui_inline_edit_ex" }, { "name": "PasswordStrength", "kind": "extension", "id": "extension|PasswordStrength|0|0|int|UiText password||h485b27b320ae208ea07b64ec8e1f317ab018ad6465c8ddb02cd01a4424689adb", "signature": "int PasswordStrength(UiText password)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "password", "type": "UiText" }], "summary": "Password strength meter (0 weak .. 4 strong). Returns the score." }, { "name": "PromptSuggestions", "kind": "extension", "id": "extension|PromptSuggestions|0|0|int|UiText id;ReadOnlySpan\u003CPromptSuggestion\u003E items;PromptSuggestionsOpts o = default||ha7ba62105e302f4fa64dd30bf005d6217ab47f44b8de4dcb382d55bb8686de65", "signature": "int PromptSuggestions(UiText id, ReadOnlySpan\u003CPromptSuggestion\u003E items, PromptSuggestionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CPromptSuggestion\u003E" }, { "name": "o", "type": "PromptSuggestionsOpts", "default": "default" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "extension", "id": "extension|RadarChart|0|0|int|UiText id;ReadOnlySpan\u003CSeries\u003E series;ReadOnlySpan\u003Cstring\u003E axes;RadarOpts o = default||hc3ad2df41c9c6b26dc90f3b916ae531651d598ceef8ab541dd035331b9ea768a", "signature": "int RadarChart(UiText id, ReadOnlySpan\u003CSeries\u003E series, ReadOnlySpan\u003Cstring\u003E axes, RadarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CSeries\u003E" }, { "name": "axes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "RadarOpts", "default": "default" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "extension", "id": "extension|Reactions|0|0|int|UiText id;Span\u003CReaction\u003E items||h7528193af8d452456269a4867874808d1a14d9b9b10f82f0f851537b4f5fcc31", "signature": "int Reactions(UiText id, Span\u003CReaction\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "Span\u003CReaction\u003E" }], "summary": "cui_reactions" }, { "name": "Sankey", "kind": "extension", "id": "extension|Sankey|0|0|int|UiText id;ReadOnlySpan\u003Cstring\u003E nodes;ReadOnlySpan\u003CSankeyLink\u003E links;SankeyOpts o = default||h54e60f881596c8425c36f81063bcf3bca0ae525a5cb9acb9d9291c93343d590b", "signature": "int Sankey(UiText id, ReadOnlySpan\u003Cstring\u003E nodes, ReadOnlySpan\u003CSankeyLink\u003E links, SankeyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "links", "type": "ReadOnlySpan\u003CSankeyLink\u003E" }, { "name": "o", "type": "SankeyOpts", "default": "default" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "extension", "id": "extension|ScatterChart|0|0|int|UiText id;ReadOnlySpan\u003CScatterSeries\u003E series;ScatterOpts o = default||hff3593e05140bd9fcdc8f3c4f996ca064ecb18c59024984a51431c04b86145eb", "signature": "int ScatterChart(UiText id, ReadOnlySpan\u003CScatterSeries\u003E series, ScatterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CScatterSeries\u003E" }, { "name": "o", "type": "ScatterOpts", "default": "default" }], "summary": "cui_scatter_chart_ex" }, { "name": "SourceList", "kind": "extension", "id": "extension|SourceList|0|0|int|UiText id;ReadOnlySpan\u003CSource\u003E sources||h6f59cfee8fa72dc7eca177af354e0a6f666d1ec1975ff987f31f00841dd57a41", "signature": "int SourceList(UiText id, ReadOnlySpan\u003CSource\u003E sources)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "sources", "type": "ReadOnlySpan\u003CSource\u003E" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "extension", "id": "extension|SpeedDial|0|0|int|UiText id;ReadOnlySpan\u003CSpeedAction\u003E actions;SpeedDialOpts o = default||h8f3dcc4f3e218426dd87000bfe603cd7a2a64cc3cdaa021cbc2dea064de87347", "signature": "int SpeedDial(UiText id, ReadOnlySpan\u003CSpeedAction\u003E actions, SpeedDialOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "actions", "type": "ReadOnlySpan\u003CSpeedAction\u003E" }, { "name": "o", "type": "SpeedDialOpts", "default": "default" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "extension", "id": "extension|SplitBar|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;SplitBarOpts o = default||h16bc37b28b54a3959b1ffffa5d212e2ce5767fa384b82e9693cfc0cf3ecba083", "signature": "int SplitBar(UiText id, ReadOnlySpan\u003CVizItem\u003E items, SplitBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "SplitBarOpts", "default": "default" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "extension", "id": "extension|SplitButton|0|0|int|UiText label;ReadOnlySpan\u003Cstring\u003E items;SplitButtonOpts o = default||hab5170280449718e8bb4e18299a9939e8c4585d7f457498a1884dce52f1a5b83", "signature": "int SplitButton(UiText label, ReadOnlySpan\u003Cstring\u003E items, SplitButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "SplitButtonOpts", "default": "default" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItem", "kind": "extension", "id": "extension|SwipeItem|0|0|int|UiText id;ReadOnlySpan\u003CSwipeAction\u003E left;ReadOnlySpan\u003CSwipeAction\u003E right;DrawFn body||hde404a799a1b468b7df4ac9ce65a247c02d83d6788917c5eb60378cb5ebf709d", "signature": "int SwipeItem(UiText id, ReadOnlySpan\u003CSwipeAction\u003E left, ReadOnlySpan\u003CSwipeAction\u003E right, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "left", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "right", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_swipe_item_begin The end call reports which swipe action was taken, or -1, so the body overload returns it." }, { "name": "Toast", "kind": "extension", "id": "extension|Toast|0|0|int|UiText title;ToastOpts o = default||hf3201662ddfe1d84b58e5851658ccd1e36ba6d53acdb101b80df283a2f0ee264", "signature": "int Toast(UiText title, ToastOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ToastOpts", "default": "default" }], "summary": "Queue a toast. Returns a handle; cui_toast_action_clicked(handle) tells whether its action button was pressed." }, { "name": "Toc", "kind": "extension", "id": "extension|Toc|0|0|int|UiText scrollId;ReadOnlySpan\u003CTocItem\u003E items||h226d5cf4f0b7b58f3c7df69b1762d483d977d46968c43d4468a7db886e3771f0", "signature": "int Toc(UiText scrollId, ReadOnlySpan\u003CTocItem\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTocItem\u003E" }], "summary": "cui_toc" }, { "name": "TreeTableDepth", "kind": "extension", "id": "extension|TreeTableDepth|0|0|int|||h6f4316e2e33c3ebb9b14932b5fc588d50a9b4b5b52a70f672523341f85c34b6b", "signature": "int TreeTableDepth()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "extension", "id": "extension|TreeTableRow|0|0|int|||h6f0d82997cbd7dfd529bd1d04c7fd279173e864794b9acde1a6f8cf0deb80e45", "signature": "int TreeTableRow()", "extensionOn": "CuiSharp.Ui", "summary": "The next row in view: returns its node, or -1 when done. Then build its cells: cui_tree_table_name first, then cui_data_grid_cell(_text)." }, { "name": "Treemap", "kind": "extension", "id": "extension|Treemap|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;TreemapOpts o = default||hea14dd60cbeb36d78c486e9549f6917d7d431d80c23f54fe86c191e4e647a6e4", "signature": "int Treemap(UiText id, ReadOnlySpan\u003CVizItem\u003E items, TreemapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "TreemapOpts", "default": "default" }], "summary": "cui_treemap_ex" }, { "name": "Waffle", "kind": "extension", "id": "extension|Waffle|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;WaffleOpts o = default||hbb9c8a5b82ec5547e3c36f001de128742bbee117c0a3da39be26ed99600e3617", "signature": "int Waffle(UiText id, ReadOnlySpan\u003CVizItem\u003E items, WaffleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "WaffleOpts", "default": "default" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "extension", "id": "extension|WeekCalendar|0|0|int|UiText id;Date weekStart;Span\u003CCalendarEvent\u003E events;WeekOpts o = default||h6ebe88be9f390e98d2c4c1e3f796e62f09b23309fe4f21093ce3e1e506653fc9", "signature": "int WeekCalendar(UiText id, Date weekStart, Span\u003CCalendarEvent\u003E events, WeekOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "weekStart", "type": "Date" }, { "name": "events", "type": "Span\u003CCalendarEvent\u003E" }, { "name": "o", "type": "WeekOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|int?|UiText id;ReadOnlySpan\u003Cstring\u003E items;int value;SegmentedOpts o = default||hfb54a79c3ab77ad5f8295229f391ceafab348451a898c9a700f5adccce24a7a9", "signature": "int? Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, int value, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "value", "type": "int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "Returns the chosen index on a change, otherwise null." }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|string|Accent accent||h0e37f10433228fc19b1442b10a947b92a35e4c1252d1688e2237e77f9c961f50", "signature": "static string AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "The name of an accent as the UI shows it: \u0022Violet\u0022." }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|string|Key key||ha31820aa00db9a4c2b6c84c51b79eb08b079cecb712605806d2763204d3f8fc8", "signature": "static string KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "The name of a key as the UI shows it: A, Space, F5." }, { "name": "CronDescribe", "kind": "extension", "id": "extension|CronDescribe|0|0|string?|UiText cron||hd4c9ada55bcf91c1c683541837ecf35a841f847a3eee89aabbb26c529db1cd47", "signature": "string? CronDescribe(UiText cron)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cron", "type": "UiText" }], "summary": "\u0022Every weekday at 09:30\u0022, in frame memory; NULL when invalid." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "EmojiPicker", "kind": "extension", "id": "extension|EmojiPicker|0|0|string?|UiText id;ref string recent;ref int tone;EmojiPickerOpts o = default||h15890f303b9bfcb523f735ab2f9e6844938b14c17122927fe58f4714c2d1577c", "signature": "string? EmojiPicker(UiText id, ref string recent, ref int tone, EmojiPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "recent", "type": "ref string" }, { "name": "tone", "type": "ref int" }, { "name": "o", "type": "EmojiPickerOpts", "default": "default" }], "summary": "cui_emoji_picker_ex" }, { "name": "ShortcutLabel", "kind": "extension", "id": "extension|ShortcutLabel|0|0|string?|KeyCombo combo||hbc2b6ede54efc1cdfc932533bfaa02df6e2091b08013ed268adaeb5f70fe77fd", "signature": "string? ShortcutLabel(KeyCombo combo)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "combo", "type": "KeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "LastId", "kind": "property", "id": "property|LastId|0|0|uint||get;|hb45a60a2627c7935e56a964ff3d4b23b89b21d8a180962ea221f54c95e1e68d2", "signature": "uint LastId { get; }", "summary": "The id of the widget drawn last, which is what Target and the other \u0022point at this\u0022 APIs take. Read it immediately after the control." }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|0|0|uint|UiText id||hf729d2c0f406a6b883b2cbb0e869941e897aaaef891e76b22daa8e479857208d", "signature": "uint MakeId(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "A stable cui_id for a string, for Animate and State callers." }, { "name": "CreateImage", "kind": "method", "id": "method|CreateImage|0|0|ulong|int width;int height;ReadOnlySpan\u003Cbyte\u003E rgba||h5ee4689276531d64da132f6a1cc9e229a83100259c335ca4ab5a007c20a68ce7", "signature": "ulong CreateImage(int width, int height, ReadOnlySpan\u003Cbyte\u003E rgba)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Uploads RGBA8 pixels as a texture. The pixels are copied, so the span may live on the stack. Release the handle with DestroyImage when the page that shows it is done with it \u2014 State\u0060\u00601 with an onFree callback is the usual owner." }, { "name": "DockSave", "kind": "extension", "id": "extension|DockSave|0|0|ulong|UiText id;ref string buf;int cap||h10c71156edbbe3c5e529016814c796584f469d6d0b0b7466e4bde6ba2b0893b4", "signature": "ulong DockSave(UiText id, ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Saved layout: one line, e.g. dock1 h0.22([*Scene tree,Assets],v0.7([*Viewport],[*Log,-Console])) h splits side by side and v stacks, the number is the first child\u0027s share, [..] is a leaf\u0027s tabs in order, * the selected tab, - a closed panel; a backslash escapes , [ ] ( ) and itself in names. cui_dock_save returns the full length (as snprintf does) and writes what fits, or 0 when there is no layout. cui_dock_load replaces the layout (and sets each panel\u0027s *open from it on its next frame); names it does not know yet are kept for when they appear. Malformed text returns false and changes nothing." }, { "name": "FrameCount", "kind": "property", "id": "property|FrameCount|0|0|ulong||get;|h7254dceb0c426d20c644d45bf8a5ca3e9a444a54dee4128f0adcf9db4b00c8fc", "signature": "ulong FrameCount { get; }", "summary": "Frames presented so far, counted by CUI." }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|void|UiText title;ref bool open;DrawFn body||h5a6e18ec6c43cdc43af8a25085ec728fca441d6f03d65c135ac01415603bdc5b", "signature": "void Accordion(UiText title, ref bool open, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "AddFontFallback", "kind": "extension", "id": "extension|AddFontFallback|0|0|void|Font font;Font fallback||h046e79521dc69de86a794461399d269a9ea51fd36fd162afddde019ca45934e1", "signature": "void AddFontFallback(Font font, Font fallback)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "Adds a fallback CUI reaches for when font has no glyph. The chain holds at most four fallbacks; when it is exhausted CUI scans every other loaded face before giving up. A glyph no face has draws nothing at all \u2014 not even a .notdef box in every font \u2014 so an untranslated screen comes up blank with no warning. UseSystemFontFallback is the check for that, and the bundled faces are Latin. The glyph atlas is what a large script actually costs: one texture of CUI_ATLAS_MAX (4096) pixels per side, with the frame\u0027s glyph cache reset between frames, so a font that makes every frame load new glyphs is the expensive case. Register the faces a language needs at startup, not per frame." }, { "name": "AgentStatus", "kind": "extension", "id": "extension|AgentStatus|0|0|void|UiText text;AgentStatusOpts o = default||h61ac25149bb714e9244c62474d67f93158a7f9bd1583135da08e6b32a5ac5120", "signature": "void AgentStatus(UiText text, AgentStatusOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "AgentStatusOpts", "default": "default" }], "summary": "cui_agent_status_ex" }, { "name": "Avatar", "kind": "extension", "id": "extension|Avatar|0|0|void|UiText name;AvatarOpts o = default||h86ad06b6f35491ed7cd4f337c2a2688db37d73bfec4c164c7b90267365ce8af2", "signature": "void Avatar(UiText name, AvatarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "AvatarOpts", "default": "default" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "extension", "id": "extension|AvatarGroup|0|0|void|ReadOnlySpan\u003Cstring\u003E names;int maxVisible = 4;float size = 32f||h2aebe32a1e3101b42a18771fc77f1b10cb011e17bea49c9f7cbf01e0be5ca252", "signature": "void AvatarGroup(ReadOnlySpan\u003Cstring\u003E names, int maxVisible = 4, float size = 32f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "names", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "maxVisible", "type": "int", "default": "4" }, { "name": "size", "type": "float", "default": "32f" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "extension", "id": "extension|Badge|0|0|void|UiText text;BadgeOpts o = default||h2e146cbd498ce9ebfdcbb978fe8414bd9ff4389e1361c02fa453b24fcfc15d1c", "signature": "void Badge(UiText text, BadgeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "BadgeOpts", "default": "default" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||hdd24ad8679c5e482e048ed73ce69225b69c19ad5704a83f9a427093e4551242a", "signature": "void BarChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A bar chart of one series. See LineChart." }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||h8d42b4d0a483459731da6ec00c3001f0d1f69bd28a07b4618095e800910f67c7", "signature": "void BarChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|void|UiText id;int count;ref int index;DrawFn body;CarouselOpts o = default||haf6583b1edd10132a276ed92f3c7cc7b139b36644ab8586eadce1ce1ae7cf431", "signature": "void Carousel(UiText id, int count, ref int index, DrawFn body, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ChatDivider", "kind": "extension", "id": "extension|ChatDivider|0|0|void|UiText label||hdb17d96dbafb815bdf9d77a06116d1a2d004dbf0c4190716f604d7f7503032a5", "signature": "void ChatDivider(UiText label)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ChatOpts o = default||h0067e7f3c9a991c64026e5433bcd84d614a634bb99011d70cf7548c49b4d0e46", "signature": "void ChatMessage(UiText text, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "Same as the overload with ref markdownResult, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ref MarkdownResult markdownResult;ChatOpts o = default||he419f66e4261e2e5f8341890ace8476938bbabe2ce7747bb1cf378821e824da4", "signature": "void ChatMessage(UiText text, ref MarkdownResult markdownResult, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "markdownResult", "type": "ref MarkdownResult" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "extension", "id": "extension|Code|0|0|void|UiText text||heb5c95cf0725be5b6a3d5d064b904bf47fbe9b2889e74bd910d61b666764b439", "signature": "void Code(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "extension", "id": "extension|CodeBlock|0|0|void|UiText id;UiText code;CodeOpts o = default||h649344835854747b9cbde6157eb263d70a9df1f246e3854f21806fef682fedac", "signature": "void CodeBlock(UiText id, UiText code, CodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "code", "type": "UiText" }, { "name": "o", "type": "CodeOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "CodeEditorFind", "kind": "extension", "id": "extension|CodeEditorFind|0|0|void|UiText id;UiText query||ha5ad5e0daacc15247f7497756195d2f521b1676f4f4275c1360e7dd6a099a27e", "signature": "void CodeEditorFind(UiText id, UiText query)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "query", "type": "UiText" }], "summary": "Opens the find bar with query and selects the next match (NULL closes)." }, { "name": "CodeEditorGoto", "kind": "extension", "id": "extension|CodeEditorGoto|0|0|void|UiText id;int line;int column||he046da323e1fb441003f0aff4a8b1fb21892920cc0d306e08811c4d4b477dfae", "signature": "void CodeEditorGoto(UiText id, int line, int column)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "On the editor\u0027s next frame: put the caret at a line and column (1 based), focus the editor and scroll there. Call from the same id scope." }, { "name": "CodeEditorSelect", "kind": "extension", "id": "extension|CodeEditorSelect|0|0|void|UiText id;int anchor;int cursor||hbae83fe5ce54e61f495c10224f17c5f97155815624a80c230f94b710bbd25bbc", "signature": "void CodeEditorSelect(UiText id, int anchor, int cursor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "On the next frame: select bytes anchor..cursor, focus and scroll there." }, { "name": "Component", "kind": "extension", "id": "extension|Component|0|0|void|Component component||h848740a50a9eb8dc56641315816144114376ac9c315542b20691de3cbc9300d4", "signature": "void Component(Component component)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "component", "type": "Component" }], "summary": "Draws component, with its own error boundary." }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|void|UiText id;DrawFn body||h639ca26a4859a28b5d0c68a17b414a22b59f92e32460ae828991807709b85741", "signature": "void ContextMenu(UiText id, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ContextMeter", "kind": "extension", "id": "extension|ContextMeter|0|0|void|UiText id;float used;float limit;ContextOpts o = default||h19d9530359d94af2f36c2f8a876d49576ae0e0c4c67e5270f45fdf36934d1c78", "signature": "void ContextMeter(UiText id, float used, float limit, ContextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "o", "type": "ContextOpts", "default": "default" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "extension", "id": "extension|Countdown|0|0|void|UiText id;double secondsLeft;CountdownOpts o = default||h821d564a1492fd931adfbbc43d4c182d207343abf289fdf0702df537f77d848a", "signature": "void Countdown(UiText id, double secondsLeft, CountdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "secondsLeft", "type": "double" }, { "name": "o", "type": "CountdownOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Counter", "kind": "extension", "id": "extension|Counter|0|0|void|UiText id;double value;CounterOpts o = default||h0b05971fdda28297316e6f4447ca5d501aa7a11fe9da2f3bdc3756e5b7c5ffd3", "signature": "void Counter(UiText id, double value, CounterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "double" }, { "name": "o", "type": "CounterOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|void|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;DrawFn body;GridOpts o = default||h9c456dfa1016ff4f42bd0014595270a05519919f42743036e5fc9f8cb8147c63", "signature": "void DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, DrawFn body, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Draws the body only when open; closes and publishes state even on exceptions." }, { "name": "DataGridCell", "kind": "extension", "id": "extension|DataGridCell|0|0|void|||h17266c47617cb3e20e5aafb4e0740fb451853300d3ea2f4cf357c27f4e0c97e5", "signature": "void DataGridCell()", "extensionOn": "CuiSharp.Ui", "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "extension", "id": "extension|DataGridCellText|0|0|void|UiText text||hbc15a57820d975503239bf1e6c43046de51dd25c53400b94dc05e4c5ec821c22", "signature": "void DataGridCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_data_grid_cell_text" }, { "name": "DestroyImage", "kind": "method", "id": "method|DestroyImage|0|0|void|ulong texture||h233513e5e0f04cab6a29321054080d17776d33b361cec53060f335038ac6c4f4", "signature": "void DestroyImage(ulong texture)", "parameters": [{ "name": "texture", "type": "ulong" }], "summary": "Frees a texture obtained from CreateImage, LoadImage or a widget that loaded one for you (the avatar upload). Passing 0 does nothing, so a field can be cleared and released in one step." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|void|UiText title;ref bool open;DrawFn body;DialogOpts o = default||hb9a2198e7b3396b3f8e81f53972b52816f4e10d0c965758cb0b8e59b20c0dad6", "signature": "void Dialog(UiText title, ref bool open, DrawFn body, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|void|UiText title;ref bool open;DrawFn body;DockPanelOpts o = default||haec3aec1f30c0641ff9d8d21ef9827c8984e582f195575f5bdafa8e30c26bf47", "signature": "void DockPanel(UiText title, ref bool open, DrawFn body, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockSeparator", "kind": "extension", "id": "extension|DockSeparator|0|0|void|||h4f7b4ffb27ff0752d3414c6e36155f014d64756d9c99299d0061f4d3b662e948", "signature": "void DockSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_dock_separator" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|0|0|void|UiText id;float[] values;string[]? labels = null;ChartOpts o = default||h105b6ba9a48212810ca8eaa543dfd59b8bcbb7a078d6d00c43caa8337cf3e984", "signature": "void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "float[]" }, { "name": "labels", "type": "string[]?", "default": "null" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|0|0|void|float cx;float cy;float radius;float fromRadians;float toRadians;float thickness;Color color||h75c08329ccf02db7c649c3de4062b857fcb9fb9b5607cc0cdc3ffa02cdd3a32a", "signature": "void DrawArc(float cx, float cy, float radius, float fromRadians, float toRadians, float thickness, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "fromRadians", "type": "float" }, { "name": "toRadians", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "An arc from fromRadians to toRadians." }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|0|0|void|float cx;float cy;float radius;Color color||hb1d4daba0313192a47661dfdcba2bbea774eacd066b6e992e4b4698dddcde09a", "signature": "void DrawCircle(float cx, float cy, float radius, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A filled circle." }, { "name": "DrawEmoji", "kind": "extension", "id": "extension|DrawEmoji|0|0|void|UiText utf8;RectF r||ha6979720ffa9f6b639eedcdc2f34912ae99c3e8f6db6d29d49b7a755626e5e61", "signature": "void DrawEmoji(UiText utf8, RectF r)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "r", "type": "RectF" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|0|0|void|UiText icon;RectF r;Color color;float size = 16f||hd54b671c520dcce41f616162ba2038b0604408edb2178e4e538b9fd737631621", "signature": "void DrawIcon(UiText icon, RectF r, Color color, float size = 16f)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "16f" }], "summary": "Draws an icon glyph into a rectangle." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;Color tint;float radius = default||h02908132cac945b65c579f6460fda70375b546d9df86cb8e4446b3d6369a8ad2", "signature": "void DrawImage(ulong texture, RectF destination, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws the whole texture into destination." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;RectF uv;Color tint;float radius = default||h19922f36165664b04b3f13745794f29cd576c87d690e38abfacd839c9eebe6ea", "signature": "void DrawImage(ulong texture, RectF destination, RectF uv, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "uv", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws a texture into destination, sampling uv in 0..1 texture coordinates." }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|0|0|void|float x0;float y0;float x1;float y1;float thickness;Color color||h7c718f3cf261fcdd9890ecc99c37b4c7ef88951855160bbd3b4b84bbb0906183", "signature": "void DrawLine(float x0, float y0, float x1, float y1, float thickness, Color color)", "parameters": [{ "name": "x0", "type": "float" }, { "name": "y0", "type": "float" }, { "name": "x1", "type": "float" }, { "name": "y1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A line between two points." }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;Color color||h0a35ee50b137930776943658c6a4b0a802340e6fc1443224120f511919b82309", "signature": "void DrawPolygon(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, Color color)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "color", "type": "Color" }], "summary": "A convex polygon through the given x/y pairs." }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;float thickness;Color color;bool closed = default||h4c7f07e3c9fc697e544cc98214f394946bae499ac03450d9e5812ced69ce04e9", "signature": "void DrawPolyline(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, float thickness, Color color, bool closed = default)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "closed", "type": "bool", "default": "default" }], "summary": "A polyline through the given x/y pairs." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;Color border;float borderWidth;float radius = default||h4ba9a89c0df1a36edef3bc858b12de8bb1c2d9020a801bc38d101b16e9839611", "signature": "void DrawRect(RectF r, Color fill, Color border, float borderWidth, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "border", "type": "Color" }, { "name": "borderWidth", "type": "float" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle and strokes its border." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;float radius = default||hbede7dc4a83173600f87c3151cfb881b786025c1a85bfc6cfd41ac9c76b997ec", "signature": "void DrawRect(RectF r, Color fill, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle." }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|0|0|void|RectF r;Color top;Color bottom;float radius = default||hdfb2b1697ea2ab6d38c629c2592cb4496e061c2c2d2d73080e90e315c179fa59", "signature": "void DrawRectGradient(RectF r, Color top, Color bottom, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "top", "type": "Color" }, { "name": "bottom", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle with a vertical gradient." }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|0|0|void|RectF r;Color color;float blur = 12f;float spread = default;float dx = default;float dy = 2f;float radius = default||hd608a1aa394a6724e278bdd79827b6dd27fa0b58389aad230a6976a37e6e1bc9", "signature": "void DrawShadow(RectF r, Color color, float blur = 12f, float spread = default, float dx = default, float dy = 2f, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "blur", "type": "float", "default": "12f" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "dx", "type": "float", "default": "default" }, { "name": "dy", "type": "float", "default": "2f" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "A soft drop shadow behind a rounded rectangle." }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|0|0|void|UiText text;float x;float y;Color color;float size = 12f;Font font = Font.Body||ha379555b96749e8089ccd4a67f9f06f0c97c8e3bf6628a829212e087cdf44073", "signature": "void DrawText(UiText text, float x, float y, Color color, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Draws text outside layout, from a string, UTF-8 bytes, or interpolation." }, { "name": "Emoji", "kind": "extension", "id": "extension|Emoji|0|0|void|UiText utf8;float size||hcce49478392e105a5082cf12fe2c18e8a68954f1395b48ec19c91052abdbfa90", "signature": "void Emoji(UiText utf8, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|void|UiText title;ref bool open;DrawFn body;ExpandableCardOpts o = default||h45a44cd40dda73a400ba664b3783303201ba3f221c6a0c0021b4519c21652a83", "signature": "void ExpandableCard(UiText title, ref bool open, DrawFn body, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Gap", "kind": "extension", "id": "extension|Gap|0|0|void|float size||h89c0f099b911f74a22d756328dc6f8c634ce4e2561cfb7403549af06bfe120d2", "signature": "void Gap(float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "extension", "id": "extension|Gauge|0|0|void|UiText label;float value;float size = 130f||h0d866db02a3773b1f94110de3177536a50289e2eb2f4f1328d5ea96164ce0e3d", "signature": "void Gauge(UiText label, float value, float size = 130f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "130f" }], "summary": "cui_gauge" }, { "name": "GradientText", "kind": "extension", "id": "extension|GradientText|0|0|void|UiText text;GradientTextOpts o = default||h3f77173db929d5d0326fb0d6aacd31968c768ec86de8e25973b46685c05898a0", "signature": "void GradientText(UiText text, GradientTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "GradientTextOpts", "default": "default" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "extension", "id": "extension|Heading|0|0|void|UiText text;int level = 2||h557aed71184ccf0f99a503a8e9e31f47bd8f19daa88deaf28acbf6bd2f58da8f", "signature": "void Heading(UiText text, int level = 2)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "level", "type": "int", "default": "2" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "extension", "id": "extension|HexViewGoto|0|0|void|UiText id;ulong offset||he99988413132b927d206b59bb10ff266913c4aed14642da49708324af5d3a4ea", "signature": "void HexViewGoto(UiText id, ulong offset)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "offset", "type": "ulong" }], "summary": "Go to offset: on the view\u0027s next frame its cursor moves to offset, that byte becomes the selection and it scrolls into view (to the middle when it was out of sight). Wire a \u0022Go to\u0022 field to it; it is safe to call every frame." }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|void|UiText id;DrawFn body;HoverCardOpts o = default||h1feb5df25fc90d51f65ce5d548e1c92a15c20d4dbcfb120ec57197031f6bf861", "signature": "void HoverCard(UiText id, DrawFn body, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Icon", "kind": "method", "id": "method|Icon|0|0|void|UiText icon;float size = 16f;Color color = default||ha3c2c3c378676921960172e72c0cd75e176f823d910f148819cb62c5c07fcdb7", "signature": "void Icon(UiText icon, float size = 16f, Color color = default)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "size", "type": "float", "default": "16f" }, { "name": "color", "type": "Color", "default": "default" }] }, { "name": "Image", "kind": "extension", "id": "extension|Image|0|0|void|ulong tex;ImageOpts o = default||h4aba4bdd877e6dfb8e45ba090aba9ec93a98e0c6441d125c9038d1be437dc417", "signature": "void Image(ulong tex, ImageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "tex", "type": "ulong" }, { "name": "o", "type": "ImageOpts", "default": "default" }], "summary": "cui_image_ex" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|void|UiText id;DrawFn body;InspectorOpts o = default||h841cdf7d1c9125bb04f373e4d2f93c10eccdb9bcbb43da0de7dccc3769b41a32", "signature": "void Inspector(UiText id, DrawFn body, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Kbd", "kind": "extension", "id": "extension|Kbd|0|0|void|UiText keys||h417076fb4869022dd26ff1c344a189d091fce7e448e96c96224d62f1a451f6d1", "signature": "void Kbd(UiText keys)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "keys", "type": "UiText" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Label", "kind": "extension", "id": "extension|Label|0|0|void|UiText text||h72e24445b52f829a1571cbd68c5c6fac6835700a497232df3ad518950a463221", "signature": "void Label(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||h3cdc2012853a1aaf00f86229fc128bb443d3b47540340bb22a37e12c48168603", "signature": "void LineChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A line chart of one series. This is the overload most charts want: the samples are passed directly, and an empty span draws nothing at all." }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||hc086d5dcd804a5f509ce75cc8bee9f3f8667a55ceb50af4ffaabadafd4609ad0", "signature": "void LineChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Loader", "kind": "extension", "id": "extension|Loader|0|0|void|LoaderOpts o = default||h5945e358ac0fbf3d0cb4c3df6db1ab5234d41a31263116b2fb63eee24b3e9451", "signature": "void Loader(LoaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "LoaderOpts", "default": "default" }], "summary": "cui_loader_ex" }, { "name": "LogView", "kind": "extension", "id": "extension|LogView|0|0|void|UiText id;LogBuffer log;LogViewOpts o = default||h629acfd43966ab117356ba793bd70ad6b9dfe93587dd289ab839a823556ecc7b", "signature": "void LogView(UiText id, LogBuffer log, LogViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "log", "type": "LogBuffer" }, { "name": "o", "type": "LogViewOpts", "default": "default" }], "summary": "Draws log with its toolbar: level filters, search with highlight, Follow, Copy and Clear. Scrolling up turns Follow off; reaching the bottom turns it back on." }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|void|UiText label;DrawFn body;MenuOpts o = default||h46a55ef5a629d54cea211e8cff97db0e260e3c390254e4a74263ef25c2b8fe9d", "signature": "void Menu(UiText label, DrawFn body, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|void|UiText label;DrawFn body;MenuBarMenuOpts o = default||h1b1bac394be04ea33333eee937841b7391a0fc642ea6951788ddb9eb4b199110", "signature": "void MenuBarMenu(UiText label, DrawFn body, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuLabel", "kind": "extension", "id": "extension|MenuLabel|0|0|void|UiText text||h55d6bbe5cef52bef1137dee2490a736200d78319bc81b81cdd5d2b7fbe16d2b6", "signature": "void MenuLabel(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "extension", "id": "extension|MenuSeparator|0|0|void|||h7babb70cb1540862bd8b5e000e173763dc48b627688082cf19bcc2e23c25ba73", "signature": "void MenuSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "extension", "id": "extension|Meter|0|0|void|UiText label;float used;float total;UiText unit = default||h1d8b4e728d051b711957aa7fbc9bcf832cd505900fdce01a27a79bdc8e9d89fa", "signature": "void Meter(UiText label, float used, float total, UiText unit = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "UiText", "default": "default" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "extension", "id": "extension|Metric|0|0|void|UiText label;UiText value;MetricOpts o = default||h9bab4a4dc12d3dace12e7106ac89323fdbfdf7c56bba9a0e2f0c40e9c95fbef6", "signature": "void Metric(UiText label, UiText value, MetricOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "UiText" }, { "name": "o", "type": "MetricOpts", "default": "default" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "extension", "id": "extension|Muted|0|0|void|UiText text||haf3dda321d9292f4d904d1870d8bb5dea3c49cb695524acb75572822bff2f9b8", "signature": "void Muted(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "extension", "id": "extension|NavSection|0|0|void|UiText title||hf901052c3e5ba17c7b523058746a19e11e181239069f2b8fbb43adfafdbdcafc", "signature": "void NavSection(UiText title)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }], "summary": "cui_nav_section" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|void|int nodeId;ref float x;ref float y;UiText title;DrawFn body;NodeOpts o = default||he2a131c3e341325536d7aaaafc4f83046a7d7e9c45eead6545f141826f6d7e82", "signature": "void Node(int nodeId, ref float x, ref float y, UiText title, DrawFn body, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|void|UiText id;ref NodeView view;DrawFn body;NodeEditorOpts o = default||h5854f9b818a6cafa92571b34f94f5f0c435142d546b6f628a1174b1effe7ac67", "signature": "void NodeEditor(UiText id, ref NodeView view, DrawFn body, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NumberRoll", "kind": "extension", "id": "extension|NumberRoll|0|0|void|UiText id;UiText text;TextFxOpts o = default||h67c63e017e57f215b45262ce043c429d9ff6e486e3c507e0c84f3d5daa53a5bf", "signature": "void NumberRoll(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "A figure whose changed digits roll into place: up when the value rises, down when it falls, a beat apart from the left; unchanged characters stay still. Pass the formatted text (\u0022$64,210\u0022, \u00221.2k\u0022); digits are tabular." }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|void|UiText id;ref int segment;DrawFn body||h875759cac9f5832bcb6782caaa672db98fbc277a19f31017d3155a38c398dce5", "signature": "void PathBarMenu(UiText id, ref int segment, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|0|0|void|||hd223700ffd7f730814c69ec5bd11dae3b4dd4a7a738e754b775a351e0c980575", "signature": "void PopClip()", "summary": "Ends the clip opened by PushClip." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|void|UiText id;DrawFn body;PopoverOpts o = default||h597b85fb0e87089ca73543226f68a70b713ea0f9c949974f2c0425c7028438f3", "signature": "void Popover(UiText id, DrawFn body, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopoverClose", "kind": "extension", "id": "extension|PopoverClose|0|0|void|UiText id||hca913fedac00c0c27ef6b37fb3f90cb88cd76862d0e5884e8f4e8dac8ba415b3", "signature": "void PopoverClose(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_close" }, { "name": "PopoverOpen", "kind": "extension", "id": "extension|PopoverOpen|0|0|void|UiText id||h424af0f304196b1a039d033eb75b4bff9dca251d0232dbc683699a925dfaa16d", "signature": "void PopoverOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "extension", "id": "extension|PopoverToggle|0|0|void|UiText id||h58628645f47f2c9c2896b1ec70e7d661c861b7abb26420d9b750e21380db5e02", "signature": "void PopoverToggle(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "extension", "id": "extension|Presence|0|0|void|UiText id;ReadOnlySpan\u003CPresenceUser\u003E users;int maxVisible;float size||h33db1325c05049463f7c9a97e3df833a114732c8a156f6ee2d775dad7a69c214", "signature": "void Presence(UiText id, ReadOnlySpan\u003CPresenceUser\u003E users, int maxVisible, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "users", "type": "ReadOnlySpan\u003CPresenceUser\u003E" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "extension", "id": "extension|Progress|0|0|void|float value;ProgressOpts o = default||h811e97c08fde2498427fc6a279e22a1c2ea3bc1ce69c3d642c73832f10623d4d", "signature": "void Progress(float value, ProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "ProgressOpts", "default": "default" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "extension", "id": "extension|ProgressRing|0|0|void|UiText label;float value;float size = 104f||h2e30430280ecfbc1925c0164f0bb59a54da3003b073ef1535c6cb3c2d4e8e057", "signature": "void ProgressRing(UiText label, float value, float size = 104f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "104f" }], "summary": "Circular progress with the value in the middle." }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|0|0|void|RectF r||h95bac6dcebf24b24b986a596422f965edfee8cd616663a1e59d0da09a9bd3efb", "signature": "void PushClip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle. Pair with PopClip." }, { "name": "RadialGauge", "kind": "extension", "id": "extension|RadialGauge|0|0|void|UiText id;float value;float min;float max;RadialGaugeOpts o = default||h69d72defa0179e7173e927724367a4bb9575a2e75bbd9949225f9eab886c2992", "signature": "void RadialGauge(UiText id, float value, float min, float max, RadialGaugeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RadialGaugeOpts", "default": "default" }], "summary": "cui_radial_gauge_ex" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|void|UiText id;DrawFn body;ReasoningOpts o = default||h892c50fc79e75386733c9149e18f72832dbdccb2d31c29b39a76a16ea185386e", "signature": "void Reasoning(UiText id, DrawFn body, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|0|0|void|UiText id;int[] order||hb312c00b771ad378a0324c96198659487c28a3c21c9d71a96e3f595957ffe21f", "signature": "void ReorderBegin(UiText id, int[] order)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "order", "type": "int[]" }] }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|0|0|void|||h4986f5ad7c5201d2830f1dee1e374ca29980fe9c408b3ef833336aabba3ed66c", "signature": "void RequestRedraw()", "summary": "Requests another frame; call only from the synchronous draw path." }, { "name": "RequestWakeup", "kind": "extension", "id": "extension|RequestWakeup|0|0|void|float seconds||h1e8d82035be8a5e226207bb6bd0874265dba29cf4b6a4779f60b95ab7cc567f7", "signature": "void RequestWakeup(float seconds)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "seconds", "type": "float" }], "summary": "Asks for one more frame after seconds, even when nothing else would wake the window. Use it for a timer, a toast timeout or a poll interval." }, { "name": "ResponseStatus", "kind": "extension", "id": "extension|ResponseStatus|0|0|void|int status;double seconds;double bytes||h63e7c9d5181d7379043415c904edf88e89db4e9781c0577d221801f58399a1cf", "signature": "void ResponseStatus(int status, double seconds, double bytes)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollTo", "kind": "extension", "id": "extension|ScrollTo|0|0|void|UiText scrollId;float y||h795b4245740f616fce2565ac40d5ea6dfa995143af81eedbc7067db0b0f1e7c0", "signature": "void ScrollTo(UiText scrollId, float y)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "extension", "id": "extension|Secondary|0|0|void|UiText text||h4f32c253f11a19b26ceb397d205e5e2d5c6c8e5db01a0ef2e8984e0a2c78ef46", "signature": "void Secondary(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "extension", "id": "extension|Separator|0|0|void|||h913edddc60366f9044c6b66111a5672080bdd3cb042c5febb3487cac873e4f6b", "signature": "void Separator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_separator" }, { "name": "SetFont", "kind": "extension", "id": "extension|SetFont|0|0|void|Font role;Font font||hcab29e22e2019bb3b541b3254c5e4027f76d357aa2ea4e762ced8560cad6c652", "signature": "void SetFont(Font role, Font font)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "Makes font the face every widget using role draws with." }, { "name": "SetLocalization", "kind": "method", "id": "method|SetLocalization|0|0|void|Localization? table||h9b1e18df8b05e42ae28fc53a566e5014c93cf59eea849033c0ab9f19b6bae9bd", "signature": "void SetLocalization(Localization? table)", "parameters": [{ "name": "table", "type": "Localization?" }], "summary": "Sets the month, weekday and \u0022Today\u0022 names the date components show, and returns to English with null." }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|0|0|void|bool reduced||hae4b830dd1026084cab290fac44e758b675baf93c35f70486ffa7547f059af88", "signature": "void SetReducedMotion(bool reduced)", "parameters": [{ "name": "reduced", "type": "bool" }], "summary": "Turns off animation (transitions, springs and spinners) for accessibility." }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|void|UiText title;ref bool open;DrawFn body;SheetOpts o = default||h65c09301eb5dd69c80862865570241bbd654452c640464cf772559af8fc6bf22", "signature": "void Sheet(UiText title, ref bool open, DrawFn body, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ShimmerText", "kind": "extension", "id": "extension|ShimmerText|0|0|void|UiText text;TextFxOpts o = default||h10fe1a4021ac0e8c72d7fdf6f3cb558e9a8c622c13f4749b7ac3d5d402cb9f57", "signature": "void ShimmerText(UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Text with a highlight sweeping across it, for \u0022Thinking...\u0022 states." }, { "name": "SignatureClear", "kind": "extension", "id": "extension|SignatureClear|0|0|void|UiText id||hf23272f80768839b31369fdd5a82c42808ef1d11985d804d96d54c704b0de8bf", "signature": "void SignatureClear(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "extension", "id": "extension|Skeleton|0|0|void|Size width;float height||h9a80641f8540ed71174043f46e0ff5190568ee803a507a52125ab6fd1ccd12ec", "signature": "void Skeleton(Size width, float height)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "width", "type": "Size" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "extension", "id": "extension|Spacer|0|0|void|||h8df9fad32f644fb75d2f19ff5d3057f2529306e3edc1921a901da58f59bdf332", "signature": "void Spacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "extension", "id": "extension|Sparkline|0|0|void|ReadOnlySpan\u003Cfloat\u003E values;Size width;float height;Color color||hf5e74b2ae617ca510b0dea71f3513379b77ff9597fa28585678fd9d5dc90c297", "signature": "void Sparkline(ReadOnlySpan\u003Cfloat\u003E values, Size width, float height, Color color)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "extension", "id": "extension|Spinner|0|0|void|float size = 16f||h910bfa94c12faa6f479982793408735550b3b41b6f58bf9d2ecbd8fbd8d537f9", "signature": "void Spinner(float size = 16f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float", "default": "16f" }], "summary": "cui_spinner" }, { "name": "SplitNext", "kind": "extension", "id": "extension|SplitNext|0|0|void|||h2e9b4df1853b9715ec487e793813aebc81a3f6ac93bd19f40400a8b7db5e57b1", "signature": "void SplitNext()", "extensionOn": "CuiSharp.Ui", "summary": "cui_split_next" }, { "name": "StatusBarProgress", "kind": "extension", "id": "extension|StatusBarProgress|0|0|void|float value;StatusProgressOpts o = default||h0d89461fbae2cb62b010aaa92c832f76c787764ad8bf6a7f6f3b2352d43eb62e", "signature": "void StatusBarProgress(float value, StatusProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "StatusProgressOpts", "default": "default" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "extension", "id": "extension|StatusBarSpacer|0|0|void|||hff79ec75c75a5a4046a3afdf7908bfa1687f1fccc3cca35aa6a3c05e5696b38d", "signature": "void StatusBarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "extension", "id": "extension|StatusBarText|0|0|void|UiText text;StatusItemOpts o = default||hf5288fddf236ac4166245c73e6f33c7b59cd60825aad4b4b26f2a62615179863", "signature": "void StatusBarText(UiText text, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A message; \u0060tone\u0060 colors its icon." }, { "name": "Stepper", "kind": "extension", "id": "extension|Stepper|0|0|void|ReadOnlySpan\u003Cstring\u003E steps;int current||h80f2e80af6bf18ef466ffe2f62937141940d661367c04989db4a52915786a5ca", "signature": "void Stepper(ReadOnlySpan\u003Cstring\u003E steps, int current)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "steps", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|void|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;DrawFn body;TableOpts o = default||h7968ef7a646f0817ff9658c4cbca9383316e49dd9c742c9662b2ff3812b0fd0a", "signature": "void Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, DrawFn body, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TableCell", "kind": "extension", "id": "extension|TableCell|0|0|void|||h7206d360daa4de79037d61b719094d0baea2de5a24e5aeb9f04149502f3db3bc", "signature": "void TableCell()", "extensionOn": "CuiSharp.Ui", "summary": "Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "TableCellText", "kind": "extension", "id": "extension|TableCellText|0|0|void|UiText text||h7ed6f22b1e22b71ecfb331830e30c25829c7af8fec09d3b888c861bbb28793a6", "signature": "void TableCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Part of cui_table_cell \u2014 Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "Text", "kind": "extension", "id": "extension|Text|0|0|void|UiText text;TextOpts o = default||h098380135ff70fa9e6364b4f5cb5baaa3d0d23bb4e06916511f00c01e904dcb6", "signature": "void Text(UiText text, TextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextOpts", "default": "default" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "extension", "id": "extension|TextReveal|0|0|void|UiText id;UiText text;TextFxOpts o = default||h7f99ba4d6b24021ea0f87d36914931f6994d1962327a22f1e8b4caad0115cafe", "signature": "void TextReveal(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Words fade and rise into place one after another, when first shown and again whenever the text changes." }, { "name": "Ticker", "kind": "extension", "id": "extension|Ticker|0|0|void|UiText id;ReadOnlySpan\u003CTickerItem\u003E items;TickerOpts o = default||h62c76d0d359572be4036b278345efbeac770ba89bef0d4343912d1b51ea0fc23", "signature": "void Ticker(UiText id, ReadOnlySpan\u003CTickerItem\u003E items, TickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTickerItem\u003E" }, { "name": "o", "type": "TickerOpts", "default": "default" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "extension", "id": "extension|TimelineItem|0|0|void|UiText title;TimelineOpts o = default||hd57ae894fcdcf6a57e4008b86ca1e4a0ea3d920a1be7b0beead7f0c64dce9b25", "signature": "void TimelineItem(UiText title, TimelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "TimelineOpts", "default": "default" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "extension", "id": "extension|ToastDismiss|0|0|void|int handle||h6a894b14bc221b765154e4ee9cf6cdd1812f544772192205c25a197be8077904", "signature": "void ToastDismiss(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "extension", "id": "extension|TocAnchor|0|0|void|UiText anchor||h474d1046a90fd952ce1996c9a0f04e59d8090e886222bfa8a62b08c2d191127c", "signature": "void TocAnchor(UiText anchor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "anchor", "type": "UiText" }], "summary": "cui_toc_anchor" }, { "name": "ToggleTheme", "kind": "method", "id": "method|ToggleTheme|0|0|void|||h9c315cf4c8d3ce0774082f4db1c10fdcde1dfdef8503f7e49968fc73805e19e8", "signature": "void ToggleTheme()", "summary": "Switches to the other theme: what a \u0022dark mode\u0022 command is." }, { "name": "ToolCall", "kind": "extension", "id": "extension|ToolCall|0|0|void|UiText id;UiText name;ToolCallOpts o = default||h16a78d12e8afd01cd74d0ff79d04eab871b3602eb401436850ec64b67c8d437d", "signature": "void ToolCall(UiText id, UiText name, ToolCallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "o", "type": "ToolCallOpts", "default": "default" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarSeparator", "kind": "extension", "id": "extension|ToolbarSeparator|0|0|void|||h1ac04b800f486b06135932d0c44c42e77b107a635f62f0ebe94dc31f9e99b9a6", "signature": "void ToolbarSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "extension", "id": "extension|ToolbarSpacer|0|0|void|||h494edd9bb119d78eaa1c281a125dd1a9effb7a85caa35e4b35c4253376bb92f3", "signature": "void ToolbarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "extension", "id": "extension|Tooltip|0|0|void|UiText text||h5665aef7d99446eea8e623f0f1227e52e0512f331e35936232eb9a28aa7f3634", "signature": "void Tooltip(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Tooltip for the previous component, shown after a short hover delay." }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|void|UiText label;ref bool open;DrawFn body;TreeOpts o = default||he13b4bfd412c90e5210ac7a3109d12fb25e4a2280312b5257572daebbb5bbd95", "signature": "void Tree(UiText label, ref bool open, DrawFn body, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TreeTableName", "kind": "extension", "id": "extension|TreeTableName|0|0|void|UiText label;UiText icon||h1db08630dbcd5478e4543d6fc7df51dec714a4cefea2efb55e95ec44273c7151", "signature": "void TreeTableName(UiText label, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "icon", "type": "UiText" }], "summary": "The first cell: indentation, guides, the chevron, an icon and the name (cut short with a tooltip of the whole name when it does not fit)." }, { "name": "TypingIndicator", "kind": "extension", "id": "extension|TypingIndicator|0|0|void|UiText name||h29e1190d004ef9cf04c8fb3bb6772b74ea89a31b5105bb6fe5d65e29383b006a", "signature": "void TypingIndicator(UiText name)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }], "summary": "cui_typing_indicator" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|void|UiText name;DrawFn body;UserMenuOpts o = default||h1d302e00c446dbae93ac0347cf4063547177c7d4c68194db26c7ca15c8128f8c", "signature": "void UserMenu(UiText name, DrawFn body, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "WordRotate", "kind": "extension", "id": "extension|WordRotate|0|0|void|UiText id;ReadOnlySpan\u003Cstring\u003E words;float interval;TextFxOpts o = default||he53938c5acb8d2d7786cb08323a565882c4e7c01bc50637a3c5c0d9131734da4", "signature": "void WordRotate(UiText id, ReadOnlySpan\u003Cstring\u003E words, float interval, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "words", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "interval", "type": "float" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "One word at a time; the next one rolls up into place and the width follows." }] }, + { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "summary": "A stack-only drawing context. Do not retain it outside the current frame.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "The accent in use, and the way to change it. See Theme." }, { "name": "ApiExplorer", "kind": "extension", "id": "extension|ApiExplorer|0|0|ApiExplorerResult|UiText id;ReadOnlySpan\u003CApiEndpoint\u003E endpoints;ref int selected;ApiExplorerOpts o = default||h8e1274e09ed373172bec2fe1ee1969a7f9b2e594fbeed0ea8abed98302f3ed84", "signature": "ApiExplorerResult ApiExplorer(UiText id, ReadOnlySpan\u003CApiEndpoint\u003E endpoints, ref int selected, ApiExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "endpoints", "type": "ReadOnlySpan\u003CApiEndpoint\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ApiExplorerOpts", "default": "default" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "extension", "id": "extension|Blame|0|0|BlameResult|UiText id;ReadOnlySpan\u003Cstring\u003E lines;ReadOnlySpan\u003Cint\u003E lineCommit;ReadOnlySpan\u003CBlameCommit\u003E commits;BlameOpts o = default||hdf716d42271c45696039bb07abacc01b9b0b2a935ee05dc1842213c276edf5eb", "signature": "BlameResult Blame(UiText id, ReadOnlySpan\u003Cstring\u003E lines, ReadOnlySpan\u003Cint\u003E lineCommit, ReadOnlySpan\u003CBlameCommit\u003E commits, BlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "lines", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "lineCommit", "type": "ReadOnlySpan\u003Cint\u003E" }, { "name": "commits", "type": "ReadOnlySpan\u003CBlameCommit\u003E" }, { "name": "o", "type": "BlameOpts", "default": "default" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|0|0|CanvasResult|UiText id;Size width;Size height;PaintFn paint||hf2c318f0b609f7226e807d7cf7e4edada63dc45f85bb57025ad7567a006824a0", "signature": "CanvasResult Canvas(UiText id, Size width, Size height, PaintFn paint)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "Size" }, { "name": "paint", "type": "PaintFn" }], "summary": "Reserves a box of the given size and lets you paint it." }, { "name": "Clip", "kind": "method", "id": "method|Clip|0|0|ClipScope|RectF r||h81bb7c5dd19720d5aa2ee17f5cb20e0238b08db45d6d0cb5700d16ce531ec5f2", "signature": "ClipScope Clip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle, closing the clip on dispose." }, { "name": "CodeEditor", "kind": "extension", "id": "extension|CodeEditor|0|0|CodeEditorResult|UiText id;ref string buf;int cap;CodeEditorOpts o = default||h3f99c4340c4ea2a0ae4ecc840716120045f85d30ea53f0aebe7ab1be2c09aa9a", "signature": "CodeEditorResult CodeEditor(UiText id, ref string buf, int cap, CodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "CodeEditorOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|0|0|Color|Color color||h980f9c13c6409b9b666e72b6641e22a816c4a7d68a80eb109a44bc201bceceb0", "signature": "Color ColorOf(Color color)", "parameters": [{ "name": "color", "type": "Color" }], "summary": "Resolves a semantic token to its channels; other colors come back unchanged." }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|0|0|Color|Token token||h0916cfc8affaa4db1788c2edd8ac85f518f146b3b691ef4d7181b7ad8ccac2fe", "signature": "Color TokenColor(Token token)", "parameters": [{ "name": "token", "type": "Token" }], "summary": "The channels a theme token resolves to this frame." }, { "name": "Comment", "kind": "extension", "id": "extension|Comment|0|0|CommentEvents|UiText id;UiText author;UiText text;ref int likes;ref bool liked;CommentOpts o = default||hd58eadbf1b4e2807aa889ed3f4c70606227f61711c62110ec27aebc46c70512c", "signature": "CommentEvents Comment(UiText id, UiText author, UiText text, ref int likes, ref bool liked, CommentOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "author", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "likes", "type": "ref int" }, { "name": "liked", "type": "ref bool" }, { "name": "o", "type": "CommentOpts", "default": "default" }], "summary": "cui_comment_ex" }, { "name": "CommitGraph", "kind": "extension", "id": "extension|CommitGraph|0|0|CommitGraphResult|UiText id;ReadOnlySpan\u003CCommit\u003E commits;ref int selected;CommitGraphOpts o = default||h8d094156c694b6c409f8abe92f01e016c9b138a44ea76b0770f70f4fd34781c7", "signature": "CommitGraphResult CommitGraph(UiText id, ReadOnlySpan\u003CCommit\u003E commits, ref int selected, CommitGraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "commits", "type": "ReadOnlySpan\u003CCommit\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CommitGraphOpts", "default": "default" }], "summary": "cui_commit_graph_ex" }, { "name": "ChatComposer", "kind": "extension", "id": "extension|ChatComposer|0|0|ComposerEvents|UiText id;ref string buf;int cap;ref int removed;ref int model;ComposerOpts o = default||ha61bd40b4efb8355a255edc7d36d348178993536309ab1ee4c6c9a381fd22431", "signature": "ComposerEvents ChatComposer(UiText id, ref string buf, int cap, ref int removed, ref int model, ComposerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "removed", "type": "ref int" }, { "name": "model", "type": "ref int" }, { "name": "o", "type": "ComposerOpts", "default": "default" }], "summary": "cui_chat_composer_ex" }, { "name": "Coverage", "kind": "extension", "id": "extension|Coverage|0|0|CoverageResult|UiText id;ReadOnlySpan\u003CCoverageFile\u003E files;CoverageOpts o = default||h71a24310abd0377c27ded9130e91e48dc3e91a798d1a79f3563a30b446fe6a95", "signature": "CoverageResult Coverage(UiText id, ReadOnlySpan\u003CCoverageFile\u003E files, CoverageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "files", "type": "ReadOnlySpan\u003CCoverageFile\u003E" }, { "name": "o", "type": "CoverageOpts", "default": "default" }], "summary": "cui_coverage_ex" }, { "name": "Cursor", "kind": "property", "id": "property|Cursor|0|0|Cursor||get;|hc22a16db67c85c2843d2f88cc8ab464d28c155381bf1d1998e9fc4743eb42043", "signature": "Cursor Cursor { get; }", "summary": "The cursor the UI asked for last frame, for a backend that draws its own." }, { "name": "CurveEditor", "kind": "extension", "id": "extension|CurveEditor|0|0|CurveResult|UiText id;Span\u003CCurveKey\u003E keys;ref int count;int capacity;ref int selected;CurveOpts o = default||h0aa646bcaa2a7a88d9f7fb5646774b70a481e877c7087d2169536d01d2eb89dc", "signature": "CurveResult CurveEditor(UiText id, Span\u003CCurveKey\u003E keys, ref int count, int capacity, ref int selected, CurveOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "keys", "type": "Span\u003CCurveKey\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CurveOpts", "default": "default" }], "summary": "cui_curve_editor_ex" }, { "name": "DiffView", "kind": "extension", "id": "extension|DiffView|0|0|DiffResult|UiText id;UiText oldText;UiText newText;ref int current;DiffOpts o = default||h1928b65f5fa6dc715c0e20351e64a90a55ca9b8fd792c4a9a6e3df7545ba072a", "signature": "DiffResult DiffView(UiText id, UiText oldText, UiText newText, ref int current, DiffOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "oldText", "type": "UiText" }, { "name": "newText", "type": "UiText" }, { "name": "current", "type": "ref int" }, { "name": "o", "type": "DiffOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled||h3a515a3de1d8d0205d97aef4118bf5ab6c5af12e051d859d3b8cabae81fb9db1", "signature": "DisabledScope Disabled(bool disabled)", "parameters": [{ "name": "disabled", "type": "bool" }], "summary": "Opens a disabled gate that using closes." }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled;DrawFn body||hcc29e71513d0c4970a98faee97bed37a754ecae1da31ed37b95a7e3588c336d9", "signature": "DisabledScope Disabled(bool disabled, DrawFn body)", "parameters": [{ "name": "disabled", "type": "bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws body with every control inside it disabled: it still lays out and paints, but clicks, keys and hover do nothing." }, { "name": "DocTabs", "kind": "extension", "id": "extension|DocTabs|0|0|DocTabsResult|UiText id;ReadOnlySpan\u003CDocTab\u003E tabs;ref int selected;DocTabsOpts o = default||hdb202a4c9e42fa362479fb5e674bee39fa9949e204316f94f4197f0a54fe4c83", "signature": "DocTabsResult DocTabs(UiText id, ReadOnlySpan\u003CDocTab\u003E tabs, ref int selected, DocTabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tabs", "type": "ReadOnlySpan\u003CDocTab\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "DocTabsOpts", "default": "default" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "extension", "id": "extension|FeatureFlags|0|0|FeatureFlagsResult|UiText id;Span\u003CFeatureFlag\u003E flags;ReadOnlySpan\u003Cstring\u003E envs;FeatureFlagsOpts o = default||h1c2c043a1a911bf524b328f35cfa7f2ee4862adfb16f1b0cbd98cf1077245b34", "signature": "FeatureFlagsResult FeatureFlags(UiText id, Span\u003CFeatureFlag\u003E flags, ReadOnlySpan\u003Cstring\u003E envs, FeatureFlagsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "flags", "type": "Span\u003CFeatureFlag\u003E" }, { "name": "envs", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "FeatureFlagsOpts", "default": "default" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "extension", "id": "extension|FileBrowser|0|0|FileBrowserResult|UiText id;ref string path;int pathCap = 1024;FileBrowserOpts o = default||hdcc3319728f0b23560a33e9d8c875e4b5389d816f8e66b4e3630e917284e3bf8", "signature": "FileBrowserResult FileBrowser(UiText id, ref string path, int pathCap = 1024, FileBrowserOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "path", "type": "ref string" }, { "name": "pathCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FileBrowserOpts", "default": "default" }], "summary": "path: the folder shown, yours; the browser writes it as you move around." }, { "name": "FlameGraph", "kind": "extension", "id": "extension|FlameGraph|0|0|FlameResult|UiText id;ReadOnlySpan\u003CFlameSpan\u003E spans;ref FlameView view;ref int selected;FlameOpts o = default||h825a9e17f3b7381f2b9b6b4244a8edbabda629701c297e3c877a4e13fc43e98c", "signature": "FlameResult FlameGraph(UiText id, ReadOnlySpan\u003CFlameSpan\u003E spans, ref FlameView view, ref int selected, FlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "spans", "type": "ReadOnlySpan\u003CFlameSpan\u003E" }, { "name": "view", "type": "ref FlameView" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "FlameOpts", "default": "default" }], "summary": "selected: index into spans, -1 for none (may be NULL)." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|ReadOnlySpan\u003Cbyte\u003E data;bool copy = true||h73d65ad67f9acdd48823d96c747c086a24a1625658056e8af856a3bd4d554241", "signature": "Font LoadFont(ReadOnlySpan\u003Cbyte\u003E data, bool copy = true)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool", "default": "true" }], "summary": "Loads a font from memory and returns a handle for SetFont." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|UiText path||h5faed851de772ad862622c3312f2aeae3c81ef7915ae305e81bb638cf9b3b107", "signature": "Font LoadFont(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "Loads a font file (TTF/OTF) and returns a handle for SetFont." }, { "name": "UseSystemFontFallback", "kind": "extension", "id": "extension|UseSystemFontFallback|0|0|Font|string sample||h718698d4ba3dba692a0bf04e8e6729a2aae4ac8563689108bb00fdf124984df6", "signature": "Font UseSystemFontFallback(string sample)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "sample", "type": "string" }], "summary": "Finds a face on this machine that can draw sample and registers it as a fallback for the app\u0027s roles, so a UI in a script the bundled faces do not cover renders instead of going blank." }, { "name": "GradientEditor", "kind": "extension", "id": "extension|GradientEditor|0|0|GradientResult|UiText id;Span\u003CGradientStop\u003E stops;ref int count;int capacity;ref int selected;GradientOpts o = default||h22ba29de3dd5440cd7373415c1f48323da92a14dd19862d6a962bbf6a3147afd", "signature": "GradientResult GradientEditor(UiText id, Span\u003CGradientStop\u003E stops, ref int count, int capacity, ref int selected, GradientOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stops", "type": "Span\u003CGradientStop\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GradientOpts", "default": "default" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "extension", "id": "extension|GraphView|0|0|GraphResult|UiText id;ReadOnlySpan\u003CGraphNode\u003E nodes;ReadOnlySpan\u003CGraphEdge\u003E edges;ref int selected;GraphOpts o = default||hbce489b5fa6d64979be674221b7ae61e945b26d0224773080270c2c7dfd8b3bc", "signature": "GraphResult GraphView(UiText id, ReadOnlySpan\u003CGraphNode\u003E nodes, ReadOnlySpan\u003CGraphEdge\u003E edges, ref int selected, GraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003CGraphNode\u003E" }, { "name": "edges", "type": "ReadOnlySpan\u003CGraphEdge\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GraphOpts", "default": "default" }], "summary": "cui_graph_view_ex" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|GridScope|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;GridOpts o = default||hae20817285aa5f5ee430918dd512e707df8a0306e32777f0e13839f607262829", "signature": "GridScope DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Opens a virtualized grid; draw rows in [state.First, state.Last)." }, { "name": "HexView", "kind": "extension", "id": "extension|HexView|0|0|HexResult|UiText id;Span\u003Cbyte\u003E bytes;ref HexSelection selection;HexViewOpts o = default||hb82ecf6f9d8a58d5c2bce7702bd188c8bb502de7a2d696f1a0af827be5fa22d9", "signature": "HexResult HexView(UiText id, Span\u003Cbyte\u003E bytes, ref HexSelection selection, HexViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bytes", "type": "Span\u003Cbyte\u003E" }, { "name": "selection", "type": "ref HexSelection" }, { "name": "o", "type": "HexViewOpts", "default": "default" }], "summary": "Draws bytes and lets the user overwrite them in place." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|UiText id||hf913a0d346bf51d9f7a0e55299041c30e8aa0eeb2f93eadbe20cad0c4ae3879b", "signature": "IdScope Id(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Pushes a string id for the widgets drawn inside the scope." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|int key||h3b4b6991acded6793bc66a091956c19c02661da15fabdf72db107273b8ed3d1b", "signature": "IdScope Id(int key)", "parameters": [{ "name": "key", "type": "int" }], "summary": "Pushes an integer id, typically a row or item index." }, { "name": "Input", "kind": "method", "id": "method|Input|0|0|InputResult|UiText id;ref string value;InputOpts o = default||he495e19d9d5cb23d03e35f0f55ea0ebafd853d7386ae9e4989697b39cec38980", "signature": "InputResult Input(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A single-line text field. Assign the string; CUI edits it in place and the new value comes back through value on the frames it changed." }, { "name": "Search", "kind": "method", "id": "method|Search|0|0|InputResult|UiText id;ref string value;InputOpts o = default||h11bb746b263541b15457e9933eac6e37a6cdfac44547449d0d7375a7431b87da", "signature": "InputResult Search(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A search field. See Input." }, { "name": "TextArea", "kind": "method", "id": "method|TextArea|0|0|InputResult|UiText id;ref string value;InputOpts o = default||ha0535c062baff5583884fcf6394397476e4b2a40ee79b643e731e601e2daad5c", "signature": "InputResult TextArea(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A multi-line text field. See Input." }, { "name": "Keyed", "kind": "method", "id": "method|Keyed|0|1|KeyedScope\u003CT\u003E|T[] items;KeyFn\u003CT\u003E key||h3645b3dae05812e37fd01340a5693892b688bf1436826030f83bf34e5dca43f8", "signature": "KeyedScope\u003CT\u003E Keyed\u003CT\u003E(T[] items, KeyFn\u003CT\u003E key)", "parameters": [{ "name": "items", "type": "T[]" }, { "name": "key", "type": "KeyFn\u003CT\u003E" }], "summary": "Enumerates items, each inside its own id scope derived from key." }, { "name": "Keymap", "kind": "extension", "id": "extension|Keymap|0|0|KeymapResult|UiText id;ReadOnlySpan\u003CKeymapBinding\u003E bindings;ref Mods mods;KeymapOpts o = default||h986c8ea2572b42d56814a32427ed89b00db2a4a2ff3ba6c7a4711a66da3c0bae", "signature": "KeymapResult Keymap(UiText id, ReadOnlySpan\u003CKeymapBinding\u003E bindings, ref Mods mods, KeymapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bindings", "type": "ReadOnlySpan\u003CKeymapBinding\u003E" }, { "name": "mods", "type": "ref Mods" }, { "name": "o", "type": "KeymapOpts", "default": "default" }], "summary": "cui_keymap_ex" }, { "name": "Box", "kind": "extension", "id": "extension|Box|0|0|LayoutScope|Box o = default||haec5c052acbeeaca94cb5a10a37f80e98abc85d069b6fa9aec58cf20715c0a06", "signature": "LayoutScope Box(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_box_begin" }, { "name": "ButtonGroup", "kind": "extension", "id": "extension|ButtonGroup|0|0|LayoutScope|||h8a2a0872d3ba1595bf0e1d9ad5860dfa36735b0ac74178a57cc8157b6493d6d4", "signature": "LayoutScope ButtonGroup()", "extensionOn": "CuiSharp.Ui", "summary": "Connected buttons. Put buttons between begin and end." }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o = default||hb8d0387f360f71c39f098c9de712bb4aa0eb22a25fffee4615049459c0cc224e", "signature": "LayoutScope Card(Card o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card", "default": "default" }], "summary": "cui_card_begin" }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o;out bool clicked||he64474f809036667bb19ed0028db705f58a61d124f67b6520b26f73775ae32e5", "signature": "LayoutScope Card(Card o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "CardStackItem", "kind": "extension", "id": "extension|CardStackItem|0|0|LayoutScope|int depth||h6f29f3239b665449b7d0d9b4e5177cb4099b541e3423fcb9d1a9b14fb1f686d0", "signature": "LayoutScope CardStackItem(int depth)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CarouselSlide", "kind": "extension", "id": "extension|CarouselSlide|0|0|LayoutScope|||h9755b016a070064271f7e45738238254443cdfcb4d22aca524774095031595ec", "signature": "LayoutScope CarouselSlide()", "extensionOn": "CuiSharp.Ui", "summary": "cui_carousel_slide_begin" }, { "name": "Column", "kind": "extension", "id": "extension|Column|0|0|LayoutScope|Box o = default||h78447c50c087189e1c45a5984115c6b2709affec511cf6ab6521254dd0406549", "signature": "LayoutScope Column(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_column_begin" }, { "name": "DialogFooter", "kind": "extension", "id": "extension|DialogFooter|0|0|LayoutScope|||hea62c5e329105c7d787894e1fbdbbd9b079d2910e82c4be61263045ff18c81f3", "signature": "LayoutScope DialogFooter()", "extensionOn": "CuiSharp.Ui", "summary": "A right-aligned row for dialog actions." }, { "name": "Dock", "kind": "extension", "id": "extension|Dock|0|0|LayoutScope|UiText id;DockOpts o = default||ha8052963c653afff4ec2b3304515265b67454d94f44ee3c01d076c1e27148816", "signature": "LayoutScope Dock(UiText id, DockOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockOpts", "default": "default" }], "summary": "cui_dock_begin" }, { "name": "Dockspace", "kind": "extension", "id": "extension|Dockspace|0|0|LayoutScope|UiText id;DockspaceOpts o = default||hd8cabbad4df58a75fbb1e93299868d95ae7671ca676e01478b8c6067ace5a82d", "signature": "LayoutScope Dockspace(UiText id, DockspaceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockspaceOpts", "default": "default" }], "summary": "cui_dockspace_begin_ex" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId||h04d36b815b7f14d7d624e0b56c06560e052f6458aecd5cd68f485e0c8dc64b11", "signature": "LayoutScope KanbanCard(int cardId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId;out bool clicked||h0ef9ec0801ab926804d1119b9bc9dc886afc490850829ed33cad336f7ee94f50", "signature": "LayoutScope KanbanCard(int cardId, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o = default||hd3dcefdc81fb36dfee31edd1754914e0453a4c7e0b1bb4c4b2b20b542eb8adaa", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts", "default": "default" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o;out bool clicked||h7c9ca66f79f064c49eed8f4544d8fea1ed3304dc45d84e5ec067d319ed4ea113", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "MenuBar", "kind": "extension", "id": "extension|MenuBar|0|0|LayoutScope|UiText id;MenuBarOpts o = default||h29b57cc387904e3c1d3083b170ceaa309e6bc4a2535b4c27f22ecd482570e152", "signature": "LayoutScope MenuBar(UiText id, MenuBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "MenuBarOpts", "default": "default" }], "summary": "cui_menu_bar_begin" }, { "name": "NodeContent", "kind": "extension", "id": "extension|NodeContent|0|0|LayoutScope|||h6a09d812c8b6d9c4a4f2fc6aedc000b977da707334c08c94ee4e6dd62573dd59", "signature": "LayoutScope NodeContent()", "extensionOn": "CuiSharp.Ui", "summary": "A row for ordinary components. They are laid out at 100% and scaled with the view, so their text is sharpest at 100% zoom and below." }, { "name": "ReorderItem", "kind": "method", "id": "method|ReorderItem|0|0|LayoutScope|int position||h407076f847f4d4f606b87a109b5a505ca525179c0bff6726382889745d33f038", "signature": "LayoutScope ReorderItem(int position)", "parameters": [{ "name": "position", "type": "int" }] }, { "name": "Row", "kind": "extension", "id": "extension|Row|0|0|LayoutScope|Box o = default||ha02204054f3ea32388e8e24fc8038f253dd0b3504b0e01b650d69265773cb67e", "signature": "LayoutScope Row(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_row_begin" }, { "name": "Scroll", "kind": "extension", "id": "extension|Scroll|0|0|LayoutScope|ScrollOpts o = default||h7aa8eed4bb32b5efc54efbe5c6c7c19215ddf1d8ffed8dfc60e0c8d5234bc6f7", "signature": "LayoutScope Scroll(ScrollOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "ScrollOpts", "default": "default" }], "summary": "cui_scroll_begin" }, { "name": "Split", "kind": "extension", "id": "extension|Split|0|0|LayoutScope|UiText id;ref float ratio;SplitOpts o = default||h83e75ece850ab88dc38fde4b7d1d8ae789128ab387c95d8025b6302e8f59269f", "signature": "LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "ratio", "type": "ref float" }, { "name": "o", "type": "SplitOpts", "default": "default" }], "summary": "cui_split_begin" }, { "name": "Spotlight", "kind": "extension", "id": "extension|Spotlight|0|0|LayoutScope|UiText id;SpotlightOpts o = default||hfb70f807d4c0a2d5450e1ff296551adc78a8733ed06c6b0cb9ed7427add12f16", "signature": "LayoutScope Spotlight(UiText id, SpotlightOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SpotlightOpts", "default": "default" }], "summary": "cui_spotlight_begin" }, { "name": "StatusBar", "kind": "extension", "id": "extension|StatusBar|0|0|LayoutScope|UiText id;StatusBarOpts o = default||h394ecf13ba82c0abd4bdf1a5b7cb5fce6102392c5a87cea283bc38fd2213e96a", "signature": "LayoutScope StatusBar(UiText id, StatusBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "StatusBarOpts", "default": "default" }], "summary": "cui_status_bar_begin" }, { "name": "Toolbar", "kind": "extension", "id": "extension|Toolbar|0|0|LayoutScope|UiText id;ToolbarOpts o = default||hc5826ec43e3d8bf178cfa9f1605bd29bded229aae82424077aa18e1ae7e9cc61", "signature": "LayoutScope Toolbar(UiText id, ToolbarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ToolbarOpts", "default": "default" }], "summary": "cui_toolbar_begin" }, { "name": "VirtualList", "kind": "extension", "id": "extension|VirtualList|0|0|LayoutScope|UiText id;int count;float rowHeight;Size height;out int first;out int last||h90165d4490987ebd4d90276d5b449695a1f58d89f212149090827bfd08a055f2", "signature": "LayoutScope VirtualList(UiText id, int count, float rowHeight, Size height, out int first, out int last)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "Size" }, { "name": "first", "type": "out int" }, { "name": "last", "type": "out int" }], "summary": "Virtual list: only the visible rows are built, so lists with a million rows stay fast. Fills first/last with the visible range." }, { "name": "Localization", "kind": "property", "id": "property|Localization|0|0|Localization?||get;|h0a921bf7a95ff40f095f5e7f43cc6d636b74f025ae427be1edbd250e93f88e54", "signature": "Localization? Localization { get; }", "summary": "The table this surface published, or null for English." }, { "name": "Markdown", "kind": "extension", "id": "extension|Markdown|0|0|MarkdownResult|UiText id;UiText text;MarkdownOpts o = default||h61fdb7c6fb770f95ff734bbdf7b607bad9e23af8b25df034da34f408eed536fa", "signature": "MarkdownResult Markdown(UiText id, UiText text, MarkdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "MarkdownOpts", "default": "default" }], "summary": "cui_markdown_ex" }, { "name": "Modifiers", "kind": "property", "id": "property|Modifiers|0|0|Mods||get;|h994504ae5710377741956558b3dae0b4e2fc318f73c5408e701c6675295af911", "signature": "Mods Modifiers { get; }", "summary": "The modifier keys held right now." }, { "name": "MonthCalendar", "kind": "extension", "id": "extension|MonthCalendar|0|0|MonthResult|UiText id;ref Date month;ReadOnlySpan\u003CMonthEvent\u003E events;ref Date selected;MonthOpts o = default||hacb7fb0b706addd9098a1569df3adbf8cff5b20d3b0bf01f49970bd839da7523", "signature": "MonthResult MonthCalendar(UiText id, ref Date month, ReadOnlySpan\u003CMonthEvent\u003E events, ref Date selected, MonthOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "month", "type": "ref Date" }, { "name": "events", "type": "ReadOnlySpan\u003CMonthEvent\u003E" }, { "name": "selected", "type": "ref Date" }, { "name": "o", "type": "MonthOpts", "default": "default" }], "summary": "cui_month_calendar_ex" }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|OpenScope|UiText title;ref bool open||h485829d02ee323bfa485f05285d6b19d78dcf02ed0a36c9ca4b1da7e70f540e5", "signature": "OpenScope Accordion(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "Accordion / disclosure. Content animates its height." }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|OpenScope|UiText id;int count;ref int index;CarouselOpts o = default||hbcf0bd0059da4b82e6417513dac4646a1ad558c1f46fc3c55b233c3367ef0a4e", "signature": "OpenScope Carousel(UiText id, int count, ref int index, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "cui_carousel_begin" }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|OpenScope|UiText id||hb5be2e863b82aa032d3281886a07b75e6a10932b22c9c06daa36e6ec8460b9c3", "signature": "OpenScope ContextMenu(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Context menu: opens on right click over the previous component." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|OpenScope|UiText title;ref bool open;DialogOpts o = default||h08e9cf3a4bf5178fc47947da0ad76b53486c74b4ebd9c7e92e078d4cb3653668", "signature": "OpenScope Dialog(UiText title, ref bool open, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Modal dialog. Shown while *open is true; closing sets it to false." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|OpenScope|UiText title;ref bool open;DockPanelOpts o = default||h983b85f4b88defb64e03c80c7fd67832cccc8b15fa3b11e9e9c8954cdd239b75", "signature": "OpenScope DockPanel(UiText title, ref bool open, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|OpenScope|UiText title;ref bool open;ExpandableCardOpts o = default||h19637d079a2ee9821dfa4b6223ecf9694471f6157ed61e0139e207c045d56878", "signature": "OpenScope ExpandableCard(UiText title, ref bool open, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "cui_expandable_card_begin" }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|OpenScope|UiText id;HoverCardOpts o = default||hd31fbafd01c517229f3a54d9fbeed478689533294a82e16da99cb56ed4b82d37", "signature": "OpenScope HoverCard(UiText id, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "cui_hover_card_begin" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|OpenScope|UiText id;InspectorOpts o = default||hdb3db7ec75e95846d7b987536583618b0b9445c2deb40a5f16828b5d2d735020", "signature": "OpenScope Inspector(UiText id, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "cui_inspector_begin_ex" }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|OpenScope|UiText label;MenuOpts o = default||hec1b2b131f19c8f1eb37269016b963aed4449341b367ca89e175c1940294ab63", "signature": "OpenScope Menu(UiText label, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "cui_menu_begin" }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|OpenScope|UiText label;MenuBarMenuOpts o = default||h32c463fd3c1d7fa382d82e43f75326d1e14efad5ce907db7337df9ba3480688b", "signature": "OpenScope MenuBarMenu(UiText label, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|OpenScope|int nodeId;ref float x;ref float y;UiText title;NodeOpts o = default||hb7439d9c37ecca24fb0858272f81826919b789149f2a34acd1e1c44ff3266f62", "signature": "OpenScope Node(int nodeId, ref float x, ref float y, UiText title, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "cui_node_begin_ex" }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|OpenScope|UiText id;ref NodeView view;NodeEditorOpts o = default||h4e3c9c7bbaa0ed5b0750957f90a5c6c86f0fbfea8e96d4a8cacd68503ae7ad85", "signature": "OpenScope NodeEditor(UiText id, ref NodeView view, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "cui_node_editor_begin_ex" }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|OpenScope|UiText id;ref int segment||h2aeb15441c53f332d451a287be64ba38ecdb4c05be10ad0f8a2412b04c3ad51a", "signature": "OpenScope PathBarMenu(UiText id, ref int segment)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }], "summary": "True while the menu of separator *segment is showing: build menu items for the children of that segment, then call cui_path_bar_menu_end." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|OpenScope|UiText id;PopoverOpts o = default||had5881283c2885b236d342cac799068e3bd7a8c2d4272ceb08bf27aa60e812f7", "signature": "OpenScope Popover(UiText id, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "cui_popover_begin" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|OpenScope|UiText id;ReasoningOpts o = default||hd8c6837b660811abb55b30c3bcc35eb42dd2099f40a5a73eb35972aca384d12b", "signature": "OpenScope Reasoning(UiText id, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "cui_reasoning_begin" }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|OpenScope|UiText title;ref bool open;SheetOpts o = default||heb98d14c7c6250a83593cac259a583d17aa8636e9eaa839b64b4b5e3db2551d7", "signature": "OpenScope Sheet(UiText title, ref bool open, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "cui_sheet_begin" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;TableOpts o = default||hfd909896b0ab780a5093f3e917adaa2e23e03121d3b8e920a5305582c66486d0", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Same as the overload with ref sort, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;TableOpts o = default||hfda1db8518191e5d1de411deaefeed0d0f8d6838a3a1398abfa10ad4b36ff692", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "cui_table_begin_ex" }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|OpenScope|UiText label;ref bool open;TreeOpts o = default||h4406f8e6a4e0d2f04e9468f25ca87def814144056b1780a4e869ea86998fdd10", "signature": "OpenScope Tree(UiText label, ref bool open, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "cui_tree_begin" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|OpenScope|UiText name;UserMenuOpts o = default||h5323b7ef69eef4b5689f61a0c79b09355b7d2e1579ced7536bd574838f5eb096", "signature": "OpenScope UserMenu(UiText name, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "cui_user_menu_begin" }, { "name": "PathBar", "kind": "extension", "id": "extension|PathBar|0|0|PathBarResult|UiText id;ReadOnlySpan\u003Cstring\u003E segments;PathBarOpts o = default||h5256da01c2004bf6922b836f1b3e9fbc43ed881a67e823c1895ab05f0949dd56", "signature": "PathBarResult PathBar(UiText id, ReadOnlySpan\u003Cstring\u003E segments, PathBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segments", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "PathBarOpts", "default": "default" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "extension", "id": "extension|Pipeline|0|0|PipelineResult|UiText id;ReadOnlySpan\u003Cstring\u003E stages;ReadOnlySpan\u003CPipelineJob\u003E jobs;ref int selected;PipelineOpts o = default||h57164c455b64addad840b532dee1f4eb3acaba49d3b9d3b92afbab5d775aa6e7", "signature": "PipelineResult Pipeline(UiText id, ReadOnlySpan\u003Cstring\u003E stages, ReadOnlySpan\u003CPipelineJob\u003E jobs, ref int selected, PipelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "jobs", "type": "ReadOnlySpan\u003CPipelineJob\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "PipelineOpts", "default": "default" }], "summary": "cui_pipeline_ex" }, { "name": "NowPlaying", "kind": "extension", "id": "extension|NowPlaying|0|0|PlayerEvents|UiText id;ref NowPlayingState np;NowPlayingOpts o = default||h9fae980dc34277b737fa803cbecd222d9c0a4c796e96fa70b56eeeefd0df2b25", "signature": "PlayerEvents NowPlaying(UiText id, ref NowPlayingState np, NowPlayingOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "np", "type": "ref NowPlayingState" }, { "name": "o", "type": "NowPlayingOpts", "default": "default" }], "summary": "cui_now_playing_ex" }, { "name": "Problems", "kind": "extension", "id": "extension|Problems|0|0|ProblemsResult|UiText id;ReadOnlySpan\u003CProblemItem\u003E diags;ProblemsOpts o = default||h6893f9c629255366d4079d33866236777cdcf107644e4109933ef620b8022eed", "signature": "ProblemsResult Problems(UiText id, ReadOnlySpan\u003CProblemItem\u003E diags, ProblemsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "diags", "type": "ReadOnlySpan\u003CProblemItem\u003E" }, { "name": "o", "type": "ProblemsOpts", "default": "default" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "extension", "id": "extension|FlameSpanRect|0|0|RectF|uint flame;in FlameSpan span||haa242a01ec7cc85ea2f271378c3c8c334942d3f054714bdc41b27574a4327c82", "signature": "RectF FlameSpanRect(uint flame, in FlameSpan span)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "flame", "type": "uint" }, { "name": "span", "type": "in FlameSpan" }], "summary": "Where a span was drawn in the latest frame, in points (zero size when out of view). flame is the graph\u0027s id: cui_last_id(ui) right after the call." }, { "name": "LastRect", "kind": "property", "id": "property|LastRect|0|0|RectF||get;|ha796a249509c6af4a48352050e2d549bf5de307702a0f97fbc12276bc4b72b7b", "signature": "RectF LastRect { get; }", "summary": "Rectangle of the most recent component." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|UiText id||hf03418b016be6b023e965616caed52e5a7dd6a367152691bc14de3eb646ed966", "signature": "RectF RectOf(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Rectangle of the widget with this string id." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|uint id||hc518e049cee7502b5770da6d0349e6e1b3764c8cc67fc33e3a92b5006d46ad99", "signature": "RectF RectOf(uint id)", "parameters": [{ "name": "id", "type": "uint" }], "summary": "Rectangle of any widget by id, for hit tests and overlays." }, { "name": "RegexTester", "kind": "extension", "id": "extension|RegexTester|0|0|RegexTesterResult|UiText id;ref string pattern;int patternCap;ref string text;int textCap;ref RegexFlags flags;RegexTesterOpts o = default||h53b2155ffb50f74e3cdbeb47580968a3b4c6256e0cbe584d8955de62e7015f50", "signature": "RegexTesterResult RegexTester(UiText id, ref string pattern, int patternCap, ref string text, int textCap, ref RegexFlags flags, RegexTesterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pattern", "type": "ref string" }, { "name": "patternCap", "type": "int" }, { "name": "text", "type": "ref string" }, { "name": "textCap", "type": "int" }, { "name": "flags", "type": "ref RegexFlags" }, { "name": "o", "type": "RegexTesterOpts", "default": "default" }], "summary": "cui_regex_tester_ex" }, { "name": "RequestBar", "kind": "extension", "id": "extension|RequestBar|0|0|RequestBarResult|UiText id;ref HttpMethod method;ref string url;int cap = 2048;RequestBarOpts o = default||h400ba2e5c7aed931b8c2e5897d16438378b1652b5dfca8f9a1057e88fcb46043", "signature": "RequestBarResult RequestBar(UiText id, ref HttpMethod method, ref string url, int cap = 2048, RequestBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "method", "type": "ref HttpMethod" }, { "name": "url", "type": "ref string" }, { "name": "cap", "type": "int", "default": "2048" }, { "name": "o", "type": "RequestBarOpts", "default": "default" }], "summary": "cui_request_bar_ex" }, { "name": "ResponseActions", "kind": "extension", "id": "extension|ResponseActions|0|0|ResponseEvents|UiText id;ref int vote;ResponseActionsOpts o = default||hc81149b07827af0f59a3269486e0d44858ac9bb48073ed5150872c876c11984c", "signature": "ResponseEvents ResponseActions(UiText id, ref int vote, ResponseActionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "vote", "type": "ref int" }, { "name": "o", "type": "ResponseActionsOpts", "default": "default" }], "summary": "cui_response_actions_ex" }, { "name": "SchedulePicker", "kind": "extension", "id": "extension|SchedulePicker|0|0|ScheduleResult|UiText id;ref string cron;int cap = 128;ScheduleOpts o = default||h5e149aabf00cdaf3e05fa29f62f956e474f8fee28641ae71fde4eaaeb8801f91", "signature": "ScheduleResult SchedulePicker(UiText id, ref string cron, int cap = 128, ScheduleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "cron", "type": "ref string" }, { "name": "cap", "type": "int", "default": "128" }, { "name": "o", "type": "ScheduleOpts", "default": "default" }], "summary": "cui_schedule_picker_ex" }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id||h8505c3ecbdde9acd049fc2d5d47e3c43d0545b89b2b78cc39c0a3993049107cf", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Persistent, zeroed storage for a widget id, for values that must survive between frames (animation phases, drag state, hit-test scratch)." }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id;Action onFree||hbfa4567fbf2313cbdd3cc11d8daae823c35ccab56e58f7f91c8635a98f228824", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id, Action onFree) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "onFree", "type": "Action" }], "summary": "Persistent, zeroed storage for a widget id, with a callback CUI runs when it throws that id\u0027s state away (about five idle seconds, or when the window closes)." }, { "name": "StackTrace", "kind": "extension", "id": "extension|StackTrace|0|0|StackTraceResult|UiText id;ReadOnlySpan\u003CStackFrame\u003E frames;StackTraceOpts o = default||h31d88e2151b353d79ca390bcbc46b17c2882a950f9cf2239a266b97eeaa36a9b", "signature": "StackTraceResult StackTrace(UiText id, ReadOnlySpan\u003CStackFrame\u003E frames, StackTraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "frames", "type": "ReadOnlySpan\u003CStackFrame\u003E" }, { "name": "o", "type": "StackTraceOpts", "default": "default" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "extension", "id": "extension|Terminal|0|0|TerminalResult|UiText id;Terminal terminal;TerminalOpts o = default||h3bb90fc3e22f3e909beb279d5867cc2751b7287513f1480f8c73f2e7405f14d7", "signature": "TerminalResult Terminal(UiText id, Terminal terminal, TerminalOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "terminal", "type": "Terminal" }, { "name": "o", "type": "TerminalOpts", "default": "default" }], "summary": "Draws terminal and reports what the user did in it." }, { "name": "TestExplorer", "kind": "extension", "id": "extension|TestExplorer|0|0|TestExplorerResult|UiText id;ReadOnlySpan\u003CTestItem\u003E items;TestExplorerOpts o = default||h9eeb18e60e88e82a908b873a27468f9699a55c61fb36da8ff356557f102e3862", "signature": "TestExplorerResult TestExplorer(UiText id, ReadOnlySpan\u003CTestItem\u003E items, TestExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTestItem\u003E" }, { "name": "o", "type": "TestExplorerOpts", "default": "default" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|0|0|TextMetrics|UiText text;float size = 12f;Font font = Font.Body||h992b53c9418ee9ba19c1fd34ea05dca44fabbaac335e2ecdd31ccf760fd4f66f", "signature": "TextMetrics MeasureText(UiText text, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Width and height of a single line of text, without wrapping." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "The theme this frame draws with. Assign to switch, from anywhere inside a frame." }, { "name": "TimeHistogram", "kind": "extension", "id": "extension|TimeHistogram|0|0|TimeHistogramResult|UiText id;double start;double bucketSeconds;int buckets;ReadOnlySpan\u003CHistogramSeries\u003E series;ref double selStart;ref double selEnd;TimeHistogramOpts o = default||hfc0784cb52bfd6a3615191c61545b37c444f2ce965ef93b671333df27d4bf165", "signature": "TimeHistogramResult TimeHistogram(UiText id, double start, double bucketSeconds, int buckets, ReadOnlySpan\u003CHistogramSeries\u003E series, ref double selStart, ref double selEnd, TimeHistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "ReadOnlySpan\u003CHistogramSeries\u003E" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "o", "type": "TimeHistogramOpts", "default": "default" }], "summary": "cui_time_histogram_ex" }, { "name": "Tour", "kind": "extension", "id": "extension|Tour|0|0|TourAction|UiText id;ReadOnlySpan\u003CTourStep\u003E steps;ref int step;TourOpts o = default||h7a480bb022c619036d7ca1d19006a7d5aa923a84ea3fc62b5eae88ea7b1088c8", "signature": "TourAction Tour(UiText id, ReadOnlySpan\u003CTourStep\u003E steps, ref int step, TourOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CTourStep\u003E" }, { "name": "step", "type": "ref int" }, { "name": "o", "type": "TourOpts", "default": "default" }], "summary": "What happened this frame: one of CUI_TOUR_*." }, { "name": "TraceView", "kind": "extension", "id": "extension|TraceView|0|0|TraceResult|UiText id;ReadOnlySpan\u003CTraceTrack\u003E tracks;ReadOnlySpan\u003CTraceSpan\u003E spans;ref TraceViewState view;ref int selected;TraceOpts o = default||h7ab8ce526cada0bd73b947180d909dfa39f159b47ac14940ec53b67f28158b92", "signature": "TraceResult TraceView(UiText id, ReadOnlySpan\u003CTraceTrack\u003E tracks, ReadOnlySpan\u003CTraceSpan\u003E spans, ref TraceViewState view, ref int selected, TraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tracks", "type": "ReadOnlySpan\u003CTraceTrack\u003E" }, { "name": "spans", "type": "ReadOnlySpan\u003CTraceSpan\u003E" }, { "name": "view", "type": "ref TraceViewState" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TraceOpts", "default": "default" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||h5ad3a7ebd26d1298c20becc826efa4b5392b7ddbca0d68cfbb1f162eb572fd75", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws a tree without sort or keyboard state: the table keeps no per-id interaction state, which is all a static tree needs." }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;ref TableSort sort;ref int cursor;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||hdc8db941f4c0a5cc7a1e81a316f1e56fbc2468020569fb6cacf3307bec596a1d", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, ref TableSort sort, ref int cursor, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "sort", "type": "ref TableSort" }, { "name": "cursor", "type": "ref int" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws nodes as a tree with columns, calling row once per visible node to fill its cells." }, { "name": "Uptime", "kind": "extension", "id": "extension|Uptime|0|0|UptimeResult|UiText id;ReadOnlySpan\u003CUptimeService\u003E services;UptimeOpts o = default||h60131e1db59b8a809d222a6d6dee840e1ccde25607a2c4178418eef8a488dccb", "signature": "UptimeResult Uptime(UiText id, ReadOnlySpan\u003CUptimeService\u003E services, UptimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "services", "type": "ReadOnlySpan\u003CUptimeService\u003E" }, { "name": "o", "type": "UptimeOpts", "default": "default" }], "summary": "cui_uptime_ex" }, { "name": "MousePosition", "kind": "property", "id": "property|MousePosition|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h02b51b7243b762c56e53482522c31644d844cd12e36381af09a9700cd549db93", "signature": "ValueTuple\u003Cfloat, float\u003E MousePosition { get; }", "summary": "Pointer position in points, top-left origin." }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|0|0|ValueTuple\u003Cfloat, float\u003E|||h7a26e2e5e6b39edb5a26a6e7adde40edf0bcd8599f3d7629ea37d02c109493a2", "signature": "ValueTuple\u003Cfloat, float\u003E ViewportSize()" }, { "name": "Waterfall", "kind": "extension", "id": "extension|Waterfall|0|0|WaterfallResult|UiText id;ReadOnlySpan\u003CNetRequest\u003E requests;ref int selected;WaterfallOpts o = default||h419b5ccb1a80d64ac3cce058fa79a3ac44664f29e8c9685c083cf8552c6714e6", "signature": "WaterfallResult Waterfall(UiText id, ReadOnlySpan\u003CNetRequest\u003E requests, ref int selected, WaterfallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "requests", "type": "ReadOnlySpan\u003CNetRequest\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "WaterfallOpts", "default": "default" }], "summary": "cui_waterfall_ex" }, { "name": "Alert", "kind": "extension", "id": "extension|Alert|0|0|bool|UiText title;AlertOpts o = default||hb9b8786bcd05d91b48b9d5b7e7c8dfe99eab8a18cccf61ee5708920e8c2c65a0", "signature": "bool Alert(UiText title, AlertOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "AlertOpts", "default": "default" }], "summary": "Inline alert. Returns false once dismissed (when dismissible)." }, { "name": "Banner", "kind": "extension", "id": "extension|Banner|0|0|bool|UiText text;ref bool open;BannerOpts o = default||hded3699dd8c0717c5f0d2f8a60f5b76364aaa539a156402e1d68fed1e8b19dd6", "signature": "bool Banner(UiText text, ref bool open, BannerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "BannerOpts", "default": "default" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "extension", "id": "extension|Button|0|0|bool|UiText label;ButtonOpts o = default||h0824ce1ee9db1a3102bbbc57b5f43c838d0aac0c456dc9d0f5ddf3a8bb9eaae3", "signature": "bool Button(UiText label, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "extension", "id": "extension|Calendar|0|0|bool|UiText id;ref Date value||he2d734019c4ba63e626cffe267911189a15dbf5b403eff0fc6fd9898d4334662", "signature": "bool Calendar(UiText id, ref Date value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }], "summary": "cui_calendar" }, { "name": "Checkbox", "kind": "extension", "id": "extension|Checkbox|0|0|bool|UiText label;ref bool value;CheckOpts o = default||h5e553956f3358e286491451619c072577baad5689e0ba2b38257460dced857ee", "signature": "bool Checkbox(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "extension", "id": "extension|Chip|0|0|bool|UiText label;ref bool selected;ChipOpts o = default||h4ff38ab2a9a818e7526990ee6c9e6f19f63a1138e5fb79d08917e25c0d0a78ee", "signature": "bool Chip(UiText label, ref bool selected, ChipOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "selected", "type": "ref bool" }, { "name": "o", "type": "ChipOpts", "default": "default" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "extension", "id": "extension|Citation|0|0|bool|int number;in Source source||ha19b93ee36f160c6271aaa8db69ab4937531c6d0be1bdcd8e208aa7eb206aee7", "signature": "bool Citation(int number, in Source source)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "number", "type": "int" }, { "name": "source", "type": "in Source" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "extension", "id": "extension|ColorPicker|0|0|bool|UiText id;ref Color value||h337517bd7bbb67ac9f2a0f2cd3561338116b8bbce4aab6736de92c41bd706e10", "signature": "bool ColorPicker(UiText id, ref Color value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Color" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "extension", "id": "extension|ConfirmButton|0|0|bool|UiText label;ConfirmOpts o = default||ha173e8d04000010db239a95f45b5a65630e6c3a32565f48acd835a79732b2383", "signature": "bool ConfirmButton(UiText label, ConfirmOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ConfirmOpts", "default": "default" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "extension", "id": "extension|ConfirmPopover|0|0|bool|UiText id;ConfirmPopoverOpts o = default||h1c2e0982b9c59e893eae1a02030bc1dcf3a82997c3f51101dbeae1b45e768ee2", "signature": "bool ConfirmPopover(UiText id, ConfirmPopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ConfirmPopoverOpts", "default": "default" }], "summary": "cui_confirm_popover_ex" }, { "name": "ControlTile", "kind": "extension", "id": "extension|ControlTile|0|0|bool|UiText label;ref bool on;TileOpts o = default||h030def7b2183e0b26721bad6afc91a710eb6f7cf309e2889db383c64f1477cbd", "signature": "bool ControlTile(UiText label, ref bool on, TileOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "on", "type": "ref bool" }, { "name": "o", "type": "TileOpts", "default": "default" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "extension", "id": "extension|CopyButton|0|0|bool|UiText id;UiText text||hbc740c15d3716aa5400fb730217b29b8462ce4a82a1b3b2c9884600f4fbfe844", "signature": "bool CopyButton(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "Icon button that copies text to the clipboard and confirms with a check." }, { "name": "Cropper", "kind": "extension", "id": "extension|Cropper|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref RectF crop;CropperOpts o = default||hc4433b320e719d68cf000799d9f75543139b19ed26265d5d5b7ef0e7cb29a2cf", "signature": "bool Cropper(UiText id, ulong tex, int imageW, int imageH, ref RectF crop, CropperOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref RectF" }, { "name": "o", "type": "CropperOpts", "default": "default" }], "summary": "Returns true when the crop changed." }, { "name": "DataGridCellEdit", "kind": "extension", "id": "extension|DataGridCellEdit|0|0|bool|ref string buf;int cap||h36d248e6c06ee8f7c129163000d2afe51274d879f2f2a6dd8f75e48579c04c63", "signature": "bool DataGridCellEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Editable text cell: double click (or Enter on the cursor row) to edit, Enter or clicking away commits, Esc reverts. True when committed." }, { "name": "DataGridEdit", "kind": "extension", "id": "extension|DataGridEdit|0|0|bool|ref string buf;int cap||h4a0248a3c48520cf419b921b7953de24c458026bb86ab7bd00ba08e5d194ef65", "signature": "bool DataGridEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "The same editable text, inside the current cell (after an avatar, say)." }, { "name": "DataGridRow", "kind": "extension", "id": "extension|DataGridRow|0|0|bool|int row||h5fe4fdf7429d5b5aac0325fa0af56631c8d8a1ff342c03251fe30d766d9f9225", "signature": "bool DataGridRow(int row)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "extension", "id": "extension|DatePicker|0|0|bool|UiText id;ref Date value;DateOpts o = default||h993523ace680cddb6c1434059ef52f3fb34d716bed495d79d97b148118785ee2", "signature": "bool DatePicker(UiText id, ref Date value, DateOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }, { "name": "o", "type": "DateOpts", "default": "default" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "extension", "id": "extension|DateRangePicker|0|0|bool|UiText id;ref DateRange range;DateRangeOpts o = default||h9daa98cbb5461612c53362c329641eba719561905ce1865087421113c0ee84d1", "signature": "bool DateRangePicker(UiText id, ref DateRange range, DateRangeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "o", "type": "DateRangeOpts", "default": "default" }], "summary": "cui_date_range_picker_ex" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|0|0|bool|out Date value||h2030bff62c6a99d4c47e3fa2a09f8c125232327d048faf8c41c853eeafa84679", "signature": "bool DateToday(out Date value)", "parameters": [{ "name": "value", "type": "out Date" }] }, { "name": "DockItem", "kind": "extension", "id": "extension|DockItem|0|0|bool|UiText icon;UiText label;DockItemOpts o = default||h6868974ee881c1a4f660ae0207737b226f6822fd1064babdbda9860825db89d1", "signature": "bool DockItem(UiText icon, UiText label, DockItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "DockItemOpts", "default": "default" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "extension", "id": "extension|DockLoad|0|0|bool|UiText id;UiText text||hffd91787faf77c3d390dfe7deb8bb16df93eb717a31ba3fd4130eac2e2e134b4", "signature": "bool DockLoad(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "cui_dock_load" }, { "name": "EmojiFontLoadFile", "kind": "extension", "id": "extension|EmojiFontLoadFile|0|0|bool|UiText path||hf9ed3d99d8c528c9df41c7bca5721cb0eb461686e0a48bc35d1cf718f13ba0f6", "signature": "bool EmojiFontLoadFile(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "---- Emoji ---- Color emoji come from an emoji font: the system\u0027s (cui_emoji_font_load_system, which the picker calls by itself when nothing is loaded) or one the app ships. Bitmap color fonts (sbix as on macOS, CBDT as on Linux and Android) and layered ones (COLR version 0, as on Windows) are read, as is a plain outline font for one-color emoji. Sequences with skin tones, joined people and flags are looked up through the font\u0027s ligatures. Big fonts are read from the file as needed rather than loaded whole. Drawn emoji are kept in one texture and reused." }, { "name": "EmojiFontLoadMemory", "kind": "extension", "id": "extension|EmojiFontLoadMemory|0|0|bool|ReadOnlySpan\u003Cbyte\u003E data;bool copy||h8f31cf994f46f3f46e0c7fdefbd7d39be865056bcb0700421f0fee7be7142342", "signature": "bool EmojiFontLoadMemory(ReadOnlySpan\u003Cbyte\u003E data, bool copy)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "extension", "id": "extension|EmojiFontLoadSystem|0|0|bool|||he4386dbb08b9f31fd0c23d6cb333b56d4babcbd26d5e38fa72a56bc89a6bac12", "signature": "bool EmojiFontLoadSystem()", "extensionOn": "CuiSharp.Ui", "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "extension", "id": "extension|EmojiSupported|0|0|bool|UiText utf8||he0adda46557f9d84dbc4c6feb4f995d99998ffae9bdabd33371c8df1fc7899fb", "signature": "bool EmojiSupported(UiText utf8)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "extension", "id": "extension|EmptyState|0|0|bool|UiText title;EmptyOpts o = default||h3447935b9ffe834dcbe57094c2bd062fa6216fbbd3d59e4e2527f7da36f6f369", "signature": "bool EmptyState(UiText title, EmptyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "EmptyOpts", "default": "default" }], "summary": "Empty state. Returns true when its action button is clicked." }, { "name": "ExpandableText", "kind": "extension", "id": "extension|ExpandableText|0|0|bool|UiText id;UiText text;ExpandableTextOpts o = default||h0853336278f85890679dc7cd1bc9eb77a34f2cf61567d87164045778c0f8d6ad", "signature": "bool ExpandableText(UiText id, UiText text, ExpandableTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "ExpandableTextOpts", "default": "default" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "extension", "id": "extension|Fader|0|0|bool|UiText id;ref float value;float min;float max;FaderOpts o = default||h8266bbe632feda1ec1b4b87bd7f41cc9e107e496de7dfb957c9d87f1e63f8835", "signature": "bool Fader(UiText id, ref float value, float min, float max, FaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "FaderOpts", "default": "default" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the window, for a drop target to light up." }, { "name": "FilePicker", "kind": "extension", "id": "extension|FilePicker|0|0|bool|UiText id;ref bool open;ref string out;int outCap = 1024;FilePickerOpts o = default||hb1ce6182678b8b2ca569fff7fdf6d4a781314228ed80d25a4c02a48b368dd07f", "signature": "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "out", "type": "ref string" }, { "name": "outCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FilePickerOpts", "default": "default" }], "summary": "True once, with the chosen path in out, when the dialog is confirmed; *open turns false then, or on Cancel and Esc." }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|0|0|bool|UiText id;ReadOnlySpan\u003CFilterField\u003E fields;Span\u003Cuint\u003E selected;ref string search;int searchCap = 256||h05b35fdecfc879680ca00e844554bef0fb0d2b9ee533e72f50a25b4cb5e4be7a", "signature": "bool FilterBar(UiText id, ReadOnlySpan\u003CFilterField\u003E fields, Span\u003Cuint\u003E selected, ref string search, int searchCap = 256)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CFilterField\u003E" }, { "name": "selected", "type": "Span\u003Cuint\u003E" }, { "name": "search", "type": "ref string" }, { "name": "searchCap", "type": "int", "default": "256" }], "summary": "Filter chips, one dropdown per field plus a search. selected holds one option bitmask per field; returns true on any change." }, { "name": "HistogramSlider", "kind": "extension", "id": "extension|HistogramSlider|0|0|bool|UiText label;ReadOnlySpan\u003Cfloat\u003E bins;ref float lo;ref float hi;float min;float max;HistogramOpts o = default||h72cc41a613543670d7d773f53d3ed618f4ca5dda5c9cf710a8ea0c0745f9816a", "signature": "bool HistogramSlider(UiText label, ReadOnlySpan\u003Cfloat\u003E bins, ref float lo, ref float hi, float min, float max, HistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "bins", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "HistogramOpts", "default": "default" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "extension", "id": "extension|HoldButton|0|0|bool|UiText label;HoldOpts o = default||ha44fcfbb972ecfbea614fbc280b43abd9c243c1e05ac46d39ac240667e1b2a30", "signature": "bool HoldButton(UiText label, HoldOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "HoldOpts", "default": "default" }], "summary": "cui_hold_button_ex" }, { "name": "IconButton", "kind": "extension", "id": "extension|IconButton|0|0|bool|UiText icon;ButtonOpts o = default||h5215045b3b917c5c328653c82d759d884c905c9bee3fd2bcae9c23b95552a5e2", "signature": "bool IconButton(UiText icon, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "Square/round button with only an icon. Give it a tooltip so it has a name." }, { "name": "ImageCompare", "kind": "extension", "id": "extension|ImageCompare|0|0|bool|UiText id;ulong before;ulong after;ref float pos;CompareOpts o = default||hbf70b5332c704791b825e9cb8d9e14cd4661dfc72efb9bed54e7afc61aac7221", "signature": "bool ImageCompare(UiText id, ulong before, ulong after, ref float pos, CompareOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "o", "type": "CompareOpts", "default": "default" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "extension", "id": "extension|ImageViewer|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref ImageView view;ImageViewerOpts o = default||hfd49614f5ed12268c88fafc87f200f9ba92c7a0989e02c2476dadf0bb0fab3b3", "signature": "bool ImageViewer(UiText id, ulong tex, int imageW, int imageH, ref ImageView view, ImageViewerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref ImageView" }, { "name": "o", "type": "ImageViewerOpts", "default": "default" }], "summary": "Returns true when the view changed." }, { "name": "InspectorGroup", "kind": "extension", "id": "extension|InspectorGroup|0|0|bool|UiText title;ref bool open||hba33317836e4529b513b762245b52b82d2fc8fd252b7ae2174d7ffdf7ff08018", "signature": "bool InspectorGroup(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "A folding group header. Build its rows only when this returns true (it stays true while the group animates closed). open may be NULL for a plain section that does not fold." }, { "name": "IsDisabled", "kind": "property", "id": "property|IsDisabled|0|0|bool||get;|h66819bb8e34991aa0b9a8fdf312d84bcc577f1aed8196c14e9cfc9792bab4b6e", "signature": "bool IsDisabled { get; }", "summary": "True inside a Disabled scope (or one a parent opened)." }, { "name": "JsonView", "kind": "extension", "id": "extension|JsonView|0|0|bool|UiText id;UiText json;JsonOpts o = default||h206112d6d2798b04c8b2e35b11a492fe5022438268206f218c32f29f9efa0bbf", "signature": "bool JsonView(UiText id, UiText json, JsonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "json", "type": "UiText" }, { "name": "o", "type": "JsonOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Kanban", "kind": "extension", "id": "extension|Kanban|0|0|bool|UiText id;out KanbanMove kanbanmove;DrawFn body||h06459ebde22b2b48e212f80454450eb468aac078e18e50dee8f7aa756afdbe5e", "signature": "bool Kanban(UiText id, out KanbanMove kanbanmove, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "kanbanmove", "type": "out KanbanMove" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_kanban_begin The card was dropped into another column, and the move is written into the out parameter." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|bool|Key key||h8b8a390f57bfe976c9fae2d30fec99be77322f69944968534c26bc08482cb159", "signature": "bool KeyDown(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True while the key is held (with auto-repeat)." }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|0|0|bool|Key key||hd4bc534b9e8b12976f0c38f87635500fca89a9d6949ea0a103354f41e6d39700", "signature": "bool KeyPressed(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True on the frame the key went down, including repeats." }, { "name": "Knob", "kind": "extension", "id": "extension|Knob|0|0|bool|UiText id;ref float value;float min;float max;KnobOpts o = default||hfceb051da509c5e36d4bd22400b42f24a8cc0da8ba2c27a23c8e378855c66680", "signature": "bool Knob(UiText id, ref float value, float min, float max, KnobOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "KnobOpts", "default": "default" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "extension", "id": "extension|KvEditor|0|0|bool|UiText id;Span\u003CKeyValue\u003E pairs;ref int count;int capacity;KvEditorOpts o = default||h5d7a626c1e0d0a2cbf62a8c0287d50a3401dbcf803f979b35c42c7899fb4db07", "signature": "bool KvEditor(UiText id, Span\u003CKeyValue\u003E pairs, ref int count, int capacity, KvEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pairs", "type": "Span\u003CKeyValue\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "KvEditorOpts", "default": "default" }], "summary": "cui_kv_editor_ex" }, { "name": "LevelMeter", "kind": "extension", "id": "extension|LevelMeter|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E levels;LevelMeterOpts o = default||he2b90272968549a2bc948844fa0f2e5fcb787783f5c0716cf3d8c48db532ab7e", "signature": "bool LevelMeter(UiText id, ReadOnlySpan\u003Cfloat\u003E levels, LevelMeterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "levels", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "LevelMeterOpts", "default": "default" }], "summary": "Returns true when the clip light was clicked to clear it." }, { "name": "Link", "kind": "extension", "id": "extension|Link|0|0|bool|UiText text||h20b90df40ad793aa00f00bae1aeddd8c78d8d1ee7eccdf7f709db8b78317b57a", "signature": "bool Link(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "extension", "id": "extension|ListItem|0|0|bool|UiText title;ListItemOpts o = default||h59240e7a8fd8d1115830e25d32bfc60e47f14e4645e8e48b58281c710be7f5c9", "signature": "bool ListItem(UiText title, ListItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ListItemOpts", "default": "default" }], "summary": "cui_list_item_ex" }, { "name": "LoadImage", "kind": "method", "id": "method|LoadImage|0|0|bool|UiText path;out ulong texture;out int width;out int height||hfe19783db558936a04580a0831ac4289470f120ccd1ef3163fcee3e05649da1f", "signature": "bool LoadImage(UiText path, out ulong texture, out int width, out int height)", "parameters": [{ "name": "path", "type": "UiText" }, { "name": "texture", "type": "out ulong" }, { "name": "width", "type": "out int" }, { "name": "height", "type": "out int" }], "summary": "Decodes a PNG or JPEG from disk into a texture and reports its pixel size. Returns false when the file cannot be read or decoded; the texture is then 0. Release it with DestroyImage." }, { "name": "MenuItem", "kind": "extension", "id": "extension|MenuItem|0|0|bool|UiText label;MenuItemOpts o = default||h6f02a24b8c3e14f743f1164e34c40e0c32e7647a378fc18f6fac4bd77708b604", "signature": "bool MenuItem(UiText label, MenuItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuItemOpts", "default": "default" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "extension", "id": "extension|ModelPicker|0|0|bool|UiText id;ReadOnlySpan\u003CModel\u003E models;ref int selected;ModelPickerOpts o = default||h30f09bcdbcd0511d67feaab5ce1eb2d84b0769c8eb387e2675cdc4b9faf9d869", "signature": "bool ModelPicker(UiText id, ReadOnlySpan\u003CModel\u003E models, ref int selected, ModelPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "models", "type": "ReadOnlySpan\u003CModel\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ModelPickerOpts", "default": "default" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "extension", "id": "extension|MoneyInput|0|0|bool|UiText id;ref double value;MoneyOpts o = default||hd65fb688e51d9a482d2f9031cdb57646790ad85a3c809e961601a8725a753b42", "signature": "bool MoneyInput(UiText id, ref double value, MoneyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "o", "type": "MoneyOpts", "default": "default" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|0|0|bool|MouseButton button||h8e0f0ad614e613c5c152543c9917af645f5ae90299577124c2da8f7863f69862", "signature": "bool MouseClicked(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True on the frame a mouse button went down." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|bool|MouseButton button||hf67b74dbd9e44892fdb6b384ac7537f75c21e2054ec9267ee7cf800f77c4c81d", "signature": "bool MouseDown(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True while a mouse button is held." }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;Span\u003Cbool\u003E selected;MultiSelectOpts o = default||h3e128721808f3d5d3438e029c09a821039a75342e2851271e35420570d1affca", "signature": "bool MultiSelect(UiText id, ReadOnlySpan\u003Cstring\u003E items, Span\u003Cbool\u003E selected, MultiSelectOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "selected", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "MultiSelectOpts", "default": "default" }], "summary": "A searchable list with one checkbox per item and chips for the chosen ones. Returns true on the frame an entry flips." }, { "name": "NavItem", "kind": "extension", "id": "extension|NavItem|0|0|bool|UiText label;NavOpts o = default||h163b7c5bf544cc2227cbef6b64c928a89e62b8536a9e4ab947179a86d455c59d", "signature": "bool NavItem(UiText label, NavOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "NavOpts", "default": "default" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "property", "id": "property|NeedsRedraw|0|0|bool||get;|h5aadd05568570958d5b9529ecc317e3ce874d6c40baa003636859fb90a0da9fc", "signature": "bool NeedsRedraw { get; }" }, { "name": "NodeDeleted", "kind": "extension", "id": "extension|NodeDeleted|0|0|bool|ref int nodeId||hc3cfc3ad4c4fc3a042b1dbb26d3de5739a59ee9b1e9f8c1741f772a5e535d6bc", "signature": "bool NodeDeleted(ref int nodeId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeInput", "kind": "extension", "id": "extension|NodeInput|0|0|bool|int pinId;UiText label;PinOpts o = default||hd37a374006c3c8cd18c68d9d7503bd5160359d3f3e458d3531e756c52700b1f0", "signature": "bool NodeInput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "extension", "id": "extension|NodeLink|0|0|bool|int linkId;int fromPin;int toPin||hab2ff05d12c3863dc35ff7ced8cdef83783fba6a2e16dbd81214feb3eaf01910", "signature": "bool NodeLink(int linkId, int fromPin, int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeLinkCreated", "kind": "extension", "id": "extension|NodeLinkCreated|0|0|bool|ref int fromPin;ref int toPin||h7c136a895333c132f83c1d99cf5809163d5430c0060eaaedcf7bbe0f15f462bd", "signature": "bool NodeLinkCreated(ref int fromPin, ref int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "What the user did this frame, one event per call; call them after cui_node_editor_begin (and up to the end of the frame)." }, { "name": "NodeLinkRemoved", "kind": "extension", "id": "extension|NodeLinkRemoved|0|0|bool|ref int linkId||h8cf7097abf407418a15af49e45ee086b240ec03b1e130c7888ce620da1bbadca", "signature": "bool NodeLinkRemoved(ref int linkId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "ref int" }], "summary": "Part of cui_node_link \u2014 A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeOutput", "kind": "extension", "id": "extension|NodeOutput|0|0|bool|int pinId;UiText label;PinOpts o = default||h3750efacdd047bf840c0482278adf33fa6dd72ffa3acb6bf2c1afd789b95d351", "signature": "bool NodeOutput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|0|0|bool|UiText id;ref double value;double min;double max;NumberOpts o = default||h695eacf696437442db4c71e212e9d772037965f7b79fa0164581c32f72012f09", "signature": "bool Number(UiText id, ref double value, double min, double max, NumberOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "o", "type": "NumberOpts", "default": "default" }] }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|0|0|bool|UiText id;ref string value;int length||h8029c922f0c302147b4a9d172f51e477cf692656857072b2505965f1cc911eaf", "signature": "bool OtpInput(UiText id, ref string value, int length)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "length", "type": "int" }], "summary": "One-time code input: length boxes, buffer length \u002B 1." }, { "name": "Pagination", "kind": "extension", "id": "extension|Pagination|0|0|bool|UiText id;ref int page;int pageCount||h79ccb8aea896cd889c714acd8763edcf22dbbfb029a1dbd70ed9639354c6b6c8", "signature": "bool Pagination(UiText id, ref int page, int pageCount)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PopoverIsOpen", "kind": "extension", "id": "extension|PopoverIsOpen|0|0|bool|UiText id||h83722811a2be8261fbe93cc555b026a4a1e130ec294d2cd25013358d929a3c0e", "signature": "bool PopoverIsOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "extension", "id": "extension|PropBool|0|0|bool|UiText label;ref bool value;PropOpts o = default||h121ac40771efea9741585563443f4c4687f7a10d137ffd9d268555b5501ddd64", "signature": "bool PropBool(UiText label, ref bool value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "extension", "id": "extension|PropColor|0|0|bool|UiText label;ref Color value;PropOpts o = default||h6ca0bc5ddc35dae8cf9131bd28c26cd31e497e501164de0d50828fb7983a1cc2", "signature": "bool PropColor(UiText label, ref Color value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref Color" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "A swatch and hex value that opens the color picker." }, { "name": "PropEnum", "kind": "extension", "id": "extension|PropEnum|0|0|bool|UiText label;ReadOnlySpan\u003Cstring\u003E items;ref int index;PropOpts o = default||h241aa42ffd01f5c7a9fadb861af4a608b0c8a014ae458b62692370d10cf009d8", "signature": "bool PropEnum(UiText label, ReadOnlySpan\u003Cstring\u003E items, ref int index, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "extension", "id": "extension|PropFloat|0|0|bool|UiText label;ref float value;PropOpts o = default||hc8efd7345903f342766598358e2e5c0998eb7933cf7f5cec0429b86873ff6ccf", "signature": "bool PropFloat(UiText label, ref float value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "extension", "id": "extension|PropInt|0|0|bool|UiText label;ref int value;PropOpts o = default||hd93df8234e1afb0dba5df9a1531c8936c732948e17db67e12102617d568c305b", "signature": "bool PropInt(UiText label, ref int value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "extension", "id": "extension|PropText|0|0|bool|UiText label;ref string buf;int cap;PropOpts o = default||h46a1a717145b1f3a7800e8921d45ea9b002d8c2fdf5958fbf3c03f97fc47d1db", "signature": "bool PropText(UiText label, ref string buf, int cap, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "extension", "id": "extension|PropVec|0|0|bool|UiText label;ref float value;int components;PropOpts o = default||h57600f963270b3c592fd247d9b1f943533361ae615e7b6ca52e287fa289a67b2", "signature": "bool PropVec(UiText label, ref float value, int components, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "Compact X, Y (Z, W) scrub fields side by side; value holds 2, 3 or 4 floats." }, { "name": "QueryBuilder", "kind": "extension", "id": "extension|QueryBuilder|0|0|bool|UiText id;ReadOnlySpan\u003CQueryField\u003E fields;Span\u003CQueryNode\u003E nodes;ref int count;int capacity;QueryOpts o = default||h63279934815740f429812f645fc20bbc38efc937b246d56e61a9f171034a9922", "signature": "bool QueryBuilder(UiText id, ReadOnlySpan\u003CQueryField\u003E fields, Span\u003CQueryNode\u003E nodes, ref int count, int capacity, QueryOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "Span\u003CQueryNode\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "QueryOpts", "default": "default" }], "summary": "cui_query_builder_ex" }, { "name": "Radio", "kind": "extension", "id": "extension|Radio|0|0|bool|UiText label;ref int value;int option;CheckOpts o = default||h837451b9483026bc7e273c76e5251c0de524d770f182a8365674ac44553130ee", "signature": "bool Radio(UiText label, ref int value, int option, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "extension", "id": "extension|RadioCards|0|0|bool|UiText id;ReadOnlySpan\u003CChoice\u003E choices;ref int index;RadioCardsOpts o = default||h277ecfd91b4ab6ad87556ac5585d5014c5f8f4b70743ded6f2d33b25b513c439", "signature": "bool RadioCards(UiText id, ReadOnlySpan\u003CChoice\u003E choices, ref int index, RadioCardsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "choices", "type": "ReadOnlySpan\u003CChoice\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "RadioCardsOpts", "default": "default" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "extension", "id": "extension|RadioGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index||h13b5e8871098bf87979cd713e4fa844042e8066de15ba83cf7b5cda071897cee", "signature": "bool RadioGroup(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "extension", "id": "extension|RangeCalendar|0|0|bool|UiText id;ref DateRange range;int months||h8c74871e3d5b09aa52567046cfb0cacddba5d6bd45af5a0343aa6ea880da3344", "signature": "bool RangeCalendar(UiText id, ref DateRange range, int months)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "months", "type": "int" }], "summary": "One or two months side by side; click a start and an end." }, { "name": "RangeSlider", "kind": "extension", "id": "extension|RangeSlider|0|0|bool|UiText label;ref float lo;ref float hi;float min;float max||h431a1c22347795ecfaf7422d776daf2552ad13b1bbafc0b34e7ddfbb9f6fca1e", "signature": "bool RangeSlider(UiText label, ref float lo, ref float hi, float min, float max)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "extension", "id": "extension|Rating|0|0|bool|UiText id;ref int value;int max = 5||ha54ef468c924f3613d361d9d3e4ba18c9bed4ef0f7d7dd855532a052b89231ce", "signature": "bool Rating(UiText id, ref int value, int max = 5)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int", "default": "5" }], "summary": "cui_rating" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|0|0|bool|||h289d889249190a219f4708d3f6a34916df30d8dccdd623b1af17d06cf7ad4fe9", "signature": "bool ReorderEnd()" }, { "name": "RulerSlider", "kind": "extension", "id": "extension|RulerSlider|0|0|bool|UiText label;ref float value;float min;float max;RulerOpts o = default||hda8dec175710635b7de7215517d587b9a5332ed440922d693ed02813d9c4deb7", "signature": "bool RulerSlider(UiText label, ref float value, float min, float max, RulerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RulerOpts", "default": "default" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "extension", "id": "extension|Scrub|0|0|bool|UiText label;ref float value;float min;float max;ScrubOpts o = default||h816f9787704b09241842573d59264e0cc5674f4a764e0ae2054b721f3ad20a7b", "signature": "bool Scrub(UiText label, ref float value, float min, float max, ScrubOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "ScrubOpts", "default": "default" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SegmentedOpts o = default||h8452b4d90fbd938f7492782df2bfd7e49e6f17b79bb32a7fa92536dbbc52bbfb", "signature": "bool Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "extension", "id": "extension|Select|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SelectOpts o = default||h4546d9051044aa80f649b171897799d53c415b998250abdc626bf84e5341bea3", "signature": "bool Select(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SelectOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SelectOpts", "default": "default" }], "summary": "cui_select_ex" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|0|0|bool|Mods mods;Key key||h23544d98ad9364c783897d23b07d28fd4c4889f44ac4f6b734142ae19cee295a", "signature": "bool Shortcut(Mods mods, Key key)", "parameters": [{ "name": "mods", "type": "Mods" }, { "name": "key", "type": "Key" }] }, { "name": "ShortcutRecorder", "kind": "extension", "id": "extension|ShortcutRecorder|0|0|bool|UiText id;ref KeyCombo combo;ShortcutRecorderOpts o = default||h22c067848057da16592bf471e38a3d5c8d3e7a976928a24a34dda5e650586e2a", "signature": "bool ShortcutRecorder(UiText id, ref KeyCombo combo, ShortcutRecorderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "combo", "type": "ref KeyCombo" }, { "name": "o", "type": "ShortcutRecorderOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "SignaturePad", "kind": "extension", "id": "extension|SignaturePad|0|0|bool|UiText id;SignatureOpts o = default||h26a7180ac812cfc40208765b73de3283d8bdc2a773db48e467c36bfac61e2f47", "signature": "bool SignaturePad(UiText id, SignatureOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SignatureOpts", "default": "default" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "extension", "id": "extension|Slider|0|0|bool|UiText label;ref float value;float min;float max;SliderOpts o = default||h07890e859be8c8053afac54f6a7ef888728ac54358e77cca1a0c6f9d5936fcd0", "signature": "bool Slider(UiText label, ref float value, float min, float max, SliderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "SliderOpts", "default": "default" }], "summary": "Elastic slider: the track stretches like rubber when dragged past its ends." }, { "name": "StatusBarItem", "kind": "extension", "id": "extension|StatusBarItem|0|0|bool|UiText label;StatusItemOpts o = default||h35fa1b9b36f005ceff913dc858202baee2f50d4678537b369e987582020f4d84", "signature": "bool StatusBarItem(UiText label, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A small clickable item (\u0022Ln 12, Col 4\u0022, \u0022UTF-8\u0022). Returns true when clicked." }, { "name": "StatusButton", "kind": "extension", "id": "extension|StatusButton|0|0|bool|UiText label;Status status;StatusButtonOpts o = default||h5c9d9e2cd49f70a00398d2fe51ccf1933f78becdf2d7e5b610c5e2427ee30722", "signature": "bool StatusButton(UiText label, Status status, StatusButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "status", "type": "Status" }, { "name": "o", "type": "StatusButtonOpts", "default": "default" }], "summary": "cui_status_button_ex" }, { "name": "Switch", "kind": "extension", "id": "extension|Switch|0|0|bool|UiText label;ref bool value;CheckOpts o = default||he58bf080044a84430ae1c50aae77072ba3e8bc1dc7ad4f8576f39e74324cd486", "signature": "bool Switch(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "extension", "id": "extension|TabBar|0|0|bool|UiText id;ReadOnlySpan\u003CTabBarItem\u003E items;ref int selected;TabBarOpts o = default||h3b532a1edd39eaf1a6db4278f4c3c26674c9a67777ba72dd890ca8c67ecbb0d8", "signature": "bool TabBar(UiText id, ReadOnlySpan\u003CTabBarItem\u003E items, ref int selected, TabBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTabBarItem\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TabBarOpts", "default": "default" }], "summary": "cui_tab_bar_ex" }, { "name": "TableRow", "kind": "extension", "id": "extension|TableRow|0|0|bool|bool selected||h5862a1074065231ee67e616f36b6ef2708e5a53d06e9c647dfc4e50f9f54feb9", "signature": "bool TableRow(bool selected)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "selected", "type": "bool" }], "summary": "Begin a row. Returns true when the row is clicked." }, { "name": "Tabs", "kind": "extension", "id": "extension|Tabs|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;TabsOpts o = default||h44602f1d285b43ccb2a4a3f04fc10eeb9824d034d9c4786918ec03417b25d800", "signature": "bool Tabs(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, TabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "TabsOpts", "default": "default" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|0|0|bool|UiText id;ref string value;TagOpts o = default||h7d78f96fc27b022e7ce11dd6a4742470284f57dc2e17866e76fb8b61780bf9f0", "signature": "bool TagInput(UiText id, ref string value, TagOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "TagOpts", "default": "default" }], "summary": "Comma-separated tags in one field; enter or comma adds, backspace removes." }, { "name": "ThemeSwitcher", "kind": "extension", "id": "extension|ThemeSwitcher|0|0|bool|ref int mode;bool withSystem||h6ac2911103fa89f29df34fe5abd3737f62b03fad01ac2c5f7ce9f96f81466e7b", "signature": "bool ThemeSwitcher(ref int mode, bool withSystem)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "bool" }], "summary": "Theme switcher: light, dark and (optionally) system, as a compact icon segmented control. mode is 0 light, 1 dark, 2 system. Light and dark are applied for you; for system call cui_set_theme with the OS setting. Returns true when mode changed." }, { "name": "ThemeToggle", "kind": "extension", "id": "extension|ThemeToggle|0|0|bool|||hac003993a346e758ec03a7b5cae2fbd886929a7ae077d9f9459a78e6cb9e9028", "signature": "bool ThemeToggle()", "extensionOn": "CuiSharp.Ui", "summary": "Sun and moon icon button that toggles the theme with a morph." }, { "name": "TimeDial", "kind": "extension", "id": "extension|TimeDial|0|0|bool|UiText id;ref int hour;ref int minute;float size||hc81f9c9c6cda6a218a1a97579124c3a6415d5a3bec246c2545e9638a3cbefadc", "signature": "bool TimeDial(UiText id, ref int hour, ref int minute, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "Time dial: a clock face. Drag the hand to set hours, then minutes." }, { "name": "TimePicker", "kind": "extension", "id": "extension|TimePicker|0|0|bool|UiText id;ref int hour;ref int minute;TimeOpts o = default||h2f5e91438efc0191e949769048849a3fb8bb629993aef37fa50790655d5a16e2", "signature": "bool TimePicker(UiText id, ref int hour, ref int minute, TimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "o", "type": "TimeOpts", "default": "default" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "extension", "id": "extension|ToastActionClicked|0|0|bool|int handle||h80802ec80123dda69208be2582b05ccc3d887063aa242cdb0a7d5f946417cce1", "signature": "bool ToastActionClicked(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E labels;Span\u003Cbool\u003E values;ToggleGroupOpts o = default||hbf4630396185f73a4900042d74fe62f684385217a55457d20067677982015437", "signature": "bool ToggleGroup(UiText id, ReadOnlySpan\u003Cstring\u003E labels, Span\u003Cbool\u003E values, ToggleGroupOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "labels", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "values", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "ToggleGroupOpts", "default": "default" }], "summary": "A row of toggle buttons sharing one bool per label. Independent by default; Exclusive makes them behave like radio buttons. Returns true on the frame an entry flips." }, { "name": "ToolbarButton", "kind": "extension", "id": "extension|ToolbarButton|0|0|bool|UiText icon;ref bool toggle;ToolOpts o = default||h280488daf404cebc0318d20c1e09b3000ff82103111371b7fdf8c2735fe2c970", "signature": "bool ToolbarButton(UiText icon, ref bool toggle, ToolOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "toggle", "type": "ref bool" }, { "name": "o", "type": "ToolOpts", "default": "default" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeCell", "kind": "extension", "id": "extension|TreeCell|0|0|bool|UiText label;int depth;bool hasChildren;ref bool open;UiText icon||h7d87cfa9d747ede3646c93ffc4296bb6d158f59a36670c943b38b8891f9a08bd", "signature": "bool TreeCell(UiText label, int depth, bool hasChildren, ref bool open, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "bool" }, { "name": "open", "type": "ref bool" }, { "name": "icon", "type": "UiText" }], "summary": "Tree cell: indentation, a disclosure chevron and a label, for tree tables (use it in a table or grid cell). Returns true when *open toggled." }, { "name": "TreeClicked", "kind": "extension", "id": "extension|TreeClicked|0|0|bool|||he0d6c1a473304bfa16c30035268639d026f37ddeade6a53e36b6a43056ea0039", "signature": "bool TreeClicked()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "extension", "id": "extension|Typewriter|0|0|bool|UiText id;UiText text;TextFxOpts o = default||hd2793d1d9701d6e1c2de232ed4163f8a0a17de8606e1a0c00033798e26804d7b", "signature": "bool Typewriter(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Types the text out. When the text grows (streamed tokens) it carries on from where it was; other changes start over. Returns true once complete." }, { "name": "VoiceOrb", "kind": "extension", "id": "extension|VoiceOrb|0|0|bool|UiText id;VoiceState state;float level;VoiceOrbOpts o = default||h55678c858554bd6ffbc3fbad4b03aeb90fff9d582a2dad8b10090a9496cf7d41", "signature": "bool VoiceOrb(UiText id, VoiceState state, float level, VoiceOrbOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "o", "type": "VoiceOrbOpts", "default": "default" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "property", "id": "property|WantsKeyboard|0|0|bool||get;|h9fd1d2033ea34ec49759c84f9a199c15d92ad7e28a6a1a4cc3ebee535bec764b", "signature": "bool WantsKeyboard { get; }" }, { "name": "WantsMouse", "kind": "property", "id": "property|WantsMouse|0|0|bool||get;|h88ad7771300bfdd824d0527cc05ab2978f5a741b34494adb9660c29ae0fd53b7", "signature": "bool WantsMouse { get; }", "summary": "True when the pointer is over this window and the UI wants it." }, { "name": "Waveform", "kind": "extension", "id": "extension|Waveform|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E peaks;ref float progress;WaveformOpts o = default||h82b5eb85d1dd0e891471303dae6af8ef45f993a4522c265b5380640be5f95a34", "signature": "bool Waveform(UiText id, ReadOnlySpan\u003Cfloat\u003E peaks, ref float progress, WaveformOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "peaks", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "progress", "type": "ref float" }, { "name": "o", "type": "WaveformOpts", "default": "default" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "extension", "id": "extension|WheelPicker|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;WheelOpts o = default||h6e20c98f3670a089db93c4a37a910bd23a7f6b3a8ad5c2cd67e1294d58a2fae4", "signature": "bool WheelPicker(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, WheelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "WheelOpts", "default": "default" }], "summary": "cui_wheel_picker_ex" }, { "name": "Time", "kind": "property", "id": "property|Time|0|0|double||get;|h59d804a6c66b43aad6ffe38fb8d686d405da1f1e73a127a3af738e7ba55df397", "signature": "double Time { get; }", "summary": "Seconds since the app started. Monotonic; use it for animation phases." }, { "name": "Animate", "kind": "method", "id": "method|Animate|0|0|float|UiText id;float target||h6aa8f80b2f784f8d21be090f3514e71ea8c5c9e820fb1fc041073b0956552fa8", "signature": "float Animate(UiText id, float target)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }], "summary": "Moves a value toward target with a spring, keyed by id." }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|0|0|float|UiText id;float target;float duration;float bounce||h18961b791dced18013209a15d6f4c3ea989233c2d507d6986cf80ff8eea91b47", "signature": "float AnimateSpring(UiText id, float target, float duration, float bounce)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "Moves a value toward target with a spring of the given duration and bounce." }, { "name": "DeltaTime", "kind": "property", "id": "property|DeltaTime|0|0|float||get;|h9b38e45e1e2ffd64837bd659bc02203c5bcd38701ca6046589022c3424ef1a09", "signature": "float DeltaTime { get; }", "summary": "Seconds since the previous frame, clamped by the host." }, { "name": "DpiScale", "kind": "property", "id": "property|DpiScale|0|0|float||get;|hd6fea6745004ce2bacbb8eac54eebd74e77705ff2605b31ccb4a18c241ebb063", "signature": "float DpiScale { get; }", "summary": "Device pixels per logical point for the window this frame draws into." }, { "name": "ActivityRings", "kind": "extension", "id": "extension|ActivityRings|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E rings;RingsOpts o = default||he739303ba236c8b2947fe3ee08443b09f019e41b8acac0f7da681d197ae0307e", "signature": "int ActivityRings(UiText id, ReadOnlySpan\u003CVizItem\u003E rings, RingsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rings", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "RingsOpts", "default": "default" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "extension", "id": "extension|AgentPlan|0|0|int|UiText id;ReadOnlySpan\u003CPlanStep\u003E steps;AgentPlanOpts o = default||h6067d2501a7a26bcccda0db7d672b245a2fcff12d68ede6c491d265a45d1b4b9", "signature": "int AgentPlan(UiText id, ReadOnlySpan\u003CPlanStep\u003E steps, AgentPlanOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CPlanStep\u003E" }, { "name": "o", "type": "AgentPlanOpts", "default": "default" }], "summary": "cui_agent_plan_ex" }, { "name": "AvatarUpload", "kind": "extension", "id": "extension|AvatarUpload|0|0|int|UiText id;UiText name;ref ulong image;float size||h2032bcd7f55566afffa2cde5d86987aa5b1a36719844c8d755d13b19b16255bb", "signature": "int AvatarUpload(UiText id, UiText name, ref ulong image, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "Avatar upload: a round avatar that takes a dropped image, with a camera badge on hover. Returns 1 when *image changed, -1 when clicked (browse), 0 otherwise. A dropped image is loaded with cui_image_load." }, { "name": "BarList", "kind": "extension", "id": "extension|BarList|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;BarListOpts o = default||h0e2abad96db38540b47d6c74f2cc68369ed40c046f6bf6c2d2dea3c10d465680", "signature": "int BarList(UiText id, ReadOnlySpan\u003CVizItem\u003E items, BarListOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "BarListOpts", "default": "default" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "extension", "id": "extension|Breadcrumb|0|0|int|ReadOnlySpan\u003Cstring\u003E items||h7e5435f64395bbaf15f18d4923a996c88ca3bd79318405fd33733751c65e8682", "signature": "int Breadcrumb(ReadOnlySpan\u003Cstring\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "extension", "id": "extension|CalendarHeatmap|0|0|int|UiText id;Date start;ReadOnlySpan\u003Cfloat\u003E values;CalendarHeatmapOpts o = default||hdf61b9c82e018ac6c9a5f0797950a2a53c4826b47594dd073d18121a1691e796", "signature": "int CalendarHeatmap(UiText id, Date start, ReadOnlySpan\u003Cfloat\u003E values, CalendarHeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "Date" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "CalendarHeatmapOpts", "default": "default" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "extension", "id": "extension|Candlestick|0|0|int|UiText id;ReadOnlySpan\u003CCandle\u003E candles;CandlestickOpts o = default||hdab8fd71be859d6cc56de05a9e2feb81a2532c176230e766fa2ba67fa5260e3c", "signature": "int Candlestick(UiText id, ReadOnlySpan\u003CCandle\u003E candles, CandlestickOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "candles", "type": "ReadOnlySpan\u003CCandle\u003E" }, { "name": "o", "type": "CandlestickOpts", "default": "default" }], "summary": "Returns the candle under the crosshair (pointer or keys), or -1." }, { "name": "CardStack", "kind": "extension", "id": "extension|CardStack|0|0|int|UiText id;int count;DrawFn body;CardStackOpts o = default||h2dadbccb1e5391a98cfda3530cd5b460c17e79dd01b6927d2346f58287b56332", "signature": "int CardStack(UiText id, int count, DrawFn body, CardStackOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CardStackOpts", "default": "default" }], "summary": "cui_card_stack_begin The end call reports which card in the stack is active, or -1, so the body overload returns it." }, { "name": "Checklist", "kind": "extension", "id": "extension|Checklist|0|0|int|UiText id;ReadOnlySpan\u003CCheckStep\u003E steps;ChecklistOpts o = default||hb1cdf5bee54759618ba4c2e6386ab30794ff911948e833f0610afb911e63f554", "signature": "int Checklist(UiText id, ReadOnlySpan\u003CCheckStep\u003E steps, ChecklistOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CCheckStep\u003E" }, { "name": "o", "type": "ChecklistOpts", "default": "default" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "extension", "id": "extension|CommandPalette|0|0|int|ref bool open;ReadOnlySpan\u003CCommand\u003E commands||h001b59aa0ea6df8a0ea3d57d57bc1d6c25690db136f11ce1d794c93d9c7bbfc3", "signature": "int CommandPalette(ref bool open, ReadOnlySpan\u003CCommand\u003E commands)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "open", "type": "ref bool" }, { "name": "commands", "type": "ReadOnlySpan\u003CCommand\u003E" }], "summary": "Spotlight style command palette. Returns the index of the chosen command, or -1. Open it with a shortcut: if (cui_shortcut(ui, CUI_MOD_PRIMARY, CUI_KEY_K)) open = true;" }, { "name": "DiffRows", "kind": "extension", "id": "extension|DiffRows|0|0|int|UiText id;Span\u003CDiffRow\u003E rows;int first = default||h5c94a97ef7958912de5bdb07673a9402664eef62f0238701e95229d154b6ac95", "signature": "int DiffRows(UiText id, Span\u003CDiffRow\u003E rows, int first = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rows", "type": "Span\u003CDiffRow\u003E" }, { "name": "first", "type": "int", "default": "default" }], "summary": "Copies up to rows.Length of the diff view\u0027s rows into rows, starting at row first." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the window is tracking as dropped; a dropzone reports them first." }, { "name": "Dropzone", "kind": "extension", "id": "extension|Dropzone|0|0|int|UiText id;DropzoneOpts o = default||h1a4c314252379bc356942c2d624bf8dc2388e096a816cda96c08748d80f874cf", "signature": "int Dropzone(UiText id, DropzoneOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DropzoneOpts", "default": "default" }], "summary": "cui_dropzone_ex" }, { "name": "Funnel", "kind": "extension", "id": "extension|Funnel|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E stages;FunnelOpts o = default||he5202d3e37c12c123db9bc8dddaf33f25d6ee0d1790d21a12846d2233ba2f5e4", "signature": "int Funnel(UiText id, ReadOnlySpan\u003CVizItem\u003E stages, FunnelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "FunnelOpts", "default": "default" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "extension", "id": "extension|Gantt|0|0|int|UiText id;Span\u003CGanttTask\u003E tasks;Date origin;int days;GanttOpts o = default||h6405eb5f36078bd6c78b652a408e39c0fdb1c3a89355a3c7e0368f5d2306981a", "signature": "int Gantt(UiText id, Span\u003CGanttTask\u003E tasks, Date origin, int days, GanttOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tasks", "type": "Span\u003CGanttTask\u003E" }, { "name": "origin", "type": "Date" }, { "name": "days", "type": "int" }, { "name": "o", "type": "GanttOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Heatmap", "kind": "extension", "id": "extension|Heatmap|0|0|int|UiText id;ReadOnlySpan\u003Cfloat\u003E values;int rows;int cols;HeatmapOpts o = default||hb23a8befed5cb93e645e80d3a23d15bd4f06bdbf22a6f65815edb1bef4129225", "signature": "int Heatmap(UiText id, ReadOnlySpan\u003Cfloat\u003E values, int rows, int cols, HeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "o", "type": "HeatmapOpts", "default": "default" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "extension", "id": "extension|InlineEdit|0|0|int|UiText id;ref string buf;int cap = 256;InlineEditOpts o = default||hdc2fcc11f00fc875b370e784540495eec9451da64bf16b076e0bf19bfc7c475a", "signature": "int InlineEdit(UiText id, ref string buf, int cap = 256, InlineEditOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int", "default": "256" }, { "name": "o", "type": "InlineEditOpts", "default": "default" }], "summary": "cui_inline_edit_ex" }, { "name": "PasswordStrength", "kind": "extension", "id": "extension|PasswordStrength|0|0|int|UiText password||h485b27b320ae208ea07b64ec8e1f317ab018ad6465c8ddb02cd01a4424689adb", "signature": "int PasswordStrength(UiText password)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "password", "type": "UiText" }], "summary": "Password strength meter (0 weak .. 4 strong). Returns the score." }, { "name": "PromptSuggestions", "kind": "extension", "id": "extension|PromptSuggestions|0|0|int|UiText id;ReadOnlySpan\u003CPromptSuggestion\u003E items;PromptSuggestionsOpts o = default||ha7ba62105e302f4fa64dd30bf005d6217ab47f44b8de4dcb382d55bb8686de65", "signature": "int PromptSuggestions(UiText id, ReadOnlySpan\u003CPromptSuggestion\u003E items, PromptSuggestionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CPromptSuggestion\u003E" }, { "name": "o", "type": "PromptSuggestionsOpts", "default": "default" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "extension", "id": "extension|RadarChart|0|0|int|UiText id;ReadOnlySpan\u003CSeries\u003E series;ReadOnlySpan\u003Cstring\u003E axes;RadarOpts o = default||hc3ad2df41c9c6b26dc90f3b916ae531651d598ceef8ab541dd035331b9ea768a", "signature": "int RadarChart(UiText id, ReadOnlySpan\u003CSeries\u003E series, ReadOnlySpan\u003Cstring\u003E axes, RadarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CSeries\u003E" }, { "name": "axes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "RadarOpts", "default": "default" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "extension", "id": "extension|Reactions|0|0|int|UiText id;Span\u003CReaction\u003E items||h7528193af8d452456269a4867874808d1a14d9b9b10f82f0f851537b4f5fcc31", "signature": "int Reactions(UiText id, Span\u003CReaction\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "Span\u003CReaction\u003E" }], "summary": "cui_reactions" }, { "name": "Sankey", "kind": "extension", "id": "extension|Sankey|0|0|int|UiText id;ReadOnlySpan\u003Cstring\u003E nodes;ReadOnlySpan\u003CSankeyLink\u003E links;SankeyOpts o = default||h54e60f881596c8425c36f81063bcf3bca0ae525a5cb9acb9d9291c93343d590b", "signature": "int Sankey(UiText id, ReadOnlySpan\u003Cstring\u003E nodes, ReadOnlySpan\u003CSankeyLink\u003E links, SankeyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "links", "type": "ReadOnlySpan\u003CSankeyLink\u003E" }, { "name": "o", "type": "SankeyOpts", "default": "default" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "extension", "id": "extension|ScatterChart|0|0|int|UiText id;ReadOnlySpan\u003CScatterSeries\u003E series;ScatterOpts o = default||hff3593e05140bd9fcdc8f3c4f996ca064ecb18c59024984a51431c04b86145eb", "signature": "int ScatterChart(UiText id, ReadOnlySpan\u003CScatterSeries\u003E series, ScatterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CScatterSeries\u003E" }, { "name": "o", "type": "ScatterOpts", "default": "default" }], "summary": "cui_scatter_chart_ex" }, { "name": "SourceList", "kind": "extension", "id": "extension|SourceList|0|0|int|UiText id;ReadOnlySpan\u003CSource\u003E sources||h6f59cfee8fa72dc7eca177af354e0a6f666d1ec1975ff987f31f00841dd57a41", "signature": "int SourceList(UiText id, ReadOnlySpan\u003CSource\u003E sources)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "sources", "type": "ReadOnlySpan\u003CSource\u003E" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "extension", "id": "extension|SpeedDial|0|0|int|UiText id;ReadOnlySpan\u003CSpeedAction\u003E actions;SpeedDialOpts o = default||h8f3dcc4f3e218426dd87000bfe603cd7a2a64cc3cdaa021cbc2dea064de87347", "signature": "int SpeedDial(UiText id, ReadOnlySpan\u003CSpeedAction\u003E actions, SpeedDialOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "actions", "type": "ReadOnlySpan\u003CSpeedAction\u003E" }, { "name": "o", "type": "SpeedDialOpts", "default": "default" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "extension", "id": "extension|SplitBar|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;SplitBarOpts o = default||h16bc37b28b54a3959b1ffffa5d212e2ce5767fa384b82e9693cfc0cf3ecba083", "signature": "int SplitBar(UiText id, ReadOnlySpan\u003CVizItem\u003E items, SplitBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "SplitBarOpts", "default": "default" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "extension", "id": "extension|SplitButton|0|0|int|UiText label;ReadOnlySpan\u003Cstring\u003E items;SplitButtonOpts o = default||hab5170280449718e8bb4e18299a9939e8c4585d7f457498a1884dce52f1a5b83", "signature": "int SplitButton(UiText label, ReadOnlySpan\u003Cstring\u003E items, SplitButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "SplitButtonOpts", "default": "default" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItem", "kind": "extension", "id": "extension|SwipeItem|0|0|int|UiText id;ReadOnlySpan\u003CSwipeAction\u003E left;ReadOnlySpan\u003CSwipeAction\u003E right;DrawFn body||hde404a799a1b468b7df4ac9ce65a247c02d83d6788917c5eb60378cb5ebf709d", "signature": "int SwipeItem(UiText id, ReadOnlySpan\u003CSwipeAction\u003E left, ReadOnlySpan\u003CSwipeAction\u003E right, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "left", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "right", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_swipe_item_begin The end call reports which swipe action was taken, or -1, so the body overload returns it." }, { "name": "Toast", "kind": "extension", "id": "extension|Toast|0|0|int|UiText title;ToastOpts o = default||hf3201662ddfe1d84b58e5851658ccd1e36ba6d53acdb101b80df283a2f0ee264", "signature": "int Toast(UiText title, ToastOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ToastOpts", "default": "default" }], "summary": "Queue a toast. Returns a handle; cui_toast_action_clicked(handle) tells whether its action button was pressed." }, { "name": "Toc", "kind": "extension", "id": "extension|Toc|0|0|int|UiText scrollId;ReadOnlySpan\u003CTocItem\u003E items||h226d5cf4f0b7b58f3c7df69b1762d483d977d46968c43d4468a7db886e3771f0", "signature": "int Toc(UiText scrollId, ReadOnlySpan\u003CTocItem\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTocItem\u003E" }], "summary": "cui_toc" }, { "name": "TreeTableDepth", "kind": "extension", "id": "extension|TreeTableDepth|0|0|int|||h6f4316e2e33c3ebb9b14932b5fc588d50a9b4b5b52a70f672523341f85c34b6b", "signature": "int TreeTableDepth()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "extension", "id": "extension|TreeTableRow|0|0|int|||h6f0d82997cbd7dfd529bd1d04c7fd279173e864794b9acde1a6f8cf0deb80e45", "signature": "int TreeTableRow()", "extensionOn": "CuiSharp.Ui", "summary": "The next row in view: returns its node, or -1 when done. Then build its cells: cui_tree_table_name first, then cui_data_grid_cell(_text)." }, { "name": "Treemap", "kind": "extension", "id": "extension|Treemap|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;TreemapOpts o = default||hea14dd60cbeb36d78c486e9549f6917d7d431d80c23f54fe86c191e4e647a6e4", "signature": "int Treemap(UiText id, ReadOnlySpan\u003CVizItem\u003E items, TreemapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "TreemapOpts", "default": "default" }], "summary": "cui_treemap_ex" }, { "name": "Waffle", "kind": "extension", "id": "extension|Waffle|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;WaffleOpts o = default||hbb9c8a5b82ec5547e3c36f001de128742bbee117c0a3da39be26ed99600e3617", "signature": "int Waffle(UiText id, ReadOnlySpan\u003CVizItem\u003E items, WaffleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "WaffleOpts", "default": "default" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "extension", "id": "extension|WeekCalendar|0|0|int|UiText id;Date weekStart;Span\u003CCalendarEvent\u003E events;WeekOpts o = default||h6ebe88be9f390e98d2c4c1e3f796e62f09b23309fe4f21093ce3e1e506653fc9", "signature": "int WeekCalendar(UiText id, Date weekStart, Span\u003CCalendarEvent\u003E events, WeekOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "weekStart", "type": "Date" }, { "name": "events", "type": "Span\u003CCalendarEvent\u003E" }, { "name": "o", "type": "WeekOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|int?|UiText id;ReadOnlySpan\u003Cstring\u003E items;int value;SegmentedOpts o = default||hfb54a79c3ab77ad5f8295229f391ceafab348451a898c9a700f5adccce24a7a9", "signature": "int? Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, int value, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "value", "type": "int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "Returns the chosen index on a change, otherwise null." }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|string|Accent accent||h0e37f10433228fc19b1442b10a947b92a35e4c1252d1688e2237e77f9c961f50", "signature": "static string AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "The name of an accent as the UI shows it: \u0022Violet\u0022." }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|string|Key key||ha31820aa00db9a4c2b6c84c51b79eb08b079cecb712605806d2763204d3f8fc8", "signature": "static string KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "The name of a key as the UI shows it: A, Space, F5." }, { "name": "CronDescribe", "kind": "extension", "id": "extension|CronDescribe|0|0|string?|UiText cron||hd4c9ada55bcf91c1c683541837ecf35a841f847a3eee89aabbb26c529db1cd47", "signature": "string? CronDescribe(UiText cron)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cron", "type": "UiText" }], "summary": "\u0022Every weekday at 09:30\u0022, in frame memory; NULL when invalid." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "EmojiPicker", "kind": "extension", "id": "extension|EmojiPicker|0|0|string?|UiText id;ref string recent;ref int tone;EmojiPickerOpts o = default||h15890f303b9bfcb523f735ab2f9e6844938b14c17122927fe58f4714c2d1577c", "signature": "string? EmojiPicker(UiText id, ref string recent, ref int tone, EmojiPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "recent", "type": "ref string" }, { "name": "tone", "type": "ref int" }, { "name": "o", "type": "EmojiPickerOpts", "default": "default" }], "summary": "cui_emoji_picker_ex" }, { "name": "ShortcutLabel", "kind": "extension", "id": "extension|ShortcutLabel|0|0|string?|KeyCombo combo||hbc2b6ede54efc1cdfc932533bfaa02df6e2091b08013ed268adaeb5f70fe77fd", "signature": "string? ShortcutLabel(KeyCombo combo)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "combo", "type": "KeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "LastId", "kind": "property", "id": "property|LastId|0|0|uint||get;|hb45a60a2627c7935e56a964ff3d4b23b89b21d8a180962ea221f54c95e1e68d2", "signature": "uint LastId { get; }", "summary": "The id of the widget drawn last, which is what Target and the other \u0022point at this\u0022 APIs take. Read it immediately after the control." }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|0|0|uint|UiText id||hf729d2c0f406a6b883b2cbb0e869941e897aaaef891e76b22daa8e479857208d", "signature": "uint MakeId(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "A stable cui_id for a string, for Animate and State callers." }, { "name": "CreateImage", "kind": "method", "id": "method|CreateImage|0|0|ulong|int width;int height;ReadOnlySpan\u003Cbyte\u003E rgba||h5ee4689276531d64da132f6a1cc9e229a83100259c335ca4ab5a007c20a68ce7", "signature": "ulong CreateImage(int width, int height, ReadOnlySpan\u003Cbyte\u003E rgba)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Uploads RGBA8 pixels as a texture. The pixels are copied, so the span may live on the stack. Release the handle with DestroyImage when the page that shows it is done with it \u2014 State\u0060\u00601 with an onFree callback is the usual owner." }, { "name": "DockSave", "kind": "extension", "id": "extension|DockSave|0|0|ulong|UiText id;ref string buf;int cap||h10c71156edbbe3c5e529016814c796584f469d6d0b0b7466e4bde6ba2b0893b4", "signature": "ulong DockSave(UiText id, ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Saved layout: one line, e.g. dock1 h0.22([*Scene tree,Assets],v0.7([*Viewport],[*Log,-Console])) h splits side by side and v stacks, the number is the first child\u0027s share, [..] is a leaf\u0027s tabs in order, * the selected tab, - a closed panel; a backslash escapes , [ ] ( ) and itself in names. cui_dock_save returns the full length (as snprintf does) and writes what fits, or 0 when there is no layout. cui_dock_load replaces the layout (and sets each panel\u0027s *open from it on its next frame); names it does not know yet are kept for when they appear. Malformed text returns false and changes nothing." }, { "name": "FrameCount", "kind": "property", "id": "property|FrameCount|0|0|ulong||get;|h7254dceb0c426d20c644d45bf8a5ca3e9a444a54dee4128f0adcf9db4b00c8fc", "signature": "ulong FrameCount { get; }", "summary": "Frames presented so far, counted by CUI." }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|void|UiText title;ref bool open;DrawFn body||h5a6e18ec6c43cdc43af8a25085ec728fca441d6f03d65c135ac01415603bdc5b", "signature": "void Accordion(UiText title, ref bool open, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "AddFontFallback", "kind": "extension", "id": "extension|AddFontFallback|0|0|void|Font font;Font fallback||h046e79521dc69de86a794461399d269a9ea51fd36fd162afddde019ca45934e1", "signature": "void AddFontFallback(Font font, Font fallback)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "Adds a fallback CUI reaches for when font has no glyph. The chain holds at most four fallbacks; when it is exhausted CUI scans every other loaded face before giving up. A glyph no face has draws nothing at all \u2014 not even a .notdef box in every font \u2014 so an untranslated screen comes up blank with no warning. UseSystemFontFallback is the check for that, and the bundled faces are Latin. The glyph atlas is what a large script actually costs: one texture of CUI_ATLAS_MAX (4096) pixels per side, with the frame\u0027s glyph cache reset between frames, so a font that makes every frame load new glyphs is the expensive case. Register the faces a language needs at startup, not per frame." }, { "name": "AgentStatus", "kind": "extension", "id": "extension|AgentStatus|0|0|void|UiText text;AgentStatusOpts o = default||h61ac25149bb714e9244c62474d67f93158a7f9bd1583135da08e6b32a5ac5120", "signature": "void AgentStatus(UiText text, AgentStatusOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "AgentStatusOpts", "default": "default" }], "summary": "cui_agent_status_ex" }, { "name": "Avatar", "kind": "extension", "id": "extension|Avatar|0|0|void|UiText name;AvatarOpts o = default||h86ad06b6f35491ed7cd4f337c2a2688db37d73bfec4c164c7b90267365ce8af2", "signature": "void Avatar(UiText name, AvatarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "AvatarOpts", "default": "default" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "extension", "id": "extension|AvatarGroup|0|0|void|ReadOnlySpan\u003Cstring\u003E names;int maxVisible = 4;float size = 32f||h2aebe32a1e3101b42a18771fc77f1b10cb011e17bea49c9f7cbf01e0be5ca252", "signature": "void AvatarGroup(ReadOnlySpan\u003Cstring\u003E names, int maxVisible = 4, float size = 32f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "names", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "maxVisible", "type": "int", "default": "4" }, { "name": "size", "type": "float", "default": "32f" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "extension", "id": "extension|Badge|0|0|void|UiText text;BadgeOpts o = default||h2e146cbd498ce9ebfdcbb978fe8414bd9ff4389e1361c02fa453b24fcfc15d1c", "signature": "void Badge(UiText text, BadgeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "BadgeOpts", "default": "default" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||hdd24ad8679c5e482e048ed73ce69225b69c19ad5704a83f9a427093e4551242a", "signature": "void BarChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A bar chart of one series. See LineChart." }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||h8d42b4d0a483459731da6ec00c3001f0d1f69bd28a07b4618095e800910f67c7", "signature": "void BarChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|void|UiText id;int count;ref int index;DrawFn body;CarouselOpts o = default||haf6583b1edd10132a276ed92f3c7cc7b139b36644ab8586eadce1ce1ae7cf431", "signature": "void Carousel(UiText id, int count, ref int index, DrawFn body, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ChatDivider", "kind": "extension", "id": "extension|ChatDivider|0|0|void|UiText label||hdb17d96dbafb815bdf9d77a06116d1a2d004dbf0c4190716f604d7f7503032a5", "signature": "void ChatDivider(UiText label)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ChatOpts o = default||h0067e7f3c9a991c64026e5433bcd84d614a634bb99011d70cf7548c49b4d0e46", "signature": "void ChatMessage(UiText text, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "Same as the overload with ref markdownResult, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ref MarkdownResult markdownResult;ChatOpts o = default||he419f66e4261e2e5f8341890ace8476938bbabe2ce7747bb1cf378821e824da4", "signature": "void ChatMessage(UiText text, ref MarkdownResult markdownResult, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "markdownResult", "type": "ref MarkdownResult" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "extension", "id": "extension|Code|0|0|void|UiText text||heb5c95cf0725be5b6a3d5d064b904bf47fbe9b2889e74bd910d61b666764b439", "signature": "void Code(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "extension", "id": "extension|CodeBlock|0|0|void|UiText id;UiText code;CodeOpts o = default||h649344835854747b9cbde6157eb263d70a9df1f246e3854f21806fef682fedac", "signature": "void CodeBlock(UiText id, UiText code, CodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "code", "type": "UiText" }, { "name": "o", "type": "CodeOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "CodeEditorFind", "kind": "extension", "id": "extension|CodeEditorFind|0|0|void|UiText id;UiText query||ha5ad5e0daacc15247f7497756195d2f521b1676f4f4275c1360e7dd6a099a27e", "signature": "void CodeEditorFind(UiText id, UiText query)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "query", "type": "UiText" }], "summary": "Opens the find bar with query and selects the next match (NULL closes)." }, { "name": "CodeEditorGoto", "kind": "extension", "id": "extension|CodeEditorGoto|0|0|void|UiText id;int line;int column||he046da323e1fb441003f0aff4a8b1fb21892920cc0d306e08811c4d4b477dfae", "signature": "void CodeEditorGoto(UiText id, int line, int column)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "On the editor\u0027s next frame: put the caret at a line and column (1 based), focus the editor and scroll there. Call from the same id scope." }, { "name": "CodeEditorSelect", "kind": "extension", "id": "extension|CodeEditorSelect|0|0|void|UiText id;int anchor;int cursor||hbae83fe5ce54e61f495c10224f17c5f97155815624a80c230f94b710bbd25bbc", "signature": "void CodeEditorSelect(UiText id, int anchor, int cursor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "On the next frame: select bytes anchor..cursor, focus and scroll there." }, { "name": "Component", "kind": "extension", "id": "extension|Component|0|0|void|Component component||h848740a50a9eb8dc56641315816144114376ac9c315542b20691de3cbc9300d4", "signature": "void Component(Component component)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "component", "type": "Component" }], "summary": "Draws component, with its own error boundary." }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|void|UiText id;DrawFn body||h639ca26a4859a28b5d0c68a17b414a22b59f92e32460ae828991807709b85741", "signature": "void ContextMenu(UiText id, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ContextMeter", "kind": "extension", "id": "extension|ContextMeter|0|0|void|UiText id;float used;float limit;ContextOpts o = default||h19d9530359d94af2f36c2f8a876d49576ae0e0c4c67e5270f45fdf36934d1c78", "signature": "void ContextMeter(UiText id, float used, float limit, ContextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "o", "type": "ContextOpts", "default": "default" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "extension", "id": "extension|Countdown|0|0|void|UiText id;double secondsLeft;CountdownOpts o = default||h821d564a1492fd931adfbbc43d4c182d207343abf289fdf0702df537f77d848a", "signature": "void Countdown(UiText id, double secondsLeft, CountdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "secondsLeft", "type": "double" }, { "name": "o", "type": "CountdownOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Counter", "kind": "extension", "id": "extension|Counter|0|0|void|UiText id;double value;CounterOpts o = default||h0b05971fdda28297316e6f4447ca5d501aa7a11fe9da2f3bdc3756e5b7c5ffd3", "signature": "void Counter(UiText id, double value, CounterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "double" }, { "name": "o", "type": "CounterOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|void|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;DrawFn body;GridOpts o = default||h9c456dfa1016ff4f42bd0014595270a05519919f42743036e5fc9f8cb8147c63", "signature": "void DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, DrawFn body, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Draws the body only when open; closes and publishes state even on exceptions." }, { "name": "DataGridCell", "kind": "extension", "id": "extension|DataGridCell|0|0|void|||h17266c47617cb3e20e5aafb4e0740fb451853300d3ea2f4cf357c27f4e0c97e5", "signature": "void DataGridCell()", "extensionOn": "CuiSharp.Ui", "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "extension", "id": "extension|DataGridCellText|0|0|void|UiText text||hbc15a57820d975503239bf1e6c43046de51dd25c53400b94dc05e4c5ec821c22", "signature": "void DataGridCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_data_grid_cell_text" }, { "name": "DestroyImage", "kind": "method", "id": "method|DestroyImage|0|0|void|ulong texture||h233513e5e0f04cab6a29321054080d17776d33b361cec53060f335038ac6c4f4", "signature": "void DestroyImage(ulong texture)", "parameters": [{ "name": "texture", "type": "ulong" }], "summary": "Frees a texture obtained from CreateImage, LoadImage or a widget that loaded one for you (the avatar upload). Passing 0 does nothing, so a field can be cleared and released in one step." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|void|UiText title;ref bool open;DrawFn body;DialogOpts o = default||hb9a2198e7b3396b3f8e81f53972b52816f4e10d0c965758cb0b8e59b20c0dad6", "signature": "void Dialog(UiText title, ref bool open, DrawFn body, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|void|UiText title;ref bool open;DrawFn body;DockPanelOpts o = default||haec3aec1f30c0641ff9d8d21ef9827c8984e582f195575f5bdafa8e30c26bf47", "signature": "void DockPanel(UiText title, ref bool open, DrawFn body, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockSeparator", "kind": "extension", "id": "extension|DockSeparator|0|0|void|||h4f7b4ffb27ff0752d3414c6e36155f014d64756d9c99299d0061f4d3b662e948", "signature": "void DockSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_dock_separator" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|0|0|void|UiText id;float[] values;string[]? labels = null;ChartOpts o = default||h105b6ba9a48212810ca8eaa543dfd59b8bcbb7a078d6d00c43caa8337cf3e984", "signature": "void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "float[]" }, { "name": "labels", "type": "string[]?", "default": "null" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|0|0|void|float cx;float cy;float radius;float fromRadians;float toRadians;float thickness;Color color||h75c08329ccf02db7c649c3de4062b857fcb9fb9b5607cc0cdc3ffa02cdd3a32a", "signature": "void DrawArc(float cx, float cy, float radius, float fromRadians, float toRadians, float thickness, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "fromRadians", "type": "float" }, { "name": "toRadians", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "An arc from fromRadians to toRadians." }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|0|0|void|float cx;float cy;float radius;Color color||hb1d4daba0313192a47661dfdcba2bbea774eacd066b6e992e4b4698dddcde09a", "signature": "void DrawCircle(float cx, float cy, float radius, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A filled circle." }, { "name": "DrawEmoji", "kind": "extension", "id": "extension|DrawEmoji|0|0|void|UiText utf8;RectF r||ha6979720ffa9f6b639eedcdc2f34912ae99c3e8f6db6d29d49b7a755626e5e61", "signature": "void DrawEmoji(UiText utf8, RectF r)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "r", "type": "RectF" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|0|0|void|UiText icon;RectF r;Color color;float size = 16f||hd54b671c520dcce41f616162ba2038b0604408edb2178e4e538b9fd737631621", "signature": "void DrawIcon(UiText icon, RectF r, Color color, float size = 16f)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "16f" }], "summary": "Draws an icon glyph into a rectangle." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;Color tint;float radius = default||h02908132cac945b65c579f6460fda70375b546d9df86cb8e4446b3d6369a8ad2", "signature": "void DrawImage(ulong texture, RectF destination, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws the whole texture into destination." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;RectF uv;Color tint;float radius = default||h19922f36165664b04b3f13745794f29cd576c87d690e38abfacd839c9eebe6ea", "signature": "void DrawImage(ulong texture, RectF destination, RectF uv, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "uv", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws a texture into destination, sampling uv in 0..1 texture coordinates." }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|0|0|void|float x0;float y0;float x1;float y1;float thickness;Color color||h7c718f3cf261fcdd9890ecc99c37b4c7ef88951855160bbd3b4b84bbb0906183", "signature": "void DrawLine(float x0, float y0, float x1, float y1, float thickness, Color color)", "parameters": [{ "name": "x0", "type": "float" }, { "name": "y0", "type": "float" }, { "name": "x1", "type": "float" }, { "name": "y1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A line between two points." }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;Color color||h0a35ee50b137930776943658c6a4b0a802340e6fc1443224120f511919b82309", "signature": "void DrawPolygon(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, Color color)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "color", "type": "Color" }], "summary": "A convex polygon through the given x/y pairs." }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;float thickness;Color color;bool closed = default||h4c7f07e3c9fc697e544cc98214f394946bae499ac03450d9e5812ced69ce04e9", "signature": "void DrawPolyline(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, float thickness, Color color, bool closed = default)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "closed", "type": "bool", "default": "default" }], "summary": "A polyline through the given x/y pairs." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;Color border;float borderWidth;float radius = default||h4ba9a89c0df1a36edef3bc858b12de8bb1c2d9020a801bc38d101b16e9839611", "signature": "void DrawRect(RectF r, Color fill, Color border, float borderWidth, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "border", "type": "Color" }, { "name": "borderWidth", "type": "float" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle and strokes its border." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;float radius = default||hbede7dc4a83173600f87c3151cfb881b786025c1a85bfc6cfd41ac9c76b997ec", "signature": "void DrawRect(RectF r, Color fill, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle." }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|0|0|void|RectF r;Color top;Color bottom;float radius = default||hdfb2b1697ea2ab6d38c629c2592cb4496e061c2c2d2d73080e90e315c179fa59", "signature": "void DrawRectGradient(RectF r, Color top, Color bottom, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "top", "type": "Color" }, { "name": "bottom", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle with a vertical gradient." }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|0|0|void|RectF r;Color color;float blur = 12f;float spread = default;float dx = default;float dy = 2f;float radius = default||hd608a1aa394a6724e278bdd79827b6dd27fa0b58389aad230a6976a37e6e1bc9", "signature": "void DrawShadow(RectF r, Color color, float blur = 12f, float spread = default, float dx = default, float dy = 2f, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "blur", "type": "float", "default": "12f" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "dx", "type": "float", "default": "default" }, { "name": "dy", "type": "float", "default": "2f" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "A soft drop shadow behind a rounded rectangle." }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|0|0|void|UiText text;float x;float y;Color color;float size = 12f;Font font = Font.Body||ha379555b96749e8089ccd4a67f9f06f0c97c8e3bf6628a829212e087cdf44073", "signature": "void DrawText(UiText text, float x, float y, Color color, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Draws text outside layout, from a string, UTF-8 bytes, or interpolation." }, { "name": "Emoji", "kind": "extension", "id": "extension|Emoji|0|0|void|UiText utf8;float size||hcce49478392e105a5082cf12fe2c18e8a68954f1395b48ec19c91052abdbfa90", "signature": "void Emoji(UiText utf8, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|void|UiText title;ref bool open;DrawFn body;ExpandableCardOpts o = default||h45a44cd40dda73a400ba664b3783303201ba3f221c6a0c0021b4519c21652a83", "signature": "void ExpandableCard(UiText title, ref bool open, DrawFn body, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Gap", "kind": "extension", "id": "extension|Gap|0|0|void|float size||h89c0f099b911f74a22d756328dc6f8c634ce4e2561cfb7403549af06bfe120d2", "signature": "void Gap(float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "extension", "id": "extension|Gauge|0|0|void|UiText label;float value;float size = 130f||h0d866db02a3773b1f94110de3177536a50289e2eb2f4f1328d5ea96164ce0e3d", "signature": "void Gauge(UiText label, float value, float size = 130f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "130f" }], "summary": "cui_gauge" }, { "name": "GradientText", "kind": "extension", "id": "extension|GradientText|0|0|void|UiText text;GradientTextOpts o = default||h3f77173db929d5d0326fb0d6aacd31968c768ec86de8e25973b46685c05898a0", "signature": "void GradientText(UiText text, GradientTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "GradientTextOpts", "default": "default" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "extension", "id": "extension|Heading|0|0|void|UiText text;int level = 2||h557aed71184ccf0f99a503a8e9e31f47bd8f19daa88deaf28acbf6bd2f58da8f", "signature": "void Heading(UiText text, int level = 2)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "level", "type": "int", "default": "2" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "extension", "id": "extension|HexViewGoto|0|0|void|UiText id;ulong offset||he99988413132b927d206b59bb10ff266913c4aed14642da49708324af5d3a4ea", "signature": "void HexViewGoto(UiText id, ulong offset)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "offset", "type": "ulong" }], "summary": "Go to offset: on the view\u0027s next frame its cursor moves to offset, that byte becomes the selection and it scrolls into view (to the middle when it was out of sight). Wire a \u0022Go to\u0022 field to it; it is safe to call every frame." }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|void|UiText id;DrawFn body;HoverCardOpts o = default||h1feb5df25fc90d51f65ce5d548e1c92a15c20d4dbcfb120ec57197031f6bf861", "signature": "void HoverCard(UiText id, DrawFn body, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Icon", "kind": "method", "id": "method|Icon|0|0|void|UiText icon;float size = 16f;Color color = default||ha3c2c3c378676921960172e72c0cd75e176f823d910f148819cb62c5c07fcdb7", "signature": "void Icon(UiText icon, float size = 16f, Color color = default)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "size", "type": "float", "default": "16f" }, { "name": "color", "type": "Color", "default": "default" }] }, { "name": "Image", "kind": "extension", "id": "extension|Image|0|0|void|ulong tex;ImageOpts o = default||h4aba4bdd877e6dfb8e45ba090aba9ec93a98e0c6441d125c9038d1be437dc417", "signature": "void Image(ulong tex, ImageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "tex", "type": "ulong" }, { "name": "o", "type": "ImageOpts", "default": "default" }], "summary": "cui_image_ex" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|void|UiText id;DrawFn body;InspectorOpts o = default||h841cdf7d1c9125bb04f373e4d2f93c10eccdb9bcbb43da0de7dccc3769b41a32", "signature": "void Inspector(UiText id, DrawFn body, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Kbd", "kind": "extension", "id": "extension|Kbd|0|0|void|UiText keys||h417076fb4869022dd26ff1c344a189d091fce7e448e96c96224d62f1a451f6d1", "signature": "void Kbd(UiText keys)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "keys", "type": "UiText" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Label", "kind": "extension", "id": "extension|Label|0|0|void|UiText text||h72e24445b52f829a1571cbd68c5c6fac6835700a497232df3ad518950a463221", "signature": "void Label(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||h3cdc2012853a1aaf00f86229fc128bb443d3b47540340bb22a37e12c48168603", "signature": "void LineChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A line chart of one series. This is the overload most charts want: the samples are passed directly, and an empty span draws nothing at all." }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||hc086d5dcd804a5f509ce75cc8bee9f3f8667a55ceb50af4ffaabadafd4609ad0", "signature": "void LineChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Loader", "kind": "extension", "id": "extension|Loader|0|0|void|LoaderOpts o = default||h5945e358ac0fbf3d0cb4c3df6db1ab5234d41a31263116b2fb63eee24b3e9451", "signature": "void Loader(LoaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "LoaderOpts", "default": "default" }], "summary": "cui_loader_ex" }, { "name": "LogView", "kind": "extension", "id": "extension|LogView|0|0|void|UiText id;LogBuffer log;LogViewOpts o = default||h629acfd43966ab117356ba793bd70ad6b9dfe93587dd289ab839a823556ecc7b", "signature": "void LogView(UiText id, LogBuffer log, LogViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "log", "type": "LogBuffer" }, { "name": "o", "type": "LogViewOpts", "default": "default" }], "summary": "Draws log with its toolbar: level filters, search with highlight, Follow, Copy and Clear. Scrolling up turns Follow off; reaching the bottom turns it back on." }, { "name": "MarkReady", "kind": "method", "id": "method|MarkReady|0|0|void|||h8dc4126f75765e5089f4b5e2bbbb22f0fc14d612aafd61d5d0998543d5b212d0", "signature": "void MarkReady()", "summary": "Declares that this frame shows complete, current app data. This is what dotnet cui --wait ready waits for: readiness is a property of the frame that marks it, so the next frame starts unready and a screen that goes back to loading is never seen as ready on the strength of an older mark." }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|void|UiText label;DrawFn body;MenuOpts o = default||h46a55ef5a629d54cea211e8cff97db0e260e3c390254e4a74263ef25c2b8fe9d", "signature": "void Menu(UiText label, DrawFn body, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|void|UiText label;DrawFn body;MenuBarMenuOpts o = default||h1b1bac394be04ea33333eee937841b7391a0fc642ea6951788ddb9eb4b199110", "signature": "void MenuBarMenu(UiText label, DrawFn body, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuLabel", "kind": "extension", "id": "extension|MenuLabel|0|0|void|UiText text||h55d6bbe5cef52bef1137dee2490a736200d78319bc81b81cdd5d2b7fbe16d2b6", "signature": "void MenuLabel(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "extension", "id": "extension|MenuSeparator|0|0|void|||h7babb70cb1540862bd8b5e000e173763dc48b627688082cf19bcc2e23c25ba73", "signature": "void MenuSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "extension", "id": "extension|Meter|0|0|void|UiText label;float used;float total;UiText unit = default||h1d8b4e728d051b711957aa7fbc9bcf832cd505900fdce01a27a79bdc8e9d89fa", "signature": "void Meter(UiText label, float used, float total, UiText unit = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "UiText", "default": "default" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "extension", "id": "extension|Metric|0|0|void|UiText label;UiText value;MetricOpts o = default||h9bab4a4dc12d3dace12e7106ac89323fdbfdf7c56bba9a0e2f0c40e9c95fbef6", "signature": "void Metric(UiText label, UiText value, MetricOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "UiText" }, { "name": "o", "type": "MetricOpts", "default": "default" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "extension", "id": "extension|Muted|0|0|void|UiText text||haf3dda321d9292f4d904d1870d8bb5dea3c49cb695524acb75572822bff2f9b8", "signature": "void Muted(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "extension", "id": "extension|NavSection|0|0|void|UiText title||hf901052c3e5ba17c7b523058746a19e11e181239069f2b8fbb43adfafdbdcafc", "signature": "void NavSection(UiText title)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }], "summary": "cui_nav_section" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|void|int nodeId;ref float x;ref float y;UiText title;DrawFn body;NodeOpts o = default||he2a131c3e341325536d7aaaafc4f83046a7d7e9c45eead6545f141826f6d7e82", "signature": "void Node(int nodeId, ref float x, ref float y, UiText title, DrawFn body, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|void|UiText id;ref NodeView view;DrawFn body;NodeEditorOpts o = default||h5854f9b818a6cafa92571b34f94f5f0c435142d546b6f628a1174b1effe7ac67", "signature": "void NodeEditor(UiText id, ref NodeView view, DrawFn body, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NumberRoll", "kind": "extension", "id": "extension|NumberRoll|0|0|void|UiText id;UiText text;TextFxOpts o = default||h67c63e017e57f215b45262ce043c429d9ff6e486e3c507e0c84f3d5daa53a5bf", "signature": "void NumberRoll(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "A figure whose changed digits roll into place: up when the value rises, down when it falls, a beat apart from the left; unchanged characters stay still. Pass the formatted text (\u0022$64,210\u0022, \u00221.2k\u0022); digits are tabular." }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|void|UiText id;ref int segment;DrawFn body||h875759cac9f5832bcb6782caaa672db98fbc277a19f31017d3155a38c398dce5", "signature": "void PathBarMenu(UiText id, ref int segment, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|0|0|void|||hd223700ffd7f730814c69ec5bd11dae3b4dd4a7a738e754b775a351e0c980575", "signature": "void PopClip()", "summary": "Ends the clip opened by PushClip." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|void|UiText id;DrawFn body;PopoverOpts o = default||h597b85fb0e87089ca73543226f68a70b713ea0f9c949974f2c0425c7028438f3", "signature": "void Popover(UiText id, DrawFn body, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopoverClose", "kind": "extension", "id": "extension|PopoverClose|0|0|void|UiText id||hca913fedac00c0c27ef6b37fb3f90cb88cd76862d0e5884e8f4e8dac8ba415b3", "signature": "void PopoverClose(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_close" }, { "name": "PopoverOpen", "kind": "extension", "id": "extension|PopoverOpen|0|0|void|UiText id||h424af0f304196b1a039d033eb75b4bff9dca251d0232dbc683699a925dfaa16d", "signature": "void PopoverOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "extension", "id": "extension|PopoverToggle|0|0|void|UiText id||h58628645f47f2c9c2896b1ec70e7d661c861b7abb26420d9b750e21380db5e02", "signature": "void PopoverToggle(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "extension", "id": "extension|Presence|0|0|void|UiText id;ReadOnlySpan\u003CPresenceUser\u003E users;int maxVisible;float size||h33db1325c05049463f7c9a97e3df833a114732c8a156f6ee2d775dad7a69c214", "signature": "void Presence(UiText id, ReadOnlySpan\u003CPresenceUser\u003E users, int maxVisible, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "users", "type": "ReadOnlySpan\u003CPresenceUser\u003E" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "extension", "id": "extension|Progress|0|0|void|float value;ProgressOpts o = default||h811e97c08fde2498427fc6a279e22a1c2ea3bc1ce69c3d642c73832f10623d4d", "signature": "void Progress(float value, ProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "ProgressOpts", "default": "default" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "extension", "id": "extension|ProgressRing|0|0|void|UiText label;float value;float size = 104f||h2e30430280ecfbc1925c0164f0bb59a54da3003b073ef1535c6cb3c2d4e8e057", "signature": "void ProgressRing(UiText label, float value, float size = 104f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "104f" }], "summary": "Circular progress with the value in the middle." }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|0|0|void|RectF r||h95bac6dcebf24b24b986a596422f965edfee8cd616663a1e59d0da09a9bd3efb", "signature": "void PushClip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle. Pair with PopClip." }, { "name": "RadialGauge", "kind": "extension", "id": "extension|RadialGauge|0|0|void|UiText id;float value;float min;float max;RadialGaugeOpts o = default||h69d72defa0179e7173e927724367a4bb9575a2e75bbd9949225f9eab886c2992", "signature": "void RadialGauge(UiText id, float value, float min, float max, RadialGaugeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RadialGaugeOpts", "default": "default" }], "summary": "cui_radial_gauge_ex" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|void|UiText id;DrawFn body;ReasoningOpts o = default||h892c50fc79e75386733c9149e18f72832dbdccb2d31c29b39a76a16ea185386e", "signature": "void Reasoning(UiText id, DrawFn body, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|0|0|void|UiText id;int[] order||hb312c00b771ad378a0324c96198659487c28a3c21c9d71a96e3f595957ffe21f", "signature": "void ReorderBegin(UiText id, int[] order)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "order", "type": "int[]" }] }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|0|0|void|||h4986f5ad7c5201d2830f1dee1e374ca29980fe9c408b3ef833336aabba3ed66c", "signature": "void RequestRedraw()", "summary": "Requests another frame; call only from the synchronous draw path." }, { "name": "RequestWakeup", "kind": "extension", "id": "extension|RequestWakeup|0|0|void|float seconds||h1e8d82035be8a5e226207bb6bd0874265dba29cf4b6a4779f60b95ab7cc567f7", "signature": "void RequestWakeup(float seconds)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "seconds", "type": "float" }], "summary": "Asks for one more frame after seconds, even when nothing else would wake the window. Use it for a timer, a toast timeout or a poll interval." }, { "name": "ResponseStatus", "kind": "extension", "id": "extension|ResponseStatus|0|0|void|int status;double seconds;double bytes||h63e7c9d5181d7379043415c904edf88e89db4e9781c0577d221801f58399a1cf", "signature": "void ResponseStatus(int status, double seconds, double bytes)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollTo", "kind": "extension", "id": "extension|ScrollTo|0|0|void|UiText scrollId;float y||h795b4245740f616fce2565ac40d5ea6dfa995143af81eedbc7067db0b0f1e7c0", "signature": "void ScrollTo(UiText scrollId, float y)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "extension", "id": "extension|Secondary|0|0|void|UiText text||h4f32c253f11a19b26ceb397d205e5e2d5c6c8e5db01a0ef2e8984e0a2c78ef46", "signature": "void Secondary(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "extension", "id": "extension|Separator|0|0|void|||h913edddc60366f9044c6b66111a5672080bdd3cb042c5febb3487cac873e4f6b", "signature": "void Separator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_separator" }, { "name": "SetFont", "kind": "extension", "id": "extension|SetFont|0|0|void|Font role;Font font||hcab29e22e2019bb3b541b3254c5e4027f76d357aa2ea4e762ced8560cad6c652", "signature": "void SetFont(Font role, Font font)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "Makes font the face every widget using role draws with." }, { "name": "SetLocalization", "kind": "method", "id": "method|SetLocalization|0|0|void|Localization? table||h9b1e18df8b05e42ae28fc53a566e5014c93cf59eea849033c0ab9f19b6bae9bd", "signature": "void SetLocalization(Localization? table)", "parameters": [{ "name": "table", "type": "Localization?" }], "summary": "Sets the month, weekday and \u0022Today\u0022 names the date components show, and returns to English with null." }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|0|0|void|bool reduced||hae4b830dd1026084cab290fac44e758b675baf93c35f70486ffa7547f059af88", "signature": "void SetReducedMotion(bool reduced)", "parameters": [{ "name": "reduced", "type": "bool" }], "summary": "Turns off animation (transitions, springs and spinners) for accessibility." }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|void|UiText title;ref bool open;DrawFn body;SheetOpts o = default||h65c09301eb5dd69c80862865570241bbd654452c640464cf772559af8fc6bf22", "signature": "void Sheet(UiText title, ref bool open, DrawFn body, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ShimmerText", "kind": "extension", "id": "extension|ShimmerText|0|0|void|UiText text;TextFxOpts o = default||h10fe1a4021ac0e8c72d7fdf6f3cb558e9a8c622c13f4749b7ac3d5d402cb9f57", "signature": "void ShimmerText(UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Text with a highlight sweeping across it, for \u0022Thinking...\u0022 states." }, { "name": "SignatureClear", "kind": "extension", "id": "extension|SignatureClear|0|0|void|UiText id||hf23272f80768839b31369fdd5a82c42808ef1d11985d804d96d54c704b0de8bf", "signature": "void SignatureClear(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "extension", "id": "extension|Skeleton|0|0|void|Size width;float height||h9a80641f8540ed71174043f46e0ff5190568ee803a507a52125ab6fd1ccd12ec", "signature": "void Skeleton(Size width, float height)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "width", "type": "Size" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "extension", "id": "extension|Spacer|0|0|void|||h8df9fad32f644fb75d2f19ff5d3057f2529306e3edc1921a901da58f59bdf332", "signature": "void Spacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "extension", "id": "extension|Sparkline|0|0|void|ReadOnlySpan\u003Cfloat\u003E values;Size width;float height;Color color||hf5e74b2ae617ca510b0dea71f3513379b77ff9597fa28585678fd9d5dc90c297", "signature": "void Sparkline(ReadOnlySpan\u003Cfloat\u003E values, Size width, float height, Color color)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "extension", "id": "extension|Spinner|0|0|void|float size = 16f||h910bfa94c12faa6f479982793408735550b3b41b6f58bf9d2ecbd8fbd8d537f9", "signature": "void Spinner(float size = 16f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float", "default": "16f" }], "summary": "cui_spinner" }, { "name": "SplitNext", "kind": "extension", "id": "extension|SplitNext|0|0|void|||h2e9b4df1853b9715ec487e793813aebc81a3f6ac93bd19f40400a8b7db5e57b1", "signature": "void SplitNext()", "extensionOn": "CuiSharp.Ui", "summary": "cui_split_next" }, { "name": "StatusBarProgress", "kind": "extension", "id": "extension|StatusBarProgress|0|0|void|float value;StatusProgressOpts o = default||h0d89461fbae2cb62b010aaa92c832f76c787764ad8bf6a7f6f3b2352d43eb62e", "signature": "void StatusBarProgress(float value, StatusProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "StatusProgressOpts", "default": "default" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "extension", "id": "extension|StatusBarSpacer|0|0|void|||hff79ec75c75a5a4046a3afdf7908bfa1687f1fccc3cca35aa6a3c05e5696b38d", "signature": "void StatusBarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "extension", "id": "extension|StatusBarText|0|0|void|UiText text;StatusItemOpts o = default||hf5288fddf236ac4166245c73e6f33c7b59cd60825aad4b4b26f2a62615179863", "signature": "void StatusBarText(UiText text, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A message; \u0060tone\u0060 colors its icon." }, { "name": "Stepper", "kind": "extension", "id": "extension|Stepper|0|0|void|ReadOnlySpan\u003Cstring\u003E steps;int current||h80f2e80af6bf18ef466ffe2f62937141940d661367c04989db4a52915786a5ca", "signature": "void Stepper(ReadOnlySpan\u003Cstring\u003E steps, int current)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "steps", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|void|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;DrawFn body;TableOpts o = default||h7968ef7a646f0817ff9658c4cbca9383316e49dd9c742c9662b2ff3812b0fd0a", "signature": "void Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, DrawFn body, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TableCell", "kind": "extension", "id": "extension|TableCell|0|0|void|||h7206d360daa4de79037d61b719094d0baea2de5a24e5aeb9f04149502f3db3bc", "signature": "void TableCell()", "extensionOn": "CuiSharp.Ui", "summary": "Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "TableCellText", "kind": "extension", "id": "extension|TableCellText|0|0|void|UiText text||h7ed6f22b1e22b71ecfb331830e30c25829c7af8fec09d3b888c861bbb28793a6", "signature": "void TableCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Part of cui_table_cell \u2014 Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "Text", "kind": "extension", "id": "extension|Text|0|0|void|UiText text;TextOpts o = default||h098380135ff70fa9e6364b4f5cb5baaa3d0d23bb4e06916511f00c01e904dcb6", "signature": "void Text(UiText text, TextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextOpts", "default": "default" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "extension", "id": "extension|TextReveal|0|0|void|UiText id;UiText text;TextFxOpts o = default||h7f99ba4d6b24021ea0f87d36914931f6994d1962327a22f1e8b4caad0115cafe", "signature": "void TextReveal(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Words fade and rise into place one after another, when first shown and again whenever the text changes." }, { "name": "Ticker", "kind": "extension", "id": "extension|Ticker|0|0|void|UiText id;ReadOnlySpan\u003CTickerItem\u003E items;TickerOpts o = default||h62c76d0d359572be4036b278345efbeac770ba89bef0d4343912d1b51ea0fc23", "signature": "void Ticker(UiText id, ReadOnlySpan\u003CTickerItem\u003E items, TickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTickerItem\u003E" }, { "name": "o", "type": "TickerOpts", "default": "default" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "extension", "id": "extension|TimelineItem|0|0|void|UiText title;TimelineOpts o = default||hd57ae894fcdcf6a57e4008b86ca1e4a0ea3d920a1be7b0beead7f0c64dce9b25", "signature": "void TimelineItem(UiText title, TimelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "TimelineOpts", "default": "default" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "extension", "id": "extension|ToastDismiss|0|0|void|int handle||h6a894b14bc221b765154e4ee9cf6cdd1812f544772192205c25a197be8077904", "signature": "void ToastDismiss(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "extension", "id": "extension|TocAnchor|0|0|void|UiText anchor||h474d1046a90fd952ce1996c9a0f04e59d8090e886222bfa8a62b08c2d191127c", "signature": "void TocAnchor(UiText anchor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "anchor", "type": "UiText" }], "summary": "cui_toc_anchor" }, { "name": "ToggleTheme", "kind": "method", "id": "method|ToggleTheme|0|0|void|||h9c315cf4c8d3ce0774082f4db1c10fdcde1dfdef8503f7e49968fc73805e19e8", "signature": "void ToggleTheme()", "summary": "Switches to the other theme: what a \u0022dark mode\u0022 command is." }, { "name": "ToolCall", "kind": "extension", "id": "extension|ToolCall|0|0|void|UiText id;UiText name;ToolCallOpts o = default||h16a78d12e8afd01cd74d0ff79d04eab871b3602eb401436850ec64b67c8d437d", "signature": "void ToolCall(UiText id, UiText name, ToolCallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "o", "type": "ToolCallOpts", "default": "default" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarSeparator", "kind": "extension", "id": "extension|ToolbarSeparator|0|0|void|||h1ac04b800f486b06135932d0c44c42e77b107a635f62f0ebe94dc31f9e99b9a6", "signature": "void ToolbarSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "extension", "id": "extension|ToolbarSpacer|0|0|void|||h494edd9bb119d78eaa1c281a125dd1a9effb7a85caa35e4b35c4253376bb92f3", "signature": "void ToolbarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "extension", "id": "extension|Tooltip|0|0|void|UiText text||h5665aef7d99446eea8e623f0f1227e52e0512f331e35936232eb9a28aa7f3634", "signature": "void Tooltip(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Tooltip for the previous component, shown after a short hover delay." }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|void|UiText label;ref bool open;DrawFn body;TreeOpts o = default||he13b4bfd412c90e5210ac7a3109d12fb25e4a2280312b5257572daebbb5bbd95", "signature": "void Tree(UiText label, ref bool open, DrawFn body, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TreeTableName", "kind": "extension", "id": "extension|TreeTableName|0|0|void|UiText label;UiText icon||h1db08630dbcd5478e4543d6fc7df51dec714a4cefea2efb55e95ec44273c7151", "signature": "void TreeTableName(UiText label, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "icon", "type": "UiText" }], "summary": "The first cell: indentation, guides, the chevron, an icon and the name (cut short with a tooltip of the whole name when it does not fit)." }, { "name": "TypingIndicator", "kind": "extension", "id": "extension|TypingIndicator|0|0|void|UiText name||h29e1190d004ef9cf04c8fb3bb6772b74ea89a31b5105bb6fe5d65e29383b006a", "signature": "void TypingIndicator(UiText name)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }], "summary": "cui_typing_indicator" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|void|UiText name;DrawFn body;UserMenuOpts o = default||h1d302e00c446dbae93ac0347cf4063547177c7d4c68194db26c7ca15c8128f8c", "signature": "void UserMenu(UiText name, DrawFn body, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "WordRotate", "kind": "extension", "id": "extension|WordRotate|0|0|void|UiText id;ReadOnlySpan\u003Cstring\u003E words;float interval;TextFxOpts o = default||he53938c5acb8d2d7786cb08323a565882c4e7c01bc50637a3c5c0d9131734da4", "signature": "void WordRotate(UiText id, ReadOnlySpan\u003Cstring\u003E words, float interval, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "words", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "interval", "type": "float" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "One word at a time; the next one rolls up into place and the width follows." }] }, { "name": "CuiSharp.UiText", "displayName": "UiText", "kind": "ref struct", "summary": "Frame-local text: a string, UTF-8 bytes, or interpolation. All UI text parameters accept this type; interpolated values format directly into the frame arena without creating a managed string.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int literalLength;int formattedCount||h9d129c9e8c13f816fed4fd270b6f7361e24da4313ad96ee28152fbfd2d443819", "signature": "UiText(int literalLength, int formattedCount)", "parameters": [{ "name": "literalLength", "type": "int" }, { "name": "formattedCount", "type": "int" }], "summary": "Called by the compiler for interpolated text." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|ReadOnlySpan\u003Cbyte\u003E text||hd1579173337f67b3bf25d622e86eb7f148007c45b2d398328924b26ef41bed1a", "signature": "static implicit operator UiText(ReadOnlySpan\u003Cbyte\u003E text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Copies pre-encoded UTF-8 into the frame arena." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|string? text||ha192bca6069ef409f9cb822e5f7d0eaa3554d027fa4199e7d57af82030fd6b75", "signature": "static implicit operator UiText(string? text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "string?" }], "summary": "Copies a managed string into the frame arena; null means empty." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cbyte\u003E value||hef829454fbde18245e3b8ef1227cc657c7d0c8b8ac6043baddcb203e4e89ce11", "signature": "void AppendFormatted(ReadOnlySpan\u003Cbyte\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cbyte\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value||h512a8c46c33dd443943ef420e735689596e3dd472b3a96689fcb02b2ba852201", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value;int alignment||h982dbe4e0a26fe044f09d75a4d1104d13f46fc199f6c695c3782505e26cfbb9b", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value, int alignment)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|UiText value||h5e44e320cfaa7bde5f1329fb6b53cbdd46d63a7584a2c0fc9033ba79744123a3", "signature": "void AppendFormatted(UiText value)", "parameters": [{ "name": "value", "type": "UiText" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|bool value||h720aa8df35eebbf6f0d5f648fc9a056d974eb609b0040ec2c42fd468a06693a0", "signature": "void AppendFormatted(bool value)", "parameters": [{ "name": "value", "type": "bool" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|char value||h9d680ea6dfe9dbec87b517cb2cbddc8218746befbf6dd2ee68b35e855f8057ae", "signature": "void AppendFormatted(char value)", "parameters": [{ "name": "value", "type": "char" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value||hf93e8db4d0924f08e67f1ef03109839f6c73f17ad46779c6b8b380b8e05c7218", "signature": "void AppendFormatted(object? value)", "parameters": [{ "name": "value", "type": "object?" }], "summary": "Fallback for other values; their ToString() may allocate." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;int alignment;string? format = null||h059572468f1cfeb9ca57651003cde79067a087f489ab6d52b658fb044b3526ed", "signature": "void AppendFormatted(object? value, int alignment, string? format = null)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?", "default": "null" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;string? format||h9d8fbb16f8627e1d56ead9a8606ba99da5f85ef91fd9b3771d29f8c5e4c7e462", "signature": "void AppendFormatted(object? value, string? format)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value||h7ed9ddb298ac718e41c3694b560ffb5c9d2bc9abccaaeedd72c1132bffd4b796", "signature": "void AppendFormatted(string? value)", "parameters": [{ "name": "value", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value;int alignment||h51c88640d936ec7475bf76cd319665175a79b5198d79ca7c1a3ba95a51998749", "signature": "void AppendFormatted(string? value, int alignment)", "parameters": [{ "name": "value", "type": "string?" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value||h65df985b422ddbac895e2b797462d95fb3f98bb9ce9ccf9782ec6763b6832437", "signature": "void AppendFormatted\u003CT\u003E(T value) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment||h6468da91f19f1efef869ac4b11f9ff350163d77d76e6db4819ce47eefce59a06", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment;string? format||h1004c4617ff18f4ce7f5dfd22cacb4983c1cb3ae5b0581f5cdcfadab89abcd35", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;string? format||h2fc49aa45e0e759e36dd6df0e6e9d6157eff303a310b2b52f64f0ffa2635a4ad", "signature": "void AppendFormatted\u003CT\u003E(T value, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "format", "type": "string?" }] }, { "name": "AppendLiteral", "kind": "method", "id": "method|AppendLiteral|0|0|void|string value||h91e764bb2eb76e141ff133bb474648f96920b1561f73237554f400e459d22437", "signature": "void AppendLiteral(string value)", "parameters": [{ "name": "value", "type": "string" }] }] }, { "name": "CuiSharp.UptimeOpts", "displayName": "UptimeOpts", "kind": "struct", "summary": "cui_uptime_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "LastDay", "kind": "field", "id": "field|LastDay|0|0|Date|||ha3f645ffdf8751c48a7a18f62ca5d5d533c04d6ba810e7a5b9e3d210de69be6b", "signature": "public Date LastDay", "summary": "the date of the last value, for the tooltips" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "the date of the last value, for the tooltips" }] }, { "name": "CuiSharp.UptimeResult", "displayName": "UptimeResult", "kind": "struct", "summary": "cui_uptime_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Service;int Day = default||h4ee9e7c7a585a544f5268afb6a64a28897b9938d387b9170a817e81d7915e91b", "signature": "UptimeResult(int Service, int Day = default)", "parameters": [{ "name": "Service", "type": "int" }, { "name": "Day", "type": "int", "default": "default" }] }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "under the pointer, or -1" }, { "name": "Service", "kind": "field", "id": "field|Service|0|0|int|||hba0d1bf399894e025b711a3e44f55e40012b5deae721403f37ad45df303a1b8b", "signature": "public int Service", "summary": "under the pointer, or -1" }] }, diff --git a/src/CuiSharp.Tests/ApiCatalogCliTests.cs b/src/CuiSharp.Tests/ApiCatalogCliTests.cs new file mode 100644 index 0000000..e0eb62b --- /dev/null +++ b/src/CuiSharp.Tests/ApiCatalogCliTests.cs @@ -0,0 +1,500 @@ +using System.Diagnostics; +using System.Text.Json; +using System.Text.RegularExpressions; +using CuiSharp.Tools; + +namespace CuiSharp.Tests; + +/// +/// dotnet cui api and dotnet cui icons answered offline. Every call passes +/// --project pointing at a directory that does not exist: the normal CLI path would +/// fail there with "No app found" before printing anything, so an exit code of 0 with the +/// right payload is itself the proof that the catalog answer never discovered a project, +/// built an app, started a process, reflected over CuiSharp, or loaded the native library. +/// Assertions are on what a person or script reads — declarations with signatures and +/// defaults, code points, exit codes — not on the catalog's internal arrays. +/// +public class ApiCatalogCliTests +{ + /// A path with no project and no app, for the proof described above. + private static readonly string NoProjectHere = Path.Combine(Path.GetTempPath(), "cui-api-offline-" + Guid.NewGuid()); + + private static (int Exit, string Out, string Err) Run(params string[] args) + { + var output = new StringWriter(); + var error = new StringWriter(); + int exit = Cli.Run([.. args, "--project", NoProjectHere], output, error); + return (exit, output.ToString(), error.ToString()); + } + + [Fact] + public void AnExactOptionTypeAnswersWithItsFieldDeclarationsWithoutAnyProject() + { + (int exit, string output, _) = Run("api", "ChartOpts", "-q"); + + Assert.Equal(0, exit); + Assert.Contains("ChartOpts [struct]", output, StringComparison.Ordinal); + // A field declaration a person can read, not an array of names. + Assert.Contains("public bool Area", output, StringComparison.Ordinal); + // The Issue-8 surface: the regeneration put the managed Normalize field and its + // pointer to ChartNormalizer into the catalog the tool embeds. + Assert.Contains("public NormalizeMode Normalize", output, StringComparison.Ordinal); + Assert.Contains("ChartNormalizer", output, StringComparison.Ordinal); + } + + [Fact] + public void TheOverloadsOfAMemberComeBackWithTheirSignaturesAndDefaults() + { + (int exit, string output, _) = Run("api", "Ui.LineChart"); + + Assert.Equal(0, exit); + int overloads = Regex.Matches(output, @"^\s*void LineChart\(", RegexOptions.Multiline).Count; + Assert.True(overloads >= 2, $"LineChart has one span overload and one Series[] overload, saw:\n{output}"); + // The defaults are part of the answer: `= default` is how a caller knows the tail is optional. + Assert.Contains("ChartOpts o = default", output, StringComparison.Ordinal); + Assert.Contains("ReadOnlySpan values", output, StringComparison.Ordinal); + } + + [Fact] + public void AnUnknownNameExitsNonzeroAndPointsAtTheNearestName() + { + (int exit, string output, _) = Run("api", "ChartOptz"); + + Assert.Equal(1, exit); + Assert.Contains("nothing named \"ChartOptz\"", output, StringComparison.Ordinal); + Assert.Contains("ChartOpts", output, StringComparison.Ordinal); + } + + [Fact] + public void AnAmbiguousMemberNamesItsQualifiedOwnersAndExitsNonzero() + { + (int exit, string output, _) = Run("api", "Run"); + + Assert.Equal(1, exit); + Assert.Contains("CuiApp.Run", output, StringComparison.Ordinal); + Assert.Contains("CuiApplication.Run", output, StringComparison.Ordinal); + } + + [Fact] + public void IconsListEveryConstantWithItsCodePointAndPasteReadyLiteral() + { + (int exit, string output, _) = Run("icons"); + + Assert.Equal(0, exit); + string[] lines = [.. output.Split('\n', StringSplitOptions.RemoveEmptyEntries)]; + int constants = typeof(Icons).GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) + .Count(f => f.IsLiteral); + Assert.Equal(constants, lines.Length); + Assert.All(lines, line => Assert.Matches(@"U\+[0-9A-F]{4}", line)); + string check = lines.First(line => line.StartsWith("Check", StringComparison.Ordinal)); + string real = (string)typeof(Icons).GetField("Check")!.GetRawConstantValue()!; + Assert.Contains($"U+{(int)real[0]:X4}", check, StringComparison.Ordinal); + } + + [Fact] + public void AnIconFilterNarrowsTheListAndStillExitsZero() + { + (int exit, string output, _) = Run("icons", "chart"); + + Assert.Equal(0, exit); + string[] lines = [.. output.Split('\n', StringSplitOptions.RemoveEmptyEntries)]; + Assert.Contains(lines, line => line.StartsWith("ChartLine", StringComparison.Ordinal)); + Assert.All(lines, line => Assert.Contains("chart", line, StringComparison.OrdinalIgnoreCase)); + int constants = typeof(Icons).GetFields(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.Static) + .Count(f => f.IsLiteral); + Assert.True(lines.Length < constants, "the filter filtered"); + } + + [Fact] + public void AnIconFilterThatHitsNothingIsActionableAndNonzero() + { + (int exit, string output, _) = Run("icons", "zzzznotanicon"); + + Assert.Equal(1, exit); + Assert.Contains("no icon matches \"zzzznotanicon\"", output, StringComparison.Ordinal); + Assert.Contains("`cui icons` lists them all", output, StringComparison.Ordinal); + } + + [Fact] + public void JsonIsMachineReadableForApiAndIcons() + { + (int exit, string output, _) = Run("api", "ChartOpts", "--json"); + Assert.Equal(0, exit); + using (JsonDocument exact = JsonDocument.Parse(output)) + { + Assert.Equal("exact", exact.RootElement.GetProperty("match").GetString()); + Assert.Equal("ChartOpts", exact.RootElement.GetProperty("term").GetString()); + Assert.True(exact.RootElement.GetProperty("lines").GetArrayLength() > 0); + } + + (exit, output, _) = Run("icons", "zzzznotanicon", "--json"); + Assert.Equal(1, exit); + using JsonDocument none = JsonDocument.Parse(output); + Assert.Equal("unknown", none.RootElement.GetProperty("match").GetString()); + } + + [Fact] + public void ApiWithoutATermIsAUsageErrorNotACrash() + { + (int exit, _, string error) = Run("api"); + + Assert.Equal(2, exit); + Assert.Contains("needs a name", error, StringComparison.Ordinal); + } + + [Fact] + public void AFlagNeitherCommandKnowsIsReportedRatherThanSentOn() + { + (int exit, _, string error) = Run("api", "ChartOpts", "--pgae"); + + Assert.Equal(1, exit); + Assert.Contains("--pgae", error, StringComparison.Ordinal); + } + + [Fact] + public void TheCliAnswersFromTheCatalogEmbeddedInItsOwnAssembly() + { + // The reader loads the resource, not the file; this pins that the bytes it loads are + // the checked-in catalog, so the shipped tool and the skills folder cannot disagree. + using Stream? data = typeof(Cli).Assembly.GetManifestResourceStream("CuiSharp.Tools.api-catalog.json"); + Assert.NotNull(data); + string embedded = new StreamReader(data!).ReadToEnd(); + + string checkedIn = File.ReadAllText( + Path.Combine(TestPaths.RepositoryRoot, "skills", "cui-dotnet", "api", "catalog.json")); + Assert.Equal(checkedIn.Replace("\r\n", "\n"), embedded.Replace("\r\n", "\n")); + } + + [Fact] + public void HelpAfterACatalogCommandIsTheQueryOrFilterNotTheUsage() + { + // `icons help` is a filter over the glyph index, and CircleHelp is its honest answer; + // printing the manual there would hide a real constant behind a help screen. + (int exit, string output, _) = Run("icons", "help"); + Assert.Equal(0, exit); + Assert.Contains("CircleHelp", output, StringComparison.Ordinal); + Assert.DoesNotContain("dotnet cui ", output, StringComparison.Ordinal); + + (exit, output, _) = Run("icons", "help", "--json"); + Assert.Equal(0, exit); + using (JsonDocument json = JsonDocument.Parse(output)) + { + Assert.Equal("exact", json.RootElement.GetProperty("match").GetString()); + Assert.Contains("CircleHelp", json.RootElement.GetProperty("lines").GetRawText(), StringComparison.Ordinal); + } + + // `api help` asks what the catalog knows about "help" and gets the ordinary answer: + // the two constants whose native name is help, an ambiguous list with exit 1 — a + // lookup to read, not a usage screen to ignore. + (exit, output, _) = Run("api", "help"); + Assert.Equal(1, exit); + Assert.Contains("CircleHelp", output, StringComparison.Ordinal); + Assert.Contains("DialogHelper", output, StringComparison.Ordinal); + Assert.DoesNotContain("dotnet cui ", output, StringComparison.Ordinal); + } + + [Fact] + public void ExplicitHelpStillAsksForUsageEvenBesideACatalogCommand() + { + (int exit, string output, _) = Run("api", "--help"); + Assert.Equal(0, exit); + Assert.Contains("dotnet cui ", output, StringComparison.Ordinal); + + (exit, output, _) = Run("icons", "-h"); + Assert.Equal(0, exit); + Assert.Contains("dotnet cui ", output, StringComparison.Ordinal); + } + + [Fact] + public void AnIgnoredOptionNeverSwallowsTheFlagBehindIt() + { + // `--frames --json` lost its number. Eating the flag behind it would answer a + // different command than the one that was typed and call the answer successful. + (int exit, _, string error) = Run("api", "ChartOpts", "--frames", "--json"); + Assert.Equal(1, exit); + Assert.Contains("--frames needs a value", error, StringComparison.Ordinal); + + (exit, _, error) = Run("api", "ChartOpts", "--wait-timeout", "--pgae"); + Assert.Equal(1, exit); + Assert.Contains("--wait-timeout needs a value", error, StringComparison.Ordinal); + + // A value missing at the end of the line is the same mistake. No --project is needed + // here: the catalog path never looks at a project, so the parse error is all there is. + var answers = new StringWriter(); + var errors = new StringWriter(); + exit = Cli.Run(["api", "ChartOpts", "--app"], answers, errors); + Assert.Equal(1, exit); + Assert.Contains("--app needs a value", errors.ToString(), StringComparison.Ordinal); + } + + [Fact] + public void ANonCatalogCommandKeepsItsOwnGrammarEvenWithAwkwardOptionValues() + { + // `tree --wait-text -loading` is legal in the ordinary flow: `-loading` is a value, + // not a flag. The catalog scan reads argv before anyone knows which flow this is, so + // it may hold a complaint but never voice one for a command it does not own. + Assert.False(Cli.TryReadCatalogCommand( + ["tree", "--wait-text", "-loading", "--help"], out Cli.CatalogRequest _)); + + Cli.Options options = Cli.Options.Parse(["tree", "--wait-text", "-loading", "--help"]); + Assert.Equal("tree", options.Command); + Assert.Equal("waittext 10 -loading", options.WaitLine); + Assert.True(options.Help); + + // End to end the same line reaches the ordinary path: the complaint that comes back + // is about the project the test names, never about the value the scan held back. + (int exit, _, string error) = Run("tree", "--wait-text", "-loading"); + Assert.Equal(1, exit); + Assert.DoesNotContain("needs a value", error, StringComparison.Ordinal); + Assert.Contains(NoProjectHere, error, StringComparison.Ordinal); + + // And `--json` stays the ordinary parser's unknown option — the catalog commands are + // the only ones that answer machine-readable, and the scan must not grant it wider. + (exit, _, error) = Run("tree", "--json"); + Assert.Equal(1, exit); + Assert.Contains("Unknown option \"--json\"", error, StringComparison.Ordinal); + } + + [Fact] + public void ACatalogCommandReportsTheOptionMistakesTheScanHeldBack() + { + // The escrow is only ever cashed for api/icons — and on either side of the command + // word. After it: `--project --json` must name the option that lost its value, not + // swallow --json and not answer any query at all. + var output = new StringWriter(); + var errors = new StringWriter(); + int exit = Cli.Run(["api", "ChartOpts", "--project", "--json"], output, errors); + Assert.Equal(1, exit); + Assert.Contains("--project needs a value", errors.ToString(), StringComparison.Ordinal); + Assert.Equal("", output.ToString()); + + // Before it: a malformed flag ahead of the command word is the same mistake, and + // again nothing is printed as if it were an answer. + output = new StringWriter(); + errors = new StringWriter(); + exit = Cli.Run(["--wait-text", "--json", "api", "ChartOpts"], output, errors); + Assert.Equal(1, exit); + Assert.Contains("--wait-text needs a value", errors.ToString(), StringComparison.Ordinal); + Assert.Equal("", output.ToString()); + + // And a value the ordinary parser would refuse — a number that is not one, whatever + // its dashes — is refused here in the parser's own words, not a catalog-side echo: + // the scan borrows `--frames`/`--wait-timeout` validation rather than keeping a + // second grammar that could disagree with the first. + (int badExit, _, string badError) = Run("api", "ChartOpts", "--wait-timeout", "abc"); + Assert.Equal(1, badExit); + Assert.Contains("--wait-timeout needs a finite number of seconds", badError, StringComparison.Ordinal); + Assert.Contains("not \"abc\"", badError, StringComparison.Ordinal); + } + + [Fact] + public void ASwallowedOptionValueNeverStealsTheCommandWord() + { + // `--wait-text --app tree api --help`: the ordinary parser spends the word after a + // flag on it, dash or not, so `--wait-text` eats `--app` and the command is `tree`. + // The scan may complain about that eaten flag, but it must consume identically while + // doing so — a scan whose position diverges calls this a catalog line and answers a + // validation error for an ordinary tree run. + Assert.False(Cli.TryReadCatalogCommand( + ["--wait-text", "--app", "tree", "api", "--help"], out Cli.CatalogRequest _)); + + Cli.Options options = Cli.Options.Parse(["--wait-text", "--app", "tree", "api", "--help"]); + Assert.Equal("tree", options.Command); + Assert.Equal("waittext 10 --app", options.WaitLine); + Assert.True(options.Help); + + // End to end the line is what the ordinary grammar says it is: usage, exit 0. + var output = new StringWriter(); + var errors = new StringWriter(); + int exit = Cli.Run(["--wait-text", "--app", "tree", "api", "--help"], output, errors); + Assert.Equal(0, exit); + Assert.Contains("dotnet cui ", output.ToString(), StringComparison.Ordinal); + Assert.Equal("", errors.ToString()); + } + + [Fact] + public void TheScanOwnsTheLineOnlyForTheCommandOptionsParseWouldName() + { + // `--project --app api ChartOpts --help`: the ordinary parser spends `--app` on + // `--project`, so the first positional — the command — is `api`, and this line is + // the catalog's business. It then names the malformed flag rather than printing + // usage as if `api` had been swallowed into the option and never seen. (The earlier + // scan did exactly that: it refused to eat a dash-value, slid `api` into a slot the + // parser gives to nothing, and answered usage for a line it should have policed.) + Assert.Throws(() => Cli.TryReadCatalogCommand( + ["--project", "--app", "api", "ChartOpts", "--help"], out Cli.CatalogRequest _)); + + var output = new StringWriter(); + var errors = new StringWriter(); + int exit = Cli.Run(["--project", "--app", "api", "ChartOpts", "--help"], output, errors); + Assert.Equal(1, exit); + Assert.Contains("--project needs a value", errors.ToString(), StringComparison.Ordinal); + Assert.Equal("", output.ToString()); + } + + [Fact] + public void AWaitTheCallerOverwritesIsJudgedByTheValueThatSurvives() + { + // `--wait` is the one option whose value the parser does not judge where it reads it: + // every occurrence overwrites the last, and the surviving value is checked after the + // whole line. A scan that judges each occurrence condemns `--wait invalid --wait ready` + // — a legal wait, and a legal `api` call — for a typo the caller already replaced. + Cli.Options overwritten = Cli.Options.Parse(["api", "ChartOpts", "--wait", "invalid", "--wait", "ready"]); + Assert.Equal("wait 10", overwritten.WaitLine); + + Assert.True(Cli.TryReadCatalogCommand( + ["api", "ChartOpts", "--wait", "invalid", "--wait", "ready"], out Cli.CatalogRequest _)); + + (int exit, string output, string error) = Run("api", "ChartOpts", "--wait", "invalid", "--wait", "ready"); + Assert.Equal(0, exit); + Assert.Contains("ChartOpts [struct]", output, StringComparison.Ordinal); + Assert.Equal("", error); + + // With `--help` behind it the same line is the usage screen the ordinary grammar + // grants it, not a validation error about a word no wait will ever use. + (exit, output, error) = Run("api", "ChartOpts", "--wait", "invalid", "--wait", "ready", "--help"); + Assert.Equal(0, exit); + Assert.Contains("dotnet cui ", output.ToString(), StringComparison.Ordinal); + Assert.Equal("", error); + + // The filter still filters: the final `ready` is what the line waits on, so `icons + // help` answers CircleHelp instead of a complaint about the overwritten value. + (exit, output, error) = Run("icons", "help", "--wait", "invalid", "--wait", "ready"); + Assert.Equal(0, exit); + Assert.Contains("CircleHelp", output, StringComparison.Ordinal); + Assert.DoesNotContain("dotnet cui ", output, StringComparison.Ordinal); + Assert.Equal("", error); + + // The other order is the mistake, and the scanner says so in the parser's own words: + // the last `--wait` is the one the run would have waited on. + Assert.Throws(() => Cli.TryReadCatalogCommand( + ["api", "ChartOpts", "--wait", "ready", "--wait", "invalid"], out Cli.CatalogRequest _)); + + (exit, output, error) = Run("api", "ChartOpts", "--wait", "ready", "--wait", "invalid"); + Assert.Equal(1, exit); + Assert.Contains("--wait needs \"ready\", not \"invalid\"", error, StringComparison.Ordinal); + Assert.Equal("", output); + } + + [Fact] + public void JsonAndIgnoredAppFlagsAnswerTheSameOffline() + { + (int exit, string output, _) = Run("--json", "api", "ChartOpts"); + Assert.Equal(0, exit); + using (JsonDocument json = JsonDocument.Parse(output)) + Assert.Equal("exact", json.RootElement.GetProperty("match").GetString()); + + (exit, output, _) = Run("api", "ChartOpts", "--app", "nowhere.exe"); + Assert.Equal(0, exit); + Assert.Contains("ChartOpts [struct]", output, StringComparison.Ordinal); + } + + [Fact] + public void ANameNowhereNearTheCatalogSaysNoNameIsClose() + { + (int exit, string output, _) = Run("api", "qqzzxvw"); + Assert.Equal(1, exit); + Assert.Contains("no name is close", output, StringComparison.Ordinal); + } + + [Fact] + public void TheJsonAnswerRoundTripsEveryCharacterTheWriterMustEscape() + { + // The renderer writes by hand (Utf8JsonWriter, no contract resolver), so this is + // where "still valid JSON, still exactly these strings" is pinned: quotes, + // backslashes, control characters and non-ASCII, in the term and in the lines. + string term = "a \"quoted\" \\ back\\slash term with\nnewline and\ttab and ünïcode"; + CatalogResult result = CatalogResult.Exact(term, ["line with \"quotes\" and \\slashes\\", "line with and a \u0001 control"]); + + using JsonDocument doc = JsonDocument.Parse(result.RenderJson()); + Assert.Equal("exact", doc.RootElement.GetProperty("match").GetString()); + Assert.Equal(term, doc.RootElement.GetProperty("term").GetString()); + JsonElement lines = doc.RootElement.GetProperty("lines"); + Assert.Equal(2, lines.GetArrayLength()); + Assert.Equal("line with \"quotes\" and \\slashes\\", lines[0].GetString()); + Assert.Equal("line with and a \u0001 control", lines[1].GetString()); + Assert.Equal(0, doc.RootElement.GetProperty("suggestions").GetArrayLength()); + } + + [Fact] + public void TheOfflineJsonAnswersWithReflectionBasedSerializationDisabled() + { + // The switch that disables reflection-based JSON is read at process start, so the + // only honest proof is a child: this build's tool dll, a runtimeconfig that turns + // the default resolver off, and the offline commands. A renderer that reaches for + // JsonSerializer's default resolver dies in this child — unhandled + // InvalidOperationException, not an answer; the hand-written one answers. + string source = Path.Combine( + TestPaths.RepositoryRoot, "src", "CuiSharp.Tools", "bin", ConfigurationUnderTest(), "net10.0", + "CuiSharp.Tools.dll"); + Assert.True(File.Exists(source), $"{source} is missing: dotnet test builds it through the ProjectReference"); + + string directory = Path.Combine(Path.GetTempPath(), "cui-json-no-reflection-" + Guid.NewGuid()); + Directory.CreateDirectory(directory); + try + { + string tool = Path.Combine(directory, "CuiSharp.Tools.dll"); + File.Copy(source, tool); + File.Copy(Path.ChangeExtension(source, ".deps.json"), Path.ChangeExtension(tool, ".deps.json")); + File.WriteAllText(Path.ChangeExtension(tool, ".runtimeconfig.json"), """ + { + "runtimeOptions": { + "tfm": "net10.0", + "framework": { "name": "Microsoft.NETCore.App", "version": "10.0.0" }, + "configProperties": { "System.Text.Json.JsonSerializer.IsReflectionEnabledByDefault": false } + } + } + """); + + foreach (string[] command in new[] { new[] { "api", "ChartOpts", "--json" }, new[] { "icons", "help", "--json" } }) + { + (int exit, string output, string error) = RunChild(tool, command); + Assert.True(exit == 0, $"`{string.Join(' ', command)}` exited {exit} with reflection off: {error}"); + using JsonDocument json = JsonDocument.Parse(output); + Assert.Equal("exact", json.RootElement.GetProperty("match").GetString()); + } + } + finally + { + try { Directory.Delete(directory, recursive: true); } catch (IOException) { } + } + } + + /// The configuration this test assembly was built in — the only one whose tool dll may run. + private static string ConfigurationUnderTest() + { + string? directory = Path.GetDirectoryName(typeof(ApiCatalogCliTests).Assembly.Location); + ArgumentException.ThrowIfNullOrEmpty(directory); + string[] parts = directory.Split(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + for (int i = 0; i < parts.Length - 1; i++) + if (parts[i].Equals("bin", StringComparison.OrdinalIgnoreCase)) return parts[i + 1]; + + throw new InvalidOperationException($"{directory} does not live under a bin{Path.DirectorySeparatorChar} directory"); + } + + /// + /// Runs the child with both pipes drained at once: a crash fills one, and a reader that + /// waits on the other first would call that a hang instead of reading the exception. + /// + private static (int Exit, string Out, string Error) RunChild(string toolDll, string[] arguments) + { + var info = new ProcessStartInfo("dotnet") + { + RedirectStandardOutput = true, + RedirectStandardError = true, + UseShellExecute = false, + }; + foreach (string argument in new string[] { toolDll }.Concat(arguments)) info.ArgumentList.Add(argument); + + using Process process = Process.Start(info) ?? throw new InvalidOperationException("could not start the child"); + Task output = process.StandardOutput.ReadToEndAsync(); + Task errors = process.StandardError.ReadToEndAsync(); + if (!process.WaitForExit(TimeSpan.FromMinutes(1))) + { + process.Kill(entireProcessTree: true); + throw new InvalidOperationException("the child did not answer within one minute"); + } + + return (process.ExitCode, output.GetAwaiter().GetResult(), errors.GetAwaiter().GetResult()); + } +} diff --git a/src/CuiSharp.Tools/ApiCatalog.cs b/src/CuiSharp.Tools/ApiCatalog.cs index 6b2baaa..0396c7d 100644 --- a/src/CuiSharp.Tools/ApiCatalog.cs +++ b/src/CuiSharp.Tools/ApiCatalog.cs @@ -1,3 +1,4 @@ +using System.Buffers; using System.Text; using System.Text.Json; @@ -112,6 +113,27 @@ internal static ApiCatalog Load(string json) } } + /// The logical name the tools assembly embeds the checked-in catalog under. + internal const string EmbeddedResourceName = "CuiSharp.Tools.api-catalog.json"; + + /// + /// Reads the catalog this assembly embedded at build time. This is the CLI's only catalog + /// source: no file lookup, no project discovery, no reflection over CuiSharp, no native + /// library — the bytes travelled inside the tool package, so `dotnet cui api` answers in a + /// directory that holds no app at all. + /// + internal static ApiCatalog LoadEmbedded() + { + using Stream? data = typeof(ApiCatalog).Assembly.GetManifestResourceStream(EmbeddedResourceName); + if (data is null) + throw new ToolException( + $"this build of cui carries no embedded API catalog (resource \"{EmbeddedResourceName}\"); " + + "the CuiSharp.Tools package is broken — reinstall it."); + + using var reader = new StreamReader(data); + return Load(reader.ReadToEnd()); + } + private static InvalidDataException Bad(string path, string what) => new("the API catalog is malformed: " + path + " should be " + what); @@ -274,10 +296,18 @@ private static string Call(CatalogMember member) /// The icon index straight off the constant fields: name, private-use code point, and the /// literal to paste. The filter matches anywhere in the name, empty shows all. /// - internal IReadOnlyList Icons(string? filter) + internal IReadOnlyList Icons(string? filter) => IconsResult(filter).Lines; + + /// + /// The icon index as a result with a match state, so the CLI can answer a filter that hit + /// nothing with a nonzero exit: "no icon matches" is a mistake worth naming, not a page of + /// near-miss glyphs ending in exit 0 that a script reads as success. + /// + internal CatalogResult IconsResult(string? filter) { CatalogType? icons = types.FirstOrDefault(t => Equal(t.Name, "CuiSharp.Icons")); - if (icons is null) return ["the catalog has no icon constants."]; + if (icons is null) + return CatalogResult.Answer(CatalogMatch.Unknown, "icons", ["the catalog has no icon constants."]); var lines = new List(); foreach (CatalogMember member in icons.Members.Where(m => m.Kind == "constant")) @@ -288,11 +318,24 @@ internal IReadOnlyList Icons(string? filter) : "?"; string literal = member.Value is { Length: > 0 } g && g.Length == 1 ? $"\"\\u{(int)g[0]:X4}\"" - : JsonSerializer.Serialize(member.Value ?? ""); + : JsonString(member.Value ?? ""); lines.Add($"{member.Name,-28} {codepoint} {literal}"); } - return lines.Count > 0 ? lines : [$"no icon matches \"{filter}\". `cui icons` lists them all."]; + return lines.Count > 0 + ? CatalogResult.Answer(CatalogMatch.Exact, filter ?? "icons", lines) + : CatalogResult.Answer(CatalogMatch.Unknown, filter ?? "", [$"no icon matches \"{filter}\". `cui icons` lists them all."]); + } + + /// + /// One JSON string literal, written the same reflection-free way as every other byte of + /// JSON this class emits — the icon fallback is the only string it ever quotes. + /// + private static string JsonString(string value) + { + var buffer = new ArrayBufferWriter(); + using (var writer = new Utf8JsonWriter(buffer)) writer.WriteStringValue(value); + return Encoding.UTF8.GetString(buffer.WrittenSpan); } private List Candidates(string clean) @@ -405,21 +448,42 @@ private CatalogResult(CatalogMatch match, string term, IReadOnlyList lin internal string Render() => string.Join('\n', Lines); + /// + /// The machine-readable answer, written with rather than + /// JsonSerializer: the writer needs no contract resolver, so --json keeps + /// answering in a runtime that has disabled reflection-based serialization, which is the + /// configuration a statically linked, AOT-published host runs under. + /// internal string RenderJson() { - var sb = new StringBuilder("{ \"match\": ") - .Append(JsonSerializer.Serialize(Match.ToString().ToLowerInvariant())) - .Append(", \"term\": ").Append(JsonSerializer.Serialize(Term)) - .Append(", \"lines\": [").Append(string.Join(", ", Lines.Select(s => JsonSerializer.Serialize(s)))) - .Append("], \"suggestions\": [").Append(string.Join(", ", Suggestions.Select(s => JsonSerializer.Serialize(s)))) - .Append("] }"); - return sb.ToString(); + var buffer = new ArrayBufferWriter(); + using (var writer = new Utf8JsonWriter(buffer)) + { + writer.WriteStartObject(); + writer.WriteString("match", Match.ToString().ToLowerInvariant()); + writer.WriteString("term", Term); + WriteArray(writer, "lines", Lines); + WriteArray(writer, "suggestions", Suggestions); + writer.WriteEndObject(); + } + + return Encoding.UTF8.GetString(buffer.WrittenSpan); + + static void WriteArray(Utf8JsonWriter writer, string name, IReadOnlyList values) + { + writer.WriteStartArray(name); + foreach (string value in values) writer.WriteStringValue(value); + writer.WriteEndArray(); + } } internal static CatalogResult Exact(string term, IReadOnlyList lines) => new(CatalogMatch.Exact, term, lines, []); internal static CatalogResult Ambiguous(string term, IReadOnlyList candidates) => new(CatalogMatch.Ambiguous, term, candidates, []); + /// A result whose lines are the whole answer — the icon index needs no suggestions of its own. + internal static CatalogResult Answer(CatalogMatch match, string term, IReadOnlyList lines) => new(match, term, lines, []); + /// /// Unknown is never dead air: the explanation is the answer even when no name is close, /// so the caller learns to re-ask rather than reading silence as "no such API". diff --git a/src/CuiSharp.Tools/Cli.cs b/src/CuiSharp.Tools/Cli.cs index c6427a5..0c16fdb 100644 --- a/src/CuiSharp.Tools/Cli.cs +++ b/src/CuiSharp.Tools/Cli.cs @@ -12,6 +12,11 @@ namespace CuiSharp.Tools; /// headless protocol the framework serves. What you see is the frame the app really draws, with /// its own services, its own data and its own bugs. /// +/// +/// Two commands answer from the API catalog embedded in this assembly — api and +/// icons. They discover no project, build nothing, start no app and load no native +/// library, so they work in any directory, before any app exists. +/// /// /// dotnet cui tree # what the first frame drew, nested /// dotnet cui click Save # click a control, print the frame that reacted @@ -21,6 +26,8 @@ namespace CuiSharp.Tools; /// dotnet cui tree --project app.cs # a file-based app /// dotnet cui tree --app bin/App.exe # a published build, not a rebuild /// dotnet cui tree -- --page=2 # arguments for the app itself +/// dotnet cui api ChartOpts # one declaration, offline, from the embedded catalog +/// dotnet cui icons chart # every icon whose name contains "chart" /// /// internal static class Cli @@ -49,6 +56,13 @@ wait [seconds] keep drawing until a frame marks itself ready (ui.MarkReady) line: wall and cpu milliseconds, frames, fps, and the app's heap, working-set and private bytes + Commands answered offline, from the API catalog inside this tool: + api one declaration: `api ChartOpts`, `api Ui.LineChart`, `api Button`. + An exact answer exits 0; an ambiguous or unknown one names the + qualified or nearest names and exits nonzero. + icons [filter] every icon constant: name, code point, and the literal to paste. + Both take --json for machine-readable output; neither builds, launches or loads anything. + Options: -p, --project the app to run: a directory, a .csproj, or a file-based .cs app. Default: here @@ -73,6 +87,13 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text { try { + // `api` and `icons` come first, before anything touches a project: the question + // they answer ("what is ChartOpts?") is legal in a directory with no app, and the + // answer is the catalog embedded in this assembly — no discovery, no build, no + // child process, no native library. The detection itself reads only argv. + if (TryReadCatalogCommand(args, out CatalogRequest catalog)) + return AnswerCatalog(catalog, output, error); + Options options = Options.Parse(args); if (options.Help) { @@ -120,6 +141,202 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text } } + /// + /// The catalog the CLI answers from, read once from this assembly's own resources. + /// A broken or missing resource is a packaging fault, so it says so once and stays said: + /// reaches 's handler, which prints the + /// sentence and exits 1 rather than crashing on a raw . + /// + private static readonly Lazy EmbeddedCatalog = new(() => + { + try + { + return ApiCatalog.LoadEmbedded(); + } + catch (InvalidDataException broken) + { + throw new ToolException(broken.Message); + } + }); + + /// An offline catalog request: which command, what was asked about, and how to print it. + internal sealed record CatalogRequest(string Command, string Term, bool Json, bool Help); + + /// + /// Recognises api <name> and icons [filter] among the raw arguments. + /// The first positional word decides everything: if it is neither command the call falls + /// through to the normal app-driven flow untouched — every flag complaint this scan + /// noticed stays unvoiced, because the ordinary parser owns those arguments and a + /// dash-prefixed --wait-text value is legal there. Only once the command word + /// proves this is a catalog call are a held-back unknown flag or missing value named. + /// App-scoped flags are accepted and ignored so one wrapper script can pass the same + /// flags to every command. -h/--help ask for usage anywhere; a bare + /// help does so only before the command, because after one it is data — the icon + /// filter of `icons help`, the lookup term of `api help`. A value-taking flag consumes + /// exactly the word would consume, dash or not — the scan's + /// position may never diverge from the parser's, or the command word itself lands in the + /// wrong slot — and complains, catalog-only, when that word is really another flag. The one + /// option whose value the parser judges only at the end — --wait, last occurrence + /// wins — is stored rather than checked where it is read, so a value the caller overwrote + /// is not a mistake here either. + /// + internal static bool TryReadCatalogCommand(string[] args, out CatalogRequest request) + { + request = null!; + string? command = null; + var words = new List(); + bool json = false, help = false; + // The first mistake the scan cannot ignore, held in escrow until the command word + // says whether this is even the scan's business: `tree --wait-text -loading` names a + // legal value in the ordinary flow, so the scan may note the oddity and keep walking, + // but it may only speak for `api` and `icons`. + string? complaint = null; + // The wait the parser ends up judging: it takes every occurrence but checks only the + // surviving value, after the whole line, so the scan keeps that same value instead of + // condemning one the line already replaced. + string? wait = null; + + for (int i = 0; i < args.Length; i++) + { + string arg = args[i]; + // Everything after `--` belongs to an app this command never starts. + if (arg == "--") break; + switch (arg) + { + case "-h" or "--help": + help = true; + break; + // A bare `help` means help only until the command is named; after `api` or + // `icons` it is a word like any other, so `icons help` can find CircleHelp. + case "help" when command is null: + help = true; + break; + case "--json": + json = true; + break; + // Flags that mean nothing to a catalog answer but must not derail one: + // a script that appends `-q` or `--no-build` to every cui call stays one script. + case "-q" or "--quiet" or "-s" or "--stdin" or "--no-build": + break; + case "-p" or "--project" or "--app" or "--framework" or "--frames" + or "--wait" or "--wait-text" or "--wait-timeout": + // Consume exactly what the ordinary parser consumes: its Value() takes + // the word after the flag, dash or not, so `--wait-text --app tree` has + // command `tree` there and must have command `tree` here — a scan whose + // position diverges misclassifies the line and answers a catalog error + // for an ordinary app run. When that consumed word is really the next + // flag (`--frames --json` lost its number), note the mistake; the note is + // voiced only for a catalog command. + if (i + 1 >= args.Length) + { + complaint ??= $"{arg} needs a value."; + } + else + { + // A consumed word that is not a legal value — the next flag, or a + // `--wait-timeout abc` the parser would refuse — is the same class + // of catalog-only complaint: checked with the parser's own validators + // so the sentence matches what it would say for an ordinary command. + string value = args[i + 1]; + // `--wait` is the one option the parser does not judge where it reads + // it: each occurrence overwrites the last and only the surviving value + // is checked, after the line. Keep that value and check it below, so a + // word the caller already replaced is not a mistake here either. + if (arg == "--wait") wait = value; + else complaint ??= value.StartsWith('-') + ? $"{arg} needs a value." + : ValueComplaint(arg, value); + i++; + } + break; + default: + if (arg.StartsWith('-')) + { + // Likewise escrowed: for a non-catalog command the ordinary parser + // is the one that calls this unknown, in its own words. + complaint ??= $"Unknown option \"{arg}\". Use `--` to pass it to the app."; + break; + } + + if (command is null) command = arg; + else words.Add(arg); + break; + } + } + + if (command is not ("api" or "icons")) return false; + // Judged where the parser judges it — after the line, on the surviving value — and + // after whatever the loop itself already found, which is the parser's own precedence. + if (wait is { } kind && !kind.Equals("ready", StringComparison.OrdinalIgnoreCase)) + complaint ??= $"--wait needs \"ready\", not \"{kind}\"."; + if (complaint is { } mistake) throw new ToolException(mistake); + request = new CatalogRequest(command, string.Join(' ', words), json, help); + return true; + } + + /// + /// Why the ordinary parser would refuse this value, in its own words, by calling its own + /// validators — or null when it would take it. The catalog scan owns no second grammar of + /// numbers; it borrows this one. --wait is absent on purpose: the parser checks its + /// kind after the whole line, on the last value, which is where the scan checks it too. + /// + private static string? ValueComplaint(string option, string value) => option switch + { + "--frames" => Check(() => Options.ParseFrames(value)), + "--wait-timeout" => Check(() => Options.ParseWaitTimeout(value)), + _ => null, + }; + + /// + /// Runs one of the parser's validators, turning its refusal into the complaint text — + /// the scan borrows the parser's grammar wholesale, wording included. + /// + private static string? Check(Func validator) + { + try + { + validator(); + return null; + } + catch (ToolException problem) + { + return problem.Message; + } + } + + /// + /// Answers a catalog request from the embedded JSON. The answer is the payload and always + /// goes to stdout — including an unknown or ambiguous one, whose lines are the explanation; + /// the exit code is the signal, so a script never has to merge streams to read a failure. + /// Exact answers exit 0; a filter that hit nothing and a name that is not there exit 1; + /// an api with no term is a usage error and exits 2, the code this CLI already + /// spends on "you asked for nothing". + /// + private static int AnswerCatalog(CatalogRequest request, TextWriter output, TextWriter error) + { + if (request.Help) + { + output.WriteLine(Usage); + return 0; + } + + if (request.Command == "api" && request.Term.Length == 0) + { + error.WriteLine( + "`api` needs a name to look up: `dotnet cui api ChartOpts`, `dotnet cui api Ui.LineChart`, " + + "or `dotnet cui icons` for the glyph list."); + return 2; + } + + ApiCatalog catalog = EmbeddedCatalog.Value; + CatalogResult answer = request.Command == "icons" + ? catalog.IconsResult(request.Term.Length == 0 ? null : request.Term) + : catalog.Query(request.Term); + + output.WriteLine(request.Json ? answer.RenderJson() : answer.Render()); + return answer.IsExact ? 0 : 1; + } + /// /// Draws and waits through everything that must be true before the command runs: the /// --frames draw, then the wait gate. A refused precondition is a real answer with a @@ -469,7 +686,7 @@ internal static Options Parse(string[] args) /// OverflowException at the user for a typo that deserves a sentence, and a negative /// count drew nothing while claiming otherwise. /// - private static int ParseFrames(string value) + internal static int ParseFrames(string value) { if (!int.TryParse(value, NumberStyles.None, CultureInfo.InvariantCulture, out int frames) || frames < 0) throw new ToolException($"--frames needs a count of at least 0, not \"{value}\"."); @@ -482,7 +699,7 @@ private static int ParseFrames(string value) /// a bound anyone could wait by; the ceiling keeps the deadline arithmetic downstream /// finite. Every typo here is an exit=1, not a crash. /// - private static double ParseWaitTimeout(string value) + internal static double ParseWaitTimeout(string value) { if (!double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) || !double.IsFinite(seconds) || seconds <= 0 || seconds > MaxWaitSeconds) diff --git a/src/CuiSharp.Tools/CuiSharp.Tools.csproj b/src/CuiSharp.Tools/CuiSharp.Tools.csproj index 50e5adc..8172568 100644 --- a/src/CuiSharp.Tools/CuiSharp.Tools.csproj +++ b/src/CuiSharp.Tools/CuiSharp.Tools.csproj @@ -29,6 +29,15 @@ + + + + diff --git a/src/CuiSharp/CuiSharp.csproj b/src/CuiSharp/CuiSharp.csproj index a18b00b..af3fc84 100644 --- a/src/CuiSharp/CuiSharp.csproj +++ b/src/CuiSharp/CuiSharp.csproj @@ -111,6 +111,10 @@ --> + + diff --git a/tools/regen.ps1 b/tools/regen.ps1 index cc99177..7e0391f 100644 --- a/tools/regen.ps1 +++ b/tools/regen.ps1 @@ -81,6 +81,9 @@ try { 'src/CuiSharp.Tests/Abi.g.cs' 'src/CuiSharp.Tests/OptionMappings.g.cs' 'skills/cui-dotnet/llms.txt' + # The managed-API catalog is generated too - by the exporter below, from the built + # assembly - so a hand-edited or stale copy fails -NoDiff like stale code. + 'skills/cui-dotnet/api/catalog.json' ) + @($staged | ForEach-Object { 'skills/cui-dotnet/' + $_.To }) function Get-GeneratedHash { @@ -133,6 +136,23 @@ try { & dotnet run (Join-Path $root 'tools/bindgen.cs') -- --self-test if ($LASTEXITCODE -ne 0) { throw 'bindgen contract checks failed' } + # The catalog is generated from the built library, not from the headers: build the core + # first, export from it, and only then build the solution - so the tool's embedded + # resource and the packed skills path see the catalog of the API that was just built. + Write-Host 'export-api: build the core for the catalog' + & dotnet build (Join-Path $root 'src/CuiSharp/CuiSharp.csproj') -c Release -warnaserror + if ($LASTEXITCODE -ne 0) { throw 'core build for the API catalog failed' } + + if ($NoDiff) { + Write-Host 'export-api: --check' + & dotnet run (Join-Path $root 'tools/export-api.cs') -- --check + if ($LASTEXITCODE -ne 0) { throw 'api catalog is stale: regenerate with `dotnet run tools/export-api.cs`' } + } else { + Write-Host 'export-api: write the catalog' + & dotnet run (Join-Path $root 'tools/export-api.cs') + if ($LASTEXITCODE -ne 0) { throw 'api catalog export failed' } + } + Write-Host 'build + test' & dotnet build (Join-Path $root 'CuiSharp.slnx') -c Release -warnaserror if ($LASTEXITCODE -ne 0) { throw 'build failed' } From df1b748e5ce9dbe7aa2264f2351ea072dc13748e Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 17:14:46 +0800 Subject: [PATCH 15/18] Harden tool subprocesses, UTF-8 stdin, and template verification --- skills/cui-dotnet/api/catalog.json | 6 +++-- src/CuiSharp.Tests/ToolArgumentTests.cs | 8 ++++--- src/CuiSharp.Tools/AppLocator.cs | 1 + src/CuiSharp.Tools/Program.cs | 10 ++++++-- tools/export-api.cs | 4 ++-- tools/verify-template.ps1 | 32 ++++++++++++++++++++++++- 6 files changed, 51 insertions(+), 10 deletions(-) diff --git a/skills/cui-dotnet/api/catalog.json b/skills/cui-dotnet/api/catalog.json index 64b1f2c..2c9f3c6 100644 --- a/skills/cui-dotnet/api/catalog.json +++ b/skills/cui-dotnet/api/catalog.json @@ -43,7 +43,7 @@ { "name": "CuiSharp.CodeEditorOpts", "displayName": "CodeEditorOpts", "kind": "struct", "summary": "cui_code_editor_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Marks", "kind": "field", "id": "field|Marks|0|0|TextMark[]?|||hf2c6adf393454d823eb10ac6123eef8069985302b5457007cd9ab114d5819e1c", "signature": "public TextMark[]? Marks", "summary": "ranges to highlight (search results, regex matches), sorted by start" }, { "name": "Autofocus", "kind": "field", "id": "field|Autofocus|0|0|bool|||h09659cd1edc89091c579e01492029e06adf81389533feb3ae65790f5a01be31e", "signature": "public bool Autofocus", "summary": "_Bool autofocus" }, { "name": "NoLineNumbers", "kind": "field", "id": "field|NoLineNumbers|0|0|bool|||hb5cc496b040e6bb46501892acb3b13db7559983e7c6d82801ba2f83cc793203a", "signature": "public bool NoLineNumbers", "summary": "_Bool no_line_numbers" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "UseTabs", "kind": "field", "id": "field|UseTabs|0|0|bool|||he76d71839dc85068e0d8324e400fd58c8444d5abe4ef488a23e57222d8af7178", "signature": "public bool UseTabs", "summary": "indent with tab characters instead of spaces" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "default 320; negative fills the space" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 13" }, { "name": "MarkCount", "kind": "field", "id": "field|MarkCount|0|0|int|||he0762e6e3d6ca8a079b9d863b518cc5bb337abac3fb7998e5089c8856059c47a", "signature": "public int MarkCount", "summary": "int mark_count" }, { "name": "TabSize", "kind": "field", "id": "field|TabSize|0|0|int|||h1fb69a62e48ce09519cd8bb8b90088cf5a2053b0f991052821d6e0a3f3dab47f", "signature": "public int TabSize", "summary": "columns per indentation level, default 4" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "as cui_code_block: \u0022c\u0022, \u0022cpp\u0022, \u0022js\u0022, \u0022ts\u0022, \u0022python\u0022, \u0022rust\u0022, \u0022go\u0022, \u0022json\u0022, \u0022shell\u0022; \u0022text\u0022 for none" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "shown while the text is empty" }] }, { "name": "CuiSharp.CodeEditorResult", "displayName": "CodeEditorResult", "kind": "struct", "summary": "cui_code_editor_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Changed;bool Refused = default;bool Focused = default;int Cursor = default;int Anchor = default;int Line = default;int Column = default;int LineCount = default;int Length = default;int Bracket = default;int BracketMatch = default;int FindMatches = default;int FindIndex = default||h10d37050109b7b0ed6537ab21c05bd44ab3b7bebd67ac63bc68fecca0f07fa70", "signature": "CodeEditorResult(bool Changed, bool Refused = default, bool Focused = default, int Cursor = default, int Anchor = default, int Line = default, int Column = default, int LineCount = default, int Length = default, int Bracket = default, int BracketMatch = default, int FindMatches = default, int FindIndex = default)", "parameters": [{ "name": "Changed", "type": "bool" }, { "name": "Refused", "type": "bool", "default": "default" }, { "name": "Focused", "type": "bool", "default": "default" }, { "name": "Cursor", "type": "int", "default": "default" }, { "name": "Anchor", "type": "int", "default": "default" }, { "name": "Line", "type": "int", "default": "default" }, { "name": "Column", "type": "int", "default": "default" }, { "name": "LineCount", "type": "int", "default": "default" }, { "name": "Length", "type": "int", "default": "default" }, { "name": "Bracket", "type": "int", "default": "default" }, { "name": "BracketMatch", "type": "int", "default": "default" }, { "name": "FindMatches", "type": "int", "default": "default" }, { "name": "FindIndex", "type": "int", "default": "default" }] }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "the text changed this frame" }, { "name": "Focused", "kind": "field", "id": "field|Focused|0|0|bool|||h03e74544391bd5f5b768e54fb7011da1a013b87b3221f57443f738bcc0ae57da", "signature": "public bool Focused", "summary": "the editor or its find bar has the keyboard" }, { "name": "Refused", "kind": "field", "id": "field|Refused|0|0|bool|||hc139b2d3b5ff44a547eedc172b84159ab68ce7aa184d45a0ddff68588c76d436", "signature": "public bool Refused", "summary": "an edit did not fit in the capacity and was dropped" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|int|||haebd09af400cd13b8e6a4d74ff68b178d1ce2cdb19d12950362ae273b212ff68", "signature": "public int Anchor", "summary": "caret and the other end of the selection, byte offsets" }, { "name": "Bracket", "kind": "field", "id": "field|Bracket|0|0|int|||h77d16f8f46588b03aef36d7c7700c16913abeb938081d48c601527ac49676ea8", "signature": "public int Bracket", "summary": "the bracket beside the caret and its partner, byte offsets, or -1" }, { "name": "BracketMatch", "kind": "field", "id": "field|BracketMatch|0|0|int|||hf4bcef73eb750933986b759052d8e30b7b10d167b65548578d889eef0a8d0447", "signature": "public int BracketMatch", "summary": "the bracket beside the caret and its partner, byte offsets, or -1" }, { "name": "Column", "kind": "field", "id": "field|Column|0|0|int|||hb93bf5690ed5508fe10b0f439cd4464aab3f031472de30cfaf0930715854f5a4", "signature": "public int Column", "summary": "the caret, 1 based; columns count tabs to their stop" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|int|||h23aff42ff5d653e4a3b8a654aa17c4d9c160335133193db458a21e242a54d577", "signature": "public int Cursor", "summary": "caret and the other end of the selection, byte offsets" }, { "name": "FindIndex", "kind": "field", "id": "field|FindIndex|0|0|int|||h9901bf02470123f840113bd889b35049d5d57a39c279f06740fad0d72c6b6fae", "signature": "public int FindIndex", "summary": "with the find bar open: matches, and which one is selected (1 based, 0 none)" }, { "name": "FindMatches", "kind": "field", "id": "field|FindMatches|0|0|int|||hc7266e2f6ac242c69af5391be242aaa9b92542b13fe7206e4b7263e39078c2d2", "signature": "public int FindMatches", "summary": "with the find bar open: matches, and which one is selected (1 based, 0 none)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|int|||hef2503a1d0b9fb909698fa12c327675bda30f8b40b00e879e548d3e8332f864d", "signature": "public int Length", "summary": "lines, and bytes of text" }, { "name": "Line", "kind": "field", "id": "field|Line|0|0|int|||h1879f4fdbcfa3a3747d1163cdd353585f2b2bd90bfd45d0dfb258aacbc098d3e", "signature": "public int Line", "summary": "the caret, 1 based; columns count tabs to their stop" }, { "name": "LineCount", "kind": "field", "id": "field|LineCount|0|0|int|||hbaa214fddd02d1ccffe160de438912c4aa7f3470b2479bc2583e4f2d2ebb1485", "signature": "public int LineCount", "summary": "lines, and bytes of text" }] }, { "name": "CuiSharp.CodeOpts", "displayName": "CodeOpts", "kind": "struct", "summary": "cui_code_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "LineNumbers", "kind": "field", "id": "field|LineNumbers|0|0|bool|||hf97d043b6bbb7fd74c036a3d0e462dbeaf266c6bf806c893c89f61f222ab729c", "signature": "public bool LineNumbers", "summary": "_Bool line_numbers" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|bool|||h7922046bd3807eec795aa2981a7e08ccf6af18d5c0f9f9ef7f687eb187ccb398", "signature": "public bool NoHeader", "summary": "no title bar, even with a lang" }, { "name": "MaxHeight", "kind": "field", "id": "field|MaxHeight|0|0|float|||h362fb387f8c873f790106e0085b293b9836b14ef629bd38f56f23e0483ef699f", "signature": "public float MaxHeight", "summary": "scrolls beyond this, default none" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "font size, default 13" }, { "name": "HighlightFrom", "kind": "field", "id": "field|HighlightFrom|0|0|int|||h3f447dcb0743179fec7a2dd4a9ce932f77873c9111e71c1fa0182456ef6a5ad8", "signature": "public int HighlightFrom", "summary": "1 based line range to emphasize" }, { "name": "HighlightTo", "kind": "field", "id": "field|HighlightTo|0|0|int|||h69877e6460a36c5400eb55f0445931950db5a7253630d30f09922f950fd37671", "signature": "public int HighlightTo", "summary": "1 based line range to emphasize" }, { "name": "Lang", "kind": "field", "id": "field|Lang|0|0|string?|||h8fa7b7c8fe2a50b3a95391e856d3b6c823e1a596a3f5d40e9f37c84029dc2357", "signature": "public string? Lang", "summary": "const char * lang" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "e.g. a file name" }] }, - { "name": "CuiSharp.Color", "displayName": "Color", "kind": "struct", "summary": "cui_color. Either four channels or a semantic token that follows the theme.", "members": [{ "name": "WithAlpha", "kind": "method", "id": "method|WithAlpha|0|0|Color|float multiplier||hd703c0157a4137aae6653d3bff5c236019738c6b77d9af6dc9d0622216c274aa", "signature": "Color WithAlpha(float multiplier)", "parameters": [{ "name": "multiplier", "type": "float" }], "summary": "Multiplies the color\u0027s alpha, for a disabled or washed-out variant." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||byte r;byte g;byte b;byte a = 255||hb2121e78947f0a93d18e10dc4600ee2b1aa6e5b3995552e2590e0df80f195aca", "signature": "Color(byte r, byte g, byte b, byte a = 255)", "parameters": [{ "name": "r", "type": "byte" }, { "name": "g", "type": "byte" }, { "name": "b", "type": "byte" }, { "name": "a", "type": "byte", "default": "255" }] }, { "name": "IsToken", "kind": "property", "id": "property|IsToken|0|0|bool||get;|hfe9fb89ba2094af4625f9a23a8c6792c474de7efb997f176a4ebd39e6da47fed", "signature": "bool IsToken { get; }" }, { "name": "A", "kind": "field", "id": "field|A|0|0|byte|||h5f5606c1faa3bde12e471c6d45fbdbbb7b7b13c87a84c6c14640f875f2f6a1a2", "signature": "public readonly byte A" }, { "name": "B", "kind": "field", "id": "field|B|0|0|byte|||hf5ab11f712e47d0a4a2f743383c951d49899ebc92747d616fedc0babd7e745c8", "signature": "public readonly byte B" }, { "name": "G", "kind": "field", "id": "field|G|0|0|byte|||h7d3f01d8808a41c8e556108dd87173de783385b985d8744168b3c4172bd09b35", "signature": "public readonly byte G" }, { "name": "R", "kind": "field", "id": "field|R|0|0|byte|||h985a931c98c551bd094a81b5fe443fa38d6bc2ae6f0d15f34370509fc9dcd391", "signature": "public readonly byte R" }, { "name": "Transparent", "kind": "field", "id": "field|Transparent|1|0|Color|||h41a5ec8d188cdc30049557652b76378086851889c9fa07ab8c0af7306ea12dc7", "signature": "public static readonly Color Transparent" }, { "name": "Accent", "kind": "property", "id": "property|Accent|1|0|Color||get;|h8d69f38a4f15bea2935d1d4fc3628a46cea6ccfef14de994b60ef2d6b48edeaf", "signature": "static Color Accent { get; }" }, { "name": "AccentForeground", "kind": "property", "id": "property|AccentForeground|1|0|Color||get;|h2d4a1f3fb297c595b4064f97f1ea0a76ffded41e218420716307524e3a66e7f8", "signature": "static Color AccentForeground { get; }" }, { "name": "Background", "kind": "property", "id": "property|Background|1|0|Color||get;|he51585877825bba50d9093e9da71b040d9ed6a202aaaeb8575fceea6bb9bda1f", "signature": "static Color Background { get; }" }, { "name": "Border", "kind": "property", "id": "property|Border|1|0|Color||get;|h9873c74b5f65695efeb1a893646ad9674e90d89698fdb81de2afa801815d1cb1", "signature": "static Color Border { get; }" }, { "name": "BorderStrong", "kind": "property", "id": "property|BorderStrong|1|0|Color||get;|hea830f5db3592be34f46c3ec668e30dd7ab1d912414971463ecf0fa27914c0c6", "signature": "static Color BorderStrong { get; }" }, { "name": "Danger", "kind": "property", "id": "property|Danger|1|0|Color||get;|h99cba06ef8d7ea76015c92fb6663ae7505f5e1428aa24cb43e321e5ea6e666d0", "signature": "static Color Danger { get; }" }, { "name": "For", "kind": "method", "id": "method|For|1|0|Color|Tone tone||h4412f9f23c5bd32e18e34c3075655e6fa4a4c5dbf1be06e618ae345b2bd18d4e", "signature": "static Color For(Tone tone)", "parameters": [{ "name": "tone", "type": "Tone" }], "summary": "The theme color a semantic tone stands for, for the primitives that take a Color rather than a Tone (charts, sparklines, custom canvas drawing). Accent and the extra palette tones all resolve to the accent color." }, { "name": "Foreground", "kind": "property", "id": "property|Foreground|1|0|Color||get;|hfccef401e996b9dad2ca2d8fed68a78855a702326883118da37a51295e05eb0c", "signature": "static Color Foreground { get; }" }, { "name": "FromToken", "kind": "method", "id": "method|FromToken|1|0|Color|Token t||h9eafcdf7d2dadd67ddacb8e97905ba6611fd0d1dbee51ffd82593551fb624b1a", "signature": "static Color FromToken(Token t)", "parameters": [{ "name": "t", "type": "Token" }] }, { "name": "Info", "kind": "property", "id": "property|Info|1|0|Color||get;|hfaba701f2c9544d3ff7ad2d1df8f44dd1c689753f32974967d7d9f34dac23345", "signature": "static Color Info { get; }" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|Color|Color a;Color b;float t||he5d58d80e6b12084051425becf17b34e792dd1f4135d5670bc53e90c31e6bf0a", "signature": "static Color Mix(Color a, Color b, float t)", "parameters": [{ "name": "a", "type": "Color" }, { "name": "b", "type": "Color" }, { "name": "t", "type": "float" }], "summary": "Blends two colors: t 0 is a, 1 is b." }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|Color|float lightness;float chroma;float hueDegrees;float alpha = 1f||hf1fc322887d714152ba0c9914ce19ea5bdf45b86c818fcfecd92e03ea6cf4242", "signature": "static Color Oklch(float lightness, float chroma, float hueDegrees, float alpha = 1f)", "parameters": [{ "name": "lightness", "type": "float" }, { "name": "chroma", "type": "float" }, { "name": "hueDegrees", "type": "float" }, { "name": "alpha", "type": "float", "default": "1f" }], "summary": "A color from an OKLCH triple: perceptual lightness 0..1, chroma, hue in degrees." }, { "name": "Rgb", "kind": "method", "id": "method|Rgb|1|0|Color|uint hex||h543e7417bb161fcbb860648cc48c6488fd3fc75b0c1f4ed5e8610f2ded59938e", "signature": "static Color Rgb(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGB(0xRRGGBB)." }, { "name": "Rgba", "kind": "method", "id": "method|Rgba|1|0|Color|uint hex||h87bac9115999efb2b67af0db822c527527a8ff4fe817a430cc6bab981859c081", "signature": "static Color Rgba(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGBA(0xRRGGBBAA)." }, { "name": "Series", "kind": "method", "id": "method|Series|1|0|Color|int n||heb0b07e61cefa3cf19ad9e6211c83a5dda949039dc7113ac2f07028f50aaabc9", "signature": "static Color Series(int n)", "parameters": [{ "name": "n", "type": "int" }], "summary": "CUI_COLOR_SERIES(n): cycles through the six chart colors." }, { "name": "Success", "kind": "property", "id": "property|Success|1|0|Color||get;|h1a7857cace5c8053e4af308c58b784dcca6f74f79d02fe3d2691e3b08d298a06", "signature": "static Color Success { get; }" }, { "name": "Surface", "kind": "property", "id": "property|Surface|1|0|Color||get;|ha5ac90d021d286432973b34f324d49876e3b58e6994a858e997aec71bcf77e0a", "signature": "static Color Surface { get; }" }, { "name": "SurfaceMuted", "kind": "property", "id": "property|SurfaceMuted|1|0|Color||get;|h8100076ef27b6f8037d5fddb5b39bf1aaae44daf458e422e9b71baad8a021627", "signature": "static Color SurfaceMuted { get; }" }, { "name": "SurfaceRaised", "kind": "property", "id": "property|SurfaceRaised|1|0|Color||get;|h956d3794784a39d0172a10e9452ad425828960b572c73832176094c26468677a", "signature": "static Color SurfaceRaised { get; }" }, { "name": "TextMuted", "kind": "property", "id": "property|TextMuted|1|0|Color||get;|hd8390cf8a32b88e88ff1086ab26309c2b21d1a4c24e54c5c8c0c6c0d63637f98", "signature": "static Color TextMuted { get; }" }, { "name": "TextSecondary", "kind": "property", "id": "property|TextSecondary|1|0|Color||get;|hbb3e2f4e83ec7dd25e89f1fc5ce197f4710e9b590d1b5e9e7208985698669558", "signature": "static Color TextSecondary { get; }" }, { "name": "Warning", "kind": "property", "id": "property|Warning|1|0|Color||get;|ha5291a19d9e6bda4a378d3459d58dea1ae05c73025987e7c6fa0ebce10a50421", "signature": "static Color Warning { get; }" }] }, + { "name": "CuiSharp.Color", "displayName": "Color", "kind": "struct", "summary": "cui_color. Either four channels or a semantic token that follows the theme.", "members": [{ "name": "WithAlpha", "kind": "method", "id": "method|WithAlpha|0|0|Color|float multiplier||hd703c0157a4137aae6653d3bff5c236019738c6b77d9af6dc9d0622216c274aa", "signature": "Color WithAlpha(float multiplier)", "parameters": [{ "name": "multiplier", "type": "float" }], "summary": "Multiplies the color\u0027s alpha, for a disabled or washed-out variant." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||byte r;byte g;byte b;byte a = 255||hb2121e78947f0a93d18e10dc4600ee2b1aa6e5b3995552e2590e0df80f195aca", "signature": "Color(byte r, byte g, byte b, byte a = 255)", "parameters": [{ "name": "r", "type": "byte" }, { "name": "g", "type": "byte" }, { "name": "b", "type": "byte" }, { "name": "a", "type": "byte", "default": "255" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|Color other||h5d0288e9ccfbd1184e3ecb193be0708fdc3eaf511e60bd843af50eedae64c964", "signature": "bool Equals(Color other)", "parameters": [{ "name": "other", "type": "Color" }], "summary": "The same four channels, or the same token. A token compares equal to itself and not to the channels it resolves to, because a token is what a widget draws with." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "IsToken", "kind": "property", "id": "property|IsToken|0|0|bool||get;|hfe9fb89ba2094af4625f9a23a8c6792c474de7efb997f176a4ebd39e6da47fed", "signature": "bool IsToken { get; }" }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "A", "kind": "field", "id": "field|A|0|0|byte|||h5f5606c1faa3bde12e471c6d45fbdbbb7b7b13c87a84c6c14640f875f2f6a1a2", "signature": "public readonly byte A" }, { "name": "B", "kind": "field", "id": "field|B|0|0|byte|||hf5ab11f712e47d0a4a2f743383c951d49899ebc92747d616fedc0babd7e745c8", "signature": "public readonly byte B" }, { "name": "G", "kind": "field", "id": "field|G|0|0|byte|||h7d3f01d8808a41c8e556108dd87173de783385b985d8744168b3c4172bd09b35", "signature": "public readonly byte G" }, { "name": "R", "kind": "field", "id": "field|R|0|0|byte|||h985a931c98c551bd094a81b5fe443fa38d6bc2ae6f0d15f34370509fc9dcd391", "signature": "public readonly byte R" }, { "name": "Transparent", "kind": "field", "id": "field|Transparent|1|0|Color|||h41a5ec8d188cdc30049557652b76378086851889c9fa07ab8c0af7306ea12dc7", "signature": "public static readonly Color Transparent" }, { "name": "Accent", "kind": "property", "id": "property|Accent|1|0|Color||get;|h8d69f38a4f15bea2935d1d4fc3628a46cea6ccfef14de994b60ef2d6b48edeaf", "signature": "static Color Accent { get; }" }, { "name": "AccentForeground", "kind": "property", "id": "property|AccentForeground|1|0|Color||get;|h2d4a1f3fb297c595b4064f97f1ea0a76ffded41e218420716307524e3a66e7f8", "signature": "static Color AccentForeground { get; }" }, { "name": "Background", "kind": "property", "id": "property|Background|1|0|Color||get;|he51585877825bba50d9093e9da71b040d9ed6a202aaaeb8575fceea6bb9bda1f", "signature": "static Color Background { get; }" }, { "name": "Border", "kind": "property", "id": "property|Border|1|0|Color||get;|h9873c74b5f65695efeb1a893646ad9674e90d89698fdb81de2afa801815d1cb1", "signature": "static Color Border { get; }" }, { "name": "BorderStrong", "kind": "property", "id": "property|BorderStrong|1|0|Color||get;|hea830f5db3592be34f46c3ec668e30dd7ab1d912414971463ecf0fa27914c0c6", "signature": "static Color BorderStrong { get; }" }, { "name": "Danger", "kind": "property", "id": "property|Danger|1|0|Color||get;|h99cba06ef8d7ea76015c92fb6663ae7505f5e1428aa24cb43e321e5ea6e666d0", "signature": "static Color Danger { get; }" }, { "name": "For", "kind": "method", "id": "method|For|1|0|Color|Tone tone||h4412f9f23c5bd32e18e34c3075655e6fa4a4c5dbf1be06e618ae345b2bd18d4e", "signature": "static Color For(Tone tone)", "parameters": [{ "name": "tone", "type": "Tone" }], "summary": "The theme color a semantic tone stands for, for the primitives that take a Color rather than a Tone (charts, sparklines, custom canvas drawing). Accent and the extra palette tones all resolve to the accent color." }, { "name": "Foreground", "kind": "property", "id": "property|Foreground|1|0|Color||get;|hfccef401e996b9dad2ca2d8fed68a78855a702326883118da37a51295e05eb0c", "signature": "static Color Foreground { get; }" }, { "name": "FromToken", "kind": "method", "id": "method|FromToken|1|0|Color|Token t||h9eafcdf7d2dadd67ddacb8e97905ba6611fd0d1dbee51ffd82593551fb624b1a", "signature": "static Color FromToken(Token t)", "parameters": [{ "name": "t", "type": "Token" }] }, { "name": "Info", "kind": "property", "id": "property|Info|1|0|Color||get;|hfaba701f2c9544d3ff7ad2d1df8f44dd1c689753f32974967d7d9f34dac23345", "signature": "static Color Info { get; }" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|Color|Color a;Color b;float t||he5d58d80e6b12084051425becf17b34e792dd1f4135d5670bc53e90c31e6bf0a", "signature": "static Color Mix(Color a, Color b, float t)", "parameters": [{ "name": "a", "type": "Color" }, { "name": "b", "type": "Color" }, { "name": "t", "type": "float" }], "summary": "Blends two colors: t 0 is a, 1 is b." }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|Color|float lightness;float chroma;float hueDegrees;float alpha = 1f||hf1fc322887d714152ba0c9914ce19ea5bdf45b86c818fcfecd92e03ea6cf4242", "signature": "static Color Oklch(float lightness, float chroma, float hueDegrees, float alpha = 1f)", "parameters": [{ "name": "lightness", "type": "float" }, { "name": "chroma", "type": "float" }, { "name": "hueDegrees", "type": "float" }, { "name": "alpha", "type": "float", "default": "1f" }], "summary": "A color from an OKLCH triple: perceptual lightness 0..1, chroma, hue in degrees." }, { "name": "Rgb", "kind": "method", "id": "method|Rgb|1|0|Color|uint hex||h543e7417bb161fcbb860648cc48c6488fd3fc75b0c1f4ed5e8610f2ded59938e", "signature": "static Color Rgb(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGB(0xRRGGBB)." }, { "name": "Rgba", "kind": "method", "id": "method|Rgba|1|0|Color|uint hex||h87bac9115999efb2b67af0db822c527527a8ff4fe817a430cc6bab981859c081", "signature": "static Color Rgba(uint hex)", "parameters": [{ "name": "hex", "type": "uint" }], "summary": "CUI_RGBA(0xRRGGBBAA)." }, { "name": "Series", "kind": "method", "id": "method|Series|1|0|Color|int n||heb0b07e61cefa3cf19ad9e6211c83a5dda949039dc7113ac2f07028f50aaabc9", "signature": "static Color Series(int n)", "parameters": [{ "name": "n", "type": "int" }], "summary": "CUI_COLOR_SERIES(n): cycles through the six chart colors." }, { "name": "Success", "kind": "property", "id": "property|Success|1|0|Color||get;|h1a7857cace5c8053e4af308c58b784dcca6f74f79d02fe3d2691e3b08d298a06", "signature": "static Color Success { get; }" }, { "name": "Surface", "kind": "property", "id": "property|Surface|1|0|Color||get;|ha5ac90d021d286432973b34f324d49876e3b58e6994a858e997aec71bcf77e0a", "signature": "static Color Surface { get; }" }, { "name": "SurfaceMuted", "kind": "property", "id": "property|SurfaceMuted|1|0|Color||get;|h8100076ef27b6f8037d5fddb5b39bf1aaae44daf458e422e9b71baad8a021627", "signature": "static Color SurfaceMuted { get; }" }, { "name": "SurfaceRaised", "kind": "property", "id": "property|SurfaceRaised|1|0|Color||get;|h956d3794784a39d0172a10e9452ad425828960b572c73832176094c26468677a", "signature": "static Color SurfaceRaised { get; }" }, { "name": "TextMuted", "kind": "property", "id": "property|TextMuted|1|0|Color||get;|hd8390cf8a32b88e88ff1086ab26309c2b21d1a4c24e54c5c8c0c6c0d63637f98", "signature": "static Color TextMuted { get; }" }, { "name": "TextSecondary", "kind": "property", "id": "property|TextSecondary|1|0|Color||get;|hbb3e2f4e83ec7dd25e89f1fc5ce197f4710e9b590d1b5e9e7208985698669558", "signature": "static Color TextSecondary { get; }" }, { "name": "Warning", "kind": "property", "id": "property|Warning|1|0|Color||get;|ha5291a19d9e6bda4a378d3459d58dea1ae05c73025987e7c6fa0ebce10a50421", "signature": "static Color Warning { get; }" }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|Color left;Color right||hebc2849fede2e4fe5539e9aa3c9f2fba9a5d90180e268e5719934267566ffc92", "signature": "static bool operator !=(Color left, Color right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "Color" }, { "name": "right", "type": "Color" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|Color left;Color right||h3611153c5abbd3f552dd55727f6a9e29b6d288ce6c7951410cd8400e97ddacff", "signature": "static bool operator ==(Color left, Color right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "Color" }, { "name": "right", "type": "Color" }] }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()", "summary": "#rrggbb, the token\u0027s name, or #rrggbbaa \u2014 whichever says the colour in a debugger or a failed assertion most usefully." }] }, { "name": "CuiSharp.Command", "displayName": "Command", "kind": "struct", "summary": "cui_command. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Title;string? Icon = null;string? Group = null;string? Shortcut = null||h6283c494eb865a4501b0d81cc6c67eea93f31757af5ee76334221efaf45e517f", "signature": "Command(string? Title, string? Icon = null, string? Group = null, string? Shortcut = null)", "parameters": [{ "name": "Title", "type": "string?" }, { "name": "Icon", "type": "string?", "default": "null" }, { "name": "Group", "type": "string?", "default": "null" }, { "name": "Shortcut", "type": "string?", "default": "null" }] }, { "name": "Group", "kind": "field", "id": "field|Group|0|0|string?|||hf3da4970c81056945d7238681c51ca4ab28004c0ca941fabfe885256c6388d9b", "signature": "public string? Group", "summary": "const char * group" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }, { "name": "Shortcut", "kind": "field", "id": "field|Shortcut|0|0|string?|||hb24cee523e8070471058522244148c9ff58dd158ff50852f7a6257dc7fcab350", "signature": "public string? Shortcut", "summary": "const char * shortcut" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|string?|||h93a8edaa93b16842fe0ac6654a4057aba157dadc71904a5f698e3e310fc21f31", "signature": "public string? Title", "summary": "const char * title" }] }, { "name": "CuiSharp.CommentEvents", "displayName": "CommentEvents", "kind": "enum", "summary": "CUI_COMMENT_LIKE", "members": [{ "name": "Like", "kind": "enum value", "id": "enum value|Like|1|0|||1|h87cdacbf5b376ea5724eecb6ec0bc577e007cc2c6141407853fe1d6c2c70038b", "signature": "Like = 1", "value": "1" }, { "name": "None", "kind": "enum value", "id": "enum value|None|1|0|||0|h9e4e72abf0eaa3b853206f4d9ea0b0faabef40a12ba47974d4328c3a5bbf4faa", "signature": "None = 0", "value": "0" }, { "name": "Reply", "kind": "enum value", "id": "enum value|Reply|1|0|||2|h3390298ec50eb933c27c348b2dd6fd432aab04066fd68af15b17c8b8fc243129", "signature": "Reply = 2", "value": "2" }] }, { "name": "CuiSharp.CommentOpts", "displayName": "CommentOpts", "kind": "struct", "summary": "cui_comment_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Edited", "kind": "field", "id": "field|Edited|0|0|bool|||he72494a4b154ed9e062a25161fb063fdcd50128995f66884e73c7d4fbe4e7b88", "signature": "public bool Edited", "summary": "_Bool edited" }, { "name": "Depth", "kind": "field", "id": "field|Depth|0|0|int|||h5c000330acd96a811d204190bc527bc04dc1fb3eb86013885f00fa4eab3a4544", "signature": "public int Depth", "summary": "int depth" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|string?|||he7e7c071afd35c021d23c003aca00c74fdf6fc42e693819ce02b70951ea38c8d", "signature": "public string? Badge", "summary": "const char * badge" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|string?|||h3fa6df975c274c56979003cf790a67367077eb0ba02d23dac030823b376828bc", "signature": "public string? Time", "summary": "const char * time" }] }, @@ -595,6 +595,7 @@ { "name": "CuiSharp.Series", "displayName": "Series", "kind": "struct", "summary": "cui_series. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Name;float[]? Values = null;int Count = default;Color Color = default||h9a61f1f33b52068aa9ce296dda6a5add41bce025de6a0a5bd4185bd6709f3a55", "signature": "Series(string? Name, float[]? Values = null, int Count = default, Color Color = default)", "parameters": [{ "name": "Name", "type": "string?" }, { "name": "Values", "type": "float[]?", "default": "null" }, { "name": "Count", "type": "int", "default": "default" }, { "name": "Color", "type": "Color", "default": "default" }] }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default: series palette" }, { "name": "Values", "kind": "field", "id": "field|Values|0|0|float[]?|||h2297887dc39e194c11ed11a1bc7d673508c8c381e7f2c43c6669bc8a49edec45", "signature": "public float[]? Values", "summary": "const float * values" }, { "name": "Count", "kind": "field", "id": "field|Count|0|0|int|||hc275cef54f50cf3f56b3edd59bd99c83cfa813a4286599b3d70fc99d7cb42067", "signature": "public int Count", "summary": "int count" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|string?|||hcbdb244d52a3792efd9959d43171bf3259e059aed2be3877936b4e392b4df7e7", "signature": "public string? Name", "summary": "const char * name" }] }, { "name": "CuiSharp.SeriesDecimator", "displayName": "SeriesDecimator", "kind": "static class", "summary": "Reduces a long series to something a chart can draw in real time. A chart is a few hundred pixels wide, so points beyond roughly two per pixel cannot be seen \u2014 but they still cost geometry. This collapses each bucket of consecutive samples into its minimum and its maximum, in the order they occurred, which keeps spikes and gaps that plain averaging would erase. That is what financial and monitoring charts do. Copy-based and allocation-free: pass a destination span and reuse it every frame. See RequiredCapacity.", "members": [{ "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|float[]|ReadOnlySpan\u003Cfloat\u003E source;int buckets||h57be39ba7b62d04901227ad335a715cdc65b0e15d7aca2281d6671d35b6aabab", "signature": "static float[] Decimate(ReadOnlySpan\u003Cfloat\u003E source, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Convenience overload for callers that would rather not size a buffer. Allocates; prefer the span overload inside a frame." }, { "name": "Decimate", "kind": "method", "id": "method|Decimate|1|0|int|ReadOnlySpan\u003Cfloat\u003E source;Span\u003Cfloat\u003E destination;int buckets||h33b46cde5ca131f2feaa537df35b0d4942a589525ab6a83a0dd11cc2aafe289d", "signature": "static int Decimate(ReadOnlySpan\u003Cfloat\u003E source, Span\u003Cfloat\u003E destination, int buckets)", "parameters": [{ "name": "source", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "destination", "type": "Span\u003Cfloat\u003E" }, { "name": "buckets", "type": "int" }], "summary": "Decimates source into destination. Returns the number of points written, which is 0, source.Length when it already fits, or an even number up to buckets * 2." }, { "name": "RequiredCapacity", "kind": "method", "id": "method|RequiredCapacity|1|0|int|int buckets||h0ba19241dfd2882418a4df437ca414de20707e5ad3098dbd9ac046454f14832e", "signature": "static int RequiredCapacity(int buckets)", "parameters": [{ "name": "buckets", "type": "int" }], "summary": "Points written at most for a given bucket count." }] }, { "name": "CuiSharp.Severity", "displayName": "Severity", "kind": "enum", "summary": "cui_severity", "members": [{ "name": "Error", "kind": "enum value", "id": "enum value|Error|1|0|||0|h1be74ca9b09430ce431ffab022c61f7d490899907fffc473c0d4263ea397cf72", "signature": "Error = 0", "value": "0" }, { "name": "Hint", "kind": "enum value", "id": "enum value|Hint|1|0|||3|h8d01460ad77a1547aaf15f014ccfbafe2609035a1d0f145ad03c97bda2143974", "signature": "Hint = 3", "value": "3" }, { "name": "Info", "kind": "enum value", "id": "enum value|Info|1|0|||2|h9d07ea1e38d6abe142845630dc2f28ea265d47cf4ff8de68a0fe4011916186d3", "signature": "Info = 2", "value": "2" }, { "name": "Warning", "kind": "enum value", "id": "enum value|Warning|1|0|||1|h3699e894f07e195e49680b995c40992a452b1434348b9c7a1704f55611bae132", "signature": "Warning = 1", "value": "1" }] }, + { "name": "CuiSharp.Shadow", "displayName": "Shadow", "kind": "struct", "summary": "One shadow layer of the theme: the box-shadow triple plus its alpha.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float y;float blur;float spread = default;float alpha = 1f||h52586bda9a7b6e43eb67e9fcd00215cb99e10171217f542e0ff89d913c4d1bbb", "signature": "Shadow(float y, float blur, float spread = default, float alpha = 1f)", "parameters": [{ "name": "y", "type": "float" }, { "name": "blur", "type": "float" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "alpha", "type": "float", "default": "1f" }] }, { "name": "Alpha", "kind": "field", "id": "field|Alpha|0|0|float|||h4db41205ef0fe741b6dc8610469847b3d2e04d6d68fa7bf65f40d9c6ac4e5662", "signature": "public readonly float Alpha", "summary": "Opacity, 0 to 1." }, { "name": "Blur", "kind": "field", "id": "field|Blur|0|0|float|||h1b638360fc5addb2a6f1a4378e3f53cc25a8208f0524d1b5ce8bca9a1bfd022a", "signature": "public readonly float Blur", "summary": "Blur radius in points." }, { "name": "Spread", "kind": "field", "id": "field|Spread|0|0|float|||hb95f7114db781357f8f5fcb0caf37326817cf15b5ffd81be52bb983b2ba3e221", "signature": "public readonly float Spread", "summary": "Spread in points; negative pulls the shadow in at the sides." }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||h69d39d9a6029300bf6f486747fb3a60594fa57563f1d4c360b012a1343b06361", "signature": "public readonly float Y", "summary": "Vertical offset in points; positive casts downward." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, { "name": "CuiSharp.SheetOpts", "displayName": "SheetOpts", "kind": "struct", "summary": "cui_sheet_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Side", "kind": "field", "id": "field|Side|0|0|Side|||h246cd6630b9e5173ef64270ae4793d84e4ae57c4170b390ddf3234197dd10321", "signature": "public Side Side", "summary": "cui_side side" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float size" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|string?|||he31fdab720a891b12b69abe8267791cc6b93ee9c503db7db243823da82f3928d", "signature": "public string? Description", "summary": "const char * description" }] }, { "name": "CuiSharp.ShortcutRecorderOpts", "displayName": "ShortcutRecorderOpts", "kind": "struct", "summary": "cui_shortcut_recorder_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, { "name": "CuiSharp.Side", "displayName": "Side", "kind": "enum", "summary": "cui_side", "members": [{ "name": "Bottom", "kind": "enum value", "id": "enum value|Bottom|1|0|||2|h0862538babcf2a086a256d007852bc8a43bf86d313ddc23c41ade284f27b2a9e", "signature": "Bottom = 2", "value": "2" }, { "name": "Left", "kind": "enum value", "id": "enum value|Left|1|0|||1|hf671bc6932922aef2ac1a4125ae2532931f30a2d397b0f0ca21018c00c6c84da", "signature": "Left = 1", "value": "1" }, { "name": "Right", "kind": "enum value", "id": "enum value|Right|1|0|||0|h08d50cb63b6adb063b6c50afa635847a93edcdfbcf063d547d6fca799afbb6d0", "signature": "Right = 0", "value": "0" }, { "name": "Top", "kind": "enum value", "id": "enum value|Top|1|0|||3|hb1ed46e3dd5f59ea3d0b551cf80d64f49880e3f6dd1eaef702171ed9a19ec755", "signature": "Top = 3", "value": "3" }] }, @@ -641,6 +642,7 @@ { "name": "CuiSharp.TextOpts", "displayName": "TextOpts", "kind": "struct", "summary": "cui_text_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||float size = default;Color color = default||h00998a1e0fe432a66682bf0f54ca0243d94687307cb0c24b1559ac8c05b36d0a", "signature": "TextOpts(float size = default, Color color = default)", "parameters": [{ "name": "size", "type": "float", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "Text options with the two fields a call site reaches for most: ui.Text(\u0022Live\u0022, new(size: 12, color: Color.TextSecondary)). Every other field keeps its native default, exactly as the equivalent object initializer." }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "default foreground" }, { "name": "Direction", "kind": "field", "id": "field|Direction|0|0|Direction|||h894fea11f583bab4f597860149502f9c496b27b2c30b238beaf6828e963d3be0", "signature": "public Direction Direction", "summary": "inherited; AUTO examines this text" }, { "name": "Font", "kind": "field", "id": "field|Font|0|0|Font|||hcd4f0ca548108d455246def0ca532ad670cb744cdc6615008e2a930bc47ababc", "signature": "public Font Font", "summary": "default CUI_FONT_BODY (0)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align align" }, { "name": "NoWrap", "kind": "field", "id": "field|NoWrap|0|0|bool|||hedd425991122684c109be1619269b4c271ddd90b9731a6baf6c7ac0e19b21ab6", "signature": "public bool NoWrap", "summary": "single line, ellipsis when it does not fit" }, { "name": "Selectable", "kind": "field", "id": "field|Selectable|0|0|bool|||h1a73ba6030aa83f21295dd2f784fe3b67bc0f00f1e6159545865f03b1c0cb4a4", "signature": "public bool Selectable", "summary": "reserved" }, { "name": "Tabular", "kind": "field", "id": "field|Tabular|0|0|bool|||h8a172f3b677c83acfc294103bfd5e56cf751642ac5f8f4f45ea2219e3eaff000", "signature": "public bool Tabular", "summary": "tabular numbers" }, { "name": "LineHeight", "kind": "field", "id": "field|LineHeight|0|0|float|||hd04f8c37288bfa75d1784f32ad03a4f0296751d116d20c7a399cdba4f46d572d", "signature": "public float LineHeight", "summary": "multiplier, default 1.45" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "default theme text_body" }] }, { "name": "CuiSharp.TextureFormat", "displayName": "TextureFormat", "kind": "enum", "summary": "cui_texture_format", "members": [{ "name": "R8", "kind": "enum value", "id": "enum value|R8|1|0|||1|hdd8be0dbf2a049b003e11447885b2e0d5ae1de58fd464162f4620db2ed01680b", "signature": "R8 = 1", "value": "1" }, { "name": "Rgba8", "kind": "enum value", "id": "enum value|Rgba8|1|0|||4|h8352b01d9e8e33271e076f18d36014030f5f1b09a0f58594d44660e4b691215c", "signature": "Rgba8 = 4", "value": "4" }] }, { "name": "CuiSharp.Theme", "displayName": "Theme", "kind": "enum", "summary": "cui_theme_mode", "members": [{ "name": "Dark", "kind": "enum value", "id": "enum value|Dark|1|0|||1|h1bb1fceb859fee3f48eb51b0b9088420db8d84887553aee0a6b4939b01589d5c", "signature": "Dark = 1", "value": "1" }, { "name": "Light", "kind": "enum value", "id": "enum value|Light|1|0|||0|h9ea9168c351f3ca9162554dd3570ab1f3235da7717acdf1017c007eda5943a2d", "signature": "Light = 0", "value": "0" }] }, + { "name": "CuiSharp.ThemeStyle", "displayName": "ThemeStyle", "kind": "ref struct", "summary": "CUI\u0027s live design tokens, as Style hands them over: the radii and heights every control and surface is drawn with, the text and heading scale, the motion multiplier and the palette itself.", "members": [{ "name": "Item", "kind": "property", "id": "property|Item|0|0|Color||get;set;|h7891e2f80a13f3058666868326b76b31d2f1244e3710ce06876cb1c17b362e9f", "signature": "Color Item { get; set; }" }, { "name": "ToneInfo", "kind": "property", "id": "property|ToneInfo|0|0|Color||get;set;|hdfbb288b8c6d0dd509a3290b86ecc18c90451321adb81375a98ee374dd1a2ac6", "signature": "Color ToneInfo { get; set; }", "summary": "The colour Info is drawn with \u2014 the theme\u0027s tone_sky. Default is the light/dark sky blue." }, { "name": "ToneRose", "kind": "property", "id": "property|ToneRose|0|0|Color||get;set;|h9a3e9acdf94ed12dc0d5ddeebed6bdc72fcffb971011fb744a2edde3a413cb03", "signature": "Color ToneRose { get; set; }", "summary": "The colour Rose is drawn with \u2014 the theme\u0027s tone_orchid, which is the field that name resolves to upstream." }, { "name": "ToneTeal", "kind": "property", "id": "property|ToneTeal|0|0|Color||get;set;|heaa55bf03d5a1b9ce8d647f0cacc0a3f146c6402204563ee15202bddf1558476", "signature": "Color ToneTeal { get; set; }", "summary": "The colour Teal is drawn with \u2014 the theme\u0027s tone_teal." }, { "name": "ToneViolet", "kind": "property", "id": "property|ToneViolet|0|0|Color||get;set;|h1c1cbee4546064dbaa772f010c257a2807ab8125305b2e6528dfa1faf8bfab92", "signature": "Color ToneViolet { get; set; }", "summary": "The colour Violet is drawn with \u2014 the theme\u0027s tone_violet." }, { "name": "GetShadow", "kind": "method", "id": "method|GetShadow|0|0|Shadow|Elevation elevation;int layer = default||h4a57917b7f746a4c9efde76642a66a224cf23f7a938615cde2d17d3cd8b0d03a", "signature": "Shadow GetShadow(Elevation elevation, int layer = default)", "parameters": [{ "name": "elevation", "type": "Elevation" }, { "name": "layer", "type": "int", "default": "default" }], "summary": "One of the two shadow layers an elevation is drawn with, where layer is 0 (the contact shadow) or 1 (the cast)." }, { "name": "ControlLg", "kind": "property", "id": "property|ControlLg|0|0|float||get;set;|h683d522f5d3a920c808dc8806ac0d8c828c3fdff5e20cfb3250dc5d957fdaac9", "signature": "float ControlLg { get; set; }", "summary": "The height of a Lg control, in points. Default 44." }, { "name": "ControlMd", "kind": "property", "id": "property|ControlMd|0|0|float||get;set;|h915325ea163f4fae6d71a8933b25b933af0b505eac87ec382e57f4716d87c32b", "signature": "float ControlMd { get; set; }", "summary": "The height of a default control, in points. Default 36." }, { "name": "ControlSm", "kind": "property", "id": "property|ControlSm|0|0|float||get;set;|ha47d42464940f08b843ba0364414ab80d2843db2cdd22ef804b1bb26b6d79d3a", "signature": "float ControlSm { get; set; }", "summary": "The height of a Sm control, in points. Default 30." }, { "name": "FontScale", "kind": "property", "id": "property|FontScale|0|0|float||get;set;|h7c8db5d16e95ae10c963c8eaa222b7b1fa35c1fdf595ce731767d6243aca8375", "signature": "float FontScale { get; set; }", "summary": "Every text size multiplied at once \u2014 the dial behind a user\u0027s \u0022text size\u0022 preference. Default 1." }, { "name": "GetHeading", "kind": "method", "id": "method|GetHeading|0|0|float|int level||hef2001f8f550ddeb0c6bdb19996b3cd1a74684aa79f7e8e11aabe55222f56c1a", "signature": "float GetHeading(int level)", "parameters": [{ "name": "level", "type": "int" }], "summary": "The size of a heading level, 1 to 4, in points. Defaults 36, 28, 22 and 17." }, { "name": "Motion", "kind": "property", "id": "property|Motion|0|0|float||get;set;|hc5e078238a95c063200ac23706b224d6cd2317d5ecd91eb1570096f2b035a3ef", "signature": "float Motion { get; set; }", "summary": "How much the theme animates: 1 is normal, 0 is reduced motion, above 1 is slow motion." }, { "name": "RadiusControl", "kind": "property", "id": "property|RadiusControl|0|0|float||get;set;|h680ec0817a9d99d2b18382d17e62cdb4cacf801ac61f71cee6bbf5011f553bf9", "signature": "float RadiusControl { get; set; }", "summary": "The corner radius of buttons, inputs and other controls, in points. Default 10." }, { "name": "RadiusPanel", "kind": "property", "id": "property|RadiusPanel|0|0|float||get;set;|h144ad42e605fb3f6ab46b03ea409f37ba672fc109aaccad2767dcb084ecbd566", "signature": "float RadiusPanel { get; set; }", "summary": "The corner radius of menus, popovers and nested panels, in points. Default 14." }, { "name": "RadiusSurface", "kind": "property", "id": "property|RadiusSurface|0|0|float||get;set;|h8519eed348504fa0dce7ac343a9d3bcceac0d67be7659aac1d544215c400fd9c", "signature": "float RadiusSurface { get; set; }", "summary": "The corner radius of cards, dialogs and sheets, in points. Default 18." }, { "name": "TextBody", "kind": "property", "id": "property|TextBody|0|0|float||get;set;|hf7b89bb8d803a2261a9feaafec9d8ba89c9c0cfb02f0e52b2389aba9c8ddb94e", "signature": "float TextBody { get; set; }", "summary": "The body text size, in points. Default 13." }, { "name": "TextLg", "kind": "property", "id": "property|TextLg|0|0|float||get;set;|h8e29419dcb396fca94217a653bfc1efbe9903fb09fe3d1ee15793e578d3cbec4", "signature": "float TextLg { get; set; }", "summary": "The large text size, in points. Default 15." }, { "name": "TextSm", "kind": "property", "id": "property|TextSm|0|0|float||get;set;|h5c8383f5d36dc36412cdc78464ec1b9fe3fe28e7814b54acc2b3a5c4480b1be5", "signature": "float TextSm { get; set; }", "summary": "The secondary text size, for subtext and labels, in points. Default 12." }, { "name": "TextXs", "kind": "property", "id": "property|TextXs|0|0|float||get;set;|hc4cfed325851c0f205f939fc952fb12046900e0b577e2e1992a90275e48409d2", "signature": "float TextXs { get; set; }", "summary": "The smallest text size, for captions and dense metadata, in points. Default 11." }, { "name": "SetHeading", "kind": "method", "id": "method|SetHeading|0|0|void|int level;float points||had08dcf078148b76162dfdd5ae89d6af58717c5542721cd25400edcdc86ed87c", "signature": "void SetHeading(int level, float points)", "parameters": [{ "name": "level", "type": "int" }, { "name": "points", "type": "float" }], "summary": "Sets one heading level\u0027s size in points. See GetHeading." }, { "name": "SetShadow", "kind": "method", "id": "method|SetShadow|0|0|void|Elevation elevation;int layer;Shadow shadow||h4eea98a60ceee94e1d245dba0f3f3b4990ff8fc841d27a2c2cad658ee723d94b", "signature": "void SetShadow(Elevation elevation, int layer, Shadow shadow)", "parameters": [{ "name": "elevation", "type": "Elevation" }, { "name": "layer", "type": "int" }, { "name": "shadow", "type": "Shadow" }], "summary": "Sets one of the two shadow layers an elevation is drawn with. See GetShadow." }] }, { "name": "CuiSharp.TickerItem", "displayName": "TickerItem", "kind": "struct", "summary": "cui_ticker_item. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||string? Label;string? Value = null;float Delta = default;bool LowerIsBetter = default||h792dce0cb71de14ba3388589db1ef9d58ad44289c7edd5f3771ee88210200a37", "signature": "TickerItem(string? Label, string? Value = null, float Delta = default, bool LowerIsBetter = default)", "parameters": [{ "name": "Label", "type": "string?" }, { "name": "Value", "type": "string?", "default": "null" }, { "name": "Delta", "type": "float", "default": "default" }, { "name": "LowerIsBetter", "type": "bool", "default": "default" }] }, { "name": "LowerIsBetter", "kind": "field", "id": "field|LowerIsBetter|0|0|bool|||hdbb63017a214eb7f7b2818c5485cd80ae1d87f9c8fd20fc1e56e32d63eec76ee", "signature": "public bool LowerIsBetter", "summary": "a fall is good: shown green" }, { "name": "Delta", "kind": "field", "id": "field|Delta|0|0|float|||h1e522b23e3d342dfeec52a69a0ca4f14b756c85114da059add23d2c403cf19e0", "signature": "public float Delta", "summary": "a fall is good: shown green" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "a fall is good: shown green" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|string?|||h5ce95573760fbed490482794a8054e38848c0b6a2d40e7e67f6af14eb4564732", "signature": "public string? Value", "summary": "a fall is good: shown green" }] }, { "name": "CuiSharp.TickerOpts", "displayName": "TickerOpts", "kind": "struct", "summary": "cui_ticker_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Speed", "kind": "field", "id": "field|Speed|0|0|float|||h2ba64f4f7b87ff7c83f6953450f7a11e533584380fff99eb3ff47fdb3ff7deac", "signature": "public float Speed", "summary": "float speed" }] }, { "name": "CuiSharp.TileOpts", "displayName": "TileOpts", "kind": "struct", "summary": "cui_tile_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|Color|||h275b313b6b736c43c952868f4256ef14616d693e4fe68ca53c7eb74f0c484c28", "signature": "public Color Color", "summary": "cui_color color" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Wide", "kind": "field", "id": "field|Wide|0|0|bool|||he3f28dc2c3369b3bae8254c3abb8b09cf3925a27b4b01fe3aea8dbfe787424e3", "signature": "public bool Wide", "summary": "_Bool wide" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|string?|||hf4dcc3138084be9e84d3528d90e856d600779a67594e9c87a15780888d2fb6ab", "signature": "public string? Detail", "summary": "const char * detail" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "const char * icon" }] }, @@ -676,7 +678,7 @@ { "name": "CuiSharp.TreeTableOpts", "displayName": "TreeTableOpts", "kind": "struct", "summary": "cui_tree_table_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default fill" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "Guides", "kind": "field", "id": "field|Guides|0|0|bool|||h7e9ab088cd84e6855062433d2087613e5fb8460e5ed62e343e4c52830488ac6b", "signature": "public bool Guides", "summary": "quiet vertical lines for each indentation level" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "default 32" }, { "name": "Root", "kind": "field", "id": "field|Root|0|0|int|||h6951cf8e44d999438aa751b095b478c002e3b8defd9d6fa77bc90f1c5a707dfb", "signature": "public int Root", "summary": "the first top level node, default 0" }] }, { "name": "CuiSharp.TreeTableRow", "displayName": "TreeTableRow", "kind": "delegate", "summary": "Draws one tree row: the caller writes the cells, the widget the indentation and chevron.", "members": [{ "name": "BeginInvoke", "kind": "method", "id": "method|BeginInvoke|0|0|IAsyncResult|Ui ui;int node;int depth;AsyncCallback callback;object object||hb8e87a7a2022e77c4a6ee5001cb539806ecfb6ef5552cdea8804276f71f2232c", "signature": "IAsyncResult BeginInvoke(Ui ui, int node, int depth, AsyncCallback callback, object @object)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }, { "name": "callback", "type": "AsyncCallback" }, { "name": "object", "type": "object" }] }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||object object;nint method||he6641ea5e617ffa8974579447d4c8370257dc98cf899f5b6a348234630ca3eeb", "signature": "TreeTableRow(object @object, nint method)", "parameters": [{ "name": "object", "type": "object" }, { "name": "method", "type": "nint" }] }, { "name": "EndInvoke", "kind": "method", "id": "method|EndInvoke|0|0|void|IAsyncResult result||h477a5257f2f4c2172e54e854d9bc2f5c7bb790dade430a493c5a1c7d25248214", "signature": "void EndInvoke(IAsyncResult result)", "parameters": [{ "name": "result", "type": "IAsyncResult" }] }, { "name": "Invoke", "kind": "method", "id": "method|Invoke|0|0|void|Ui ui;int node;int depth||h9a371e5ae54502a8006d96dcddef3da1e0c9c674283682bf899a96595e9eecde", "signature": "void Invoke(Ui ui, int node, int depth)", "parameters": [{ "name": "ui", "type": "Ui" }, { "name": "node", "type": "int" }, { "name": "depth", "type": "int" }] }] }, { "name": "CuiSharp.TreemapOpts", "displayName": "TreemapOpts", "kind": "struct", "summary": "cui_treemap_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float height" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|string?|||h569c4de400fd242b777ddfec561786900d4f2ae1434374423edf8bd9ef0c421f", "signature": "public string? Format", "summary": "const char * format" }] }, - { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "summary": "A stack-only drawing context. Do not retain it outside the current frame.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "The accent in use, and the way to change it. See Theme." }, { "name": "ApiExplorer", "kind": "extension", "id": "extension|ApiExplorer|0|0|ApiExplorerResult|UiText id;ReadOnlySpan\u003CApiEndpoint\u003E endpoints;ref int selected;ApiExplorerOpts o = default||h8e1274e09ed373172bec2fe1ee1969a7f9b2e594fbeed0ea8abed98302f3ed84", "signature": "ApiExplorerResult ApiExplorer(UiText id, ReadOnlySpan\u003CApiEndpoint\u003E endpoints, ref int selected, ApiExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "endpoints", "type": "ReadOnlySpan\u003CApiEndpoint\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ApiExplorerOpts", "default": "default" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "extension", "id": "extension|Blame|0|0|BlameResult|UiText id;ReadOnlySpan\u003Cstring\u003E lines;ReadOnlySpan\u003Cint\u003E lineCommit;ReadOnlySpan\u003CBlameCommit\u003E commits;BlameOpts o = default||hdf716d42271c45696039bb07abacc01b9b0b2a935ee05dc1842213c276edf5eb", "signature": "BlameResult Blame(UiText id, ReadOnlySpan\u003Cstring\u003E lines, ReadOnlySpan\u003Cint\u003E lineCommit, ReadOnlySpan\u003CBlameCommit\u003E commits, BlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "lines", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "lineCommit", "type": "ReadOnlySpan\u003Cint\u003E" }, { "name": "commits", "type": "ReadOnlySpan\u003CBlameCommit\u003E" }, { "name": "o", "type": "BlameOpts", "default": "default" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|0|0|CanvasResult|UiText id;Size width;Size height;PaintFn paint||hf2c318f0b609f7226e807d7cf7e4edada63dc45f85bb57025ad7567a006824a0", "signature": "CanvasResult Canvas(UiText id, Size width, Size height, PaintFn paint)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "Size" }, { "name": "paint", "type": "PaintFn" }], "summary": "Reserves a box of the given size and lets you paint it." }, { "name": "Clip", "kind": "method", "id": "method|Clip|0|0|ClipScope|RectF r||h81bb7c5dd19720d5aa2ee17f5cb20e0238b08db45d6d0cb5700d16ce531ec5f2", "signature": "ClipScope Clip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle, closing the clip on dispose." }, { "name": "CodeEditor", "kind": "extension", "id": "extension|CodeEditor|0|0|CodeEditorResult|UiText id;ref string buf;int cap;CodeEditorOpts o = default||h3f99c4340c4ea2a0ae4ecc840716120045f85d30ea53f0aebe7ab1be2c09aa9a", "signature": "CodeEditorResult CodeEditor(UiText id, ref string buf, int cap, CodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "CodeEditorOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|0|0|Color|Color color||h980f9c13c6409b9b666e72b6641e22a816c4a7d68a80eb109a44bc201bceceb0", "signature": "Color ColorOf(Color color)", "parameters": [{ "name": "color", "type": "Color" }], "summary": "Resolves a semantic token to its channels; other colors come back unchanged." }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|0|0|Color|Token token||h0916cfc8affaa4db1788c2edd8ac85f518f146b3b691ef4d7181b7ad8ccac2fe", "signature": "Color TokenColor(Token token)", "parameters": [{ "name": "token", "type": "Token" }], "summary": "The channels a theme token resolves to this frame." }, { "name": "Comment", "kind": "extension", "id": "extension|Comment|0|0|CommentEvents|UiText id;UiText author;UiText text;ref int likes;ref bool liked;CommentOpts o = default||hd58eadbf1b4e2807aa889ed3f4c70606227f61711c62110ec27aebc46c70512c", "signature": "CommentEvents Comment(UiText id, UiText author, UiText text, ref int likes, ref bool liked, CommentOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "author", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "likes", "type": "ref int" }, { "name": "liked", "type": "ref bool" }, { "name": "o", "type": "CommentOpts", "default": "default" }], "summary": "cui_comment_ex" }, { "name": "CommitGraph", "kind": "extension", "id": "extension|CommitGraph|0|0|CommitGraphResult|UiText id;ReadOnlySpan\u003CCommit\u003E commits;ref int selected;CommitGraphOpts o = default||h8d094156c694b6c409f8abe92f01e016c9b138a44ea76b0770f70f4fd34781c7", "signature": "CommitGraphResult CommitGraph(UiText id, ReadOnlySpan\u003CCommit\u003E commits, ref int selected, CommitGraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "commits", "type": "ReadOnlySpan\u003CCommit\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CommitGraphOpts", "default": "default" }], "summary": "cui_commit_graph_ex" }, { "name": "ChatComposer", "kind": "extension", "id": "extension|ChatComposer|0|0|ComposerEvents|UiText id;ref string buf;int cap;ref int removed;ref int model;ComposerOpts o = default||ha61bd40b4efb8355a255edc7d36d348178993536309ab1ee4c6c9a381fd22431", "signature": "ComposerEvents ChatComposer(UiText id, ref string buf, int cap, ref int removed, ref int model, ComposerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "removed", "type": "ref int" }, { "name": "model", "type": "ref int" }, { "name": "o", "type": "ComposerOpts", "default": "default" }], "summary": "cui_chat_composer_ex" }, { "name": "Coverage", "kind": "extension", "id": "extension|Coverage|0|0|CoverageResult|UiText id;ReadOnlySpan\u003CCoverageFile\u003E files;CoverageOpts o = default||h71a24310abd0377c27ded9130e91e48dc3e91a798d1a79f3563a30b446fe6a95", "signature": "CoverageResult Coverage(UiText id, ReadOnlySpan\u003CCoverageFile\u003E files, CoverageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "files", "type": "ReadOnlySpan\u003CCoverageFile\u003E" }, { "name": "o", "type": "CoverageOpts", "default": "default" }], "summary": "cui_coverage_ex" }, { "name": "Cursor", "kind": "property", "id": "property|Cursor|0|0|Cursor||get;|hc22a16db67c85c2843d2f88cc8ab464d28c155381bf1d1998e9fc4743eb42043", "signature": "Cursor Cursor { get; }", "summary": "The cursor the UI asked for last frame, for a backend that draws its own." }, { "name": "CurveEditor", "kind": "extension", "id": "extension|CurveEditor|0|0|CurveResult|UiText id;Span\u003CCurveKey\u003E keys;ref int count;int capacity;ref int selected;CurveOpts o = default||h0aa646bcaa2a7a88d9f7fb5646774b70a481e877c7087d2169536d01d2eb89dc", "signature": "CurveResult CurveEditor(UiText id, Span\u003CCurveKey\u003E keys, ref int count, int capacity, ref int selected, CurveOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "keys", "type": "Span\u003CCurveKey\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CurveOpts", "default": "default" }], "summary": "cui_curve_editor_ex" }, { "name": "DiffView", "kind": "extension", "id": "extension|DiffView|0|0|DiffResult|UiText id;UiText oldText;UiText newText;ref int current;DiffOpts o = default||h1928b65f5fa6dc715c0e20351e64a90a55ca9b8fd792c4a9a6e3df7545ba072a", "signature": "DiffResult DiffView(UiText id, UiText oldText, UiText newText, ref int current, DiffOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "oldText", "type": "UiText" }, { "name": "newText", "type": "UiText" }, { "name": "current", "type": "ref int" }, { "name": "o", "type": "DiffOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled||h3a515a3de1d8d0205d97aef4118bf5ab6c5af12e051d859d3b8cabae81fb9db1", "signature": "DisabledScope Disabled(bool disabled)", "parameters": [{ "name": "disabled", "type": "bool" }], "summary": "Opens a disabled gate that using closes." }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled;DrawFn body||hcc29e71513d0c4970a98faee97bed37a754ecae1da31ed37b95a7e3588c336d9", "signature": "DisabledScope Disabled(bool disabled, DrawFn body)", "parameters": [{ "name": "disabled", "type": "bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws body with every control inside it disabled: it still lays out and paints, but clicks, keys and hover do nothing." }, { "name": "DocTabs", "kind": "extension", "id": "extension|DocTabs|0|0|DocTabsResult|UiText id;ReadOnlySpan\u003CDocTab\u003E tabs;ref int selected;DocTabsOpts o = default||hdb202a4c9e42fa362479fb5e674bee39fa9949e204316f94f4197f0a54fe4c83", "signature": "DocTabsResult DocTabs(UiText id, ReadOnlySpan\u003CDocTab\u003E tabs, ref int selected, DocTabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tabs", "type": "ReadOnlySpan\u003CDocTab\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "DocTabsOpts", "default": "default" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "extension", "id": "extension|FeatureFlags|0|0|FeatureFlagsResult|UiText id;Span\u003CFeatureFlag\u003E flags;ReadOnlySpan\u003Cstring\u003E envs;FeatureFlagsOpts o = default||h1c2c043a1a911bf524b328f35cfa7f2ee4862adfb16f1b0cbd98cf1077245b34", "signature": "FeatureFlagsResult FeatureFlags(UiText id, Span\u003CFeatureFlag\u003E flags, ReadOnlySpan\u003Cstring\u003E envs, FeatureFlagsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "flags", "type": "Span\u003CFeatureFlag\u003E" }, { "name": "envs", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "FeatureFlagsOpts", "default": "default" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "extension", "id": "extension|FileBrowser|0|0|FileBrowserResult|UiText id;ref string path;int pathCap = 1024;FileBrowserOpts o = default||hdcc3319728f0b23560a33e9d8c875e4b5389d816f8e66b4e3630e917284e3bf8", "signature": "FileBrowserResult FileBrowser(UiText id, ref string path, int pathCap = 1024, FileBrowserOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "path", "type": "ref string" }, { "name": "pathCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FileBrowserOpts", "default": "default" }], "summary": "path: the folder shown, yours; the browser writes it as you move around." }, { "name": "FlameGraph", "kind": "extension", "id": "extension|FlameGraph|0|0|FlameResult|UiText id;ReadOnlySpan\u003CFlameSpan\u003E spans;ref FlameView view;ref int selected;FlameOpts o = default||h825a9e17f3b7381f2b9b6b4244a8edbabda629701c297e3c877a4e13fc43e98c", "signature": "FlameResult FlameGraph(UiText id, ReadOnlySpan\u003CFlameSpan\u003E spans, ref FlameView view, ref int selected, FlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "spans", "type": "ReadOnlySpan\u003CFlameSpan\u003E" }, { "name": "view", "type": "ref FlameView" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "FlameOpts", "default": "default" }], "summary": "selected: index into spans, -1 for none (may be NULL)." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|ReadOnlySpan\u003Cbyte\u003E data;bool copy = true||h73d65ad67f9acdd48823d96c747c086a24a1625658056e8af856a3bd4d554241", "signature": "Font LoadFont(ReadOnlySpan\u003Cbyte\u003E data, bool copy = true)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool", "default": "true" }], "summary": "Loads a font from memory and returns a handle for SetFont." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|UiText path||h5faed851de772ad862622c3312f2aeae3c81ef7915ae305e81bb638cf9b3b107", "signature": "Font LoadFont(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "Loads a font file (TTF/OTF) and returns a handle for SetFont." }, { "name": "UseSystemFontFallback", "kind": "extension", "id": "extension|UseSystemFontFallback|0|0|Font|string sample||h718698d4ba3dba692a0bf04e8e6729a2aae4ac8563689108bb00fdf124984df6", "signature": "Font UseSystemFontFallback(string sample)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "sample", "type": "string" }], "summary": "Finds a face on this machine that can draw sample and registers it as a fallback for the app\u0027s roles, so a UI in a script the bundled faces do not cover renders instead of going blank." }, { "name": "GradientEditor", "kind": "extension", "id": "extension|GradientEditor|0|0|GradientResult|UiText id;Span\u003CGradientStop\u003E stops;ref int count;int capacity;ref int selected;GradientOpts o = default||h22ba29de3dd5440cd7373415c1f48323da92a14dd19862d6a962bbf6a3147afd", "signature": "GradientResult GradientEditor(UiText id, Span\u003CGradientStop\u003E stops, ref int count, int capacity, ref int selected, GradientOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stops", "type": "Span\u003CGradientStop\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GradientOpts", "default": "default" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "extension", "id": "extension|GraphView|0|0|GraphResult|UiText id;ReadOnlySpan\u003CGraphNode\u003E nodes;ReadOnlySpan\u003CGraphEdge\u003E edges;ref int selected;GraphOpts o = default||hbce489b5fa6d64979be674221b7ae61e945b26d0224773080270c2c7dfd8b3bc", "signature": "GraphResult GraphView(UiText id, ReadOnlySpan\u003CGraphNode\u003E nodes, ReadOnlySpan\u003CGraphEdge\u003E edges, ref int selected, GraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003CGraphNode\u003E" }, { "name": "edges", "type": "ReadOnlySpan\u003CGraphEdge\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GraphOpts", "default": "default" }], "summary": "cui_graph_view_ex" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|GridScope|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;GridOpts o = default||hae20817285aa5f5ee430918dd512e707df8a0306e32777f0e13839f607262829", "signature": "GridScope DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Opens a virtualized grid; draw rows in [state.First, state.Last)." }, { "name": "HexView", "kind": "extension", "id": "extension|HexView|0|0|HexResult|UiText id;Span\u003Cbyte\u003E bytes;ref HexSelection selection;HexViewOpts o = default||hb82ecf6f9d8a58d5c2bce7702bd188c8bb502de7a2d696f1a0af827be5fa22d9", "signature": "HexResult HexView(UiText id, Span\u003Cbyte\u003E bytes, ref HexSelection selection, HexViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bytes", "type": "Span\u003Cbyte\u003E" }, { "name": "selection", "type": "ref HexSelection" }, { "name": "o", "type": "HexViewOpts", "default": "default" }], "summary": "Draws bytes and lets the user overwrite them in place." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|UiText id||hf913a0d346bf51d9f7a0e55299041c30e8aa0eeb2f93eadbe20cad0c4ae3879b", "signature": "IdScope Id(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Pushes a string id for the widgets drawn inside the scope." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|int key||h3b4b6991acded6793bc66a091956c19c02661da15fabdf72db107273b8ed3d1b", "signature": "IdScope Id(int key)", "parameters": [{ "name": "key", "type": "int" }], "summary": "Pushes an integer id, typically a row or item index." }, { "name": "Input", "kind": "method", "id": "method|Input|0|0|InputResult|UiText id;ref string value;InputOpts o = default||he495e19d9d5cb23d03e35f0f55ea0ebafd853d7386ae9e4989697b39cec38980", "signature": "InputResult Input(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A single-line text field. Assign the string; CUI edits it in place and the new value comes back through value on the frames it changed." }, { "name": "Search", "kind": "method", "id": "method|Search|0|0|InputResult|UiText id;ref string value;InputOpts o = default||h11bb746b263541b15457e9933eac6e37a6cdfac44547449d0d7375a7431b87da", "signature": "InputResult Search(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A search field. See Input." }, { "name": "TextArea", "kind": "method", "id": "method|TextArea|0|0|InputResult|UiText id;ref string value;InputOpts o = default||ha0535c062baff5583884fcf6394397476e4b2a40ee79b643e731e601e2daad5c", "signature": "InputResult TextArea(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A multi-line text field. See Input." }, { "name": "Keyed", "kind": "method", "id": "method|Keyed|0|1|KeyedScope\u003CT\u003E|T[] items;KeyFn\u003CT\u003E key||h3645b3dae05812e37fd01340a5693892b688bf1436826030f83bf34e5dca43f8", "signature": "KeyedScope\u003CT\u003E Keyed\u003CT\u003E(T[] items, KeyFn\u003CT\u003E key)", "parameters": [{ "name": "items", "type": "T[]" }, { "name": "key", "type": "KeyFn\u003CT\u003E" }], "summary": "Enumerates items, each inside its own id scope derived from key." }, { "name": "Keymap", "kind": "extension", "id": "extension|Keymap|0|0|KeymapResult|UiText id;ReadOnlySpan\u003CKeymapBinding\u003E bindings;ref Mods mods;KeymapOpts o = default||h986c8ea2572b42d56814a32427ed89b00db2a4a2ff3ba6c7a4711a66da3c0bae", "signature": "KeymapResult Keymap(UiText id, ReadOnlySpan\u003CKeymapBinding\u003E bindings, ref Mods mods, KeymapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bindings", "type": "ReadOnlySpan\u003CKeymapBinding\u003E" }, { "name": "mods", "type": "ref Mods" }, { "name": "o", "type": "KeymapOpts", "default": "default" }], "summary": "cui_keymap_ex" }, { "name": "Box", "kind": "extension", "id": "extension|Box|0|0|LayoutScope|Box o = default||haec5c052acbeeaca94cb5a10a37f80e98abc85d069b6fa9aec58cf20715c0a06", "signature": "LayoutScope Box(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_box_begin" }, { "name": "ButtonGroup", "kind": "extension", "id": "extension|ButtonGroup|0|0|LayoutScope|||h8a2a0872d3ba1595bf0e1d9ad5860dfa36735b0ac74178a57cc8157b6493d6d4", "signature": "LayoutScope ButtonGroup()", "extensionOn": "CuiSharp.Ui", "summary": "Connected buttons. Put buttons between begin and end." }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o = default||hb8d0387f360f71c39f098c9de712bb4aa0eb22a25fffee4615049459c0cc224e", "signature": "LayoutScope Card(Card o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card", "default": "default" }], "summary": "cui_card_begin" }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o;out bool clicked||he64474f809036667bb19ed0028db705f58a61d124f67b6520b26f73775ae32e5", "signature": "LayoutScope Card(Card o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "CardStackItem", "kind": "extension", "id": "extension|CardStackItem|0|0|LayoutScope|int depth||h6f29f3239b665449b7d0d9b4e5177cb4099b541e3423fcb9d1a9b14fb1f686d0", "signature": "LayoutScope CardStackItem(int depth)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CarouselSlide", "kind": "extension", "id": "extension|CarouselSlide|0|0|LayoutScope|||h9755b016a070064271f7e45738238254443cdfcb4d22aca524774095031595ec", "signature": "LayoutScope CarouselSlide()", "extensionOn": "CuiSharp.Ui", "summary": "cui_carousel_slide_begin" }, { "name": "Column", "kind": "extension", "id": "extension|Column|0|0|LayoutScope|Box o = default||h78447c50c087189e1c45a5984115c6b2709affec511cf6ab6521254dd0406549", "signature": "LayoutScope Column(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_column_begin" }, { "name": "DialogFooter", "kind": "extension", "id": "extension|DialogFooter|0|0|LayoutScope|||hea62c5e329105c7d787894e1fbdbbd9b079d2910e82c4be61263045ff18c81f3", "signature": "LayoutScope DialogFooter()", "extensionOn": "CuiSharp.Ui", "summary": "A right-aligned row for dialog actions." }, { "name": "Dock", "kind": "extension", "id": "extension|Dock|0|0|LayoutScope|UiText id;DockOpts o = default||ha8052963c653afff4ec2b3304515265b67454d94f44ee3c01d076c1e27148816", "signature": "LayoutScope Dock(UiText id, DockOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockOpts", "default": "default" }], "summary": "cui_dock_begin" }, { "name": "Dockspace", "kind": "extension", "id": "extension|Dockspace|0|0|LayoutScope|UiText id;DockspaceOpts o = default||hd8cabbad4df58a75fbb1e93299868d95ae7671ca676e01478b8c6067ace5a82d", "signature": "LayoutScope Dockspace(UiText id, DockspaceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockspaceOpts", "default": "default" }], "summary": "cui_dockspace_begin_ex" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId||h04d36b815b7f14d7d624e0b56c06560e052f6458aecd5cd68f485e0c8dc64b11", "signature": "LayoutScope KanbanCard(int cardId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId;out bool clicked||h0ef9ec0801ab926804d1119b9bc9dc886afc490850829ed33cad336f7ee94f50", "signature": "LayoutScope KanbanCard(int cardId, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o = default||hd3dcefdc81fb36dfee31edd1754914e0453a4c7e0b1bb4c4b2b20b542eb8adaa", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts", "default": "default" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o;out bool clicked||h7c9ca66f79f064c49eed8f4544d8fea1ed3304dc45d84e5ec067d319ed4ea113", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "MenuBar", "kind": "extension", "id": "extension|MenuBar|0|0|LayoutScope|UiText id;MenuBarOpts o = default||h29b57cc387904e3c1d3083b170ceaa309e6bc4a2535b4c27f22ecd482570e152", "signature": "LayoutScope MenuBar(UiText id, MenuBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "MenuBarOpts", "default": "default" }], "summary": "cui_menu_bar_begin" }, { "name": "NodeContent", "kind": "extension", "id": "extension|NodeContent|0|0|LayoutScope|||h6a09d812c8b6d9c4a4f2fc6aedc000b977da707334c08c94ee4e6dd62573dd59", "signature": "LayoutScope NodeContent()", "extensionOn": "CuiSharp.Ui", "summary": "A row for ordinary components. They are laid out at 100% and scaled with the view, so their text is sharpest at 100% zoom and below." }, { "name": "ReorderItem", "kind": "method", "id": "method|ReorderItem|0|0|LayoutScope|int position||h407076f847f4d4f606b87a109b5a505ca525179c0bff6726382889745d33f038", "signature": "LayoutScope ReorderItem(int position)", "parameters": [{ "name": "position", "type": "int" }] }, { "name": "Row", "kind": "extension", "id": "extension|Row|0|0|LayoutScope|Box o = default||ha02204054f3ea32388e8e24fc8038f253dd0b3504b0e01b650d69265773cb67e", "signature": "LayoutScope Row(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_row_begin" }, { "name": "Scroll", "kind": "extension", "id": "extension|Scroll|0|0|LayoutScope|ScrollOpts o = default||h7aa8eed4bb32b5efc54efbe5c6c7c19215ddf1d8ffed8dfc60e0c8d5234bc6f7", "signature": "LayoutScope Scroll(ScrollOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "ScrollOpts", "default": "default" }], "summary": "cui_scroll_begin" }, { "name": "Split", "kind": "extension", "id": "extension|Split|0|0|LayoutScope|UiText id;ref float ratio;SplitOpts o = default||h83e75ece850ab88dc38fde4b7d1d8ae789128ab387c95d8025b6302e8f59269f", "signature": "LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "ratio", "type": "ref float" }, { "name": "o", "type": "SplitOpts", "default": "default" }], "summary": "cui_split_begin" }, { "name": "Spotlight", "kind": "extension", "id": "extension|Spotlight|0|0|LayoutScope|UiText id;SpotlightOpts o = default||hfb70f807d4c0a2d5450e1ff296551adc78a8733ed06c6b0cb9ed7427add12f16", "signature": "LayoutScope Spotlight(UiText id, SpotlightOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SpotlightOpts", "default": "default" }], "summary": "cui_spotlight_begin" }, { "name": "StatusBar", "kind": "extension", "id": "extension|StatusBar|0|0|LayoutScope|UiText id;StatusBarOpts o = default||h394ecf13ba82c0abd4bdf1a5b7cb5fce6102392c5a87cea283bc38fd2213e96a", "signature": "LayoutScope StatusBar(UiText id, StatusBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "StatusBarOpts", "default": "default" }], "summary": "cui_status_bar_begin" }, { "name": "Toolbar", "kind": "extension", "id": "extension|Toolbar|0|0|LayoutScope|UiText id;ToolbarOpts o = default||hc5826ec43e3d8bf178cfa9f1605bd29bded229aae82424077aa18e1ae7e9cc61", "signature": "LayoutScope Toolbar(UiText id, ToolbarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ToolbarOpts", "default": "default" }], "summary": "cui_toolbar_begin" }, { "name": "VirtualList", "kind": "extension", "id": "extension|VirtualList|0|0|LayoutScope|UiText id;int count;float rowHeight;Size height;out int first;out int last||h90165d4490987ebd4d90276d5b449695a1f58d89f212149090827bfd08a055f2", "signature": "LayoutScope VirtualList(UiText id, int count, float rowHeight, Size height, out int first, out int last)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "Size" }, { "name": "first", "type": "out int" }, { "name": "last", "type": "out int" }], "summary": "Virtual list: only the visible rows are built, so lists with a million rows stay fast. Fills first/last with the visible range." }, { "name": "Localization", "kind": "property", "id": "property|Localization|0|0|Localization?||get;|h0a921bf7a95ff40f095f5e7f43cc6d636b74f025ae427be1edbd250e93f88e54", "signature": "Localization? Localization { get; }", "summary": "The table this surface published, or null for English." }, { "name": "Markdown", "kind": "extension", "id": "extension|Markdown|0|0|MarkdownResult|UiText id;UiText text;MarkdownOpts o = default||h61fdb7c6fb770f95ff734bbdf7b607bad9e23af8b25df034da34f408eed536fa", "signature": "MarkdownResult Markdown(UiText id, UiText text, MarkdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "MarkdownOpts", "default": "default" }], "summary": "cui_markdown_ex" }, { "name": "Modifiers", "kind": "property", "id": "property|Modifiers|0|0|Mods||get;|h994504ae5710377741956558b3dae0b4e2fc318f73c5408e701c6675295af911", "signature": "Mods Modifiers { get; }", "summary": "The modifier keys held right now." }, { "name": "MonthCalendar", "kind": "extension", "id": "extension|MonthCalendar|0|0|MonthResult|UiText id;ref Date month;ReadOnlySpan\u003CMonthEvent\u003E events;ref Date selected;MonthOpts o = default||hacb7fb0b706addd9098a1569df3adbf8cff5b20d3b0bf01f49970bd839da7523", "signature": "MonthResult MonthCalendar(UiText id, ref Date month, ReadOnlySpan\u003CMonthEvent\u003E events, ref Date selected, MonthOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "month", "type": "ref Date" }, { "name": "events", "type": "ReadOnlySpan\u003CMonthEvent\u003E" }, { "name": "selected", "type": "ref Date" }, { "name": "o", "type": "MonthOpts", "default": "default" }], "summary": "cui_month_calendar_ex" }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|OpenScope|UiText title;ref bool open||h485829d02ee323bfa485f05285d6b19d78dcf02ed0a36c9ca4b1da7e70f540e5", "signature": "OpenScope Accordion(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "Accordion / disclosure. Content animates its height." }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|OpenScope|UiText id;int count;ref int index;CarouselOpts o = default||hbcf0bd0059da4b82e6417513dac4646a1ad558c1f46fc3c55b233c3367ef0a4e", "signature": "OpenScope Carousel(UiText id, int count, ref int index, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "cui_carousel_begin" }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|OpenScope|UiText id||hb5be2e863b82aa032d3281886a07b75e6a10932b22c9c06daa36e6ec8460b9c3", "signature": "OpenScope ContextMenu(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Context menu: opens on right click over the previous component." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|OpenScope|UiText title;ref bool open;DialogOpts o = default||h08e9cf3a4bf5178fc47947da0ad76b53486c74b4ebd9c7e92e078d4cb3653668", "signature": "OpenScope Dialog(UiText title, ref bool open, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Modal dialog. Shown while *open is true; closing sets it to false." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|OpenScope|UiText title;ref bool open;DockPanelOpts o = default||h983b85f4b88defb64e03c80c7fd67832cccc8b15fa3b11e9e9c8954cdd239b75", "signature": "OpenScope DockPanel(UiText title, ref bool open, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|OpenScope|UiText title;ref bool open;ExpandableCardOpts o = default||h19637d079a2ee9821dfa4b6223ecf9694471f6157ed61e0139e207c045d56878", "signature": "OpenScope ExpandableCard(UiText title, ref bool open, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "cui_expandable_card_begin" }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|OpenScope|UiText id;HoverCardOpts o = default||hd31fbafd01c517229f3a54d9fbeed478689533294a82e16da99cb56ed4b82d37", "signature": "OpenScope HoverCard(UiText id, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "cui_hover_card_begin" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|OpenScope|UiText id;InspectorOpts o = default||hdb3db7ec75e95846d7b987536583618b0b9445c2deb40a5f16828b5d2d735020", "signature": "OpenScope Inspector(UiText id, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "cui_inspector_begin_ex" }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|OpenScope|UiText label;MenuOpts o = default||hec1b2b131f19c8f1eb37269016b963aed4449341b367ca89e175c1940294ab63", "signature": "OpenScope Menu(UiText label, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "cui_menu_begin" }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|OpenScope|UiText label;MenuBarMenuOpts o = default||h32c463fd3c1d7fa382d82e43f75326d1e14efad5ce907db7337df9ba3480688b", "signature": "OpenScope MenuBarMenu(UiText label, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|OpenScope|int nodeId;ref float x;ref float y;UiText title;NodeOpts o = default||hb7439d9c37ecca24fb0858272f81826919b789149f2a34acd1e1c44ff3266f62", "signature": "OpenScope Node(int nodeId, ref float x, ref float y, UiText title, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "cui_node_begin_ex" }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|OpenScope|UiText id;ref NodeView view;NodeEditorOpts o = default||h4e3c9c7bbaa0ed5b0750957f90a5c6c86f0fbfea8e96d4a8cacd68503ae7ad85", "signature": "OpenScope NodeEditor(UiText id, ref NodeView view, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "cui_node_editor_begin_ex" }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|OpenScope|UiText id;ref int segment||h2aeb15441c53f332d451a287be64ba38ecdb4c05be10ad0f8a2412b04c3ad51a", "signature": "OpenScope PathBarMenu(UiText id, ref int segment)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }], "summary": "True while the menu of separator *segment is showing: build menu items for the children of that segment, then call cui_path_bar_menu_end." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|OpenScope|UiText id;PopoverOpts o = default||had5881283c2885b236d342cac799068e3bd7a8c2d4272ceb08bf27aa60e812f7", "signature": "OpenScope Popover(UiText id, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "cui_popover_begin" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|OpenScope|UiText id;ReasoningOpts o = default||hd8c6837b660811abb55b30c3bcc35eb42dd2099f40a5a73eb35972aca384d12b", "signature": "OpenScope Reasoning(UiText id, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "cui_reasoning_begin" }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|OpenScope|UiText title;ref bool open;SheetOpts o = default||heb98d14c7c6250a83593cac259a583d17aa8636e9eaa839b64b4b5e3db2551d7", "signature": "OpenScope Sheet(UiText title, ref bool open, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "cui_sheet_begin" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;TableOpts o = default||hfd909896b0ab780a5093f3e917adaa2e23e03121d3b8e920a5305582c66486d0", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Same as the overload with ref sort, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;TableOpts o = default||hfda1db8518191e5d1de411deaefeed0d0f8d6838a3a1398abfa10ad4b36ff692", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "cui_table_begin_ex" }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|OpenScope|UiText label;ref bool open;TreeOpts o = default||h4406f8e6a4e0d2f04e9468f25ca87def814144056b1780a4e869ea86998fdd10", "signature": "OpenScope Tree(UiText label, ref bool open, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "cui_tree_begin" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|OpenScope|UiText name;UserMenuOpts o = default||h5323b7ef69eef4b5689f61a0c79b09355b7d2e1579ced7536bd574838f5eb096", "signature": "OpenScope UserMenu(UiText name, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "cui_user_menu_begin" }, { "name": "PathBar", "kind": "extension", "id": "extension|PathBar|0|0|PathBarResult|UiText id;ReadOnlySpan\u003Cstring\u003E segments;PathBarOpts o = default||h5256da01c2004bf6922b836f1b3e9fbc43ed881a67e823c1895ab05f0949dd56", "signature": "PathBarResult PathBar(UiText id, ReadOnlySpan\u003Cstring\u003E segments, PathBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segments", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "PathBarOpts", "default": "default" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "extension", "id": "extension|Pipeline|0|0|PipelineResult|UiText id;ReadOnlySpan\u003Cstring\u003E stages;ReadOnlySpan\u003CPipelineJob\u003E jobs;ref int selected;PipelineOpts o = default||h57164c455b64addad840b532dee1f4eb3acaba49d3b9d3b92afbab5d775aa6e7", "signature": "PipelineResult Pipeline(UiText id, ReadOnlySpan\u003Cstring\u003E stages, ReadOnlySpan\u003CPipelineJob\u003E jobs, ref int selected, PipelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "jobs", "type": "ReadOnlySpan\u003CPipelineJob\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "PipelineOpts", "default": "default" }], "summary": "cui_pipeline_ex" }, { "name": "NowPlaying", "kind": "extension", "id": "extension|NowPlaying|0|0|PlayerEvents|UiText id;ref NowPlayingState np;NowPlayingOpts o = default||h9fae980dc34277b737fa803cbecd222d9c0a4c796e96fa70b56eeeefd0df2b25", "signature": "PlayerEvents NowPlaying(UiText id, ref NowPlayingState np, NowPlayingOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "np", "type": "ref NowPlayingState" }, { "name": "o", "type": "NowPlayingOpts", "default": "default" }], "summary": "cui_now_playing_ex" }, { "name": "Problems", "kind": "extension", "id": "extension|Problems|0|0|ProblemsResult|UiText id;ReadOnlySpan\u003CProblemItem\u003E diags;ProblemsOpts o = default||h6893f9c629255366d4079d33866236777cdcf107644e4109933ef620b8022eed", "signature": "ProblemsResult Problems(UiText id, ReadOnlySpan\u003CProblemItem\u003E diags, ProblemsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "diags", "type": "ReadOnlySpan\u003CProblemItem\u003E" }, { "name": "o", "type": "ProblemsOpts", "default": "default" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "extension", "id": "extension|FlameSpanRect|0|0|RectF|uint flame;in FlameSpan span||haa242a01ec7cc85ea2f271378c3c8c334942d3f054714bdc41b27574a4327c82", "signature": "RectF FlameSpanRect(uint flame, in FlameSpan span)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "flame", "type": "uint" }, { "name": "span", "type": "in FlameSpan" }], "summary": "Where a span was drawn in the latest frame, in points (zero size when out of view). flame is the graph\u0027s id: cui_last_id(ui) right after the call." }, { "name": "LastRect", "kind": "property", "id": "property|LastRect|0|0|RectF||get;|ha796a249509c6af4a48352050e2d549bf5de307702a0f97fbc12276bc4b72b7b", "signature": "RectF LastRect { get; }", "summary": "Rectangle of the most recent component." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|UiText id||hf03418b016be6b023e965616caed52e5a7dd6a367152691bc14de3eb646ed966", "signature": "RectF RectOf(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Rectangle of the widget with this string id." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|uint id||hc518e049cee7502b5770da6d0349e6e1b3764c8cc67fc33e3a92b5006d46ad99", "signature": "RectF RectOf(uint id)", "parameters": [{ "name": "id", "type": "uint" }], "summary": "Rectangle of any widget by id, for hit tests and overlays." }, { "name": "RegexTester", "kind": "extension", "id": "extension|RegexTester|0|0|RegexTesterResult|UiText id;ref string pattern;int patternCap;ref string text;int textCap;ref RegexFlags flags;RegexTesterOpts o = default||h53b2155ffb50f74e3cdbeb47580968a3b4c6256e0cbe584d8955de62e7015f50", "signature": "RegexTesterResult RegexTester(UiText id, ref string pattern, int patternCap, ref string text, int textCap, ref RegexFlags flags, RegexTesterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pattern", "type": "ref string" }, { "name": "patternCap", "type": "int" }, { "name": "text", "type": "ref string" }, { "name": "textCap", "type": "int" }, { "name": "flags", "type": "ref RegexFlags" }, { "name": "o", "type": "RegexTesterOpts", "default": "default" }], "summary": "cui_regex_tester_ex" }, { "name": "RequestBar", "kind": "extension", "id": "extension|RequestBar|0|0|RequestBarResult|UiText id;ref HttpMethod method;ref string url;int cap = 2048;RequestBarOpts o = default||h400ba2e5c7aed931b8c2e5897d16438378b1652b5dfca8f9a1057e88fcb46043", "signature": "RequestBarResult RequestBar(UiText id, ref HttpMethod method, ref string url, int cap = 2048, RequestBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "method", "type": "ref HttpMethod" }, { "name": "url", "type": "ref string" }, { "name": "cap", "type": "int", "default": "2048" }, { "name": "o", "type": "RequestBarOpts", "default": "default" }], "summary": "cui_request_bar_ex" }, { "name": "ResponseActions", "kind": "extension", "id": "extension|ResponseActions|0|0|ResponseEvents|UiText id;ref int vote;ResponseActionsOpts o = default||hc81149b07827af0f59a3269486e0d44858ac9bb48073ed5150872c876c11984c", "signature": "ResponseEvents ResponseActions(UiText id, ref int vote, ResponseActionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "vote", "type": "ref int" }, { "name": "o", "type": "ResponseActionsOpts", "default": "default" }], "summary": "cui_response_actions_ex" }, { "name": "SchedulePicker", "kind": "extension", "id": "extension|SchedulePicker|0|0|ScheduleResult|UiText id;ref string cron;int cap = 128;ScheduleOpts o = default||h5e149aabf00cdaf3e05fa29f62f956e474f8fee28641ae71fde4eaaeb8801f91", "signature": "ScheduleResult SchedulePicker(UiText id, ref string cron, int cap = 128, ScheduleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "cron", "type": "ref string" }, { "name": "cap", "type": "int", "default": "128" }, { "name": "o", "type": "ScheduleOpts", "default": "default" }], "summary": "cui_schedule_picker_ex" }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id||h8505c3ecbdde9acd049fc2d5d47e3c43d0545b89b2b78cc39c0a3993049107cf", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Persistent, zeroed storage for a widget id, for values that must survive between frames (animation phases, drag state, hit-test scratch)." }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id;Action onFree||hbfa4567fbf2313cbdd3cc11d8daae823c35ccab56e58f7f91c8635a98f228824", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id, Action onFree) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "onFree", "type": "Action" }], "summary": "Persistent, zeroed storage for a widget id, with a callback CUI runs when it throws that id\u0027s state away (about five idle seconds, or when the window closes)." }, { "name": "StackTrace", "kind": "extension", "id": "extension|StackTrace|0|0|StackTraceResult|UiText id;ReadOnlySpan\u003CStackFrame\u003E frames;StackTraceOpts o = default||h31d88e2151b353d79ca390bcbc46b17c2882a950f9cf2239a266b97eeaa36a9b", "signature": "StackTraceResult StackTrace(UiText id, ReadOnlySpan\u003CStackFrame\u003E frames, StackTraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "frames", "type": "ReadOnlySpan\u003CStackFrame\u003E" }, { "name": "o", "type": "StackTraceOpts", "default": "default" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "extension", "id": "extension|Terminal|0|0|TerminalResult|UiText id;Terminal terminal;TerminalOpts o = default||h3bb90fc3e22f3e909beb279d5867cc2751b7287513f1480f8c73f2e7405f14d7", "signature": "TerminalResult Terminal(UiText id, Terminal terminal, TerminalOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "terminal", "type": "Terminal" }, { "name": "o", "type": "TerminalOpts", "default": "default" }], "summary": "Draws terminal and reports what the user did in it." }, { "name": "TestExplorer", "kind": "extension", "id": "extension|TestExplorer|0|0|TestExplorerResult|UiText id;ReadOnlySpan\u003CTestItem\u003E items;TestExplorerOpts o = default||h9eeb18e60e88e82a908b873a27468f9699a55c61fb36da8ff356557f102e3862", "signature": "TestExplorerResult TestExplorer(UiText id, ReadOnlySpan\u003CTestItem\u003E items, TestExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTestItem\u003E" }, { "name": "o", "type": "TestExplorerOpts", "default": "default" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|0|0|TextMetrics|UiText text;float size = 12f;Font font = Font.Body||h992b53c9418ee9ba19c1fd34ea05dca44fabbaac335e2ecdd31ccf760fd4f66f", "signature": "TextMetrics MeasureText(UiText text, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Width and height of a single line of text, without wrapping." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "The theme this frame draws with. Assign to switch, from anywhere inside a frame." }, { "name": "TimeHistogram", "kind": "extension", "id": "extension|TimeHistogram|0|0|TimeHistogramResult|UiText id;double start;double bucketSeconds;int buckets;ReadOnlySpan\u003CHistogramSeries\u003E series;ref double selStart;ref double selEnd;TimeHistogramOpts o = default||hfc0784cb52bfd6a3615191c61545b37c444f2ce965ef93b671333df27d4bf165", "signature": "TimeHistogramResult TimeHistogram(UiText id, double start, double bucketSeconds, int buckets, ReadOnlySpan\u003CHistogramSeries\u003E series, ref double selStart, ref double selEnd, TimeHistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "ReadOnlySpan\u003CHistogramSeries\u003E" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "o", "type": "TimeHistogramOpts", "default": "default" }], "summary": "cui_time_histogram_ex" }, { "name": "Tour", "kind": "extension", "id": "extension|Tour|0|0|TourAction|UiText id;ReadOnlySpan\u003CTourStep\u003E steps;ref int step;TourOpts o = default||h7a480bb022c619036d7ca1d19006a7d5aa923a84ea3fc62b5eae88ea7b1088c8", "signature": "TourAction Tour(UiText id, ReadOnlySpan\u003CTourStep\u003E steps, ref int step, TourOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CTourStep\u003E" }, { "name": "step", "type": "ref int" }, { "name": "o", "type": "TourOpts", "default": "default" }], "summary": "What happened this frame: one of CUI_TOUR_*." }, { "name": "TraceView", "kind": "extension", "id": "extension|TraceView|0|0|TraceResult|UiText id;ReadOnlySpan\u003CTraceTrack\u003E tracks;ReadOnlySpan\u003CTraceSpan\u003E spans;ref TraceViewState view;ref int selected;TraceOpts o = default||h7ab8ce526cada0bd73b947180d909dfa39f159b47ac14940ec53b67f28158b92", "signature": "TraceResult TraceView(UiText id, ReadOnlySpan\u003CTraceTrack\u003E tracks, ReadOnlySpan\u003CTraceSpan\u003E spans, ref TraceViewState view, ref int selected, TraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tracks", "type": "ReadOnlySpan\u003CTraceTrack\u003E" }, { "name": "spans", "type": "ReadOnlySpan\u003CTraceSpan\u003E" }, { "name": "view", "type": "ref TraceViewState" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TraceOpts", "default": "default" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||h5ad3a7ebd26d1298c20becc826efa4b5392b7ddbca0d68cfbb1f162eb572fd75", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws a tree without sort or keyboard state: the table keeps no per-id interaction state, which is all a static tree needs." }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;ref TableSort sort;ref int cursor;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||hdc8db941f4c0a5cc7a1e81a316f1e56fbc2468020569fb6cacf3307bec596a1d", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, ref TableSort sort, ref int cursor, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "sort", "type": "ref TableSort" }, { "name": "cursor", "type": "ref int" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws nodes as a tree with columns, calling row once per visible node to fill its cells." }, { "name": "Uptime", "kind": "extension", "id": "extension|Uptime|0|0|UptimeResult|UiText id;ReadOnlySpan\u003CUptimeService\u003E services;UptimeOpts o = default||h60131e1db59b8a809d222a6d6dee840e1ccde25607a2c4178418eef8a488dccb", "signature": "UptimeResult Uptime(UiText id, ReadOnlySpan\u003CUptimeService\u003E services, UptimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "services", "type": "ReadOnlySpan\u003CUptimeService\u003E" }, { "name": "o", "type": "UptimeOpts", "default": "default" }], "summary": "cui_uptime_ex" }, { "name": "MousePosition", "kind": "property", "id": "property|MousePosition|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h02b51b7243b762c56e53482522c31644d844cd12e36381af09a9700cd549db93", "signature": "ValueTuple\u003Cfloat, float\u003E MousePosition { get; }", "summary": "Pointer position in points, top-left origin." }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|0|0|ValueTuple\u003Cfloat, float\u003E|||h7a26e2e5e6b39edb5a26a6e7adde40edf0bcd8599f3d7629ea37d02c109493a2", "signature": "ValueTuple\u003Cfloat, float\u003E ViewportSize()" }, { "name": "Waterfall", "kind": "extension", "id": "extension|Waterfall|0|0|WaterfallResult|UiText id;ReadOnlySpan\u003CNetRequest\u003E requests;ref int selected;WaterfallOpts o = default||h419b5ccb1a80d64ac3cce058fa79a3ac44664f29e8c9685c083cf8552c6714e6", "signature": "WaterfallResult Waterfall(UiText id, ReadOnlySpan\u003CNetRequest\u003E requests, ref int selected, WaterfallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "requests", "type": "ReadOnlySpan\u003CNetRequest\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "WaterfallOpts", "default": "default" }], "summary": "cui_waterfall_ex" }, { "name": "Alert", "kind": "extension", "id": "extension|Alert|0|0|bool|UiText title;AlertOpts o = default||hb9b8786bcd05d91b48b9d5b7e7c8dfe99eab8a18cccf61ee5708920e8c2c65a0", "signature": "bool Alert(UiText title, AlertOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "AlertOpts", "default": "default" }], "summary": "Inline alert. Returns false once dismissed (when dismissible)." }, { "name": "Banner", "kind": "extension", "id": "extension|Banner|0|0|bool|UiText text;ref bool open;BannerOpts o = default||hded3699dd8c0717c5f0d2f8a60f5b76364aaa539a156402e1d68fed1e8b19dd6", "signature": "bool Banner(UiText text, ref bool open, BannerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "BannerOpts", "default": "default" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "extension", "id": "extension|Button|0|0|bool|UiText label;ButtonOpts o = default||h0824ce1ee9db1a3102bbbc57b5f43c838d0aac0c456dc9d0f5ddf3a8bb9eaae3", "signature": "bool Button(UiText label, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "extension", "id": "extension|Calendar|0|0|bool|UiText id;ref Date value||he2d734019c4ba63e626cffe267911189a15dbf5b403eff0fc6fd9898d4334662", "signature": "bool Calendar(UiText id, ref Date value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }], "summary": "cui_calendar" }, { "name": "Checkbox", "kind": "extension", "id": "extension|Checkbox|0|0|bool|UiText label;ref bool value;CheckOpts o = default||h5e553956f3358e286491451619c072577baad5689e0ba2b38257460dced857ee", "signature": "bool Checkbox(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "extension", "id": "extension|Chip|0|0|bool|UiText label;ref bool selected;ChipOpts o = default||h4ff38ab2a9a818e7526990ee6c9e6f19f63a1138e5fb79d08917e25c0d0a78ee", "signature": "bool Chip(UiText label, ref bool selected, ChipOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "selected", "type": "ref bool" }, { "name": "o", "type": "ChipOpts", "default": "default" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "extension", "id": "extension|Citation|0|0|bool|int number;in Source source||ha19b93ee36f160c6271aaa8db69ab4937531c6d0be1bdcd8e208aa7eb206aee7", "signature": "bool Citation(int number, in Source source)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "number", "type": "int" }, { "name": "source", "type": "in Source" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "extension", "id": "extension|ColorPicker|0|0|bool|UiText id;ref Color value||h337517bd7bbb67ac9f2a0f2cd3561338116b8bbce4aab6736de92c41bd706e10", "signature": "bool ColorPicker(UiText id, ref Color value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Color" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "extension", "id": "extension|ConfirmButton|0|0|bool|UiText label;ConfirmOpts o = default||ha173e8d04000010db239a95f45b5a65630e6c3a32565f48acd835a79732b2383", "signature": "bool ConfirmButton(UiText label, ConfirmOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ConfirmOpts", "default": "default" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "extension", "id": "extension|ConfirmPopover|0|0|bool|UiText id;ConfirmPopoverOpts o = default||h1c2e0982b9c59e893eae1a02030bc1dcf3a82997c3f51101dbeae1b45e768ee2", "signature": "bool ConfirmPopover(UiText id, ConfirmPopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ConfirmPopoverOpts", "default": "default" }], "summary": "cui_confirm_popover_ex" }, { "name": "ControlTile", "kind": "extension", "id": "extension|ControlTile|0|0|bool|UiText label;ref bool on;TileOpts o = default||h030def7b2183e0b26721bad6afc91a710eb6f7cf309e2889db383c64f1477cbd", "signature": "bool ControlTile(UiText label, ref bool on, TileOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "on", "type": "ref bool" }, { "name": "o", "type": "TileOpts", "default": "default" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "extension", "id": "extension|CopyButton|0|0|bool|UiText id;UiText text||hbc740c15d3716aa5400fb730217b29b8462ce4a82a1b3b2c9884600f4fbfe844", "signature": "bool CopyButton(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "Icon button that copies text to the clipboard and confirms with a check." }, { "name": "Cropper", "kind": "extension", "id": "extension|Cropper|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref RectF crop;CropperOpts o = default||hc4433b320e719d68cf000799d9f75543139b19ed26265d5d5b7ef0e7cb29a2cf", "signature": "bool Cropper(UiText id, ulong tex, int imageW, int imageH, ref RectF crop, CropperOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref RectF" }, { "name": "o", "type": "CropperOpts", "default": "default" }], "summary": "Returns true when the crop changed." }, { "name": "DataGridCellEdit", "kind": "extension", "id": "extension|DataGridCellEdit|0|0|bool|ref string buf;int cap||h36d248e6c06ee8f7c129163000d2afe51274d879f2f2a6dd8f75e48579c04c63", "signature": "bool DataGridCellEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Editable text cell: double click (or Enter on the cursor row) to edit, Enter or clicking away commits, Esc reverts. True when committed." }, { "name": "DataGridEdit", "kind": "extension", "id": "extension|DataGridEdit|0|0|bool|ref string buf;int cap||h4a0248a3c48520cf419b921b7953de24c458026bb86ab7bd00ba08e5d194ef65", "signature": "bool DataGridEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "The same editable text, inside the current cell (after an avatar, say)." }, { "name": "DataGridRow", "kind": "extension", "id": "extension|DataGridRow|0|0|bool|int row||h5fe4fdf7429d5b5aac0325fa0af56631c8d8a1ff342c03251fe30d766d9f9225", "signature": "bool DataGridRow(int row)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "extension", "id": "extension|DatePicker|0|0|bool|UiText id;ref Date value;DateOpts o = default||h993523ace680cddb6c1434059ef52f3fb34d716bed495d79d97b148118785ee2", "signature": "bool DatePicker(UiText id, ref Date value, DateOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }, { "name": "o", "type": "DateOpts", "default": "default" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "extension", "id": "extension|DateRangePicker|0|0|bool|UiText id;ref DateRange range;DateRangeOpts o = default||h9daa98cbb5461612c53362c329641eba719561905ce1865087421113c0ee84d1", "signature": "bool DateRangePicker(UiText id, ref DateRange range, DateRangeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "o", "type": "DateRangeOpts", "default": "default" }], "summary": "cui_date_range_picker_ex" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|0|0|bool|out Date value||h2030bff62c6a99d4c47e3fa2a09f8c125232327d048faf8c41c853eeafa84679", "signature": "bool DateToday(out Date value)", "parameters": [{ "name": "value", "type": "out Date" }] }, { "name": "DockItem", "kind": "extension", "id": "extension|DockItem|0|0|bool|UiText icon;UiText label;DockItemOpts o = default||h6868974ee881c1a4f660ae0207737b226f6822fd1064babdbda9860825db89d1", "signature": "bool DockItem(UiText icon, UiText label, DockItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "DockItemOpts", "default": "default" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "extension", "id": "extension|DockLoad|0|0|bool|UiText id;UiText text||hffd91787faf77c3d390dfe7deb8bb16df93eb717a31ba3fd4130eac2e2e134b4", "signature": "bool DockLoad(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "cui_dock_load" }, { "name": "EmojiFontLoadFile", "kind": "extension", "id": "extension|EmojiFontLoadFile|0|0|bool|UiText path||hf9ed3d99d8c528c9df41c7bca5721cb0eb461686e0a48bc35d1cf718f13ba0f6", "signature": "bool EmojiFontLoadFile(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "---- Emoji ---- Color emoji come from an emoji font: the system\u0027s (cui_emoji_font_load_system, which the picker calls by itself when nothing is loaded) or one the app ships. Bitmap color fonts (sbix as on macOS, CBDT as on Linux and Android) and layered ones (COLR version 0, as on Windows) are read, as is a plain outline font for one-color emoji. Sequences with skin tones, joined people and flags are looked up through the font\u0027s ligatures. Big fonts are read from the file as needed rather than loaded whole. Drawn emoji are kept in one texture and reused." }, { "name": "EmojiFontLoadMemory", "kind": "extension", "id": "extension|EmojiFontLoadMemory|0|0|bool|ReadOnlySpan\u003Cbyte\u003E data;bool copy||h8f31cf994f46f3f46e0c7fdefbd7d39be865056bcb0700421f0fee7be7142342", "signature": "bool EmojiFontLoadMemory(ReadOnlySpan\u003Cbyte\u003E data, bool copy)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "extension", "id": "extension|EmojiFontLoadSystem|0|0|bool|||he4386dbb08b9f31fd0c23d6cb333b56d4babcbd26d5e38fa72a56bc89a6bac12", "signature": "bool EmojiFontLoadSystem()", "extensionOn": "CuiSharp.Ui", "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "extension", "id": "extension|EmojiSupported|0|0|bool|UiText utf8||he0adda46557f9d84dbc4c6feb4f995d99998ffae9bdabd33371c8df1fc7899fb", "signature": "bool EmojiSupported(UiText utf8)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "extension", "id": "extension|EmptyState|0|0|bool|UiText title;EmptyOpts o = default||h3447935b9ffe834dcbe57094c2bd062fa6216fbbd3d59e4e2527f7da36f6f369", "signature": "bool EmptyState(UiText title, EmptyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "EmptyOpts", "default": "default" }], "summary": "Empty state. Returns true when its action button is clicked." }, { "name": "ExpandableText", "kind": "extension", "id": "extension|ExpandableText|0|0|bool|UiText id;UiText text;ExpandableTextOpts o = default||h0853336278f85890679dc7cd1bc9eb77a34f2cf61567d87164045778c0f8d6ad", "signature": "bool ExpandableText(UiText id, UiText text, ExpandableTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "ExpandableTextOpts", "default": "default" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "extension", "id": "extension|Fader|0|0|bool|UiText id;ref float value;float min;float max;FaderOpts o = default||h8266bbe632feda1ec1b4b87bd7f41cc9e107e496de7dfb957c9d87f1e63f8835", "signature": "bool Fader(UiText id, ref float value, float min, float max, FaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "FaderOpts", "default": "default" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the window, for a drop target to light up." }, { "name": "FilePicker", "kind": "extension", "id": "extension|FilePicker|0|0|bool|UiText id;ref bool open;ref string out;int outCap = 1024;FilePickerOpts o = default||hb1ce6182678b8b2ca569fff7fdf6d4a781314228ed80d25a4c02a48b368dd07f", "signature": "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "out", "type": "ref string" }, { "name": "outCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FilePickerOpts", "default": "default" }], "summary": "True once, with the chosen path in out, when the dialog is confirmed; *open turns false then, or on Cancel and Esc." }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|0|0|bool|UiText id;ReadOnlySpan\u003CFilterField\u003E fields;Span\u003Cuint\u003E selected;ref string search;int searchCap = 256||h05b35fdecfc879680ca00e844554bef0fb0d2b9ee533e72f50a25b4cb5e4be7a", "signature": "bool FilterBar(UiText id, ReadOnlySpan\u003CFilterField\u003E fields, Span\u003Cuint\u003E selected, ref string search, int searchCap = 256)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CFilterField\u003E" }, { "name": "selected", "type": "Span\u003Cuint\u003E" }, { "name": "search", "type": "ref string" }, { "name": "searchCap", "type": "int", "default": "256" }], "summary": "Filter chips, one dropdown per field plus a search. selected holds one option bitmask per field; returns true on any change." }, { "name": "HistogramSlider", "kind": "extension", "id": "extension|HistogramSlider|0|0|bool|UiText label;ReadOnlySpan\u003Cfloat\u003E bins;ref float lo;ref float hi;float min;float max;HistogramOpts o = default||h72cc41a613543670d7d773f53d3ed618f4ca5dda5c9cf710a8ea0c0745f9816a", "signature": "bool HistogramSlider(UiText label, ReadOnlySpan\u003Cfloat\u003E bins, ref float lo, ref float hi, float min, float max, HistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "bins", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "HistogramOpts", "default": "default" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "extension", "id": "extension|HoldButton|0|0|bool|UiText label;HoldOpts o = default||ha44fcfbb972ecfbea614fbc280b43abd9c243c1e05ac46d39ac240667e1b2a30", "signature": "bool HoldButton(UiText label, HoldOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "HoldOpts", "default": "default" }], "summary": "cui_hold_button_ex" }, { "name": "IconButton", "kind": "extension", "id": "extension|IconButton|0|0|bool|UiText icon;ButtonOpts o = default||h5215045b3b917c5c328653c82d759d884c905c9bee3fd2bcae9c23b95552a5e2", "signature": "bool IconButton(UiText icon, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "Square/round button with only an icon. Give it a tooltip so it has a name." }, { "name": "ImageCompare", "kind": "extension", "id": "extension|ImageCompare|0|0|bool|UiText id;ulong before;ulong after;ref float pos;CompareOpts o = default||hbf70b5332c704791b825e9cb8d9e14cd4661dfc72efb9bed54e7afc61aac7221", "signature": "bool ImageCompare(UiText id, ulong before, ulong after, ref float pos, CompareOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "o", "type": "CompareOpts", "default": "default" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "extension", "id": "extension|ImageViewer|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref ImageView view;ImageViewerOpts o = default||hfd49614f5ed12268c88fafc87f200f9ba92c7a0989e02c2476dadf0bb0fab3b3", "signature": "bool ImageViewer(UiText id, ulong tex, int imageW, int imageH, ref ImageView view, ImageViewerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref ImageView" }, { "name": "o", "type": "ImageViewerOpts", "default": "default" }], "summary": "Returns true when the view changed." }, { "name": "InspectorGroup", "kind": "extension", "id": "extension|InspectorGroup|0|0|bool|UiText title;ref bool open||hba33317836e4529b513b762245b52b82d2fc8fd252b7ae2174d7ffdf7ff08018", "signature": "bool InspectorGroup(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "A folding group header. Build its rows only when this returns true (it stays true while the group animates closed). open may be NULL for a plain section that does not fold." }, { "name": "IsDisabled", "kind": "property", "id": "property|IsDisabled|0|0|bool||get;|h66819bb8e34991aa0b9a8fdf312d84bcc577f1aed8196c14e9cfc9792bab4b6e", "signature": "bool IsDisabled { get; }", "summary": "True inside a Disabled scope (or one a parent opened)." }, { "name": "JsonView", "kind": "extension", "id": "extension|JsonView|0|0|bool|UiText id;UiText json;JsonOpts o = default||h206112d6d2798b04c8b2e35b11a492fe5022438268206f218c32f29f9efa0bbf", "signature": "bool JsonView(UiText id, UiText json, JsonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "json", "type": "UiText" }, { "name": "o", "type": "JsonOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Kanban", "kind": "extension", "id": "extension|Kanban|0|0|bool|UiText id;out KanbanMove kanbanmove;DrawFn body||h06459ebde22b2b48e212f80454450eb468aac078e18e50dee8f7aa756afdbe5e", "signature": "bool Kanban(UiText id, out KanbanMove kanbanmove, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "kanbanmove", "type": "out KanbanMove" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_kanban_begin The card was dropped into another column, and the move is written into the out parameter." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|bool|Key key||h8b8a390f57bfe976c9fae2d30fec99be77322f69944968534c26bc08482cb159", "signature": "bool KeyDown(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True while the key is held (with auto-repeat)." }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|0|0|bool|Key key||hd4bc534b9e8b12976f0c38f87635500fca89a9d6949ea0a103354f41e6d39700", "signature": "bool KeyPressed(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True on the frame the key went down, including repeats." }, { "name": "Knob", "kind": "extension", "id": "extension|Knob|0|0|bool|UiText id;ref float value;float min;float max;KnobOpts o = default||hfceb051da509c5e36d4bd22400b42f24a8cc0da8ba2c27a23c8e378855c66680", "signature": "bool Knob(UiText id, ref float value, float min, float max, KnobOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "KnobOpts", "default": "default" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "extension", "id": "extension|KvEditor|0|0|bool|UiText id;Span\u003CKeyValue\u003E pairs;ref int count;int capacity;KvEditorOpts o = default||h5d7a626c1e0d0a2cbf62a8c0287d50a3401dbcf803f979b35c42c7899fb4db07", "signature": "bool KvEditor(UiText id, Span\u003CKeyValue\u003E pairs, ref int count, int capacity, KvEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pairs", "type": "Span\u003CKeyValue\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "KvEditorOpts", "default": "default" }], "summary": "cui_kv_editor_ex" }, { "name": "LevelMeter", "kind": "extension", "id": "extension|LevelMeter|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E levels;LevelMeterOpts o = default||he2b90272968549a2bc948844fa0f2e5fcb787783f5c0716cf3d8c48db532ab7e", "signature": "bool LevelMeter(UiText id, ReadOnlySpan\u003Cfloat\u003E levels, LevelMeterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "levels", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "LevelMeterOpts", "default": "default" }], "summary": "Returns true when the clip light was clicked to clear it." }, { "name": "Link", "kind": "extension", "id": "extension|Link|0|0|bool|UiText text||h20b90df40ad793aa00f00bae1aeddd8c78d8d1ee7eccdf7f709db8b78317b57a", "signature": "bool Link(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "extension", "id": "extension|ListItem|0|0|bool|UiText title;ListItemOpts o = default||h59240e7a8fd8d1115830e25d32bfc60e47f14e4645e8e48b58281c710be7f5c9", "signature": "bool ListItem(UiText title, ListItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ListItemOpts", "default": "default" }], "summary": "cui_list_item_ex" }, { "name": "LoadImage", "kind": "method", "id": "method|LoadImage|0|0|bool|UiText path;out ulong texture;out int width;out int height||hfe19783db558936a04580a0831ac4289470f120ccd1ef3163fcee3e05649da1f", "signature": "bool LoadImage(UiText path, out ulong texture, out int width, out int height)", "parameters": [{ "name": "path", "type": "UiText" }, { "name": "texture", "type": "out ulong" }, { "name": "width", "type": "out int" }, { "name": "height", "type": "out int" }], "summary": "Decodes a PNG or JPEG from disk into a texture and reports its pixel size. Returns false when the file cannot be read or decoded; the texture is then 0. Release it with DestroyImage." }, { "name": "MenuItem", "kind": "extension", "id": "extension|MenuItem|0|0|bool|UiText label;MenuItemOpts o = default||h6f02a24b8c3e14f743f1164e34c40e0c32e7647a378fc18f6fac4bd77708b604", "signature": "bool MenuItem(UiText label, MenuItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuItemOpts", "default": "default" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "extension", "id": "extension|ModelPicker|0|0|bool|UiText id;ReadOnlySpan\u003CModel\u003E models;ref int selected;ModelPickerOpts o = default||h30f09bcdbcd0511d67feaab5ce1eb2d84b0769c8eb387e2675cdc4b9faf9d869", "signature": "bool ModelPicker(UiText id, ReadOnlySpan\u003CModel\u003E models, ref int selected, ModelPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "models", "type": "ReadOnlySpan\u003CModel\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ModelPickerOpts", "default": "default" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "extension", "id": "extension|MoneyInput|0|0|bool|UiText id;ref double value;MoneyOpts o = default||hd65fb688e51d9a482d2f9031cdb57646790ad85a3c809e961601a8725a753b42", "signature": "bool MoneyInput(UiText id, ref double value, MoneyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "o", "type": "MoneyOpts", "default": "default" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|0|0|bool|MouseButton button||h8e0f0ad614e613c5c152543c9917af645f5ae90299577124c2da8f7863f69862", "signature": "bool MouseClicked(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True on the frame a mouse button went down." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|bool|MouseButton button||hf67b74dbd9e44892fdb6b384ac7537f75c21e2054ec9267ee7cf800f77c4c81d", "signature": "bool MouseDown(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True while a mouse button is held." }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;Span\u003Cbool\u003E selected;MultiSelectOpts o = default||h3e128721808f3d5d3438e029c09a821039a75342e2851271e35420570d1affca", "signature": "bool MultiSelect(UiText id, ReadOnlySpan\u003Cstring\u003E items, Span\u003Cbool\u003E selected, MultiSelectOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "selected", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "MultiSelectOpts", "default": "default" }], "summary": "A searchable list with one checkbox per item and chips for the chosen ones. Returns true on the frame an entry flips." }, { "name": "NavItem", "kind": "extension", "id": "extension|NavItem|0|0|bool|UiText label;NavOpts o = default||h163b7c5bf544cc2227cbef6b64c928a89e62b8536a9e4ab947179a86d455c59d", "signature": "bool NavItem(UiText label, NavOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "NavOpts", "default": "default" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "property", "id": "property|NeedsRedraw|0|0|bool||get;|h5aadd05568570958d5b9529ecc317e3ce874d6c40baa003636859fb90a0da9fc", "signature": "bool NeedsRedraw { get; }" }, { "name": "NodeDeleted", "kind": "extension", "id": "extension|NodeDeleted|0|0|bool|ref int nodeId||hc3cfc3ad4c4fc3a042b1dbb26d3de5739a59ee9b1e9f8c1741f772a5e535d6bc", "signature": "bool NodeDeleted(ref int nodeId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeInput", "kind": "extension", "id": "extension|NodeInput|0|0|bool|int pinId;UiText label;PinOpts o = default||hd37a374006c3c8cd18c68d9d7503bd5160359d3f3e458d3531e756c52700b1f0", "signature": "bool NodeInput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "extension", "id": "extension|NodeLink|0|0|bool|int linkId;int fromPin;int toPin||hab2ff05d12c3863dc35ff7ced8cdef83783fba6a2e16dbd81214feb3eaf01910", "signature": "bool NodeLink(int linkId, int fromPin, int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeLinkCreated", "kind": "extension", "id": "extension|NodeLinkCreated|0|0|bool|ref int fromPin;ref int toPin||h7c136a895333c132f83c1d99cf5809163d5430c0060eaaedcf7bbe0f15f462bd", "signature": "bool NodeLinkCreated(ref int fromPin, ref int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "What the user did this frame, one event per call; call them after cui_node_editor_begin (and up to the end of the frame)." }, { "name": "NodeLinkRemoved", "kind": "extension", "id": "extension|NodeLinkRemoved|0|0|bool|ref int linkId||h8cf7097abf407418a15af49e45ee086b240ec03b1e130c7888ce620da1bbadca", "signature": "bool NodeLinkRemoved(ref int linkId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "ref int" }], "summary": "Part of cui_node_link \u2014 A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeOutput", "kind": "extension", "id": "extension|NodeOutput|0|0|bool|int pinId;UiText label;PinOpts o = default||h3750efacdd047bf840c0482278adf33fa6dd72ffa3acb6bf2c1afd789b95d351", "signature": "bool NodeOutput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|0|0|bool|UiText id;ref double value;double min;double max;NumberOpts o = default||h695eacf696437442db4c71e212e9d772037965f7b79fa0164581c32f72012f09", "signature": "bool Number(UiText id, ref double value, double min, double max, NumberOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "o", "type": "NumberOpts", "default": "default" }] }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|0|0|bool|UiText id;ref string value;int length||h8029c922f0c302147b4a9d172f51e477cf692656857072b2505965f1cc911eaf", "signature": "bool OtpInput(UiText id, ref string value, int length)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "length", "type": "int" }], "summary": "One-time code input: length boxes, buffer length \u002B 1." }, { "name": "Pagination", "kind": "extension", "id": "extension|Pagination|0|0|bool|UiText id;ref int page;int pageCount||h79ccb8aea896cd889c714acd8763edcf22dbbfb029a1dbd70ed9639354c6b6c8", "signature": "bool Pagination(UiText id, ref int page, int pageCount)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PopoverIsOpen", "kind": "extension", "id": "extension|PopoverIsOpen|0|0|bool|UiText id||h83722811a2be8261fbe93cc555b026a4a1e130ec294d2cd25013358d929a3c0e", "signature": "bool PopoverIsOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "extension", "id": "extension|PropBool|0|0|bool|UiText label;ref bool value;PropOpts o = default||h121ac40771efea9741585563443f4c4687f7a10d137ffd9d268555b5501ddd64", "signature": "bool PropBool(UiText label, ref bool value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "extension", "id": "extension|PropColor|0|0|bool|UiText label;ref Color value;PropOpts o = default||h6ca0bc5ddc35dae8cf9131bd28c26cd31e497e501164de0d50828fb7983a1cc2", "signature": "bool PropColor(UiText label, ref Color value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref Color" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "A swatch and hex value that opens the color picker." }, { "name": "PropEnum", "kind": "extension", "id": "extension|PropEnum|0|0|bool|UiText label;ReadOnlySpan\u003Cstring\u003E items;ref int index;PropOpts o = default||h241aa42ffd01f5c7a9fadb861af4a608b0c8a014ae458b62692370d10cf009d8", "signature": "bool PropEnum(UiText label, ReadOnlySpan\u003Cstring\u003E items, ref int index, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "extension", "id": "extension|PropFloat|0|0|bool|UiText label;ref float value;PropOpts o = default||hc8efd7345903f342766598358e2e5c0998eb7933cf7f5cec0429b86873ff6ccf", "signature": "bool PropFloat(UiText label, ref float value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "extension", "id": "extension|PropInt|0|0|bool|UiText label;ref int value;PropOpts o = default||hd93df8234e1afb0dba5df9a1531c8936c732948e17db67e12102617d568c305b", "signature": "bool PropInt(UiText label, ref int value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "extension", "id": "extension|PropText|0|0|bool|UiText label;ref string buf;int cap;PropOpts o = default||h46a1a717145b1f3a7800e8921d45ea9b002d8c2fdf5958fbf3c03f97fc47d1db", "signature": "bool PropText(UiText label, ref string buf, int cap, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "extension", "id": "extension|PropVec|0|0|bool|UiText label;ref float value;int components;PropOpts o = default||h57600f963270b3c592fd247d9b1f943533361ae615e7b6ca52e287fa289a67b2", "signature": "bool PropVec(UiText label, ref float value, int components, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "Compact X, Y (Z, W) scrub fields side by side; value holds 2, 3 or 4 floats." }, { "name": "QueryBuilder", "kind": "extension", "id": "extension|QueryBuilder|0|0|bool|UiText id;ReadOnlySpan\u003CQueryField\u003E fields;Span\u003CQueryNode\u003E nodes;ref int count;int capacity;QueryOpts o = default||h63279934815740f429812f645fc20bbc38efc937b246d56e61a9f171034a9922", "signature": "bool QueryBuilder(UiText id, ReadOnlySpan\u003CQueryField\u003E fields, Span\u003CQueryNode\u003E nodes, ref int count, int capacity, QueryOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "Span\u003CQueryNode\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "QueryOpts", "default": "default" }], "summary": "cui_query_builder_ex" }, { "name": "Radio", "kind": "extension", "id": "extension|Radio|0|0|bool|UiText label;ref int value;int option;CheckOpts o = default||h837451b9483026bc7e273c76e5251c0de524d770f182a8365674ac44553130ee", "signature": "bool Radio(UiText label, ref int value, int option, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "extension", "id": "extension|RadioCards|0|0|bool|UiText id;ReadOnlySpan\u003CChoice\u003E choices;ref int index;RadioCardsOpts o = default||h277ecfd91b4ab6ad87556ac5585d5014c5f8f4b70743ded6f2d33b25b513c439", "signature": "bool RadioCards(UiText id, ReadOnlySpan\u003CChoice\u003E choices, ref int index, RadioCardsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "choices", "type": "ReadOnlySpan\u003CChoice\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "RadioCardsOpts", "default": "default" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "extension", "id": "extension|RadioGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index||h13b5e8871098bf87979cd713e4fa844042e8066de15ba83cf7b5cda071897cee", "signature": "bool RadioGroup(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "extension", "id": "extension|RangeCalendar|0|0|bool|UiText id;ref DateRange range;int months||h8c74871e3d5b09aa52567046cfb0cacddba5d6bd45af5a0343aa6ea880da3344", "signature": "bool RangeCalendar(UiText id, ref DateRange range, int months)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "months", "type": "int" }], "summary": "One or two months side by side; click a start and an end." }, { "name": "RangeSlider", "kind": "extension", "id": "extension|RangeSlider|0|0|bool|UiText label;ref float lo;ref float hi;float min;float max||h431a1c22347795ecfaf7422d776daf2552ad13b1bbafc0b34e7ddfbb9f6fca1e", "signature": "bool RangeSlider(UiText label, ref float lo, ref float hi, float min, float max)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "extension", "id": "extension|Rating|0|0|bool|UiText id;ref int value;int max = 5||ha54ef468c924f3613d361d9d3e4ba18c9bed4ef0f7d7dd855532a052b89231ce", "signature": "bool Rating(UiText id, ref int value, int max = 5)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int", "default": "5" }], "summary": "cui_rating" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|0|0|bool|||h289d889249190a219f4708d3f6a34916df30d8dccdd623b1af17d06cf7ad4fe9", "signature": "bool ReorderEnd()" }, { "name": "RulerSlider", "kind": "extension", "id": "extension|RulerSlider|0|0|bool|UiText label;ref float value;float min;float max;RulerOpts o = default||hda8dec175710635b7de7215517d587b9a5332ed440922d693ed02813d9c4deb7", "signature": "bool RulerSlider(UiText label, ref float value, float min, float max, RulerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RulerOpts", "default": "default" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "extension", "id": "extension|Scrub|0|0|bool|UiText label;ref float value;float min;float max;ScrubOpts o = default||h816f9787704b09241842573d59264e0cc5674f4a764e0ae2054b721f3ad20a7b", "signature": "bool Scrub(UiText label, ref float value, float min, float max, ScrubOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "ScrubOpts", "default": "default" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SegmentedOpts o = default||h8452b4d90fbd938f7492782df2bfd7e49e6f17b79bb32a7fa92536dbbc52bbfb", "signature": "bool Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "extension", "id": "extension|Select|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SelectOpts o = default||h4546d9051044aa80f649b171897799d53c415b998250abdc626bf84e5341bea3", "signature": "bool Select(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SelectOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SelectOpts", "default": "default" }], "summary": "cui_select_ex" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|0|0|bool|Mods mods;Key key||h23544d98ad9364c783897d23b07d28fd4c4889f44ac4f6b734142ae19cee295a", "signature": "bool Shortcut(Mods mods, Key key)", "parameters": [{ "name": "mods", "type": "Mods" }, { "name": "key", "type": "Key" }] }, { "name": "ShortcutRecorder", "kind": "extension", "id": "extension|ShortcutRecorder|0|0|bool|UiText id;ref KeyCombo combo;ShortcutRecorderOpts o = default||h22c067848057da16592bf471e38a3d5c8d3e7a976928a24a34dda5e650586e2a", "signature": "bool ShortcutRecorder(UiText id, ref KeyCombo combo, ShortcutRecorderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "combo", "type": "ref KeyCombo" }, { "name": "o", "type": "ShortcutRecorderOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "SignaturePad", "kind": "extension", "id": "extension|SignaturePad|0|0|bool|UiText id;SignatureOpts o = default||h26a7180ac812cfc40208765b73de3283d8bdc2a773db48e467c36bfac61e2f47", "signature": "bool SignaturePad(UiText id, SignatureOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SignatureOpts", "default": "default" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "extension", "id": "extension|Slider|0|0|bool|UiText label;ref float value;float min;float max;SliderOpts o = default||h07890e859be8c8053afac54f6a7ef888728ac54358e77cca1a0c6f9d5936fcd0", "signature": "bool Slider(UiText label, ref float value, float min, float max, SliderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "SliderOpts", "default": "default" }], "summary": "Elastic slider: the track stretches like rubber when dragged past its ends." }, { "name": "StatusBarItem", "kind": "extension", "id": "extension|StatusBarItem|0|0|bool|UiText label;StatusItemOpts o = default||h35fa1b9b36f005ceff913dc858202baee2f50d4678537b369e987582020f4d84", "signature": "bool StatusBarItem(UiText label, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A small clickable item (\u0022Ln 12, Col 4\u0022, \u0022UTF-8\u0022). Returns true when clicked." }, { "name": "StatusButton", "kind": "extension", "id": "extension|StatusButton|0|0|bool|UiText label;Status status;StatusButtonOpts o = default||h5c9d9e2cd49f70a00398d2fe51ccf1933f78becdf2d7e5b610c5e2427ee30722", "signature": "bool StatusButton(UiText label, Status status, StatusButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "status", "type": "Status" }, { "name": "o", "type": "StatusButtonOpts", "default": "default" }], "summary": "cui_status_button_ex" }, { "name": "Switch", "kind": "extension", "id": "extension|Switch|0|0|bool|UiText label;ref bool value;CheckOpts o = default||he58bf080044a84430ae1c50aae77072ba3e8bc1dc7ad4f8576f39e74324cd486", "signature": "bool Switch(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "extension", "id": "extension|TabBar|0|0|bool|UiText id;ReadOnlySpan\u003CTabBarItem\u003E items;ref int selected;TabBarOpts o = default||h3b532a1edd39eaf1a6db4278f4c3c26674c9a67777ba72dd890ca8c67ecbb0d8", "signature": "bool TabBar(UiText id, ReadOnlySpan\u003CTabBarItem\u003E items, ref int selected, TabBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTabBarItem\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TabBarOpts", "default": "default" }], "summary": "cui_tab_bar_ex" }, { "name": "TableRow", "kind": "extension", "id": "extension|TableRow|0|0|bool|bool selected||h5862a1074065231ee67e616f36b6ef2708e5a53d06e9c647dfc4e50f9f54feb9", "signature": "bool TableRow(bool selected)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "selected", "type": "bool" }], "summary": "Begin a row. Returns true when the row is clicked." }, { "name": "Tabs", "kind": "extension", "id": "extension|Tabs|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;TabsOpts o = default||h44602f1d285b43ccb2a4a3f04fc10eeb9824d034d9c4786918ec03417b25d800", "signature": "bool Tabs(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, TabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "TabsOpts", "default": "default" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|0|0|bool|UiText id;ref string value;TagOpts o = default||h7d78f96fc27b022e7ce11dd6a4742470284f57dc2e17866e76fb8b61780bf9f0", "signature": "bool TagInput(UiText id, ref string value, TagOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "TagOpts", "default": "default" }], "summary": "Comma-separated tags in one field; enter or comma adds, backspace removes." }, { "name": "ThemeSwitcher", "kind": "extension", "id": "extension|ThemeSwitcher|0|0|bool|ref int mode;bool withSystem||h6ac2911103fa89f29df34fe5abd3737f62b03fad01ac2c5f7ce9f96f81466e7b", "signature": "bool ThemeSwitcher(ref int mode, bool withSystem)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "bool" }], "summary": "Theme switcher: light, dark and (optionally) system, as a compact icon segmented control. mode is 0 light, 1 dark, 2 system. Light and dark are applied for you; for system call cui_set_theme with the OS setting. Returns true when mode changed." }, { "name": "ThemeToggle", "kind": "extension", "id": "extension|ThemeToggle|0|0|bool|||hac003993a346e758ec03a7b5cae2fbd886929a7ae077d9f9459a78e6cb9e9028", "signature": "bool ThemeToggle()", "extensionOn": "CuiSharp.Ui", "summary": "Sun and moon icon button that toggles the theme with a morph." }, { "name": "TimeDial", "kind": "extension", "id": "extension|TimeDial|0|0|bool|UiText id;ref int hour;ref int minute;float size||hc81f9c9c6cda6a218a1a97579124c3a6415d5a3bec246c2545e9638a3cbefadc", "signature": "bool TimeDial(UiText id, ref int hour, ref int minute, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "Time dial: a clock face. Drag the hand to set hours, then minutes." }, { "name": "TimePicker", "kind": "extension", "id": "extension|TimePicker|0|0|bool|UiText id;ref int hour;ref int minute;TimeOpts o = default||h2f5e91438efc0191e949769048849a3fb8bb629993aef37fa50790655d5a16e2", "signature": "bool TimePicker(UiText id, ref int hour, ref int minute, TimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "o", "type": "TimeOpts", "default": "default" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "extension", "id": "extension|ToastActionClicked|0|0|bool|int handle||h80802ec80123dda69208be2582b05ccc3d887063aa242cdb0a7d5f946417cce1", "signature": "bool ToastActionClicked(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E labels;Span\u003Cbool\u003E values;ToggleGroupOpts o = default||hbf4630396185f73a4900042d74fe62f684385217a55457d20067677982015437", "signature": "bool ToggleGroup(UiText id, ReadOnlySpan\u003Cstring\u003E labels, Span\u003Cbool\u003E values, ToggleGroupOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "labels", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "values", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "ToggleGroupOpts", "default": "default" }], "summary": "A row of toggle buttons sharing one bool per label. Independent by default; Exclusive makes them behave like radio buttons. Returns true on the frame an entry flips." }, { "name": "ToolbarButton", "kind": "extension", "id": "extension|ToolbarButton|0|0|bool|UiText icon;ref bool toggle;ToolOpts o = default||h280488daf404cebc0318d20c1e09b3000ff82103111371b7fdf8c2735fe2c970", "signature": "bool ToolbarButton(UiText icon, ref bool toggle, ToolOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "toggle", "type": "ref bool" }, { "name": "o", "type": "ToolOpts", "default": "default" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeCell", "kind": "extension", "id": "extension|TreeCell|0|0|bool|UiText label;int depth;bool hasChildren;ref bool open;UiText icon||h7d87cfa9d747ede3646c93ffc4296bb6d158f59a36670c943b38b8891f9a08bd", "signature": "bool TreeCell(UiText label, int depth, bool hasChildren, ref bool open, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "bool" }, { "name": "open", "type": "ref bool" }, { "name": "icon", "type": "UiText" }], "summary": "Tree cell: indentation, a disclosure chevron and a label, for tree tables (use it in a table or grid cell). Returns true when *open toggled." }, { "name": "TreeClicked", "kind": "extension", "id": "extension|TreeClicked|0|0|bool|||he0d6c1a473304bfa16c30035268639d026f37ddeade6a53e36b6a43056ea0039", "signature": "bool TreeClicked()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "extension", "id": "extension|Typewriter|0|0|bool|UiText id;UiText text;TextFxOpts o = default||hd2793d1d9701d6e1c2de232ed4163f8a0a17de8606e1a0c00033798e26804d7b", "signature": "bool Typewriter(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Types the text out. When the text grows (streamed tokens) it carries on from where it was; other changes start over. Returns true once complete." }, { "name": "VoiceOrb", "kind": "extension", "id": "extension|VoiceOrb|0|0|bool|UiText id;VoiceState state;float level;VoiceOrbOpts o = default||h55678c858554bd6ffbc3fbad4b03aeb90fff9d582a2dad8b10090a9496cf7d41", "signature": "bool VoiceOrb(UiText id, VoiceState state, float level, VoiceOrbOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "o", "type": "VoiceOrbOpts", "default": "default" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "property", "id": "property|WantsKeyboard|0|0|bool||get;|h9fd1d2033ea34ec49759c84f9a199c15d92ad7e28a6a1a4cc3ebee535bec764b", "signature": "bool WantsKeyboard { get; }" }, { "name": "WantsMouse", "kind": "property", "id": "property|WantsMouse|0|0|bool||get;|h88ad7771300bfdd824d0527cc05ab2978f5a741b34494adb9660c29ae0fd53b7", "signature": "bool WantsMouse { get; }", "summary": "True when the pointer is over this window and the UI wants it." }, { "name": "Waveform", "kind": "extension", "id": "extension|Waveform|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E peaks;ref float progress;WaveformOpts o = default||h82b5eb85d1dd0e891471303dae6af8ef45f993a4522c265b5380640be5f95a34", "signature": "bool Waveform(UiText id, ReadOnlySpan\u003Cfloat\u003E peaks, ref float progress, WaveformOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "peaks", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "progress", "type": "ref float" }, { "name": "o", "type": "WaveformOpts", "default": "default" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "extension", "id": "extension|WheelPicker|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;WheelOpts o = default||h6e20c98f3670a089db93c4a37a910bd23a7f6b3a8ad5c2cd67e1294d58a2fae4", "signature": "bool WheelPicker(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, WheelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "WheelOpts", "default": "default" }], "summary": "cui_wheel_picker_ex" }, { "name": "Time", "kind": "property", "id": "property|Time|0|0|double||get;|h59d804a6c66b43aad6ffe38fb8d686d405da1f1e73a127a3af738e7ba55df397", "signature": "double Time { get; }", "summary": "Seconds since the app started. Monotonic; use it for animation phases." }, { "name": "Animate", "kind": "method", "id": "method|Animate|0|0|float|UiText id;float target||h6aa8f80b2f784f8d21be090f3514e71ea8c5c9e820fb1fc041073b0956552fa8", "signature": "float Animate(UiText id, float target)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }], "summary": "Moves a value toward target with a spring, keyed by id." }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|0|0|float|UiText id;float target;float duration;float bounce||h18961b791dced18013209a15d6f4c3ea989233c2d507d6986cf80ff8eea91b47", "signature": "float AnimateSpring(UiText id, float target, float duration, float bounce)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "Moves a value toward target with a spring of the given duration and bounce." }, { "name": "DeltaTime", "kind": "property", "id": "property|DeltaTime|0|0|float||get;|h9b38e45e1e2ffd64837bd659bc02203c5bcd38701ca6046589022c3424ef1a09", "signature": "float DeltaTime { get; }", "summary": "Seconds since the previous frame, clamped by the host." }, { "name": "DpiScale", "kind": "property", "id": "property|DpiScale|0|0|float||get;|hd6fea6745004ce2bacbb8eac54eebd74e77705ff2605b31ccb4a18c241ebb063", "signature": "float DpiScale { get; }", "summary": "Device pixels per logical point for the window this frame draws into." }, { "name": "ActivityRings", "kind": "extension", "id": "extension|ActivityRings|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E rings;RingsOpts o = default||he739303ba236c8b2947fe3ee08443b09f019e41b8acac0f7da681d197ae0307e", "signature": "int ActivityRings(UiText id, ReadOnlySpan\u003CVizItem\u003E rings, RingsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rings", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "RingsOpts", "default": "default" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "extension", "id": "extension|AgentPlan|0|0|int|UiText id;ReadOnlySpan\u003CPlanStep\u003E steps;AgentPlanOpts o = default||h6067d2501a7a26bcccda0db7d672b245a2fcff12d68ede6c491d265a45d1b4b9", "signature": "int AgentPlan(UiText id, ReadOnlySpan\u003CPlanStep\u003E steps, AgentPlanOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CPlanStep\u003E" }, { "name": "o", "type": "AgentPlanOpts", "default": "default" }], "summary": "cui_agent_plan_ex" }, { "name": "AvatarUpload", "kind": "extension", "id": "extension|AvatarUpload|0|0|int|UiText id;UiText name;ref ulong image;float size||h2032bcd7f55566afffa2cde5d86987aa5b1a36719844c8d755d13b19b16255bb", "signature": "int AvatarUpload(UiText id, UiText name, ref ulong image, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "Avatar upload: a round avatar that takes a dropped image, with a camera badge on hover. Returns 1 when *image changed, -1 when clicked (browse), 0 otherwise. A dropped image is loaded with cui_image_load." }, { "name": "BarList", "kind": "extension", "id": "extension|BarList|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;BarListOpts o = default||h0e2abad96db38540b47d6c74f2cc68369ed40c046f6bf6c2d2dea3c10d465680", "signature": "int BarList(UiText id, ReadOnlySpan\u003CVizItem\u003E items, BarListOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "BarListOpts", "default": "default" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "extension", "id": "extension|Breadcrumb|0|0|int|ReadOnlySpan\u003Cstring\u003E items||h7e5435f64395bbaf15f18d4923a996c88ca3bd79318405fd33733751c65e8682", "signature": "int Breadcrumb(ReadOnlySpan\u003Cstring\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "extension", "id": "extension|CalendarHeatmap|0|0|int|UiText id;Date start;ReadOnlySpan\u003Cfloat\u003E values;CalendarHeatmapOpts o = default||hdf61b9c82e018ac6c9a5f0797950a2a53c4826b47594dd073d18121a1691e796", "signature": "int CalendarHeatmap(UiText id, Date start, ReadOnlySpan\u003Cfloat\u003E values, CalendarHeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "Date" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "CalendarHeatmapOpts", "default": "default" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "extension", "id": "extension|Candlestick|0|0|int|UiText id;ReadOnlySpan\u003CCandle\u003E candles;CandlestickOpts o = default||hdab8fd71be859d6cc56de05a9e2feb81a2532c176230e766fa2ba67fa5260e3c", "signature": "int Candlestick(UiText id, ReadOnlySpan\u003CCandle\u003E candles, CandlestickOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "candles", "type": "ReadOnlySpan\u003CCandle\u003E" }, { "name": "o", "type": "CandlestickOpts", "default": "default" }], "summary": "Returns the candle under the crosshair (pointer or keys), or -1." }, { "name": "CardStack", "kind": "extension", "id": "extension|CardStack|0|0|int|UiText id;int count;DrawFn body;CardStackOpts o = default||h2dadbccb1e5391a98cfda3530cd5b460c17e79dd01b6927d2346f58287b56332", "signature": "int CardStack(UiText id, int count, DrawFn body, CardStackOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CardStackOpts", "default": "default" }], "summary": "cui_card_stack_begin The end call reports which card in the stack is active, or -1, so the body overload returns it." }, { "name": "Checklist", "kind": "extension", "id": "extension|Checklist|0|0|int|UiText id;ReadOnlySpan\u003CCheckStep\u003E steps;ChecklistOpts o = default||hb1cdf5bee54759618ba4c2e6386ab30794ff911948e833f0610afb911e63f554", "signature": "int Checklist(UiText id, ReadOnlySpan\u003CCheckStep\u003E steps, ChecklistOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CCheckStep\u003E" }, { "name": "o", "type": "ChecklistOpts", "default": "default" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "extension", "id": "extension|CommandPalette|0|0|int|ref bool open;ReadOnlySpan\u003CCommand\u003E commands||h001b59aa0ea6df8a0ea3d57d57bc1d6c25690db136f11ce1d794c93d9c7bbfc3", "signature": "int CommandPalette(ref bool open, ReadOnlySpan\u003CCommand\u003E commands)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "open", "type": "ref bool" }, { "name": "commands", "type": "ReadOnlySpan\u003CCommand\u003E" }], "summary": "Spotlight style command palette. Returns the index of the chosen command, or -1. Open it with a shortcut: if (cui_shortcut(ui, CUI_MOD_PRIMARY, CUI_KEY_K)) open = true;" }, { "name": "DiffRows", "kind": "extension", "id": "extension|DiffRows|0|0|int|UiText id;Span\u003CDiffRow\u003E rows;int first = default||h5c94a97ef7958912de5bdb07673a9402664eef62f0238701e95229d154b6ac95", "signature": "int DiffRows(UiText id, Span\u003CDiffRow\u003E rows, int first = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rows", "type": "Span\u003CDiffRow\u003E" }, { "name": "first", "type": "int", "default": "default" }], "summary": "Copies up to rows.Length of the diff view\u0027s rows into rows, starting at row first." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the window is tracking as dropped; a dropzone reports them first." }, { "name": "Dropzone", "kind": "extension", "id": "extension|Dropzone|0|0|int|UiText id;DropzoneOpts o = default||h1a4c314252379bc356942c2d624bf8dc2388e096a816cda96c08748d80f874cf", "signature": "int Dropzone(UiText id, DropzoneOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DropzoneOpts", "default": "default" }], "summary": "cui_dropzone_ex" }, { "name": "Funnel", "kind": "extension", "id": "extension|Funnel|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E stages;FunnelOpts o = default||he5202d3e37c12c123db9bc8dddaf33f25d6ee0d1790d21a12846d2233ba2f5e4", "signature": "int Funnel(UiText id, ReadOnlySpan\u003CVizItem\u003E stages, FunnelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "FunnelOpts", "default": "default" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "extension", "id": "extension|Gantt|0|0|int|UiText id;Span\u003CGanttTask\u003E tasks;Date origin;int days;GanttOpts o = default||h6405eb5f36078bd6c78b652a408e39c0fdb1c3a89355a3c7e0368f5d2306981a", "signature": "int Gantt(UiText id, Span\u003CGanttTask\u003E tasks, Date origin, int days, GanttOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tasks", "type": "Span\u003CGanttTask\u003E" }, { "name": "origin", "type": "Date" }, { "name": "days", "type": "int" }, { "name": "o", "type": "GanttOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Heatmap", "kind": "extension", "id": "extension|Heatmap|0|0|int|UiText id;ReadOnlySpan\u003Cfloat\u003E values;int rows;int cols;HeatmapOpts o = default||hb23a8befed5cb93e645e80d3a23d15bd4f06bdbf22a6f65815edb1bef4129225", "signature": "int Heatmap(UiText id, ReadOnlySpan\u003Cfloat\u003E values, int rows, int cols, HeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "o", "type": "HeatmapOpts", "default": "default" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "extension", "id": "extension|InlineEdit|0|0|int|UiText id;ref string buf;int cap = 256;InlineEditOpts o = default||hdc2fcc11f00fc875b370e784540495eec9451da64bf16b076e0bf19bfc7c475a", "signature": "int InlineEdit(UiText id, ref string buf, int cap = 256, InlineEditOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int", "default": "256" }, { "name": "o", "type": "InlineEditOpts", "default": "default" }], "summary": "cui_inline_edit_ex" }, { "name": "PasswordStrength", "kind": "extension", "id": "extension|PasswordStrength|0|0|int|UiText password||h485b27b320ae208ea07b64ec8e1f317ab018ad6465c8ddb02cd01a4424689adb", "signature": "int PasswordStrength(UiText password)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "password", "type": "UiText" }], "summary": "Password strength meter (0 weak .. 4 strong). Returns the score." }, { "name": "PromptSuggestions", "kind": "extension", "id": "extension|PromptSuggestions|0|0|int|UiText id;ReadOnlySpan\u003CPromptSuggestion\u003E items;PromptSuggestionsOpts o = default||ha7ba62105e302f4fa64dd30bf005d6217ab47f44b8de4dcb382d55bb8686de65", "signature": "int PromptSuggestions(UiText id, ReadOnlySpan\u003CPromptSuggestion\u003E items, PromptSuggestionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CPromptSuggestion\u003E" }, { "name": "o", "type": "PromptSuggestionsOpts", "default": "default" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "extension", "id": "extension|RadarChart|0|0|int|UiText id;ReadOnlySpan\u003CSeries\u003E series;ReadOnlySpan\u003Cstring\u003E axes;RadarOpts o = default||hc3ad2df41c9c6b26dc90f3b916ae531651d598ceef8ab541dd035331b9ea768a", "signature": "int RadarChart(UiText id, ReadOnlySpan\u003CSeries\u003E series, ReadOnlySpan\u003Cstring\u003E axes, RadarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CSeries\u003E" }, { "name": "axes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "RadarOpts", "default": "default" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "extension", "id": "extension|Reactions|0|0|int|UiText id;Span\u003CReaction\u003E items||h7528193af8d452456269a4867874808d1a14d9b9b10f82f0f851537b4f5fcc31", "signature": "int Reactions(UiText id, Span\u003CReaction\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "Span\u003CReaction\u003E" }], "summary": "cui_reactions" }, { "name": "Sankey", "kind": "extension", "id": "extension|Sankey|0|0|int|UiText id;ReadOnlySpan\u003Cstring\u003E nodes;ReadOnlySpan\u003CSankeyLink\u003E links;SankeyOpts o = default||h54e60f881596c8425c36f81063bcf3bca0ae525a5cb9acb9d9291c93343d590b", "signature": "int Sankey(UiText id, ReadOnlySpan\u003Cstring\u003E nodes, ReadOnlySpan\u003CSankeyLink\u003E links, SankeyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "links", "type": "ReadOnlySpan\u003CSankeyLink\u003E" }, { "name": "o", "type": "SankeyOpts", "default": "default" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "extension", "id": "extension|ScatterChart|0|0|int|UiText id;ReadOnlySpan\u003CScatterSeries\u003E series;ScatterOpts o = default||hff3593e05140bd9fcdc8f3c4f996ca064ecb18c59024984a51431c04b86145eb", "signature": "int ScatterChart(UiText id, ReadOnlySpan\u003CScatterSeries\u003E series, ScatterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CScatterSeries\u003E" }, { "name": "o", "type": "ScatterOpts", "default": "default" }], "summary": "cui_scatter_chart_ex" }, { "name": "SourceList", "kind": "extension", "id": "extension|SourceList|0|0|int|UiText id;ReadOnlySpan\u003CSource\u003E sources||h6f59cfee8fa72dc7eca177af354e0a6f666d1ec1975ff987f31f00841dd57a41", "signature": "int SourceList(UiText id, ReadOnlySpan\u003CSource\u003E sources)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "sources", "type": "ReadOnlySpan\u003CSource\u003E" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "extension", "id": "extension|SpeedDial|0|0|int|UiText id;ReadOnlySpan\u003CSpeedAction\u003E actions;SpeedDialOpts o = default||h8f3dcc4f3e218426dd87000bfe603cd7a2a64cc3cdaa021cbc2dea064de87347", "signature": "int SpeedDial(UiText id, ReadOnlySpan\u003CSpeedAction\u003E actions, SpeedDialOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "actions", "type": "ReadOnlySpan\u003CSpeedAction\u003E" }, { "name": "o", "type": "SpeedDialOpts", "default": "default" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "extension", "id": "extension|SplitBar|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;SplitBarOpts o = default||h16bc37b28b54a3959b1ffffa5d212e2ce5767fa384b82e9693cfc0cf3ecba083", "signature": "int SplitBar(UiText id, ReadOnlySpan\u003CVizItem\u003E items, SplitBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "SplitBarOpts", "default": "default" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "extension", "id": "extension|SplitButton|0|0|int|UiText label;ReadOnlySpan\u003Cstring\u003E items;SplitButtonOpts o = default||hab5170280449718e8bb4e18299a9939e8c4585d7f457498a1884dce52f1a5b83", "signature": "int SplitButton(UiText label, ReadOnlySpan\u003Cstring\u003E items, SplitButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "SplitButtonOpts", "default": "default" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItem", "kind": "extension", "id": "extension|SwipeItem|0|0|int|UiText id;ReadOnlySpan\u003CSwipeAction\u003E left;ReadOnlySpan\u003CSwipeAction\u003E right;DrawFn body||hde404a799a1b468b7df4ac9ce65a247c02d83d6788917c5eb60378cb5ebf709d", "signature": "int SwipeItem(UiText id, ReadOnlySpan\u003CSwipeAction\u003E left, ReadOnlySpan\u003CSwipeAction\u003E right, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "left", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "right", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_swipe_item_begin The end call reports which swipe action was taken, or -1, so the body overload returns it." }, { "name": "Toast", "kind": "extension", "id": "extension|Toast|0|0|int|UiText title;ToastOpts o = default||hf3201662ddfe1d84b58e5851658ccd1e36ba6d53acdb101b80df283a2f0ee264", "signature": "int Toast(UiText title, ToastOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ToastOpts", "default": "default" }], "summary": "Queue a toast. Returns a handle; cui_toast_action_clicked(handle) tells whether its action button was pressed." }, { "name": "Toc", "kind": "extension", "id": "extension|Toc|0|0|int|UiText scrollId;ReadOnlySpan\u003CTocItem\u003E items||h226d5cf4f0b7b58f3c7df69b1762d483d977d46968c43d4468a7db886e3771f0", "signature": "int Toc(UiText scrollId, ReadOnlySpan\u003CTocItem\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTocItem\u003E" }], "summary": "cui_toc" }, { "name": "TreeTableDepth", "kind": "extension", "id": "extension|TreeTableDepth|0|0|int|||h6f4316e2e33c3ebb9b14932b5fc588d50a9b4b5b52a70f672523341f85c34b6b", "signature": "int TreeTableDepth()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "extension", "id": "extension|TreeTableRow|0|0|int|||h6f0d82997cbd7dfd529bd1d04c7fd279173e864794b9acde1a6f8cf0deb80e45", "signature": "int TreeTableRow()", "extensionOn": "CuiSharp.Ui", "summary": "The next row in view: returns its node, or -1 when done. Then build its cells: cui_tree_table_name first, then cui_data_grid_cell(_text)." }, { "name": "Treemap", "kind": "extension", "id": "extension|Treemap|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;TreemapOpts o = default||hea14dd60cbeb36d78c486e9549f6917d7d431d80c23f54fe86c191e4e647a6e4", "signature": "int Treemap(UiText id, ReadOnlySpan\u003CVizItem\u003E items, TreemapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "TreemapOpts", "default": "default" }], "summary": "cui_treemap_ex" }, { "name": "Waffle", "kind": "extension", "id": "extension|Waffle|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;WaffleOpts o = default||hbb9c8a5b82ec5547e3c36f001de128742bbee117c0a3da39be26ed99600e3617", "signature": "int Waffle(UiText id, ReadOnlySpan\u003CVizItem\u003E items, WaffleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "WaffleOpts", "default": "default" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "extension", "id": "extension|WeekCalendar|0|0|int|UiText id;Date weekStart;Span\u003CCalendarEvent\u003E events;WeekOpts o = default||h6ebe88be9f390e98d2c4c1e3f796e62f09b23309fe4f21093ce3e1e506653fc9", "signature": "int WeekCalendar(UiText id, Date weekStart, Span\u003CCalendarEvent\u003E events, WeekOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "weekStart", "type": "Date" }, { "name": "events", "type": "Span\u003CCalendarEvent\u003E" }, { "name": "o", "type": "WeekOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|int?|UiText id;ReadOnlySpan\u003Cstring\u003E items;int value;SegmentedOpts o = default||hfb54a79c3ab77ad5f8295229f391ceafab348451a898c9a700f5adccce24a7a9", "signature": "int? Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, int value, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "value", "type": "int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "Returns the chosen index on a change, otherwise null." }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|string|Accent accent||h0e37f10433228fc19b1442b10a947b92a35e4c1252d1688e2237e77f9c961f50", "signature": "static string AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "The name of an accent as the UI shows it: \u0022Violet\u0022." }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|string|Key key||ha31820aa00db9a4c2b6c84c51b79eb08b079cecb712605806d2763204d3f8fc8", "signature": "static string KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "The name of a key as the UI shows it: A, Space, F5." }, { "name": "CronDescribe", "kind": "extension", "id": "extension|CronDescribe|0|0|string?|UiText cron||hd4c9ada55bcf91c1c683541837ecf35a841f847a3eee89aabbb26c529db1cd47", "signature": "string? CronDescribe(UiText cron)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cron", "type": "UiText" }], "summary": "\u0022Every weekday at 09:30\u0022, in frame memory; NULL when invalid." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "EmojiPicker", "kind": "extension", "id": "extension|EmojiPicker|0|0|string?|UiText id;ref string recent;ref int tone;EmojiPickerOpts o = default||h15890f303b9bfcb523f735ab2f9e6844938b14c17122927fe58f4714c2d1577c", "signature": "string? EmojiPicker(UiText id, ref string recent, ref int tone, EmojiPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "recent", "type": "ref string" }, { "name": "tone", "type": "ref int" }, { "name": "o", "type": "EmojiPickerOpts", "default": "default" }], "summary": "cui_emoji_picker_ex" }, { "name": "ShortcutLabel", "kind": "extension", "id": "extension|ShortcutLabel|0|0|string?|KeyCombo combo||hbc2b6ede54efc1cdfc932533bfaa02df6e2091b08013ed268adaeb5f70fe77fd", "signature": "string? ShortcutLabel(KeyCombo combo)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "combo", "type": "KeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "LastId", "kind": "property", "id": "property|LastId|0|0|uint||get;|hb45a60a2627c7935e56a964ff3d4b23b89b21d8a180962ea221f54c95e1e68d2", "signature": "uint LastId { get; }", "summary": "The id of the widget drawn last, which is what Target and the other \u0022point at this\u0022 APIs take. Read it immediately after the control." }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|0|0|uint|UiText id||hf729d2c0f406a6b883b2cbb0e869941e897aaaef891e76b22daa8e479857208d", "signature": "uint MakeId(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "A stable cui_id for a string, for Animate and State callers." }, { "name": "CreateImage", "kind": "method", "id": "method|CreateImage|0|0|ulong|int width;int height;ReadOnlySpan\u003Cbyte\u003E rgba||h5ee4689276531d64da132f6a1cc9e229a83100259c335ca4ab5a007c20a68ce7", "signature": "ulong CreateImage(int width, int height, ReadOnlySpan\u003Cbyte\u003E rgba)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Uploads RGBA8 pixels as a texture. The pixels are copied, so the span may live on the stack. Release the handle with DestroyImage when the page that shows it is done with it \u2014 State\u0060\u00601 with an onFree callback is the usual owner." }, { "name": "DockSave", "kind": "extension", "id": "extension|DockSave|0|0|ulong|UiText id;ref string buf;int cap||h10c71156edbbe3c5e529016814c796584f469d6d0b0b7466e4bde6ba2b0893b4", "signature": "ulong DockSave(UiText id, ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Saved layout: one line, e.g. dock1 h0.22([*Scene tree,Assets],v0.7([*Viewport],[*Log,-Console])) h splits side by side and v stacks, the number is the first child\u0027s share, [..] is a leaf\u0027s tabs in order, * the selected tab, - a closed panel; a backslash escapes , [ ] ( ) and itself in names. cui_dock_save returns the full length (as snprintf does) and writes what fits, or 0 when there is no layout. cui_dock_load replaces the layout (and sets each panel\u0027s *open from it on its next frame); names it does not know yet are kept for when they appear. Malformed text returns false and changes nothing." }, { "name": "FrameCount", "kind": "property", "id": "property|FrameCount|0|0|ulong||get;|h7254dceb0c426d20c644d45bf8a5ca3e9a444a54dee4128f0adcf9db4b00c8fc", "signature": "ulong FrameCount { get; }", "summary": "Frames presented so far, counted by CUI." }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|void|UiText title;ref bool open;DrawFn body||h5a6e18ec6c43cdc43af8a25085ec728fca441d6f03d65c135ac01415603bdc5b", "signature": "void Accordion(UiText title, ref bool open, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "AddFontFallback", "kind": "extension", "id": "extension|AddFontFallback|0|0|void|Font font;Font fallback||h046e79521dc69de86a794461399d269a9ea51fd36fd162afddde019ca45934e1", "signature": "void AddFontFallback(Font font, Font fallback)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "Adds a fallback CUI reaches for when font has no glyph. The chain holds at most four fallbacks; when it is exhausted CUI scans every other loaded face before giving up. A glyph no face has draws nothing at all \u2014 not even a .notdef box in every font \u2014 so an untranslated screen comes up blank with no warning. UseSystemFontFallback is the check for that, and the bundled faces are Latin. The glyph atlas is what a large script actually costs: one texture of CUI_ATLAS_MAX (4096) pixels per side, with the frame\u0027s glyph cache reset between frames, so a font that makes every frame load new glyphs is the expensive case. Register the faces a language needs at startup, not per frame." }, { "name": "AgentStatus", "kind": "extension", "id": "extension|AgentStatus|0|0|void|UiText text;AgentStatusOpts o = default||h61ac25149bb714e9244c62474d67f93158a7f9bd1583135da08e6b32a5ac5120", "signature": "void AgentStatus(UiText text, AgentStatusOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "AgentStatusOpts", "default": "default" }], "summary": "cui_agent_status_ex" }, { "name": "Avatar", "kind": "extension", "id": "extension|Avatar|0|0|void|UiText name;AvatarOpts o = default||h86ad06b6f35491ed7cd4f337c2a2688db37d73bfec4c164c7b90267365ce8af2", "signature": "void Avatar(UiText name, AvatarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "AvatarOpts", "default": "default" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "extension", "id": "extension|AvatarGroup|0|0|void|ReadOnlySpan\u003Cstring\u003E names;int maxVisible = 4;float size = 32f||h2aebe32a1e3101b42a18771fc77f1b10cb011e17bea49c9f7cbf01e0be5ca252", "signature": "void AvatarGroup(ReadOnlySpan\u003Cstring\u003E names, int maxVisible = 4, float size = 32f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "names", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "maxVisible", "type": "int", "default": "4" }, { "name": "size", "type": "float", "default": "32f" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "extension", "id": "extension|Badge|0|0|void|UiText text;BadgeOpts o = default||h2e146cbd498ce9ebfdcbb978fe8414bd9ff4389e1361c02fa453b24fcfc15d1c", "signature": "void Badge(UiText text, BadgeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "BadgeOpts", "default": "default" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||hdd24ad8679c5e482e048ed73ce69225b69c19ad5704a83f9a427093e4551242a", "signature": "void BarChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A bar chart of one series. See LineChart." }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||h8d42b4d0a483459731da6ec00c3001f0d1f69bd28a07b4618095e800910f67c7", "signature": "void BarChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|void|UiText id;int count;ref int index;DrawFn body;CarouselOpts o = default||haf6583b1edd10132a276ed92f3c7cc7b139b36644ab8586eadce1ce1ae7cf431", "signature": "void Carousel(UiText id, int count, ref int index, DrawFn body, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ChatDivider", "kind": "extension", "id": "extension|ChatDivider|0|0|void|UiText label||hdb17d96dbafb815bdf9d77a06116d1a2d004dbf0c4190716f604d7f7503032a5", "signature": "void ChatDivider(UiText label)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ChatOpts o = default||h0067e7f3c9a991c64026e5433bcd84d614a634bb99011d70cf7548c49b4d0e46", "signature": "void ChatMessage(UiText text, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "Same as the overload with ref markdownResult, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ref MarkdownResult markdownResult;ChatOpts o = default||he419f66e4261e2e5f8341890ace8476938bbabe2ce7747bb1cf378821e824da4", "signature": "void ChatMessage(UiText text, ref MarkdownResult markdownResult, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "markdownResult", "type": "ref MarkdownResult" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "extension", "id": "extension|Code|0|0|void|UiText text||heb5c95cf0725be5b6a3d5d064b904bf47fbe9b2889e74bd910d61b666764b439", "signature": "void Code(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "extension", "id": "extension|CodeBlock|0|0|void|UiText id;UiText code;CodeOpts o = default||h649344835854747b9cbde6157eb263d70a9df1f246e3854f21806fef682fedac", "signature": "void CodeBlock(UiText id, UiText code, CodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "code", "type": "UiText" }, { "name": "o", "type": "CodeOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "CodeEditorFind", "kind": "extension", "id": "extension|CodeEditorFind|0|0|void|UiText id;UiText query||ha5ad5e0daacc15247f7497756195d2f521b1676f4f4275c1360e7dd6a099a27e", "signature": "void CodeEditorFind(UiText id, UiText query)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "query", "type": "UiText" }], "summary": "Opens the find bar with query and selects the next match (NULL closes)." }, { "name": "CodeEditorGoto", "kind": "extension", "id": "extension|CodeEditorGoto|0|0|void|UiText id;int line;int column||he046da323e1fb441003f0aff4a8b1fb21892920cc0d306e08811c4d4b477dfae", "signature": "void CodeEditorGoto(UiText id, int line, int column)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "On the editor\u0027s next frame: put the caret at a line and column (1 based), focus the editor and scroll there. Call from the same id scope." }, { "name": "CodeEditorSelect", "kind": "extension", "id": "extension|CodeEditorSelect|0|0|void|UiText id;int anchor;int cursor||hbae83fe5ce54e61f495c10224f17c5f97155815624a80c230f94b710bbd25bbc", "signature": "void CodeEditorSelect(UiText id, int anchor, int cursor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "On the next frame: select bytes anchor..cursor, focus and scroll there." }, { "name": "Component", "kind": "extension", "id": "extension|Component|0|0|void|Component component||h848740a50a9eb8dc56641315816144114376ac9c315542b20691de3cbc9300d4", "signature": "void Component(Component component)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "component", "type": "Component" }], "summary": "Draws component, with its own error boundary." }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|void|UiText id;DrawFn body||h639ca26a4859a28b5d0c68a17b414a22b59f92e32460ae828991807709b85741", "signature": "void ContextMenu(UiText id, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ContextMeter", "kind": "extension", "id": "extension|ContextMeter|0|0|void|UiText id;float used;float limit;ContextOpts o = default||h19d9530359d94af2f36c2f8a876d49576ae0e0c4c67e5270f45fdf36934d1c78", "signature": "void ContextMeter(UiText id, float used, float limit, ContextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "o", "type": "ContextOpts", "default": "default" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "extension", "id": "extension|Countdown|0|0|void|UiText id;double secondsLeft;CountdownOpts o = default||h821d564a1492fd931adfbbc43d4c182d207343abf289fdf0702df537f77d848a", "signature": "void Countdown(UiText id, double secondsLeft, CountdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "secondsLeft", "type": "double" }, { "name": "o", "type": "CountdownOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Counter", "kind": "extension", "id": "extension|Counter|0|0|void|UiText id;double value;CounterOpts o = default||h0b05971fdda28297316e6f4447ca5d501aa7a11fe9da2f3bdc3756e5b7c5ffd3", "signature": "void Counter(UiText id, double value, CounterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "double" }, { "name": "o", "type": "CounterOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|void|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;DrawFn body;GridOpts o = default||h9c456dfa1016ff4f42bd0014595270a05519919f42743036e5fc9f8cb8147c63", "signature": "void DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, DrawFn body, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Draws the body only when open; closes and publishes state even on exceptions." }, { "name": "DataGridCell", "kind": "extension", "id": "extension|DataGridCell|0|0|void|||h17266c47617cb3e20e5aafb4e0740fb451853300d3ea2f4cf357c27f4e0c97e5", "signature": "void DataGridCell()", "extensionOn": "CuiSharp.Ui", "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "extension", "id": "extension|DataGridCellText|0|0|void|UiText text||hbc15a57820d975503239bf1e6c43046de51dd25c53400b94dc05e4c5ec821c22", "signature": "void DataGridCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_data_grid_cell_text" }, { "name": "DestroyImage", "kind": "method", "id": "method|DestroyImage|0|0|void|ulong texture||h233513e5e0f04cab6a29321054080d17776d33b361cec53060f335038ac6c4f4", "signature": "void DestroyImage(ulong texture)", "parameters": [{ "name": "texture", "type": "ulong" }], "summary": "Frees a texture obtained from CreateImage, LoadImage or a widget that loaded one for you (the avatar upload). Passing 0 does nothing, so a field can be cleared and released in one step." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|void|UiText title;ref bool open;DrawFn body;DialogOpts o = default||hb9a2198e7b3396b3f8e81f53972b52816f4e10d0c965758cb0b8e59b20c0dad6", "signature": "void Dialog(UiText title, ref bool open, DrawFn body, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|void|UiText title;ref bool open;DrawFn body;DockPanelOpts o = default||haec3aec1f30c0641ff9d8d21ef9827c8984e582f195575f5bdafa8e30c26bf47", "signature": "void DockPanel(UiText title, ref bool open, DrawFn body, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockSeparator", "kind": "extension", "id": "extension|DockSeparator|0|0|void|||h4f7b4ffb27ff0752d3414c6e36155f014d64756d9c99299d0061f4d3b662e948", "signature": "void DockSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_dock_separator" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|0|0|void|UiText id;float[] values;string[]? labels = null;ChartOpts o = default||h105b6ba9a48212810ca8eaa543dfd59b8bcbb7a078d6d00c43caa8337cf3e984", "signature": "void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "float[]" }, { "name": "labels", "type": "string[]?", "default": "null" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|0|0|void|float cx;float cy;float radius;float fromRadians;float toRadians;float thickness;Color color||h75c08329ccf02db7c649c3de4062b857fcb9fb9b5607cc0cdc3ffa02cdd3a32a", "signature": "void DrawArc(float cx, float cy, float radius, float fromRadians, float toRadians, float thickness, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "fromRadians", "type": "float" }, { "name": "toRadians", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "An arc from fromRadians to toRadians." }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|0|0|void|float cx;float cy;float radius;Color color||hb1d4daba0313192a47661dfdcba2bbea774eacd066b6e992e4b4698dddcde09a", "signature": "void DrawCircle(float cx, float cy, float radius, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A filled circle." }, { "name": "DrawEmoji", "kind": "extension", "id": "extension|DrawEmoji|0|0|void|UiText utf8;RectF r||ha6979720ffa9f6b639eedcdc2f34912ae99c3e8f6db6d29d49b7a755626e5e61", "signature": "void DrawEmoji(UiText utf8, RectF r)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "r", "type": "RectF" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|0|0|void|UiText icon;RectF r;Color color;float size = 16f||hd54b671c520dcce41f616162ba2038b0604408edb2178e4e538b9fd737631621", "signature": "void DrawIcon(UiText icon, RectF r, Color color, float size = 16f)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "16f" }], "summary": "Draws an icon glyph into a rectangle." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;Color tint;float radius = default||h02908132cac945b65c579f6460fda70375b546d9df86cb8e4446b3d6369a8ad2", "signature": "void DrawImage(ulong texture, RectF destination, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws the whole texture into destination." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;RectF uv;Color tint;float radius = default||h19922f36165664b04b3f13745794f29cd576c87d690e38abfacd839c9eebe6ea", "signature": "void DrawImage(ulong texture, RectF destination, RectF uv, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "uv", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws a texture into destination, sampling uv in 0..1 texture coordinates." }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|0|0|void|float x0;float y0;float x1;float y1;float thickness;Color color||h7c718f3cf261fcdd9890ecc99c37b4c7ef88951855160bbd3b4b84bbb0906183", "signature": "void DrawLine(float x0, float y0, float x1, float y1, float thickness, Color color)", "parameters": [{ "name": "x0", "type": "float" }, { "name": "y0", "type": "float" }, { "name": "x1", "type": "float" }, { "name": "y1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A line between two points." }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;Color color||h0a35ee50b137930776943658c6a4b0a802340e6fc1443224120f511919b82309", "signature": "void DrawPolygon(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, Color color)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "color", "type": "Color" }], "summary": "A convex polygon through the given x/y pairs." }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;float thickness;Color color;bool closed = default||h4c7f07e3c9fc697e544cc98214f394946bae499ac03450d9e5812ced69ce04e9", "signature": "void DrawPolyline(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, float thickness, Color color, bool closed = default)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "closed", "type": "bool", "default": "default" }], "summary": "A polyline through the given x/y pairs." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;Color border;float borderWidth;float radius = default||h4ba9a89c0df1a36edef3bc858b12de8bb1c2d9020a801bc38d101b16e9839611", "signature": "void DrawRect(RectF r, Color fill, Color border, float borderWidth, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "border", "type": "Color" }, { "name": "borderWidth", "type": "float" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle and strokes its border." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;float radius = default||hbede7dc4a83173600f87c3151cfb881b786025c1a85bfc6cfd41ac9c76b997ec", "signature": "void DrawRect(RectF r, Color fill, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle." }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|0|0|void|RectF r;Color top;Color bottom;float radius = default||hdfb2b1697ea2ab6d38c629c2592cb4496e061c2c2d2d73080e90e315c179fa59", "signature": "void DrawRectGradient(RectF r, Color top, Color bottom, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "top", "type": "Color" }, { "name": "bottom", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle with a vertical gradient." }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|0|0|void|RectF r;Color color;float blur = 12f;float spread = default;float dx = default;float dy = 2f;float radius = default||hd608a1aa394a6724e278bdd79827b6dd27fa0b58389aad230a6976a37e6e1bc9", "signature": "void DrawShadow(RectF r, Color color, float blur = 12f, float spread = default, float dx = default, float dy = 2f, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "blur", "type": "float", "default": "12f" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "dx", "type": "float", "default": "default" }, { "name": "dy", "type": "float", "default": "2f" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "A soft drop shadow behind a rounded rectangle." }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|0|0|void|UiText text;float x;float y;Color color;float size = 12f;Font font = Font.Body||ha379555b96749e8089ccd4a67f9f06f0c97c8e3bf6628a829212e087cdf44073", "signature": "void DrawText(UiText text, float x, float y, Color color, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Draws text outside layout, from a string, UTF-8 bytes, or interpolation." }, { "name": "Emoji", "kind": "extension", "id": "extension|Emoji|0|0|void|UiText utf8;float size||hcce49478392e105a5082cf12fe2c18e8a68954f1395b48ec19c91052abdbfa90", "signature": "void Emoji(UiText utf8, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|void|UiText title;ref bool open;DrawFn body;ExpandableCardOpts o = default||h45a44cd40dda73a400ba664b3783303201ba3f221c6a0c0021b4519c21652a83", "signature": "void ExpandableCard(UiText title, ref bool open, DrawFn body, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Gap", "kind": "extension", "id": "extension|Gap|0|0|void|float size||h89c0f099b911f74a22d756328dc6f8c634ce4e2561cfb7403549af06bfe120d2", "signature": "void Gap(float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "extension", "id": "extension|Gauge|0|0|void|UiText label;float value;float size = 130f||h0d866db02a3773b1f94110de3177536a50289e2eb2f4f1328d5ea96164ce0e3d", "signature": "void Gauge(UiText label, float value, float size = 130f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "130f" }], "summary": "cui_gauge" }, { "name": "GradientText", "kind": "extension", "id": "extension|GradientText|0|0|void|UiText text;GradientTextOpts o = default||h3f77173db929d5d0326fb0d6aacd31968c768ec86de8e25973b46685c05898a0", "signature": "void GradientText(UiText text, GradientTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "GradientTextOpts", "default": "default" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "extension", "id": "extension|Heading|0|0|void|UiText text;int level = 2||h557aed71184ccf0f99a503a8e9e31f47bd8f19daa88deaf28acbf6bd2f58da8f", "signature": "void Heading(UiText text, int level = 2)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "level", "type": "int", "default": "2" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "extension", "id": "extension|HexViewGoto|0|0|void|UiText id;ulong offset||he99988413132b927d206b59bb10ff266913c4aed14642da49708324af5d3a4ea", "signature": "void HexViewGoto(UiText id, ulong offset)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "offset", "type": "ulong" }], "summary": "Go to offset: on the view\u0027s next frame its cursor moves to offset, that byte becomes the selection and it scrolls into view (to the middle when it was out of sight). Wire a \u0022Go to\u0022 field to it; it is safe to call every frame." }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|void|UiText id;DrawFn body;HoverCardOpts o = default||h1feb5df25fc90d51f65ce5d548e1c92a15c20d4dbcfb120ec57197031f6bf861", "signature": "void HoverCard(UiText id, DrawFn body, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Icon", "kind": "method", "id": "method|Icon|0|0|void|UiText icon;float size = 16f;Color color = default||ha3c2c3c378676921960172e72c0cd75e176f823d910f148819cb62c5c07fcdb7", "signature": "void Icon(UiText icon, float size = 16f, Color color = default)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "size", "type": "float", "default": "16f" }, { "name": "color", "type": "Color", "default": "default" }] }, { "name": "Image", "kind": "extension", "id": "extension|Image|0|0|void|ulong tex;ImageOpts o = default||h4aba4bdd877e6dfb8e45ba090aba9ec93a98e0c6441d125c9038d1be437dc417", "signature": "void Image(ulong tex, ImageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "tex", "type": "ulong" }, { "name": "o", "type": "ImageOpts", "default": "default" }], "summary": "cui_image_ex" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|void|UiText id;DrawFn body;InspectorOpts o = default||h841cdf7d1c9125bb04f373e4d2f93c10eccdb9bcbb43da0de7dccc3769b41a32", "signature": "void Inspector(UiText id, DrawFn body, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Kbd", "kind": "extension", "id": "extension|Kbd|0|0|void|UiText keys||h417076fb4869022dd26ff1c344a189d091fce7e448e96c96224d62f1a451f6d1", "signature": "void Kbd(UiText keys)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "keys", "type": "UiText" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Label", "kind": "extension", "id": "extension|Label|0|0|void|UiText text||h72e24445b52f829a1571cbd68c5c6fac6835700a497232df3ad518950a463221", "signature": "void Label(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||h3cdc2012853a1aaf00f86229fc128bb443d3b47540340bb22a37e12c48168603", "signature": "void LineChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A line chart of one series. This is the overload most charts want: the samples are passed directly, and an empty span draws nothing at all." }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||hc086d5dcd804a5f509ce75cc8bee9f3f8667a55ceb50af4ffaabadafd4609ad0", "signature": "void LineChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Loader", "kind": "extension", "id": "extension|Loader|0|0|void|LoaderOpts o = default||h5945e358ac0fbf3d0cb4c3df6db1ab5234d41a31263116b2fb63eee24b3e9451", "signature": "void Loader(LoaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "LoaderOpts", "default": "default" }], "summary": "cui_loader_ex" }, { "name": "LogView", "kind": "extension", "id": "extension|LogView|0|0|void|UiText id;LogBuffer log;LogViewOpts o = default||h629acfd43966ab117356ba793bd70ad6b9dfe93587dd289ab839a823556ecc7b", "signature": "void LogView(UiText id, LogBuffer log, LogViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "log", "type": "LogBuffer" }, { "name": "o", "type": "LogViewOpts", "default": "default" }], "summary": "Draws log with its toolbar: level filters, search with highlight, Follow, Copy and Clear. Scrolling up turns Follow off; reaching the bottom turns it back on." }, { "name": "MarkReady", "kind": "method", "id": "method|MarkReady|0|0|void|||h8dc4126f75765e5089f4b5e2bbbb22f0fc14d612aafd61d5d0998543d5b212d0", "signature": "void MarkReady()", "summary": "Declares that this frame shows complete, current app data. This is what dotnet cui --wait ready waits for: readiness is a property of the frame that marks it, so the next frame starts unready and a screen that goes back to loading is never seen as ready on the strength of an older mark." }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|void|UiText label;DrawFn body;MenuOpts o = default||h46a55ef5a629d54cea211e8cff97db0e260e3c390254e4a74263ef25c2b8fe9d", "signature": "void Menu(UiText label, DrawFn body, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|void|UiText label;DrawFn body;MenuBarMenuOpts o = default||h1b1bac394be04ea33333eee937841b7391a0fc642ea6951788ddb9eb4b199110", "signature": "void MenuBarMenu(UiText label, DrawFn body, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuLabel", "kind": "extension", "id": "extension|MenuLabel|0|0|void|UiText text||h55d6bbe5cef52bef1137dee2490a736200d78319bc81b81cdd5d2b7fbe16d2b6", "signature": "void MenuLabel(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "extension", "id": "extension|MenuSeparator|0|0|void|||h7babb70cb1540862bd8b5e000e173763dc48b627688082cf19bcc2e23c25ba73", "signature": "void MenuSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "extension", "id": "extension|Meter|0|0|void|UiText label;float used;float total;UiText unit = default||h1d8b4e728d051b711957aa7fbc9bcf832cd505900fdce01a27a79bdc8e9d89fa", "signature": "void Meter(UiText label, float used, float total, UiText unit = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "UiText", "default": "default" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "extension", "id": "extension|Metric|0|0|void|UiText label;UiText value;MetricOpts o = default||h9bab4a4dc12d3dace12e7106ac89323fdbfdf7c56bba9a0e2f0c40e9c95fbef6", "signature": "void Metric(UiText label, UiText value, MetricOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "UiText" }, { "name": "o", "type": "MetricOpts", "default": "default" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "extension", "id": "extension|Muted|0|0|void|UiText text||haf3dda321d9292f4d904d1870d8bb5dea3c49cb695524acb75572822bff2f9b8", "signature": "void Muted(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "extension", "id": "extension|NavSection|0|0|void|UiText title||hf901052c3e5ba17c7b523058746a19e11e181239069f2b8fbb43adfafdbdcafc", "signature": "void NavSection(UiText title)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }], "summary": "cui_nav_section" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|void|int nodeId;ref float x;ref float y;UiText title;DrawFn body;NodeOpts o = default||he2a131c3e341325536d7aaaafc4f83046a7d7e9c45eead6545f141826f6d7e82", "signature": "void Node(int nodeId, ref float x, ref float y, UiText title, DrawFn body, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|void|UiText id;ref NodeView view;DrawFn body;NodeEditorOpts o = default||h5854f9b818a6cafa92571b34f94f5f0c435142d546b6f628a1174b1effe7ac67", "signature": "void NodeEditor(UiText id, ref NodeView view, DrawFn body, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NumberRoll", "kind": "extension", "id": "extension|NumberRoll|0|0|void|UiText id;UiText text;TextFxOpts o = default||h67c63e017e57f215b45262ce043c429d9ff6e486e3c507e0c84f3d5daa53a5bf", "signature": "void NumberRoll(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "A figure whose changed digits roll into place: up when the value rises, down when it falls, a beat apart from the left; unchanged characters stay still. Pass the formatted text (\u0022$64,210\u0022, \u00221.2k\u0022); digits are tabular." }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|void|UiText id;ref int segment;DrawFn body||h875759cac9f5832bcb6782caaa672db98fbc277a19f31017d3155a38c398dce5", "signature": "void PathBarMenu(UiText id, ref int segment, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|0|0|void|||hd223700ffd7f730814c69ec5bd11dae3b4dd4a7a738e754b775a351e0c980575", "signature": "void PopClip()", "summary": "Ends the clip opened by PushClip." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|void|UiText id;DrawFn body;PopoverOpts o = default||h597b85fb0e87089ca73543226f68a70b713ea0f9c949974f2c0425c7028438f3", "signature": "void Popover(UiText id, DrawFn body, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopoverClose", "kind": "extension", "id": "extension|PopoverClose|0|0|void|UiText id||hca913fedac00c0c27ef6b37fb3f90cb88cd76862d0e5884e8f4e8dac8ba415b3", "signature": "void PopoverClose(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_close" }, { "name": "PopoverOpen", "kind": "extension", "id": "extension|PopoverOpen|0|0|void|UiText id||h424af0f304196b1a039d033eb75b4bff9dca251d0232dbc683699a925dfaa16d", "signature": "void PopoverOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "extension", "id": "extension|PopoverToggle|0|0|void|UiText id||h58628645f47f2c9c2896b1ec70e7d661c861b7abb26420d9b750e21380db5e02", "signature": "void PopoverToggle(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "extension", "id": "extension|Presence|0|0|void|UiText id;ReadOnlySpan\u003CPresenceUser\u003E users;int maxVisible;float size||h33db1325c05049463f7c9a97e3df833a114732c8a156f6ee2d775dad7a69c214", "signature": "void Presence(UiText id, ReadOnlySpan\u003CPresenceUser\u003E users, int maxVisible, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "users", "type": "ReadOnlySpan\u003CPresenceUser\u003E" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "extension", "id": "extension|Progress|0|0|void|float value;ProgressOpts o = default||h811e97c08fde2498427fc6a279e22a1c2ea3bc1ce69c3d642c73832f10623d4d", "signature": "void Progress(float value, ProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "ProgressOpts", "default": "default" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "extension", "id": "extension|ProgressRing|0|0|void|UiText label;float value;float size = 104f||h2e30430280ecfbc1925c0164f0bb59a54da3003b073ef1535c6cb3c2d4e8e057", "signature": "void ProgressRing(UiText label, float value, float size = 104f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "104f" }], "summary": "Circular progress with the value in the middle." }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|0|0|void|RectF r||h95bac6dcebf24b24b986a596422f965edfee8cd616663a1e59d0da09a9bd3efb", "signature": "void PushClip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle. Pair with PopClip." }, { "name": "RadialGauge", "kind": "extension", "id": "extension|RadialGauge|0|0|void|UiText id;float value;float min;float max;RadialGaugeOpts o = default||h69d72defa0179e7173e927724367a4bb9575a2e75bbd9949225f9eab886c2992", "signature": "void RadialGauge(UiText id, float value, float min, float max, RadialGaugeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RadialGaugeOpts", "default": "default" }], "summary": "cui_radial_gauge_ex" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|void|UiText id;DrawFn body;ReasoningOpts o = default||h892c50fc79e75386733c9149e18f72832dbdccb2d31c29b39a76a16ea185386e", "signature": "void Reasoning(UiText id, DrawFn body, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|0|0|void|UiText id;int[] order||hb312c00b771ad378a0324c96198659487c28a3c21c9d71a96e3f595957ffe21f", "signature": "void ReorderBegin(UiText id, int[] order)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "order", "type": "int[]" }] }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|0|0|void|||h4986f5ad7c5201d2830f1dee1e374ca29980fe9c408b3ef833336aabba3ed66c", "signature": "void RequestRedraw()", "summary": "Requests another frame; call only from the synchronous draw path." }, { "name": "RequestWakeup", "kind": "extension", "id": "extension|RequestWakeup|0|0|void|float seconds||h1e8d82035be8a5e226207bb6bd0874265dba29cf4b6a4779f60b95ab7cc567f7", "signature": "void RequestWakeup(float seconds)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "seconds", "type": "float" }], "summary": "Asks for one more frame after seconds, even when nothing else would wake the window. Use it for a timer, a toast timeout or a poll interval." }, { "name": "ResponseStatus", "kind": "extension", "id": "extension|ResponseStatus|0|0|void|int status;double seconds;double bytes||h63e7c9d5181d7379043415c904edf88e89db4e9781c0577d221801f58399a1cf", "signature": "void ResponseStatus(int status, double seconds, double bytes)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollTo", "kind": "extension", "id": "extension|ScrollTo|0|0|void|UiText scrollId;float y||h795b4245740f616fce2565ac40d5ea6dfa995143af81eedbc7067db0b0f1e7c0", "signature": "void ScrollTo(UiText scrollId, float y)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "extension", "id": "extension|Secondary|0|0|void|UiText text||h4f32c253f11a19b26ceb397d205e5e2d5c6c8e5db01a0ef2e8984e0a2c78ef46", "signature": "void Secondary(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "extension", "id": "extension|Separator|0|0|void|||h913edddc60366f9044c6b66111a5672080bdd3cb042c5febb3487cac873e4f6b", "signature": "void Separator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_separator" }, { "name": "SetFont", "kind": "extension", "id": "extension|SetFont|0|0|void|Font role;Font font||hcab29e22e2019bb3b541b3254c5e4027f76d357aa2ea4e762ced8560cad6c652", "signature": "void SetFont(Font role, Font font)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "Makes font the face every widget using role draws with." }, { "name": "SetLocalization", "kind": "method", "id": "method|SetLocalization|0|0|void|Localization? table||h9b1e18df8b05e42ae28fc53a566e5014c93cf59eea849033c0ab9f19b6bae9bd", "signature": "void SetLocalization(Localization? table)", "parameters": [{ "name": "table", "type": "Localization?" }], "summary": "Sets the month, weekday and \u0022Today\u0022 names the date components show, and returns to English with null." }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|0|0|void|bool reduced||hae4b830dd1026084cab290fac44e758b675baf93c35f70486ffa7547f059af88", "signature": "void SetReducedMotion(bool reduced)", "parameters": [{ "name": "reduced", "type": "bool" }], "summary": "Turns off animation (transitions, springs and spinners) for accessibility." }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|void|UiText title;ref bool open;DrawFn body;SheetOpts o = default||h65c09301eb5dd69c80862865570241bbd654452c640464cf772559af8fc6bf22", "signature": "void Sheet(UiText title, ref bool open, DrawFn body, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ShimmerText", "kind": "extension", "id": "extension|ShimmerText|0|0|void|UiText text;TextFxOpts o = default||h10fe1a4021ac0e8c72d7fdf6f3cb558e9a8c622c13f4749b7ac3d5d402cb9f57", "signature": "void ShimmerText(UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Text with a highlight sweeping across it, for \u0022Thinking...\u0022 states." }, { "name": "SignatureClear", "kind": "extension", "id": "extension|SignatureClear|0|0|void|UiText id||hf23272f80768839b31369fdd5a82c42808ef1d11985d804d96d54c704b0de8bf", "signature": "void SignatureClear(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "extension", "id": "extension|Skeleton|0|0|void|Size width;float height||h9a80641f8540ed71174043f46e0ff5190568ee803a507a52125ab6fd1ccd12ec", "signature": "void Skeleton(Size width, float height)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "width", "type": "Size" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "extension", "id": "extension|Spacer|0|0|void|||h8df9fad32f644fb75d2f19ff5d3057f2529306e3edc1921a901da58f59bdf332", "signature": "void Spacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "extension", "id": "extension|Sparkline|0|0|void|ReadOnlySpan\u003Cfloat\u003E values;Size width;float height;Color color||hf5e74b2ae617ca510b0dea71f3513379b77ff9597fa28585678fd9d5dc90c297", "signature": "void Sparkline(ReadOnlySpan\u003Cfloat\u003E values, Size width, float height, Color color)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "extension", "id": "extension|Spinner|0|0|void|float size = 16f||h910bfa94c12faa6f479982793408735550b3b41b6f58bf9d2ecbd8fbd8d537f9", "signature": "void Spinner(float size = 16f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float", "default": "16f" }], "summary": "cui_spinner" }, { "name": "SplitNext", "kind": "extension", "id": "extension|SplitNext|0|0|void|||h2e9b4df1853b9715ec487e793813aebc81a3f6ac93bd19f40400a8b7db5e57b1", "signature": "void SplitNext()", "extensionOn": "CuiSharp.Ui", "summary": "cui_split_next" }, { "name": "StatusBarProgress", "kind": "extension", "id": "extension|StatusBarProgress|0|0|void|float value;StatusProgressOpts o = default||h0d89461fbae2cb62b010aaa92c832f76c787764ad8bf6a7f6f3b2352d43eb62e", "signature": "void StatusBarProgress(float value, StatusProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "StatusProgressOpts", "default": "default" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "extension", "id": "extension|StatusBarSpacer|0|0|void|||hff79ec75c75a5a4046a3afdf7908bfa1687f1fccc3cca35aa6a3c05e5696b38d", "signature": "void StatusBarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "extension", "id": "extension|StatusBarText|0|0|void|UiText text;StatusItemOpts o = default||hf5288fddf236ac4166245c73e6f33c7b59cd60825aad4b4b26f2a62615179863", "signature": "void StatusBarText(UiText text, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A message; \u0060tone\u0060 colors its icon." }, { "name": "Stepper", "kind": "extension", "id": "extension|Stepper|0|0|void|ReadOnlySpan\u003Cstring\u003E steps;int current||h80f2e80af6bf18ef466ffe2f62937141940d661367c04989db4a52915786a5ca", "signature": "void Stepper(ReadOnlySpan\u003Cstring\u003E steps, int current)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "steps", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|void|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;DrawFn body;TableOpts o = default||h7968ef7a646f0817ff9658c4cbca9383316e49dd9c742c9662b2ff3812b0fd0a", "signature": "void Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, DrawFn body, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TableCell", "kind": "extension", "id": "extension|TableCell|0|0|void|||h7206d360daa4de79037d61b719094d0baea2de5a24e5aeb9f04149502f3db3bc", "signature": "void TableCell()", "extensionOn": "CuiSharp.Ui", "summary": "Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "TableCellText", "kind": "extension", "id": "extension|TableCellText|0|0|void|UiText text||h7ed6f22b1e22b71ecfb331830e30c25829c7af8fec09d3b888c861bbb28793a6", "signature": "void TableCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Part of cui_table_cell \u2014 Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "Text", "kind": "extension", "id": "extension|Text|0|0|void|UiText text;TextOpts o = default||h098380135ff70fa9e6364b4f5cb5baaa3d0d23bb4e06916511f00c01e904dcb6", "signature": "void Text(UiText text, TextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextOpts", "default": "default" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "extension", "id": "extension|TextReveal|0|0|void|UiText id;UiText text;TextFxOpts o = default||h7f99ba4d6b24021ea0f87d36914931f6994d1962327a22f1e8b4caad0115cafe", "signature": "void TextReveal(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Words fade and rise into place one after another, when first shown and again whenever the text changes." }, { "name": "Ticker", "kind": "extension", "id": "extension|Ticker|0|0|void|UiText id;ReadOnlySpan\u003CTickerItem\u003E items;TickerOpts o = default||h62c76d0d359572be4036b278345efbeac770ba89bef0d4343912d1b51ea0fc23", "signature": "void Ticker(UiText id, ReadOnlySpan\u003CTickerItem\u003E items, TickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTickerItem\u003E" }, { "name": "o", "type": "TickerOpts", "default": "default" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "extension", "id": "extension|TimelineItem|0|0|void|UiText title;TimelineOpts o = default||hd57ae894fcdcf6a57e4008b86ca1e4a0ea3d920a1be7b0beead7f0c64dce9b25", "signature": "void TimelineItem(UiText title, TimelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "TimelineOpts", "default": "default" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "extension", "id": "extension|ToastDismiss|0|0|void|int handle||h6a894b14bc221b765154e4ee9cf6cdd1812f544772192205c25a197be8077904", "signature": "void ToastDismiss(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "extension", "id": "extension|TocAnchor|0|0|void|UiText anchor||h474d1046a90fd952ce1996c9a0f04e59d8090e886222bfa8a62b08c2d191127c", "signature": "void TocAnchor(UiText anchor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "anchor", "type": "UiText" }], "summary": "cui_toc_anchor" }, { "name": "ToggleTheme", "kind": "method", "id": "method|ToggleTheme|0|0|void|||h9c315cf4c8d3ce0774082f4db1c10fdcde1dfdef8503f7e49968fc73805e19e8", "signature": "void ToggleTheme()", "summary": "Switches to the other theme: what a \u0022dark mode\u0022 command is." }, { "name": "ToolCall", "kind": "extension", "id": "extension|ToolCall|0|0|void|UiText id;UiText name;ToolCallOpts o = default||h16a78d12e8afd01cd74d0ff79d04eab871b3602eb401436850ec64b67c8d437d", "signature": "void ToolCall(UiText id, UiText name, ToolCallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "o", "type": "ToolCallOpts", "default": "default" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarSeparator", "kind": "extension", "id": "extension|ToolbarSeparator|0|0|void|||h1ac04b800f486b06135932d0c44c42e77b107a635f62f0ebe94dc31f9e99b9a6", "signature": "void ToolbarSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "extension", "id": "extension|ToolbarSpacer|0|0|void|||h494edd9bb119d78eaa1c281a125dd1a9effb7a85caa35e4b35c4253376bb92f3", "signature": "void ToolbarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "extension", "id": "extension|Tooltip|0|0|void|UiText text||h5665aef7d99446eea8e623f0f1227e52e0512f331e35936232eb9a28aa7f3634", "signature": "void Tooltip(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Tooltip for the previous component, shown after a short hover delay." }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|void|UiText label;ref bool open;DrawFn body;TreeOpts o = default||he13b4bfd412c90e5210ac7a3109d12fb25e4a2280312b5257572daebbb5bbd95", "signature": "void Tree(UiText label, ref bool open, DrawFn body, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TreeTableName", "kind": "extension", "id": "extension|TreeTableName|0|0|void|UiText label;UiText icon||h1db08630dbcd5478e4543d6fc7df51dec714a4cefea2efb55e95ec44273c7151", "signature": "void TreeTableName(UiText label, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "icon", "type": "UiText" }], "summary": "The first cell: indentation, guides, the chevron, an icon and the name (cut short with a tooltip of the whole name when it does not fit)." }, { "name": "TypingIndicator", "kind": "extension", "id": "extension|TypingIndicator|0|0|void|UiText name||h29e1190d004ef9cf04c8fb3bb6772b74ea89a31b5105bb6fe5d65e29383b006a", "signature": "void TypingIndicator(UiText name)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }], "summary": "cui_typing_indicator" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|void|UiText name;DrawFn body;UserMenuOpts o = default||h1d302e00c446dbae93ac0347cf4063547177c7d4c68194db26c7ca15c8128f8c", "signature": "void UserMenu(UiText name, DrawFn body, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "WordRotate", "kind": "extension", "id": "extension|WordRotate|0|0|void|UiText id;ReadOnlySpan\u003Cstring\u003E words;float interval;TextFxOpts o = default||he53938c5acb8d2d7786cb08323a565882c4e7c01bc50637a3c5c0d9131734da4", "signature": "void WordRotate(UiText id, ReadOnlySpan\u003Cstring\u003E words, float interval, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "words", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "interval", "type": "float" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "One word at a time; the next one rolls up into place and the width follows." }] }, + { "name": "CuiSharp.Ui", "displayName": "Ui", "kind": "ref struct", "summary": "A stack-only drawing context. Do not retain it outside the current frame.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "The accent in use, and the way to change it. See Theme." }, { "name": "ApiExplorer", "kind": "extension", "id": "extension|ApiExplorer|0|0|ApiExplorerResult|UiText id;ReadOnlySpan\u003CApiEndpoint\u003E endpoints;ref int selected;ApiExplorerOpts o = default||h8e1274e09ed373172bec2fe1ee1969a7f9b2e594fbeed0ea8abed98302f3ed84", "signature": "ApiExplorerResult ApiExplorer(UiText id, ReadOnlySpan\u003CApiEndpoint\u003E endpoints, ref int selected, ApiExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "endpoints", "type": "ReadOnlySpan\u003CApiEndpoint\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ApiExplorerOpts", "default": "default" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "extension", "id": "extension|Blame|0|0|BlameResult|UiText id;ReadOnlySpan\u003Cstring\u003E lines;ReadOnlySpan\u003Cint\u003E lineCommit;ReadOnlySpan\u003CBlameCommit\u003E commits;BlameOpts o = default||hdf716d42271c45696039bb07abacc01b9b0b2a935ee05dc1842213c276edf5eb", "signature": "BlameResult Blame(UiText id, ReadOnlySpan\u003Cstring\u003E lines, ReadOnlySpan\u003Cint\u003E lineCommit, ReadOnlySpan\u003CBlameCommit\u003E commits, BlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "lines", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "lineCommit", "type": "ReadOnlySpan\u003Cint\u003E" }, { "name": "commits", "type": "ReadOnlySpan\u003CBlameCommit\u003E" }, { "name": "o", "type": "BlameOpts", "default": "default" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|0|0|CanvasResult|UiText id;Size width;Size height;PaintFn paint||hf2c318f0b609f7226e807d7cf7e4edada63dc45f85bb57025ad7567a006824a0", "signature": "CanvasResult Canvas(UiText id, Size width, Size height, PaintFn paint)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "Size" }, { "name": "paint", "type": "PaintFn" }], "summary": "Reserves a box of the given size and lets you paint it." }, { "name": "Clip", "kind": "method", "id": "method|Clip|0|0|ClipScope|RectF r||h81bb7c5dd19720d5aa2ee17f5cb20e0238b08db45d6d0cb5700d16ce531ec5f2", "signature": "ClipScope Clip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle, closing the clip on dispose." }, { "name": "CodeEditor", "kind": "extension", "id": "extension|CodeEditor|0|0|CodeEditorResult|UiText id;ref string buf;int cap;CodeEditorOpts o = default||h3f99c4340c4ea2a0ae4ecc840716120045f85d30ea53f0aebe7ab1be2c09aa9a", "signature": "CodeEditorResult CodeEditor(UiText id, ref string buf, int cap, CodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "CodeEditorOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|0|0|Color|Color color||h980f9c13c6409b9b666e72b6641e22a816c4a7d68a80eb109a44bc201bceceb0", "signature": "Color ColorOf(Color color)", "parameters": [{ "name": "color", "type": "Color" }], "summary": "Resolves a semantic token to its channels; other colors come back unchanged." }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|0|0|Color|Token token||h0916cfc8affaa4db1788c2edd8ac85f518f146b3b691ef4d7181b7ad8ccac2fe", "signature": "Color TokenColor(Token token)", "parameters": [{ "name": "token", "type": "Token" }], "summary": "The channels a theme token resolves to this frame." }, { "name": "Comment", "kind": "extension", "id": "extension|Comment|0|0|CommentEvents|UiText id;UiText author;UiText text;ref int likes;ref bool liked;CommentOpts o = default||hd58eadbf1b4e2807aa889ed3f4c70606227f61711c62110ec27aebc46c70512c", "signature": "CommentEvents Comment(UiText id, UiText author, UiText text, ref int likes, ref bool liked, CommentOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "author", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "likes", "type": "ref int" }, { "name": "liked", "type": "ref bool" }, { "name": "o", "type": "CommentOpts", "default": "default" }], "summary": "cui_comment_ex" }, { "name": "CommitGraph", "kind": "extension", "id": "extension|CommitGraph|0|0|CommitGraphResult|UiText id;ReadOnlySpan\u003CCommit\u003E commits;ref int selected;CommitGraphOpts o = default||h8d094156c694b6c409f8abe92f01e016c9b138a44ea76b0770f70f4fd34781c7", "signature": "CommitGraphResult CommitGraph(UiText id, ReadOnlySpan\u003CCommit\u003E commits, ref int selected, CommitGraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "commits", "type": "ReadOnlySpan\u003CCommit\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CommitGraphOpts", "default": "default" }], "summary": "cui_commit_graph_ex" }, { "name": "ChatComposer", "kind": "extension", "id": "extension|ChatComposer|0|0|ComposerEvents|UiText id;ref string buf;int cap;ref int removed;ref int model;ComposerOpts o = default||ha61bd40b4efb8355a255edc7d36d348178993536309ab1ee4c6c9a381fd22431", "signature": "ComposerEvents ChatComposer(UiText id, ref string buf, int cap, ref int removed, ref int model, ComposerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "removed", "type": "ref int" }, { "name": "model", "type": "ref int" }, { "name": "o", "type": "ComposerOpts", "default": "default" }], "summary": "cui_chat_composer_ex" }, { "name": "Coverage", "kind": "extension", "id": "extension|Coverage|0|0|CoverageResult|UiText id;ReadOnlySpan\u003CCoverageFile\u003E files;CoverageOpts o = default||h71a24310abd0377c27ded9130e91e48dc3e91a798d1a79f3563a30b446fe6a95", "signature": "CoverageResult Coverage(UiText id, ReadOnlySpan\u003CCoverageFile\u003E files, CoverageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "files", "type": "ReadOnlySpan\u003CCoverageFile\u003E" }, { "name": "o", "type": "CoverageOpts", "default": "default" }], "summary": "cui_coverage_ex" }, { "name": "Cursor", "kind": "property", "id": "property|Cursor|0|0|Cursor||get;|hc22a16db67c85c2843d2f88cc8ab464d28c155381bf1d1998e9fc4743eb42043", "signature": "Cursor Cursor { get; }", "summary": "The cursor the UI asked for last frame, for a backend that draws its own." }, { "name": "CurveEditor", "kind": "extension", "id": "extension|CurveEditor|0|0|CurveResult|UiText id;Span\u003CCurveKey\u003E keys;ref int count;int capacity;ref int selected;CurveOpts o = default||h0aa646bcaa2a7a88d9f7fb5646774b70a481e877c7087d2169536d01d2eb89dc", "signature": "CurveResult CurveEditor(UiText id, Span\u003CCurveKey\u003E keys, ref int count, int capacity, ref int selected, CurveOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "keys", "type": "Span\u003CCurveKey\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "CurveOpts", "default": "default" }], "summary": "cui_curve_editor_ex" }, { "name": "DiffView", "kind": "extension", "id": "extension|DiffView|0|0|DiffResult|UiText id;UiText oldText;UiText newText;ref int current;DiffOpts o = default||h1928b65f5fa6dc715c0e20351e64a90a55ca9b8fd792c4a9a6e3df7545ba072a", "signature": "DiffResult DiffView(UiText id, UiText oldText, UiText newText, ref int current, DiffOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "oldText", "type": "UiText" }, { "name": "newText", "type": "UiText" }, { "name": "current", "type": "ref int" }, { "name": "o", "type": "DiffOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled||h3a515a3de1d8d0205d97aef4118bf5ab6c5af12e051d859d3b8cabae81fb9db1", "signature": "DisabledScope Disabled(bool disabled)", "parameters": [{ "name": "disabled", "type": "bool" }], "summary": "Opens a disabled gate that using closes." }, { "name": "Disabled", "kind": "method", "id": "method|Disabled|0|0|DisabledScope|bool disabled;DrawFn body||hcc29e71513d0c4970a98faee97bed37a754ecae1da31ed37b95a7e3588c336d9", "signature": "DisabledScope Disabled(bool disabled, DrawFn body)", "parameters": [{ "name": "disabled", "type": "bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws body with every control inside it disabled: it still lays out and paints, but clicks, keys and hover do nothing." }, { "name": "DocTabs", "kind": "extension", "id": "extension|DocTabs|0|0|DocTabsResult|UiText id;ReadOnlySpan\u003CDocTab\u003E tabs;ref int selected;DocTabsOpts o = default||hdb202a4c9e42fa362479fb5e674bee39fa9949e204316f94f4197f0a54fe4c83", "signature": "DocTabsResult DocTabs(UiText id, ReadOnlySpan\u003CDocTab\u003E tabs, ref int selected, DocTabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tabs", "type": "ReadOnlySpan\u003CDocTab\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "DocTabsOpts", "default": "default" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "extension", "id": "extension|FeatureFlags|0|0|FeatureFlagsResult|UiText id;Span\u003CFeatureFlag\u003E flags;ReadOnlySpan\u003Cstring\u003E envs;FeatureFlagsOpts o = default||h1c2c043a1a911bf524b328f35cfa7f2ee4862adfb16f1b0cbd98cf1077245b34", "signature": "FeatureFlagsResult FeatureFlags(UiText id, Span\u003CFeatureFlag\u003E flags, ReadOnlySpan\u003Cstring\u003E envs, FeatureFlagsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "flags", "type": "Span\u003CFeatureFlag\u003E" }, { "name": "envs", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "FeatureFlagsOpts", "default": "default" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "extension", "id": "extension|FileBrowser|0|0|FileBrowserResult|UiText id;ref string path;int pathCap = 1024;FileBrowserOpts o = default||hdcc3319728f0b23560a33e9d8c875e4b5389d816f8e66b4e3630e917284e3bf8", "signature": "FileBrowserResult FileBrowser(UiText id, ref string path, int pathCap = 1024, FileBrowserOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "path", "type": "ref string" }, { "name": "pathCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FileBrowserOpts", "default": "default" }], "summary": "path: the folder shown, yours; the browser writes it as you move around." }, { "name": "FlameGraph", "kind": "extension", "id": "extension|FlameGraph|0|0|FlameResult|UiText id;ReadOnlySpan\u003CFlameSpan\u003E spans;ref FlameView view;ref int selected;FlameOpts o = default||h825a9e17f3b7381f2b9b6b4244a8edbabda629701c297e3c877a4e13fc43e98c", "signature": "FlameResult FlameGraph(UiText id, ReadOnlySpan\u003CFlameSpan\u003E spans, ref FlameView view, ref int selected, FlameOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "spans", "type": "ReadOnlySpan\u003CFlameSpan\u003E" }, { "name": "view", "type": "ref FlameView" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "FlameOpts", "default": "default" }], "summary": "selected: index into spans, -1 for none (may be NULL)." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|ReadOnlySpan\u003Cbyte\u003E data;bool copy = true||h73d65ad67f9acdd48823d96c747c086a24a1625658056e8af856a3bd4d554241", "signature": "Font LoadFont(ReadOnlySpan\u003Cbyte\u003E data, bool copy = true)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool", "default": "true" }], "summary": "Loads a font from memory and returns a handle for SetFont." }, { "name": "LoadFont", "kind": "extension", "id": "extension|LoadFont|0|0|Font|UiText path||h5faed851de772ad862622c3312f2aeae3c81ef7915ae305e81bb638cf9b3b107", "signature": "Font LoadFont(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "Loads a font file (TTF/OTF) and returns a handle for SetFont." }, { "name": "UseSystemFontFallback", "kind": "extension", "id": "extension|UseSystemFontFallback|0|0|Font|string sample||h718698d4ba3dba692a0bf04e8e6729a2aae4ac8563689108bb00fdf124984df6", "signature": "Font UseSystemFontFallback(string sample)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "sample", "type": "string" }], "summary": "Finds a face on this machine that can draw sample and registers it as a fallback for the app\u0027s roles, so a UI in a script the bundled faces do not cover renders instead of going blank." }, { "name": "GradientEditor", "kind": "extension", "id": "extension|GradientEditor|0|0|GradientResult|UiText id;Span\u003CGradientStop\u003E stops;ref int count;int capacity;ref int selected;GradientOpts o = default||h22ba29de3dd5440cd7373415c1f48323da92a14dd19862d6a962bbf6a3147afd", "signature": "GradientResult GradientEditor(UiText id, Span\u003CGradientStop\u003E stops, ref int count, int capacity, ref int selected, GradientOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stops", "type": "Span\u003CGradientStop\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GradientOpts", "default": "default" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "extension", "id": "extension|GraphView|0|0|GraphResult|UiText id;ReadOnlySpan\u003CGraphNode\u003E nodes;ReadOnlySpan\u003CGraphEdge\u003E edges;ref int selected;GraphOpts o = default||hbce489b5fa6d64979be674221b7ae61e945b26d0224773080270c2c7dfd8b3bc", "signature": "GraphResult GraphView(UiText id, ReadOnlySpan\u003CGraphNode\u003E nodes, ReadOnlySpan\u003CGraphEdge\u003E edges, ref int selected, GraphOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003CGraphNode\u003E" }, { "name": "edges", "type": "ReadOnlySpan\u003CGraphEdge\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "GraphOpts", "default": "default" }], "summary": "cui_graph_view_ex" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|GridScope|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;GridOpts o = default||hae20817285aa5f5ee430918dd512e707df8a0306e32777f0e13839f607262829", "signature": "GridScope DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Opens a virtualized grid; draw rows in [state.First, state.Last)." }, { "name": "HexView", "kind": "extension", "id": "extension|HexView|0|0|HexResult|UiText id;Span\u003Cbyte\u003E bytes;ref HexSelection selection;HexViewOpts o = default||hb82ecf6f9d8a58d5c2bce7702bd188c8bb502de7a2d696f1a0af827be5fa22d9", "signature": "HexResult HexView(UiText id, Span\u003Cbyte\u003E bytes, ref HexSelection selection, HexViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bytes", "type": "Span\u003Cbyte\u003E" }, { "name": "selection", "type": "ref HexSelection" }, { "name": "o", "type": "HexViewOpts", "default": "default" }], "summary": "Draws bytes and lets the user overwrite them in place." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|UiText id||hf913a0d346bf51d9f7a0e55299041c30e8aa0eeb2f93eadbe20cad0c4ae3879b", "signature": "IdScope Id(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Pushes a string id for the widgets drawn inside the scope." }, { "name": "Id", "kind": "method", "id": "method|Id|0|0|IdScope|int key||h3b4b6991acded6793bc66a091956c19c02661da15fabdf72db107273b8ed3d1b", "signature": "IdScope Id(int key)", "parameters": [{ "name": "key", "type": "int" }], "summary": "Pushes an integer id, typically a row or item index." }, { "name": "Input", "kind": "method", "id": "method|Input|0|0|InputResult|UiText id;ref string value;InputOpts o = default||he495e19d9d5cb23d03e35f0f55ea0ebafd853d7386ae9e4989697b39cec38980", "signature": "InputResult Input(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A single-line text field. Assign the string; CUI edits it in place and the new value comes back through value on the frames it changed." }, { "name": "Search", "kind": "method", "id": "method|Search|0|0|InputResult|UiText id;ref string value;InputOpts o = default||h11bb746b263541b15457e9933eac6e37a6cdfac44547449d0d7375a7431b87da", "signature": "InputResult Search(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A search field. See Input." }, { "name": "TextArea", "kind": "method", "id": "method|TextArea|0|0|InputResult|UiText id;ref string value;InputOpts o = default||ha0535c062baff5583884fcf6394397476e4b2a40ee79b643e731e601e2daad5c", "signature": "InputResult TextArea(UiText id, ref string value, InputOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "InputOpts", "default": "default" }], "summary": "A multi-line text field. See Input." }, { "name": "Keyed", "kind": "method", "id": "method|Keyed|0|1|KeyedScope\u003CT\u003E|T[] items;KeyFn\u003CT\u003E key||h3645b3dae05812e37fd01340a5693892b688bf1436826030f83bf34e5dca43f8", "signature": "KeyedScope\u003CT\u003E Keyed\u003CT\u003E(T[] items, KeyFn\u003CT\u003E key)", "parameters": [{ "name": "items", "type": "T[]" }, { "name": "key", "type": "KeyFn\u003CT\u003E" }], "summary": "Enumerates items, each inside its own id scope derived from key." }, { "name": "Keymap", "kind": "extension", "id": "extension|Keymap|0|0|KeymapResult|UiText id;ReadOnlySpan\u003CKeymapBinding\u003E bindings;ref Mods mods;KeymapOpts o = default||h986c8ea2572b42d56814a32427ed89b00db2a4a2ff3ba6c7a4711a66da3c0bae", "signature": "KeymapResult Keymap(UiText id, ReadOnlySpan\u003CKeymapBinding\u003E bindings, ref Mods mods, KeymapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "bindings", "type": "ReadOnlySpan\u003CKeymapBinding\u003E" }, { "name": "mods", "type": "ref Mods" }, { "name": "o", "type": "KeymapOpts", "default": "default" }], "summary": "cui_keymap_ex" }, { "name": "Box", "kind": "extension", "id": "extension|Box|0|0|LayoutScope|Box o = default||haec5c052acbeeaca94cb5a10a37f80e98abc85d069b6fa9aec58cf20715c0a06", "signature": "LayoutScope Box(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_box_begin" }, { "name": "ButtonGroup", "kind": "extension", "id": "extension|ButtonGroup|0|0|LayoutScope|||h8a2a0872d3ba1595bf0e1d9ad5860dfa36735b0ac74178a57cc8157b6493d6d4", "signature": "LayoutScope ButtonGroup()", "extensionOn": "CuiSharp.Ui", "summary": "Connected buttons. Put buttons between begin and end." }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o = default||hb8d0387f360f71c39f098c9de712bb4aa0eb22a25fffee4615049459c0cc224e", "signature": "LayoutScope Card(Card o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card", "default": "default" }], "summary": "cui_card_begin" }, { "name": "Card", "kind": "extension", "id": "extension|Card|0|0|LayoutScope|Card o;out bool clicked||he64474f809036667bb19ed0028db705f58a61d124f67b6520b26f73775ae32e5", "signature": "LayoutScope Card(Card o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Card" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "CardStackItem", "kind": "extension", "id": "extension|CardStackItem|0|0|LayoutScope|int depth||h6f29f3239b665449b7d0d9b4e5177cb4099b541e3423fcb9d1a9b14fb1f686d0", "signature": "LayoutScope CardStackItem(int depth)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CarouselSlide", "kind": "extension", "id": "extension|CarouselSlide|0|0|LayoutScope|||h9755b016a070064271f7e45738238254443cdfcb4d22aca524774095031595ec", "signature": "LayoutScope CarouselSlide()", "extensionOn": "CuiSharp.Ui", "summary": "cui_carousel_slide_begin" }, { "name": "Column", "kind": "extension", "id": "extension|Column|0|0|LayoutScope|Box o = default||h78447c50c087189e1c45a5984115c6b2709affec511cf6ab6521254dd0406549", "signature": "LayoutScope Column(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_column_begin" }, { "name": "DialogFooter", "kind": "extension", "id": "extension|DialogFooter|0|0|LayoutScope|||hea62c5e329105c7d787894e1fbdbbd9b079d2910e82c4be61263045ff18c81f3", "signature": "LayoutScope DialogFooter()", "extensionOn": "CuiSharp.Ui", "summary": "A right-aligned row for dialog actions." }, { "name": "Dock", "kind": "extension", "id": "extension|Dock|0|0|LayoutScope|UiText id;DockOpts o = default||ha8052963c653afff4ec2b3304515265b67454d94f44ee3c01d076c1e27148816", "signature": "LayoutScope Dock(UiText id, DockOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockOpts", "default": "default" }], "summary": "cui_dock_begin" }, { "name": "Dockspace", "kind": "extension", "id": "extension|Dockspace|0|0|LayoutScope|UiText id;DockspaceOpts o = default||hd8cabbad4df58a75fbb1e93299868d95ae7671ca676e01478b8c6067ace5a82d", "signature": "LayoutScope Dockspace(UiText id, DockspaceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DockspaceOpts", "default": "default" }], "summary": "cui_dockspace_begin_ex" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId||h04d36b815b7f14d7d624e0b56c06560e052f6458aecd5cd68f485e0c8dc64b11", "signature": "LayoutScope KanbanCard(int cardId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanCard", "kind": "extension", "id": "extension|KanbanCard|0|0|LayoutScope|int cardId;out bool clicked||h0ef9ec0801ab926804d1119b9bc9dc886afc490850829ed33cad336f7ee94f50", "signature": "LayoutScope KanbanCard(int cardId, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cardId", "type": "int" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o = default||hd3dcefdc81fb36dfee31edd1754914e0453a4c7e0b1bb4c4b2b20b542eb8adaa", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts", "default": "default" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanColumn", "kind": "extension", "id": "extension|KanbanColumn|0|0|LayoutScope|UiText title;int cardCount;KanbanColumnOpts o;out bool clicked||h7c9ca66f79f064c49eed8f4544d8fea1ed3304dc45d84e5ec067d319ed4ea113", "signature": "LayoutScope KanbanColumn(UiText title, int cardCount, KanbanColumnOpts o, out bool clicked)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "cardCount", "type": "int" }, { "name": "o", "type": "KanbanColumnOpts" }, { "name": "clicked", "type": "out bool" }], "summary": "Always opens the container; clicked reports its interaction result." }, { "name": "MenuBar", "kind": "extension", "id": "extension|MenuBar|0|0|LayoutScope|UiText id;MenuBarOpts o = default||h29b57cc387904e3c1d3083b170ceaa309e6bc4a2535b4c27f22ecd482570e152", "signature": "LayoutScope MenuBar(UiText id, MenuBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "MenuBarOpts", "default": "default" }], "summary": "cui_menu_bar_begin" }, { "name": "NodeContent", "kind": "extension", "id": "extension|NodeContent|0|0|LayoutScope|||h6a09d812c8b6d9c4a4f2fc6aedc000b977da707334c08c94ee4e6dd62573dd59", "signature": "LayoutScope NodeContent()", "extensionOn": "CuiSharp.Ui", "summary": "A row for ordinary components. They are laid out at 100% and scaled with the view, so their text is sharpest at 100% zoom and below." }, { "name": "ReorderItem", "kind": "method", "id": "method|ReorderItem|0|0|LayoutScope|int position||h407076f847f4d4f606b87a109b5a505ca525179c0bff6726382889745d33f038", "signature": "LayoutScope ReorderItem(int position)", "parameters": [{ "name": "position", "type": "int" }] }, { "name": "Row", "kind": "extension", "id": "extension|Row|0|0|LayoutScope|Box o = default||ha02204054f3ea32388e8e24fc8038f253dd0b3504b0e01b650d69265773cb67e", "signature": "LayoutScope Row(Box o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "Box", "default": "default" }], "summary": "cui_row_begin" }, { "name": "Scroll", "kind": "extension", "id": "extension|Scroll|0|0|LayoutScope|ScrollOpts o = default||h7aa8eed4bb32b5efc54efbe5c6c7c19215ddf1d8ffed8dfc60e0c8d5234bc6f7", "signature": "LayoutScope Scroll(ScrollOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "ScrollOpts", "default": "default" }], "summary": "cui_scroll_begin" }, { "name": "Split", "kind": "extension", "id": "extension|Split|0|0|LayoutScope|UiText id;ref float ratio;SplitOpts o = default||h83e75ece850ab88dc38fde4b7d1d8ae789128ab387c95d8025b6302e8f59269f", "signature": "LayoutScope Split(UiText id, ref float ratio, SplitOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "ratio", "type": "ref float" }, { "name": "o", "type": "SplitOpts", "default": "default" }], "summary": "cui_split_begin" }, { "name": "Spotlight", "kind": "extension", "id": "extension|Spotlight|0|0|LayoutScope|UiText id;SpotlightOpts o = default||hfb70f807d4c0a2d5450e1ff296551adc78a8733ed06c6b0cb9ed7427add12f16", "signature": "LayoutScope Spotlight(UiText id, SpotlightOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SpotlightOpts", "default": "default" }], "summary": "cui_spotlight_begin" }, { "name": "StatusBar", "kind": "extension", "id": "extension|StatusBar|0|0|LayoutScope|UiText id;StatusBarOpts o = default||h394ecf13ba82c0abd4bdf1a5b7cb5fce6102392c5a87cea283bc38fd2213e96a", "signature": "LayoutScope StatusBar(UiText id, StatusBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "StatusBarOpts", "default": "default" }], "summary": "cui_status_bar_begin" }, { "name": "Toolbar", "kind": "extension", "id": "extension|Toolbar|0|0|LayoutScope|UiText id;ToolbarOpts o = default||hc5826ec43e3d8bf178cfa9f1605bd29bded229aae82424077aa18e1ae7e9cc61", "signature": "LayoutScope Toolbar(UiText id, ToolbarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ToolbarOpts", "default": "default" }], "summary": "cui_toolbar_begin" }, { "name": "VirtualList", "kind": "extension", "id": "extension|VirtualList|0|0|LayoutScope|UiText id;int count;float rowHeight;Size height;out int first;out int last||h90165d4490987ebd4d90276d5b449695a1f58d89f212149090827bfd08a055f2", "signature": "LayoutScope VirtualList(UiText id, int count, float rowHeight, Size height, out int first, out int last)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "Size" }, { "name": "first", "type": "out int" }, { "name": "last", "type": "out int" }], "summary": "Virtual list: only the visible rows are built, so lists with a million rows stay fast. Fills first/last with the visible range." }, { "name": "Localization", "kind": "property", "id": "property|Localization|0|0|Localization?||get;|h0a921bf7a95ff40f095f5e7f43cc6d636b74f025ae427be1edbd250e93f88e54", "signature": "Localization? Localization { get; }", "summary": "The table this surface published, or null for English." }, { "name": "Markdown", "kind": "extension", "id": "extension|Markdown|0|0|MarkdownResult|UiText id;UiText text;MarkdownOpts o = default||h61fdb7c6fb770f95ff734bbdf7b607bad9e23af8b25df034da34f408eed536fa", "signature": "MarkdownResult Markdown(UiText id, UiText text, MarkdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "MarkdownOpts", "default": "default" }], "summary": "cui_markdown_ex" }, { "name": "Modifiers", "kind": "property", "id": "property|Modifiers|0|0|Mods||get;|h994504ae5710377741956558b3dae0b4e2fc318f73c5408e701c6675295af911", "signature": "Mods Modifiers { get; }", "summary": "The modifier keys held right now." }, { "name": "MonthCalendar", "kind": "extension", "id": "extension|MonthCalendar|0|0|MonthResult|UiText id;ref Date month;ReadOnlySpan\u003CMonthEvent\u003E events;ref Date selected;MonthOpts o = default||hacb7fb0b706addd9098a1569df3adbf8cff5b20d3b0bf01f49970bd839da7523", "signature": "MonthResult MonthCalendar(UiText id, ref Date month, ReadOnlySpan\u003CMonthEvent\u003E events, ref Date selected, MonthOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "month", "type": "ref Date" }, { "name": "events", "type": "ReadOnlySpan\u003CMonthEvent\u003E" }, { "name": "selected", "type": "ref Date" }, { "name": "o", "type": "MonthOpts", "default": "default" }], "summary": "cui_month_calendar_ex" }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|OpenScope|UiText title;ref bool open||h485829d02ee323bfa485f05285d6b19d78dcf02ed0a36c9ca4b1da7e70f540e5", "signature": "OpenScope Accordion(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "Accordion / disclosure. Content animates its height." }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|OpenScope|UiText id;int count;ref int index;CarouselOpts o = default||hbcf0bd0059da4b82e6417513dac4646a1ad558c1f46fc3c55b233c3367ef0a4e", "signature": "OpenScope Carousel(UiText id, int count, ref int index, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "cui_carousel_begin" }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|OpenScope|UiText id||hb5be2e863b82aa032d3281886a07b75e6a10932b22c9c06daa36e6ec8460b9c3", "signature": "OpenScope ContextMenu(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Context menu: opens on right click over the previous component." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|OpenScope|UiText title;ref bool open;DialogOpts o = default||h08e9cf3a4bf5178fc47947da0ad76b53486c74b4ebd9c7e92e078d4cb3653668", "signature": "OpenScope Dialog(UiText title, ref bool open, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Modal dialog. Shown while *open is true; closing sets it to false." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|OpenScope|UiText title;ref bool open;DockPanelOpts o = default||h983b85f4b88defb64e03c80c7fd67832cccc8b15fa3b11e9e9c8954cdd239b75", "signature": "OpenScope DockPanel(UiText title, ref bool open, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|OpenScope|UiText title;ref bool open;ExpandableCardOpts o = default||h19637d079a2ee9821dfa4b6223ecf9694471f6157ed61e0139e207c045d56878", "signature": "OpenScope ExpandableCard(UiText title, ref bool open, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "cui_expandable_card_begin" }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|OpenScope|UiText id;HoverCardOpts o = default||hd31fbafd01c517229f3a54d9fbeed478689533294a82e16da99cb56ed4b82d37", "signature": "OpenScope HoverCard(UiText id, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "cui_hover_card_begin" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|OpenScope|UiText id;InspectorOpts o = default||hdb3db7ec75e95846d7b987536583618b0b9445c2deb40a5f16828b5d2d735020", "signature": "OpenScope Inspector(UiText id, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "cui_inspector_begin_ex" }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|OpenScope|UiText label;MenuOpts o = default||hec1b2b131f19c8f1eb37269016b963aed4449341b367ca89e175c1940294ab63", "signature": "OpenScope Menu(UiText label, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "cui_menu_begin" }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|OpenScope|UiText label;MenuBarMenuOpts o = default||h32c463fd3c1d7fa382d82e43f75326d1e14efad5ce907db7337df9ba3480688b", "signature": "OpenScope MenuBarMenu(UiText label, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|OpenScope|int nodeId;ref float x;ref float y;UiText title;NodeOpts o = default||hb7439d9c37ecca24fb0858272f81826919b789149f2a34acd1e1c44ff3266f62", "signature": "OpenScope Node(int nodeId, ref float x, ref float y, UiText title, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "cui_node_begin_ex" }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|OpenScope|UiText id;ref NodeView view;NodeEditorOpts o = default||h4e3c9c7bbaa0ed5b0750957f90a5c6c86f0fbfea8e96d4a8cacd68503ae7ad85", "signature": "OpenScope NodeEditor(UiText id, ref NodeView view, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "cui_node_editor_begin_ex" }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|OpenScope|UiText id;ref int segment||h2aeb15441c53f332d451a287be64ba38ecdb4c05be10ad0f8a2412b04c3ad51a", "signature": "OpenScope PathBarMenu(UiText id, ref int segment)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }], "summary": "True while the menu of separator *segment is showing: build menu items for the children of that segment, then call cui_path_bar_menu_end." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|OpenScope|UiText id;PopoverOpts o = default||had5881283c2885b236d342cac799068e3bd7a8c2d4272ceb08bf27aa60e812f7", "signature": "OpenScope Popover(UiText id, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "cui_popover_begin" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|OpenScope|UiText id;ReasoningOpts o = default||hd8c6837b660811abb55b30c3bcc35eb42dd2099f40a5a73eb35972aca384d12b", "signature": "OpenScope Reasoning(UiText id, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "cui_reasoning_begin" }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|OpenScope|UiText title;ref bool open;SheetOpts o = default||heb98d14c7c6250a83593cac259a583d17aa8636e9eaa839b64b4b5e3db2551d7", "signature": "OpenScope Sheet(UiText title, ref bool open, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "cui_sheet_begin" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;TableOpts o = default||hfd909896b0ab780a5093f3e917adaa2e23e03121d3b8e920a5305582c66486d0", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Same as the overload with ref sort, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|OpenScope|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;TableOpts o = default||hfda1db8518191e5d1de411deaefeed0d0f8d6838a3a1398abfa10ad4b36ff692", "signature": "OpenScope Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "cui_table_begin_ex" }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|OpenScope|UiText label;ref bool open;TreeOpts o = default||h4406f8e6a4e0d2f04e9468f25ca87def814144056b1780a4e869ea86998fdd10", "signature": "OpenScope Tree(UiText label, ref bool open, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "cui_tree_begin" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|OpenScope|UiText name;UserMenuOpts o = default||h5323b7ef69eef4b5689f61a0c79b09355b7d2e1579ced7536bd574838f5eb096", "signature": "OpenScope UserMenu(UiText name, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "cui_user_menu_begin" }, { "name": "PathBar", "kind": "extension", "id": "extension|PathBar|0|0|PathBarResult|UiText id;ReadOnlySpan\u003Cstring\u003E segments;PathBarOpts o = default||h5256da01c2004bf6922b836f1b3e9fbc43ed881a67e823c1895ab05f0949dd56", "signature": "PathBarResult PathBar(UiText id, ReadOnlySpan\u003Cstring\u003E segments, PathBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segments", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "PathBarOpts", "default": "default" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "extension", "id": "extension|Pipeline|0|0|PipelineResult|UiText id;ReadOnlySpan\u003Cstring\u003E stages;ReadOnlySpan\u003CPipelineJob\u003E jobs;ref int selected;PipelineOpts o = default||h57164c455b64addad840b532dee1f4eb3acaba49d3b9d3b92afbab5d775aa6e7", "signature": "PipelineResult Pipeline(UiText id, ReadOnlySpan\u003Cstring\u003E stages, ReadOnlySpan\u003CPipelineJob\u003E jobs, ref int selected, PipelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "jobs", "type": "ReadOnlySpan\u003CPipelineJob\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "PipelineOpts", "default": "default" }], "summary": "cui_pipeline_ex" }, { "name": "NowPlaying", "kind": "extension", "id": "extension|NowPlaying|0|0|PlayerEvents|UiText id;ref NowPlayingState np;NowPlayingOpts o = default||h9fae980dc34277b737fa803cbecd222d9c0a4c796e96fa70b56eeeefd0df2b25", "signature": "PlayerEvents NowPlaying(UiText id, ref NowPlayingState np, NowPlayingOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "np", "type": "ref NowPlayingState" }, { "name": "o", "type": "NowPlayingOpts", "default": "default" }], "summary": "cui_now_playing_ex" }, { "name": "Problems", "kind": "extension", "id": "extension|Problems|0|0|ProblemsResult|UiText id;ReadOnlySpan\u003CProblemItem\u003E diags;ProblemsOpts o = default||h6893f9c629255366d4079d33866236777cdcf107644e4109933ef620b8022eed", "signature": "ProblemsResult Problems(UiText id, ReadOnlySpan\u003CProblemItem\u003E diags, ProblemsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "diags", "type": "ReadOnlySpan\u003CProblemItem\u003E" }, { "name": "o", "type": "ProblemsOpts", "default": "default" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "extension", "id": "extension|FlameSpanRect|0|0|RectF|uint flame;in FlameSpan span||haa242a01ec7cc85ea2f271378c3c8c334942d3f054714bdc41b27574a4327c82", "signature": "RectF FlameSpanRect(uint flame, in FlameSpan span)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "flame", "type": "uint" }, { "name": "span", "type": "in FlameSpan" }], "summary": "Where a span was drawn in the latest frame, in points (zero size when out of view). flame is the graph\u0027s id: cui_last_id(ui) right after the call." }, { "name": "LastRect", "kind": "property", "id": "property|LastRect|0|0|RectF||get;|ha796a249509c6af4a48352050e2d549bf5de307702a0f97fbc12276bc4b72b7b", "signature": "RectF LastRect { get; }", "summary": "Rectangle of the most recent component." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|UiText id||hf03418b016be6b023e965616caed52e5a7dd6a367152691bc14de3eb646ed966", "signature": "RectF RectOf(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Rectangle of the widget with this string id." }, { "name": "RectOf", "kind": "method", "id": "method|RectOf|0|0|RectF|uint id||hc518e049cee7502b5770da6d0349e6e1b3764c8cc67fc33e3a92b5006d46ad99", "signature": "RectF RectOf(uint id)", "parameters": [{ "name": "id", "type": "uint" }], "summary": "Rectangle of any widget by id, for hit tests and overlays." }, { "name": "RegexTester", "kind": "extension", "id": "extension|RegexTester|0|0|RegexTesterResult|UiText id;ref string pattern;int patternCap;ref string text;int textCap;ref RegexFlags flags;RegexTesterOpts o = default||h53b2155ffb50f74e3cdbeb47580968a3b4c6256e0cbe584d8955de62e7015f50", "signature": "RegexTesterResult RegexTester(UiText id, ref string pattern, int patternCap, ref string text, int textCap, ref RegexFlags flags, RegexTesterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pattern", "type": "ref string" }, { "name": "patternCap", "type": "int" }, { "name": "text", "type": "ref string" }, { "name": "textCap", "type": "int" }, { "name": "flags", "type": "ref RegexFlags" }, { "name": "o", "type": "RegexTesterOpts", "default": "default" }], "summary": "cui_regex_tester_ex" }, { "name": "RequestBar", "kind": "extension", "id": "extension|RequestBar|0|0|RequestBarResult|UiText id;ref HttpMethod method;ref string url;int cap = 2048;RequestBarOpts o = default||h400ba2e5c7aed931b8c2e5897d16438378b1652b5dfca8f9a1057e88fcb46043", "signature": "RequestBarResult RequestBar(UiText id, ref HttpMethod method, ref string url, int cap = 2048, RequestBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "method", "type": "ref HttpMethod" }, { "name": "url", "type": "ref string" }, { "name": "cap", "type": "int", "default": "2048" }, { "name": "o", "type": "RequestBarOpts", "default": "default" }], "summary": "cui_request_bar_ex" }, { "name": "ResponseActions", "kind": "extension", "id": "extension|ResponseActions|0|0|ResponseEvents|UiText id;ref int vote;ResponseActionsOpts o = default||hc81149b07827af0f59a3269486e0d44858ac9bb48073ed5150872c876c11984c", "signature": "ResponseEvents ResponseActions(UiText id, ref int vote, ResponseActionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "vote", "type": "ref int" }, { "name": "o", "type": "ResponseActionsOpts", "default": "default" }], "summary": "cui_response_actions_ex" }, { "name": "SchedulePicker", "kind": "extension", "id": "extension|SchedulePicker|0|0|ScheduleResult|UiText id;ref string cron;int cap = 128;ScheduleOpts o = default||h5e149aabf00cdaf3e05fa29f62f956e474f8fee28641ae71fde4eaaeb8801f91", "signature": "ScheduleResult SchedulePicker(UiText id, ref string cron, int cap = 128, ScheduleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "cron", "type": "ref string" }, { "name": "cap", "type": "int", "default": "128" }, { "name": "o", "type": "ScheduleOpts", "default": "default" }], "summary": "cui_schedule_picker_ex" }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id||h8505c3ecbdde9acd049fc2d5d47e3c43d0545b89b2b78cc39c0a3993049107cf", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "Persistent, zeroed storage for a widget id, for values that must survive between frames (animation phases, drag state, hit-test scratch)." }, { "name": "State", "kind": "method", "id": "method|State|0|1|Span\u003CT\u003E|UiText id;Action onFree||hbfa4567fbf2313cbdd3cc11d8daae823c35ccab56e58f7f91c8635a98f228824", "signature": "Span\u003CT\u003E State\u003CT\u003E(UiText id, Action onFree) where T : unmanaged", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "onFree", "type": "Action" }], "summary": "Persistent, zeroed storage for a widget id, with a callback CUI runs when it throws that id\u0027s state away (about five idle seconds, or when the window closes)." }, { "name": "StackTrace", "kind": "extension", "id": "extension|StackTrace|0|0|StackTraceResult|UiText id;ReadOnlySpan\u003CStackFrame\u003E frames;StackTraceOpts o = default||h31d88e2151b353d79ca390bcbc46b17c2882a950f9cf2239a266b97eeaa36a9b", "signature": "StackTraceResult StackTrace(UiText id, ReadOnlySpan\u003CStackFrame\u003E frames, StackTraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "frames", "type": "ReadOnlySpan\u003CStackFrame\u003E" }, { "name": "o", "type": "StackTraceOpts", "default": "default" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "extension", "id": "extension|Terminal|0|0|TerminalResult|UiText id;Terminal terminal;TerminalOpts o = default||h3bb90fc3e22f3e909beb279d5867cc2751b7287513f1480f8c73f2e7405f14d7", "signature": "TerminalResult Terminal(UiText id, Terminal terminal, TerminalOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "terminal", "type": "Terminal" }, { "name": "o", "type": "TerminalOpts", "default": "default" }], "summary": "Draws terminal and reports what the user did in it." }, { "name": "TestExplorer", "kind": "extension", "id": "extension|TestExplorer|0|0|TestExplorerResult|UiText id;ReadOnlySpan\u003CTestItem\u003E items;TestExplorerOpts o = default||h9eeb18e60e88e82a908b873a27468f9699a55c61fb36da8ff356557f102e3862", "signature": "TestExplorerResult TestExplorer(UiText id, ReadOnlySpan\u003CTestItem\u003E items, TestExplorerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTestItem\u003E" }, { "name": "o", "type": "TestExplorerOpts", "default": "default" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|0|0|TextMetrics|UiText text;float size = 12f;Font font = Font.Body||h992b53c9418ee9ba19c1fd34ea05dca44fabbaac335e2ecdd31ccf760fd4f66f", "signature": "TextMetrics MeasureText(UiText text, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Width and height of a single line of text, without wrapping." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "The theme this frame draws with. Assign to switch, from anywhere inside a frame." }, { "name": "Style", "kind": "property", "id": "property|Style|0|0|ThemeStyle||get;|h4a1ba7271e3ed1e378ccdc5f7d6055b8fea5756bf3605b1214e29e77e4e7860a", "signature": "ThemeStyle Style { get; }", "summary": "The design tokens this frame draws with \u2014 radii, control heights, text and heading sizes, the motion multiplier and the palette \u2014 as a live view to read and to assign." }, { "name": "TimeHistogram", "kind": "extension", "id": "extension|TimeHistogram|0|0|TimeHistogramResult|UiText id;double start;double bucketSeconds;int buckets;ReadOnlySpan\u003CHistogramSeries\u003E series;ref double selStart;ref double selEnd;TimeHistogramOpts o = default||hfc0784cb52bfd6a3615191c61545b37c444f2ce965ef93b671333df27d4bf165", "signature": "TimeHistogramResult TimeHistogram(UiText id, double start, double bucketSeconds, int buckets, ReadOnlySpan\u003CHistogramSeries\u003E series, ref double selStart, ref double selEnd, TimeHistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "ReadOnlySpan\u003CHistogramSeries\u003E" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "o", "type": "TimeHistogramOpts", "default": "default" }], "summary": "cui_time_histogram_ex" }, { "name": "Tour", "kind": "extension", "id": "extension|Tour|0|0|TourAction|UiText id;ReadOnlySpan\u003CTourStep\u003E steps;ref int step;TourOpts o = default||h7a480bb022c619036d7ca1d19006a7d5aa923a84ea3fc62b5eae88ea7b1088c8", "signature": "TourAction Tour(UiText id, ReadOnlySpan\u003CTourStep\u003E steps, ref int step, TourOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CTourStep\u003E" }, { "name": "step", "type": "ref int" }, { "name": "o", "type": "TourOpts", "default": "default" }], "summary": "What happened this frame: one of CUI_TOUR_*." }, { "name": "TraceView", "kind": "extension", "id": "extension|TraceView|0|0|TraceResult|UiText id;ReadOnlySpan\u003CTraceTrack\u003E tracks;ReadOnlySpan\u003CTraceSpan\u003E spans;ref TraceViewState view;ref int selected;TraceOpts o = default||h7ab8ce526cada0bd73b947180d909dfa39f159b47ac14940ec53b67f28158b92", "signature": "TraceResult TraceView(UiText id, ReadOnlySpan\u003CTraceTrack\u003E tracks, ReadOnlySpan\u003CTraceSpan\u003E spans, ref TraceViewState view, ref int selected, TraceOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tracks", "type": "ReadOnlySpan\u003CTraceTrack\u003E" }, { "name": "spans", "type": "ReadOnlySpan\u003CTraceSpan\u003E" }, { "name": "view", "type": "ref TraceViewState" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TraceOpts", "default": "default" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||h5ad3a7ebd26d1298c20becc826efa4b5392b7ddbca0d68cfbb1f162eb572fd75", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws a tree without sort or keyboard state: the table keeps no per-id interaction state, which is all a static tree needs." }, { "name": "TreeTable", "kind": "extension", "id": "extension|TreeTable|0|0|TreeTableEvents|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;TreeNode[] nodes;TreeTableRow row;ref TableSort sort;ref int cursor;TreeTableOpts o = default;Func\u003Cint, string?\u003E? label = null||hdc8db941f4c0a5cc7a1e81a316f1e56fbc2468020569fb6cacf3307bec596a1d", "signature": "TreeTableEvents TreeTable(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, TreeNode[] nodes, TreeTableRow row, ref TableSort sort, ref int cursor, TreeTableOpts o = default, Func\u003Cint, string?\u003E? label = null)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "nodes", "type": "TreeNode[]" }, { "name": "row", "type": "TreeTableRow" }, { "name": "sort", "type": "ref TableSort" }, { "name": "cursor", "type": "ref int" }, { "name": "o", "type": "TreeTableOpts", "default": "default" }, { "name": "label", "type": "Func\u003Cint, string?\u003E?", "default": "null" }], "summary": "Draws nodes as a tree with columns, calling row once per visible node to fill its cells." }, { "name": "Uptime", "kind": "extension", "id": "extension|Uptime|0|0|UptimeResult|UiText id;ReadOnlySpan\u003CUptimeService\u003E services;UptimeOpts o = default||h60131e1db59b8a809d222a6d6dee840e1ccde25607a2c4178418eef8a488dccb", "signature": "UptimeResult Uptime(UiText id, ReadOnlySpan\u003CUptimeService\u003E services, UptimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "services", "type": "ReadOnlySpan\u003CUptimeService\u003E" }, { "name": "o", "type": "UptimeOpts", "default": "default" }], "summary": "cui_uptime_ex" }, { "name": "MousePosition", "kind": "property", "id": "property|MousePosition|0|0|ValueTuple\u003Cfloat, float\u003E||get;|h02b51b7243b762c56e53482522c31644d844cd12e36381af09a9700cd549db93", "signature": "ValueTuple\u003Cfloat, float\u003E MousePosition { get; }", "summary": "Pointer position in points, top-left origin." }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|0|0|ValueTuple\u003Cfloat, float\u003E|||h7a26e2e5e6b39edb5a26a6e7adde40edf0bcd8599f3d7629ea37d02c109493a2", "signature": "ValueTuple\u003Cfloat, float\u003E ViewportSize()" }, { "name": "Waterfall", "kind": "extension", "id": "extension|Waterfall|0|0|WaterfallResult|UiText id;ReadOnlySpan\u003CNetRequest\u003E requests;ref int selected;WaterfallOpts o = default||h419b5ccb1a80d64ac3cce058fa79a3ac44664f29e8c9685c083cf8552c6714e6", "signature": "WaterfallResult Waterfall(UiText id, ReadOnlySpan\u003CNetRequest\u003E requests, ref int selected, WaterfallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "requests", "type": "ReadOnlySpan\u003CNetRequest\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "WaterfallOpts", "default": "default" }], "summary": "cui_waterfall_ex" }, { "name": "Alert", "kind": "extension", "id": "extension|Alert|0|0|bool|UiText title;AlertOpts o = default||hb9b8786bcd05d91b48b9d5b7e7c8dfe99eab8a18cccf61ee5708920e8c2c65a0", "signature": "bool Alert(UiText title, AlertOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "AlertOpts", "default": "default" }], "summary": "Inline alert. Returns false once dismissed (when dismissible)." }, { "name": "Banner", "kind": "extension", "id": "extension|Banner|0|0|bool|UiText text;ref bool open;BannerOpts o = default||hded3699dd8c0717c5f0d2f8a60f5b76364aaa539a156402e1d68fed1e8b19dd6", "signature": "bool Banner(UiText text, ref bool open, BannerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "o", "type": "BannerOpts", "default": "default" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "extension", "id": "extension|Button|0|0|bool|UiText label;ButtonOpts o = default||h0824ce1ee9db1a3102bbbc57b5f43c838d0aac0c456dc9d0f5ddf3a8bb9eaae3", "signature": "bool Button(UiText label, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "extension", "id": "extension|Calendar|0|0|bool|UiText id;ref Date value||he2d734019c4ba63e626cffe267911189a15dbf5b403eff0fc6fd9898d4334662", "signature": "bool Calendar(UiText id, ref Date value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }], "summary": "cui_calendar" }, { "name": "Checkbox", "kind": "extension", "id": "extension|Checkbox|0|0|bool|UiText label;ref bool value;CheckOpts o = default||h5e553956f3358e286491451619c072577baad5689e0ba2b38257460dced857ee", "signature": "bool Checkbox(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "extension", "id": "extension|Chip|0|0|bool|UiText label;ref bool selected;ChipOpts o = default||h4ff38ab2a9a818e7526990ee6c9e6f19f63a1138e5fb79d08917e25c0d0a78ee", "signature": "bool Chip(UiText label, ref bool selected, ChipOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "selected", "type": "ref bool" }, { "name": "o", "type": "ChipOpts", "default": "default" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "extension", "id": "extension|Citation|0|0|bool|int number;in Source source||ha19b93ee36f160c6271aaa8db69ab4937531c6d0be1bdcd8e208aa7eb206aee7", "signature": "bool Citation(int number, in Source source)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "number", "type": "int" }, { "name": "source", "type": "in Source" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "extension", "id": "extension|ColorPicker|0|0|bool|UiText id;ref Color value||h337517bd7bbb67ac9f2a0f2cd3561338116b8bbce4aab6736de92c41bd706e10", "signature": "bool ColorPicker(UiText id, ref Color value)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Color" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "extension", "id": "extension|ConfirmButton|0|0|bool|UiText label;ConfirmOpts o = default||ha173e8d04000010db239a95f45b5a65630e6c3a32565f48acd835a79732b2383", "signature": "bool ConfirmButton(UiText label, ConfirmOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "ConfirmOpts", "default": "default" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "extension", "id": "extension|ConfirmPopover|0|0|bool|UiText id;ConfirmPopoverOpts o = default||h1c2e0982b9c59e893eae1a02030bc1dcf3a82997c3f51101dbeae1b45e768ee2", "signature": "bool ConfirmPopover(UiText id, ConfirmPopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "ConfirmPopoverOpts", "default": "default" }], "summary": "cui_confirm_popover_ex" }, { "name": "ControlTile", "kind": "extension", "id": "extension|ControlTile|0|0|bool|UiText label;ref bool on;TileOpts o = default||h030def7b2183e0b26721bad6afc91a710eb6f7cf309e2889db383c64f1477cbd", "signature": "bool ControlTile(UiText label, ref bool on, TileOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "on", "type": "ref bool" }, { "name": "o", "type": "TileOpts", "default": "default" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "extension", "id": "extension|CopyButton|0|0|bool|UiText id;UiText text||hbc740c15d3716aa5400fb730217b29b8462ce4a82a1b3b2c9884600f4fbfe844", "signature": "bool CopyButton(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "Icon button that copies text to the clipboard and confirms with a check." }, { "name": "Cropper", "kind": "extension", "id": "extension|Cropper|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref RectF crop;CropperOpts o = default||hc4433b320e719d68cf000799d9f75543139b19ed26265d5d5b7ef0e7cb29a2cf", "signature": "bool Cropper(UiText id, ulong tex, int imageW, int imageH, ref RectF crop, CropperOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref RectF" }, { "name": "o", "type": "CropperOpts", "default": "default" }], "summary": "Returns true when the crop changed." }, { "name": "DataGridCellEdit", "kind": "extension", "id": "extension|DataGridCellEdit|0|0|bool|ref string buf;int cap||h36d248e6c06ee8f7c129163000d2afe51274d879f2f2a6dd8f75e48579c04c63", "signature": "bool DataGridCellEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Editable text cell: double click (or Enter on the cursor row) to edit, Enter or clicking away commits, Esc reverts. True when committed." }, { "name": "DataGridEdit", "kind": "extension", "id": "extension|DataGridEdit|0|0|bool|ref string buf;int cap||h4a0248a3c48520cf419b921b7953de24c458026bb86ab7bd00ba08e5d194ef65", "signature": "bool DataGridEdit(ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "The same editable text, inside the current cell (after an avatar, say)." }, { "name": "DataGridRow", "kind": "extension", "id": "extension|DataGridRow|0|0|bool|int row||h5fe4fdf7429d5b5aac0325fa0af56631c8d8a1ff342c03251fe30d766d9f9225", "signature": "bool DataGridRow(int row)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "extension", "id": "extension|DatePicker|0|0|bool|UiText id;ref Date value;DateOpts o = default||h993523ace680cddb6c1434059ef52f3fb34d716bed495d79d97b148118785ee2", "signature": "bool DatePicker(UiText id, ref Date value, DateOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref Date" }, { "name": "o", "type": "DateOpts", "default": "default" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "extension", "id": "extension|DateRangePicker|0|0|bool|UiText id;ref DateRange range;DateRangeOpts o = default||h9daa98cbb5461612c53362c329641eba719561905ce1865087421113c0ee84d1", "signature": "bool DateRangePicker(UiText id, ref DateRange range, DateRangeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "o", "type": "DateRangeOpts", "default": "default" }], "summary": "cui_date_range_picker_ex" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|0|0|bool|out Date value||h2030bff62c6a99d4c47e3fa2a09f8c125232327d048faf8c41c853eeafa84679", "signature": "bool DateToday(out Date value)", "parameters": [{ "name": "value", "type": "out Date" }] }, { "name": "DockItem", "kind": "extension", "id": "extension|DockItem|0|0|bool|UiText icon;UiText label;DockItemOpts o = default||h6868974ee881c1a4f660ae0207737b226f6822fd1064babdbda9860825db89d1", "signature": "bool DockItem(UiText icon, UiText label, DockItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "DockItemOpts", "default": "default" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "extension", "id": "extension|DockLoad|0|0|bool|UiText id;UiText text||hffd91787faf77c3d390dfe7deb8bb16df93eb717a31ba3fd4130eac2e2e134b4", "signature": "bool DockLoad(UiText id, UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }], "summary": "cui_dock_load" }, { "name": "EmojiFontLoadFile", "kind": "extension", "id": "extension|EmojiFontLoadFile|0|0|bool|UiText path||hf9ed3d99d8c528c9df41c7bca5721cb0eb461686e0a48bc35d1cf718f13ba0f6", "signature": "bool EmojiFontLoadFile(UiText path)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "path", "type": "UiText" }], "summary": "---- Emoji ---- Color emoji come from an emoji font: the system\u0027s (cui_emoji_font_load_system, which the picker calls by itself when nothing is loaded) or one the app ships. Bitmap color fonts (sbix as on macOS, CBDT as on Linux and Android) and layered ones (COLR version 0, as on Windows) are read, as is a plain outline font for one-color emoji. Sequences with skin tones, joined people and flags are looked up through the font\u0027s ligatures. Big fonts are read from the file as needed rather than loaded whole. Drawn emoji are kept in one texture and reused." }, { "name": "EmojiFontLoadMemory", "kind": "extension", "id": "extension|EmojiFontLoadMemory|0|0|bool|ReadOnlySpan\u003Cbyte\u003E data;bool copy||h8f31cf994f46f3f46e0c7fdefbd7d39be865056bcb0700421f0fee7be7142342", "signature": "bool EmojiFontLoadMemory(ReadOnlySpan\u003Cbyte\u003E data, bool copy)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "data", "type": "ReadOnlySpan\u003Cbyte\u003E" }, { "name": "copy", "type": "bool" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "extension", "id": "extension|EmojiFontLoadSystem|0|0|bool|||he4386dbb08b9f31fd0c23d6cb333b56d4babcbd26d5e38fa72a56bc89a6bac12", "signature": "bool EmojiFontLoadSystem()", "extensionOn": "CuiSharp.Ui", "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "extension", "id": "extension|EmojiSupported|0|0|bool|UiText utf8||he0adda46557f9d84dbc4c6feb4f995d99998ffae9bdabd33371c8df1fc7899fb", "signature": "bool EmojiSupported(UiText utf8)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "extension", "id": "extension|EmptyState|0|0|bool|UiText title;EmptyOpts o = default||h3447935b9ffe834dcbe57094c2bd062fa6216fbbd3d59e4e2527f7da36f6f369", "signature": "bool EmptyState(UiText title, EmptyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "EmptyOpts", "default": "default" }], "summary": "Empty state. Returns true when its action button is clicked." }, { "name": "ExpandableText", "kind": "extension", "id": "extension|ExpandableText|0|0|bool|UiText id;UiText text;ExpandableTextOpts o = default||h0853336278f85890679dc7cd1bc9eb77a34f2cf61567d87164045778c0f8d6ad", "signature": "bool ExpandableText(UiText id, UiText text, ExpandableTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "ExpandableTextOpts", "default": "default" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "extension", "id": "extension|Fader|0|0|bool|UiText id;ref float value;float min;float max;FaderOpts o = default||h8266bbe632feda1ec1b4b87bd7f41cc9e107e496de7dfb957c9d87f1e63f8835", "signature": "bool Fader(UiText id, ref float value, float min, float max, FaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "FaderOpts", "default": "default" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the window, for a drop target to light up." }, { "name": "FilePicker", "kind": "extension", "id": "extension|FilePicker|0|0|bool|UiText id;ref bool open;ref string out;int outCap = 1024;FilePickerOpts o = default||hb1ce6182678b8b2ca569fff7fdf6d4a781314228ed80d25a4c02a48b368dd07f", "signature": "bool FilePicker(UiText id, ref bool open, ref string @out, int outCap = 1024, FilePickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "out", "type": "ref string" }, { "name": "outCap", "type": "int", "default": "1024" }, { "name": "o", "type": "FilePickerOpts", "default": "default" }], "summary": "True once, with the chosen path in out, when the dialog is confirmed; *open turns false then, or on Cancel and Esc." }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|0|0|bool|UiText id;ReadOnlySpan\u003CFilterField\u003E fields;Span\u003Cuint\u003E selected;ref string search;int searchCap = 256||h05b35fdecfc879680ca00e844554bef0fb0d2b9ee533e72f50a25b4cb5e4be7a", "signature": "bool FilterBar(UiText id, ReadOnlySpan\u003CFilterField\u003E fields, Span\u003Cuint\u003E selected, ref string search, int searchCap = 256)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CFilterField\u003E" }, { "name": "selected", "type": "Span\u003Cuint\u003E" }, { "name": "search", "type": "ref string" }, { "name": "searchCap", "type": "int", "default": "256" }], "summary": "Filter chips, one dropdown per field plus a search. selected holds one option bitmask per field; returns true on any change." }, { "name": "HistogramSlider", "kind": "extension", "id": "extension|HistogramSlider|0|0|bool|UiText label;ReadOnlySpan\u003Cfloat\u003E bins;ref float lo;ref float hi;float min;float max;HistogramOpts o = default||h72cc41a613543670d7d773f53d3ed618f4ca5dda5c9cf710a8ea0c0745f9816a", "signature": "bool HistogramSlider(UiText label, ReadOnlySpan\u003Cfloat\u003E bins, ref float lo, ref float hi, float min, float max, HistogramOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "bins", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "HistogramOpts", "default": "default" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "extension", "id": "extension|HoldButton|0|0|bool|UiText label;HoldOpts o = default||ha44fcfbb972ecfbea614fbc280b43abd9c243c1e05ac46d39ac240667e1b2a30", "signature": "bool HoldButton(UiText label, HoldOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "HoldOpts", "default": "default" }], "summary": "cui_hold_button_ex" }, { "name": "IconButton", "kind": "extension", "id": "extension|IconButton|0|0|bool|UiText icon;ButtonOpts o = default||h5215045b3b917c5c328653c82d759d884c905c9bee3fd2bcae9c23b95552a5e2", "signature": "bool IconButton(UiText icon, ButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "o", "type": "ButtonOpts", "default": "default" }], "summary": "Square/round button with only an icon. Give it a tooltip so it has a name." }, { "name": "ImageCompare", "kind": "extension", "id": "extension|ImageCompare|0|0|bool|UiText id;ulong before;ulong after;ref float pos;CompareOpts o = default||hbf70b5332c704791b825e9cb8d9e14cd4661dfc72efb9bed54e7afc61aac7221", "signature": "bool ImageCompare(UiText id, ulong before, ulong after, ref float pos, CompareOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "o", "type": "CompareOpts", "default": "default" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "extension", "id": "extension|ImageViewer|0|0|bool|UiText id;ulong tex;int imageW;int imageH;ref ImageView view;ImageViewerOpts o = default||hfd49614f5ed12268c88fafc87f200f9ba92c7a0989e02c2476dadf0bb0fab3b3", "signature": "bool ImageViewer(UiText id, ulong tex, int imageW, int imageH, ref ImageView view, ImageViewerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref ImageView" }, { "name": "o", "type": "ImageViewerOpts", "default": "default" }], "summary": "Returns true when the view changed." }, { "name": "InspectorGroup", "kind": "extension", "id": "extension|InspectorGroup|0|0|bool|UiText title;ref bool open||hba33317836e4529b513b762245b52b82d2fc8fd252b7ae2174d7ffdf7ff08018", "signature": "bool InspectorGroup(UiText title, ref bool open)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }], "summary": "A folding group header. Build its rows only when this returns true (it stays true while the group animates closed). open may be NULL for a plain section that does not fold." }, { "name": "IsDisabled", "kind": "property", "id": "property|IsDisabled|0|0|bool||get;|h66819bb8e34991aa0b9a8fdf312d84bcc577f1aed8196c14e9cfc9792bab4b6e", "signature": "bool IsDisabled { get; }", "summary": "True inside a Disabled scope (or one a parent opened)." }, { "name": "JsonView", "kind": "extension", "id": "extension|JsonView|0|0|bool|UiText id;UiText json;JsonOpts o = default||h206112d6d2798b04c8b2e35b11a492fe5022438268206f218c32f29f9efa0bbf", "signature": "bool JsonView(UiText id, UiText json, JsonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "json", "type": "UiText" }, { "name": "o", "type": "JsonOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Kanban", "kind": "extension", "id": "extension|Kanban|0|0|bool|UiText id;out KanbanMove kanbanmove;DrawFn body||h06459ebde22b2b48e212f80454450eb468aac078e18e50dee8f7aa756afdbe5e", "signature": "bool Kanban(UiText id, out KanbanMove kanbanmove, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "kanbanmove", "type": "out KanbanMove" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_kanban_begin The card was dropped into another column, and the move is written into the out parameter." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|bool|Key key||h8b8a390f57bfe976c9fae2d30fec99be77322f69944968534c26bc08482cb159", "signature": "bool KeyDown(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True while the key is held (with auto-repeat)." }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|0|0|bool|Key key||hd4bc534b9e8b12976f0c38f87635500fca89a9d6949ea0a103354f41e6d39700", "signature": "bool KeyPressed(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "True on the frame the key went down, including repeats." }, { "name": "Knob", "kind": "extension", "id": "extension|Knob|0|0|bool|UiText id;ref float value;float min;float max;KnobOpts o = default||hfceb051da509c5e36d4bd22400b42f24a8cc0da8ba2c27a23c8e378855c66680", "signature": "bool Knob(UiText id, ref float value, float min, float max, KnobOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "KnobOpts", "default": "default" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "extension", "id": "extension|KvEditor|0|0|bool|UiText id;Span\u003CKeyValue\u003E pairs;ref int count;int capacity;KvEditorOpts o = default||h5d7a626c1e0d0a2cbf62a8c0287d50a3401dbcf803f979b35c42c7899fb4db07", "signature": "bool KvEditor(UiText id, Span\u003CKeyValue\u003E pairs, ref int count, int capacity, KvEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "pairs", "type": "Span\u003CKeyValue\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "KvEditorOpts", "default": "default" }], "summary": "cui_kv_editor_ex" }, { "name": "LevelMeter", "kind": "extension", "id": "extension|LevelMeter|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E levels;LevelMeterOpts o = default||he2b90272968549a2bc948844fa0f2e5fcb787783f5c0716cf3d8c48db532ab7e", "signature": "bool LevelMeter(UiText id, ReadOnlySpan\u003Cfloat\u003E levels, LevelMeterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "levels", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "LevelMeterOpts", "default": "default" }], "summary": "Returns true when the clip light was clicked to clear it." }, { "name": "Link", "kind": "extension", "id": "extension|Link|0|0|bool|UiText text||h20b90df40ad793aa00f00bae1aeddd8c78d8d1ee7eccdf7f709db8b78317b57a", "signature": "bool Link(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "extension", "id": "extension|ListItem|0|0|bool|UiText title;ListItemOpts o = default||h59240e7a8fd8d1115830e25d32bfc60e47f14e4645e8e48b58281c710be7f5c9", "signature": "bool ListItem(UiText title, ListItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ListItemOpts", "default": "default" }], "summary": "cui_list_item_ex" }, { "name": "LoadImage", "kind": "method", "id": "method|LoadImage|0|0|bool|UiText path;out ulong texture;out int width;out int height||hfe19783db558936a04580a0831ac4289470f120ccd1ef3163fcee3e05649da1f", "signature": "bool LoadImage(UiText path, out ulong texture, out int width, out int height)", "parameters": [{ "name": "path", "type": "UiText" }, { "name": "texture", "type": "out ulong" }, { "name": "width", "type": "out int" }, { "name": "height", "type": "out int" }], "summary": "Decodes a PNG or JPEG from disk into a texture and reports its pixel size. Returns false when the file cannot be read or decoded; the texture is then 0. Release it with DestroyImage." }, { "name": "MenuItem", "kind": "extension", "id": "extension|MenuItem|0|0|bool|UiText label;MenuItemOpts o = default||h6f02a24b8c3e14f743f1164e34c40e0c32e7647a378fc18f6fac4bd77708b604", "signature": "bool MenuItem(UiText label, MenuItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "MenuItemOpts", "default": "default" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "extension", "id": "extension|ModelPicker|0|0|bool|UiText id;ReadOnlySpan\u003CModel\u003E models;ref int selected;ModelPickerOpts o = default||h30f09bcdbcd0511d67feaab5ce1eb2d84b0769c8eb387e2675cdc4b9faf9d869", "signature": "bool ModelPicker(UiText id, ReadOnlySpan\u003CModel\u003E models, ref int selected, ModelPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "models", "type": "ReadOnlySpan\u003CModel\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "ModelPickerOpts", "default": "default" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "extension", "id": "extension|MoneyInput|0|0|bool|UiText id;ref double value;MoneyOpts o = default||hd65fb688e51d9a482d2f9031cdb57646790ad85a3c809e961601a8725a753b42", "signature": "bool MoneyInput(UiText id, ref double value, MoneyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "o", "type": "MoneyOpts", "default": "default" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|0|0|bool|MouseButton button||h8e0f0ad614e613c5c152543c9917af645f5ae90299577124c2da8f7863f69862", "signature": "bool MouseClicked(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True on the frame a mouse button went down." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|bool|MouseButton button||hf67b74dbd9e44892fdb6b384ac7537f75c21e2054ec9267ee7cf800f77c4c81d", "signature": "bool MouseDown(MouseButton button)", "parameters": [{ "name": "button", "type": "MouseButton" }], "summary": "True while a mouse button is held." }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;Span\u003Cbool\u003E selected;MultiSelectOpts o = default||h3e128721808f3d5d3438e029c09a821039a75342e2851271e35420570d1affca", "signature": "bool MultiSelect(UiText id, ReadOnlySpan\u003Cstring\u003E items, Span\u003Cbool\u003E selected, MultiSelectOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "selected", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "MultiSelectOpts", "default": "default" }], "summary": "A searchable list with one checkbox per item and chips for the chosen ones. Returns true on the frame an entry flips." }, { "name": "NavItem", "kind": "extension", "id": "extension|NavItem|0|0|bool|UiText label;NavOpts o = default||h163b7c5bf544cc2227cbef6b64c928a89e62b8536a9e4ab947179a86d455c59d", "signature": "bool NavItem(UiText label, NavOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "NavOpts", "default": "default" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "property", "id": "property|NeedsRedraw|0|0|bool||get;|h5aadd05568570958d5b9529ecc317e3ce874d6c40baa003636859fb90a0da9fc", "signature": "bool NeedsRedraw { get; }" }, { "name": "NodeDeleted", "kind": "extension", "id": "extension|NodeDeleted|0|0|bool|ref int nodeId||hc3cfc3ad4c4fc3a042b1dbb26d3de5739a59ee9b1e9f8c1741f772a5e535d6bc", "signature": "bool NodeDeleted(ref int nodeId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeInput", "kind": "extension", "id": "extension|NodeInput|0|0|bool|int pinId;UiText label;PinOpts o = default||hd37a374006c3c8cd18c68d9d7503bd5160359d3f3e458d3531e756c52700b1f0", "signature": "bool NodeInput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "extension", "id": "extension|NodeLink|0|0|bool|int linkId;int fromPin;int toPin||hab2ff05d12c3863dc35ff7ced8cdef83783fba6a2e16dbd81214feb3eaf01910", "signature": "bool NodeLink(int linkId, int fromPin, int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeLinkCreated", "kind": "extension", "id": "extension|NodeLinkCreated|0|0|bool|ref int fromPin;ref int toPin||h7c136a895333c132f83c1d99cf5809163d5430c0060eaaedcf7bbe0f15f462bd", "signature": "bool NodeLinkCreated(ref int fromPin, ref int toPin)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "What the user did this frame, one event per call; call them after cui_node_editor_begin (and up to the end of the frame)." }, { "name": "NodeLinkRemoved", "kind": "extension", "id": "extension|NodeLinkRemoved|0|0|bool|ref int linkId||h8cf7097abf407418a15af49e45ee086b240ec03b1e130c7888ce620da1bbadca", "signature": "bool NodeLinkRemoved(ref int linkId)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "linkId", "type": "ref int" }], "summary": "Part of cui_node_link \u2014 A link from an output pin to an input pin. Returns true while it is selected." }, { "name": "NodeOutput", "kind": "extension", "id": "extension|NodeOutput|0|0|bool|int pinId;UiText label;PinOpts o = default||h3750efacdd047bf840c0482278adf33fa6dd72ffa3acb6bf2c1afd789b95d351", "signature": "bool NodeOutput(int pinId, UiText label, PinOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "pinId", "type": "int" }, { "name": "label", "type": "UiText" }, { "name": "o", "type": "PinOpts", "default": "default" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|0|0|bool|UiText id;ref double value;double min;double max;NumberOpts o = default||h695eacf696437442db4c71e212e9d772037965f7b79fa0164581c32f72012f09", "signature": "bool Number(UiText id, ref double value, double min, double max, NumberOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "o", "type": "NumberOpts", "default": "default" }] }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|0|0|bool|UiText id;ref string value;int length||h8029c922f0c302147b4a9d172f51e477cf692656857072b2505965f1cc911eaf", "signature": "bool OtpInput(UiText id, ref string value, int length)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "length", "type": "int" }], "summary": "One-time code input: length boxes, buffer length \u002B 1." }, { "name": "Pagination", "kind": "extension", "id": "extension|Pagination|0|0|bool|UiText id;ref int page;int pageCount||h79ccb8aea896cd889c714acd8763edcf22dbbfb029a1dbd70ed9639354c6b6c8", "signature": "bool Pagination(UiText id, ref int page, int pageCount)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PopoverIsOpen", "kind": "extension", "id": "extension|PopoverIsOpen|0|0|bool|UiText id||h83722811a2be8261fbe93cc555b026a4a1e130ec294d2cd25013358d929a3c0e", "signature": "bool PopoverIsOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "extension", "id": "extension|PropBool|0|0|bool|UiText label;ref bool value;PropOpts o = default||h121ac40771efea9741585563443f4c4687f7a10d137ffd9d268555b5501ddd64", "signature": "bool PropBool(UiText label, ref bool value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "extension", "id": "extension|PropColor|0|0|bool|UiText label;ref Color value;PropOpts o = default||h6ca0bc5ddc35dae8cf9131bd28c26cd31e497e501164de0d50828fb7983a1cc2", "signature": "bool PropColor(UiText label, ref Color value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref Color" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "A swatch and hex value that opens the color picker." }, { "name": "PropEnum", "kind": "extension", "id": "extension|PropEnum|0|0|bool|UiText label;ReadOnlySpan\u003Cstring\u003E items;ref int index;PropOpts o = default||h241aa42ffd01f5c7a9fadb861af4a608b0c8a014ae458b62692370d10cf009d8", "signature": "bool PropEnum(UiText label, ReadOnlySpan\u003Cstring\u003E items, ref int index, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "extension", "id": "extension|PropFloat|0|0|bool|UiText label;ref float value;PropOpts o = default||hc8efd7345903f342766598358e2e5c0998eb7933cf7f5cec0429b86873ff6ccf", "signature": "bool PropFloat(UiText label, ref float value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "extension", "id": "extension|PropInt|0|0|bool|UiText label;ref int value;PropOpts o = default||hd93df8234e1afb0dba5df9a1531c8936c732948e17db67e12102617d568c305b", "signature": "bool PropInt(UiText label, ref int value, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "extension", "id": "extension|PropText|0|0|bool|UiText label;ref string buf;int cap;PropOpts o = default||h46a1a717145b1f3a7800e8921d45ea9b002d8c2fdf5958fbf3c03f97fc47d1db", "signature": "bool PropText(UiText label, ref string buf, int cap, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "extension", "id": "extension|PropVec|0|0|bool|UiText label;ref float value;int components;PropOpts o = default||h57600f963270b3c592fd247d9b1f943533361ae615e7b6ca52e287fa289a67b2", "signature": "bool PropVec(UiText label, ref float value, int components, PropOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "o", "type": "PropOpts", "default": "default" }], "summary": "Compact X, Y (Z, W) scrub fields side by side; value holds 2, 3 or 4 floats." }, { "name": "QueryBuilder", "kind": "extension", "id": "extension|QueryBuilder|0|0|bool|UiText id;ReadOnlySpan\u003CQueryField\u003E fields;Span\u003CQueryNode\u003E nodes;ref int count;int capacity;QueryOpts o = default||h63279934815740f429812f645fc20bbc38efc937b246d56e61a9f171034a9922", "signature": "bool QueryBuilder(UiText id, ReadOnlySpan\u003CQueryField\u003E fields, Span\u003CQueryNode\u003E nodes, ref int count, int capacity, QueryOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "Span\u003CQueryNode\u003E" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "o", "type": "QueryOpts", "default": "default" }], "summary": "cui_query_builder_ex" }, { "name": "Radio", "kind": "extension", "id": "extension|Radio|0|0|bool|UiText label;ref int value;int option;CheckOpts o = default||h837451b9483026bc7e273c76e5251c0de524d770f182a8365674ac44553130ee", "signature": "bool Radio(UiText label, ref int value, int option, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "extension", "id": "extension|RadioCards|0|0|bool|UiText id;ReadOnlySpan\u003CChoice\u003E choices;ref int index;RadioCardsOpts o = default||h277ecfd91b4ab6ad87556ac5585d5014c5f8f4b70743ded6f2d33b25b513c439", "signature": "bool RadioCards(UiText id, ReadOnlySpan\u003CChoice\u003E choices, ref int index, RadioCardsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "choices", "type": "ReadOnlySpan\u003CChoice\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "RadioCardsOpts", "default": "default" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "extension", "id": "extension|RadioGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index||h13b5e8871098bf87979cd713e4fa844042e8066de15ba83cf7b5cda071897cee", "signature": "bool RadioGroup(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "extension", "id": "extension|RangeCalendar|0|0|bool|UiText id;ref DateRange range;int months||h8c74871e3d5b09aa52567046cfb0cacddba5d6bd45af5a0343aa6ea880da3344", "signature": "bool RangeCalendar(UiText id, ref DateRange range, int months)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "range", "type": "ref DateRange" }, { "name": "months", "type": "int" }], "summary": "One or two months side by side; click a start and an end." }, { "name": "RangeSlider", "kind": "extension", "id": "extension|RangeSlider|0|0|bool|UiText label;ref float lo;ref float hi;float min;float max||h431a1c22347795ecfaf7422d776daf2552ad13b1bbafc0b34e7ddfbb9f6fca1e", "signature": "bool RangeSlider(UiText label, ref float lo, ref float hi, float min, float max)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "extension", "id": "extension|Rating|0|0|bool|UiText id;ref int value;int max = 5||ha54ef468c924f3613d361d9d3e4ba18c9bed4ef0f7d7dd855532a052b89231ce", "signature": "bool Rating(UiText id, ref int value, int max = 5)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int", "default": "5" }], "summary": "cui_rating" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|0|0|bool|||h289d889249190a219f4708d3f6a34916df30d8dccdd623b1af17d06cf7ad4fe9", "signature": "bool ReorderEnd()" }, { "name": "RulerSlider", "kind": "extension", "id": "extension|RulerSlider|0|0|bool|UiText label;ref float value;float min;float max;RulerOpts o = default||hda8dec175710635b7de7215517d587b9a5332ed440922d693ed02813d9c4deb7", "signature": "bool RulerSlider(UiText label, ref float value, float min, float max, RulerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RulerOpts", "default": "default" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "extension", "id": "extension|Scrub|0|0|bool|UiText label;ref float value;float min;float max;ScrubOpts o = default||h816f9787704b09241842573d59264e0cc5674f4a764e0ae2054b721f3ad20a7b", "signature": "bool Scrub(UiText label, ref float value, float min, float max, ScrubOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "ScrubOpts", "default": "default" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SegmentedOpts o = default||h8452b4d90fbd938f7492782df2bfd7e49e6f17b79bb32a7fa92536dbbc52bbfb", "signature": "bool Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "extension", "id": "extension|Select|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;SelectOpts o = default||h4546d9051044aa80f649b171897799d53c415b998250abdc626bf84e5341bea3", "signature": "bool Select(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, SelectOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "SelectOpts", "default": "default" }], "summary": "cui_select_ex" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|0|0|bool|Mods mods;Key key||h23544d98ad9364c783897d23b07d28fd4c4889f44ac4f6b734142ae19cee295a", "signature": "bool Shortcut(Mods mods, Key key)", "parameters": [{ "name": "mods", "type": "Mods" }, { "name": "key", "type": "Key" }] }, { "name": "ShortcutRecorder", "kind": "extension", "id": "extension|ShortcutRecorder|0|0|bool|UiText id;ref KeyCombo combo;ShortcutRecorderOpts o = default||h22c067848057da16592bf471e38a3d5c8d3e7a976928a24a34dda5e650586e2a", "signature": "bool ShortcutRecorder(UiText id, ref KeyCombo combo, ShortcutRecorderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "combo", "type": "ref KeyCombo" }, { "name": "o", "type": "ShortcutRecorderOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "SignaturePad", "kind": "extension", "id": "extension|SignaturePad|0|0|bool|UiText id;SignatureOpts o = default||h26a7180ac812cfc40208765b73de3283d8bdc2a773db48e467c36bfac61e2f47", "signature": "bool SignaturePad(UiText id, SignatureOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "SignatureOpts", "default": "default" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "extension", "id": "extension|Slider|0|0|bool|UiText label;ref float value;float min;float max;SliderOpts o = default||h07890e859be8c8053afac54f6a7ef888728ac54358e77cca1a0c6f9d5936fcd0", "signature": "bool Slider(UiText label, ref float value, float min, float max, SliderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "SliderOpts", "default": "default" }], "summary": "Elastic slider: the track stretches like rubber when dragged past its ends." }, { "name": "StatusBarItem", "kind": "extension", "id": "extension|StatusBarItem|0|0|bool|UiText label;StatusItemOpts o = default||h35fa1b9b36f005ceff913dc858202baee2f50d4678537b369e987582020f4d84", "signature": "bool StatusBarItem(UiText label, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A small clickable item (\u0022Ln 12, Col 4\u0022, \u0022UTF-8\u0022). Returns true when clicked." }, { "name": "StatusButton", "kind": "extension", "id": "extension|StatusButton|0|0|bool|UiText label;Status status;StatusButtonOpts o = default||h5c9d9e2cd49f70a00398d2fe51ccf1933f78becdf2d7e5b610c5e2427ee30722", "signature": "bool StatusButton(UiText label, Status status, StatusButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "status", "type": "Status" }, { "name": "o", "type": "StatusButtonOpts", "default": "default" }], "summary": "cui_status_button_ex" }, { "name": "Switch", "kind": "extension", "id": "extension|Switch|0|0|bool|UiText label;ref bool value;CheckOpts o = default||he58bf080044a84430ae1c50aae77072ba3e8bc1dc7ad4f8576f39e74324cd486", "signature": "bool Switch(UiText label, ref bool value, CheckOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "ref bool" }, { "name": "o", "type": "CheckOpts", "default": "default" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "extension", "id": "extension|TabBar|0|0|bool|UiText id;ReadOnlySpan\u003CTabBarItem\u003E items;ref int selected;TabBarOpts o = default||h3b532a1edd39eaf1a6db4278f4c3c26674c9a67777ba72dd890ca8c67ecbb0d8", "signature": "bool TabBar(UiText id, ReadOnlySpan\u003CTabBarItem\u003E items, ref int selected, TabBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTabBarItem\u003E" }, { "name": "selected", "type": "ref int" }, { "name": "o", "type": "TabBarOpts", "default": "default" }], "summary": "cui_tab_bar_ex" }, { "name": "TableRow", "kind": "extension", "id": "extension|TableRow|0|0|bool|bool selected||h5862a1074065231ee67e616f36b6ef2708e5a53d06e9c647dfc4e50f9f54feb9", "signature": "bool TableRow(bool selected)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "selected", "type": "bool" }], "summary": "Begin a row. Returns true when the row is clicked." }, { "name": "Tabs", "kind": "extension", "id": "extension|Tabs|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;TabsOpts o = default||h44602f1d285b43ccb2a4a3f04fc10eeb9824d034d9c4786918ec03417b25d800", "signature": "bool Tabs(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, TabsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "TabsOpts", "default": "default" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|0|0|bool|UiText id;ref string value;TagOpts o = default||h7d78f96fc27b022e7ce11dd6a4742470284f57dc2e17866e76fb8b61780bf9f0", "signature": "bool TagInput(UiText id, ref string value, TagOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "ref string" }, { "name": "o", "type": "TagOpts", "default": "default" }], "summary": "Comma-separated tags in one field; enter or comma adds, backspace removes." }, { "name": "ThemeSwitcher", "kind": "extension", "id": "extension|ThemeSwitcher|0|0|bool|ref int mode;bool withSystem||h6ac2911103fa89f29df34fe5abd3737f62b03fad01ac2c5f7ce9f96f81466e7b", "signature": "bool ThemeSwitcher(ref int mode, bool withSystem)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "bool" }], "summary": "Theme switcher: light, dark and (optionally) system, as a compact icon segmented control. mode is 0 light, 1 dark, 2 system. Light and dark are applied for you; for system call cui_set_theme with the OS setting. Returns true when mode changed." }, { "name": "ThemeToggle", "kind": "extension", "id": "extension|ThemeToggle|0|0|bool|||hac003993a346e758ec03a7b5cae2fbd886929a7ae077d9f9459a78e6cb9e9028", "signature": "bool ThemeToggle()", "extensionOn": "CuiSharp.Ui", "summary": "Sun and moon icon button that toggles the theme with a morph." }, { "name": "TimeDial", "kind": "extension", "id": "extension|TimeDial|0|0|bool|UiText id;ref int hour;ref int minute;float size||hc81f9c9c6cda6a218a1a97579124c3a6415d5a3bec246c2545e9638a3cbefadc", "signature": "bool TimeDial(UiText id, ref int hour, ref int minute, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "Time dial: a clock face. Drag the hand to set hours, then minutes." }, { "name": "TimePicker", "kind": "extension", "id": "extension|TimePicker|0|0|bool|UiText id;ref int hour;ref int minute;TimeOpts o = default||h2f5e91438efc0191e949769048849a3fb8bb629993aef37fa50790655d5a16e2", "signature": "bool TimePicker(UiText id, ref int hour, ref int minute, TimeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "o", "type": "TimeOpts", "default": "default" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "extension", "id": "extension|ToastActionClicked|0|0|bool|int handle||h80802ec80123dda69208be2582b05ccc3d887063aa242cdb0a7d5f946417cce1", "signature": "bool ToastActionClicked(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E labels;Span\u003Cbool\u003E values;ToggleGroupOpts o = default||hbf4630396185f73a4900042d74fe62f684385217a55457d20067677982015437", "signature": "bool ToggleGroup(UiText id, ReadOnlySpan\u003Cstring\u003E labels, Span\u003Cbool\u003E values, ToggleGroupOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "labels", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "values", "type": "Span\u003Cbool\u003E" }, { "name": "o", "type": "ToggleGroupOpts", "default": "default" }], "summary": "A row of toggle buttons sharing one bool per label. Independent by default; Exclusive makes them behave like radio buttons. Returns true on the frame an entry flips." }, { "name": "ToolbarButton", "kind": "extension", "id": "extension|ToolbarButton|0|0|bool|UiText icon;ref bool toggle;ToolOpts o = default||h280488daf404cebc0318d20c1e09b3000ff82103111371b7fdf8c2735fe2c970", "signature": "bool ToolbarButton(UiText icon, ref bool toggle, ToolOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "toggle", "type": "ref bool" }, { "name": "o", "type": "ToolOpts", "default": "default" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeCell", "kind": "extension", "id": "extension|TreeCell|0|0|bool|UiText label;int depth;bool hasChildren;ref bool open;UiText icon||h7d87cfa9d747ede3646c93ffc4296bb6d158f59a36670c943b38b8891f9a08bd", "signature": "bool TreeCell(UiText label, int depth, bool hasChildren, ref bool open, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "bool" }, { "name": "open", "type": "ref bool" }, { "name": "icon", "type": "UiText" }], "summary": "Tree cell: indentation, a disclosure chevron and a label, for tree tables (use it in a table or grid cell). Returns true when *open toggled." }, { "name": "TreeClicked", "kind": "extension", "id": "extension|TreeClicked|0|0|bool|||he0d6c1a473304bfa16c30035268639d026f37ddeade6a53e36b6a43056ea0039", "signature": "bool TreeClicked()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "extension", "id": "extension|Typewriter|0|0|bool|UiText id;UiText text;TextFxOpts o = default||hd2793d1d9701d6e1c2de232ed4163f8a0a17de8606e1a0c00033798e26804d7b", "signature": "bool Typewriter(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Types the text out. When the text grows (streamed tokens) it carries on from where it was; other changes start over. Returns true once complete." }, { "name": "VoiceOrb", "kind": "extension", "id": "extension|VoiceOrb|0|0|bool|UiText id;VoiceState state;float level;VoiceOrbOpts o = default||h55678c858554bd6ffbc3fbad4b03aeb90fff9d582a2dad8b10090a9496cf7d41", "signature": "bool VoiceOrb(UiText id, VoiceState state, float level, VoiceOrbOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "o", "type": "VoiceOrbOpts", "default": "default" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "property", "id": "property|WantsKeyboard|0|0|bool||get;|h9fd1d2033ea34ec49759c84f9a199c15d92ad7e28a6a1a4cc3ebee535bec764b", "signature": "bool WantsKeyboard { get; }" }, { "name": "WantsMouse", "kind": "property", "id": "property|WantsMouse|0|0|bool||get;|h88ad7771300bfdd824d0527cc05ab2978f5a741b34494adb9660c29ae0fd53b7", "signature": "bool WantsMouse { get; }", "summary": "True when the pointer is over this window and the UI wants it." }, { "name": "Waveform", "kind": "extension", "id": "extension|Waveform|0|0|bool|UiText id;ReadOnlySpan\u003Cfloat\u003E peaks;ref float progress;WaveformOpts o = default||h82b5eb85d1dd0e891471303dae6af8ef45f993a4522c265b5380640be5f95a34", "signature": "bool Waveform(UiText id, ReadOnlySpan\u003Cfloat\u003E peaks, ref float progress, WaveformOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "peaks", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "progress", "type": "ref float" }, { "name": "o", "type": "WaveformOpts", "default": "default" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "extension", "id": "extension|WheelPicker|0|0|bool|UiText id;ReadOnlySpan\u003Cstring\u003E items;ref int index;WheelOpts o = default||h6e20c98f3670a089db93c4a37a910bd23a7f6b3a8ad5c2cd67e1294d58a2fae4", "signature": "bool WheelPicker(UiText id, ReadOnlySpan\u003Cstring\u003E items, ref int index, WheelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "index", "type": "ref int" }, { "name": "o", "type": "WheelOpts", "default": "default" }], "summary": "cui_wheel_picker_ex" }, { "name": "Time", "kind": "property", "id": "property|Time|0|0|double||get;|h59d804a6c66b43aad6ffe38fb8d686d405da1f1e73a127a3af738e7ba55df397", "signature": "double Time { get; }", "summary": "Seconds since the app started. Monotonic; use it for animation phases." }, { "name": "Animate", "kind": "method", "id": "method|Animate|0|0|float|UiText id;float target||h6aa8f80b2f784f8d21be090f3514e71ea8c5c9e820fb1fc041073b0956552fa8", "signature": "float Animate(UiText id, float target)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }], "summary": "Moves a value toward target with a spring, keyed by id." }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|0|0|float|UiText id;float target;float duration;float bounce||h18961b791dced18013209a15d6f4c3ea989233c2d507d6986cf80ff8eea91b47", "signature": "float AnimateSpring(UiText id, float target, float duration, float bounce)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "Moves a value toward target with a spring of the given duration and bounce." }, { "name": "DeltaTime", "kind": "property", "id": "property|DeltaTime|0|0|float||get;|h9b38e45e1e2ffd64837bd659bc02203c5bcd38701ca6046589022c3424ef1a09", "signature": "float DeltaTime { get; }", "summary": "Seconds since the previous frame, clamped by the host." }, { "name": "DpiScale", "kind": "property", "id": "property|DpiScale|0|0|float||get;|hd6fea6745004ce2bacbb8eac54eebd74e77705ff2605b31ccb4a18c241ebb063", "signature": "float DpiScale { get; }", "summary": "Device pixels per logical point for the window this frame draws into." }, { "name": "ActivityRings", "kind": "extension", "id": "extension|ActivityRings|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E rings;RingsOpts o = default||he739303ba236c8b2947fe3ee08443b09f019e41b8acac0f7da681d197ae0307e", "signature": "int ActivityRings(UiText id, ReadOnlySpan\u003CVizItem\u003E rings, RingsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rings", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "RingsOpts", "default": "default" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "extension", "id": "extension|AgentPlan|0|0|int|UiText id;ReadOnlySpan\u003CPlanStep\u003E steps;AgentPlanOpts o = default||h6067d2501a7a26bcccda0db7d672b245a2fcff12d68ede6c491d265a45d1b4b9", "signature": "int AgentPlan(UiText id, ReadOnlySpan\u003CPlanStep\u003E steps, AgentPlanOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CPlanStep\u003E" }, { "name": "o", "type": "AgentPlanOpts", "default": "default" }], "summary": "cui_agent_plan_ex" }, { "name": "AvatarUpload", "kind": "extension", "id": "extension|AvatarUpload|0|0|int|UiText id;UiText name;ref ulong image;float size||h2032bcd7f55566afffa2cde5d86987aa5b1a36719844c8d755d13b19b16255bb", "signature": "int AvatarUpload(UiText id, UiText name, ref ulong image, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "Avatar upload: a round avatar that takes a dropped image, with a camera badge on hover. Returns 1 when *image changed, -1 when clicked (browse), 0 otherwise. A dropped image is loaded with cui_image_load." }, { "name": "BarList", "kind": "extension", "id": "extension|BarList|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;BarListOpts o = default||h0e2abad96db38540b47d6c74f2cc68369ed40c046f6bf6c2d2dea3c10d465680", "signature": "int BarList(UiText id, ReadOnlySpan\u003CVizItem\u003E items, BarListOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "BarListOpts", "default": "default" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "extension", "id": "extension|Breadcrumb|0|0|int|ReadOnlySpan\u003Cstring\u003E items||h7e5435f64395bbaf15f18d4923a996c88ca3bd79318405fd33733751c65e8682", "signature": "int Breadcrumb(ReadOnlySpan\u003Cstring\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "extension", "id": "extension|CalendarHeatmap|0|0|int|UiText id;Date start;ReadOnlySpan\u003Cfloat\u003E values;CalendarHeatmapOpts o = default||hdf61b9c82e018ac6c9a5f0797950a2a53c4826b47594dd073d18121a1691e796", "signature": "int CalendarHeatmap(UiText id, Date start, ReadOnlySpan\u003Cfloat\u003E values, CalendarHeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "start", "type": "Date" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "CalendarHeatmapOpts", "default": "default" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "extension", "id": "extension|Candlestick|0|0|int|UiText id;ReadOnlySpan\u003CCandle\u003E candles;CandlestickOpts o = default||hdab8fd71be859d6cc56de05a9e2feb81a2532c176230e766fa2ba67fa5260e3c", "signature": "int Candlestick(UiText id, ReadOnlySpan\u003CCandle\u003E candles, CandlestickOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "candles", "type": "ReadOnlySpan\u003CCandle\u003E" }, { "name": "o", "type": "CandlestickOpts", "default": "default" }], "summary": "Returns the candle under the crosshair (pointer or keys), or -1." }, { "name": "CardStack", "kind": "extension", "id": "extension|CardStack|0|0|int|UiText id;int count;DrawFn body;CardStackOpts o = default||h2dadbccb1e5391a98cfda3530cd5b460c17e79dd01b6927d2346f58287b56332", "signature": "int CardStack(UiText id, int count, DrawFn body, CardStackOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CardStackOpts", "default": "default" }], "summary": "cui_card_stack_begin The end call reports which card in the stack is active, or -1, so the body overload returns it." }, { "name": "Checklist", "kind": "extension", "id": "extension|Checklist|0|0|int|UiText id;ReadOnlySpan\u003CCheckStep\u003E steps;ChecklistOpts o = default||hb1cdf5bee54759618ba4c2e6386ab30794ff911948e833f0610afb911e63f554", "signature": "int Checklist(UiText id, ReadOnlySpan\u003CCheckStep\u003E steps, ChecklistOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "steps", "type": "ReadOnlySpan\u003CCheckStep\u003E" }, { "name": "o", "type": "ChecklistOpts", "default": "default" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "extension", "id": "extension|CommandPalette|0|0|int|ref bool open;ReadOnlySpan\u003CCommand\u003E commands||h001b59aa0ea6df8a0ea3d57d57bc1d6c25690db136f11ce1d794c93d9c7bbfc3", "signature": "int CommandPalette(ref bool open, ReadOnlySpan\u003CCommand\u003E commands)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "open", "type": "ref bool" }, { "name": "commands", "type": "ReadOnlySpan\u003CCommand\u003E" }], "summary": "Spotlight style command palette. Returns the index of the chosen command, or -1. Open it with a shortcut: if (cui_shortcut(ui, CUI_MOD_PRIMARY, CUI_KEY_K)) open = true;" }, { "name": "DiffRows", "kind": "extension", "id": "extension|DiffRows|0|0|int|UiText id;Span\u003CDiffRow\u003E rows;int first = default||h5c94a97ef7958912de5bdb07673a9402664eef62f0238701e95229d154b6ac95", "signature": "int DiffRows(UiText id, Span\u003CDiffRow\u003E rows, int first = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "rows", "type": "Span\u003CDiffRow\u003E" }, { "name": "first", "type": "int", "default": "default" }], "summary": "Copies up to rows.Length of the diff view\u0027s rows into rows, starting at row first." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the window is tracking as dropped; a dropzone reports them first." }, { "name": "Dropzone", "kind": "extension", "id": "extension|Dropzone|0|0|int|UiText id;DropzoneOpts o = default||h1a4c314252379bc356942c2d624bf8dc2388e096a816cda96c08748d80f874cf", "signature": "int Dropzone(UiText id, DropzoneOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "o", "type": "DropzoneOpts", "default": "default" }], "summary": "cui_dropzone_ex" }, { "name": "Funnel", "kind": "extension", "id": "extension|Funnel|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E stages;FunnelOpts o = default||he5202d3e37c12c123db9bc8dddaf33f25d6ee0d1790d21a12846d2233ba2f5e4", "signature": "int Funnel(UiText id, ReadOnlySpan\u003CVizItem\u003E stages, FunnelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "stages", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "FunnelOpts", "default": "default" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "extension", "id": "extension|Gantt|0|0|int|UiText id;Span\u003CGanttTask\u003E tasks;Date origin;int days;GanttOpts o = default||h6405eb5f36078bd6c78b652a408e39c0fdb1c3a89355a3c7e0368f5d2306981a", "signature": "int Gantt(UiText id, Span\u003CGanttTask\u003E tasks, Date origin, int days, GanttOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "tasks", "type": "Span\u003CGanttTask\u003E" }, { "name": "origin", "type": "Date" }, { "name": "days", "type": "int" }, { "name": "o", "type": "GanttOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Heatmap", "kind": "extension", "id": "extension|Heatmap|0|0|int|UiText id;ReadOnlySpan\u003Cfloat\u003E values;int rows;int cols;HeatmapOpts o = default||hb23a8befed5cb93e645e80d3a23d15bd4f06bdbf22a6f65815edb1bef4129225", "signature": "int Heatmap(UiText id, ReadOnlySpan\u003Cfloat\u003E values, int rows, int cols, HeatmapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "o", "type": "HeatmapOpts", "default": "default" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "extension", "id": "extension|InlineEdit|0|0|int|UiText id;ref string buf;int cap = 256;InlineEditOpts o = default||hdc2fcc11f00fc875b370e784540495eec9451da64bf16b076e0bf19bfc7c475a", "signature": "int InlineEdit(UiText id, ref string buf, int cap = 256, InlineEditOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int", "default": "256" }, { "name": "o", "type": "InlineEditOpts", "default": "default" }], "summary": "cui_inline_edit_ex" }, { "name": "PasswordStrength", "kind": "extension", "id": "extension|PasswordStrength|0|0|int|UiText password||h485b27b320ae208ea07b64ec8e1f317ab018ad6465c8ddb02cd01a4424689adb", "signature": "int PasswordStrength(UiText password)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "password", "type": "UiText" }], "summary": "Password strength meter (0 weak .. 4 strong). Returns the score." }, { "name": "PromptSuggestions", "kind": "extension", "id": "extension|PromptSuggestions|0|0|int|UiText id;ReadOnlySpan\u003CPromptSuggestion\u003E items;PromptSuggestionsOpts o = default||ha7ba62105e302f4fa64dd30bf005d6217ab47f44b8de4dcb382d55bb8686de65", "signature": "int PromptSuggestions(UiText id, ReadOnlySpan\u003CPromptSuggestion\u003E items, PromptSuggestionsOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CPromptSuggestion\u003E" }, { "name": "o", "type": "PromptSuggestionsOpts", "default": "default" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "extension", "id": "extension|RadarChart|0|0|int|UiText id;ReadOnlySpan\u003CSeries\u003E series;ReadOnlySpan\u003Cstring\u003E axes;RadarOpts o = default||hc3ad2df41c9c6b26dc90f3b916ae531651d598ceef8ab541dd035331b9ea768a", "signature": "int RadarChart(UiText id, ReadOnlySpan\u003CSeries\u003E series, ReadOnlySpan\u003Cstring\u003E axes, RadarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CSeries\u003E" }, { "name": "axes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "RadarOpts", "default": "default" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "extension", "id": "extension|Reactions|0|0|int|UiText id;Span\u003CReaction\u003E items||h7528193af8d452456269a4867874808d1a14d9b9b10f82f0f851537b4f5fcc31", "signature": "int Reactions(UiText id, Span\u003CReaction\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "Span\u003CReaction\u003E" }], "summary": "cui_reactions" }, { "name": "Sankey", "kind": "extension", "id": "extension|Sankey|0|0|int|UiText id;ReadOnlySpan\u003Cstring\u003E nodes;ReadOnlySpan\u003CSankeyLink\u003E links;SankeyOpts o = default||h54e60f881596c8425c36f81063bcf3bca0ae525a5cb9acb9d9291c93343d590b", "signature": "int Sankey(UiText id, ReadOnlySpan\u003Cstring\u003E nodes, ReadOnlySpan\u003CSankeyLink\u003E links, SankeyOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "nodes", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "links", "type": "ReadOnlySpan\u003CSankeyLink\u003E" }, { "name": "o", "type": "SankeyOpts", "default": "default" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "extension", "id": "extension|ScatterChart|0|0|int|UiText id;ReadOnlySpan\u003CScatterSeries\u003E series;ScatterOpts o = default||hff3593e05140bd9fcdc8f3c4f996ca064ecb18c59024984a51431c04b86145eb", "signature": "int ScatterChart(UiText id, ReadOnlySpan\u003CScatterSeries\u003E series, ScatterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "ReadOnlySpan\u003CScatterSeries\u003E" }, { "name": "o", "type": "ScatterOpts", "default": "default" }], "summary": "cui_scatter_chart_ex" }, { "name": "SourceList", "kind": "extension", "id": "extension|SourceList|0|0|int|UiText id;ReadOnlySpan\u003CSource\u003E sources||h6f59cfee8fa72dc7eca177af354e0a6f666d1ec1975ff987f31f00841dd57a41", "signature": "int SourceList(UiText id, ReadOnlySpan\u003CSource\u003E sources)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "sources", "type": "ReadOnlySpan\u003CSource\u003E" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "extension", "id": "extension|SpeedDial|0|0|int|UiText id;ReadOnlySpan\u003CSpeedAction\u003E actions;SpeedDialOpts o = default||h8f3dcc4f3e218426dd87000bfe603cd7a2a64cc3cdaa021cbc2dea064de87347", "signature": "int SpeedDial(UiText id, ReadOnlySpan\u003CSpeedAction\u003E actions, SpeedDialOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "actions", "type": "ReadOnlySpan\u003CSpeedAction\u003E" }, { "name": "o", "type": "SpeedDialOpts", "default": "default" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "extension", "id": "extension|SplitBar|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;SplitBarOpts o = default||h16bc37b28b54a3959b1ffffa5d212e2ce5767fa384b82e9693cfc0cf3ecba083", "signature": "int SplitBar(UiText id, ReadOnlySpan\u003CVizItem\u003E items, SplitBarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "SplitBarOpts", "default": "default" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "extension", "id": "extension|SplitButton|0|0|int|UiText label;ReadOnlySpan\u003Cstring\u003E items;SplitButtonOpts o = default||hab5170280449718e8bb4e18299a9939e8c4585d7f457498a1884dce52f1a5b83", "signature": "int SplitButton(UiText label, ReadOnlySpan\u003Cstring\u003E items, SplitButtonOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "o", "type": "SplitButtonOpts", "default": "default" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItem", "kind": "extension", "id": "extension|SwipeItem|0|0|int|UiText id;ReadOnlySpan\u003CSwipeAction\u003E left;ReadOnlySpan\u003CSwipeAction\u003E right;DrawFn body||hde404a799a1b468b7df4ac9ce65a247c02d83d6788917c5eb60378cb5ebf709d", "signature": "int SwipeItem(UiText id, ReadOnlySpan\u003CSwipeAction\u003E left, ReadOnlySpan\u003CSwipeAction\u003E right, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "left", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "right", "type": "ReadOnlySpan\u003CSwipeAction\u003E" }, { "name": "body", "type": "DrawFn" }], "summary": "cui_swipe_item_begin The end call reports which swipe action was taken, or -1, so the body overload returns it." }, { "name": "Toast", "kind": "extension", "id": "extension|Toast|0|0|int|UiText title;ToastOpts o = default||hf3201662ddfe1d84b58e5851658ccd1e36ba6d53acdb101b80df283a2f0ee264", "signature": "int Toast(UiText title, ToastOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "ToastOpts", "default": "default" }], "summary": "Queue a toast. Returns a handle; cui_toast_action_clicked(handle) tells whether its action button was pressed." }, { "name": "Toc", "kind": "extension", "id": "extension|Toc|0|0|int|UiText scrollId;ReadOnlySpan\u003CTocItem\u003E items||h226d5cf4f0b7b58f3c7df69b1762d483d977d46968c43d4468a7db886e3771f0", "signature": "int Toc(UiText scrollId, ReadOnlySpan\u003CTocItem\u003E items)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTocItem\u003E" }], "summary": "cui_toc" }, { "name": "TreeTableDepth", "kind": "extension", "id": "extension|TreeTableDepth|0|0|int|||h6f4316e2e33c3ebb9b14932b5fc588d50a9b4b5b52a70f672523341f85c34b6b", "signature": "int TreeTableDepth()", "extensionOn": "CuiSharp.Ui", "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "extension", "id": "extension|TreeTableRow|0|0|int|||h6f0d82997cbd7dfd529bd1d04c7fd279173e864794b9acde1a6f8cf0deb80e45", "signature": "int TreeTableRow()", "extensionOn": "CuiSharp.Ui", "summary": "The next row in view: returns its node, or -1 when done. Then build its cells: cui_tree_table_name first, then cui_data_grid_cell(_text)." }, { "name": "Treemap", "kind": "extension", "id": "extension|Treemap|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;TreemapOpts o = default||hea14dd60cbeb36d78c486e9549f6917d7d431d80c23f54fe86c191e4e647a6e4", "signature": "int Treemap(UiText id, ReadOnlySpan\u003CVizItem\u003E items, TreemapOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "TreemapOpts", "default": "default" }], "summary": "cui_treemap_ex" }, { "name": "Waffle", "kind": "extension", "id": "extension|Waffle|0|0|int|UiText id;ReadOnlySpan\u003CVizItem\u003E items;WaffleOpts o = default||hbb9c8a5b82ec5547e3c36f001de128742bbee117c0a3da39be26ed99600e3617", "signature": "int Waffle(UiText id, ReadOnlySpan\u003CVizItem\u003E items, WaffleOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CVizItem\u003E" }, { "name": "o", "type": "WaffleOpts", "default": "default" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "extension", "id": "extension|WeekCalendar|0|0|int|UiText id;Date weekStart;Span\u003CCalendarEvent\u003E events;WeekOpts o = default||h6ebe88be9f390e98d2c4c1e3f796e62f09b23309fe4f21093ce3e1e506653fc9", "signature": "int WeekCalendar(UiText id, Date weekStart, Span\u003CCalendarEvent\u003E events, WeekOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "weekStart", "type": "Date" }, { "name": "events", "type": "Span\u003CCalendarEvent\u003E" }, { "name": "o", "type": "WeekOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Segmented", "kind": "extension", "id": "extension|Segmented|0|0|int?|UiText id;ReadOnlySpan\u003Cstring\u003E items;int value;SegmentedOpts o = default||hfb54a79c3ab77ad5f8295229f391ceafab348451a898c9a700f5adccce24a7a9", "signature": "int? Segmented(UiText id, ReadOnlySpan\u003Cstring\u003E items, int value, SegmentedOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "value", "type": "int" }, { "name": "o", "type": "SegmentedOpts", "default": "default" }], "summary": "Returns the chosen index on a change, otherwise null." }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|string|Accent accent||h0e37f10433228fc19b1442b10a947b92a35e4c1252d1688e2237e77f9c961f50", "signature": "static string AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "The name of an accent as the UI shows it: \u0022Violet\u0022." }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|string|Key key||ha31820aa00db9a4c2b6c84c51b79eb08b079cecb712605806d2763204d3f8fc8", "signature": "static string KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "The name of a key as the UI shows it: A, Space, F5." }, { "name": "CronDescribe", "kind": "extension", "id": "extension|CronDescribe|0|0|string?|UiText cron||hd4c9ada55bcf91c1c683541837ecf35a841f847a3eee89aabbb26c529db1cd47", "signature": "string? CronDescribe(UiText cron)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "cron", "type": "UiText" }], "summary": "\u0022Every weekday at 09:30\u0022, in frame memory; NULL when invalid." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "EmojiPicker", "kind": "extension", "id": "extension|EmojiPicker|0|0|string?|UiText id;ref string recent;ref int tone;EmojiPickerOpts o = default||h15890f303b9bfcb523f735ab2f9e6844938b14c17122927fe58f4714c2d1577c", "signature": "string? EmojiPicker(UiText id, ref string recent, ref int tone, EmojiPickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "recent", "type": "ref string" }, { "name": "tone", "type": "ref int" }, { "name": "o", "type": "EmojiPickerOpts", "default": "default" }], "summary": "cui_emoji_picker_ex" }, { "name": "ShortcutLabel", "kind": "extension", "id": "extension|ShortcutLabel|0|0|string?|KeyCombo combo||hbc2b6ede54efc1cdfc932533bfaa02df6e2091b08013ed268adaeb5f70fe77fd", "signature": "string? ShortcutLabel(KeyCombo combo)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "combo", "type": "KeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "LastId", "kind": "property", "id": "property|LastId|0|0|uint||get;|hb45a60a2627c7935e56a964ff3d4b23b89b21d8a180962ea221f54c95e1e68d2", "signature": "uint LastId { get; }", "summary": "The id of the widget drawn last, which is what Target and the other \u0022point at this\u0022 APIs take. Read it immediately after the control." }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|0|0|uint|UiText id||hf729d2c0f406a6b883b2cbb0e869941e897aaaef891e76b22daa8e479857208d", "signature": "uint MakeId(UiText id)", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "A stable cui_id for a string, for Animate and State callers." }, { "name": "CreateImage", "kind": "method", "id": "method|CreateImage|0|0|ulong|int width;int height;ReadOnlySpan\u003Cbyte\u003E rgba||h5ee4689276531d64da132f6a1cc9e229a83100259c335ca4ab5a007c20a68ce7", "signature": "ulong CreateImage(int width, int height, ReadOnlySpan\u003Cbyte\u003E rgba)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Uploads RGBA8 pixels as a texture. The pixels are copied, so the span may live on the stack. Release the handle with DestroyImage when the page that shows it is done with it \u2014 State\u0060\u00601 with an onFree callback is the usual owner." }, { "name": "DockSave", "kind": "extension", "id": "extension|DockSave|0|0|ulong|UiText id;ref string buf;int cap||h10c71156edbbe3c5e529016814c796584f469d6d0b0b7466e4bde6ba2b0893b4", "signature": "ulong DockSave(UiText id, ref string buf, int cap)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "buf", "type": "ref string" }, { "name": "cap", "type": "int" }], "summary": "Saved layout: one line, e.g. dock1 h0.22([*Scene tree,Assets],v0.7([*Viewport],[*Log,-Console])) h splits side by side and v stacks, the number is the first child\u0027s share, [..] is a leaf\u0027s tabs in order, * the selected tab, - a closed panel; a backslash escapes , [ ] ( ) and itself in names. cui_dock_save returns the full length (as snprintf does) and writes what fits, or 0 when there is no layout. cui_dock_load replaces the layout (and sets each panel\u0027s *open from it on its next frame); names it does not know yet are kept for when they appear. Malformed text returns false and changes nothing." }, { "name": "FrameCount", "kind": "property", "id": "property|FrameCount|0|0|ulong||get;|h7254dceb0c426d20c644d45bf8a5ca3e9a444a54dee4128f0adcf9db4b00c8fc", "signature": "ulong FrameCount { get; }", "summary": "Frames presented so far, counted by CUI." }, { "name": "Accordion", "kind": "extension", "id": "extension|Accordion|0|0|void|UiText title;ref bool open;DrawFn body||h5a6e18ec6c43cdc43af8a25085ec728fca441d6f03d65c135ac01415603bdc5b", "signature": "void Accordion(UiText title, ref bool open, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "AddFontFallback", "kind": "extension", "id": "extension|AddFontFallback|0|0|void|Font font;Font fallback||h046e79521dc69de86a794461399d269a9ea51fd36fd162afddde019ca45934e1", "signature": "void AddFontFallback(Font font, Font fallback)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "Adds a fallback CUI reaches for when font has no glyph. The chain holds at most four fallbacks; when it is exhausted CUI scans every other loaded face before giving up. A glyph no face has draws nothing at all \u2014 not even a .notdef box in every font \u2014 so an untranslated screen comes up blank with no warning. UseSystemFontFallback is the check for that, and the bundled faces are Latin. The glyph atlas is what a large script actually costs: one texture of CUI_ATLAS_MAX (4096) pixels per side, with the frame\u0027s glyph cache reset between frames, so a font that makes every frame load new glyphs is the expensive case. Register the faces a language needs at startup, not per frame." }, { "name": "AgentStatus", "kind": "extension", "id": "extension|AgentStatus|0|0|void|UiText text;AgentStatusOpts o = default||h61ac25149bb714e9244c62474d67f93158a7f9bd1583135da08e6b32a5ac5120", "signature": "void AgentStatus(UiText text, AgentStatusOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "AgentStatusOpts", "default": "default" }], "summary": "cui_agent_status_ex" }, { "name": "Avatar", "kind": "extension", "id": "extension|Avatar|0|0|void|UiText name;AvatarOpts o = default||h86ad06b6f35491ed7cd4f337c2a2688db37d73bfec4c164c7b90267365ce8af2", "signature": "void Avatar(UiText name, AvatarOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "o", "type": "AvatarOpts", "default": "default" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "extension", "id": "extension|AvatarGroup|0|0|void|ReadOnlySpan\u003Cstring\u003E names;int maxVisible = 4;float size = 32f||h2aebe32a1e3101b42a18771fc77f1b10cb011e17bea49c9f7cbf01e0be5ca252", "signature": "void AvatarGroup(ReadOnlySpan\u003Cstring\u003E names, int maxVisible = 4, float size = 32f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "names", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "maxVisible", "type": "int", "default": "4" }, { "name": "size", "type": "float", "default": "32f" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "extension", "id": "extension|Badge|0|0|void|UiText text;BadgeOpts o = default||h2e146cbd498ce9ebfdcbb978fe8414bd9ff4389e1361c02fa453b24fcfc15d1c", "signature": "void Badge(UiText text, BadgeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "BadgeOpts", "default": "default" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||hdd24ad8679c5e482e048ed73ce69225b69c19ad5704a83f9a427093e4551242a", "signature": "void BarChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A bar chart of one series. See LineChart." }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||h8d42b4d0a483459731da6ec00c3001f0d1f69bd28a07b4618095e800910f67c7", "signature": "void BarChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Carousel", "kind": "extension", "id": "extension|Carousel|0|0|void|UiText id;int count;ref int index;DrawFn body;CarouselOpts o = default||haf6583b1edd10132a276ed92f3c7cc7b139b36644ab8586eadce1ce1ae7cf431", "signature": "void Carousel(UiText id, int count, ref int index, DrawFn body, CarouselOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "CarouselOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ChatDivider", "kind": "extension", "id": "extension|ChatDivider|0|0|void|UiText label||hdb17d96dbafb815bdf9d77a06116d1a2d004dbf0c4190716f604d7f7503032a5", "signature": "void ChatDivider(UiText label)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ChatOpts o = default||h0067e7f3c9a991c64026e5433bcd84d614a634bb99011d70cf7548c49b4d0e46", "signature": "void ChatMessage(UiText text, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "Same as the overload with ref markdownResult, but reports nothing back: the state pointer is null, so the widget stores no state the caller could read." }, { "name": "ChatMessage", "kind": "extension", "id": "extension|ChatMessage|0|0|void|UiText text;ref MarkdownResult markdownResult;ChatOpts o = default||he419f66e4261e2e5f8341890ace8476938bbabe2ce7747bb1cf378821e824da4", "signature": "void ChatMessage(UiText text, ref MarkdownResult markdownResult, ChatOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "markdownResult", "type": "ref MarkdownResult" }, { "name": "o", "type": "ChatOpts", "default": "default" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "extension", "id": "extension|Code|0|0|void|UiText text||heb5c95cf0725be5b6a3d5d064b904bf47fbe9b2889e74bd910d61b666764b439", "signature": "void Code(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "extension", "id": "extension|CodeBlock|0|0|void|UiText id;UiText code;CodeOpts o = default||h649344835854747b9cbde6157eb263d70a9df1f246e3854f21806fef682fedac", "signature": "void CodeBlock(UiText id, UiText code, CodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "code", "type": "UiText" }, { "name": "o", "type": "CodeOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "CodeEditorFind", "kind": "extension", "id": "extension|CodeEditorFind|0|0|void|UiText id;UiText query||ha5ad5e0daacc15247f7497756195d2f521b1676f4f4275c1360e7dd6a099a27e", "signature": "void CodeEditorFind(UiText id, UiText query)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "query", "type": "UiText" }], "summary": "Opens the find bar with query and selects the next match (NULL closes)." }, { "name": "CodeEditorGoto", "kind": "extension", "id": "extension|CodeEditorGoto|0|0|void|UiText id;int line;int column||he046da323e1fb441003f0aff4a8b1fb21892920cc0d306e08811c4d4b477dfae", "signature": "void CodeEditorGoto(UiText id, int line, int column)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "On the editor\u0027s next frame: put the caret at a line and column (1 based), focus the editor and scroll there. Call from the same id scope." }, { "name": "CodeEditorSelect", "kind": "extension", "id": "extension|CodeEditorSelect|0|0|void|UiText id;int anchor;int cursor||hbae83fe5ce54e61f495c10224f17c5f97155815624a80c230f94b710bbd25bbc", "signature": "void CodeEditorSelect(UiText id, int anchor, int cursor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "On the next frame: select bytes anchor..cursor, focus and scroll there." }, { "name": "Component", "kind": "extension", "id": "extension|Component|0|0|void|Component component||h848740a50a9eb8dc56641315816144114376ac9c315542b20691de3cbc9300d4", "signature": "void Component(Component component)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "component", "type": "Component" }], "summary": "Draws component, with its own error boundary." }, { "name": "ContextMenu", "kind": "extension", "id": "extension|ContextMenu|0|0|void|UiText id;DrawFn body||h639ca26a4859a28b5d0c68a17b414a22b59f92e32460ae828991807709b85741", "signature": "void ContextMenu(UiText id, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ContextMeter", "kind": "extension", "id": "extension|ContextMeter|0|0|void|UiText id;float used;float limit;ContextOpts o = default||h19d9530359d94af2f36c2f8a876d49576ae0e0c4c67e5270f45fdf36934d1c78", "signature": "void ContextMeter(UiText id, float used, float limit, ContextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "o", "type": "ContextOpts", "default": "default" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "extension", "id": "extension|Countdown|0|0|void|UiText id;double secondsLeft;CountdownOpts o = default||h821d564a1492fd931adfbbc43d4c182d207343abf289fdf0702df537f77d848a", "signature": "void Countdown(UiText id, double secondsLeft, CountdownOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "secondsLeft", "type": "double" }, { "name": "o", "type": "CountdownOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Counter", "kind": "extension", "id": "extension|Counter|0|0|void|UiText id;double value;CounterOpts o = default||h0b05971fdda28297316e6f4447ca5d501aa7a11fe9da2f3bdc3756e5b7c5ffd3", "signature": "void Counter(UiText id, double value, CounterOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "double" }, { "name": "o", "type": "CounterOpts", "default": "default" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "DataGrid", "kind": "extension", "id": "extension|DataGrid|0|0|void|UiText id;ReadOnlySpan\u003CGridColumn\u003E columns;int rowCount;GridState state;DrawFn body;GridOpts o = default||h9c456dfa1016ff4f42bd0014595270a05519919f42743036e5fc9f8cb8147c63", "signature": "void DataGrid(UiText id, ReadOnlySpan\u003CGridColumn\u003E columns, int rowCount, GridState state, DrawFn body, GridOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CGridColumn\u003E" }, { "name": "rowCount", "type": "int" }, { "name": "state", "type": "GridState" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "GridOpts", "default": "default" }], "summary": "Draws the body only when open; closes and publishes state even on exceptions." }, { "name": "DataGridCell", "kind": "extension", "id": "extension|DataGridCell|0|0|void|||h17266c47617cb3e20e5aafb4e0740fb451853300d3ea2f4cf357c27f4e0c97e5", "signature": "void DataGridCell()", "extensionOn": "CuiSharp.Ui", "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "extension", "id": "extension|DataGridCellText|0|0|void|UiText text||hbc15a57820d975503239bf1e6c43046de51dd25c53400b94dc05e4c5ec821c22", "signature": "void DataGridCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_data_grid_cell_text" }, { "name": "DestroyImage", "kind": "method", "id": "method|DestroyImage|0|0|void|ulong texture||h233513e5e0f04cab6a29321054080d17776d33b361cec53060f335038ac6c4f4", "signature": "void DestroyImage(ulong texture)", "parameters": [{ "name": "texture", "type": "ulong" }], "summary": "Frees a texture obtained from CreateImage, LoadImage or a widget that loaded one for you (the avatar upload). Passing 0 does nothing, so a field can be cleared and released in one step." }, { "name": "Dialog", "kind": "extension", "id": "extension|Dialog|0|0|void|UiText title;ref bool open;DrawFn body;DialogOpts o = default||hb9a2198e7b3396b3f8e81f53972b52816f4e10d0c965758cb0b8e59b20c0dad6", "signature": "void Dialog(UiText title, ref bool open, DrawFn body, DialogOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DialogOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockPanel", "kind": "extension", "id": "extension|DockPanel|0|0|void|UiText title;ref bool open;DrawFn body;DockPanelOpts o = default||haec3aec1f30c0641ff9d8d21ef9827c8984e582f195575f5bdafa8e30c26bf47", "signature": "void DockPanel(UiText title, ref bool open, DrawFn body, DockPanelOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "DockPanelOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "DockSeparator", "kind": "extension", "id": "extension|DockSeparator|0|0|void|||h4f7b4ffb27ff0752d3414c6e36155f014d64756d9c99299d0061f4d3b662e948", "signature": "void DockSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_dock_separator" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|0|0|void|UiText id;float[] values;string[]? labels = null;ChartOpts o = default||h105b6ba9a48212810ca8eaa543dfd59b8bcbb7a078d6d00c43caa8337cf3e984", "signature": "void DonutChart(UiText id, float[] values, string[]? labels = null, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "float[]" }, { "name": "labels", "type": "string[]?", "default": "null" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|0|0|void|float cx;float cy;float radius;float fromRadians;float toRadians;float thickness;Color color||h75c08329ccf02db7c649c3de4062b857fcb9fb9b5607cc0cdc3ffa02cdd3a32a", "signature": "void DrawArc(float cx, float cy, float radius, float fromRadians, float toRadians, float thickness, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "fromRadians", "type": "float" }, { "name": "toRadians", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "An arc from fromRadians to toRadians." }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|0|0|void|float cx;float cy;float radius;Color color||hb1d4daba0313192a47661dfdcba2bbea774eacd066b6e992e4b4698dddcde09a", "signature": "void DrawCircle(float cx, float cy, float radius, Color color)", "parameters": [{ "name": "cx", "type": "float" }, { "name": "cy", "type": "float" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A filled circle." }, { "name": "DrawEmoji", "kind": "extension", "id": "extension|DrawEmoji|0|0|void|UiText utf8;RectF r||ha6979720ffa9f6b639eedcdc2f34912ae99c3e8f6db6d29d49b7a755626e5e61", "signature": "void DrawEmoji(UiText utf8, RectF r)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "r", "type": "RectF" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|0|0|void|UiText icon;RectF r;Color color;float size = 16f||hd54b671c520dcce41f616162ba2038b0604408edb2178e4e538b9fd737631621", "signature": "void DrawIcon(UiText icon, RectF r, Color color, float size = 16f)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "16f" }], "summary": "Draws an icon glyph into a rectangle." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;Color tint;float radius = default||h02908132cac945b65c579f6460fda70375b546d9df86cb8e4446b3d6369a8ad2", "signature": "void DrawImage(ulong texture, RectF destination, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws the whole texture into destination." }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|0|0|void|ulong texture;RectF destination;RectF uv;Color tint;float radius = default||h19922f36165664b04b3f13745794f29cd576c87d690e38abfacd839c9eebe6ea", "signature": "void DrawImage(ulong texture, RectF destination, RectF uv, Color tint, float radius = default)", "parameters": [{ "name": "texture", "type": "ulong" }, { "name": "destination", "type": "RectF" }, { "name": "uv", "type": "RectF" }, { "name": "tint", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Draws a texture into destination, sampling uv in 0..1 texture coordinates." }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|0|0|void|float x0;float y0;float x1;float y1;float thickness;Color color||h7c718f3cf261fcdd9890ecc99c37b4c7ef88951855160bbd3b4b84bbb0906183", "signature": "void DrawLine(float x0, float y0, float x1, float y1, float thickness, Color color)", "parameters": [{ "name": "x0", "type": "float" }, { "name": "y0", "type": "float" }, { "name": "x1", "type": "float" }, { "name": "y1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "A line between two points." }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;Color color||h0a35ee50b137930776943658c6a4b0a802340e6fc1443224120f511919b82309", "signature": "void DrawPolygon(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, Color color)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "color", "type": "Color" }], "summary": "A convex polygon through the given x/y pairs." }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|0|0|void|ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points;float thickness;Color color;bool closed = default||h4c7f07e3c9fc697e544cc98214f394946bae499ac03450d9e5812ced69ce04e9", "signature": "void DrawPolyline(ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E points, float thickness, Color color, bool closed = default)", "parameters": [{ "name": "points", "type": "ReadOnlySpan\u003CValueTuple\u003Cfloat, float\u003E\u003E" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "closed", "type": "bool", "default": "default" }], "summary": "A polyline through the given x/y pairs." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;Color border;float borderWidth;float radius = default||h4ba9a89c0df1a36edef3bc858b12de8bb1c2d9020a801bc38d101b16e9839611", "signature": "void DrawRect(RectF r, Color fill, Color border, float borderWidth, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "border", "type": "Color" }, { "name": "borderWidth", "type": "float" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle and strokes its border." }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|0|0|void|RectF r;Color fill;float radius = default||hbede7dc4a83173600f87c3151cfb881b786025c1a85bfc6cfd41ac9c76b997ec", "signature": "void DrawRect(RectF r, Color fill, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "fill", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle." }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|0|0|void|RectF r;Color top;Color bottom;float radius = default||hdfb2b1697ea2ab6d38c629c2592cb4496e061c2c2d2d73080e90e315c179fa59", "signature": "void DrawRectGradient(RectF r, Color top, Color bottom, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "top", "type": "Color" }, { "name": "bottom", "type": "Color" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "Fills a rounded rectangle with a vertical gradient." }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|0|0|void|RectF r;Color color;float blur = 12f;float spread = default;float dx = default;float dy = 2f;float radius = default||hd608a1aa394a6724e278bdd79827b6dd27fa0b58389aad230a6976a37e6e1bc9", "signature": "void DrawShadow(RectF r, Color color, float blur = 12f, float spread = default, float dx = default, float dy = 2f, float radius = default)", "parameters": [{ "name": "r", "type": "RectF" }, { "name": "color", "type": "Color" }, { "name": "blur", "type": "float", "default": "12f" }, { "name": "spread", "type": "float", "default": "default" }, { "name": "dx", "type": "float", "default": "default" }, { "name": "dy", "type": "float", "default": "2f" }, { "name": "radius", "type": "float", "default": "default" }], "summary": "A soft drop shadow behind a rounded rectangle." }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|0|0|void|UiText text;float x;float y;Color color;float size = 12f;Font font = Font.Body||ha379555b96749e8089ccd4a67f9f06f0c97c8e3bf6628a829212e087cdf44073", "signature": "void DrawText(UiText text, float x, float y, Color color, float size = 12f, Font font = Font.Body)", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }, { "name": "color", "type": "Color" }, { "name": "size", "type": "float", "default": "12f" }, { "name": "font", "type": "Font", "default": "Font.Body" }], "summary": "Draws text outside layout, from a string, UTF-8 bytes, or interpolation." }, { "name": "Emoji", "kind": "extension", "id": "extension|Emoji|0|0|void|UiText utf8;float size||hcce49478392e105a5082cf12fe2c18e8a68954f1395b48ec19c91052abdbfa90", "signature": "void Emoji(UiText utf8, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "utf8", "type": "UiText" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "ExpandableCard", "kind": "extension", "id": "extension|ExpandableCard|0|0|void|UiText title;ref bool open;DrawFn body;ExpandableCardOpts o = default||h45a44cd40dda73a400ba664b3783303201ba3f221c6a0c0021b4519c21652a83", "signature": "void ExpandableCard(UiText title, ref bool open, DrawFn body, ExpandableCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ExpandableCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Gap", "kind": "extension", "id": "extension|Gap|0|0|void|float size||h89c0f099b911f74a22d756328dc6f8c634ce4e2561cfb7403549af06bfe120d2", "signature": "void Gap(float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "extension", "id": "extension|Gauge|0|0|void|UiText label;float value;float size = 130f||h0d866db02a3773b1f94110de3177536a50289e2eb2f4f1328d5ea96164ce0e3d", "signature": "void Gauge(UiText label, float value, float size = 130f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "130f" }], "summary": "cui_gauge" }, { "name": "GradientText", "kind": "extension", "id": "extension|GradientText|0|0|void|UiText text;GradientTextOpts o = default||h3f77173db929d5d0326fb0d6aacd31968c768ec86de8e25973b46685c05898a0", "signature": "void GradientText(UiText text, GradientTextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "GradientTextOpts", "default": "default" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "extension", "id": "extension|Heading|0|0|void|UiText text;int level = 2||h557aed71184ccf0f99a503a8e9e31f47bd8f19daa88deaf28acbf6bd2f58da8f", "signature": "void Heading(UiText text, int level = 2)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "level", "type": "int", "default": "2" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "extension", "id": "extension|HexViewGoto|0|0|void|UiText id;ulong offset||he99988413132b927d206b59bb10ff266913c4aed14642da49708324af5d3a4ea", "signature": "void HexViewGoto(UiText id, ulong offset)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "offset", "type": "ulong" }], "summary": "Go to offset: on the view\u0027s next frame its cursor moves to offset, that byte becomes the selection and it scrolls into view (to the middle when it was out of sight). Wire a \u0022Go to\u0022 field to it; it is safe to call every frame." }, { "name": "HoverCard", "kind": "extension", "id": "extension|HoverCard|0|0|void|UiText id;DrawFn body;HoverCardOpts o = default||h1feb5df25fc90d51f65ce5d548e1c92a15c20d4dbcfb120ec57197031f6bf861", "signature": "void HoverCard(UiText id, DrawFn body, HoverCardOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "HoverCardOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Icon", "kind": "method", "id": "method|Icon|0|0|void|UiText icon;float size = 16f;Color color = default||ha3c2c3c378676921960172e72c0cd75e176f823d910f148819cb62c5c07fcdb7", "signature": "void Icon(UiText icon, float size = 16f, Color color = default)", "parameters": [{ "name": "icon", "type": "UiText" }, { "name": "size", "type": "float", "default": "16f" }, { "name": "color", "type": "Color", "default": "default" }] }, { "name": "Image", "kind": "extension", "id": "extension|Image|0|0|void|ulong tex;ImageOpts o = default||h4aba4bdd877e6dfb8e45ba090aba9ec93a98e0c6441d125c9038d1be437dc417", "signature": "void Image(ulong tex, ImageOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "tex", "type": "ulong" }, { "name": "o", "type": "ImageOpts", "default": "default" }], "summary": "cui_image_ex" }, { "name": "Inspector", "kind": "extension", "id": "extension|Inspector|0|0|void|UiText id;DrawFn body;InspectorOpts o = default||h841cdf7d1c9125bb04f373e4d2f93c10eccdb9bcbb43da0de7dccc3769b41a32", "signature": "void Inspector(UiText id, DrawFn body, InspectorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "InspectorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "Kbd", "kind": "extension", "id": "extension|Kbd|0|0|void|UiText keys||h417076fb4869022dd26ff1c344a189d091fce7e448e96c96224d62f1a451f6d1", "signature": "void Kbd(UiText keys)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "keys", "type": "UiText" }], "summary": "* left to right in any interface: see cui__keep_ltr" }, { "name": "Label", "kind": "extension", "id": "extension|Label|0|0|void|UiText text||h72e24445b52f829a1571cbd68c5c6fac6835700a497232df3ad518950a463221", "signature": "void Label(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;ReadOnlySpan\u003Cfloat\u003E values;ChartOpts o = default;Color color = default||h3cdc2012853a1aaf00f86229fc128bb443d3b47540340bb22a37e12c48168603", "signature": "void LineChart(UiText id, ReadOnlySpan\u003Cfloat\u003E values, ChartOpts o = default, Color color = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "o", "type": "ChartOpts", "default": "default" }, { "name": "color", "type": "Color", "default": "default" }], "summary": "A line chart of one series. This is the overload most charts want: the samples are passed directly, and an empty span draws nothing at all." }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|0|0|void|UiText id;Series[] series;ChartOpts o = default||hc086d5dcd804a5f509ce75cc8bee9f3f8667a55ceb50af4ffaabadafd4609ad0", "signature": "void LineChart(UiText id, Series[] series, ChartOpts o = default)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "series", "type": "Series[]" }, { "name": "o", "type": "ChartOpts", "default": "default" }] }, { "name": "Loader", "kind": "extension", "id": "extension|Loader|0|0|void|LoaderOpts o = default||h5945e358ac0fbf3d0cb4c3df6db1ab5234d41a31263116b2fb63eee24b3e9451", "signature": "void Loader(LoaderOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "o", "type": "LoaderOpts", "default": "default" }], "summary": "cui_loader_ex" }, { "name": "LogView", "kind": "extension", "id": "extension|LogView|0|0|void|UiText id;LogBuffer log;LogViewOpts o = default||h629acfd43966ab117356ba793bd70ad6b9dfe93587dd289ab839a823556ecc7b", "signature": "void LogView(UiText id, LogBuffer log, LogViewOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "log", "type": "LogBuffer" }, { "name": "o", "type": "LogViewOpts", "default": "default" }], "summary": "Draws log with its toolbar: level filters, search with highlight, Follow, Copy and Clear. Scrolling up turns Follow off; reaching the bottom turns it back on." }, { "name": "MarkReady", "kind": "method", "id": "method|MarkReady|0|0|void|||h8dc4126f75765e5089f4b5e2bbbb22f0fc14d612aafd61d5d0998543d5b212d0", "signature": "void MarkReady()", "summary": "Declares that this frame shows complete, current app data. This is what dotnet cui --wait ready waits for: readiness is a property of the frame that marks it, so the next frame starts unready and a screen that goes back to loading is never seen as ready on the strength of an older mark." }, { "name": "Menu", "kind": "extension", "id": "extension|Menu|0|0|void|UiText label;DrawFn body;MenuOpts o = default||h46a55ef5a629d54cea211e8cff97db0e260e3c390254e4a74263ef25c2b8fe9d", "signature": "void Menu(UiText label, DrawFn body, MenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuBarMenu", "kind": "extension", "id": "extension|MenuBarMenu|0|0|void|UiText label;DrawFn body;MenuBarMenuOpts o = default||h1b1bac394be04ea33333eee937841b7391a0fc642ea6951788ddb9eb4b199110", "signature": "void MenuBarMenu(UiText label, DrawFn body, MenuBarMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "MenuBarMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "MenuLabel", "kind": "extension", "id": "extension|MenuLabel|0|0|void|UiText text||h55d6bbe5cef52bef1137dee2490a736200d78319bc81b81cdd5d2b7fbe16d2b6", "signature": "void MenuLabel(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "extension", "id": "extension|MenuSeparator|0|0|void|||h7babb70cb1540862bd8b5e000e173763dc48b627688082cf19bcc2e23c25ba73", "signature": "void MenuSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "extension", "id": "extension|Meter|0|0|void|UiText label;float used;float total;UiText unit = default||h1d8b4e728d051b711957aa7fbc9bcf832cd505900fdce01a27a79bdc8e9d89fa", "signature": "void Meter(UiText label, float used, float total, UiText unit = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "UiText", "default": "default" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "extension", "id": "extension|Metric|0|0|void|UiText label;UiText value;MetricOpts o = default||h9bab4a4dc12d3dace12e7106ac89323fdbfdf7c56bba9a0e2f0c40e9c95fbef6", "signature": "void Metric(UiText label, UiText value, MetricOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "UiText" }, { "name": "o", "type": "MetricOpts", "default": "default" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "extension", "id": "extension|Muted|0|0|void|UiText text||haf3dda321d9292f4d904d1870d8bb5dea3c49cb695524acb75572822bff2f9b8", "signature": "void Muted(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "extension", "id": "extension|NavSection|0|0|void|UiText title||hf901052c3e5ba17c7b523058746a19e11e181239069f2b8fbb43adfafdbdcafc", "signature": "void NavSection(UiText title)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }], "summary": "cui_nav_section" }, { "name": "Node", "kind": "extension", "id": "extension|Node|0|0|void|int nodeId;ref float x;ref float y;UiText title;DrawFn body;NodeOpts o = default||he2a131c3e341325536d7aaaafc4f83046a7d7e9c45eead6545f141826f6d7e82", "signature": "void Node(int nodeId, ref float x, ref float y, UiText title, DrawFn body, NodeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NodeEditor", "kind": "extension", "id": "extension|NodeEditor|0|0|void|UiText id;ref NodeView view;DrawFn body;NodeEditorOpts o = default||h5854f9b818a6cafa92571b34f94f5f0c435142d546b6f628a1174b1effe7ac67", "signature": "void NodeEditor(UiText id, ref NodeView view, DrawFn body, NodeEditorOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "view", "type": "ref NodeView" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "NodeEditorOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "NumberRoll", "kind": "extension", "id": "extension|NumberRoll|0|0|void|UiText id;UiText text;TextFxOpts o = default||h67c63e017e57f215b45262ce043c429d9ff6e486e3c507e0c84f3d5daa53a5bf", "signature": "void NumberRoll(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "A figure whose changed digits roll into place: up when the value rises, down when it falls, a beat apart from the left; unchanged characters stay still. Pass the formatted text (\u0022$64,210\u0022, \u00221.2k\u0022); digits are tabular." }, { "name": "PathBarMenu", "kind": "extension", "id": "extension|PathBarMenu|0|0|void|UiText id;ref int segment;DrawFn body||h875759cac9f5832bcb6782caaa672db98fbc277a19f31017d3155a38c398dce5", "signature": "void PathBarMenu(UiText id, ref int segment, DrawFn body)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "segment", "type": "ref int" }, { "name": "body", "type": "DrawFn" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|0|0|void|||hd223700ffd7f730814c69ec5bd11dae3b4dd4a7a738e754b775a351e0c980575", "signature": "void PopClip()", "summary": "Ends the clip opened by PushClip." }, { "name": "Popover", "kind": "extension", "id": "extension|Popover|0|0|void|UiText id;DrawFn body;PopoverOpts o = default||h597b85fb0e87089ca73543226f68a70b713ea0f9c949974f2c0425c7028438f3", "signature": "void Popover(UiText id, DrawFn body, PopoverOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "PopoverOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "PopoverClose", "kind": "extension", "id": "extension|PopoverClose|0|0|void|UiText id||hca913fedac00c0c27ef6b37fb3f90cb88cd76862d0e5884e8f4e8dac8ba415b3", "signature": "void PopoverClose(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_close" }, { "name": "PopoverOpen", "kind": "extension", "id": "extension|PopoverOpen|0|0|void|UiText id||h424af0f304196b1a039d033eb75b4bff9dca251d0232dbc683699a925dfaa16d", "signature": "void PopoverOpen(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "extension", "id": "extension|PopoverToggle|0|0|void|UiText id||h58628645f47f2c9c2896b1ec70e7d661c861b7abb26420d9b750e21380db5e02", "signature": "void PopoverToggle(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "extension", "id": "extension|Presence|0|0|void|UiText id;ReadOnlySpan\u003CPresenceUser\u003E users;int maxVisible;float size||h33db1325c05049463f7c9a97e3df833a114732c8a156f6ee2d775dad7a69c214", "signature": "void Presence(UiText id, ReadOnlySpan\u003CPresenceUser\u003E users, int maxVisible, float size)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "users", "type": "ReadOnlySpan\u003CPresenceUser\u003E" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "extension", "id": "extension|Progress|0|0|void|float value;ProgressOpts o = default||h811e97c08fde2498427fc6a279e22a1c2ea3bc1ce69c3d642c73832f10623d4d", "signature": "void Progress(float value, ProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "ProgressOpts", "default": "default" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "extension", "id": "extension|ProgressRing|0|0|void|UiText label;float value;float size = 104f||h2e30430280ecfbc1925c0164f0bb59a54da3003b073ef1535c6cb3c2d4e8e057", "signature": "void ProgressRing(UiText label, float value, float size = 104f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float", "default": "104f" }], "summary": "Circular progress with the value in the middle." }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|0|0|void|RectF r||h95bac6dcebf24b24b986a596422f965edfee8cd616663a1e59d0da09a9bd3efb", "signature": "void PushClip(RectF r)", "parameters": [{ "name": "r", "type": "RectF" }], "summary": "Clips subsequent drawing to a rectangle. Pair with PopClip." }, { "name": "RadialGauge", "kind": "extension", "id": "extension|RadialGauge|0|0|void|UiText id;float value;float min;float max;RadialGaugeOpts o = default||h69d72defa0179e7173e927724367a4bb9575a2e75bbd9949225f9eab886c2992", "signature": "void RadialGauge(UiText id, float value, float min, float max, RadialGaugeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "o", "type": "RadialGaugeOpts", "default": "default" }], "summary": "cui_radial_gauge_ex" }, { "name": "Reasoning", "kind": "extension", "id": "extension|Reasoning|0|0|void|UiText id;DrawFn body;ReasoningOpts o = default||h892c50fc79e75386733c9149e18f72832dbdccb2d31c29b39a76a16ea185386e", "signature": "void Reasoning(UiText id, DrawFn body, ReasoningOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "ReasoningOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|0|0|void|UiText id;int[] order||hb312c00b771ad378a0324c96198659487c28a3c21c9d71a96e3f595957ffe21f", "signature": "void ReorderBegin(UiText id, int[] order)", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "order", "type": "int[]" }] }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|0|0|void|||h4986f5ad7c5201d2830f1dee1e374ca29980fe9c408b3ef833336aabba3ed66c", "signature": "void RequestRedraw()", "summary": "Requests another frame; call only from the synchronous draw path." }, { "name": "RequestWakeup", "kind": "extension", "id": "extension|RequestWakeup|0|0|void|float seconds||h1e8d82035be8a5e226207bb6bd0874265dba29cf4b6a4779f60b95ab7cc567f7", "signature": "void RequestWakeup(float seconds)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "seconds", "type": "float" }], "summary": "Asks for one more frame after seconds, even when nothing else would wake the window. Use it for a timer, a toast timeout or a poll interval." }, { "name": "ResponseStatus", "kind": "extension", "id": "extension|ResponseStatus|0|0|void|int status;double seconds;double bytes||h63e7c9d5181d7379043415c904edf88e89db4e9781c0577d221801f58399a1cf", "signature": "void ResponseStatus(int status, double seconds, double bytes)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollTo", "kind": "extension", "id": "extension|ScrollTo|0|0|void|UiText scrollId;float y||h795b4245740f616fce2565ac40d5ea6dfa995143af81eedbc7067db0b0f1e7c0", "signature": "void ScrollTo(UiText scrollId, float y)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "scrollId", "type": "UiText" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "extension", "id": "extension|Secondary|0|0|void|UiText text||h4f32c253f11a19b26ceb397d205e5e2d5c6c8e5db01a0ef2e8984e0a2c78ef46", "signature": "void Secondary(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "extension", "id": "extension|Separator|0|0|void|||h913edddc60366f9044c6b66111a5672080bdd3cb042c5febb3487cac873e4f6b", "signature": "void Separator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_separator" }, { "name": "SetFont", "kind": "extension", "id": "extension|SetFont|0|0|void|Font role;Font font||hcab29e22e2019bb3b541b3254c5e4027f76d357aa2ea4e762ced8560cad6c652", "signature": "void SetFont(Font role, Font font)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "Makes font the face every widget using role draws with." }, { "name": "SetLocalization", "kind": "method", "id": "method|SetLocalization|0|0|void|Localization? table||h9b1e18df8b05e42ae28fc53a566e5014c93cf59eea849033c0ab9f19b6bae9bd", "signature": "void SetLocalization(Localization? table)", "parameters": [{ "name": "table", "type": "Localization?" }], "summary": "Sets the month, weekday and \u0022Today\u0022 names the date components show, and returns to English with null." }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|0|0|void|bool reduced||hae4b830dd1026084cab290fac44e758b675baf93c35f70486ffa7547f059af88", "signature": "void SetReducedMotion(bool reduced)", "parameters": [{ "name": "reduced", "type": "bool" }], "summary": "Turns off animation (transitions, springs and spinners) for accessibility." }, { "name": "Sheet", "kind": "extension", "id": "extension|Sheet|0|0|void|UiText title;ref bool open;DrawFn body;SheetOpts o = default||h65c09301eb5dd69c80862865570241bbd654452c640464cf772559af8fc6bf22", "signature": "void Sheet(UiText title, ref bool open, DrawFn body, SheetOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "SheetOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "ShimmerText", "kind": "extension", "id": "extension|ShimmerText|0|0|void|UiText text;TextFxOpts o = default||h10fe1a4021ac0e8c72d7fdf6f3cb558e9a8c622c13f4749b7ac3d5d402cb9f57", "signature": "void ShimmerText(UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Text with a highlight sweeping across it, for \u0022Thinking...\u0022 states." }, { "name": "SignatureClear", "kind": "extension", "id": "extension|SignatureClear|0|0|void|UiText id||hf23272f80768839b31369fdd5a82c42808ef1d11985d804d96d54c704b0de8bf", "signature": "void SignatureClear(UiText id)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "extension", "id": "extension|Skeleton|0|0|void|Size width;float height||h9a80641f8540ed71174043f46e0ff5190568ee803a507a52125ab6fd1ccd12ec", "signature": "void Skeleton(Size width, float height)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "width", "type": "Size" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "extension", "id": "extension|Spacer|0|0|void|||h8df9fad32f644fb75d2f19ff5d3057f2529306e3edc1921a901da58f59bdf332", "signature": "void Spacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "extension", "id": "extension|Sparkline|0|0|void|ReadOnlySpan\u003Cfloat\u003E values;Size width;float height;Color color||hf5e74b2ae617ca510b0dea71f3513379b77ff9597fa28585678fd9d5dc90c297", "signature": "void Sparkline(ReadOnlySpan\u003Cfloat\u003E values, Size width, float height, Color color)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "values", "type": "ReadOnlySpan\u003Cfloat\u003E" }, { "name": "width", "type": "Size" }, { "name": "height", "type": "float" }, { "name": "color", "type": "Color" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "extension", "id": "extension|Spinner|0|0|void|float size = 16f||h910bfa94c12faa6f479982793408735550b3b41b6f58bf9d2ecbd8fbd8d537f9", "signature": "void Spinner(float size = 16f)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "size", "type": "float", "default": "16f" }], "summary": "cui_spinner" }, { "name": "SplitNext", "kind": "extension", "id": "extension|SplitNext|0|0|void|||h2e9b4df1853b9715ec487e793813aebc81a3f6ac93bd19f40400a8b7db5e57b1", "signature": "void SplitNext()", "extensionOn": "CuiSharp.Ui", "summary": "cui_split_next" }, { "name": "StatusBarProgress", "kind": "extension", "id": "extension|StatusBarProgress|0|0|void|float value;StatusProgressOpts o = default||h0d89461fbae2cb62b010aaa92c832f76c787764ad8bf6a7f6f3b2352d43eb62e", "signature": "void StatusBarProgress(float value, StatusProgressOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "value", "type": "float" }, { "name": "o", "type": "StatusProgressOpts", "default": "default" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "extension", "id": "extension|StatusBarSpacer|0|0|void|||hff79ec75c75a5a4046a3afdf7908bfa1687f1fccc3cca35aa6a3c05e5696b38d", "signature": "void StatusBarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "extension", "id": "extension|StatusBarText|0|0|void|UiText text;StatusItemOpts o = default||hf5288fddf236ac4166245c73e6f33c7b59cd60825aad4b4b26f2a62615179863", "signature": "void StatusBarText(UiText text, StatusItemOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "StatusItemOpts", "default": "default" }], "summary": "A message; \u0060tone\u0060 colors its icon." }, { "name": "Stepper", "kind": "extension", "id": "extension|Stepper|0|0|void|ReadOnlySpan\u003Cstring\u003E steps;int current||h80f2e80af6bf18ef466ffe2f62937141940d661367c04989db4a52915786a5ca", "signature": "void Stepper(ReadOnlySpan\u003Cstring\u003E steps, int current)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "steps", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "Table", "kind": "extension", "id": "extension|Table|0|0|void|UiText id;ReadOnlySpan\u003CTableColumn\u003E columns;ref TableSort sort;DrawFn body;TableOpts o = default||h7968ef7a646f0817ff9658c4cbca9383316e49dd9c742c9662b2ff3812b0fd0a", "signature": "void Table(UiText id, ReadOnlySpan\u003CTableColumn\u003E columns, ref TableSort sort, DrawFn body, TableOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "columns", "type": "ReadOnlySpan\u003CTableColumn\u003E" }, { "name": "sort", "type": "ref TableSort" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TableOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TableCell", "kind": "extension", "id": "extension|TableCell|0|0|void|||h7206d360daa4de79037d61b719094d0baea2de5a24e5aeb9f04149502f3db3bc", "signature": "void TableCell()", "extensionOn": "CuiSharp.Ui", "summary": "Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "TableCellText", "kind": "extension", "id": "extension|TableCellText|0|0|void|UiText text||h7ed6f22b1e22b71ecfb331830e30c25829c7af8fec09d3b888c861bbb28793a6", "signature": "void TableCellText(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Part of cui_table_cell \u2014 Next cell; put any components inside, or use cui_table_cell_text." }, { "name": "Text", "kind": "extension", "id": "extension|Text|0|0|void|UiText text;TextOpts o = default||h098380135ff70fa9e6364b4f5cb5baaa3d0d23bb4e06916511f00c01e904dcb6", "signature": "void Text(UiText text, TextOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }, { "name": "o", "type": "TextOpts", "default": "default" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "extension", "id": "extension|TextReveal|0|0|void|UiText id;UiText text;TextFxOpts o = default||h7f99ba4d6b24021ea0f87d36914931f6994d1962327a22f1e8b4caad0115cafe", "signature": "void TextReveal(UiText id, UiText text, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "text", "type": "UiText" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "Words fade and rise into place one after another, when first shown and again whenever the text changes." }, { "name": "Ticker", "kind": "extension", "id": "extension|Ticker|0|0|void|UiText id;ReadOnlySpan\u003CTickerItem\u003E items;TickerOpts o = default||h62c76d0d359572be4036b278345efbeac770ba89bef0d4343912d1b51ea0fc23", "signature": "void Ticker(UiText id, ReadOnlySpan\u003CTickerItem\u003E items, TickerOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "items", "type": "ReadOnlySpan\u003CTickerItem\u003E" }, { "name": "o", "type": "TickerOpts", "default": "default" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "extension", "id": "extension|TimelineItem|0|0|void|UiText title;TimelineOpts o = default||hd57ae894fcdcf6a57e4008b86ca1e4a0ea3d920a1be7b0beead7f0c64dce9b25", "signature": "void TimelineItem(UiText title, TimelineOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "title", "type": "UiText" }, { "name": "o", "type": "TimelineOpts", "default": "default" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "extension", "id": "extension|ToastDismiss|0|0|void|int handle||h6a894b14bc221b765154e4ee9cf6cdd1812f544772192205c25a197be8077904", "signature": "void ToastDismiss(int handle)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "extension", "id": "extension|TocAnchor|0|0|void|UiText anchor||h474d1046a90fd952ce1996c9a0f04e59d8090e886222bfa8a62b08c2d191127c", "signature": "void TocAnchor(UiText anchor)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "anchor", "type": "UiText" }], "summary": "cui_toc_anchor" }, { "name": "ToggleTheme", "kind": "method", "id": "method|ToggleTheme|0|0|void|||h9c315cf4c8d3ce0774082f4db1c10fdcde1dfdef8503f7e49968fc73805e19e8", "signature": "void ToggleTheme()", "summary": "Switches to the other theme: what a \u0022dark mode\u0022 command is." }, { "name": "ToolCall", "kind": "extension", "id": "extension|ToolCall|0|0|void|UiText id;UiText name;ToolCallOpts o = default||h16a78d12e8afd01cd74d0ff79d04eab871b3602eb401436850ec64b67c8d437d", "signature": "void ToolCall(UiText id, UiText name, ToolCallOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "name", "type": "UiText" }, { "name": "o", "type": "ToolCallOpts", "default": "default" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarSeparator", "kind": "extension", "id": "extension|ToolbarSeparator|0|0|void|||h1ac04b800f486b06135932d0c44c42e77b107a635f62f0ebe94dc31f9e99b9a6", "signature": "void ToolbarSeparator()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "extension", "id": "extension|ToolbarSpacer|0|0|void|||h494edd9bb119d78eaa1c281a125dd1a9effb7a85caa35e4b35c4253376bb92f3", "signature": "void ToolbarSpacer()", "extensionOn": "CuiSharp.Ui", "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "extension", "id": "extension|Tooltip|0|0|void|UiText text||h5665aef7d99446eea8e623f0f1227e52e0512f331e35936232eb9a28aa7f3634", "signature": "void Tooltip(UiText text)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Tooltip for the previous component, shown after a short hover delay." }, { "name": "Tree", "kind": "extension", "id": "extension|Tree|0|0|void|UiText label;ref bool open;DrawFn body;TreeOpts o = default||he13b4bfd412c90e5210ac7a3109d12fb25e4a2280312b5257572daebbb5bbd95", "signature": "void Tree(UiText label, ref bool open, DrawFn body, TreeOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "open", "type": "ref bool" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "TreeOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "TreeTableName", "kind": "extension", "id": "extension|TreeTableName|0|0|void|UiText label;UiText icon||h1db08630dbcd5478e4543d6fc7df51dec714a4cefea2efb55e95ec44273c7151", "signature": "void TreeTableName(UiText label, UiText icon)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "label", "type": "UiText" }, { "name": "icon", "type": "UiText" }], "summary": "The first cell: indentation, guides, the chevron, an icon and the name (cut short with a tooltip of the whole name when it does not fit)." }, { "name": "TypingIndicator", "kind": "extension", "id": "extension|TypingIndicator|0|0|void|UiText name||h29e1190d004ef9cf04c8fb3bb6772b74ea89a31b5105bb6fe5d65e29383b006a", "signature": "void TypingIndicator(UiText name)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }], "summary": "cui_typing_indicator" }, { "name": "UserMenu", "kind": "extension", "id": "extension|UserMenu|0|0|void|UiText name;DrawFn body;UserMenuOpts o = default||h1d302e00c446dbae93ac0347cf4063547177c7d4c68194db26c7ca15c8128f8c", "signature": "void UserMenu(UiText name, DrawFn body, UserMenuOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "name", "type": "UiText" }, { "name": "body", "type": "DrawFn" }, { "name": "o", "type": "UserMenuOpts", "default": "default" }], "summary": "Draws the body only when the container opens, and closes it on exceptions." }, { "name": "WordRotate", "kind": "extension", "id": "extension|WordRotate|0|0|void|UiText id;ReadOnlySpan\u003Cstring\u003E words;float interval;TextFxOpts o = default||he53938c5acb8d2d7786cb08323a565882c4e7c01bc50637a3c5c0d9131734da4", "signature": "void WordRotate(UiText id, ReadOnlySpan\u003Cstring\u003E words, float interval, TextFxOpts o = default)", "extensionOn": "CuiSharp.Ui", "parameters": [{ "name": "id", "type": "UiText" }, { "name": "words", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "interval", "type": "float" }, { "name": "o", "type": "TextFxOpts", "default": "default" }], "summary": "One word at a time; the next one rolls up into place and the width follows." }] }, { "name": "CuiSharp.UiText", "displayName": "UiText", "kind": "ref struct", "summary": "Frame-local text: a string, UTF-8 bytes, or interpolation. All UI text parameters accept this type; interpolated values format directly into the frame arena without creating a managed string.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int literalLength;int formattedCount||h9d129c9e8c13f816fed4fd270b6f7361e24da4313ad96ee28152fbfd2d443819", "signature": "UiText(int literalLength, int formattedCount)", "parameters": [{ "name": "literalLength", "type": "int" }, { "name": "formattedCount", "type": "int" }], "summary": "Called by the compiler for interpolated text." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|ReadOnlySpan\u003Cbyte\u003E text||hd1579173337f67b3bf25d622e86eb7f148007c45b2d398328924b26ef41bed1a", "signature": "static implicit operator UiText(ReadOnlySpan\u003Cbyte\u003E text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "ReadOnlySpan\u003Cbyte\u003E" }], "summary": "Copies pre-encoded UTF-8 into the frame arena." }, { "name": "implicit operator UiText", "kind": "conversion", "id": "conversion|op_Implicit|1|0|UiText|string? text||ha192bca6069ef409f9cb822e5f7d0eaa3554d027fa4199e7d57af82030fd6b75", "signature": "static implicit operator UiText(string? text)", "member": "op_Implicit", "parameters": [{ "name": "text", "type": "string?" }], "summary": "Copies a managed string into the frame arena; null means empty." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cbyte\u003E value||hef829454fbde18245e3b8ef1227cc657c7d0c8b8ac6043baddcb203e4e89ce11", "signature": "void AppendFormatted(ReadOnlySpan\u003Cbyte\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cbyte\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value||h512a8c46c33dd443943ef420e735689596e3dd472b3a96689fcb02b2ba852201", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|ReadOnlySpan\u003Cchar\u003E value;int alignment||h982dbe4e0a26fe044f09d75a4d1104d13f46fc199f6c695c3782505e26cfbb9b", "signature": "void AppendFormatted(ReadOnlySpan\u003Cchar\u003E value, int alignment)", "parameters": [{ "name": "value", "type": "ReadOnlySpan\u003Cchar\u003E" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|UiText value||h5e44e320cfaa7bde5f1329fb6b53cbdd46d63a7584a2c0fc9033ba79744123a3", "signature": "void AppendFormatted(UiText value)", "parameters": [{ "name": "value", "type": "UiText" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|bool value||h720aa8df35eebbf6f0d5f648fc9a056d974eb609b0040ec2c42fd468a06693a0", "signature": "void AppendFormatted(bool value)", "parameters": [{ "name": "value", "type": "bool" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|char value||h9d680ea6dfe9dbec87b517cb2cbddc8218746befbf6dd2ee68b35e855f8057ae", "signature": "void AppendFormatted(char value)", "parameters": [{ "name": "value", "type": "char" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value||hf93e8db4d0924f08e67f1ef03109839f6c73f17ad46779c6b8b380b8e05c7218", "signature": "void AppendFormatted(object? value)", "parameters": [{ "name": "value", "type": "object?" }], "summary": "Fallback for other values; their ToString() may allocate." }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;int alignment;string? format = null||h059572468f1cfeb9ca57651003cde79067a087f489ab6d52b658fb044b3526ed", "signature": "void AppendFormatted(object? value, int alignment, string? format = null)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?", "default": "null" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|object? value;string? format||h9d8fbb16f8627e1d56ead9a8606ba99da5f85ef91fd9b3771d29f8c5e4c7e462", "signature": "void AppendFormatted(object? value, string? format)", "parameters": [{ "name": "value", "type": "object?" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value||h7ed9ddb298ac718e41c3694b560ffb5c9d2bc9abccaaeedd72c1132bffd4b796", "signature": "void AppendFormatted(string? value)", "parameters": [{ "name": "value", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|0|void|string? value;int alignment||h51c88640d936ec7475bf76cd319665175a79b5198d79ca7c1a3ba95a51998749", "signature": "void AppendFormatted(string? value, int alignment)", "parameters": [{ "name": "value", "type": "string?" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value||h65df985b422ddbac895e2b797462d95fb3f98bb9ce9ccf9782ec6763b6832437", "signature": "void AppendFormatted\u003CT\u003E(T value) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment||h6468da91f19f1efef869ac4b11f9ff350163d77d76e6db4819ce47eefce59a06", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;int alignment;string? format||h1004c4617ff18f4ce7f5dfd22cacb4983c1cb3ae5b0581f5cdcfadab89abcd35", "signature": "void AppendFormatted\u003CT\u003E(T value, int alignment, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "alignment", "type": "int" }, { "name": "format", "type": "string?" }] }, { "name": "AppendFormatted", "kind": "method", "id": "method|AppendFormatted|0|1|void|T value;string? format||h2fc49aa45e0e759e36dd6df0e6e9d6157eff303a310b2b52f64f0ffa2635a4ad", "signature": "void AppendFormatted\u003CT\u003E(T value, string? format) where T : IUtf8SpanFormattable", "parameters": [{ "name": "value", "type": "T" }, { "name": "format", "type": "string?" }] }, { "name": "AppendLiteral", "kind": "method", "id": "method|AppendLiteral|0|0|void|string value||h91e764bb2eb76e141ff133bb474648f96920b1561f73237554f400e459d22437", "signature": "void AppendLiteral(string value)", "parameters": [{ "name": "value", "type": "string" }] }] }, { "name": "CuiSharp.UptimeOpts", "displayName": "UptimeOpts", "kind": "struct", "summary": "cui_uptime_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "LastDay", "kind": "field", "id": "field|LastDay|0|0|Date|||ha3f645ffdf8751c48a7a18f62ca5d5d533c04d6ba810e7a5b9e3d210de69be6b", "signature": "public Date LastDay", "summary": "the date of the last value, for the tooltips" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "the date of the last value, for the tooltips" }] }, { "name": "CuiSharp.UptimeResult", "displayName": "UptimeResult", "kind": "struct", "summary": "cui_uptime_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Service;int Day = default||h4ee9e7c7a585a544f5268afb6a64a28897b9938d387b9170a817e81d7915e91b", "signature": "UptimeResult(int Service, int Day = default)", "parameters": [{ "name": "Service", "type": "int" }, { "name": "Day", "type": "int", "default": "default" }] }, { "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "under the pointer, or -1" }, { "name": "Service", "kind": "field", "id": "field|Service|0|0|int|||hba0d1bf399894e025b711a3e44f55e40012b5deae721403f37ad45df303a1b8b", "signature": "public int Service", "summary": "under the pointer, or -1" }] }, diff --git a/src/CuiSharp.Tests/ToolArgumentTests.cs b/src/CuiSharp.Tests/ToolArgumentTests.cs index 8d3703f..0ee7bfc 100644 --- a/src/CuiSharp.Tests/ToolArgumentTests.cs +++ b/src/CuiSharp.Tests/ToolArgumentTests.cs @@ -219,9 +219,11 @@ public void TheToolWaitsForReadinessBeforeItLetsTheCommandThrough() // The order proof: against a probe that never marks ready, the same command must // not run — a tool that screenshotted first would exit 0 and lie about the frame. + // The probe was just built above, so --no-build keeps this check on the readiness + // gate rather than re-entering MSBuild on the shared project reference. var missError = new StringWriter(); int miss = Cli.Run( - ["--project", project, "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"], + ["--project", project, "--no-build", "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"], new StringWriter(), missError); @@ -234,7 +236,7 @@ public void TheToolWaitsForReadinessBeforeItLetsTheCommandThrough() // the miss still exits 1 with the reason. var directError = new StringWriter(); int direct = Cli.Run( - ["--project", project, "wait", "0.1", "--", "--ready-after", "0"], + ["--project", project, "--no-build", "wait", "0.1", "--", "--ready-after", "0"], new StringWriter(), directError); Assert.Equal(1, direct); @@ -413,7 +415,7 @@ public void TheFixtureCarriesItsNativePayloadIntoAnyWorkingDirectory() string late = Path.Combine(scratch, "late.png"); (int miss, _, string missErrors) = RunFrom( scratch, tool, - ["--project", project, "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"]); + ["--project", project, "--no-build", "--wait", "ready", "--wait-timeout", "1", "png", late, "--", "--ready-after", "0"]); Assert.Equal(1, miss); Assert.Contains("ready", missErrors, StringComparison.Ordinal); Assert.False(File.Exists(late), "an unsatisfied gate must still stop the command from a foreign cwd"); diff --git a/src/CuiSharp.Tools/AppLocator.cs b/src/CuiSharp.Tools/AppLocator.cs index ef8bb53..dab1fb1 100644 --- a/src/CuiSharp.Tools/AppLocator.cs +++ b/src/CuiSharp.Tools/AppLocator.cs @@ -438,6 +438,7 @@ private static (int Exit, string Out, string Error) Run(string host, IReadOnlyLi StandardErrorEncoding = Encoding.UTF8, }; if (workingDirectory is not null) info.WorkingDirectory = workingDirectory; + info.Environment["MSBUILDDISABLENODEREUSE"] = "1"; foreach (string argument in arguments) info.ArgumentList.Add(argument); // A helper that cannot start or whose pipes break is a diagnosis the user can act on — diff --git a/src/CuiSharp.Tools/Program.cs b/src/CuiSharp.Tools/Program.cs index 6a7f7ae..ba3bda3 100644 --- a/src/CuiSharp.Tools/Program.cs +++ b/src/CuiSharp.Tools/Program.cs @@ -9,22 +9,28 @@ // are disposed on exit so nothing buffered is lost. try { + Console.InputEncoding = Encoding.UTF8; Console.OutputEncoding = Encoding.UTF8; } catch (IOException) { - // Not a console handle: the redirected writers below carry the encoding instead. + // Not a console handle: the redirected readers and writers below carry the encoding instead. } +TextReader input = Console.In; TextWriter output = Console.Out; TextWriter error = Console.Error; +using StreamReader? redirectedIn = Console.IsInputRedirected + ? new StreamReader(Console.OpenStandardInput(), Encoding.UTF8) + : null; using StreamWriter? redirectedOut = Console.IsOutputRedirected ? new StreamWriter(Console.OpenStandardOutput(), new UTF8Encoding(false)) { AutoFlush = true } : null; using StreamWriter? redirectedErr = Console.IsErrorRedirected ? new StreamWriter(Console.OpenStandardError(), new UTF8Encoding(false)) { AutoFlush = true } : null; +if (redirectedIn is not null) input = redirectedIn; if (redirectedOut is not null) output = redirectedOut; if (redirectedErr is not null) error = redirectedErr; -return Cli.Run(args, output, error, Console.In); +return Cli.Run(args, output, error, input); diff --git a/tools/export-api.cs b/tools/export-api.cs index bb5c7a9..e51c3a7 100644 --- a/tools/export-api.cs +++ b/tools/export-api.cs @@ -502,7 +502,7 @@ public static Catalog Build(Assembly assembly, Documentation docs, InitAccessors foreach (Type type in assembly.GetExportedTypes().OrderBy(t => t.FullName, StringComparer.Ordinal)) { if (CatalogFilter.IsCompilerMetadata(type)) continue; - CatalogType entry = CatalogType.For(type, docs, hoisted, inits, modopts); + CatalogType? entry = CatalogType.For(type, docs, hoisted, inits, modopts); if (entry is not null) catalog.Types.Add(entry); } @@ -883,7 +883,7 @@ public static CatalogMember ForProperty(PropertyInfo p, Documentation docs, Init // return; reflection's attribute API does not surface modreqs, so the answer comes from // the assembly's metadata signature (InitAccessors). Rendering init as `set` would // invite the after-construction assignment the declaration forbids. - bool isInit = inits.IsInit(p.DeclaringType, p.Name); + bool isInit = inits.IsInit(p.DeclaringType!, p.Name); string access = (p.GetMethod?.IsPublic == true ? "get; " : "") + (p.SetMethod?.IsPublic == true ? (isInit ? "init; " : "set; ") : ""); HashSet? generics = p.GetMethod is null ? null : modopts.AnnotatedTypes(p.GetMethod, -1); diff --git a/tools/verify-template.ps1 b/tools/verify-template.ps1 index f988ca5..66878c0 100644 --- a/tools/verify-template.ps1 +++ b/tools/verify-template.ps1 @@ -221,6 +221,36 @@ internal static class AnalyzerProbe if ($LASTEXITCODE -ne 0 -or $dispatchHelp -notmatch 'dotnet cui ') { throw "dotnet cui did not dispatch to the installed tool: $dispatchHelp" } + + # The offline catalog must be inside the packed tool, not just beside the repo's source. + # Run from the package scratch folder, which has no app project and no cui.dll, then read + # the installed tool's JSON answer as strict UTF-8. + $catalogPsi = [System.Diagnostics.ProcessStartInfo]::new('dotnet') + $catalogPsi.WorkingDirectory = $work + foreach ($argument in @('cui', 'api', 'ChartOpts', '--json')) { $catalogPsi.ArgumentList.Add($argument) } + $catalogPsi.UseShellExecute = $false + $catalogPsi.RedirectStandardOutput = $true + $catalogPsi.RedirectStandardError = $true + $catalogPsi.StandardOutputEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $catalogPsi.StandardErrorEncoding = [System.Text.UTF8Encoding]::new($false, $true) + $catalog = [System.Diagnostics.Process]::Start($catalogPsi) + try { + $catalogOut = $catalog.StandardOutput.ReadToEndAsync() + $catalogErr = $catalog.StandardError.ReadToEndAsync() + if (-not $catalog.WaitForExit(60000)) { throw 'installed dotnet cui api timed out' } + $json = $catalogOut.GetAwaiter().GetResult() + $errors = $catalogErr.GetAwaiter().GetResult() + if ($catalog.ExitCode -ne 0) { throw "installed dotnet cui api failed: $errors" } + $answer = $json | ConvertFrom-Json + if ($answer.match -ne 'exact' -or $answer.term -ne 'ChartOpts' -or + -not ($answer.lines -match 'public .* MaxPoints')) { + throw "installed dotnet cui api returned no ChartOpts declaration: $json" + } + } + finally { + if (-not $catalog.HasExited) { $catalog.Kill($true); $catalog.WaitForExit() } + $catalog.Dispose() + } } finally { $env:PATH = $savedPath } Write-Host " $shimName installed, and dotnet cui resolves through it" -ForegroundColor Green @@ -246,7 +276,7 @@ internal static class AnalyzerProbe # exact characters; this check never silently skips because a sample page happened to be ASCII. $miniPath = Join-Path $miniApp $miniFile $miniSource = [System.IO.File]::ReadAllText($miniPath) - $asciiHeading = 'ui.Heading("MiniApp", 1);' + $asciiHeading = "ui.Heading(`"$miniName`", 1);" if (-not $miniSource.Contains($asciiHeading, [StringComparison]::Ordinal)) { throw "the generated mini no longer contains the expected heading: $miniPath" } From 699c17395baef719982995c8e9852de284c8e0dc Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor Date: Wed, 11 Nov 2026 18:36:22 +0800 Subject: [PATCH 16/18] Add NamedPipe live window control and unify CuiSharp.Tools CLI --- docs/API-SURFACE.txt | 1 + skills/cui-dotnet/SKILL.md | 5 + skills/cui-dotnet/api/catalog.json | 2 +- src/CuiSharp.Tests/ApiCatalogCliTests.cs | 85 +- src/CuiSharp.Tests/LiveControlTests.cs | 389 ++++++++ src/CuiSharp.Tools/Cli.cs | 424 ++------ src/CuiSharp.Tools/HeadlessClient.cs | 15 +- src/CuiSharp.Tools/LiveClient.cs | 296 ++++++ src/CuiSharp/CuiApp.cs | 53 +- src/CuiSharp/Hosting/HeadlessLoop.cs | 8 +- src/CuiSharp/Hosting/LiveResize.cs | 9 + src/CuiSharp/Hosting/LiveSession.cs | 1162 ++++++++++++++++++++++ src/CuiSharp/Interop/Win32.cs | 76 ++ src/CuiSharp/Runtime/Features.cs | 9 + src/CuiSharp/Runtime/FrameCallbacks.cs | 36 +- src/CuiSharp/Semantics/WidgetRecorder.cs | 21 + src/CuiSharp/Ui/Ui.Draw.cs | 10 +- 17 files changed, 2178 insertions(+), 423 deletions(-) create mode 100644 src/CuiSharp.Tests/LiveControlTests.cs create mode 100644 src/CuiSharp.Tools/LiveClient.cs create mode 100644 src/CuiSharp/Hosting/LiveSession.cs diff --git a/docs/API-SURFACE.txt b/docs/API-SURFACE.txt index 35677ab..c4dea47 100644 --- a/docs/API-SURFACE.txt +++ b/docs/API-SURFACE.txt @@ -605,6 +605,7 @@ class CuiSharp.CuiAppOptions property Boolean FixedSize { get; set; } property Boolean FollowSystemTheme { get; set; } property Boolean Hidden { get; set; } + property Boolean LiveAttach { get; set; } property Boolean NoVsync { get; set; } property IFileDialogProvider FileDialog { get; set; } property Int32 Height { get; set; } diff --git a/skills/cui-dotnet/SKILL.md b/skills/cui-dotnet/SKILL.md index ce3821e..e3b1d9e 100644 --- a/skills/cui-dotnet/SKILL.md +++ b/skills/cui-dotnet/SKILL.md @@ -595,6 +595,11 @@ behind, so anything that should be checked twice belongs in a test instead. - `click` answers with the frame *after* the click; a transition may need `frame N` first. - `--frames N` draws N frames before the command; `--app bin/App.exe` inspects a published build; `--no-build` reuses the last build; `--` passes the rest to the app. +- To drive a **live window** while a human watches it (`dotnet watch run -- --live`, `CUISHARP_LIVE=1`, + or `CuiAppOptions { LiveAttach = true }` on Windows), run `dotnet cui ps` to list active windows and + pass `-a` / `--attach` (or `--attach=`) to any command (`dotnet cui tree -a`, + `dotnet cui click Save -a`, `dotnet cui png live.png -a`, `dotnet cui quit -a`). Commands travel over + a user-only local named pipe (`cui-live--`) and leave the window open between calls. - The app's own output — `Console.WriteLine`, a logger, a stack trace — reaches your stderr, so stdout is exactly the answer you asked for. - Text in a script the bundled Latin faces do not cover draws nothing at all, with no box and no diff --git a/skills/cui-dotnet/api/catalog.json b/skills/cui-dotnet/api/catalog.json index 2c9f3c6..a6bb0bb 100644 --- a/skills/cui-dotnet/api/catalog.json +++ b/skills/cui-dotnet/api/catalog.json @@ -64,7 +64,7 @@ { "name": "CuiSharp.CoverageResult", "displayName": "CoverageResult", "kind": "struct", "summary": "cui_coverage_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||int Activated;float Lines = default||h88da104828a28b86b9fec371bc715be464eef60466c69c4ac1d557fb947e2bd2", "signature": "CoverageResult(int Activated, float Lines = default)", "parameters": [{ "name": "Activated", "type": "int" }, { "name": "Lines", "type": "float", "default": "default" }] }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|float|||h7ffa52c3fc8534cb001f45d21db0b1e58ef0821f4b768205d94dfde2e83269d5", "signature": "public float Lines", "summary": "percent of all lines covered" }, { "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "file, or -1" }] }, { "name": "CuiSharp.CropperOpts", "displayName": "CropperOpts", "kind": "struct", "summary": "cui_cropper_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|Size|||ha64280009505e4bd6e5bbf4456fad0c2709e6a7d632627c6d242b3f0dccbcdbe", "signature": "public Size Height", "summary": "default the width it gets and 360" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default the width it gets and 360" }, { "name": "Round", "kind": "field", "id": "field|Round|0|0|bool|||h2247de0cb34a1cb7366fbff40bf14d0e5f3e5d0075c0ba267ebb0ba013999829", "signature": "public bool Round", "summary": "a round mask, for avatars (keeps a 1:1 aspect)" }, { "name": "Aspect", "kind": "field", "id": "field|Aspect|0|0|float|||h5a5a7490732f77b38ee208c886571caa7d8986b77932e6d27775bfe1970fb584", "signature": "public float Aspect", "summary": "width / height to keep, 0 for free" }, { "name": "MinSize", "kind": "field", "id": "field|MinSize|0|0|float|||h1099d1058b339206047e2995d1f051ab14f9f598203af7d8b0e01d0afc83ece3", "signature": "public float MinSize", "summary": "smallest side, image pixels; default 16" }] }, { "name": "CuiSharp.CuiApp", "displayName": "CuiApp", "kind": "class", "summary": "A native window, its message loop and a renderer, owned by CUI. Run does not run a loop of its own: it registers the draw callback with CUI and lets the native loop call it. That is what keeps the frame alive while the user drags a window edge \u2014 the OS runs a modal loop of its own there, so a managed while loop would stop painting mid-drag and the layout would go stale. See docs/ARCHITECTURE.md, \u0022Frame model\u0022.", "members": [{ "name": "Window", "kind": "property", "id": "property|Window|0|0|CuiWindow||get;|h30234236b9766cf473f95843df3e0b68850602aaa1331cda3e58cd6d41ae7c9f", "signature": "CuiWindow Window { get; }", "summary": "The same window, for code that takes one: branding, logging, OS queries." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for this window\u0027s current frame." }, { "name": "Frame", "kind": "method", "id": "method|Frame|0|0|bool|||hd2350cbedf0fa94ca88ae82211435f00739775c3f1842e63f1955ac8d86e4b35", "signature": "bool Frame()", "summary": "Presents the previous frame, waits for input or an animation, then begins a new one. Returns false once the window is closed." }, { "name": "IsMaximized", "kind": "property", "id": "property|IsMaximized|0|0|bool||get;|hfc25b64604e9ea0e3c723dbda0dbba4b18badeaba57aa00663e20ad1607f48ed", "signature": "bool IsMaximized { get; }", "summary": "True when this window is maximized." }, { "name": "IsSoftwareRenderer", "kind": "property", "id": "property|IsSoftwareRenderer|0|0|bool||get;|h3f27446eacdf04d1fecebceee1cefae62e919fd65275bec82b6fe24474df4568", "signature": "bool IsSoftwareRenderer { get; }", "summary": "True when the OpenGL context could not be created and CUI fell back to its software rasterizer." }, { "name": "Screenshot", "kind": "method", "id": "method|Screenshot|0|0|bool|byte[] rgba;int width;int height||h32c92697cf1a2a7266dac82b2c2cbea772c64fac0524d04dfdd03db1124294f0", "signature": "bool Screenshot(byte[] rgba, int width, int height)", "parameters": [{ "name": "rgba", "type": "byte[]" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "Renders the current UI into an RGBA buffer. Handy for tests and screenshots." }, { "name": "NativeWindow", "kind": "property", "id": "property|NativeWindow|0|0|nint||get;|ha25309f909158c2015eb52345e6663cba17bb84816dcc0f42e5d0bc51c47a5b2", "signature": "nint NativeWindow { get; }", "summary": "The OS window: HWND on Windows, NSWindow* on macOS, X11 Window on Linux." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiApp?|CuiAppOptions options||h47bc6dc638f13abf75db2728a013b0d6322fbc723cadb7cc47fcf35a1b2dd7e6", "signature": "static CuiApp? Create(CuiAppOptions options)", "parameters": [{ "name": "options", "type": "CuiAppOptions" }], "summary": "Creates the window. Returns null when the platform backend fails." }, { "name": "Run", "kind": "method", "id": "method|Run|1|0|int|CuiAppOptions options;DrawFn draw||hde074914b64b4a7f5c888bcc4a2fa6b9978ece1b7ee0fd5e684eebd62b88ec8b", "signature": "static int Run(CuiAppOptions options, DrawFn draw)", "parameters": [{ "name": "options", "type": "CuiAppOptions" }, { "name": "draw", "type": "DrawFn" }], "summary": "Creates a window and calls draw once per frame until the window closes. This is the whole host: no XAML, no dispatcher." }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;|h71c8721a8cabf6ac9b6a38bb4aab8d0ede6c619052f697732584e574de3f6619", "signature": "string Backend { get; }", "summary": "The active backend: \u0022win32\u0022, \u0022cocoa\u0022, \u0022x11\u0022, \u0022sdl2\u0022 or \u0022glfw\u0022." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Minimize", "kind": "method", "id": "method|Minimize|0|0|void|||h2860f633e87f0e7e97be2e82dd4b4b77230f13533c648a1be17c41020ae3d35b", "signature": "void Minimize()", "summary": "Minimizes this window." }, { "name": "Quit", "kind": "method", "id": "method|Quit|0|0|void|||h43270dda39df05fe7b0d4d45612873989592f1ccd4994286cad598aff83df2aa", "signature": "void Quit()", "summary": "Asks the loop to stop after the current frame." }, { "name": "RequestClose", "kind": "method", "id": "method|RequestClose|0|0|void|||hb8e5c8757281b7813c0ddf13bc355f759625e935e912784f82ffc434fb19a7d0", "signature": "void RequestClose()", "summary": "Closes this window, exactly as its own close button would." }, { "name": "SetAccent", "kind": "method", "id": "method|SetAccent|0|0|void|Accent accent||hab9da51d01cc626e42924bf5eb47253639c5bb688c42d447eed3e2bb8cb429b7", "signature": "void SetAccent(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "Applies an accent now, or on the next frame if the window is not up yet." }, { "name": "SetTheme", "kind": "method", "id": "method|SetTheme|0|0|void|Theme theme||hdb1c01024b5fc0e6b77231b41e696500bb588bfde8080a16ba88452dac461341", "signature": "void SetTheme(Theme theme)", "parameters": [{ "name": "theme", "type": "Theme" }], "summary": "Applies a theme now, or on the next frame if the window is not up yet." }, { "name": "ToggleMaximize", "kind": "method", "id": "method|ToggleMaximize|0|0|void|||h7281054f8f114f52232a500cf106c448776f57d00b9485febb705097f13dec5c", "signature": "void ToggleMaximize()", "summary": "Maximizes this window, or restores it when it is already maximized." }] }, - { "name": "CuiSharp.CuiAppOptions", "displayName": "CuiAppOptions", "kind": "class", "summary": "Everything CuiApp needs to create a window. All optional.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "Initial accent color." }, { "name": "WindowCreated", "kind": "property", "id": "property|WindowCreated|0|0|Action\u003CCuiWindow\u003E?||get;set;|hd97fe9c9f1235fd79b21c918d15f41213dde9a8ef7ac4022420008cb12c230af", "signature": "Action\u003CCuiWindow\u003E? WindowCreated { get; set; }", "summary": "Called once the window exists and before the first frame is drawn \u2014 the first moment there is a handle to brand, log or query. OnInitialized is earlier than this on purpose: it runs before there is a window, so anything that needs one belongs here." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h052338a3e42584e812cd5ade8d171240c2895e01b48ef404f5d41de8ed8a32c5", "signature": "CuiAppOptions()" }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null asks the OS through CUI; a test supplies one so a picker flow runs with no display." }, { "name": "Renderer", "kind": "property", "id": "property|Renderer|0|0|Renderer||get;set;|h0f615c0e5b0af4a2b7c9934c403bbae0e54d46fe771b647c7749f48a921c8086", "signature": "Renderer Renderer { get; set; }", "summary": "OpenGL with a software fallback, or force one. Default Auto." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "Initial theme." }, { "name": "Continuous", "kind": "property", "id": "property|Continuous|0|0|bool||get;set;|he6c5620a986c421d7d4bd7ff7ee4c1796d95707661214a1acfe1a009d3473483", "signature": "bool Continuous { get; set; }", "summary": "Draw every frame even when idle (games, video). Off by default: an idle app uses no CPU." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|CuiAppOptions? other||h48d010e639d0a1df340d0abaf566f818724b7bdd6bc0cc3aca91e2dd0906ea6b", "signature": "bool Equals(CuiAppOptions? other)", "parameters": [{ "name": "other", "type": "CuiAppOptions?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "FixedSize", "kind": "property", "id": "property|FixedSize|0|0|bool||get;set;|ha6b23ab95d1fde7263609d4caf6654afbdcab017618e1f8e261d306547d82c41", "signature": "bool FixedSize { get; set; }", "summary": "Not resizable." }, { "name": "FollowSystemTheme", "kind": "property", "id": "property|FollowSystemTheme|0|0|bool||get;set;|hb10ada4260f9d6ef673f3d93429bb4f2e293ac4ee0d134fda67099b5d4ef63ad", "signature": "bool FollowSystemTheme { get; set; }", "summary": "Use the OS light/dark setting where available." }, { "name": "Hidden", "kind": "property", "id": "property|Hidden|0|0|bool||get;set;|hdfde751b33801c3ad300b37b9b7b855c0618c927d1aaa34dded70c57e1176091", "signature": "bool Hidden { get; set; }", "summary": "Create the window hidden, for tests and screenshot runs." }, { "name": "NoVsync", "kind": "property", "id": "property|NoVsync|0|0|bool||get;set;|h4bdbad4be8e7bf1a7a438a58268fc586d978e32a4b18a96357ec04b0b82ea237", "signature": "bool NoVsync { get; set; }", "summary": "Skip vsync." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;set;|hc7b93614a4ae8dd0ea39fa144f8777ad08a584d1f228dfd48ff13c50aadd20c6", "signature": "int Height { get; set; }", "summary": "Logical height in points. Default 720." }, { "name": "MinHeight", "kind": "property", "id": "property|MinHeight|0|0|int||get;set;|h1448407c9ebf6fa024da47950f5323ab1a0aa439306c5d9c75bc95179d546688", "signature": "int MinHeight { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "MinWidth", "kind": "property", "id": "property|MinWidth|0|0|int||get;set;|h8ece297c624a4a28500609df527eeb5587924f1cd96f776683f90be2f6a346ca", "signature": "int MinWidth { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;set;|hfbff7e44ea4065be82fc63038674b5db073aeb7b1f403be45e0d50324c5363a2", "signature": "int Width { get; set; }", "summary": "Logical width in points. Default 1080." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h7c436fe756a67e79c4a97240925e849602fb4bc71a85d31398a5741f3437732a", "signature": "static bool operator !=(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h5c33d0ca596aabf4dc3371c8cdacf711fe73f0d3d93b30bf96389af26a768e3e", "signature": "static bool operator ==(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "Title", "kind": "property", "id": "property|Title|0|0|string||get;set;|hf262b48dcf29de55fc6a8387b0fde28b5cf9eb8c742679739af198676b83b528", "signature": "string Title { get; set; }", "summary": "Window title. Default \u0022CUI\u0022." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, + { "name": "CuiSharp.CuiAppOptions", "displayName": "CuiAppOptions", "kind": "class", "summary": "Everything CuiApp needs to create a window. All optional.", "members": [{ "name": "Accent", "kind": "property", "id": "property|Accent|0|0|Accent||get;set;|h601d9cfd9625a035242c1bcbf7277be4924bde18cceaaaa599fef54890ea0c9b", "signature": "Accent Accent { get; set; }", "summary": "Initial accent color." }, { "name": "WindowCreated", "kind": "property", "id": "property|WindowCreated|0|0|Action\u003CCuiWindow\u003E?||get;set;|hd97fe9c9f1235fd79b21c918d15f41213dde9a8ef7ac4022420008cb12c230af", "signature": "Action\u003CCuiWindow\u003E? WindowCreated { get; set; }", "summary": "Called once the window exists and before the first frame is drawn \u2014 the first moment there is a handle to brand, log or query. OnInitialized is earlier than this on purpose: it runs before there is a window, so anything that needs one belongs here." }, { "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h052338a3e42584e812cd5ade8d171240c2895e01b48ef404f5d41de8ed8a32c5", "signature": "CuiAppOptions()" }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null asks the OS through CUI; a test supplies one so a picker flow runs with no display." }, { "name": "Renderer", "kind": "property", "id": "property|Renderer|0|0|Renderer||get;set;|h0f615c0e5b0af4a2b7c9934c403bbae0e54d46fe771b647c7749f48a921c8086", "signature": "Renderer Renderer { get; set; }", "summary": "OpenGL with a software fallback, or force one. Default Auto." }, { "name": "Theme", "kind": "property", "id": "property|Theme|0|0|Theme||get;set;|h898a02cacbcba9a905f94fba0740f328f89ab1e042e5fea5ff9d21a93e3e297d", "signature": "Theme Theme { get; set; }", "summary": "Initial theme." }, { "name": "Continuous", "kind": "property", "id": "property|Continuous|0|0|bool||get;set;|he6c5620a986c421d7d4bd7ff7ee4c1796d95707661214a1acfe1a009d3473483", "signature": "bool Continuous { get; set; }", "summary": "Draw every frame even when idle (games, video). Off by default: an idle app uses no CPU." }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|CuiAppOptions? other||h48d010e639d0a1df340d0abaf566f818724b7bdd6bc0cc3aca91e2dd0906ea6b", "signature": "bool Equals(CuiAppOptions? other)", "parameters": [{ "name": "other", "type": "CuiAppOptions?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "FixedSize", "kind": "property", "id": "property|FixedSize|0|0|bool||get;set;|ha6b23ab95d1fde7263609d4caf6654afbdcab017618e1f8e261d306547d82c41", "signature": "bool FixedSize { get; set; }", "summary": "Not resizable." }, { "name": "FollowSystemTheme", "kind": "property", "id": "property|FollowSystemTheme|0|0|bool||get;set;|hb10ada4260f9d6ef673f3d93429bb4f2e293ac4ee0d134fda67099b5d4ef63ad", "signature": "bool FollowSystemTheme { get; set; }", "summary": "Use the OS light/dark setting where available." }, { "name": "Hidden", "kind": "property", "id": "property|Hidden|0|0|bool||get;set;|hdfde751b33801c3ad300b37b9b7b855c0618c927d1aaa34dded70c57e1176091", "signature": "bool Hidden { get; set; }", "summary": "Create the window hidden, for tests and screenshot runs." }, { "name": "LiveAttach", "kind": "property", "id": "property|LiveAttach|0|0|bool||get;set;|hb50db19bff424d76cbb7e20741dba8ba238352a23c4b6d2a6b63f152692b578e", "signature": "bool LiveAttach { get; set; }", "summary": "Let a tool on the same machine drive this window while a human watches it (LiveSession). Off by default and never automatic: an app is only driven when it says so here, or with CUISHARP_LIVE=1 / --live. Windows-only for now; asking for it elsewhere fails rather than silently doing nothing." }, { "name": "NoVsync", "kind": "property", "id": "property|NoVsync|0|0|bool||get;set;|h4bdbad4be8e7bf1a7a438a58268fc586d978e32a4b18a96357ec04b0b82ea237", "signature": "bool NoVsync { get; set; }", "summary": "Skip vsync." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;set;|hc7b93614a4ae8dd0ea39fa144f8777ad08a584d1f228dfd48ff13c50aadd20c6", "signature": "int Height { get; set; }", "summary": "Logical height in points. Default 720." }, { "name": "MinHeight", "kind": "property", "id": "property|MinHeight|0|0|int||get;set;|h1448407c9ebf6fa024da47950f5323ab1a0aa439306c5d9c75bc95179d546688", "signature": "int MinHeight { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "MinWidth", "kind": "property", "id": "property|MinWidth|0|0|int||get;set;|h8ece297c624a4a28500609df527eeb5587924f1cd96f776683f90be2f6a346ca", "signature": "int MinWidth { get; set; }", "summary": "Smallest the user can resize to. Default 360 x 280." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;set;|hfbff7e44ea4065be82fc63038674b5db073aeb7b1f403be45e0d50324c5363a2", "signature": "int Width { get; set; }", "summary": "Logical width in points. Default 1080." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h7c436fe756a67e79c4a97240925e849602fb4bc71a85d31398a5741f3437732a", "signature": "static bool operator !=(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|CuiAppOptions? left;CuiAppOptions? right||h5c33d0ca596aabf4dc3371c8cdacf711fe73f0d3d93b30bf96389af26a768e3e", "signature": "static bool operator ==(CuiAppOptions? left, CuiAppOptions? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "CuiAppOptions?" }, { "name": "right", "type": "CuiAppOptions?" }] }, { "name": "Title", "kind": "property", "id": "property|Title|0|0|string||get;set;|hf262b48dcf29de55fc6a8387b0fde28b5cf9eb8c742679739af198676b83b528", "signature": "string Title { get; set; }", "summary": "Window title. Default \u0022CUI\u0022." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, { "name": "CuiSharp.CuiCron", "displayName": "CuiCron", "kind": "static class", "summary": "Cron schedules without a frame: when an expression runs next, using the same parser the schedule picker shows its next runs with. Five fields (minute, hour, day, month, weekday), with *, lists, ranges, steps and the month and weekday names.", "members": [{ "name": "TryNext", "kind": "method", "id": "method|TryNext|1|0|bool|string cron;DateTimeOffset after;out DateTimeOffset next;int utcOffsetMinutes = default||h45c9a2e0364603001de581bc113a9f93cd0f141398c41961947ee9675eb1e035", "signature": "static bool TryNext(string cron, DateTimeOffset after, out DateTimeOffset next, int utcOffsetMinutes = default)", "parameters": [{ "name": "cron", "type": "string" }, { "name": "after", "type": "DateTimeOffset" }, { "name": "next", "type": "out DateTimeOffset" }, { "name": "utcOffsetMinutes", "type": "int", "default": "default" }], "summary": "The first time after after that cron matches." }] }, { "name": "CuiSharp.CuiDiagnostics", "displayName": "CuiDiagnostics", "kind": "class", "summary": "One snapshot of what this process is actually running on: the renderer that was chosen, the native library it loaded, the display and dialog helper it will find. A station, a VM or a remote session fails in ways nobody can reproduce from a description, and every app ends up writing this by hand. Print it at startup, or on a --check flag, and the report says which of the two machines it came from.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||||h045f116644ce1367ba1261a3d3abff761cf164ab51083cb5b2e790184a58ae3d", "signature": "CuiDiagnostics()" }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|CuiDiagnostics? other||h8b9968c4c8748c81e7bf5fb2489be20ba189750bc9f5994e8892cff8cace8efe", "signature": "bool Equals(CuiDiagnostics? other)", "parameters": [{ "name": "other", "type": "CuiDiagnostics?" }] }, { "name": "Equals", "kind": "method", "id": "method|Equals|0|0|bool|object? obj||hd3e92e37e2998ac34e36806ff7fcef181ad242dea4dc74cd082b2897104d07a6", "signature": "bool Equals(object? obj)", "parameters": [{ "name": "obj", "type": "object?" }] }, { "name": "SoftwareRenderer", "kind": "property", "id": "property|SoftwareRenderer|0|0|bool||get;set;|h2413e0212d14e26b5f904135df3e18786ea70264e1cbe1d1c5dce0f7a6b16036", "signature": "bool SoftwareRenderer { get; init; }", "summary": "True when OpenGL was unavailable or unhelpful and the software rasterizer draws." }, { "name": "GetHashCode", "kind": "method", "id": "method|GetHashCode|0|0|int|||hdfcf1984bbd53bb9079a9b702ff4724865de4dcf06bbed07c42edbc8e1085a8d", "signature": "int GetHashCode()" }, { "name": "Report", "kind": "method", "id": "method|Report|1|0|CuiDiagnostics|CuiWindow? window = null||h1859d46f8eaf6ef17454a9b08aa5ae718920e0fde4800cdc1934a9e1746f95e9", "signature": "static CuiDiagnostics Report(CuiWindow? window = null)", "parameters": [{ "name": "window", "type": "CuiWindow?", "default": "null" }], "summary": "Reads the machine, and the window when there is one. Pass the window from WindowCreated to learn which renderer actually won." }, { "name": "!=", "kind": "operator", "id": "operator|op_Inequality|1|0|bool|CuiDiagnostics? left;CuiDiagnostics? right||h835207532afe819267c16c154792dba5fc2255f69c90f6f422ba6017fd9b8715", "signature": "static bool operator !=(CuiDiagnostics? left, CuiDiagnostics? right)", "member": "op_Inequality", "parameters": [{ "name": "left", "type": "CuiDiagnostics?" }, { "name": "right", "type": "CuiDiagnostics?" }] }, { "name": "==", "kind": "operator", "id": "operator|op_Equality|1|0|bool|CuiDiagnostics? left;CuiDiagnostics? right||h6532c2e545d825729f6674cd4a57008d1939f908c292b1baa8658168528547d0", "signature": "static bool operator ==(CuiDiagnostics? left, CuiDiagnostics? right)", "member": "op_Equality", "parameters": [{ "name": "left", "type": "CuiDiagnostics?" }, { "name": "right", "type": "CuiDiagnostics?" }] }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;set;|h6f2bd4d265f2f26561618b557eb8ccb26ec79b8a47262646b2e1c43fb44bbd84", "signature": "string Backend { get; init; }", "summary": "The CUI backend that created the window: win32, x11, cocoa." }, { "name": "DialogHelper", "kind": "property", "id": "property|DialogHelper|0|0|string||get;set;|h73dfb3c1f64725048b8bcaa3a763d50fb742c6e1efd1dd8965296468ff0af30c", "signature": "string DialogHelper { get; init; }", "summary": "The program a Linux file dialog will shell out to, or empty when none was found." }, { "name": "Display", "kind": "property", "id": "property|Display|0|0|string||get;set;|ha88f1771bd148fcab63ebce49579a6f35fe128f2973ea441edf42aa218f80ce2", "signature": "string Display { get; init; }", "summary": "The display the window will use; empty when there is none." }, { "name": "GlibcFloor", "kind": "property", "id": "property|GlibcFloor|0|0|string||get;set;|h51b3ad0b58b2d6a41a481cf6b2bafe1d875013433317188ba6ac23c741186679", "signature": "string GlibcFloor { get; init; }", "summary": "The glibc floor the Linux binary promises; empty on other platforms." }, { "name": "Platform", "kind": "property", "id": "property|Platform|0|0|string||get;set;|h4d0689b967267a70a59520183f8d0d87f6700b4cd8bbf3f02949fca03ee76901", "signature": "string Platform { get; init; }", "summary": "The OS and runtime: win-x64, win-arm64, linux-x64, linux-arm64, osx-arm64." }, { "name": "Report", "kind": "method", "id": "method|Report|0|0|string|||hba97406277ec59b17e164b35d7746c4b0efed4bd7cedde0c4877313c6c27312a", "signature": "string Report()", "summary": "Everything above as the lines a person or a bug report reads." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }, { "name": "Version", "kind": "property", "id": "property|Version|0|0|string||get;set;|h81037fde9c494ae8f88927f7d63be685a84c339cc2ff700fb5f5a30411f38873", "signature": "string Version { get; init; }", "summary": "The package version whose managed and native halves are loaded together." }] }, { "name": "CuiSharp.CuiFiles", "displayName": "CuiFiles", "kind": "static class", "summary": "The filesystem helpers CUI keeps behind the file browser, and the in-place sorts the flame graph and the trace viewer need: a directory listing with the same rule the browser uses.", "members": [{ "name": "ListDirectory", "kind": "method", "id": "method|ListDirectory|1|0|FileEntry[]|string? path;bool includeHidden = default;int maxEntries = 20000||h264fbecb79cc8c4f52483f68db652cf87fa11e191f0f30cabc8baba01d4f072b", "signature": "static FileEntry[] ListDirectory(string? path, bool includeHidden = default, int maxEntries = 20000)", "parameters": [{ "name": "path", "type": "string?" }, { "name": "includeHidden", "type": "bool", "default": "default" }, { "name": "maxEntries", "type": "int", "default": "20000" }], "summary": "Lists a directory the way the file browser does: no ./.., and hidden entries only when asked for." }, { "name": "SortFlameSpans", "kind": "method", "id": "method|SortFlameSpans|1|0|void|Span\u003CFlameSpan\u003E spans||h51d02985e086ba826919a69f5cf84fbbb07f7a38858fb4dbab08504f5d9ef66f", "signature": "static void SortFlameSpans(Span\u003CFlameSpan\u003E spans)", "parameters": [{ "name": "spans", "type": "Span\u003CFlameSpan\u003E" }], "summary": "Sorts flame graph spans by weight in place, the order the graph expects." }, { "name": "SortTraceSpans", "kind": "method", "id": "method|SortTraceSpans|1|0|void|Span\u003CTraceSpan\u003E spans||ha0c5b36c520b5a87e07a8a081d0877de8877f00c03de24905cbd24f012fdc0de", "signature": "static void SortTraceSpans(Span\u003CTraceSpan\u003E spans)", "parameters": [{ "name": "spans", "type": "Span\u003CTraceSpan\u003E" }], "summary": "Sorts trace spans by lane, depth and start, the only order the trace viewer can draw (it needs no overlap inside a depth of a lane)." }] }, diff --git a/src/CuiSharp.Tests/ApiCatalogCliTests.cs b/src/CuiSharp.Tests/ApiCatalogCliTests.cs index e0eb62b..bd63fd6 100644 --- a/src/CuiSharp.Tests/ApiCatalogCliTests.cs +++ b/src/CuiSharp.Tests/ApiCatalogCliTests.cs @@ -230,37 +230,26 @@ public void AnIgnoredOptionNeverSwallowsTheFlagBehindIt() [Fact] public void ANonCatalogCommandKeepsItsOwnGrammarEvenWithAwkwardOptionValues() { - // `tree --wait-text -loading` is legal in the ordinary flow: `-loading` is a value, - // not a flag. The catalog scan reads argv before anyone knows which flow this is, so - // it may hold a complaint but never voice one for a command it does not own. - Assert.False(Cli.TryReadCatalogCommand( - ["tree", "--wait-text", "-loading", "--help"], out Cli.CatalogRequest _)); - + // `tree --wait-text -loading` is legal: `-loading` is a value, not a flag. Cli.Options options = Cli.Options.Parse(["tree", "--wait-text", "-loading", "--help"]); Assert.Equal("tree", options.Command); Assert.Equal("waittext 10 -loading", options.WaitLine); Assert.True(options.Help); - // End to end the same line reaches the ordinary path: the complaint that comes back - // is about the project the test names, never about the value the scan held back. (int exit, _, string error) = Run("tree", "--wait-text", "-loading"); Assert.Equal(1, exit); Assert.DoesNotContain("needs a value", error, StringComparison.Ordinal); Assert.Contains(NoProjectHere, error, StringComparison.Ordinal); - // And `--json` stays the ordinary parser's unknown option — the catalog commands are - // the only ones that answer machine-readable, and the scan must not grant it wider. + // And `--json` is rejected on ordinary app commands. (exit, _, error) = Run("tree", "--json"); Assert.Equal(1, exit); Assert.Contains("Unknown option \"--json\"", error, StringComparison.Ordinal); } [Fact] - public void ACatalogCommandReportsTheOptionMistakesTheScanHeldBack() + public void ACatalogCommandReportsMalformedOptionsThroughTheUnifiedParser() { - // The escrow is only ever cashed for api/icons — and on either side of the command - // word. After it: `--project --json` must name the option that lost its value, not - // swallow --json and not answer any query at all. var output = new StringWriter(); var errors = new StringWriter(); int exit = Cli.Run(["api", "ChartOpts", "--project", "--json"], output, errors); @@ -268,8 +257,6 @@ public void ACatalogCommandReportsTheOptionMistakesTheScanHeldBack() Assert.Contains("--project needs a value", errors.ToString(), StringComparison.Ordinal); Assert.Equal("", output.ToString()); - // Before it: a malformed flag ahead of the command word is the same mistake, and - // again nothing is printed as if it were an answer. output = new StringWriter(); errors = new StringWriter(); exit = Cli.Run(["--wait-text", "--json", "api", "ChartOpts"], output, errors); @@ -277,98 +264,36 @@ public void ACatalogCommandReportsTheOptionMistakesTheScanHeldBack() Assert.Contains("--wait-text needs a value", errors.ToString(), StringComparison.Ordinal); Assert.Equal("", output.ToString()); - // And a value the ordinary parser would refuse — a number that is not one, whatever - // its dashes — is refused here in the parser's own words, not a catalog-side echo: - // the scan borrows `--frames`/`--wait-timeout` validation rather than keeping a - // second grammar that could disagree with the first. (int badExit, _, string badError) = Run("api", "ChartOpts", "--wait-timeout", "abc"); Assert.Equal(1, badExit); Assert.Contains("--wait-timeout needs a finite number of seconds", badError, StringComparison.Ordinal); Assert.Contains("not \"abc\"", badError, StringComparison.Ordinal); } - [Fact] - public void ASwallowedOptionValueNeverStealsTheCommandWord() - { - // `--wait-text --app tree api --help`: the ordinary parser spends the word after a - // flag on it, dash or not, so `--wait-text` eats `--app` and the command is `tree`. - // The scan may complain about that eaten flag, but it must consume identically while - // doing so — a scan whose position diverges calls this a catalog line and answers a - // validation error for an ordinary tree run. - Assert.False(Cli.TryReadCatalogCommand( - ["--wait-text", "--app", "tree", "api", "--help"], out Cli.CatalogRequest _)); - - Cli.Options options = Cli.Options.Parse(["--wait-text", "--app", "tree", "api", "--help"]); - Assert.Equal("tree", options.Command); - Assert.Equal("waittext 10 --app", options.WaitLine); - Assert.True(options.Help); - - // End to end the line is what the ordinary grammar says it is: usage, exit 0. - var output = new StringWriter(); - var errors = new StringWriter(); - int exit = Cli.Run(["--wait-text", "--app", "tree", "api", "--help"], output, errors); - Assert.Equal(0, exit); - Assert.Contains("dotnet cui ", output.ToString(), StringComparison.Ordinal); - Assert.Equal("", errors.ToString()); - } - - [Fact] - public void TheScanOwnsTheLineOnlyForTheCommandOptionsParseWouldName() - { - // `--project --app api ChartOpts --help`: the ordinary parser spends `--app` on - // `--project`, so the first positional — the command — is `api`, and this line is - // the catalog's business. It then names the malformed flag rather than printing - // usage as if `api` had been swallowed into the option and never seen. (The earlier - // scan did exactly that: it refused to eat a dash-value, slid `api` into a slot the - // parser gives to nothing, and answered usage for a line it should have policed.) - Assert.Throws(() => Cli.TryReadCatalogCommand( - ["--project", "--app", "api", "ChartOpts", "--help"], out Cli.CatalogRequest _)); - - var output = new StringWriter(); - var errors = new StringWriter(); - int exit = Cli.Run(["--project", "--app", "api", "ChartOpts", "--help"], output, errors); - Assert.Equal(1, exit); - Assert.Contains("--project needs a value", errors.ToString(), StringComparison.Ordinal); - Assert.Equal("", output.ToString()); - } - [Fact] public void AWaitTheCallerOverwritesIsJudgedByTheValueThatSurvives() { - // `--wait` is the one option whose value the parser does not judge where it reads it: - // every occurrence overwrites the last, and the surviving value is checked after the - // whole line. A scan that judges each occurrence condemns `--wait invalid --wait ready` - // — a legal wait, and a legal `api` call — for a typo the caller already replaced. Cli.Options overwritten = Cli.Options.Parse(["api", "ChartOpts", "--wait", "invalid", "--wait", "ready"]); Assert.Equal("wait 10", overwritten.WaitLine); - Assert.True(Cli.TryReadCatalogCommand( - ["api", "ChartOpts", "--wait", "invalid", "--wait", "ready"], out Cli.CatalogRequest _)); - (int exit, string output, string error) = Run("api", "ChartOpts", "--wait", "invalid", "--wait", "ready"); Assert.Equal(0, exit); Assert.Contains("ChartOpts [struct]", output, StringComparison.Ordinal); Assert.Equal("", error); - // With `--help` behind it the same line is the usage screen the ordinary grammar - // grants it, not a validation error about a word no wait will ever use. (exit, output, error) = Run("api", "ChartOpts", "--wait", "invalid", "--wait", "ready", "--help"); Assert.Equal(0, exit); Assert.Contains("dotnet cui ", output.ToString(), StringComparison.Ordinal); Assert.Equal("", error); - // The filter still filters: the final `ready` is what the line waits on, so `icons - // help` answers CircleHelp instead of a complaint about the overwritten value. (exit, output, error) = Run("icons", "help", "--wait", "invalid", "--wait", "ready"); Assert.Equal(0, exit); Assert.Contains("CircleHelp", output, StringComparison.Ordinal); Assert.DoesNotContain("dotnet cui ", output, StringComparison.Ordinal); Assert.Equal("", error); - // The other order is the mistake, and the scanner says so in the parser's own words: - // the last `--wait` is the one the run would have waited on. - Assert.Throws(() => Cli.TryReadCatalogCommand( - ["api", "ChartOpts", "--wait", "ready", "--wait", "invalid"], out Cli.CatalogRequest _)); + Assert.Throws(() => Cli.Options.Parse( + ["api", "ChartOpts", "--wait", "ready", "--wait", "invalid"])); (exit, output, error) = Run("api", "ChartOpts", "--wait", "ready", "--wait", "invalid"); Assert.Equal(1, exit); diff --git a/src/CuiSharp.Tests/LiveControlTests.cs b/src/CuiSharp.Tests/LiveControlTests.cs new file mode 100644 index 0000000..ceba949 --- /dev/null +++ b/src/CuiSharp.Tests/LiveControlTests.cs @@ -0,0 +1,389 @@ +using System.Text.Json; +using CuiSharp.Hosting; +using CuiSharp.Tools; + +namespace CuiSharp.Tests; + +/// +/// Live-attach verification on a real window with a real message loop and a local named pipe: +/// a click driven from another thread or via dotnet cui --attach increments the counter +/// that same window draws, snapshots carry the completed frame's pixels, idle windows wake via +/// PostMessage, nested message pumps inside Draw or Canvas painters defer +/// boundary execution, cancelled commands wait for cleanup frames before acknowledging, and +/// dotnet cui ps / dotnet cui --attach drive the live window over its named pipe. +/// +public class LiveControlTests +{ + private static bool CanRun => OperatingSystem.IsWindows(); + + /// A real window on its own thread, with an isolated discovery directory. + private sealed class LiveWindow : IDisposable + { + private readonly Thread _thread; + private readonly TaskCompletionSource _closed = new(TaskCreationOptions.RunContinuationsAsynchronously); + private readonly string? _previousLiveDir; + private volatile Exception? _error; + private nint _hwnd; + + private LiveWindow(bool live, DrawFn draw) + { + DiscoveryDir = Path.Combine(Path.GetTempPath(), $"cui-live-test-{Guid.NewGuid():N}"); + Directory.CreateDirectory(DiscoveryDir); + _previousLiveDir = Environment.GetEnvironmentVariable(LiveSession.DirectoryEnvironmentVariable); + Environment.SetEnvironmentVariable(LiveSession.DirectoryEnvironmentVariable, DiscoveryDir); + + long generationBefore = LiveSession.Generation; + _thread = new Thread(() => + { + try + { + CuiApp.Run( + new CuiAppOptions + { + Title = $"CuiSharp live proof {Guid.NewGuid():N}"[..36], + Width = 420, + Height = 320, + Hidden = true, + LiveAttach = live, + WindowCreated = window => Volatile.Write(ref _hwnd, window.NativeWindow), + }, + draw); + } + catch (Exception error) + { + _error = error; + } + finally + { + _closed.TrySetResult(); + } + }) + { IsBackground = true }; + _thread.Start(); + + if (!live) return; + try + { + Session = LiveSession.WaitForActive(generationBefore, TimeSpan.FromSeconds(30)); + } + catch (Exception waitError) + { + throw _error ?? waitError; + } + } + + internal string DiscoveryDir { get; } + + internal LiveSession Session { get; } = null!; + + internal nint WindowHandle => Volatile.Read(ref _hwnd); + + internal bool IsClosed => _closed.Task.IsCompleted; + + internal static LiveWindow StartLive(DrawFn draw) => new(live: true, draw); + + internal static LiveWindow StartPlain(DrawFn draw) => new(live: false, draw); + + internal bool WaitClosed(TimeSpan timeout) => _closed.Task.Wait(timeout); + + public void Dispose() + { + try + { + if (!_closed.Task.IsCompleted) + { + if (WindowHandle != 0) Interop.Win32.RequestClose(WindowHandle); + else Session?.RequestClose(); + } + + _closed.Task.Wait(TimeSpan.FromSeconds(15)); + _thread.Join(TimeSpan.FromSeconds(5)); + if (_error is not null) + throw new InvalidOperationException("The proof window died before it closed.", _error); + } + finally + { + Environment.SetEnvironmentVariable(LiveSession.DirectoryEnvironmentVariable, _previousLiveDir); + try + { + if (Directory.Exists(DiscoveryDir)) Directory.Delete(DiscoveryDir, recursive: true); + } + catch (IOException) + { + } + } + } + } + + private static T Await(Task task) => + task.WaitAsync(TimeSpan.FromSeconds(60)).GetAwaiter().GetResult(); + + [Fact] + public void AClickFromTheToolIncrementsTheCounterThatSameWindowDraws() + { + if (!CanRun) return; + int count = 0; + using LiveWindow window = LiveWindow.StartLive(ui => + { + ui.Heading("Live proof", 2); + ui.Secondary($"Count: {count}"); + if (ui.Button("Increase", new ButtonOpts { Variant = ButtonVariant.Primary })) count++; + }); + + LiveSnapshot before = Await(window.Session.SnapshotAsync()); + Assert.Contains(before.Entries, entry => entry.Text == "Count: 0"); + SemanticWidget button = Assert.Single(before.Entries, entry => entry.Kind == "Button" && entry.Text == "Increase"); + Assert.NotNull(before.Pixels); + Assert.Contains(before.Pixels, byteValue => byteValue != 0); + + LiveSnapshot after = Await(window.Session.ClickAsync(button.Center.X, button.Center.Y)); + + Assert.Equal(1, count); + Assert.Contains(after.Entries, entry => entry.Text == "Count: 1"); + Assert.DoesNotContain(after.Entries, entry => entry.Text == "Count: 0"); + Assert.False(before.Pixels.AsSpan().SequenceEqual(after.Pixels!.AsSpan())); + Assert.True(after.Frame > before.Frame, "the answer must be a later frame than the one measured"); + } + + [Fact] + public void AnIdleWindowWakesForACommandWithoutDrawingFramesOnItsOwn() + { + if (!CanRun) return; + using LiveWindow window = LiveWindow.StartLive(ui => + { + ui.Heading("Idle proof", 2); + ui.Secondary("nothing animates here"); + }); + + LiveSnapshot settled = Await(window.Session.SnapshotAsync(pixels: false)); + Thread.Sleep(TimeSpan.FromMilliseconds(1500)); + LiveSnapshot woken = Await(window.Session.SnapshotAsync(pixels: false)); + + ulong drawn = woken.Frame - settled.Frame; + Assert.True(drawn <= 6, $"the idle window drew {drawn} frames across the sleep — that is continuous mode, not a wake"); + } + + [Fact] + public void AWindowWithoutLiveAttachPublishesNoSession() + { + if (!CanRun) return; + long before = LiveSession.Generation; + using LiveWindow window = LiveWindow.StartPlain(ui => ui.Heading("Nobody drives me", 2)); + + Assert.NotEqual(nint.Zero, SpinUntilWindow(window, TimeSpan.FromSeconds(30))); + Thread.Sleep(TimeSpan.FromMilliseconds(300)); + Assert.Equal(before, LiveSession.Generation); + Assert.Null(LiveSession.Active); + } + + [Fact] + public void ACancelledPressIsParkedReleasedAndOnlyThenAcknowledgedWithoutClicking() + { + if (!CanRun) return; + int count = 0; + using LiveWindow window = LiveWindow.StartLive(ui => + { + ui.Heading("Cancel proof", 2); + ui.Secondary($"Count: {count}"); + if (ui.Button("Increase", new ButtonOpts { Variant = ButtonVariant.Primary })) count++; + }); + LiveSession session = window.Session; + + LiveSnapshot first = Await(session.SnapshotAsync(pixels: false)); + SemanticWidget button = Assert.Single(first.Entries, entry => entry.Kind == "Button" && entry.Text == "Increase"); + (float x, float y) = button.Center; + + using var midCancel = new CancellationTokenSource(); + session.AfterPressHookForTests = midCancel.Cancel; + try + { + Task clickTask = session.ClickAsync(x, y, pixels: false, midCancel.Token); + TaskCanceledException canceled = Assert.Throws( + () => Await(clickTask)); + Assert.True(midCancel.IsCancellationRequested, $"unexpected completion: {canceled.Message}"); + } + finally + { + session.AfterPressHookForTests = null; + } + + Thread.Sleep(TimeSpan.FromMilliseconds(150)); + Assert.Equal(0, count); + LiveSnapshot later = Await(session.SnapshotAsync(pixels: false)); + Assert.Contains(later.Entries, entry => entry.Text == "Count: 0"); + + LiveSnapshot clicked = Await(session.ClickAsync(x, y, pixels: false)); + Assert.Equal(1, count); + Assert.Contains(clicked.Entries, entry => entry.Text == "Count: 1"); + } + + [Fact] + public void ACancelledReleaseAcknowledgesOnlyAfterTheFrameConsumedIt() + { + if (!CanRun) return; + int count = 0; + int drawnFramesAfterRelease = 0; + bool releaseSeen = false; + using LiveWindow window = LiveWindow.StartLive(ui => + { + if (Volatile.Read(ref releaseSeen)) + Interlocked.Increment(ref drawnFramesAfterRelease); + ui.Heading("Cancel after Up", 2); + ui.Secondary($"Count: {count}"); + if (ui.Button("Increase", new ButtonOpts { Variant = ButtonVariant.Primary })) count++; + }); + LiveSession session = window.Session; + + LiveSnapshot first = Await(session.SnapshotAsync(pixels: false)); + SemanticWidget button = Assert.Single(first.Entries, entry => entry.Kind == "Button" && entry.Text == "Increase"); + (float x, float y) = button.Center; + + using var cancelAfterUp = new CancellationTokenSource(); + session.AfterReleaseHookForTests = () => + { + Volatile.Write(ref releaseSeen, true); + cancelAfterUp.Cancel(); + }; + try + { + Task clickTask = session.ClickAsync(x, y, pixels: false, cancelAfterUp.Token); + Assert.Throws(() => Await(clickTask)); + } + finally + { + session.AfterReleaseHookForTests = null; + } + + // By the time TaskCanceledException is observed, at least one frame after the release + // has already been drawn, so the committed click happened before acknowledgement. + Assert.True(Volatile.Read(ref drawnFramesAfterRelease) >= 1); + Assert.Equal(1, count); + } + + [Fact] + public void ANestedPumpInsideDrawOrCanvasPaintCannotEndACaptureOrInjectMidFrame() + { + if (!CanRun) return; + bool painted = false; + using LiveWindow window = LiveWindow.StartLive(ui => + { + if (LiveSession.Active is { } session) + { + session.Kick(); + PumpThreadMessages(); + } + + ui.Heading("Pumping proof", 2); + ui.Canvas("pump-canvas", Size.Px(120), Size.Px(40), (cui, rect) => + { + if (LiveSession.Active is { } live) + { + live.Kick(); + PumpThreadMessages(); + } + + cui.DrawRect(rect, Color.Accent); + cui.MarkReady(); + painted = true; + }); + ui.Button("Below", new ButtonOpts()); + }); + + LiveSnapshot shot = Await(window.Session.SnapshotAsync()); + Assert.True(painted); + Assert.True(shot.Ready); + Assert.Contains(shot.Entries, entry => entry.Kind == "Heading" && entry.Text == "Pumping proof"); + Assert.Contains(shot.Entries, entry => entry.Kind == "Canvas" && entry.Text == "pump-canvas"); + Assert.Contains(shot.Entries, entry => entry.Kind == "Button" && entry.Text == "Below"); + Assert.NotNull(shot.Pixels); + Assert.Contains(shot.Pixels, byteValue => byteValue != 0); + } + + [Fact] + public void DotnetCuiPsAndAttachDriveTheLiveWindowOverNamedPipeAndLeaveItOpenUntilQuit() + { + if (!CanRun) return; + int clicks = 0; + using LiveWindow window = LiveWindow.StartLive(ui => + { + using (ui.Column(new Box { Id = "main", Gap = 8, Pad = 16 })) + { + ui.Heading("Live Pipe App", 1); + ui.Text($"Clicks: {clicks}"); + if (ui.Button("Increment", new ButtonOpts { Variant = ButtonVariant.Primary })) + clicks++; + if (clicks >= 1) ui.MarkReady(); + } + }); + + // 1. `dotnet cui ps --json` discovers the running live window and prunes dead PIDs. + File.WriteAllText( + Path.Combine(window.DiscoveryDir, "stale-dead.json"), + """{"pid":99999999,"pipe":"cui-live-dead","title":"Dead","processPath":"","workingDirectory":"","width":100,"height":100}"""); + + (int exit, string psJson, string err) = RunCli("ps", "--json"); + Assert.Equal(0, exit); + Assert.Equal("", err); + Assert.False(File.Exists(Path.Combine(window.DiscoveryDir, "stale-dead.json"))); + using (JsonDocument doc = JsonDocument.Parse(psJson)) + { + JsonElement item = Assert.Single(doc.RootElement.EnumerateArray()); + Assert.Equal(Environment.ProcessId, item.GetProperty("pid").GetInt32()); + Assert.Equal(window.Session.PipeName, item.GetProperty("pipe").GetString()); + } + + // 2. `dotnet cui tree --attach` reads the live window's tree without closing it. + (exit, string treeBefore, err) = RunCli("tree", "--attach"); + Assert.Equal(0, exit); + Assert.Contains("Heading \"Live Pipe App\"", treeBefore, StringComparison.Ordinal); + Assert.Contains("Text \"Clicks: 0\"", treeBefore, StringComparison.Ordinal); + Assert.False(window.IsClosed); + + // 3. `dotnet cui click Increment -a` clicks the button in the live window and leaves it open. + (exit, string treeAfter, err) = RunCli("click", "Increment", "-a"); + Assert.Equal(0, exit); + Assert.Equal(1, clicks); + Assert.Contains("Text \"Clicks: 1\"", treeAfter, StringComparison.Ordinal); + Assert.False(window.IsClosed); + + // 4. `dotnet cui layout -a --wait ready` verifies readiness and prints the layout tree. + (exit, string layout, err) = RunCli("layout", "-a", "--wait", "ready"); + Assert.Equal(0, exit); + Assert.Contains("Column \"main\"", layout, StringComparison.Ordinal); + Assert.Contains("Button \"Increment\"", layout, StringComparison.Ordinal); + + // 5. `dotnet cui png -a` captures the live window's pixels to a PNG file. + string pngPath = Path.Combine(window.DiscoveryDir, "live-shot.png"); + (exit, string savedPath, err) = RunCli("png", pngPath, "-a"); + Assert.Equal(0, exit); + Assert.True(File.Exists(pngPath)); + Assert.True(new FileInfo(pngPath).Length > 100); + Assert.Contains("live-shot.png", savedPath, StringComparison.Ordinal); + + // 6. `dotnet cui quit -a` closes the live window cleanly. + (exit, _, err) = RunCli("quit", "-a"); + Assert.Equal(0, exit); + Assert.True(window.WaitClosed(TimeSpan.FromSeconds(10))); + } + + private static (int Exit, string Out, string Err) RunCli(params string[] args) + { + var output = new StringWriter(); + var error = new StringWriter(); + int exit = Cli.Run(args, output, error); + return (exit, output.ToString(), error.ToString()); + } + + private static void PumpThreadMessages() + { + while (Interop.Win32.PeekMessage(out Interop.Win32.Msg message, 0, 0, 0, Interop.Win32.PmRemove) != 0) + Interop.Win32.DispatchMessage(in message); + } + + private static nint SpinUntilWindow(LiveWindow window, TimeSpan timeout) + { + var clock = System.Diagnostics.Stopwatch.StartNew(); + while (window.WindowHandle == 0 && clock.Elapsed < timeout) Thread.Sleep(5); + return window.WindowHandle; + } +} diff --git a/src/CuiSharp.Tools/Cli.cs b/src/CuiSharp.Tools/Cli.cs index 0c16fdb..e18b675 100644 --- a/src/CuiSharp.Tools/Cli.cs +++ b/src/CuiSharp.Tools/Cli.cs @@ -3,33 +3,9 @@ namespace CuiSharp.Tools; /// -/// dotnet cui: runs a CuiSharp app with no window and does one thing to it — print the -/// controls of its last frame, screenshot it, click a control, type into it. +/// dotnet cui: drives a CuiSharp app — either headless over stdio or attached to a live +/// window over a local named pipe — and answers offline API/icon catalog queries. /// -/// -/// -/// The app is not simulated: the tool builds it, runs it the way a person would, and speaks the -/// headless protocol the framework serves. What you see is the frame the app really draws, with -/// its own services, its own data and its own bugs. -/// -/// -/// Two commands answer from the API catalog embedded in this assembly — api and -/// icons. They discover no project, build nothing, start no app and load no native -/// library, so they work in any directory, before any app exists. -/// -/// -/// dotnet cui tree # what the first frame drew, nested -/// dotnet cui click Save # click a control, print the frame that reacted -/// dotnet cui type Milk # type into the focused field -/// dotnet cui png shot.png # the frame as a PNG -/// dotnet cui tree --project src/App # another app -/// dotnet cui tree --project app.cs # a file-based app -/// dotnet cui tree --app bin/App.exe # a published build, not a rebuild -/// dotnet cui tree -- --page=2 # arguments for the app itself -/// dotnet cui api ChartOpts # one declaration, offline, from the embedded catalog -/// dotnet cui icons chart # every icon whose name contains "chart" -/// -/// internal static class Cli { private const string Usage = """ @@ -37,6 +13,7 @@ dotnet cui [argument] [options] Commands (what the app understands): tree the controls the last frame drew, nested + layout layout rectangles, observed union bounds and overflow diagnostics find one control: kind, label and rectangle click click a control, then print the frame it produced type type into the focused control, then print the frame @@ -50,8 +27,10 @@ wait [seconds] keep drawing until a frame marks itself ready (ui.MarkReady) waittext keep drawing until a frame draws this text or query faults what the app threw while drawing, if anything png save the last frame as a PNG + quit close a live attached window Commands the tool answers itself: + ps [--json] list running live CuiSharp windows (--live / CUISHARP_LIVE=1) dwell keep the app drawing for that long, then answer with one STATS line: wall and cpu milliseconds, frames, fps, and the app's heap, working-set and private bytes @@ -64,6 +43,9 @@ qualified or nearest names and exits nonzero. Both take --json for machine-readable output; neither builds, launches or loads anything. Options: + -a, --attach [id] drive a running live window (--live) over its named pipe instead + of starting a new headless process; use --attach= when + more than one live window is open -p, --project the app to run: a directory, a .csproj, or a file-based .cs app. Default: here --app run a published build instead of building @@ -82,18 +64,23 @@ before the command is sent. `--wait ready` alone waits and then prints the tree. Anything after `--` goes to the app. """; + private static readonly Lazy EmbeddedCatalog = new(() => + { + try + { + return ApiCatalog.LoadEmbedded(); + } + catch (InvalidDataException broken) + { + throw new ToolException(broken.Message); + } + }); + /// Runs the tool; the return value is the process exit code. internal static int Run(string[] args, TextWriter output, TextWriter error, TextReader? input = null) { try { - // `api` and `icons` come first, before anything touches a project: the question - // they answer ("what is ChartOpts?") is legal in a directory with no app, and the - // answer is the catalog embedded in this assembly — no discovery, no build, no - // child process, no native library. The detection itself reads only argv. - if (TryReadCatalogCommand(args, out CatalogRequest catalog)) - return AnswerCatalog(catalog, output, error); - Options options = Options.Parse(args); if (options.Help) { @@ -101,26 +88,23 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text return args.Length == 0 ? 2 : 0; } + if (options.Command is "api" or "icons") + return AnswerCatalog(options, output, error); - (string host, string[] hostArgs) = options.Host is { } exe - ? (exe, options.AppArgs) - : AppLocator.Resolve(options.Project, options.NoBuild, error, new(Framework: options.Framework)) is { } assembly - ? ("dotnet", [assembly, .. options.AppArgs]) - : throw new ToolException( - $"No app found at \"{options.Project ?? Directory.GetCurrentDirectory()}\": " + - "no .csproj and no file-based .cs app there."); + if (options.Command == "ps") + { + output.WriteLine(LiveClient.FormatList(LiveClient.List(), options.Json)); + return 0; + } - // The app's own output is the app's own business: it goes where a shell would send - // the app's diagnostics, and the protocol on stdout stays clean. - using HeadlessClient client = HeadlessClient.Start( - host, hostArgs, echo: options.Quiet ? null : error.WriteLine); + using HeadlessClient client = options.Attach + ? LiveClient.Connect(options, error) + : StartHeadless(options, error); if (!PassPreconditions(client, options, error)) return 1; if (options.Streaming) return Relay(client, input, output, error); - // dwell is the one command the tool answers itself, and it reads the same in a - // session as it does on the command line: `dotnet cui dwell 3`. if (TryReadDwell(options.Line, out double seconds)) return Dwell(client, output, error, seconds) ? 0 : 1; @@ -141,186 +125,23 @@ internal static int Run(string[] args, TextWriter output, TextWriter error, Text } } - /// - /// The catalog the CLI answers from, read once from this assembly's own resources. - /// A broken or missing resource is a packaging fault, so it says so once and stays said: - /// reaches 's handler, which prints the - /// sentence and exits 1 rather than crashing on a raw . - /// - private static readonly Lazy EmbeddedCatalog = new(() => - { - try - { - return ApiCatalog.LoadEmbedded(); - } - catch (InvalidDataException broken) - { - throw new ToolException(broken.Message); - } - }); - - /// An offline catalog request: which command, what was asked about, and how to print it. - internal sealed record CatalogRequest(string Command, string Term, bool Json, bool Help); - - /// - /// Recognises api <name> and icons [filter] among the raw arguments. - /// The first positional word decides everything: if it is neither command the call falls - /// through to the normal app-driven flow untouched — every flag complaint this scan - /// noticed stays unvoiced, because the ordinary parser owns those arguments and a - /// dash-prefixed --wait-text value is legal there. Only once the command word - /// proves this is a catalog call are a held-back unknown flag or missing value named. - /// App-scoped flags are accepted and ignored so one wrapper script can pass the same - /// flags to every command. -h/--help ask for usage anywhere; a bare - /// help does so only before the command, because after one it is data — the icon - /// filter of `icons help`, the lookup term of `api help`. A value-taking flag consumes - /// exactly the word would consume, dash or not — the scan's - /// position may never diverge from the parser's, or the command word itself lands in the - /// wrong slot — and complains, catalog-only, when that word is really another flag. The one - /// option whose value the parser judges only at the end — --wait, last occurrence - /// wins — is stored rather than checked where it is read, so a value the caller overwrote - /// is not a mistake here either. - /// - internal static bool TryReadCatalogCommand(string[] args, out CatalogRequest request) - { - request = null!; - string? command = null; - var words = new List(); - bool json = false, help = false; - // The first mistake the scan cannot ignore, held in escrow until the command word - // says whether this is even the scan's business: `tree --wait-text -loading` names a - // legal value in the ordinary flow, so the scan may note the oddity and keep walking, - // but it may only speak for `api` and `icons`. - string? complaint = null; - // The wait the parser ends up judging: it takes every occurrence but checks only the - // surviving value, after the whole line, so the scan keeps that same value instead of - // condemning one the line already replaced. - string? wait = null; - - for (int i = 0; i < args.Length; i++) - { - string arg = args[i]; - // Everything after `--` belongs to an app this command never starts. - if (arg == "--") break; - switch (arg) - { - case "-h" or "--help": - help = true; - break; - // A bare `help` means help only until the command is named; after `api` or - // `icons` it is a word like any other, so `icons help` can find CircleHelp. - case "help" when command is null: - help = true; - break; - case "--json": - json = true; - break; - // Flags that mean nothing to a catalog answer but must not derail one: - // a script that appends `-q` or `--no-build` to every cui call stays one script. - case "-q" or "--quiet" or "-s" or "--stdin" or "--no-build": - break; - case "-p" or "--project" or "--app" or "--framework" or "--frames" - or "--wait" or "--wait-text" or "--wait-timeout": - // Consume exactly what the ordinary parser consumes: its Value() takes - // the word after the flag, dash or not, so `--wait-text --app tree` has - // command `tree` there and must have command `tree` here — a scan whose - // position diverges misclassifies the line and answers a catalog error - // for an ordinary app run. When that consumed word is really the next - // flag (`--frames --json` lost its number), note the mistake; the note is - // voiced only for a catalog command. - if (i + 1 >= args.Length) - { - complaint ??= $"{arg} needs a value."; - } - else - { - // A consumed word that is not a legal value — the next flag, or a - // `--wait-timeout abc` the parser would refuse — is the same class - // of catalog-only complaint: checked with the parser's own validators - // so the sentence matches what it would say for an ordinary command. - string value = args[i + 1]; - // `--wait` is the one option the parser does not judge where it reads - // it: each occurrence overwrites the last and only the surviving value - // is checked, after the line. Keep that value and check it below, so a - // word the caller already replaced is not a mistake here either. - if (arg == "--wait") wait = value; - else complaint ??= value.StartsWith('-') - ? $"{arg} needs a value." - : ValueComplaint(arg, value); - i++; - } - break; - default: - if (arg.StartsWith('-')) - { - // Likewise escrowed: for a non-catalog command the ordinary parser - // is the one that calls this unknown, in its own words. - complaint ??= $"Unknown option \"{arg}\". Use `--` to pass it to the app."; - break; - } - - if (command is null) command = arg; - else words.Add(arg); - break; - } - } - - if (command is not ("api" or "icons")) return false; - // Judged where the parser judges it — after the line, on the surviving value — and - // after whatever the loop itself already found, which is the parser's own precedence. - if (wait is { } kind && !kind.Equals("ready", StringComparison.OrdinalIgnoreCase)) - complaint ??= $"--wait needs \"ready\", not \"{kind}\"."; - if (complaint is { } mistake) throw new ToolException(mistake); - request = new CatalogRequest(command, string.Join(' ', words), json, help); - return true; - } - - /// - /// Why the ordinary parser would refuse this value, in its own words, by calling its own - /// validators — or null when it would take it. The catalog scan owns no second grammar of - /// numbers; it borrows this one. --wait is absent on purpose: the parser checks its - /// kind after the whole line, on the last value, which is where the scan checks it too. - /// - private static string? ValueComplaint(string option, string value) => option switch - { - "--frames" => Check(() => Options.ParseFrames(value)), - "--wait-timeout" => Check(() => Options.ParseWaitTimeout(value)), - _ => null, - }; - - /// - /// Runs one of the parser's validators, turning its refusal into the complaint text — - /// the scan borrows the parser's grammar wholesale, wording included. - /// - private static string? Check(Func validator) + private static HeadlessClient StartHeadless(Options options, TextWriter error) { - try - { - validator(); - return null; - } - catch (ToolException problem) - { - return problem.Message; - } + (string host, string[] hostArgs) = options.Host is { } exe + ? (exe, options.AppArgs) + : AppLocator.Resolve(options.Project, options.NoBuild, error, new(Framework: options.Framework)) is { } assembly + ? ("dotnet", [assembly, .. options.AppArgs]) + : throw new ToolException( + $"No app found at \"{options.Project ?? Directory.GetCurrentDirectory()}\": " + + "no .csproj and no file-based .cs app there."); + + return HeadlessClient.Start( + host, hostArgs, echo: options.Quiet ? null : error.WriteLine); } - /// - /// Answers a catalog request from the embedded JSON. The answer is the payload and always - /// goes to stdout — including an unknown or ambiguous one, whose lines are the explanation; - /// the exit code is the signal, so a script never has to merge streams to read a failure. - /// Exact answers exit 0; a filter that hit nothing and a name that is not there exit 1; - /// an api with no term is a usage error and exits 2, the code this CLI already - /// spends on "you asked for nothing". - /// - private static int AnswerCatalog(CatalogRequest request, TextWriter output, TextWriter error) + private static int AnswerCatalog(Options options, TextWriter output, TextWriter error) { - if (request.Help) - { - output.WriteLine(Usage); - return 0; - } - - if (request.Command == "api" && request.Term.Length == 0) + if (options.Command == "api" && options.Argument.Length == 0) { error.WriteLine( "`api` needs a name to look up: `dotnet cui api ChartOpts`, `dotnet cui api Ui.LineChart`, " @@ -329,21 +150,17 @@ private static int AnswerCatalog(CatalogRequest request, TextWriter output, Text } ApiCatalog catalog = EmbeddedCatalog.Value; - CatalogResult answer = request.Command == "icons" - ? catalog.IconsResult(request.Term.Length == 0 ? null : request.Term) - : catalog.Query(request.Term); + CatalogResult answer = options.Command == "icons" + ? catalog.IconsResult(options.Argument.Length == 0 ? null : options.Argument) + : catalog.Query(options.Argument); - output.WriteLine(request.Json ? answer.RenderJson() : answer.Render()); + output.WriteLine(options.Json ? answer.RenderJson() : answer.Render()); return answer.IsExact ? 0 : 1; } /// /// Draws and waits through everything that must be true before the command runs: the - /// --frames draw, then the wait gate. A refused precondition is a real answer with a - /// real reason, and it ends the run — the command, the gate behind it, and a whole relayed - /// session would otherwise act on frames the app never drew, and a tool that reads an error - /// and carries on can finish a lie with exit 0. Internal so a fake server can prove the - /// stop without an app to refuse. + /// --frames draw, then the wait gate. /// internal static bool PassPreconditions(HeadlessClient client, Options options, TextWriter error) { @@ -357,11 +174,6 @@ internal static bool PassPreconditions(HeadlessClient client, Options options, T } } - // A wait is a precondition, like --frames, not the command: the app must reach the - // state before the command acts on it. A miss ends the run with exit=1 and the command - // is never sent; a satisfied wait stays out of the way — its payload is discarded - // because the command's own answer is the payload. In a --stdin session the gate passes - // first, before any line is relayed. if (options.WaitLine is { } gate) { Answer waited = Ask(client, gate); @@ -375,24 +187,21 @@ internal static bool PassPreconditions(HeadlessClient client, Options options, T return true; } - /// - /// Feeds commands from stdin to one app process, so a session of ten commands pays for one - /// startup instead of ten. Answers go to stdout in order. Internal so a fake server can - /// stand behind the session and show a relayed wait gets the deadline its grammar asks for. - /// + /// Feeds commands from stdin to one app session and prints each answer in order. internal static int Relay(HeadlessClient client, TextReader? input, TextWriter output, TextWriter error) { TextReader source = input ?? Console.In; while (source.ReadLine() is { } line) { - if (line.Trim().Length == 0) continue; - if (TryReadDwell(line.Trim(), out double seconds)) + string trimmed = line.Trim(); + if (trimmed.Length == 0) continue; + if (TryReadDwell(trimmed, out double seconds)) { if (!Dwell(client, output, error, seconds)) return 1; continue; } - Answer answer = Ask(client, line.Trim()); + Answer answer = Ask(client, trimmed); if (!answer.Ok) { error.WriteLine(answer.Payload); @@ -405,36 +214,21 @@ internal static int Relay(HeadlessClient client, TextReader? input, TextWriter o return 0; } - /// - /// Recognises dwell 3 — the one command the tool answers itself. Parsing is a - /// separate method so the grammar is testable without an app to dwell in. - /// + /// Recognises dwell 3 — the one command the tool answers itself. internal static bool TryReadDwell(string line, out double seconds) { seconds = 0; - // The char array is written out because StringSplitOptions is an enum with an int - // base: `Split(' ', '\t', options)` would bind to Split(char, int, options) and turn - // the options into a maximum count. string[] parts = line.Split([' ', '\t'], StringSplitOptions.RemoveEmptyEntries); if (parts.Length != 2 || parts[0] != "dwell") return false; if (!double.TryParse(parts[1], NumberStyles.Float, CultureInfo.InvariantCulture, out seconds)) throw new ToolException($"dwell needs a number of seconds, not \"{parts[1]}\"."); - // A dwell of zero or less measures nothing, and Infinity or NaN — which TryParse accepts — - // would either spin forever or end the walk's table with a row of zeros. Both are typos. if (!double.IsFinite(seconds) || seconds <= 0) throw new ToolException($"dwell needs a positive number of seconds, not \"{parts[1]}\"."); return true; } - /// - /// Holds a page on screen for a while with the app really drawing: idle, the app only waits - /// for the next command, so a dwell that sent nothing would measure a sleeping process. It - /// ticks pulse until the window is through — pulse draws without printing the tree, - /// so the measurement does not pay for serialising the very interface it is measuring — and - /// answers with what the process burned between the first sample and the last. - /// private static bool Dwell(HeadlessClient client, TextWriter output, TextWriter error, double seconds) { const int perPulse = 240; @@ -452,7 +246,6 @@ private static bool Dwell(HeadlessClient client, TextWriter output, TextWriter e } frames += perPulse; - // The pulse carries the app's own view of its managed heap: "240 heap 458752". int at = answer.Payload.IndexOf("heap ", StringComparison.Ordinal); if (at >= 0 && long.TryParse(answer.Payload[(at + 5)..].Trim(), out long bytes)) heap = bytes; } @@ -472,34 +265,18 @@ private static bool Dwell(HeadlessClient client, TextWriter output, TextWriter e return true; } - /// - /// Room on top of a wait command's own timeout before the client stops listening: the wait - /// answers within its timeout, and the slack covers the real frames drawn around it. - /// private static readonly TimeSpan WaitAnswerSlack = TimeSpan.FromSeconds(30); - /// - /// Sends one command with the answer deadline its own grammar asks for. A direct - /// wait 60 answers no later than its sixty seconds, and a client fixed at the - /// default deadline would give up on an app that is answering exactly as promised. - /// private static Answer Ask(HeadlessClient client, string line) => client.Send(line, answerTimeout: AnswerTimeoutFor(line)); - /// - /// The answer deadline a command line needs, or null for the default. Only wait and - /// waittext wait on something, and only their first timeout token is read — the query - /// after it is user text and never a number. A malformed or impossible wait gets the - /// default, because the app answers one immediately, with the reason. - /// + /// The answer deadline a command line needs, or null for the default. internal static TimeSpan? AnswerTimeoutFor(string line) { string[] words = line.Split([' ', '\t'], StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); string? token = words.Length > 0 ? words[0].ToLowerInvariant() switch { - // `wait` alone takes the app's own default window, which the default covers; a - // `waittext` without a query is answered with its usage immediately. "wait" => words.Length > 1 ? words[1] : "", "waittext" => words.Length > 2 ? words[1] : null, _ => null, @@ -516,10 +293,7 @@ private static Answer Ask(HeadlessClient client, string line) => return TimeSpan.FromSeconds(seconds) + WaitAnswerSlack; } - /// - /// What the tool was asked for. Parsing is separate from running so that flag handling is - /// testable without spawning a process. - /// + /// Parsed command-line options for dotnet cui. internal sealed record Options { internal string Command { get; init; } = ""; @@ -532,67 +306,67 @@ internal sealed record Options internal bool Help { get; init; } - /// Read commands from stdin instead of taking one from the arguments. + internal bool Json { get; init; } + + internal bool Attach { get; init; } + + internal string? AttachTarget { get; init; } + internal bool Streaming { get; init; } - /// Reuse the newest build instead of building. internal bool NoBuild { get; init; } - /// The project to build, when the app was not given as an executable. internal string? Project { get; init; } - /// The executable to run, instead of building. internal string? Host { get; init; } - /// The target framework, when the project targets more than one. internal string? Framework { get; init; } - /// Arguments for the app itself, from after --. internal string[] AppArgs { get; init; } = []; - /// The line the app receives: its command and the argument. internal string Line => Argument.Length == 0 ? Command : $"{Command} {Argument}"; - /// The wait window the caller asked for, in seconds; 0 when nothing waits. internal double WaitSeconds { get; init; } - /// - /// The gate line sent to the app before the command, or null when nothing waits. A wait - /// is a precondition like , never the command itself: the command - /// keeps and its answer keeps the payload. - /// internal string? WaitLine { get; init; } - /// The window a wait gets when no --wait-timeout narrows it, in seconds. internal const double DefaultWaitSeconds = 10; - /// - /// The longest wait the tool will set. A wait bounds the client's answer deadline - /// downstream, and a number near would overflow it; a - /// wait measured in hours is not a wait, it is a hung app with extra steps. - /// internal const double MaxWaitSeconds = 3600; internal static Options Parse(string[] args) { if (args.Length == 0) return new Options { Help = true }; - string? project = null, host = null, framework = null; + string? project = null, host = null, framework = null, attachTarget = null; string? wait = null, waitText = null; double? waitTimeout = null; var appArgs = new List(); var words = new List(); int frames = 0; - bool quiet = false, help = false, streaming = false, noBuild = false; + bool quiet = false, help = false, streaming = false, noBuild = false, json = false, attach = false; for (int i = 0; i < args.Length; i++) { string arg = args[i]; switch (arg) { - case "-h" or "--help" or "help": + case "-h" or "--help": help = true; break; + case "help" when words.Count == 0: + help = true; + break; + case "--json": + json = true; + break; + case "-a" or "--attach": + attach = true; + break; + case "-t" or "--target": + attach = true; + attachTarget = Value(args, ref i); + break; case "-p" or "--project": project = Value(args, ref i); break; @@ -628,8 +402,15 @@ internal static Options Parse(string[] args) i = args.Length; break; default: - // An unknown long option is a mistake, not a command: say so rather than - // sending it to the app, which would answer "unknown command". + if (arg.StartsWith("--attach=", StringComparison.Ordinal)) + { + string value = arg["--attach=".Length..].Trim(); + if (value.Length == 0) throw new ToolException("--attach needs a target."); + attach = true; + attachTarget = value; + break; + } + if (arg.StartsWith("--", StringComparison.Ordinal) || arg.StartsWith('-')) throw new ToolException($"Unknown option \"{arg}\". Use `--` to pass it to the app."); words.Add(arg); @@ -637,9 +418,6 @@ internal static Options Parse(string[] args) } } - // A wait is a precondition, so it composes with any command instead of replacing - // one. The gate line carries an explicit timeout and the query verbatim after it, - // so text with spaces, unicode or a numeric tail reaches the app exactly as typed. bool waiting = wait is not null || waitText is not null; if (wait is not null && !wait.Equals("ready", StringComparison.OrdinalIgnoreCase)) throw new ToolException($"--wait needs \"ready\", not \"{wait}\"."); @@ -656,22 +434,27 @@ internal static Options Parse(string[] args) waitLine = waitText is not null ? $"waittext {seconds} {waitText}" : $"wait {seconds}"; } - // A wait with no command still has to answer with something: the tree the wait - // waited for is the smallest honest payload. string command = words.Count > 0 ? words[0] : waiting && !streaming ? "tree" : ""; string argument = words.Count > 1 ? string.Join(' ', words.Skip(1)) : ""; + bool showHelp = help || (words.Count == 0 && !streaming && !waiting); + if (json && !showHelp && command is not ("api" or "icons" or "ps")) + throw new ToolException("Unknown option \"--json\". Only `api`, `icons`, and `ps` support --json."); + return new Options { Command = command, Argument = argument, Frames = frames, Quiet = quiet, + Json = json, + Attach = attach, + AttachTarget = attachTarget, Streaming = streaming, NoBuild = noBuild, - Help = help || (words.Count == 0 && !streaming && !waiting), + Help = showHelp, Project = project, Host = host, Framework = framework, @@ -681,11 +464,6 @@ internal static Options Parse(string[] args) }; } - /// - /// A frame count the app can draw. A bare int.Parse threw FormatException and - /// OverflowException at the user for a typo that deserves a sentence, and a negative - /// count drew nothing while claiming otherwise. - /// internal static int ParseFrames(string value) { if (!int.TryParse(value, NumberStyles.None, CultureInfo.InvariantCulture, out int frames) || frames < 0) @@ -694,11 +472,6 @@ internal static int ParseFrames(string value) return frames; } - /// - /// A wait window the tool can honour. TryParse accepts NaN and Infinity, and neither is - /// a bound anyone could wait by; the ceiling keeps the deadline arithmetic downstream - /// finite. Every typo here is an exit=1, not a crash. - /// internal static double ParseWaitTimeout(string value) { if (!double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) @@ -713,8 +486,13 @@ internal static double ParseWaitTimeout(string value) private static string Value(string[] args, ref int index) { - if (index + 1 >= args.Length) throw new ToolException($"{args[index]} needs a value."); + if (index + 1 >= args.Length || IsFlagToken(args[index + 1])) + throw new ToolException($"{args[index]} needs a value."); return args[++index]; } + + private static bool IsFlagToken(string token) => + token.StartsWith("--", StringComparison.Ordinal) + || token is "-h" or "-q" or "-s" or "-p" or "-a" or "-t"; } } diff --git a/src/CuiSharp.Tools/HeadlessClient.cs b/src/CuiSharp.Tools/HeadlessClient.cs index 8f1e2e8..e6f70af 100644 --- a/src/CuiSharp.Tools/HeadlessClient.cs +++ b/src/CuiSharp.Tools/HeadlessClient.cs @@ -36,17 +36,19 @@ internal sealed class HeadlessClient : IDisposable internal const int MaxLineBytes = 4096; private readonly Process? _process; + private readonly bool _ownsProcess; private readonly Stream _out; private readonly Stream _in; private readonly TailBuffer _errors = new(); - private HeadlessClient(Process? process, Stream output, Stream input, Action? echo) + private HeadlessClient(Process? process, bool ownsProcess, Stream output, Stream input, Action? echo) { Noise = echo; _process = process; + _ownsProcess = ownsProcess; _out = output; _in = input; - if (process is null) return; + if (process is null || !ownsProcess) return; process.ErrorDataReceived += (_, e) => { @@ -107,6 +109,7 @@ internal static HeadlessClient Start( Process process = Process.Start(info) ?? throw new ToolException($"Could not start {host}."); var client = new HeadlessClient( process, + ownsProcess: true, process.StandardOutput.BaseStream, process.StandardInput.BaseStream, echo); @@ -124,7 +127,7 @@ internal static HeadlessClient Start( /// /// A client over streams instead of a child process: what the protocol's own tests speak, and - /// what an embedder driving a channel of its own can use. + /// what an embedder or live named-pipe session uses. /// internal static HeadlessClient Attach( Stream output, @@ -132,9 +135,10 @@ internal static HeadlessClient Attach( Action? echo = null, TimeSpan? readyTimeout = null, TimeSpan? answerTimeout = null, + Process? process = null, CancellationToken cancellation = default) { - var client = new HeadlessClient(null, output, input, echo) + var client = new HeadlessClient(process, ownsProcess: false, output, input, echo) { ReadyTimeout = readyTimeout ?? TimeSpan.FromSeconds(60), AnswerTimeout = answerTimeout ?? TimeSpan.FromMinutes(1), @@ -379,9 +383,10 @@ private string Tail() /// public void Dispose() { - if (_process is not { } process) + if (_process is not { } process || !_ownsProcess) { _out.Dispose(); + _process?.Dispose(); return; } diff --git a/src/CuiSharp.Tools/LiveClient.cs b/src/CuiSharp.Tools/LiveClient.cs new file mode 100644 index 0000000..89fd547 --- /dev/null +++ b/src/CuiSharp.Tools/LiveClient.cs @@ -0,0 +1,296 @@ +using System.Diagnostics; +using System.Globalization; +using System.IO.Pipes; +using System.Text; +using System.Text.Json; + +namespace CuiSharp.Tools; + +/// +/// Discovers and connects to running CuiSharp windows that enabled live attach +/// (--live, CUISHARP_LIVE=1, or CuiAppOptions.LiveAttach). +/// +internal static class LiveClient +{ + internal const string DirectoryEnvironmentVariable = "CUISHARP_LIVE_DIR"; + + /// One running CuiSharp window advertising a live named-pipe session. + internal sealed record LiveTarget( + int Pid, + string Pipe, + string Title, + string ProcessPath, + string WorkingDirectory, + int Width, + int Height); + + /// Where live sessions write their discovery records on this machine. + internal static string GetDiscoveryDirectory() + { + string? custom = Environment.GetEnvironmentVariable(DirectoryEnvironmentVariable); + return !string.IsNullOrWhiteSpace(custom) + ? Path.GetFullPath(custom) + : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "cuisharp", "live"); + } + + /// Lists all live CuiSharp windows currently running, pruning stale entries whose processes exited. + internal static IReadOnlyList List() + { + string directory = GetDiscoveryDirectory(); + if (!Directory.Exists(directory)) return []; + + string[] files; + try + { + files = Directory.GetFiles(directory, "*.json"); + } + catch (Exception error) when (error is IOException or UnauthorizedAccessException) + { + return []; + } + + var targets = new List(files.Length); + foreach (string file in files) + { + LiveTarget? target = TryReadTarget(file); + if (target is null) continue; + if (!IsProcessAlive(target.Pid)) + { + TryDelete(file); + continue; + } + + targets.Add(target); + } + + targets.Sort(static (a, b) => a.Pid.CompareTo(b.Pid)); + return targets; + } + + /// Resolves which running live window to attach to, refusing to guess when more than one matches. + internal static LiveTarget Resolve(string? target, string? project) + { + IReadOnlyList running = List(); + if (running.Count == 0) + { + throw new ToolException( + "No live CuiSharp window is running. Start the app with `--live` or `CUISHARP_LIVE=1` first."); + } + + if (!string.IsNullOrWhiteSpace(target)) + { + string wanted = target.Trim(); + if (int.TryParse(wanted, NumberStyles.None, CultureInfo.InvariantCulture, out int pid)) + { + LiveTarget? byPid = running.FirstOrDefault(t => t.Pid == pid); + if (byPid is not null) return byPid; + } + + LiveTarget[] matches = + [ + .. running.Where(t => + t.Pipe.Equals(wanted, StringComparison.OrdinalIgnoreCase) + || t.Title.Contains(wanted, StringComparison.OrdinalIgnoreCase) + || t.ProcessPath.Contains(wanted, StringComparison.OrdinalIgnoreCase) + || t.WorkingDirectory.Contains(wanted, StringComparison.OrdinalIgnoreCase)), + ]; + + if (matches.Length == 1) return matches[0]; + if (matches.Length == 0) + { + throw new ToolException( + $"No live window matches \"{wanted}\". Running:{Environment.NewLine}{FormatList(running, json: false)}"); + } + + throw new ToolException( + $"More than one live window matches \"{wanted}\":{Environment.NewLine}{FormatList(matches, json: false)}{Environment.NewLine}" + + "Choose one with `--attach=`."); + } + + if (project is not null) + { + string fullProject = Path.GetFullPath(project); + string folder = File.Exists(fullProject) + ? Path.GetDirectoryName(fullProject) ?? fullProject + : fullProject; + string name = Path.GetFileNameWithoutExtension(fullProject); + LiveTarget[] byProject = + [ + .. running.Where(t => + PathEqualsOrUnder(t.WorkingDirectory, folder) + || PathEqualsOrUnder(t.ProcessPath, folder) + || (name.Length > 0 && Path.GetFileNameWithoutExtension(t.ProcessPath).Equals(name, StringComparison.OrdinalIgnoreCase))), + ]; + + if (byProject.Length == 1) return byProject[0]; + if (byProject.Length == 0) + { + throw new ToolException( + $"No live window matches `{project}`. Running:{Environment.NewLine}{FormatList(running, json: false)}"); + } + + throw new ToolException( + $"More than one live window matches `{project}`:{Environment.NewLine}{FormatList(byProject, json: false)}{Environment.NewLine}" + + "Choose one with `--attach=`."); + } + + if (running.Count == 1) return running[0]; + + string cwd = Directory.GetCurrentDirectory(); + LiveTarget[] inCwd = [.. running.Where(t => PathEqualsOrUnder(t.WorkingDirectory, cwd))]; + if (inCwd.Length == 1) return inCwd[0]; + + throw new ToolException( + $"More than one live CuiSharp window is running:{Environment.NewLine}{FormatList(running, json: false)}{Environment.NewLine}" + + "Choose one with `--attach=` or `--attach=`."); + } + + /// <summary>Connects a <see cref="HeadlessClient"/> to the resolved live window's named pipe.</summary> + internal static HeadlessClient Connect(Cli.Options options, TextWriter error) + { + LiveTarget target = Resolve(options.AttachTarget, options.Project); + var pipe = new NamedPipeClientStream(".", target.Pipe, PipeDirection.InOut, PipeOptions.Asynchronous); + try + { + pipe.Connect(timeout: 5000); + Process? process = TryGetProcess(target.Pid); + return HeadlessClient.Attach( + pipe, + pipe, + echo: options.Quiet ? null : error.WriteLine, + process: process); + } + catch (TimeoutException) + { + pipe.Dispose(); + throw new ToolException( + $"Could not connect to live window {target.Pid} (\"{target.Title}\") on pipe `{target.Pipe}` within 5s."); + } + catch + { + pipe.Dispose(); + throw; + } + } + + /// <summary>Renders the running live windows as text or machine-readable JSON.</summary> + internal static string FormatList(IReadOnlyList<LiveTarget> targets, bool json) + { + if (json) + { + using var stream = new MemoryStream(); + using (var writer = new Utf8JsonWriter(stream)) + { + writer.WriteStartArray(); + foreach (LiveTarget target in targets) + { + writer.WriteStartObject(); + writer.WriteNumber("pid", target.Pid); + writer.WriteString("pipe", target.Pipe); + writer.WriteString("title", target.Title); + writer.WriteString("processPath", target.ProcessPath); + writer.WriteString("workingDirectory", target.WorkingDirectory); + writer.WriteNumber("width", target.Width); + writer.WriteNumber("height", target.Height); + writer.WriteEndObject(); + } + + writer.WriteEndArray(); + } + + return Encoding.UTF8.GetString(stream.ToArray()); + } + + if (targets.Count == 0) return "No live CuiSharp windows."; + + var sb = new StringBuilder(); + for (int i = 0; i < targets.Count; i++) + { + if (i > 0) sb.Append('\n'); + LiveTarget t = targets[i]; + sb.Append(CultureInfo.InvariantCulture, $"{t.Pid} \"{t.Title}\" {t.Width}x{t.Height} {t.WorkingDirectory}"); + } + + return sb.ToString(); + } + + private static bool PathEqualsOrUnder(string candidate, string directory) + { + if (string.IsNullOrEmpty(candidate) || string.IsNullOrEmpty(directory)) return false; + try + { + string fullCandidate = Path.GetFullPath(candidate).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + string fullDir = Path.GetFullPath(directory).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + StringComparison cmp = OperatingSystem.IsWindows() ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal; + return fullCandidate.Equals(fullDir, cmp) + || fullCandidate.StartsWith(fullDir + Path.DirectorySeparatorChar, cmp); + } + catch (Exception) + { + return false; + } + } + + private static LiveTarget? TryReadTarget(string file) + { + try + { + byte[] bytes = File.ReadAllBytes(file); + using JsonDocument doc = JsonDocument.Parse(bytes); + JsonElement root = doc.RootElement; + if (root.ValueKind != JsonValueKind.Object) return null; + if (!root.TryGetProperty("pid", out JsonElement pidEl) || !pidEl.TryGetInt32(out int pid)) return null; + if (!root.TryGetProperty("pipe", out JsonElement pipeEl) || pipeEl.GetString() is not { Length: > 0 } pipe) return null; + + string title = root.TryGetProperty("title", out JsonElement titleEl) ? titleEl.GetString() ?? "" : ""; + string processPath = root.TryGetProperty("processPath", out JsonElement pathEl) ? pathEl.GetString() ?? "" : ""; + string cwd = root.TryGetProperty("workingDirectory", out JsonElement cwdEl) ? cwdEl.GetString() ?? "" : ""; + int width = root.TryGetProperty("width", out JsonElement wEl) && wEl.TryGetInt32(out int w) ? w : 0; + int height = root.TryGetProperty("height", out JsonElement hEl) && hEl.TryGetInt32(out int h) ? h : 0; + return new LiveTarget(pid, pipe, title, processPath, cwd, width, height); + } + catch (Exception) + { + return null; + } + } + + private static bool IsProcessAlive(int pid) + { + try + { + using Process process = Process.GetProcessById(pid); + return !process.HasExited; + } + catch (Exception) + { + return false; + } + } + + private static Process? TryGetProcess(int pid) + { + try + { + Process process = Process.GetProcessById(pid); + if (!process.HasExited) return process; + process.Dispose(); + return null; + } + catch (Exception) + { + return null; + } + } + + private static void TryDelete(string file) + { + try + { + File.Delete(file); + } + catch (IOException) + { + } + } +} diff --git a/src/CuiSharp/CuiApp.cs b/src/CuiSharp/CuiApp.cs index 460b1fc..fcc3301 100644 --- a/src/CuiSharp/CuiApp.cs +++ b/src/CuiSharp/CuiApp.cs @@ -60,6 +60,14 @@ public sealed record CuiAppOptions /// here. /// </summary> public Action<CuiWindow>? WindowCreated { get; set; } + + /// <summary> + /// Let a tool on the same machine drive this window while a human watches it + /// (<see cref="Hosting.LiveSession"/>). Off by default and never automatic: an app is only + /// driven when it says so here, or with <c>CUISHARP_LIVE=1</c> / <c>--live</c>. Windows-only + /// for now; asking for it elsewhere fails rather than silently doing nothing. + /// </summary> + public bool LiveAttach { get; set; } } /// <summary> @@ -243,6 +251,17 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) if (Features.Headless && Hosting.HeadlessLoop.Requested(args)) return Hosting.HeadlessLoop.Run(draw, options); + // Live attach is opt-in three ways and platform-honest: a Windows-first hook, so any + // other platform that was asked for it fails here instead of showing a window no tool + // can reach. + bool live = Features.Live && (options.LiveAttach || Hosting.LiveSession.Requested(args)); + if (live && !OperatingSystem.IsWindows()) + { + throw new NotSupportedException( + "Live attach is Windows-only for now: no other backend has a proven way to wake CUI's " + + "idle loop or run work at its frame boundaries. Run without live attach on this platform."); + } + // CUI owns the loop here on purpose. `cui_app_run` registers a frame // callback, and that is the callback the OS-driven resize loop invokes: // while the user drags a window border, Windows runs a modal message loop @@ -252,6 +271,14 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) // the caller's loop that is blocked, so the plan's rule is that a real // window runs through Run. var state = new RunState(options, draw); + if (live) + { + // The message window belongs to the thread that runs cui_app_run, so it is created + // here, on the thread about to enter the loop — and a live request that cannot build + // its channel fails here, before any window shows, instead of running undriven. + state.Live = new Hosting.LiveSession(options, state.Frame); + } + GCHandle handle = GCHandle.Alloc(state); try { @@ -283,6 +310,7 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) } finally { + state.Live?.Dispose(); LiveResize.Uninstall(state.WindowHandle); state.Window?.Release(); handle.Free(); @@ -297,21 +325,28 @@ private sealed class RunState(CuiAppOptions options, DrawFn draw) internal readonly UiFrameState Frame = new(); internal nint WindowHandle; internal CuiWindow? Window; + internal Hosting.LiveSession? Live; /// <summary> /// Publishes the window on the first frame. The app loop keeps its <c>cui_app*</c> private, /// so this is where it comes back: the window it made carries that pointer as its user data. /// </summary> - internal void Hooking() + internal void Hooking(nint ui) { if (Window is not null || !OperatingSystem.IsWindows()) return; nint app = Win32.AppOf(Win32.FindCuiWindow()); - if (app == 0) return; + if (app == 0) + { + if (Live is not null) + throw new InvalidOperationException("Live attach could not recover the native CUI window on the UI thread."); + return; + } WindowHandle = Native.AppNativeWindow(app); Window = new CuiWindow(app) { FileDialog = Options.FileDialog }; LiveResize.Install(WindowHandle, Options.NoVsync); Options.WindowCreated?.Invoke(Window); + Live?.Bind(app, ui, WindowHandle); } } @@ -324,14 +359,24 @@ private static void RunThunk(nint ui, void* user) var state = (RunState)GCHandle.FromIntPtr((nint)user).Target!; // The window exists before the first frame draws: hand it over, and make resizing fast. - state.Hooking(); + state.Hooking(ui); // The previous frame has been presented by now, so its painters and the // arena that holds this frame's argument strings can be reused. state.Frame.Reset(); Utf8.BeginFrame(); state.Frame.SyncLocalization(ui); - state.Draw(new Ui(ui, state.Frame)); + state.Live?.EnterFrame(); + try + { + state.Draw(new Ui(ui, state.Frame)); + } + finally + { + // A live capture is reading this frame's labels out of the arena the line above will + // reset on the next callback, so its copies are taken now, before that happens. + state.Live?.SealFrame(); + } } private static NativeAppDesc Describe(CuiAppOptions options) => new() diff --git a/src/CuiSharp/Hosting/HeadlessLoop.cs b/src/CuiSharp/Hosting/HeadlessLoop.cs index 6bf1304..bca2fa8 100644 --- a/src/CuiSharp/Hosting/HeadlessLoop.cs +++ b/src/CuiSharp/Hosting/HeadlessLoop.cs @@ -222,13 +222,13 @@ private static string Pulse(HeadlessApp app, string argument) } /// <summary>The window a wait gets when its command does not name one, in seconds.</summary> - private const double DefaultWaitSeconds = 10; + internal const double DefaultWaitSeconds = 10; /// <summary> /// The longest wait this protocol serves. A wait binds the answer deadline of the client on /// the other end, so the trust boundary needs a ceiling as well as a floor. /// </summary> - private const double MaxWaitSeconds = 3600; + internal const double MaxWaitSeconds = 3600; /// <summary> /// Draws real frames until one marks itself ready (<c>ui.MarkReady</c>). The answer is the @@ -282,7 +282,7 @@ private static string WaitText(HeadlessApp app, string argument) /// A wait window in seconds. <c>TryParse</c> accepts NaN and Infinity, and neither bounds a /// wait anyone could observe, so only finite positive numbers up to the ceiling pass. /// </summary> - private static double ParseWaitSeconds(string token) + internal static double ParseWaitSeconds(string token) { if (!double.TryParse(token, NumberStyles.Float, CultureInfo.InvariantCulture, out double seconds) || !double.IsFinite(seconds) || seconds <= 0 || seconds > MaxWaitSeconds) @@ -313,7 +313,7 @@ private static string Click(HeadlessApp app, string argument) /// </summary> private static readonly Key[] Keys = Enum.GetValues<Key>(); - private static Key ParseKey(string argument) + internal static Key ParseKey(string argument) { string wanted = argument.Trim(); foreach (Key key in Keys) diff --git a/src/CuiSharp/Hosting/LiveResize.cs b/src/CuiSharp/Hosting/LiveResize.cs index d1dba97..c9e098e 100644 --- a/src/CuiSharp/Hosting/LiveResize.cs +++ b/src/CuiSharp/Hosting/LiveResize.cs @@ -87,6 +87,10 @@ internal static void Uninstall(nint hwnd) if (Win32.IsWindow(hwnd) != 0) Win32.UnhookWindowProc(hwnd, hook.Previous); } + /// <summary>True while the OS modal size/move drag loop is running for <paramref name="hwnd"/>.</summary> + internal static bool IsResizing(nint hwnd) => + hwnd != 0 && Installed.TryGetValue(hwnd, out Hook? hook) && hook.InSizeMove; + [UnmanagedCallersOnly(CallConvs = [typeof(CallConvStdcall)])] private static nint Proc(nint hwnd, uint message, nint wparam, nint lparam) { @@ -111,8 +115,13 @@ private static nint Proc(nint hwnd, uint message, nint wparam, nint lparam) hook.SizeChanged = true; break; + case Win32.WmDestroy: + LiveSession.Active?.OnWindowDestroying(hwnd); + break; + case Win32.WmNcDestroy: // The window is going away: stop holding its procedure, then let CUI clean up. + LiveSession.Active?.OnWindowDestroying(hwnd); Installed.Remove(hwnd); break; } diff --git a/src/CuiSharp/Hosting/LiveSession.cs b/src/CuiSharp/Hosting/LiveSession.cs new file mode 100644 index 0000000..21fb9c7 --- /dev/null +++ b/src/CuiSharp/Hosting/LiveSession.cs @@ -0,0 +1,1162 @@ +// Hand-written, not generated. Live attach: a tool on the same machine drives the window a human +// is looking at, without taking the loop from CUI. The whole design hangs on one fact: on Windows +// CUI pumps messages inside cui__plat_wait, between presenting a completed frame and beginning the +// next one (native/CUI/src/platform/cui_app_win32.c). A message-only window on that thread gives +// managed code a safe point per frame — after cui_end_frame, before cui__app_begin — and every +// input injection, capture end and boundary screenshot runs there. CUI keeps its frame boundaries; +// CuiSharp never calls cui_begin_frame or cui_end_frame on this path. +using System.Diagnostics; +using System.Globalization; +using System.IO.Pipes; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Text; +using System.Text.Json; +using CuiSharp.Interop; + +namespace CuiSharp.Hosting; + +/// <summary> +/// A driven window: commands arrive from another thread or over a local named pipe, run as +/// multi-frame state machines on the window thread at CUI's own frame boundaries, and answer with +/// the frame that reacted. +/// </summary> +internal sealed class LiveSession : IDisposable +{ + /// <summary>Active session and generation as one published value, so readers never pair one with the other's stale half.</summary> + private sealed record Published(long Generation, LiveSession? Session); + + private static readonly Lock StaticGate = new(); + private static Published _published = new(0, null); + + /// <summary>The session of the window this process is showing, or null when nothing is driven.</summary> + internal static LiveSession? Active => Volatile.Read(ref _published).Session; + + /// <summary>Counts publishes (bind and dispose), so a watcher can tell a fresh session from the one it closed.</summary> + internal static long Generation => Volatile.Read(ref _published).Generation; + + internal const string EnvironmentVariable = "CUISHARP_LIVE"; + internal const string DirectoryEnvironmentVariable = "CUISHARP_LIVE_DIR"; + internal const string Argument = "--live"; + + private const uint WmBoundary = Win32.WmApp + 1; + private const nint TimerId = 0x2C1; + private const uint TimerMs = 10; + private const string ClassName = "CuiSharpLiveMessage"; + private const int MaxQueue = 64; + private const long MaxPixelPayloadBytes = 64L * 1024 * 1024; + + private readonly CuiAppOptions _options; + private readonly UiFrameState _frameState; + private readonly FrameRecorder _recorder = new(); + private readonly Lock _gate = new(); + private readonly Queue<Command> _queue = []; + private readonly List<string> _faults = []; + private readonly CancellationTokenSource _pipeCts = new(); + private readonly Task _pipeTask; + + private nint _messageHwnd; + private nint _app; + private nint _ctx; + private nint _cuiWindow; + private bool _bound; + private bool _reserved; + + private Command? _active; + private Command? _completing; + private Command? _cancelCleanup; + private ulong _armedFrame; + private ulong _cancelFrame; + private ulong _steppedFrame; + private ulong _lastInjectedFrame; + private bool _armed; + private int _callbackDepth; + private bool _injectedPress; + private bool _timerArmed; + private volatile bool _closing; + private bool _disposed; + private LiveSnapshot? _lastSnapshot; + + /// <summary>The local named pipe this session listens on.</summary> + internal string PipeName { get; } + + /// <summary>The discovery file written for <c>dotnet cui --attach</c> and <c>dotnet cui ps</c>.</summary> + internal string DiscoveryFilePath { get; } + + /// <summary> + /// Runs on the window thread right after a press step is injected. A test uses it to cancel at + /// the one moment no polling can hit deterministically: after Down, before any later step. + /// </summary> + internal Action? AfterPressHookForTests; + + /// <summary> + /// Runs on the window thread right after a release step is injected, for deterministic + /// cancel-after-Up tests. + /// </summary> + internal Action? AfterReleaseHookForTests; + + internal LiveSession(CuiAppOptions? options = null, UiFrameState? frameState = null) + { + if (!OperatingSystem.IsWindows()) + throw new PlatformNotSupportedException("Live attach is Windows-only for now."); + + _options = options ?? new CuiAppOptions(); + _frameState = frameState ?? new UiFrameState(); + + lock (StaticGate) + { + if (_published.Session is not null) + throw new InvalidOperationException("A live session is already active in this process."); + } + + if (!CreateMessageWindow()) + { + throw new IOException( + $"Live attach was requested and the message window could not be created (Win32 error {Marshal.GetLastPInvokeError()})."); + } + + string nonce = Guid.NewGuid().ToString("N")[..12]; + PipeName = $"cui-live-{Environment.ProcessId}-{nonce}"; + DiscoveryFilePath = Path.Combine(GetDiscoveryDirectory(), $"{PipeName}.json"); + _reserved = true; + _pipeTask = Task.Run(() => RunPipeServerAsync(_pipeCts.Token)); + } + + /// <summary>Where live sessions publish their discovery records on this machine.</summary> + internal static string GetDiscoveryDirectory() + { + string? custom = Environment.GetEnvironmentVariable(DirectoryEnvironmentVariable); + return !string.IsNullOrWhiteSpace(custom) + ? Path.GetFullPath(custom) + : Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "cuisharp", "live"); + } + + /// <summary>True when this process was asked to let a tool drive its window.</summary> + internal static bool Requested(string[]? args = null) => + Environment.GetEnvironmentVariable(EnvironmentVariable) is "1" or "true" or "yes" or "on" + || (args ?? Environment.GetCommandLineArgs()).Contains(Argument, StringComparer.Ordinal); + + /// <summary> + /// Completes the session with the window that is now drawing. Called from the first draw + /// callback; the session is only published — only waitable and submittable — once bound. + /// </summary> + internal void Bind(nint app, nint ctx, nint windowHandle = 0) + { + if (_bound) return; + _app = app; + _ctx = ctx; + _cuiWindow = windowHandle != 0 ? windowHandle : Native.AppNativeWindow(app); + WidgetRecorder.Attach(_recorder, enabled: true); + _bound = true; + WriteDiscoveryFile(); + lock (StaticGate) + { + _published = new Published(_published.Generation + 1, this); + } + } + + /// <summary> + /// Waits for the session published after <paramref name="previousGeneration"/> — read before + /// the window started, so a session left over from the last test is never mistaken for the + /// fresh one. + /// </summary> + internal static LiveSession WaitForActive(long previousGeneration, TimeSpan timeout) + { + Stopwatch clock = Stopwatch.StartNew(); + while (true) + { + Published state = Volatile.Read(ref _published); + if (state.Generation != previousGeneration && state.Session is { } session) return session; + if (clock.Elapsed > timeout) + { + throw new InvalidOperationException( + "No live session started: the app never drew a first frame with live attach within the timeout."); + } + + Thread.Sleep(5); + } + } + + /// <summary>Looks at the current UI: the tree the next recorded frame draws, and its pixels.</summary> + internal Task<LiveSnapshot> SnapshotAsync(bool pixels = true, CancellationToken cancellation = default) => + Submit([new(StepKind.Capture)], pixels, cancellation); + + /// <summary>Moves the pointer and answers with the frame that shows the hover.</summary> + internal Task<LiveSnapshot> MoveAsync(float x, float y, bool pixels = true, CancellationToken cancellation = default) => + Submit([new(StepKind.Move, x, y), new(StepKind.Capture)], pixels, cancellation); + + /// <summary> + /// Clicks a point: move, press, release, then the frame that reacted — CUI reports the click + /// on the release frame and a handler's effect is drawn by the one after it. + /// </summary> + internal Task<LiveSnapshot> ClickAsync(float x, float y, bool pixels = true, CancellationToken cancellation = default) => + Submit( + [ + new(StepKind.Move, x, y), + new(StepKind.Down), + new(StepKind.Up), + new(StepKind.Capture), + ], pixels, cancellation); + + /// <summary>Scrolls at a point and answers with the frame that reacted.</summary> + internal Task<LiveSnapshot> WheelAsync(float x, float y, float dx, float dy, CancellationToken cancellation = default) => + Submit([new(StepKind.Move, x, y), new(StepKind.Wheel, dx, dy), new(StepKind.Capture)], pixels: false, cancellation); + + /// <summary>Reports window focus and answers with the resulting frame.</summary> + internal Task<LiveSnapshot> FocusAsync(CancellationToken cancellation = default) => + Submit([new(StepKind.Focus), new(StepKind.Capture)], pixels: false, cancellation); + + /// <summary>Presses and releases a key across two frames, then captures the reacted frame.</summary> + internal Task<LiveSnapshot> KeyAsync(Key key, CancellationToken cancellation = default) => + Submit([new(StepKind.KeyDown, Key: key), new(StepKind.KeyUp, Key: key), new(StepKind.Capture)], pixels: false, cancellation); + + /// <summary>Focuses and types UTF-8 text into the active input, then captures the reacted frame.</summary> + internal Task<LiveSnapshot> TypeAsync(string text, CancellationToken cancellation = default) => + Submit([new(StepKind.Focus), new(StepKind.Text, Text: text), new(StepKind.Capture)], pixels: false, cancellation); + + /// <summary>Advances <paramref name="count"/> frames and optionally captures the final frame.</summary> + internal Task<LiveSnapshot> FrameAsync(int count, bool capture = true, CancellationToken cancellation = default) + { + ArgumentOutOfRangeException.ThrowIfLessThan(count, 1); + int extra = capture ? count : count; + var steps = new Step[extra]; + for (int i = 0; i < count - (capture ? 1 : 0); i++) steps[i] = new Step(StepKind.Frame); + if (capture) steps[^1] = new Step(StepKind.Capture); + return Submit(steps, pixels: false, cancellation); + } + + /// <summary>Closes the window, exactly as its close button does.</summary> + internal void RequestClose() + { + if (_disposed || _closing) return; + if (_cuiWindow != 0 && OperatingSystem.IsWindows()) Win32.PostMessage(_cuiWindow, Win32.WmClose, 0, 0); + else if (_app != 0) Native.AppQuit(_app); + } + + /// <summary>Wakes the window thread to look at the queue.</summary> + internal void Kick() + { + if (!_disposed && !_closing && _messageHwnd != 0) + Win32.PostMessage(_messageHwnd, WmBoundary, 0, 0); + } + + /// <summary>Called when the visible CUI window receives WM_DESTROY or WM_NCDESTROY, before cui_app_destroy runs.</summary> + internal void OnWindowDestroying(nint hwnd) + { + if (_cuiWindow != 0 && hwnd != _cuiWindow) return; + _closing = true; + FailAllPending("The live window closed before it could answer."); + } + + private Task<LiveSnapshot> Submit(Step[] steps, bool pixels, CancellationToken cancellation) + { + if (cancellation.IsCancellationRequested) + return Task.FromCanceled<LiveSnapshot>(cancellation); + + var command = new Command(steps, pixels, _messageHwnd); + lock (_gate) + { + ObjectDisposedException.ThrowIf(_disposed, this); + if (_closing) + throw new IOException("The live window is closing."); + if (_queue.Count >= MaxQueue) + { + throw new InvalidOperationException( + $"The live session already has {MaxQueue} commands waiting; send the next one after those answer."); + } + + if (cancellation.CanBeCanceled) + { + command.Registration = cancellation.Register( + static state => ((Command)state!).Cancel(), command); + } + + _queue.Enqueue(command); + } + + if (Win32.PostMessage(_messageHwnd, WmBoundary, 0, 0) == 0) + { + RemoveOrCancel(command); + throw new IOException("The live session's message window is gone; the app is closing."); + } + + return command.Tcs.Task; + } + + private void RemoveOrCancel(Command target) + { + bool removed = false; + lock (_gate) + { + int count = _queue.Count; + for (int i = 0; i < count; i++) + { + Command other = _queue.Dequeue(); + if (ReferenceEquals(other, target)) removed = true; + else _queue.Enqueue(other); + } + } + + if (removed) target.Discard(); + else target.Cancel(); + } + + /// <summary> + /// The frame boundary: runs on the window thread inside CUI's wait, after the last frame was + /// presented and before the next one begins. At most one step per frame, whatever else the + /// same drain delivered. + /// </summary> + private void OnBoundary() + { + if (_disposed || _closing) + { + StopWake(); + return; + } + + if (_callbackDepth > 0 || LiveResize.IsResizing(_cuiWindow)) + { + // Somebody pumped messages from inside a draw callback, a deferred canvas painter, a + // state disposer, or an OS modal resize loop. Nothing here is safe mid-frame: defer + // and make sure a later boundary comes. + if (HasWork()) WakeAgainSoon(); + return; + } + + try + { + if (!_bound) + { + if (HasWork()) WakeAgainSoon(); + return; + } + + ulong frame = Native.FrameCount(_ctx); + + if (_cancelCleanup is not null) + { + // Wait until a frame has actually drawn and consumed the cleanup / pending input. + if (frame == _cancelFrame) + { + WakeAgainSoon(); + return; + } + + _cancelCleanup.Tcs.TrySetCanceled(); + _cancelCleanup = null; + } + + if (_armed) + { + if (frame == _armedFrame) + { + WakeAgainSoon(); + return; + } + + FinishCapture(); + } + + if (frame != _steppedFrame) + { + _active ??= Dequeue(); + Command? command = _active; + if (command is not null) + { + if (command.CancelRequested) + { + _active = null; + StartCancellationCleanup(command); + } + else if (command.Tcs.Task.IsCompleted) + { + command.Discard(); + _active = null; + } + else if (command.Index >= command.Steps.Length) + { + command.Discard(); + command.Tcs.TrySetResult(new LiveSnapshot(frame, [], null, 0, 0, _frameState.FrameReady)); + _active = null; + } + else + { + Apply(command.Steps[command.Index++], command, frame); + _steppedFrame = frame; + if (command.CancelRequested) + { + if (ReferenceEquals(_completing, command)) + { + _armed = false; + _completing = null; + } + + _active = null; + StartCancellationCleanup(command); + } + } + } + } + } + catch (Exception error) + { + _completing?.CompleteWithFault(error); + _active?.CompleteWithFault(error); + _cancelCleanup?.CompleteWithFault(error); + _armed = false; + _completing = null; + _active = null; + _cancelCleanup = null; + ReleaseInjectedPress(); + } + + if (HasWork()) WakeAgainSoon(); + else StopWake(); + } + + private void Apply(Step step, Command command, ulong frame) + { + switch (step.Kind) + { + case StepKind.Frame: + break; + case StepKind.Move: + Native.InputMouseMove(_ctx, step.X, step.Y); + _lastInjectedFrame = frame; + break; + case StepKind.Down: + Native.InputMouseButton(_ctx, MouseButton.Left, 1); + _injectedPress = true; + _lastInjectedFrame = frame; + AfterPressHookForTests?.Invoke(); + break; + case StepKind.Up: + Native.InputMouseButton(_ctx, MouseButton.Left, 0); + _injectedPress = false; + _lastInjectedFrame = frame; + AfterReleaseHookForTests?.Invoke(); + break; + case StepKind.Wheel: + Native.InputScroll(_ctx, step.X, step.Y); + _lastInjectedFrame = frame; + break; + case StepKind.Focus: + Native.InputFocus(_ctx, 1); + _lastInjectedFrame = frame; + break; + case StepKind.KeyDown: + Native.InputKey(_ctx, step.Key, 1, 0); + _lastInjectedFrame = frame; + break; + case StepKind.KeyUp: + Native.InputKey(_ctx, step.Key, 0, 0); + _lastInjectedFrame = frame; + break; + case StepKind.Text: + if (step.Text is { Length: > 0 } text) + ApplyText(text); + + _lastInjectedFrame = frame; + break; + case StepKind.Capture: + WidgetRecorder.BeginFrame(_recorder); + _armed = true; + _armedFrame = frame; + _completing = command; + break; + } + + Native.RequestRedraw(_ctx); + } + + /// <summary>Increments the managed callback nesting depth so boundaries inside nested pumps defer.</summary> + internal void EnterCallback() => _callbackDepth++; + + /// <summary>Decrements the managed callback nesting depth.</summary> + internal void ExitCallback() + { + if (_callbackDepth > 0) _callbackDepth--; + } + + /// <summary> + /// The managed draw callback is starting. Every boundary until <see cref="SealFrame"/> defers: + /// a modal dialog pumped from the callback would otherwise dispatch one mid-frame. + /// </summary> + internal void EnterFrame() + { + _callbackDepth++; + if (!_armed || !_bound) return; + + // If an extra frame slipped in before the boundary ran (e.g. a modal resize callback), + // restart the recording so a snapshot never mixes widgets from two frames. + ulong current = Native.FrameCount(_ctx); + if (current != _armedFrame + 1) + { + WidgetRecorder.BeginFrame(_recorder); + _armedFrame = current - 1; + } + } + + /// <summary> + /// Called at the end of the draw callback: the recorded labels are frame memory. The callback + /// of the frame being recorded posts the finishing boundary itself, so the finish dispatch + /// happens in the wait right after this frame's end. + /// </summary> + internal void SealFrame() + { + if (_callbackDepth > 0) _callbackDepth--; + if (!_armed || !_bound) return; + _recorder.SealPendingText(); + if (Native.FrameCount(_ctx) == _armedFrame + 1) + Win32.PostMessage(_messageHwnd, WmBoundary, 0, 0); + } + + private void FinishCapture() + { + Command command = _completing!; + _armed = false; + _completing = null; + + WidgetRecorder.EndFrame(_recorder, previous: null, _ctx); + command.Discard(); + if (command.CancelRequested) + { + command.Tcs.TrySetCanceled(); + return; + } + + SemanticWidget[] entries = [.. _recorder.Entries]; + ulong frame = Native.FrameCount(_ctx); + bool ready = _frameState.FrameReady; + byte[]? pixels = null; + int width = 0, height = 0; + if (command.WantPixels) (pixels, width, height) = CapturePixels(); + var snapshot = new LiveSnapshot(frame, entries, pixels, width, height, ready); + _lastSnapshot = snapshot; + command.Tcs.TrySetResult(snapshot); + } + + private unsafe void ApplyText(string text) + { + byte[] utf8 = Encoding.UTF8.GetBytes(text + "\0"); + fixed (byte* p = utf8) Native.InputText(_ctx, (nint)p); + } + + private unsafe (byte[] Pixels, int Width, int Height) CapturePixels() + { + nint data = Native.GetDrawData(_ctx); + if (data == 0) throw new IOException("No completed frame to capture."); + + var frame = *(NativeDrawData*)data; + int w = frame.WidthPx, h = frame.HeightPx; + if (w <= 0 || h <= 0) throw new IOException($"The completed frame reported a {w}x{h} pixel area."); + + long bytes = checked((long)w * h * 4); + if (bytes > MaxPixelPayloadBytes) + { + throw new IOException( + $"A {w}x{h} frame is {bytes} bytes, past the live session's {MaxPixelPayloadBytes}-byte pixel cap."); + } + + var buffer = new byte[(int)bytes]; + fixed (byte* p = buffer) + { + if (Native.AppScreenshot(_app, (nint)p, w, h) == 0) + throw new IOException($"cui_app_screenshot rejected the {w}x{h} frame buffer."); + } + + return (buffer, w, h); + } + + /// <summary> + /// A dropped cancel must not land as a click or acknowledge before an already-injected step + /// has been consumed by a frame: if a press is down, park and release; if any step was + /// injected on the current frame count, wait for one frame to draw before acknowledging. + /// </summary> + private void StartCancellationCleanup(Command command) + { + command.Discard(); + ulong currentFrame = _bound ? Native.FrameCount(_ctx) : 0; + if (_injectedPress) + { + Native.InputMouseLeave(_ctx); + Native.InputMouseButton(_ctx, MouseButton.Left, 0); + _injectedPress = false; + Native.RequestRedraw(_ctx); + _cancelCleanup = command; + _cancelFrame = currentFrame; + return; + } + + if (_bound && _lastInjectedFrame != 0 && currentFrame == _lastInjectedFrame) + { + Native.RequestRedraw(_ctx); + _cancelCleanup = command; + _cancelFrame = currentFrame; + return; + } + + command.Tcs.TrySetCanceled(); + } + + private void ReleaseInjectedPress() + { + if (!_injectedPress) return; + _injectedPress = false; + if (!_bound) return; + Native.InputMouseButton(_ctx, MouseButton.Left, 0); + Native.RequestRedraw(_ctx); + } + + private bool HasWork() + { + lock (_gate) return _queue.Count > 0 || _active is not null || _completing is not null || _cancelCleanup is not null; + } + + private void WakeAgainSoon() + { + if (_timerArmed || _messageHwnd == 0 || _disposed || _closing) return; + if (Win32.SetTimer(_messageHwnd, TimerId, TimerMs, 0) != 0) + { + _timerArmed = true; + } + else + { + FailAllPending("The live session's wake timer could not be armed."); + } + } + + private void StopWake() + { + if (!_timerArmed) return; + _timerArmed = false; + Win32.KillTimer(_messageHwnd, TimerId); + } + + private Command? Dequeue() + { + lock (_gate) return _queue.Count == 0 ? null : _queue.Dequeue(); + } + + private void FailAllPending(string message) + { + List<Command> unfinished = []; + lock (_gate) + { + unfinished.AddRange(_queue); + _queue.Clear(); + if (_active is not null) unfinished.Add(_active); + if (_completing is not null && !ReferenceEquals(_completing, _active)) unfinished.Add(_completing); + if (_cancelCleanup is not null + && !ReferenceEquals(_cancelCleanup, _active) + && !ReferenceEquals(_cancelCleanup, _completing)) + { + unfinished.Add(_cancelCleanup); + } + + _active = null; + _completing = null; + _cancelCleanup = null; + _armed = false; + } + + foreach (Command command in unfinished) + { + command.Discard(); + command.Tcs.TrySetException(new InvalidOperationException(message)); + } + } + + // ---- NamedPipe server & protocol execution ------------------------------------------------ + + private async Task RunPipeServerAsync(CancellationToken ct) + { + while (!ct.IsCancellationRequested) + { + try + { + using var server = new NamedPipeServerStream( + PipeName, + PipeDirection.InOut, + 1, + PipeTransmissionMode.Byte, + PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + + await server.WaitForConnectionAsync(ct).ConfigureAwait(false); + await ServePipeClientAsync(server, ct).ConfigureAwait(false); + } + catch (OperationCanceledException) when (ct.IsCancellationRequested) + { + break; + } + catch (Exception) + { + if (ct.IsCancellationRequested) break; + await Task.Delay(25, ct).ConfigureAwait(false); + } + } + } + + private async Task ServePipeClientAsync(NamedPipeServerStream stream, CancellationToken ct) + { + // Wait briefly for the first frame to bind the window if a client connected during startup. + Stopwatch bindWait = Stopwatch.StartNew(); + while (!_bound && !_disposed && !_closing && bindWait.Elapsed < TimeSpan.FromSeconds(15)) + { + await Task.Delay(10, ct).ConfigureAwait(false); + } + + using var reader = new StreamReader(stream, new UTF8Encoding(false), detectEncodingFromByteOrderMarks: false, bufferSize: 1024, leaveOpen: true); + using var writer = new StreamWriter(stream, new UTF8Encoding(false), bufferSize: 1024, leaveOpen: true) { AutoFlush = false }; + + writer.Write($"CUI-READY {_options.Width} {_options.Height}\n"); + writer.Flush(); + + while (!ct.IsCancellationRequested && stream.IsConnected) + { + string? read; + try + { + read = HeadlessLoop.ReadCommand(reader); + } + catch (ArgumentException error) + { + HeadlessLoop.Answer(writer, ok: false, error.Message); + return; + } + catch (IOException) + { + return; + } + + if (read is null) return; + string line = read.Trim(); + if (line.Length == 0) continue; + + int space = line.IndexOf(' ', StringComparison.Ordinal); + string command = (space < 0 ? line : line[..space]).ToLowerInvariant(); + string argument = space < 0 ? "" : line[(space + 1)..]; + + if (command is "quit" or "exit") + { + HeadlessLoop.Answer(writer, ok: true, ""); + RequestClose(); + return; + } + + try + { + string payload = await ExecuteCommandAsync(command, argument, ct).ConfigureAwait(false); + HeadlessLoop.Answer(writer, ok: true, payload); + } + catch (OperationCanceledException) when (ct.IsCancellationRequested) + { + return; + } + catch (Exception error) when (error is InvalidOperationException or ArgumentException or IOException or FormatException or OverflowException) + { + HeadlessLoop.Answer(writer, ok: false, error.Message); + } + } + } + + /// <summary>Executes one headless-protocol command against the live window.</summary> + internal async Task<string> ExecuteCommandAsync(string command, string argument, CancellationToken ct = default) + { + switch (command) + { + case "tree" or "print": + { + LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "layout": + { + LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + return LayoutFormatter.Print(snap.Tree); + } + + case "find": + { + ArgumentException.ThrowIfNullOrEmpty(argument); + LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + SemanticNode node = FindNode(snap, argument); + return $"{node.Kind} \"{node.Text}\" at {node.Rect}"; + } + + case "click": + { + ArgumentException.ThrowIfNullOrEmpty(argument); + LiveSnapshot before = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + SemanticNode node = FindNode(before, argument); + float cx = node.Rect.X + (node.Rect.W * 0.5f); + float cy = node.Rect.Y + (node.Rect.H * 0.5f); + LiveSnapshot after = await ClickAsync(cx, cy, pixels: false, ct).ConfigureAwait(false); + return after.Print(); + } + + case "move": + { + string[] parts = argument.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (parts.Length != 2) + throw new ArgumentException("move needs two numbers: `move 10 20`.", nameof(argument)); + float x = float.Parse(parts[0], CultureInfo.InvariantCulture); + float y = float.Parse(parts[1], CultureInfo.InvariantCulture); + LiveSnapshot snap = await MoveAsync(x, y, pixels: false, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "wheel": + { + string[] parts = argument.Split(' ', StringSplitOptions.RemoveEmptyEntries | StringSplitOptions.TrimEntries); + if (parts.Length is < 3 or > 4) + throw new ArgumentException("wheel needs three numbers and an optional fourth: `wheel 120 400 -8 [0]`.", nameof(argument)); + float x = float.Parse(parts[0], CultureInfo.InvariantCulture); + float y = float.Parse(parts[1], CultureInfo.InvariantCulture); + float dy = float.Parse(parts[2], CultureInfo.InvariantCulture); + float dx = parts.Length == 4 ? float.Parse(parts[3], CultureInfo.InvariantCulture) : 0f; + LiveSnapshot snap = await WheelAsync(x, y, dx, dy, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "focus": + { + LiveSnapshot snap = await FocusAsync(ct).ConfigureAwait(false); + return snap.Print(); + } + + case "key": + { + Key key = HeadlessLoop.ParseKey(argument); + LiveSnapshot snap = await KeyAsync(key, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "type": + { + LiveSnapshot snap = await TypeAsync(argument, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "frame": + { + int count = argument.Length == 0 ? 1 : int.Parse(argument, CultureInfo.InvariantCulture); + if (count < 1) throw new ArgumentException($"frame needs a count of at least 1, not {count}."); + LiveSnapshot snap = await FrameAsync(count, capture: true, ct).ConfigureAwait(false); + return snap.Print(); + } + + case "pulse": + { + int count = argument.Length == 0 ? 1 : int.Parse(argument, CultureInfo.InvariantCulture); + if (count < 1) throw new ArgumentException($"pulse needs a count of at least 1, not {count}."); + await FrameAsync(count, capture: false, ct).ConfigureAwait(false); + return $"{count} heap {GC.GetTotalMemory(false)}"; + } + + case "wait": + { + double seconds = argument.Length == 0 + ? HeadlessLoop.DefaultWaitSeconds + : HeadlessLoop.ParseWaitSeconds(argument); + return await WaitReadyAsync(seconds, ct).ConfigureAwait(false); + } + + case "waittext": + { + int space = argument.IndexOf(' ', StringComparison.Ordinal); + if (space < 0) + throw new ArgumentException("waittext needs a timeout in seconds and a query: `waittext 5 Button \"Save\"`.", nameof(argument)); + double seconds = HeadlessLoop.ParseWaitSeconds(argument[..space]); + string query = argument[(space + 1)..]; + if (query.Trim().Length == 0) + throw new ArgumentException("waittext needs a query after the timeout.", nameof(argument)); + return await WaitTextAsync(seconds, query, ct).ConfigureAwait(false); + } + + case "faults": + { + lock (_gate) return _faults.Count == 0 ? "" : string.Join("\n", _faults); + } + + case "png": + { + string path = argument.Length == 0 + ? Path.Combine(Path.GetTempPath(), $"cui-{Guid.NewGuid():N}.png") + : Path.GetFullPath(argument); + LiveSnapshot snap = await SnapshotAsync(pixels: true, ct).ConfigureAwait(false); + SavePng(path, snap.Pixels!, snap.PixelWidth, snap.PixelHeight); + return path; + } + + default: + throw new InvalidOperationException($"Unknown command \"{command}\". Known: {string.Join(", ", HeadlessLoop.Known)}."); + } + } + + private static SemanticNode FindNode(LiveSnapshot snapshot, string query) + { + SemanticNode tree = snapshot.Tree; + if (tree.TryFind(query, out SemanticNode node)) return node; + throw new InvalidOperationException($"No widget matching \"{query}\". The frame drew:\n{tree.Print()}"); + } + + private async Task<string> WaitReadyAsync(double seconds, CancellationToken ct) + { + TimeSpan budget = TimeSpan.FromSeconds(seconds); + Stopwatch watch = Stopwatch.StartNew(); + int frames = 0; + while (true) + { + LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + frames++; + if (snap.Ready) return snap.Print(); + if (watch.Elapsed >= budget) + { + throw new InvalidOperationException( + $"No frame marked itself ready within {seconds}s ({frames} frames drawn). " + + "The app declares readiness with ui.MarkReady() once its data is complete."); + } + } + } + + private async Task<string> WaitTextAsync(double seconds, string query, CancellationToken ct) + { + TimeSpan budget = TimeSpan.FromSeconds(seconds); + Stopwatch watch = Stopwatch.StartNew(); + int frames = 0; + while (true) + { + LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); + frames++; + if (snap.Tree.TryFind(query, out _)) return snap.Print(); + if (watch.Elapsed >= budget) + { + throw new InvalidOperationException( + $"No frame drew \"{query}\" within {seconds}s ({frames} frames drawn). " + + $"The last frame drew:\n{snap.Print()}"); + } + } + } + + private static unsafe void SavePng(string path, byte[] pixels, int w, int h) + { + string? directory = Path.GetDirectoryName(path); + if (!string.IsNullOrEmpty(directory)) Directory.CreateDirectory(directory); + byte[] pathBytes = Encoding.UTF8.GetBytes(path + "\0"); + fixed (byte* p = pixels) + fixed (byte* name = pathBytes) + { + if (Native.WritePng((nint)name, (nint)p, w, h, w * 4) == 0) + throw new IOException($"Could not write {path}."); + } + } + + private void WriteDiscoveryFile() + { + try + { + string directory = GetDiscoveryDirectory(); + Directory.CreateDirectory(directory); + using var stream = new MemoryStream(); + using (var writer = new Utf8JsonWriter(stream, new JsonWriterOptions { Indented = true })) + { + writer.WriteStartObject(); + writer.WriteNumber("pid", Environment.ProcessId); + writer.WriteString("pipe", PipeName); + writer.WriteString("title", _options.Title ?? ""); + writer.WriteString("processPath", Environment.ProcessPath ?? ""); + writer.WriteString("workingDirectory", Directory.GetCurrentDirectory()); + writer.WriteNumber("width", _options.Width); + writer.WriteNumber("height", _options.Height); + writer.WriteEndObject(); + } + + File.WriteAllBytes(DiscoveryFilePath, stream.ToArray()); + } + catch (IOException) + { + // Discovery is best-effort if the local appdata directory is locked. + } + } + + private void DeleteDiscoveryFile() + { + try + { + if (File.Exists(DiscoveryFilePath)) File.Delete(DiscoveryFilePath); + } + catch (IOException) + { + } + } + + // ---- the message window: wake, boundary, teardown ---------------------------------------- + + private static bool _classRegistered; + private static nint _instance; + private static nint _wndProc; + + private unsafe bool CreateMessageWindow() + { + _instance = Win32.GetModuleHandle(null); + if (!_classRegistered) + { + _wndProc = (nint)(delegate* unmanaged[Stdcall]<nint, uint, nint, nint, nint>)&Proc; + fixed (char* name = ClassName) + { + var windowClass = new Win32.WndClass + { + WndProc = _wndProc, + Instance = _instance, + ClassName = (nint)name, + }; + if (Win32.RegisterClass(in windowClass) == 0) return false; + } + + _classRegistered = true; + } + + nint hwnd = Win32.CreateWindowEx( + 0, ClassName, "CuiSharp Live", 0, 0, 0, 0, 0, + Win32.HWNDMessage, 0, _instance, 0); + _messageHwnd = hwnd; + return hwnd != 0; + } + + [UnmanagedCallersOnly(CallConvs = [typeof(CallConvStdcall)])] + private static nint Proc(nint hwnd, uint message, nint wparam, nint lparam) + { + if (message is WmBoundary || (message == Win32.WmTimer && wparam == TimerId)) + { + Active?.OnBoundaryFor(hwnd); + return 0; + } + + return Win32.DefWindowProc(hwnd, message, wparam, lparam); + } + + private void OnBoundaryFor(nint hwnd) + { + if (hwnd == _messageHwnd) OnBoundary(); + } + + public void Dispose() + { + lock (_gate) + { + if (_disposed) return; + _disposed = true; + _closing = true; + } + + DeleteDiscoveryFile(); + _pipeCts.Cancel(); + + FailAllPending("The live app closed before it could answer."); + + if (_bound) WidgetRecorder.Attach(_recorder, enabled: false); + StopWake(); + if (_messageHwnd != 0) + { + Win32.DestroyWindow(_messageHwnd); + _messageHwnd = 0; + } + + if (_classRegistered) + { + Win32.UnregisterClass(ClassName, _instance); + _classRegistered = false; + } + + if (_reserved) + { + lock (StaticGate) + { + if (ReferenceEquals(_published.Session, this) || _published.Session is null) + _published = new Published(_published.Generation + 1, null); + } + } + + try + { + _pipeTask.Wait(TimeSpan.FromMilliseconds(200)); + } + catch (AggregateException) + { + } + + _pipeCts.Dispose(); + } + + private enum StepKind + { + Frame, + Move, + Down, + Up, + Wheel, + Focus, + KeyDown, + KeyUp, + Text, + Capture, + } + + private readonly struct Step(StepKind kind, float x = 0, float y = 0, Key Key = default, string? Text = null) + { + internal readonly StepKind Kind = kind; + internal readonly float X = x; + internal readonly float Y = y; + internal readonly Key Key = Key; + internal readonly string? Text = Text; + } + + private sealed class Command(Step[] steps, bool pixels, nint messageHwnd) + { + internal readonly Step[] Steps = steps; + internal readonly bool WantPixels = pixels; + internal readonly nint MessageHwnd = messageHwnd; + internal readonly TaskCompletionSource<LiveSnapshot> Tcs = new(TaskCreationOptions.RunContinuationsAsynchronously); + internal CancellationTokenRegistration Registration; + internal int Index; + + internal void Discard() => Registration.Dispose(); + + internal void Cancel() + { + CancelRequested = true; + Win32.PostMessage(MessageHwnd, WmBoundary, 0, 0); + } + + internal volatile bool CancelRequested; + + internal void CompleteWithFault(Exception error) + { + Discard(); + Tcs.TrySetException(error); + } + } +} + +/// <summary> +/// One frame a driven window finished: what it drew, whether it marked itself ready, and the +/// pixels it presented. Immutable, so a reader cannot be overtaken by the next frame. +/// </summary> +internal sealed record LiveSnapshot( + ulong Frame, + SemanticWidget[] Entries, + byte[]? Pixels, + int PixelWidth, + int PixelHeight, + bool Ready = false) +{ + private SemanticNode? _tree; + + /// <summary>The frame's semantic tree.</summary> + internal SemanticNode Tree => _tree ??= SemanticNode.Build(Entries); + + /// <summary>The frame's controls nested the way the app drew them.</summary> + internal string Print() => Tree.Print(); +} diff --git a/src/CuiSharp/Interop/Win32.cs b/src/CuiSharp/Interop/Win32.cs index f54972d..7e7ad7a 100644 --- a/src/CuiSharp/Interop/Win32.cs +++ b/src/CuiSharp/Interop/Win32.cs @@ -11,13 +11,19 @@ internal static unsafe partial class Win32 internal const int SwMinimize = 6; internal const int SwRestore = 9; + internal const uint WmDestroy = 0x0002; internal const uint WmSize = 0x0005; + internal const uint WmTimer = 0x0113; internal const uint WmPaint = 0x000F; internal const uint WmClose = 0x0010; internal const uint WmNcDestroy = 0x0082; + internal const uint WmApp = 0x8000; internal const uint WmEnterSizeMove = 0x0231; internal const uint WmExitSizeMove = 0x0232; + /// <summary>The parent that makes a window message-only: it exists to receive messages, not to show.</summary> + internal static readonly nint HWNDMessage = -3; + private const int GwlWndProc = -4; private const int GwlUserData = -21; @@ -145,6 +151,76 @@ internal static bool IsCuiWindow(nint hwnd) return length == 9 && new ReadOnlySpan<char>(name, 9).SequenceEqual("CUIWindow"); } + /// <summary>WNDCLASSW, with the two string fields as raw pointers the caller keeps alive across the call.</summary> + [StructLayout(LayoutKind.Sequential)] + internal struct WndClass + { + internal uint Style; + internal nint WndProc; + internal int CbClsExtra; + internal int CbWndExtra; + internal nint Instance; + internal nint Icon; + internal nint Cursor; + internal nint Background; + internal nint MenuName; + internal nint ClassName; + } + + /// <summary>ATOM RegisterClassW(const WNDCLASSW*).</summary> + [LibraryImport("user32.dll", EntryPoint = "RegisterClassW", SetLastError = true)] + internal static partial ushort RegisterClass(in WndClass wc); + + /// <summary>HWND CreateWindowExW(...).</summary> + [LibraryImport("user32.dll", EntryPoint = "CreateWindowExW", SetLastError = true, StringMarshalling = StringMarshalling.Utf16)] + internal static partial nint CreateWindowEx( + int exStyle, string className, string windowName, int style, + int x, int y, int width, int height, + nint parent, nint menu, nint instance, nint param); + + /// <summary>UINT_PTR SetTimer(HWND, UINT_PTR, UINT, TIMERPROC): NULL proc posts WM_TIMER to the window procedure.</summary> + [LibraryImport("user32.dll", EntryPoint = "SetTimer")] + internal static partial nint SetTimer(nint hwnd, nint eventId, uint elapsedMs, nint proc); + + /// <summary>BOOL KillTimer(HWND, UINT_PTR).</summary> + [LibraryImport("user32.dll", EntryPoint = "KillTimer")] + internal static partial int KillTimer(nint hwnd, nint eventId); + + /// <summary>BOOL DestroyWindow(HWND).</summary> + [LibraryImport("user32.dll", EntryPoint = "DestroyWindow")] + internal static partial int DestroyWindow(nint hwnd); + + /// <summary>MSG, the subset a pump loop reads.</summary> + [StructLayout(LayoutKind.Sequential)] + internal struct Msg + { + internal nint Hwnd; + internal uint Message; + internal nint WParam; + internal nint LParam; + internal uint Time; + internal int PtX; + internal int PtY; + } + + internal const uint PmRemove = 1; + + /// <summary>BOOL PeekMessageW(MSG*, HWND, UINT, UINT, UINT).</summary> + [LibraryImport("user32.dll", EntryPoint = "PeekMessageW")] + internal static partial int PeekMessage(out Msg msg, nint hwnd, uint min, uint max, uint remove); + + /// <summary>LRESULT DispatchMessageW(const MSG*).</summary> + [LibraryImport("user32.dll", EntryPoint = "DispatchMessageW")] + internal static partial nint DispatchMessage(in Msg msg); + + /// <summary>LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM).</summary> + [LibraryImport("user32.dll", EntryPoint = "DefWindowProcW")] + internal static partial nint DefWindowProc(nint hwnd, uint message, nint wparam, nint lparam); + + /// <summary>BOOL UnregisterClassW(LPCWSTR, HINSTANCE).</summary> + [LibraryImport("user32.dll", EntryPoint = "UnregisterClassW", SetLastError = true, StringMarshalling = StringMarshalling.Utf16)] + internal static partial int UnregisterClass(string className, nint instance); + /// <summary>Replaces the window procedure, returning the one CUI installed.</summary> internal static nint HookWindowProc(nint hwnd, nint replacement) => SetWindowLongPtr(hwnd, GwlWndProc, replacement); diff --git a/src/CuiSharp/Runtime/Features.cs b/src/CuiSharp/Runtime/Features.cs index 0b96efc..9caab3c 100644 --- a/src/CuiSharp/Runtime/Features.cs +++ b/src/CuiSharp/Runtime/Features.cs @@ -23,4 +23,13 @@ internal static class Features /// </summary> [FeatureSwitchDefinition("CuiSharp.Headless")] internal static bool Headless => !AppContext.TryGetSwitch("CuiSharp.Headless", out bool on) || on; + + /// <summary> + /// Live attach: a tool on the same machine drives the real window a human is looking at, + /// over local IPC. Compiled in by default, but a running app listens only when it asked to + /// be driven (<c>CUISHARP_LIVE=1</c>, <c>--live</c>, or <see cref="CuiAppOptions.LiveAttach"/>) + /// — nothing listens on its own. Turning the switch off removes the channel from the binary. + /// </summary> + [FeatureSwitchDefinition("CuiSharp.Live")] + internal static bool Live => !AppContext.TryGetSwitch("CuiSharp.Live", out bool on) || on; } diff --git a/src/CuiSharp/Runtime/FrameCallbacks.cs b/src/CuiSharp/Runtime/FrameCallbacks.cs index ab00728..bbfbcae 100644 --- a/src/CuiSharp/Runtime/FrameCallbacks.cs +++ b/src/CuiSharp/Runtime/FrameCallbacks.cs @@ -119,14 +119,32 @@ private static nint Text(Holder holder, string? text) [UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])] internal static nint TreeLabelThunk(void* user, int node) { - Holder? holder = HolderOf(user); - return holder?.Function is Func<int, string?> label ? Text(holder, label(node)) : 0; + Hosting.LiveSession.Active?.EnterCallback(); + try + { + Holder? holder = HolderOf(user); + return holder?.Function is Func<int, string?> label ? Text(holder, label(node)) : 0; + } + finally + { + Hosting.LiveSession.Active?.ExitCallback(); + } } /// <summary>The tree sorter's <c>int (*cmp)(void *user, int a, int b)</c>.</summary> [UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])] - internal static int TreeCompareThunk(void* user, int a, int b) => - HolderOf(user)?.Function is Comparison<int> compare ? compare(a, b) : 0; + internal static int TreeCompareThunk(void* user, int a, int b) + { + Hosting.LiveSession.Active?.EnterCallback(); + try + { + return HolderOf(user)?.Function is Comparison<int> compare ? compare(a, b) : 0; + } + finally + { + Hosting.LiveSession.Active?.ExitCallback(); + } + } /// <summary> /// <c>void (*fn)(cui_ctx *, void *)</c>: the disposer for a per-id state block. The block @@ -140,7 +158,15 @@ internal static void StateDisposerThunk(nint ui, void* data) if (data == null) return; nint user = *(nint*)data; if (user == 0) return; - if (HolderOf((void*)user)?.Function is Action onFree) onFree(); + Hosting.LiveSession.Active?.EnterCallback(); + try + { + if (HolderOf((void*)user)?.Function is Action onFree) onFree(); + } + finally + { + Hosting.LiveSession.Active?.ExitCallback(); + } } /// <summary>The static function pointer a label hook needs.</summary> diff --git a/src/CuiSharp/Semantics/WidgetRecorder.cs b/src/CuiSharp/Semantics/WidgetRecorder.cs index 85afef1..c41ed02 100644 --- a/src/CuiSharp/Semantics/WidgetRecorder.cs +++ b/src/CuiSharp/Semantics/WidgetRecorder.cs @@ -334,6 +334,27 @@ internal void Begin() _controls.Clear(); } + /// <summary> + /// Copies every pending label out of the frame arena into a managed string, once, at the + /// caller's word. A <see cref="CuiSurface"/> decodes at <see cref="End"/> because it ends the + /// frame before the arena is reused; a live window cannot — CUI ends its own frames, and the + /// arena is reset before the next managed point, so the capture seals at the end of the draw + /// callback and lets <see cref="End"/> decode the copies. + /// </summary> + internal void SealPendingText() + { + for (int i = 0; i < _pending.Count; i++) + { + Pending widget = _pending[i]; + if (widget.Text is null && widget.Length > 0) + { + _pending[i] = new Pending( + widget.Kind, 0, 0, widget.Decode(), widget.Id, widget.Depth, + widget.Container, widget.OwnRect, widget.Detached, widget.Layer); + } + } + } + /// <summary> /// Opens a scope's layer bookkeeping: a floating kind raises the layer for its whole body /// and returns true, so even an unnamed dialog is a boundary the frame ends at. Every depth diff --git a/src/CuiSharp/Ui/Ui.Draw.cs b/src/CuiSharp/Ui/Ui.Draw.cs index 2b9a2dc..4607f62 100644 --- a/src/CuiSharp/Ui/Ui.Draw.cs +++ b/src/CuiSharp/Ui/Ui.Draw.cs @@ -59,7 +59,15 @@ private static void PaintThunk(nint ui, NativeRect rect, void* user) int slot = (int)(nint)user; if (frame is null || (uint)slot >= (uint)frame.Painters.Count) return; - frame.Painters[slot](new Ui(ui, frame), new RectF(rect.X, rect.Y, rect.W, rect.H)); + Hosting.LiveSession.Active?.EnterCallback(); + try + { + frame.Painters[slot](new Ui(ui, frame), new RectF(rect.X, rect.Y, rect.W, rect.H)); + } + finally + { + Hosting.LiveSession.Active?.ExitCallback(); + } } /// <summary> From 381699878f6eef04c223a5358e49d86cbf205276 Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor <contributor@users.noreply.github.com> Date: Wed, 11 Nov 2026 19:28:35 +0800 Subject: [PATCH 17/18] Fix live window disconnect, keyboard cleanup, callback ownership, shutdown, wait deadlines, and publish-size exclusion --- docs/ARCHITECTURE.md | 18 +- docs/PLAN.md | 8 +- docs/SIZE.md | 4 + skills/cui-dotnet/SKILL.md | 7 +- src/CuiSharp.Tests/LiveControlTests.cs | 165 ++++++++++++ src/CuiSharp.Tests/NativePackagingTests.cs | 28 +- src/CuiSharp.Tests/ProtocolBoundsTests.cs | 36 +++ src/CuiSharp/CuiApp.cs | 36 ++- src/CuiSharp/Hosting/HeadlessLoop.cs | 33 ++- src/CuiSharp/Hosting/LiveResize.cs | 4 +- src/CuiSharp/Hosting/LiveSession.cs | 296 ++++++++++++--------- src/CuiSharp/Runtime/FrameCallbacks.cs | 15 +- src/CuiSharp/Ui/Ui.Draw.cs | 5 +- src/CuiSharp/build/CuiSharp.Size.targets | 4 + 14 files changed, 486 insertions(+), 173 deletions(-) diff --git a/docs/ARCHITECTURE.md b/docs/ARCHITECTURE.md index 39f1fc5..b83c3d4 100644 --- a/docs/ARCHITECTURE.md +++ b/docs/ARCHITECTURE.md @@ -259,10 +259,20 @@ anything round-trip. The reader re-synchronizes on any line that is not a header print whatever it likes: its output goes to stderr and the protocol stays clean. The tool stays a relay: it builds (or reuses a published build), starts the app headless, sends -one command, prints one answer, and gets out of the way. It is deliberately not a test framework, -not a session manager and not a hot reload integration — `CuiSharp.Testing` is the fast, repeatable -way to drive an app from an agent, and `dotnet watch` is how a human edits in place. Anything that -would need a stateful daemon belongs in the testing driver, not here. +one command, prints one answer, and gets out of the way. With `--attach`, the same protocol drives +an explicitly enabled Windows live window over a user-only local named pipe instead. There is no +HTTP/MCP server or separate daemon. `CuiSharp.Testing` remains the fast, repeatable way to drive an +app from an agent, and `dotnet watch` is how a human edits in place. + +Live work runs on the owning window thread, between completed frames in the pinned Win32 backend's +message pump. Callback nesting guards are thread/context-owned: an unrelated surface cannot change +that window's guard. A connection has a bounded asynchronous reader that detects EOF even during +command execution. Disconnects cancel outstanding work; injected keys/buttons are released and a +cleanup frame consumes the release before the next client is accepted. Already-consumed actions +cannot be rolled back. Capture-only waits enforce their wall-clock deadline even if drawing stalls +and never accept a late success. Teardown closes the active pipe and joins its worker after pending +UI tasks are failed, without requiring another frame. `CuiSharpLive=false` removes the live channel +from an ordinary AOT publish; retaining it requires `-p:CuiSharpLive=true` and runtime opt-in. An app opts in by running headless (`CUISHARP_HEADLESS=1` or `--headless`). `CuiApp.Run` is the only place that decides, and a hosted app reaches it with its host's draw callback, so a tool drives the diff --git a/docs/PLAN.md b/docs/PLAN.md index c430f48..7c349bb 100644 --- a/docs/PLAN.md +++ b/docs/PLAN.md @@ -36,8 +36,8 @@ in [ARCHITECTURE.md](ARCHITECTURE.md). Every item here passes the same gates as - **Complete layout introspection.** `cui layout` can report verified named rectangles and lower-bound unions, but CUI exposes neither id-0 container rectangles nor authoritative scroll/content extents. A read-only layout walk and scroll-info API belong upstream. -- **Safe live-window control.** A managed window-session prototype cannot prove callbacks are at a - safe frame boundary during nested modal/deferred-paint pumps, nor reliably cancel input during - native teardown. This needs an upstream post-at-frame-boundary/wake and destroy-lifecycle hook; - do not ship the current prototype as a supported tool. +- **Cross-platform live-window control.** Windows live attach is opt-in and uses the pinned + backend's between-frame message pump, thread/context-owned callback guards and destruction + hooks. Other backends still need an upstream post-at-frame-boundary/wake and destroy-lifecycle + API; do not substitute a background render loop or silently start a headless app. - **macOS signing and notarization** for a distributed `.app`. diff --git a/docs/SIZE.md b/docs/SIZE.md index 6254cee..fc564c3 100644 --- a/docs/SIZE.md +++ b/docs/SIZE.md @@ -36,6 +36,7 @@ product: `dotnet run` keeps the headless channel and the framework's exception m |---|---|---| | `CuiSharpSizeProfile` | `true` for an AOT publish | the diagnostic switches below, as a set | | `CuiSharpHeadless` | `false` for an AOT publish, `true` otherwise | the protocol `dotnet cui` drives an app with | +| `CuiSharpLive` | `false` for an AOT publish, `true` otherwise | the Windows live named-pipe channel; runtime opt-in is still required | | `CuiSharpVerboseErrors` | `false` | keeps framework exception messages and stack traces | The set also turns `DebuggerSupport` off, which drops the debug header an AOT binary otherwise @@ -69,6 +70,9 @@ by a few hundred bytes; the mini template sets the properties that keep that pub `dotnet cui` passes `-p:CuiSharpHeadless=true` to the builds it runs itself, and says so when a **published** app has no channel: publishing one for a tool to inspect needs the same property. +For live-window attach, publish with `-p:CuiSharpLive=true`, then enable the listener at runtime +with `--live`, `CUISHARP_LIVE=1`, or `CuiAppOptions.LiveAttach`. Both IPC channels are excluded +from an ordinary AOT publish; merely not opening a listener does not let the trimmer remove it. ## What a feature costs diff --git a/skills/cui-dotnet/SKILL.md b/skills/cui-dotnet/SKILL.md index e3b1d9e..5eeca90 100644 --- a/skills/cui-dotnet/SKILL.md +++ b/skills/cui-dotnet/SKILL.md @@ -600,6 +600,10 @@ behind, so anything that should be checked twice belongs in a test instead. pass `-a` / `--attach` (or `--attach=<pid|title>`) to any command (`dotnet cui tree -a`, `dotnet cui click Save -a`, `dotnet cui png live.png -a`, `dotnet cui quit -a`). Commands travel over a user-only local named pipe (`cui-live-<pid>-<nonce>`) and leave the window open between calls. + Published AOT apps omit the listener by default: publish with `-p:CuiSharpLive=true` to retain it, + then opt in at runtime with `--live` or `LiveAttach`. Disconnecting abandons pending commands; + already-consumed input cannot be undone, but injected held input is released before the next + client is accepted. A wait timeout is an error, including when the frame completes late. - The app's own output — `Console.WriteLine`, a logger, a stack trace — reaches your stderr, so stdout is exactly the answer you asked for. - Text in a script the bundled Latin faces do not cover draws nothing at all, with no box and no @@ -615,13 +619,14 @@ behind, so anything that should be checked twice belongs in a test instead. `dotnet publish -c Release -r win-x64` links CUI into one executable. The package already trims it: a self-contained publish compiles the headless channel and the framework diagnostics a shipped app -never reads out of the binary, which is about 20% of a small app. Three properties are the whole +never reads out of the binary, which is about 20% of a small app. Four properties are the whole vocabulary, and the defaults are right for most apps: | Property | Default on a publish | Set it when | |---|---|---| | `CuiSharpSizeProfile` | `true` | `false` keeps telemetry, hot-reload metadata and HTTP tracing | | `CuiSharpHeadless` | `false` | `true` keeps the channel a tool drives the published exe with | +| `CuiSharpLive` | `false` | `true` keeps Windows live attach; the app must still opt in at runtime | | `CuiSharpVerboseErrors` | `false` | `true` keeps framework exception messages and stack traces | `OptimizationPreference=Size` and `InvariantGlobalization=true` are the app's call, not the diff --git a/src/CuiSharp.Tests/LiveControlTests.cs b/src/CuiSharp.Tests/LiveControlTests.cs index ceba949..4e2eb3a 100644 --- a/src/CuiSharp.Tests/LiveControlTests.cs +++ b/src/CuiSharp.Tests/LiveControlTests.cs @@ -1,3 +1,5 @@ +using System.IO.Pipes; +using System.Text; using System.Text.Json; using CuiSharp.Hosting; using CuiSharp.Tools; @@ -366,6 +368,169 @@ public void DotnetCuiPsAndAttachDriveTheLiveWindowOverNamedPipeAndLeaveItOpenUnt Assert.True(window.WaitClosed(TimeSpan.FromSeconds(10))); } + [Fact] + public async Task ACanceledKeyIsReleasedBeforeAcknowledgementAndTheNextKeyStillWorks() + { + if (!CanRun) return; + using var cancel = new CancellationTokenSource(); + bool sawDown = false, held = false; + int presses = 0; + using LiveWindow window = LiveWindow.StartLive(ui => + { + held = ui.KeyDown(Key.A); + if (held) + { + sawDown = true; + if (ui.KeyPressed(Key.A)) presses++; + cancel.Cancel(); + } + ui.Text(held ? "Held" : "Released"); + }); + + await Assert.ThrowsAsync<TaskCanceledException>(() => window.Session.KeyAsync(Key.A, cancel.Token).WaitAsync(TimeSpan.FromSeconds(5))); + Assert.True(sawDown); + Assert.False(held); + LiveSnapshot later = await window.Session.FrameAsync(3).WaitAsync(TimeSpan.FromSeconds(5)); + Assert.Contains(later.Entries, widget => widget.Text == "Released"); + int before = presses; + await window.Session.KeyAsync(Key.A).WaitAsync(TimeSpan.FromSeconds(5)); + Assert.Equal(before + 1, presses); + Assert.False(held); + } + + [Fact] + public async Task ABackgroundSurfacePainterDoesNotBlockTheLiveWindowsBoundary() + { + if (!CanRun) return; + using LiveWindow window = LiveWindow.StartLive(ui => ui.Text("Live window")); + Await(window.Session.SnapshotAsync(pixels: false)); + using var entered = new ManualResetEventSlim(); + using var release = new ManualResetEventSlim(); + Task background = Task.Run(() => + { + using var surface = CuiSurface.Create(100, 100); + surface.BeginFrame(); + surface.Ui.Canvas("background", Size.Px(80), Size.Px(80), (ui, rect) => + { + entered.Set(); + release.Wait(TimeSpan.FromSeconds(10)); + ui.DrawRect(rect, Color.Accent); + }); + surface.EndFrame(); + }); + try + { + Assert.True(entered.Wait(TimeSpan.FromSeconds(5))); + LiveSnapshot snapshot = await window.Session.SnapshotAsync(pixels: false) + .WaitAsync(TimeSpan.FromSeconds(3)); + Assert.Contains(snapshot.Entries, widget => widget.Text == "Live window"); + Assert.False(background.IsCompleted); + } + finally + { + release.Set(); + await background.WaitAsync(TimeSpan.FromSeconds(5)); + } + } + + [Theory] + [InlineData("wait", "0.2")] + [InlineData("waittext", "0.2 Target")] + public async Task AWaitExpiresWhileItsFrameIsBlockedInsteadOfAcceptingALateSuccess(string command, string argument) + { + if (!CanRun) return; + bool armed = false; + using var entered = new ManualResetEventSlim(); + using var release = new ManualResetEventSlim(); + using LiveWindow window = LiveWindow.StartLive(ui => + { + if (Volatile.Read(ref armed)) + { + entered.Set(); + release.Wait(TimeSpan.FromSeconds(10)); + ui.MarkReady(); + ui.Text("Target"); + } + else ui.Text("Loading"); + }); + Await(window.Session.SnapshotAsync(pixels: false)); + Volatile.Write(ref armed, true); + Task<LiveSnapshot> blocked = window.Session.SnapshotAsync(pixels: false); + try + { + // Start the clock only once the UI is definitely blocked; scheduling a first + // frame must not consume the deadline this test is trying to exercise. + Assert.True(entered.Wait(TimeSpan.FromSeconds(5))); + Task<string> wait = window.Session.ExecuteCommandAsync(command, argument); + InvalidOperationException error = await Assert.ThrowsAsync<InvalidOperationException>(() => + wait.WaitAsync(TimeSpan.FromSeconds(3))); + Assert.Contains("within 0.2s", error.Message, StringComparison.Ordinal); + Assert.False(release.IsSet); + } + finally { release.Set(); } + await blocked.WaitAsync(TimeSpan.FromSeconds(5)); + LiveSnapshot later = await window.Session.SnapshotAsync(pixels: false).WaitAsync(TimeSpan.FromSeconds(5)); + Assert.True(later.Ready); + Assert.Contains(later.Entries, widget => widget.Text == "Target"); + } + + [Fact] + public async Task DisconnectingDuringAWaitFreesThePipeForTheNextClient() + { + if (!CanRun) return; + int frames = 0; + using LiveWindow window = LiveWindow.StartLive(ui => + { + Interlocked.Increment(ref frames); + ui.Text("Still loading"); + }); + Await(window.Session.SnapshotAsync(pixels: false)); + using (var first = ConnectPipe(window)) + { + using var reader = new StreamReader(first, Encoding.UTF8, false, 1024, leaveOpen: true); + Assert.StartsWith("CUI-READY ", await reader.ReadLineAsync().WaitAsync(TimeSpan.FromSeconds(5))); + int before = Volatile.Read(ref frames); + first.Write(Encoding.UTF8.GetBytes("wait 3600\n")); + first.Flush(); + Assert.True(SpinWait.SpinUntil(() => Volatile.Read(ref frames) >= before + 3, TimeSpan.FromSeconds(5))); + } + using var next = ConnectPipe(window); + using var client = HeadlessClient.Attach(next, next, readyTimeout: TimeSpan.FromSeconds(3)); + Answer answer = client.Send("tree", answerTimeout: TimeSpan.FromSeconds(3)); + Assert.True(answer.Ok, answer.Payload); + Assert.Contains("Still loading", answer.Payload, StringComparison.Ordinal); + Assert.False(window.IsClosed); + } + + [Theory] + [InlineData("")] + [InlineData("part of a command")] + public async Task ClosingTheWindowClosesAnIdleOrPartialLineClientAndJoinsTheServer(string partialLine) + { + if (!CanRun) return; + using LiveWindow window = LiveWindow.StartLive(ui => ui.Text("Shutdown")); + using var pipe = ConnectPipe(window); + using var reader = new StreamReader(pipe, Encoding.UTF8, false, 1024, leaveOpen: true); + Assert.StartsWith("CUI-READY ", await reader.ReadLineAsync().WaitAsync(TimeSpan.FromSeconds(5))); + if (partialLine.Length > 0) + { + pipe.Write(Encoding.UTF8.GetBytes(partialLine)); + pipe.Flush(); + } + window.Session.RequestClose(); + Assert.True(window.WaitClosed(TimeSpan.FromSeconds(5))); + Assert.Null(await reader.ReadLineAsync().WaitAsync(TimeSpan.FromSeconds(3))); + Assert.True(window.Session.PipeCompletion.IsCompletedSuccessfully); + Assert.False(File.Exists(window.Session.DiscoveryFilePath)); + } + + private static NamedPipeClientStream ConnectPipe(LiveWindow window) + { + var pipe = new NamedPipeClientStream(".", window.Session.PipeName, PipeDirection.InOut, PipeOptions.Asynchronous); + try { pipe.Connect(3000); return pipe; } + catch { pipe.Dispose(); throw; } + } + private static (int Exit, string Out, string Err) RunCli(params string[] args) { var output = new StringWriter(); diff --git a/src/CuiSharp.Tests/NativePackagingTests.cs b/src/CuiSharp.Tests/NativePackagingTests.cs index a53a793..15b60e0 100644 --- a/src/CuiSharp.Tests/NativePackagingTests.cs +++ b/src/CuiSharp.Tests/NativePackagingTests.cs @@ -110,33 +110,40 @@ public async Task ABuildStampPreventsRelabelingAnArmArchiveAsX64(string builtRid } [Theory] - [InlineData("win-x64", null, "false", "true")] - [InlineData(null, null, "true", "")] + [InlineData("win-x64", null, "false", "false", "true")] + [InlineData(null, null, "true", "true", "")] // A published app that a tool should drive asks for the channel back, and the size profile is // not what provides it: the two switches answer separately. - [InlineData("win-x64", "-p:CuiSharpHeadless=true", "true", "true")] + [InlineData("win-x64", "-p:CuiSharpHeadless=true", "true", "false", "true")] + [InlineData("win-x64", "-p:CuiSharpLive=true", "false", "true", "true")] + [InlineData(null, "-p:CuiSharpLive=false", "true", "false", "")] public async Task TheSizeProfileAppliesToASelfContainedPublishAndToNothingElse( - string? rid, string? overrides, string headless, string profile) + string? rid, string? overrides, string headless, string live, string profile) { using var fixture = new NativeFixture(); var arguments = new List<string> { "msbuild", fixture.Consumer(), "-p:PublishAot=true" }; if (rid is not null) arguments.Add($"-p:RuntimeIdentifier={rid}"); if (overrides is not null) arguments.Add(overrides); - arguments.AddRange(["-getProperty:CuiSharpHeadless", "-getProperty:CuiSharpSizeProfile", + arguments.AddRange(["-getProperty:CuiSharpHeadless", "-getProperty:CuiSharpLive", "-getProperty:CuiSharpSizeProfile", "-getItem:RuntimeHostConfigurationOption"]); var result = await RunAsync([.. arguments]); Assert.Equal(0, result.Exit); using var json = JsonDocument.Parse(result.Output); var properties = json.RootElement.GetProperty("Properties"); Assert.Equal(headless, properties.GetProperty("CuiSharpHeadless").GetString()); + Assert.Equal(live, properties.GetProperty("CuiSharpLive").GetString()); Assert.Equal(profile, properties.GetProperty("CuiSharpSizeProfile").GetString()); // The property is only worth anything if it reaches the trimmer as a feature switch: a // build that set it and then never wrote the switch would look identical from here. - var switchItem = Assert.Single(json.RootElement.GetProperty("Items") - .GetProperty("RuntimeHostConfigurationOption").EnumerateArray()); - Assert.Equal("CuiSharp.Headless", switchItem.GetProperty("Identity").GetString()); - Assert.Equal(headless, switchItem.GetProperty("Value").GetString()); + var switches = json.RootElement.GetProperty("Items") + .GetProperty("RuntimeHostConfigurationOption").EnumerateArray().ToArray(); + foreach (var (name, value) in new[] { ("CuiSharp.Headless", headless), ("CuiSharp.Live", live) }) + { + var item = Assert.Single(switches, item => item.GetProperty("Identity").GetString() == name); + Assert.Equal(value, item.GetProperty("Value").GetString()); + Assert.Equal("true", item.GetProperty("Trim").GetString()); + } } /// <summary> @@ -151,7 +158,7 @@ public async Task TurningTheProfileOffLeavesTheFrameworkSwitchesToTheSdk() var result = await RunAsync("msbuild", fixture.Consumer(), "-p:PublishAot=true", "-p:RuntimeIdentifier=win-x64", "-p:CuiSharpSizeProfile=false", "-getProperty:StackTraceSupport", "-getProperty:UseSystemResourceKeys", - "-getProperty:EventSourceSupport", "-getProperty:CuiSharpHeadless"); + "-getProperty:EventSourceSupport", "-getProperty:CuiSharpHeadless", "-getProperty:CuiSharpLive"); Assert.Equal(0, result.Exit); using var json = JsonDocument.Parse(result.Output); var properties = json.RootElement.GetProperty("Properties"); @@ -162,6 +169,7 @@ public async Task TurningTheProfileOffLeavesTheFrameworkSwitchesToTheSdk() // The channel is not part of the diagnostic set: turning telemetry back on must not quietly // put the IO stack back into every binary. Assert.Equal("false", properties.GetProperty("CuiSharpHeadless").GetString()); + Assert.Equal("false", properties.GetProperty("CuiSharpLive").GetString()); } /// <summary> diff --git a/src/CuiSharp.Tests/ProtocolBoundsTests.cs b/src/CuiSharp.Tests/ProtocolBoundsTests.cs index 842d939..0f35348 100644 --- a/src/CuiSharp.Tests/ProtocolBoundsTests.cs +++ b/src/CuiSharp.Tests/ProtocolBoundsTests.cs @@ -155,6 +155,42 @@ public void AnAnswerPastTheProtocolLimitIsAnErrorThatSaysSo() Assert.Contains("past this protocol's 16-byte limit", wire, StringComparison.Ordinal); } + [Fact] + public async Task TheAsyncCommandReaderAcceptsTheBoundAndRejectsTheNextCharacter() + { + string longest = new('x', HeadlessLoop.MaxCommandChars); + Assert.Equal(longest, await HeadlessLoop.ReadCommandAsync(new StringReader(longest + "\n"), CancellationToken.None)); + Assert.Equal("tree", await HeadlessLoop.ReadCommandAsync(new StringReader("tree\r\n"), CancellationToken.None)); + ArgumentException error = await Assert.ThrowsAsync<ArgumentException>(() => + HeadlessLoop.ReadCommandAsync(new StringReader(longest + "x"), CancellationToken.None)); + Assert.Contains("newline", error.Message, StringComparison.Ordinal); + } + + [Fact] + public async Task TheAsyncCommandReaderCanCancelInTheMiddleOfALine() + { + using var stream = new Feed(Encoding.UTF8.GetBytes("type partial")); + using var reader = new StreamReader(stream, Encoding.UTF8); + using var cancel = new CancellationTokenSource(TimeSpan.FromMilliseconds(100)); + await Assert.ThrowsAnyAsync<OperationCanceledException>(() => + HeadlessLoop.ReadCommandAsync(reader, cancel.Token).WaitAsync(TimeSpan.FromSeconds(3))); + } + + [Theory] + [InlineData(true)] + [InlineData(false)] + public async Task AsyncAnswersRoundTripMultilineUnicodeByTheirByteCount(bool ok) + { + const string text = "Save 中文\n↳ another line"; + var sink = new StringWriter(); + await HeadlessLoop.AnswerAsync(sink, ok, text, CancellationToken.None); + using var stream = new Feed(Encoding.UTF8.GetBytes("CUI-READY 800 600\n" + sink)); + using var client = HeadlessClient.Attach(stream, new MemoryStream()); + Answer answer = client.Send("tree"); + Assert.Equal(ok, answer.Ok); + Assert.Equal(text, answer.Payload); + } + /// <summary>One stream the app would have written: some bytes, then nothing at all.</summary> private sealed class Feed(params byte[][] chunks) : Stream { diff --git a/src/CuiSharp/CuiApp.cs b/src/CuiSharp/CuiApp.cs index fcc3301..c78ba81 100644 --- a/src/CuiSharp/CuiApp.cs +++ b/src/CuiSharp/CuiApp.cs @@ -251,17 +251,6 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) if (Features.Headless && Hosting.HeadlessLoop.Requested(args)) return Hosting.HeadlessLoop.Run(draw, options); - // Live attach is opt-in three ways and platform-honest: a Windows-first hook, so any - // other platform that was asked for it fails here instead of showing a window no tool - // can reach. - bool live = Features.Live && (options.LiveAttach || Hosting.LiveSession.Requested(args)); - if (live && !OperatingSystem.IsWindows()) - { - throw new NotSupportedException( - "Live attach is Windows-only for now: no other backend has a proven way to wake CUI's " + - "idle loop or run work at its frame boundaries. Run without live attach on this platform."); - } - // CUI owns the loop here on purpose. `cui_app_run` registers a frame // callback, and that is the callback the OS-driven resize loop invokes: // while the user drags a window border, Windows runs a modal message loop @@ -271,12 +260,17 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) // the caller's loop that is blocked, so the plan's rule is that a real // window runs through Run. var state = new RunState(options, draw); - if (live) + // Keep the opt-in branch inside the feature gate, rather than storing the gate in a + // local: AOT's dependency scanner must discard the entire IPC construction path. + if (Features.Live) { - // The message window belongs to the thread that runs cui_app_run, so it is created - // here, on the thread about to enter the loop — and a live request that cannot build - // its channel fails here, before any window shows, instead of running undriven. - state.Live = new Hosting.LiveSession(options, state.Frame); + if (options.LiveAttach || Hosting.LiveSession.Requested(args)) + { + if (!OperatingSystem.IsWindows()) + throw new NotSupportedException("Live attach is Windows-only for now. Run without live attach on this platform."); + // The message window belongs to the thread about to enter CUI's native loop. + state.Live = new Hosting.LiveSession(options, state.Frame); + } } GCHandle handle = GCHandle.Alloc(state); @@ -310,7 +304,7 @@ internal static int Run(CuiAppOptions options, DrawFn draw, string[]? args) } finally { - state.Live?.Dispose(); + if (Features.Live) state.Live?.Dispose(); LiveResize.Uninstall(state.WindowHandle); state.Window?.Release(); handle.Free(); @@ -337,7 +331,7 @@ internal void Hooking(nint ui) nint app = Win32.AppOf(Win32.FindCuiWindow()); if (app == 0) { - if (Live is not null) + if (Features.Live && Live is not null) throw new InvalidOperationException("Live attach could not recover the native CUI window on the UI thread."); return; } @@ -346,7 +340,7 @@ internal void Hooking(nint ui) Window = new CuiWindow(app) { FileDialog = Options.FileDialog }; LiveResize.Install(WindowHandle, Options.NoVsync); Options.WindowCreated?.Invoke(Window); - Live?.Bind(app, ui, WindowHandle); + if (Features.Live) Live?.Bind(app, ui, WindowHandle); } } @@ -366,7 +360,7 @@ private static void RunThunk(nint ui, void* user) state.Frame.Reset(); Utf8.BeginFrame(); state.Frame.SyncLocalization(ui); - state.Live?.EnterFrame(); + if (Features.Live) state.Live?.EnterFrame(); try { state.Draw(new Ui(ui, state.Frame)); @@ -375,7 +369,7 @@ private static void RunThunk(nint ui, void* user) { // A live capture is reading this frame's labels out of the arena the line above will // reset on the next callback, so its copies are taken now, before that happens. - state.Live?.SealFrame(); + if (Features.Live) state.Live?.SealFrame(); } } diff --git a/src/CuiSharp/Hosting/HeadlessLoop.cs b/src/CuiSharp/Hosting/HeadlessLoop.cs index bca2fa8..30c0092 100644 --- a/src/CuiSharp/Hosting/HeadlessLoop.cs +++ b/src/CuiSharp/Hosting/HeadlessLoop.cs @@ -174,6 +174,22 @@ public static int Run(HeadlessApp app, TextReader? input = null, TextWriter? out } } + // The live listener must interrupt a partial line on disconnect/shutdown, not just check + // cancellation between commands. Keep the same bound as the synchronous headless reader. + internal static async Task<string?> ReadCommandAsync(TextReader source, CancellationToken ct) + { + var line = new StringBuilder(128); + char[] one = new char[1]; + while (await source.ReadAsync(one.AsMemory(), ct).ConfigureAwait(false) != 0) + { + if (one[0] == '\n') return line.ToString().TrimEnd('\r'); + if (line.Length >= MaxCommandChars) + throw new ArgumentException($"A command line longer than {MaxCommandChars} characters was not read. Commands end with a newline."); + line.Append(one[0]); + } + return line.Length == 0 ? null : line.ToString(); + } + /// <summary> /// Anything the app prints belongs on stderr: stdout is the protocol, and a stray /// <c>Console.WriteLine</c> — in the app, in a service it resolved, in a logger — would @@ -381,6 +397,18 @@ private static string SavePng(HeadlessApp app, string argument) } internal static void Answer(TextWriter sink, bool ok, string payload, int limit = MaxAnswerBytes) + { + sink.Write(FrameAnswer(ok, payload, limit)); + sink.Flush(); + } + + internal static async Task AnswerAsync(TextWriter sink, bool ok, string payload, CancellationToken ct) + { + await sink.WriteAsync(FrameAnswer(ok, payload, MaxAnswerBytes).AsMemory(), ct).ConfigureAwait(false); + await sink.FlushAsync(ct).ConfigureAwait(false); + } + + private static string FrameAnswer(bool ok, string payload, int limit) { int bytes = Encoding.UTF8.GetByteCount(payload); if (bytes > limit) @@ -394,9 +422,6 @@ internal static void Answer(TextWriter sink, bool ok, string payload, int limit bytes = Encoding.UTF8.GetByteCount(payload); } - sink.Write($"{(ok ? "CUI-OK" : "CUI-ERR")} {bytes}\n"); - if (bytes > 0) sink.Write(payload); - sink.Write('\n'); - sink.Flush(); + return $"{(ok ? "CUI-OK" : "CUI-ERR")} {bytes}\n{payload}\n"; } } diff --git a/src/CuiSharp/Hosting/LiveResize.cs b/src/CuiSharp/Hosting/LiveResize.cs index c9e098e..5b5037e 100644 --- a/src/CuiSharp/Hosting/LiveResize.cs +++ b/src/CuiSharp/Hosting/LiveResize.cs @@ -116,12 +116,12 @@ private static nint Proc(nint hwnd, uint message, nint wparam, nint lparam) break; case Win32.WmDestroy: - LiveSession.Active?.OnWindowDestroying(hwnd); + if (Features.Live) LiveSession.CurrentThread?.OnWindowDestroying(hwnd); break; case Win32.WmNcDestroy: // The window is going away: stop holding its procedure, then let CUI clean up. - LiveSession.Active?.OnWindowDestroying(hwnd); + if (Features.Live) LiveSession.CurrentThread?.OnWindowDestroying(hwnd); Installed.Remove(hwnd); break; } diff --git a/src/CuiSharp/Hosting/LiveSession.cs b/src/CuiSharp/Hosting/LiveSession.cs index 21fb9c7..c43af58 100644 --- a/src/CuiSharp/Hosting/LiveSession.cs +++ b/src/CuiSharp/Hosting/LiveSession.cs @@ -12,6 +12,7 @@ using System.Runtime.InteropServices; using System.Text; using System.Text.Json; +using System.Threading.Channels; using CuiSharp.Interop; namespace CuiSharp.Hosting; @@ -28,6 +29,12 @@ private sealed record Published(long Generation, LiveSession? Session); private static readonly Lock StaticGate = new(); private static Published _published = new(0, null); + [ThreadStatic] private static LiveSession? _threadSession; + + // Callback guards belong to the window thread, never to a background surface's painter. + internal static LiveSession? CurrentThread => _threadSession; + internal static LiveSession? ForContext(nint ctx) => + _threadSession is { } session && session._ctx == ctx ? session : null; /// <summary>The session of the window this process is showing, or null when nothing is driven.</summary> internal static LiveSession? Active => Volatile.Read(ref _published).Session; @@ -54,6 +61,8 @@ private sealed record Published(long Generation, LiveSession? Session); private readonly List<string> _faults = []; private readonly CancellationTokenSource _pipeCts = new(); private readonly Task _pipeTask; + private NamedPipeServerStream? _pipeServer; + internal Task PipeCompletion => _pipeTask; private nint _messageHwnd; private nint _app; @@ -72,6 +81,7 @@ private sealed record Published(long Generation, LiveSession? Session); private bool _armed; private int _callbackDepth; private bool _injectedPress; + private Key _injectedKey; private bool _timerArmed; private volatile bool _closing; private bool _disposed; @@ -119,6 +129,7 @@ internal LiveSession(CuiAppOptions? options = null, UiFrameState? frameState = n PipeName = $"cui-live-{Environment.ProcessId}-{nonce}"; DiscoveryFilePath = Path.Combine(GetDiscoveryDirectory(), $"{PipeName}.json"); _reserved = true; + _threadSession = this; _pipeTask = Task.Run(() => RunPipeServerAsync(_pipeCts.Token)); } @@ -218,8 +229,7 @@ internal Task<LiveSnapshot> TypeAsync(string text, CancellationToken cancellatio internal Task<LiveSnapshot> FrameAsync(int count, bool capture = true, CancellationToken cancellation = default) { ArgumentOutOfRangeException.ThrowIfLessThan(count, 1); - int extra = capture ? count : count; - var steps = new Step[extra]; + var steps = new Step[count]; for (int i = 0; i < count - (capture ? 1 : 0); i++) steps[i] = new Step(StepKind.Frame); if (capture) steps[^1] = new Step(StepKind.Capture); return Submit(steps, pixels: false, cancellation); @@ -407,7 +417,7 @@ private void OnBoundary() _completing = null; _active = null; _cancelCleanup = null; - ReleaseInjectedPress(); + ReleaseInjectedInput(); } if (HasWork()) WakeAgainSoon(); @@ -445,11 +455,20 @@ private void Apply(Step step, Command command, ulong frame) _lastInjectedFrame = frame; break; case StepKind.KeyDown: - Native.InputKey(_ctx, step.Key, 1, 0); + // Do not take ownership of a key the human already holds. + if (Native.KeyDown(_ctx, step.Key) == 0) + { + Native.InputKey(_ctx, step.Key, 1, 0); + _injectedKey = step.Key; + } _lastInjectedFrame = frame; break; case StepKind.KeyUp: - Native.InputKey(_ctx, step.Key, 0, 0); + if (_injectedKey == step.Key && _injectedKey != Key.None) + { + Native.InputKey(_ctx, step.Key, 0, 0); + _injectedKey = Key.None; + } _lastInjectedFrame = frame; break; case StepKind.Text: @@ -577,12 +596,10 @@ private void StartCancellationCleanup(Command command) { command.Discard(); ulong currentFrame = _bound ? Native.FrameCount(_ctx) : 0; - if (_injectedPress) + if (_injectedPress || _injectedKey != Key.None) { - Native.InputMouseLeave(_ctx); - Native.InputMouseButton(_ctx, MouseButton.Left, 0); - _injectedPress = false; - Native.RequestRedraw(_ctx); + if (_injectedPress) Native.InputMouseLeave(_ctx); + ReleaseInjectedInput(); _cancelCleanup = command; _cancelFrame = currentFrame; return; @@ -599,12 +616,19 @@ private void StartCancellationCleanup(Command command) command.Tcs.TrySetCanceled(); } - private void ReleaseInjectedPress() + private void ReleaseInjectedInput() { - if (!_injectedPress) return; - _injectedPress = false; - if (!_bound) return; - Native.InputMouseButton(_ctx, MouseButton.Left, 0); + if (!_bound || _closing) return; + if (_injectedPress) + { + Native.InputMouseButton(_ctx, MouseButton.Left, 0); + _injectedPress = false; + } + if (_injectedKey != Key.None) + { + Native.InputKey(_ctx, _injectedKey, 0, 0); + _injectedKey = Key.None; + } Native.RequestRedraw(_ctx); } @@ -671,92 +695,125 @@ private void FailAllPending(string message) private async Task RunPipeServerAsync(CancellationToken ct) { - while (!ct.IsCancellationRequested) + try { - try - { - using var server = new NamedPipeServerStream( - PipeName, - PipeDirection.InOut, - 1, - PipeTransmissionMode.Byte, - PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); - - await server.WaitForConnectionAsync(ct).ConfigureAwait(false); - await ServePipeClientAsync(server, ct).ConfigureAwait(false); - } - catch (OperationCanceledException) when (ct.IsCancellationRequested) + while (!ct.IsCancellationRequested) { - break; - } - catch (Exception) - { - if (ct.IsCancellationRequested) break; - await Task.Delay(25, ct).ConfigureAwait(false); + try + { + using var server = new NamedPipeServerStream( + PipeName, PipeDirection.InOut, 1, PipeTransmissionMode.Byte, + PipeOptions.Asynchronous | PipeOptions.CurrentUserOnly); + lock (_gate) + { + if (_disposed) return; + _pipeServer = server; + } + try + { + await server.WaitForConnectionAsync(ct).ConfigureAwait(false); + await ServePipeClientAsync(server, ct).ConfigureAwait(false); + } + finally + { + lock (_gate) _pipeServer = null; + } + } + catch (Exception error) when (error is IOException or ObjectDisposedException) + { + if (!ct.IsCancellationRequested) + await Task.Delay(25, ct).ConfigureAwait(false); + } } } + catch (OperationCanceledException) when (ct.IsCancellationRequested) + { + } } private async Task ServePipeClientAsync(NamedPipeServerStream stream, CancellationToken ct) { - // Wait briefly for the first frame to bind the window if a client connected during startup. - Stopwatch bindWait = Stopwatch.StartNew(); - while (!_bound && !_disposed && !_closing && bindWait.Elapsed < TimeSpan.FromSeconds(15)) - { - await Task.Delay(10, ct).ConfigureAwait(false); - } - + using var connection = CancellationTokenSource.CreateLinkedTokenSource(ct); using var reader = new StreamReader(stream, new UTF8Encoding(false), detectEncodingFromByteOrderMarks: false, bufferSize: 1024, leaveOpen: true); - using var writer = new StreamWriter(stream, new UTF8Encoding(false), bufferSize: 1024, leaveOpen: true) { AutoFlush = false }; + using var writer = new StreamWriter(stream, new UTF8Encoding(false), bufferSize: 1024, leaveOpen: true); - writer.Write($"CUI-READY {_options.Width} {_options.Height}\n"); - writer.Flush(); + await writer.WriteAsync($"CUI-READY {_options.Width} {_options.Height}\n".AsMemory(), ct).ConfigureAwait(false); + await writer.FlushAsync(ct).ConfigureAwait(false); - while (!ct.IsCancellationRequested && stream.IsConnected) + // The sole reader keeps watching for EOF even while a command awaits UI frames. A bounded + // queue permits pipelining without letting a client retain unlimited commands in the app. + var lines = Channel.CreateBounded<string>(new BoundedChannelOptions(MaxQueue) { - string? read; - try - { - read = HeadlessLoop.ReadCommand(reader); - } - catch (ArgumentException error) - { - HeadlessLoop.Answer(writer, ok: false, error.Message); - return; - } - catch (IOException) + SingleReader = true, + SingleWriter = true, + }); + Task<string?> receiving = ReceiveCommandsAsync(reader, lines.Writer, connection); + try + { + await foreach (string line in lines.Reader.ReadAllAsync(connection.Token).ConfigureAwait(false)) { - return; - } - - if (read is null) return; - string line = read.Trim(); - if (line.Length == 0) continue; - - int space = line.IndexOf(' ', StringComparison.Ordinal); - string command = (space < 0 ? line : line[..space]).ToLowerInvariant(); - string argument = space < 0 ? "" : line[(space + 1)..]; + int space = line.IndexOf(' ', StringComparison.Ordinal); + string command = (space < 0 ? line : line[..space]).ToLowerInvariant(); + string argument = space < 0 ? "" : line[(space + 1)..]; + if (command is "quit" or "exit") + { + await HeadlessLoop.AnswerAsync(writer, true, "", connection.Token).ConfigureAwait(false); + RequestClose(); + return; + } - if (command is "quit" or "exit") - { - HeadlessLoop.Answer(writer, ok: true, ""); - RequestClose(); - return; + try + { + string payload = await ExecuteCommandAsync(command, argument, connection.Token).ConfigureAwait(false); + await HeadlessLoop.AnswerAsync(writer, true, payload, connection.Token).ConfigureAwait(false); + } + catch (Exception error) when (error is InvalidOperationException or ArgumentException or IOException or FormatException or OverflowException) + { + connection.Token.ThrowIfCancellationRequested(); + await HeadlessLoop.AnswerAsync(writer, false, error.Message, connection.Token).ConfigureAwait(false); + } } + } + catch (OperationCanceledException) when (connection.IsCancellationRequested) + { + // Submit's task completes only after injected input cleanup has been consumed. Do not + // accept another connection until that acknowledgement, even after the client left. + } + finally + { + connection.Cancel(); + string? complaint = await receiving.ConfigureAwait(false); + if (complaint is not null && !ct.IsCancellationRequested) + await HeadlessLoop.AnswerAsync(writer, false, complaint, ct).ConfigureAwait(false); + } + } - try - { - string payload = await ExecuteCommandAsync(command, argument, ct).ConfigureAwait(false); - HeadlessLoop.Answer(writer, ok: true, payload); - } - catch (OperationCanceledException) when (ct.IsCancellationRequested) - { - return; - } - catch (Exception error) when (error is InvalidOperationException or ArgumentException or IOException or FormatException or OverflowException) + private static async Task<string?> ReceiveCommandsAsync( + StreamReader reader, ChannelWriter<string> lines, CancellationTokenSource connection) + { + try + { + while (await HeadlessLoop.ReadCommandAsync(reader, connection.Token).ConfigureAwait(false) is { } read) { - HeadlessLoop.Answer(writer, ok: false, error.Message); + string line = read.Trim(); + if (line.Length == 0) continue; + if (!lines.TryWrite(line)) + return $"The live connection already has {MaxQueue} commands waiting; wait for an answer before sending more."; } + return null; + } + catch (ArgumentException error) + { + return error.Message; + } + catch (Exception error) when (error is IOException or ObjectDisposedException or OperationCanceledException) + { + return null; + } + finally + { + lines.TryComplete(); + connection.Cancel(); } } @@ -902,42 +959,46 @@ private static SemanticNode FindNode(LiveSnapshot snapshot, string query) throw new InvalidOperationException($"No widget matching \"{query}\". The frame drew:\n{tree.Print()}"); } - private async Task<string> WaitReadyAsync(double seconds, CancellationToken ct) + private Task<string> WaitReadyAsync(double seconds, CancellationToken ct) => WaitAsync(seconds, null, ct); + + private Task<string> WaitTextAsync(double seconds, string query, CancellationToken ct) => WaitAsync(seconds, query, ct); + + private async Task<string> WaitAsync(double seconds, string? query, CancellationToken ct) { - TimeSpan budget = TimeSpan.FromSeconds(seconds); Stopwatch watch = Stopwatch.StartNew(); + TimeSpan budget = TimeSpan.FromSeconds(seconds); + using var deadline = CancellationTokenSource.CreateLinkedTokenSource(ct); + deadline.CancelAfter(budget); int frames = 0; - while (true) + LiveSnapshot? last = null; + try { - LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); - frames++; - if (snap.Ready) return snap.Print(); - if (watch.Elapsed >= budget) + while (watch.Elapsed < budget) { - throw new InvalidOperationException( - $"No frame marked itself ready within {seconds}s ({frames} frames drawn). " + - "The app declares readiness with ui.MarkReady() once its data is complete."); + ct.ThrowIfCancellationRequested(); + Task<LiveSnapshot> pending = SnapshotAsync(pixels: false, deadline.Token); + // A capture injects no input. The wait may end during a modal pump or a stalled + // draw; its cancelled capture retires at the next boundary, without keeping + // the protocol caller hostage to that frame. Observe a later teardown fault. + _ = pending.ContinueWith(static task => { _ = task.Exception; }, CancellationToken.None, + TaskContinuationOptions.OnlyOnFaulted | TaskContinuationOptions.ExecuteSynchronously, TaskScheduler.Default); + last = await pending.WaitAsync(deadline.Token).ConfigureAwait(false); + frames++; + ct.ThrowIfCancellationRequested(); + bool satisfied = query is null ? last.Ready : last.Tree.TryFind(query, out _); + if (watch.Elapsed >= budget || deadline.IsCancellationRequested) break; + if (satisfied) return last.Print(); } } - } - - private async Task<string> WaitTextAsync(double seconds, string query, CancellationToken ct) - { - TimeSpan budget = TimeSpan.FromSeconds(seconds); - Stopwatch watch = Stopwatch.StartNew(); - int frames = 0; - while (true) + catch (OperationCanceledException) when (!ct.IsCancellationRequested && deadline.IsCancellationRequested) { - LiveSnapshot snap = await SnapshotAsync(pixels: false, ct).ConfigureAwait(false); - frames++; - if (snap.Tree.TryFind(query, out _)) return snap.Print(); - if (watch.Elapsed >= budget) - { - throw new InvalidOperationException( - $"No frame drew \"{query}\" within {seconds}s ({frames} frames drawn). " + - $"The last frame drew:\n{snap.Print()}"); - } } + ct.ThrowIfCancellationRequested(); + throw new InvalidOperationException(query is null + ? $"No frame marked itself ready within {seconds}s ({frames} frames drawn). " + + "The app declares readiness with ui.MarkReady() once its data is complete." + : $"No frame drew \"{query}\" within {seconds}s ({frames} frames drawn). " + + (last is null ? "No frame completed during the wait." : $"The last frame drew:\n{last.Print()}")); } private static unsafe void SavePng(string path, byte[] pixels, int w, int h) @@ -1053,8 +1114,10 @@ public void Dispose() DeleteDiscoveryFile(); _pipeCts.Cancel(); + lock (_gate) _pipeServer?.Dispose(); FailAllPending("The live app closed before it could answer."); + if (ReferenceEquals(_threadSession, this)) _threadSession = null; if (_bound) WidgetRecorder.Attach(_recorder, enabled: false); StopWake(); @@ -1079,15 +1142,10 @@ public void Dispose() } } - try - { - _pipeTask.Wait(TimeSpan.FromMilliseconds(200)); - } - catch (AggregateException) - { - } - - _pipeCts.Dispose(); + // All reads/writes are cancellable and the active pipe is closed. Pending UI tasks were + // failed above, so joining cannot depend on the window pumping another frame. + try { _pipeTask.GetAwaiter().GetResult(); } + finally { _pipeCts.Dispose(); } } private enum StepKind diff --git a/src/CuiSharp/Runtime/FrameCallbacks.cs b/src/CuiSharp/Runtime/FrameCallbacks.cs index bbfbcae..a6693a4 100644 --- a/src/CuiSharp/Runtime/FrameCallbacks.cs +++ b/src/CuiSharp/Runtime/FrameCallbacks.cs @@ -119,7 +119,8 @@ private static nint Text(Holder holder, string? text) [UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])] internal static nint TreeLabelThunk(void* user, int node) { - Hosting.LiveSession.Active?.EnterCallback(); + var live = Features.Live ? Hosting.LiveSession.CurrentThread : null; + live?.EnterCallback(); try { Holder? holder = HolderOf(user); @@ -127,7 +128,7 @@ internal static nint TreeLabelThunk(void* user, int node) } finally { - Hosting.LiveSession.Active?.ExitCallback(); + live?.ExitCallback(); } } @@ -135,14 +136,15 @@ internal static nint TreeLabelThunk(void* user, int node) [UnmanagedCallersOnly(CallConvs = [typeof(CallConvCdecl)])] internal static int TreeCompareThunk(void* user, int a, int b) { - Hosting.LiveSession.Active?.EnterCallback(); + var live = Features.Live ? Hosting.LiveSession.CurrentThread : null; + live?.EnterCallback(); try { return HolderOf(user)?.Function is Comparison<int> compare ? compare(a, b) : 0; } finally { - Hosting.LiveSession.Active?.ExitCallback(); + live?.ExitCallback(); } } @@ -158,14 +160,15 @@ internal static void StateDisposerThunk(nint ui, void* data) if (data == null) return; nint user = *(nint*)data; if (user == 0) return; - Hosting.LiveSession.Active?.EnterCallback(); + var live = Features.Live ? Hosting.LiveSession.ForContext(ui) : null; + live?.EnterCallback(); try { if (HolderOf((void*)user)?.Function is Action onFree) onFree(); } finally { - Hosting.LiveSession.Active?.ExitCallback(); + live?.ExitCallback(); } } diff --git a/src/CuiSharp/Ui/Ui.Draw.cs b/src/CuiSharp/Ui/Ui.Draw.cs index 4607f62..4ff17e8 100644 --- a/src/CuiSharp/Ui/Ui.Draw.cs +++ b/src/CuiSharp/Ui/Ui.Draw.cs @@ -59,14 +59,15 @@ private static void PaintThunk(nint ui, NativeRect rect, void* user) int slot = (int)(nint)user; if (frame is null || (uint)slot >= (uint)frame.Painters.Count) return; - Hosting.LiveSession.Active?.EnterCallback(); + var live = Features.Live ? Hosting.LiveSession.ForContext(ui) : null; + live?.EnterCallback(); try { frame.Painters[slot](new Ui(ui, frame), new RectF(rect.X, rect.Y, rect.W, rect.H)); } finally { - Hosting.LiveSession.Active?.ExitCallback(); + live?.ExitCallback(); } } diff --git a/src/CuiSharp/build/CuiSharp.Size.targets b/src/CuiSharp/build/CuiSharp.Size.targets index bd2ac79..13f7900 100644 --- a/src/CuiSharp/build/CuiSharp.Size.targets +++ b/src/CuiSharp/build/CuiSharp.Size.targets @@ -15,6 +15,7 @@ CuiSharpSizeProfile=true|false the whole diagnostic set; on for an AOT publish CuiSharpHeadless=true|false the protocol `dotnet cui` drives an app with + CuiSharpLive=true|false the opt-in live named-pipe channel CuiSharpVerboseErrors=true keep framework exception messages and stack traces A build that is not a self-contained AOT publish keeps the headless channel and its exception @@ -29,6 +30,8 @@ <CuiSharpSizeProfile Condition="'$(CuiSharpSizeProfile)' == '' And '$(_CuiSharpSized)' == 'true'">true</CuiSharpSizeProfile> <CuiSharpHeadless Condition="'$(CuiSharpHeadless)' == '' And '$(_CuiSharpSized)' == 'true'">false</CuiSharpHeadless> <CuiSharpHeadless Condition="'$(CuiSharpHeadless)' == ''">true</CuiSharpHeadless> + <CuiSharpLive Condition="'$(CuiSharpLive)' == '' And '$(_CuiSharpSized)' == 'true'">false</CuiSharpLive> + <CuiSharpLive Condition="'$(CuiSharpLive)' == ''">true</CuiSharpLive> <CuiSharpVerboseErrors Condition="'$(CuiSharpVerboseErrors)' == ''">false</CuiSharpVerboseErrors> </PropertyGroup> @@ -39,6 +42,7 @@ --> <ItemGroup> <RuntimeHostConfigurationOption Include="CuiSharp.Headless" Value="$(CuiSharpHeadless)" Trim="true" /> + <RuntimeHostConfigurationOption Include="CuiSharp.Live" Value="$(CuiSharpLive)" Trim="true" /> </ItemGroup> <PropertyGroup Condition="'$(CuiSharpSizeProfile)' == 'true'"> From 41a07348f0f314ce2d2c9ca8a58266e5159baaaa Mon Sep 17 00:00:00 2001 From: CuiSharp Contributor <contributor@users.noreply.github.com> Date: Wed, 11 Nov 2026 19:37:20 +0800 Subject: [PATCH 18/18] Regenerate the API catalog after origin/main added CuiSurface.CreateGpu --- skills/cui-dotnet/api/catalog.json | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/skills/cui-dotnet/api/catalog.json b/skills/cui-dotnet/api/catalog.json index a6bb0bb..152c035 100644 --- a/skills/cui-dotnet/api/catalog.json +++ b/skills/cui-dotnet/api/catalog.json @@ -73,7 +73,7 @@ { "name": "CuiSharp.CuiQuery", "displayName": "CuiQuery", "kind": "static class", "summary": "A filter built by the query builder, usable without a frame: the sentence it reads as, the operators a field type offers, and whether a record matches. The builder edits QueryNode values the app owns, so these take the same two arrays it draws from.", "members": [{ "name": "Match", "kind": "method", "id": "method|Match|1|0|bool|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;ReadOnlySpan\u003Cstring\u003E values||hfe5a111eb371af93ddd479c8559033524b4074d21c2ef10252a21d545327d9f8", "signature": "static bool Match(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, ReadOnlySpan\u003Cstring\u003E values)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "values", "type": "ReadOnlySpan\u003Cstring\u003E" }], "summary": "Whether a record satisfies the nodes; values is its value for each field, as text (\u00221\u0022, \u0022true\u0022, \u0022open\u0022), so the caller decides how a record becomes text." }, { "name": "OperatorCount", "kind": "method", "id": "method|OperatorCount|1|0|int|QueryType type||h162ddc6a768bee14f6da83dc85f76d19fb3b1684d6716e077767217648284a65", "signature": "static int OperatorCount(QueryType type)", "parameters": [{ "name": "type", "type": "QueryType" }], "summary": "How many operators a field type offers, which is what the picker lists." }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|string|ReadOnlySpan\u003CQueryField\u003E fields;ReadOnlySpan\u003CQueryNode\u003E nodes;int capacity = 1024||h648c3fcacc7e1fc238a6df0318764f71ca5cacefb654e336a383476bafe697cf", "signature": "static string Text(ReadOnlySpan\u003CQueryField\u003E fields, ReadOnlySpan\u003CQueryNode\u003E nodes, int capacity = 1024)", "parameters": [{ "name": "fields", "type": "ReadOnlySpan\u003CQueryField\u003E" }, { "name": "nodes", "type": "ReadOnlySpan\u003CQueryNode\u003E" }, { "name": "capacity", "type": "int", "default": "1024" }], "summary": "The nodes as one sentence, the way the builder reads them back: \u0022Status is open and priority is high\u0022." }, { "name": "OperatorName", "kind": "method", "id": "method|OperatorName|1|0|string?|QueryType type;int op||he15a9e66e87e8831a4bf64cfb27b67684b1880491d2201106cd850600c1e5820", "signature": "static string? OperatorName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "The name of one operator of a field type, e.g. \u0022contains\u0022; null for none." }] }, { "name": "CuiSharp.CuiRegex", "displayName": "CuiRegex", "kind": "static class", "summary": "CUI\u0027s regular expression engine, usable without a frame: the same backtracking matcher the regex tester draws its highlights with. It supports the common syntax (classes, anchors, groups and the usual quantifiers) and no lookaround or backreferences.", "members": [{ "name": "TrySearch", "kind": "method", "id": "method|TrySearch|1|0|bool|string pattern;string text;out RegexMatch match;out string? error;int from = default;RegexFlags flags = RegexFlags.None||hb2d5b003461d8b1897c2d86a3e8e5b39c0447ee43b09f0319df8b21e6a26e012", "signature": "static bool TrySearch(string pattern, string text, out RegexMatch match, out string? error, int from = default, RegexFlags flags = RegexFlags.None)", "parameters": [{ "name": "pattern", "type": "string" }, { "name": "text", "type": "string" }, { "name": "match", "type": "out RegexMatch" }, { "name": "error", "type": "out string?" }, { "name": "from", "type": "int", "default": "default" }, { "name": "flags", "type": "RegexFlags", "default": "RegexFlags.None" }], "summary": "Finds the first match of pattern in text at or after from (a byte offset)." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexGroup group||h2b82ba310f5930d0a5935ef237fb39a338249e8785db65743e1a58e255ccb1ff", "signature": "static string Slice(string text, RegexGroup group)", "parameters": [{ "name": "text", "type": "string" }, { "name": "group", "type": "RegexGroup" }], "summary": "One group\u0027s text, which is what a caller marking the groups wants. Nothing is encoded again, so calling it per group over one match costs one substring each." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;RegexMatch match||hc3106500ab56083da4c72cdbdb2c3eb7bd26ca73028fa3e6683c72062e654e6b", "signature": "static string Slice(string text, RegexMatch match)", "parameters": [{ "name": "text", "type": "string" }, { "name": "match", "type": "RegexMatch" }], "summary": "The whole match\u0027s text." }, { "name": "Slice", "kind": "method", "id": "method|Slice|1|0|string|string text;int start;int end||h607f1e88bd9a77d1ca487c76bc09d7749148df45f3d744269c4fce5fdf263bf6", "signature": "static string Slice(string text, int start, int end)", "parameters": [{ "name": "text", "type": "string" }, { "name": "start", "type": "int" }, { "name": "end", "type": "int" }], "summary": "The text between two UTF-8 byte offsets. The engine reports bytes, so a caller holding bytes uses them directly; a caller holding a string gets the characters they cover." }] }, { "name": "CuiSharp.CuiSharpNativeException", "displayName": "CuiSharpNativeException", "kind": "class", "summary": "The native library that draws could not be loaded, or does not match the managed one. The loader\u0027s own message has no context \u2014 a real app reported version \u0060GLIBC_2.43\u0027 not found, raised at the first frame, inside a test \u2014 so this type names what was shipped, what it promises, and what to do about it.", "members": [] }, - { "name": "CuiSharp.CuiSurface", "displayName": "CuiSurface", "kind": "class", "summary": "A CUI context with no window, rendered by the built-in software rasterizer. This is the piece that makes UI code testable: the same CuiApp draw callback can run here, produce real pixels, and be asserted on in a unit test or a benchmark \u2014 no display, no GPU, no message loop. Frames are driven explicitly, which also makes it a stable way to measure build, layout and rasterization cost separately.", "members": [{ "name": "LastFrame", "kind": "property", "id": "property|LastFrame|0|0|FrameSample||get;|h5d220482c835fbe61d8c95e7613db0b9375f74f7460b6b5cd5596bdcfce3dae7", "signature": "FrameSample LastFrame { get; }", "summary": "What the last frame this surface drew cost: the same numbers as FrameStats, but owned by this surface, so a test that draws more than one \u2014 or a run with tests in parallel \u2014 reads the frame it drew rather than whichever frame finished last." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003CException\u003E||get;|h4f10b41d7a3334d039192ccfb2968378893ebf27bc3e3666101eff230e00ebfb", "signature": "IReadOnlyList\u003CException\u003E Faults { get; }", "summary": "Exceptions a component threw while this surface drew. A component\u0027s error boundary keeps the frame going, which would otherwise make a broken page look like a passing render test; assert Assert.Empty(surface.Faults)." }, { "name": "SemanticFrame", "kind": "property", "id": "property|SemanticFrame|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|h8f412fb194f3fab1ae344da5e6581baeb53f0b112d0db04f3574312c3606e25f", "signature": "IReadOnlyList\u003CSemanticWidget\u003E SemanticFrame { get; }", "summary": "Everything the last frame recorded, containers included and in drawing order: each entry\u0027s Depth is the nesting a tree can be rebuilt from." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "The controls the last completed frame drew, in drawing order." }, { "name": "LastDamage", "kind": "property", "id": "property|LastDamage|0|0|RectF?||get;|h886de16f648660ebaf8c90a11f1b17c7239d2ac8329f66ff56f8a41df7009b26", "signature": "RectF? LastDamage { get; }", "summary": "The rectangle the last render touched, or null when nothing was drawn." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for the current frame." }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the surface." }, { "name": "Incremental", "kind": "property", "id": "property|Incremental|0|0|bool||get;set;|hacb9ec72a98978bf472e802f469a46afecf64c7a317e69d960279507dbe0b8e5", "signature": "bool Incremental { get; set; }", "summary": "Renders only the part of the frame that changed since the last one." }, { "name": "LastFrameReady", "kind": "property", "id": "property|LastFrameReady|0|0|bool||get;|h3d304f4e1e9e1dd6ef3dfa5ea31e40bfcfb0af6b8c409d977112a2fe2165e791", "signature": "bool LastFrameReady { get; }", "summary": "Whether the latest completed frame declared its app data complete with MarkReady." }, { "name": "RecordWidgets", "kind": "property", "id": "property|RecordWidgets|0|0|bool||get;set;|h12ff7eba27f200a3b7c19203bce586ffee8d30f4d92e098b9ce3c98c5db904b5", "signature": "bool RecordWidgets { get; set; }", "summary": "Records every widget this surface draws, so a test can find one by its label." }, { "name": "Scale", "kind": "property", "id": "property|Scale|0|0|float||get;|h883e3357763ccf7007445c3d9be5685c0c7f1c33b640549c04f3194acd9d1d98", "signature": "float Scale { get; }", "summary": "Device pixels per point." }, { "name": "CommandCount", "kind": "property", "id": "property|CommandCount|0|0|int||get;|h7015d40e472d6bd097f66cebf670d3d6ab94440536251a89021f1b2b123d8fe2", "signature": "int CommandCount { get; }", "summary": "How many draw commands the last frame produced. Useful in assertions." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the surface is tracking as dropped." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "PixelHeight", "kind": "property", "id": "property|PixelHeight|0|0|int||get;|h2bd224b0d7ef52ea2bc164604c2a48e2f715ab1a30078212b10a61040f105b5d", "signature": "int PixelHeight { get; }", "summary": "Framebuffer height in pixels." }, { "name": "PixelWidth", "kind": "property", "id": "property|PixelWidth|0|0|int||get;|h039e47804e7011558cf1a9c30c80148d2f7d83cc220bbc9ac831b2fa520315fe", "signature": "int PixelWidth { get; }", "summary": "Framebuffer width in pixels." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiSurface|int width;int height;float scale = 1f;int threads = 1;Theme theme = Theme.Light;Accent accent = Accent.Neutral||hc293129e10d7ddd50cc2c9ce993e45a91ec4818fb8e3d8b6ae3d2b77d5af2e28", "signature": "static CuiSurface Create(int width, int height, float scale = 1f, int threads = 1, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "threads", "type": "int", "default": "1" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context backed by the software rasterizer." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|0|0|void|float deltaSeconds = 0.016666668f||h08dcc7bc90dc1fbdc778c187534cdd6398e8ddf6390f6f1e80456526080c03af", "signature": "void BeginFrame(float deltaSeconds = 0.016666668f)", "parameters": [{ "name": "deltaSeconds", "type": "float", "default": "0.016666668f" }], "summary": "Starts a frame. Call EndFrame when the UI is built." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|void|MouseButton button = MouseButton.Left||h4d2f11669db57aa42eebc0eb7a4412070235903a0829a1bd133822b9b359c645", "signature": "void Click(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses and releases a button in one call, as a click through the frames that follow." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Draw", "kind": "method", "id": "method|Draw|0|0|void|DrawFn draw;byte[] pixels;PixelFormat format = PixelFormat.Bgra||hd3406c88dd83c4d2c78435b959e74a3c6bdfdfbfaeb3b4a9155b371284ec9c58", "signature": "void Draw(DrawFn draw, byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Convenience: build one frame with draw, end it and rasterize." }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|0|0|void|||h11cffed674475ec67c9e1db52e8a9a166b9de0e3a7b8cd5de25bcef9c33eb0e5", "signature": "void EndFrame()", "summary": "Ends the frame, finalising layout and the draw list." }, { "name": "FileDrop", "kind": "method", "id": "method|FileDrop|0|0|void|ReadOnlySpan\u003Cstring\u003E paths;float x;float y||h8e6fa8c5438b8df376665746710240d45da51c3bfdf763a06c087deb7ccd4e8a", "signature": "void FileDrop(ReadOnlySpan\u003Cstring\u003E paths, float x, float y)", "parameters": [{ "name": "paths", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dropped onto the surface at a position, in points." }, { "name": "FileHover", "kind": "method", "id": "method|FileHover|0|0|void|float x;float y||had6fb9fbe10cf6a7bcfe4b6ba2eb7aa741b5fed9e6167067f1a58d410338b3e1", "signature": "void FileHover(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dragged over the surface at a position, in points." }, { "name": "FileHoverEnd", "kind": "method", "id": "method|FileHoverEnd|0|0|void|||hf19c54630ff34fbe37cd70dd4eb1b999645a28f9577a369ac8c2d6035fca906d", "signature": "void FileHoverEnd()", "summary": "Reports that the drag left the surface." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|void|bool focused||ha34742eaa087dc3d112e143ded154bc310bcf0d4066b4ee49224925f287925dd", "signature": "void Focus(bool focused)", "parameters": [{ "name": "focused", "type": "bool" }], "summary": "Reports the window gaining or losing focus." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|void|Key key;Mods mods = (Mods)0||h9ed561245b24462be02e967c4af12b68cd5bfd3e9b3b5bdc127fd3ff8735ede0", "signature": "void KeyDown(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses a key, with the modifiers held at the same time." }, { "name": "KeyUp", "kind": "method", "id": "method|KeyUp|0|0|void|Key key;Mods mods = (Mods)0||h5f2f6b3f7a90feb6417e82e4faac750354301a486f0d7b94aedb59b6b10832e9", "signature": "void KeyUp(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Releases a key." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|void|MouseButton button = MouseButton.Left||hf7dc7f2f467e7a8890d3740e4dc73e761739a8203b3a6251f1a5834742b52913", "signature": "void MouseDown(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses a mouse button." }, { "name": "MouseLeave", "kind": "method", "id": "method|MouseLeave|0|0|void|||hb35bfc658e6ced59b07d192c7504782278306f4eddf257bf8675e58dc0821cd6", "signature": "void MouseLeave()", "summary": "The pointer left the window: hover state clears and no tooltip stays behind. This is what a screenshot wants, so the picture is the UI and not the mouse." }, { "name": "MouseMove", "kind": "method", "id": "method|MouseMove|0|0|void|float x;float y||h320f681d2766c5f9d42ab60fef452e41fb1d284a5964a4e65d43eac98f64ca07", "signature": "void MouseMove(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer, in points." }, { "name": "MouseUp", "kind": "method", "id": "method|MouseUp|0|0|void|MouseButton button = MouseButton.Left||h1dcbe29fd920bc03d7ec9c110aa2d027f329130e75a900307c3c5b385d99747a", "signature": "void MouseUp(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Releases a mouse button." }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|byte[] pixels;PixelFormat format = PixelFormat.Bgra||h778b6c9b38e5bca115053abf3f2f16bdc2d9384aece41aa3e433b2d7b34de987", "signature": "void Render(byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Rasterizes the last completed frame into pixels. The buffer must hold at least PixelWidth * PixelHeight * 4 bytes." }, { "name": "Resize", "kind": "method", "id": "method|Resize|0|0|void|int width;int height;float? scale = default||h13f0e92f027e4ff6e848843ffa015b7bd69d4175b6ae2f6da1fd43ed595e4f57", "signature": "void Resize(int width, int height, float? scale = default)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float?", "default": "default" }], "summary": "Resizes the logical viewport." }, { "name": "Scroll", "kind": "method", "id": "method|Scroll|0|0|void|float dy;float dx = default||hab95d953d9270d2ab04de27d9a826699c8daf68a3a13e5d8fedeee40f363cd93", "signature": "void Scroll(float dy, float dx = default)", "parameters": [{ "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Scrolls at the pointer\u0027s position. The distance is in wheel notches, and a positive dy scrolls up, towards the start, exactly as a real wheel does." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|void|UiText text||h460d8a1f013378ef18c04a0824d73403c4c15b1fffc12a2b2d599ca01f3be8f6", "signature": "void Type(UiText text)", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Types UTF-8 text, as the keyboard layout would deliver it." }] }, + { "name": "CuiSharp.CuiSurface", "displayName": "CuiSurface", "kind": "class", "summary": "A CUI context with no window, rendered by the built-in software rasterizer or handed to a GPU renderer as draw data (CreateGpu). This is the piece that makes UI code testable: the same CuiApp draw callback can run here, produce real pixels, and be asserted on in a unit test or a benchmark \u2014 no display, no GPU, no message loop. Frames are driven explicitly, which also makes it a stable way to measure build, layout and rasterization cost separately.", "members": [{ "name": "LastFrame", "kind": "property", "id": "property|LastFrame|0|0|FrameSample||get;|h5d220482c835fbe61d8c95e7613db0b9375f74f7460b6b5cd5596bdcfce3dae7", "signature": "FrameSample LastFrame { get; }", "summary": "What the last frame this surface drew cost: the same numbers as FrameStats, but owned by this surface, so a test that draws more than one \u2014 or a run with tests in parallel \u2014 reads the frame it drew rather than whichever frame finished last." }, { "name": "Faults", "kind": "property", "id": "property|Faults|0|0|IReadOnlyList\u003CException\u003E||get;|h4f10b41d7a3334d039192ccfb2968378893ebf27bc3e3666101eff230e00ebfb", "signature": "IReadOnlyList\u003CException\u003E Faults { get; }", "summary": "Exceptions a component threw while this surface drew. A component\u0027s error boundary keeps the frame going, which would otherwise make a broken page look like a passing render test; assert Assert.Empty(surface.Faults)." }, { "name": "SemanticFrame", "kind": "property", "id": "property|SemanticFrame|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|h8f412fb194f3fab1ae344da5e6581baeb53f0b112d0db04f3574312c3606e25f", "signature": "IReadOnlyList\u003CSemanticWidget\u003E SemanticFrame { get; }", "summary": "Everything the last frame recorded, containers included and in drawing order: each entry\u0027s Depth is the nesting a tree can be rebuilt from." }, { "name": "Widgets", "kind": "property", "id": "property|Widgets|0|0|IReadOnlyList\u003CSemanticWidget\u003E||get;|hf361de9bebc687bd20b11a46c2e43f178f39634686b9f3b9e71cfcf153154f67", "signature": "IReadOnlyList\u003CSemanticWidget\u003E Widgets { get; }", "summary": "The controls the last completed frame drew, in drawing order." }, { "name": "LastDamage", "kind": "property", "id": "property|LastDamage|0|0|RectF?||get;|h886de16f648660ebaf8c90a11f1b17c7239d2ac8329f66ff56f8a41df7009b26", "signature": "RectF? LastDamage { get; }", "summary": "The rectangle the last render touched, or null when nothing was drawn." }, { "name": "Kind", "kind": "property", "id": "property|Kind|0|0|RendererKind||get;|hd242dfb74c058966b9133414069aaebf1cab2e2a791318e709d6bd747091b17f", "signature": "RendererKind Kind { get; }", "summary": "Which rasterizer this surface uses." }, { "name": "Ui", "kind": "property", "id": "property|Ui|0|0|Ui||get;|h685fe5f6ba61ec184564140fd78ce0946ad40a4430d21b964ad24699b7e36a93", "signature": "Ui Ui { get; }", "summary": "A fresh stack-only drawing context for the current frame." }, { "name": "FileDragActive", "kind": "property", "id": "property|FileDragActive|0|0|bool||get;|hc2e815e1a71bc6a75b5e19ff96d7c1ef201253bc7b4d7f60949c96df158538ac", "signature": "bool FileDragActive { get; }", "summary": "True while files are being dragged over the surface." }, { "name": "Incremental", "kind": "property", "id": "property|Incremental|0|0|bool||get;set;|hacb9ec72a98978bf472e802f469a46afecf64c7a317e69d960279507dbe0b8e5", "signature": "bool Incremental { get; set; }", "summary": "Renders only the part of the frame that changed since the last one." }, { "name": "LastFrameReady", "kind": "property", "id": "property|LastFrameReady|0|0|bool||get;|h3d304f4e1e9e1dd6ef3dfa5ea31e40bfcfb0af6b8c409d977112a2fe2165e791", "signature": "bool LastFrameReady { get; }", "summary": "Whether the latest completed frame declared its app data complete with MarkReady." }, { "name": "RecordWidgets", "kind": "property", "id": "property|RecordWidgets|0|0|bool||get;set;|h12ff7eba27f200a3b7c19203bce586ffee8d30f4d92e098b9ce3c98c5db904b5", "signature": "bool RecordWidgets { get; set; }", "summary": "Records every widget this surface draws, so a test can find one by its label." }, { "name": "Scale", "kind": "property", "id": "property|Scale|0|0|float||get;|h883e3357763ccf7007445c3d9be5685c0c7f1c33b640549c04f3194acd9d1d98", "signature": "float Scale { get; }", "summary": "Device pixels per point." }, { "name": "CommandCount", "kind": "property", "id": "property|CommandCount|0|0|int||get;|h7015d40e472d6bd097f66cebf670d3d6ab94440536251a89021f1b2b123d8fe2", "signature": "int CommandCount { get; }", "summary": "How many draw commands the last frame produced. Useful in assertions." }, { "name": "DroppedFileCount", "kind": "property", "id": "property|DroppedFileCount|0|0|int||get;|h5421210a1933793fbee263cb811628208321526d954709ce2c6f023389dc8e5d", "signature": "int DroppedFileCount { get; }", "summary": "Number of files the surface is tracking as dropped." }, { "name": "Height", "kind": "property", "id": "property|Height|0|0|int||get;|h6bb9d208a8c2d3f5c816b385df95628119cf129ab8d5cdd4b5e576b46037865c", "signature": "int Height { get; }", "summary": "Logical height in points." }, { "name": "PixelHeight", "kind": "property", "id": "property|PixelHeight|0|0|int||get;|h2bd224b0d7ef52ea2bc164604c2a48e2f715ab1a30078212b10a61040f105b5d", "signature": "int PixelHeight { get; }", "summary": "Framebuffer height in pixels." }, { "name": "PixelWidth", "kind": "property", "id": "property|PixelWidth|0|0|int||get;|h039e47804e7011558cf1a9c30c80148d2f7d83cc220bbc9ac831b2fa520315fe", "signature": "int PixelWidth { get; }", "summary": "Framebuffer width in pixels." }, { "name": "Width", "kind": "property", "id": "property|Width|0|0|int||get;|ha0864f5f4fda3365ae1a32446710954c2726b6bf0ae6f93e7b91c06c3464059b", "signature": "int Width { get; }", "summary": "Logical width in points." }, { "name": "GetDrawData", "kind": "method", "id": "method|GetDrawData|0|0|nint|||hf853755a9d099942cda373fc4b1f481b0efc5730bc6fe3feac273458b3769aa3", "signature": "nint GetDrawData()", "summary": "The draw data the last frame produced, for a GPU renderer." }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|CuiSurface|int width;int height;float scale = 1f;int threads = 1;Theme theme = Theme.Light;Accent accent = Accent.Neutral||hc293129e10d7ddd50cc2c9ce993e45a91ec4818fb8e3d8b6ae3d2b77d5af2e28", "signature": "static CuiSurface Create(int width, int height, float scale = 1f, int threads = 1, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "threads", "type": "int", "default": "1" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context backed by the software rasterizer." }, { "name": "CreateGpu", "kind": "method", "id": "method|CreateGpu|1|0|CuiSurface|int width;int height;in NativeRendererIface textures;float scale = 1f;Theme theme = Theme.Light;Accent accent = Accent.Neutral||h5e8778cc05fc81403bd9f6ffa144e82b703733e8f56f6b9743242f6e5b9daba6", "signature": "static CuiSurface CreateGpu(int width, int height, in NativeRendererIface textures, float scale = 1f, Theme theme = Theme.Light, Accent accent = Accent.Neutral)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "textures", "type": "in NativeRendererIface" }, { "name": "scale", "type": "float", "default": "1f" }, { "name": "theme", "type": "Theme", "default": "Theme.Light" }, { "name": "accent", "type": "Accent", "default": "Accent.Neutral" }], "summary": "Creates a windowless context for a GPU renderer (WebGL2 in the browser)." }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|0|0|string?|int index||hadc15393659f2bdf4574fe25868fce27bf8d063345e13c4c1b9285ed95d06a8e", "signature": "string? DroppedFile(int index)", "parameters": [{ "name": "index", "type": "int" }], "summary": "The path of a dropped file, or null when the index is out of range." }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|0|0|void|float deltaSeconds = 0.016666668f||h08dcc7bc90dc1fbdc778c187534cdd6398e8ddf6390f6f1e80456526080c03af", "signature": "void BeginFrame(float deltaSeconds = 0.016666668f)", "parameters": [{ "name": "deltaSeconds", "type": "float", "default": "0.016666668f" }], "summary": "Starts a frame. Call EndFrame when the UI is built." }, { "name": "Click", "kind": "method", "id": "method|Click|0|0|void|MouseButton button = MouseButton.Left||h4d2f11669db57aa42eebc0eb7a4412070235903a0829a1bd133822b9b359c645", "signature": "void Click(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses and releases a button in one call, as a click through the frames that follow." }, { "name": "Dispose", "kind": "method", "id": "method|Dispose|0|0|void|||h743737a1705f80570f9b0dca3334406a3351c7ecb98acd045baf6804dd060a4e", "signature": "void Dispose()" }, { "name": "Draw", "kind": "method", "id": "method|Draw|0|0|void|DrawFn draw;byte[] pixels;PixelFormat format = PixelFormat.Bgra||hd3406c88dd83c4d2c78435b959e74a3c6bdfdfbfaeb3b4a9155b371284ec9c58", "signature": "void Draw(DrawFn draw, byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "draw", "type": "DrawFn" }, { "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Convenience: build one frame with draw, end it and rasterize." }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|0|0|void|||h11cffed674475ec67c9e1db52e8a9a166b9de0e3a7b8cd5de25bcef9c33eb0e5", "signature": "void EndFrame()", "summary": "Ends the frame, finalising layout and the draw list." }, { "name": "FileDrop", "kind": "method", "id": "method|FileDrop|0|0|void|ReadOnlySpan\u003Cstring\u003E paths;float x;float y||h8e6fa8c5438b8df376665746710240d45da51c3bfdf763a06c087deb7ccd4e8a", "signature": "void FileDrop(ReadOnlySpan\u003Cstring\u003E paths, float x, float y)", "parameters": [{ "name": "paths", "type": "ReadOnlySpan\u003Cstring\u003E" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dropped onto the surface at a position, in points." }, { "name": "FileHover", "kind": "method", "id": "method|FileHover|0|0|void|float x;float y||had6fb9fbe10cf6a7bcfe4b6ba2eb7aa741b5fed9e6167067f1a58d410338b3e1", "signature": "void FileHover(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Reports files dragged over the surface at a position, in points." }, { "name": "FileHoverEnd", "kind": "method", "id": "method|FileHoverEnd|0|0|void|||hf19c54630ff34fbe37cd70dd4eb1b999645a28f9577a369ac8c2d6035fca906d", "signature": "void FileHoverEnd()", "summary": "Reports that the drag left the surface." }, { "name": "Focus", "kind": "method", "id": "method|Focus|0|0|void|bool focused||ha34742eaa087dc3d112e143ded154bc310bcf0d4066b4ee49224925f287925dd", "signature": "void Focus(bool focused)", "parameters": [{ "name": "focused", "type": "bool" }], "summary": "Reports the window gaining or losing focus." }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|0|0|void|Key key;Mods mods = (Mods)0||h9ed561245b24462be02e967c4af12b68cd5bfd3e9b3b5bdc127fd3ff8735ede0", "signature": "void KeyDown(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Presses a key, with the modifiers held at the same time." }, { "name": "KeyUp", "kind": "method", "id": "method|KeyUp|0|0|void|Key key;Mods mods = (Mods)0||h5f2f6b3f7a90feb6417e82e4faac750354301a486f0d7b94aedb59b6b10832e9", "signature": "void KeyUp(Key key, Mods mods = (Mods)0)", "parameters": [{ "name": "key", "type": "Key" }, { "name": "mods", "type": "Mods", "default": "(Mods)0" }], "summary": "Releases a key." }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|0|0|void|MouseButton button = MouseButton.Left||hf7dc7f2f467e7a8890d3740e4dc73e761739a8203b3a6251f1a5834742b52913", "signature": "void MouseDown(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Presses a mouse button." }, { "name": "MouseLeave", "kind": "method", "id": "method|MouseLeave|0|0|void|||hb35bfc658e6ced59b07d192c7504782278306f4eddf257bf8675e58dc0821cd6", "signature": "void MouseLeave()", "summary": "The pointer left the window: hover state clears and no tooltip stays behind. This is what a screenshot wants, so the picture is the UI and not the mouse." }, { "name": "MouseMove", "kind": "method", "id": "method|MouseMove|0|0|void|float x;float y||h320f681d2766c5f9d42ab60fef452e41fb1d284a5964a4e65d43eac98f64ca07", "signature": "void MouseMove(float x, float y)", "parameters": [{ "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "Moves the pointer, in points." }, { "name": "MouseUp", "kind": "method", "id": "method|MouseUp|0|0|void|MouseButton button = MouseButton.Left||h1dcbe29fd920bc03d7ec9c110aa2d027f329130e75a900307c3c5b385d99747a", "signature": "void MouseUp(MouseButton button = MouseButton.Left)", "parameters": [{ "name": "button", "type": "MouseButton", "default": "MouseButton.Left" }], "summary": "Releases a mouse button." }, { "name": "Render", "kind": "method", "id": "method|Render|0|0|void|byte[] pixels;PixelFormat format = PixelFormat.Bgra||h778b6c9b38e5bca115053abf3f2f16bdc2d9384aece41aa3e433b2d7b34de987", "signature": "void Render(byte[] pixels, PixelFormat format = PixelFormat.Bgra)", "parameters": [{ "name": "pixels", "type": "byte[]" }, { "name": "format", "type": "PixelFormat", "default": "PixelFormat.Bgra" }], "summary": "Rasterizes the last completed frame into pixels. The buffer must hold at least PixelWidth * PixelHeight * 4 bytes." }, { "name": "Resize", "kind": "method", "id": "method|Resize|0|0|void|int width;int height;float? scale = default||h13f0e92f027e4ff6e848843ffa015b7bd69d4175b6ae2f6da1fd43ed595e4f57", "signature": "void Resize(int width, int height, float? scale = default)", "parameters": [{ "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "scale", "type": "float?", "default": "default" }], "summary": "Resizes the logical viewport." }, { "name": "Scroll", "kind": "method", "id": "method|Scroll|0|0|void|float dy;float dx = default||hab95d953d9270d2ab04de27d9a826699c8daf68a3a13e5d8fedeee40f363cd93", "signature": "void Scroll(float dy, float dx = default)", "parameters": [{ "name": "dy", "type": "float" }, { "name": "dx", "type": "float", "default": "default" }], "summary": "Scrolls at the pointer\u0027s position. The distance is in wheel notches, and a positive dy scrolls up, towards the start, exactly as a real wheel does." }, { "name": "Type", "kind": "method", "id": "method|Type|0|0|void|UiText text||h460d8a1f013378ef18c04a0824d73403c4c15b1fffc12a2b2d599ca01f3be8f6", "signature": "void Type(UiText text)", "parameters": [{ "name": "text", "type": "UiText" }], "summary": "Types UTF-8 text, as the keyboard layout would deliver it." }] }, { "name": "CuiSharp.CuiTaskStatus", "displayName": "CuiTaskStatus", "kind": "enum", "summary": "cui_task_status", "members": [{ "name": "Done", "kind": "enum value", "id": "enum value|Done|1|0|||2|h0d09b1ff6e353c36e5dd900182fe0c3ee544588418c008f9ec0398c0c6a3c5af", "signature": "Done = 2", "value": "2" }, { "name": "Failed", "kind": "enum value", "id": "enum value|Failed|1|0|||3|ha388847ac08b3e9c6aa93135681165d44342146d113eb7d424d79c6566af73e3", "signature": "Failed = 3", "value": "3" }, { "name": "Pending", "kind": "enum value", "id": "enum value|Pending|1|0|||0|hec96e2e3e744271639d8f4254e04687bf499d49642bb25da3eda1e9c5271971c", "signature": "Pending = 0", "value": "0" }, { "name": "Running", "kind": "enum value", "id": "enum value|Running|1|0|||1|h5fc8ea303ee3335e9b6c77adb13ed145130ac296d646919227c7232708248684", "signature": "Running = 1", "value": "1" }, { "name": "Skipped", "kind": "enum value", "id": "enum value|Skipped|1|0|||4|hc86a6a4cf9d7fbe0d4b4f660230c7effb152c9749550c01b40366787bc1640b4", "signature": "Skipped = 4", "value": "4" }] }, { "name": "CuiSharp.CuiTree", "displayName": "CuiTree", "kind": "static class", "summary": "Sorts a tree model the way the tree table expects: every sibling list, relinked.", "members": [{ "name": "Sort", "kind": "method", "id": "method|Sort|1|0|int|TreeNode[] nodes;int root;Comparison\u003Cint\u003E compare;string key = \u0022tree-sort\u0022||h55f0abe563ef752ff38a7832d697465670f98a7cd688f1af5cec9b962807946b", "signature": "static int Sort(TreeNode[] nodes, int root, Comparison\u003Cint\u003E compare, string key = \u0022tree-sort\u0022)", "parameters": [{ "name": "nodes", "type": "TreeNode[]" }, { "name": "root", "type": "int" }, { "name": "compare", "type": "Comparison\u003Cint\u003E" }, { "name": "key", "type": "string", "default": "\u0022tree-sort\u0022" }], "summary": "Sorts each sibling list of nodes with compare, relinking the indices, and returns the new first top level node." }] }, { "name": "CuiSharp.CuiWindow", "displayName": "CuiWindow", "kind": "class", "summary": "The OS window behind a running app: the handle to brand, log and query, without a P/Invoke of your own. WindowCreated hands one of these over after CUI has created the window and before the first frame draws, which is the first moment a window has a handle at all \u2014 far too late for OnInitialized, which runs before the window exists. Windows-only members report 0/false elsewhere: the app loop keeps its cui_app* to itself, and Windows is the one platform where the window can be asked for it back (its user data is that pointer).", "members": [{ "name": "PickFile", "kind": "method", "id": "method|PickFile|0|0|FilePickResult|FileDialogOpts options||h2f928bfe207b9eda497652e9a996483cfeda718eca492357c6eca5cebda1b45d", "signature": "FilePickResult PickFile(FileDialogOpts options)", "parameters": [{ "name": "options", "type": "FileDialogOpts" }], "summary": "Shows the OS\u0027s file, folder or save dialog and reports what the user did. Modal and blocking, so call it from a click, not from work that has to keep drawing." }, { "name": "FileDialog", "kind": "property", "id": "property|FileDialog|0|0|IFileDialogProvider?||get;set;|hde52428aaf2aa6cff9d3fff69f2127e5ee0c64b9edb6d6d8bf27b268b54c5deb", "signature": "IFileDialogProvider? FileDialog { get; set; }", "summary": "What PickFile uses. Null means the OS\u0027s own dialog through CUI; a test sets a provider here (or on FileDialog) and the picker flow runs with no display and no dialog in the way." }, { "name": "PixelSize", "kind": "property", "id": "property|PixelSize|0|0|ValueTuple\u003Cint, int\u003E||get;|h1049152ea53b5dff6fd469d3f658f0b563323b3eec4d42c550fc77f96c46bd59", "signature": "ValueTuple\u003Cint, int\u003E PixelSize { get; }", "summary": "The client area in physical pixels." }, { "name": "IsMaximized", "kind": "property", "id": "property|IsMaximized|0|0|bool||get;|hfc25b64604e9ea0e3c723dbda0dbba4b18badeaba57aa00663e20ad1607f48ed", "signature": "bool IsMaximized { get; }", "summary": "True when the window is maximized." }, { "name": "IsSoftwareRenderer", "kind": "property", "id": "property|IsSoftwareRenderer|0|0|bool||get;|h3f27446eacdf04d1fecebceee1cefae62e919fd65275bec82b6fe24474df4568", "signature": "bool IsSoftwareRenderer { get; }", "summary": "True when OpenGL was unavailable and CUI draws with its software rasterizer. Worth logging on a station or a remote session: it explains a frame rate nobody can reproduce." }, { "name": "NativeWindow", "kind": "property", "id": "property|NativeWindow|0|0|nint||get;|ha25309f909158c2015eb52345e6663cba17bb84816dcc0f42e5d0bc51c47a5b2", "signature": "nint NativeWindow { get; }", "summary": "The HWND on Windows, the X11 window id on Linux, and NSWindow * on macOS \u2014 whatever this platform\u0027s own APIs expect. 0 until the window exists." }, { "name": "OpenUrl", "kind": "method", "id": "method|OpenUrl|1|0|bool|string url||h36d4863040754a133b65165de645036cae9628789e921f86c4e96dcabe98a403", "signature": "static bool OpenUrl(string url)", "parameters": [{ "name": "url", "type": "string" }], "summary": "Opens an https: URL in the user\u0027s browser. False when the OS refused it." }, { "name": "Backend", "kind": "property", "id": "property|Backend|0|0|string||get;|h71c8721a8cabf6ac9b6a38bb4aab8d0ede6c619052f697732584e574de3f6619", "signature": "string Backend { get; }", "summary": "The backend that created the window: win32, x11, cocoa, \u2026" }, { "name": "Minimize", "kind": "method", "id": "method|Minimize|0|0|void|||h2860f633e87f0e7e97be2e82dd4b4b77230f13533c648a1be17c41020ae3d35b", "signature": "void Minimize()", "summary": "Minimizes the window." }, { "name": "RequestClose", "kind": "method", "id": "method|RequestClose|0|0|void|||hb8e5c8757281b7813c0ddf13bc355f759625e935e912784f82ffc434fb19a7d0", "signature": "void RequestClose()", "summary": "Closes the window, exactly as its own close button would." }, { "name": "SetTitle", "kind": "method", "id": "method|SetTitle|0|0|void|string title||he58ba132a5185e4a1d7f928750cc61d9fefcbceadcab750d0574f406cb35bd2a", "signature": "void SetTitle(string title)", "parameters": [{ "name": "title", "type": "string" }], "summary": "Retitles the window. Safe to call from a frame." }, { "name": "ToggleMaximize", "kind": "method", "id": "method|ToggleMaximize|0|0|void|||h7281054f8f114f52232a500cf106c448776f57d00b9485febb705097f13dec5c", "signature": "void ToggleMaximize()", "summary": "Maximizes the window, or restores it when it is already maximized." }] }, @@ -176,7 +176,7 @@ { "name": "CuiSharp.InputOpts", "displayName": "InputOpts", "kind": "struct", "summary": "cui_input_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size size" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "AutoFocus", "kind": "field", "id": "field|AutoFocus|0|0|bool|||h601f2630021b0c0e1d2b6721c001025a62214f3f2addd79686868f8880b04eff", "signature": "public bool AutoFocus", "summary": "_Bool autofocus" }, { "name": "Clearable", "kind": "field", "id": "field|Clearable|0|0|bool|||h6c109d13986a73e984d4593cc36a35a869c3dd971ed04225b9d50e228461fced", "signature": "public bool Clearable", "summary": "x button when not empty" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|bool|||h4baa107f7923040caa8203f55780aae06d0b8981825d1ea1524ec7d60ae2a53f", "signature": "public bool Disabled", "summary": "_Bool disabled" }, { "name": "Password", "kind": "field", "id": "field|Password|0|0|bool|||h50eb3f60189d83d6114de9b4aed27a0c5bd20a485faa81345174d38ce81760e1", "signature": "public bool Password", "summary": "_Bool password" }, { "name": "ReadOnly", "kind": "field", "id": "field|ReadOnly|0|0|bool|||he393614309fa34fbb6e0930aa04c288616abcb05d02f63ad9eb9cb23927877ad", "signature": "public bool ReadOnly", "summary": "_Bool read_only" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "textarea: height in points; negative fills the space" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|string?|||h0b7f7e3a629b91e7b6cf4f9562657aad586fd4666941bbac0e0e8fccbc0ea31d", "signature": "public string? Error", "summary": "error text below (red)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|string?|||h6e4db358e5bb7cc3e8ac0f128ae742d77d252775d935f95c1c7492d00fc7cd97", "signature": "public string? Hint", "summary": "helper text below" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|string?|||hcde1437bde43c1697295d30669c92da2e86cf40ed384690cfdabd8cbe15ff219", "signature": "public string? Icon", "summary": "leading icon" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|string?|||h44009b6baf5b979302330d36c1da1d2620edd8bd8919ce2ec20fe089267e8ac3", "signature": "public string? Label", "summary": "label above the field" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }, { "name": "Prefix", "kind": "field", "id": "field|Prefix|0|0|string?|||ha89c8f719381155b96917a6c6badfc774eb4e767b8c9d68948547da7457f51b8", "signature": "public string? Prefix", "summary": "muted text before the value, e.g. \u0022$\u0022 or \u0022https://\u0022" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|string?|||h2c79c464acb56463b20bda4e8b606074d49aaf774f54ac687c0b7a5ece4147df", "signature": "public string? Suffix", "summary": "muted text after the value, e.g. \u0022USD\u0022 or \u0022kg\u0022" }] }, { "name": "CuiSharp.InputResult", "displayName": "InputResult", "kind": "struct", "summary": "What a text field reported this frame. CUI returns these as bit flags; the struct keeps them readable and prevents an int being mistaken for a count or an index.", "members": [{ "name": "Any", "kind": "property", "id": "property|Any|0|0|bool||get;|h930dcd2224677e27a1cda693bd9514b225687a6bdad27e9d226bb0aeae366e00", "signature": "bool Any { get; }", "summary": "True when anything at all was reported." }, { "name": "Blurred", "kind": "property", "id": "property|Blurred|0|0|bool||get;|hd3bf2df3ff712050fbecea60d95b7dfa78bb64388198358d48e99d4f1b489926", "signature": "bool Blurred { get; }", "summary": "The field lost keyboard focus this frame." }, { "name": "Changed", "kind": "property", "id": "property|Changed|0|0|bool||get;|hea4ecece0ae8756575c834ca7f9d9eada8b4728eabb34a32ec877cd8bf490ef5", "signature": "bool Changed { get; }", "summary": "The user edited the text; the value was written back." }, { "name": "Focused", "kind": "property", "id": "property|Focused|0|0|bool||get;|h91b314080731fb3280cc6476dac3288f9a114bd7e0e6bfcc7e7a57b0c4726903", "signature": "bool Focused { get; }", "summary": "The field gained keyboard focus this frame." }, { "name": "Submitted", "kind": "property", "id": "property|Submitted|0|0|bool||get;|h26a74337803e726e5b1481c208d421b95ab55ce5d076670fe5766ab429753042", "signature": "bool Submitted { get; }", "summary": "The user pressed Enter (or the field\u0027s submit gesture)." }, { "name": "Flags", "kind": "property", "id": "property|Flags|0|0|int||get;|he59986d855236c1155889b5b622053bf03d3ec822a5a7d91e9995b7810773a77", "signature": "int Flags { get; }", "summary": "The raw flag bits, for code that must forward them unchanged." }, { "name": "ToString", "kind": "method", "id": "method|ToString|0|0|string|||h88f14b677913048cebd07a06bf794b34a5e065c81768d7349d26dc84cf1cc938", "signature": "string ToString()" }] }, { "name": "CuiSharp.InspectorOpts", "displayName": "InspectorOpts", "kind": "struct", "summary": "cui_inspector_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "default fill" }, { "name": "LabelWidth", "kind": "field", "id": "field|LabelWidth|0|0|float|||h993f466ab627a21c24b5cbf05bd27e3424e345f9dda31611b0dbd719a33e2e12", "signature": "public float LabelWidth", "summary": "initial label column in points, default 38% of the width" }] }, - { "name": "CuiSharp.Interop.Native", "displayName": "Native", "kind": "static class", "summary": "Raw P/Invoke for cui.dll: one method per CUI_API function.", "members": [{ "name": "GetAccent", "kind": "method", "id": "method|GetAccent|1|0|Accent|nint ui||h4b5f008e77f36e753c29f584e84c7e8249ea899a16121c4a9ab6a5e3d2e462d6", "signature": "static Accent GetAccent(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_accent" }, { "name": "GetCursor", "kind": "method", "id": "method|GetCursor|1|0|Cursor|nint ui||h9592bd795030ec6f07a1b68093cf60e0ddb49ad084262abef2006bc6c6c5e263", "signature": "static Cursor GetCursor(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_cursor" }, { "name": "FontLoadFile", "kind": "method", "id": "method|FontLoadFile|1|0|Font|nint ui;nint path||h45e3467937e6440386ba379704bca3b0aca47850d974f4abb9c8c86279f26276", "signature": "static Font FontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_font_load_file" }, { "name": "FontLoadMemory", "kind": "method", "id": "method|FontLoadMemory|1|0|Font|nint ui;nint data;ulong size;byte copy||h7bd2aeb6a6f438dd3e4fbc9e85d77f5d60618c942b9c2fbecbbe2572f9df9c94", "signature": "static Font FontLoadMemory(nint ui, nint data, ulong size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "copy", "type": "byte" }], "summary": "cui_font_load_memory" }, { "name": "ApiExplorer", "kind": "method", "id": "method|ApiExplorer|1|0|NativeApiExplorerResult|nint ui;nint id;nint endpoints;int count;in NativeApiExplorerOpts opts||hf224b6dffe9e3dda0f0308f3af34d5a163659fc92533358cfa712df17d1a639e", "signature": "static NativeApiExplorerResult ApiExplorer(nint ui, nint id, nint endpoints, int count, in NativeApiExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "endpoints", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeApiExplorerOpts" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "method", "id": "method|Blame|1|0|NativeBlameResult|nint ui;nint id;nint lines;nint lineCommit;int lineCount;nint commits;int commitCount;in NativeBlameOpts opts||h4038398c6e9c93c3d4c2bfc504f5192b4a691dd68bae5b401920ae508d57dffd", "signature": "static NativeBlameResult Blame(nint ui, nint id, nint lines, nint lineCommit, int lineCount, nint commits, int commitCount, in NativeBlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "lines", "type": "nint" }, { "name": "lineCommit", "type": "nint" }, { "name": "lineCount", "type": "int" }, { "name": "commits", "type": "nint" }, { "name": "commitCount", "type": "int" }, { "name": "opts", "type": "in NativeBlameOpts" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|1|0|NativeCanvasResult|nint ui;nint id;NativeSize width;NativeSize height;nint paint;nint user;ulong userSize||hc6134bc6e4d8b8025bfcc63be9e9b102bf122eef9243f61f92baa834181a810f", "signature": "static NativeCanvasResult Canvas(nint ui, nint id, NativeSize width, NativeSize height, nint paint, nint user, ulong userSize)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "NativeSize" }, { "name": "paint", "type": "nint" }, { "name": "user", "type": "nint" }, { "name": "userSize", "type": "ulong" }], "summary": "cui_canvas" }, { "name": "CodeEditor", "kind": "method", "id": "method|CodeEditor|1|0|NativeCodeEditorResult|nint ui;nint id;nint buf;ulong cap;in NativeCodeEditorOpts opts||h195f4a778e60a790765ecf74340e03abe51e7077fc7c285531cf9a89eac5935d", "signature": "static NativeCodeEditorResult CodeEditor(nint ui, nint id, nint buf, ulong cap, in NativeCodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeCodeEditorOpts" }], "summary": "cui_code_editor_ex" }, { "name": "Alpha", "kind": "method", "id": "method|Alpha|1|0|NativeColor|NativeColor c;float alphaMultiplier||h6f6dc7f18231ffd4e72a98ba480ab083b4d26389e8ae083debcf59c9dd9da08f", "signature": "static NativeColor Alpha(NativeColor c, float alphaMultiplier)", "parameters": [{ "name": "c", "type": "NativeColor" }, { "name": "alphaMultiplier", "type": "float" }], "summary": "cui_alpha" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|1|0|NativeColor|nint ui;NativeColor c||h54ccc38136527a38949cb0d73367b6a6e3137b549bc57ee96e1a2a475d8f4089", "signature": "static NativeColor ColorOf(nint ui, NativeColor c)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "c", "type": "NativeColor" }], "summary": "cui_color_of" }, { "name": "GradientEval", "kind": "method", "id": "method|GradientEval|1|0|NativeColor|nint stops;int count;float t||ha841b21375b91451bf65ef779e13748e49ce1347627211578ad95f0700a1616d", "signature": "static NativeColor GradientEval(nint stops, int count, float t)", "parameters": [{ "name": "stops", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "t", "type": "float" }], "summary": "cui_gradient_eval" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|NativeColor|NativeColor a;NativeColor b;float t||hda3f5edb5311ba1769ae795a7dfd6a98f20c60db5bb606d95b5810cbc9d83d4a", "signature": "static NativeColor Mix(NativeColor a, NativeColor b, float t)", "parameters": [{ "name": "a", "type": "NativeColor" }, { "name": "b", "type": "NativeColor" }, { "name": "t", "type": "float" }], "summary": "cui_mix" }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|NativeColor|float l;float c;float hDegrees;float alpha||h26e67a65df209683f5291a98b82c8a5cabd7337b202d5d5c21c2ddc07fcb2232", "signature": "static NativeColor Oklch(float l, float c, float hDegrees, float alpha)", "parameters": [{ "name": "l", "type": "float" }, { "name": "c", "type": "float" }, { "name": "hDegrees", "type": "float" }, { "name": "alpha", "type": "float" }], "summary": "cui_oklch" }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|1|0|NativeColor|nint ui;Token token||h90e46c89d5e70f5f21daa0f9b683a793e619fecb1ab9c0a299de0471b3426f32", "signature": "static NativeColor TokenColor(nint ui, Token token)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "token", "type": "Token" }], "summary": "cui_token_color" }, { "name": "CommitGraph", "kind": "method", "id": "method|CommitGraph|1|0|NativeCommitGraphResult|nint ui;nint id;nint commits;int count;in NativeCommitGraphOpts opts||h45d73cd59f1de127d447c740e1830e6b5a5b060bba456bfafde41fa92f64c74e", "signature": "static NativeCommitGraphResult CommitGraph(nint ui, nint id, nint commits, int count, in NativeCommitGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "commits", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCommitGraphOpts" }], "summary": "cui_commit_graph_ex" }, { "name": "Coverage", "kind": "method", "id": "method|Coverage|1|0|NativeCoverageResult|nint ui;nint id;nint files;int count;in NativeCoverageOpts opts||h1b0a2f1fdc7808920e72995a8476b64bef4b6f5f5a6712da0ad04749a085826a", "signature": "static NativeCoverageResult Coverage(nint ui, nint id, nint files, int count, in NativeCoverageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "files", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCoverageOpts" }], "summary": "cui_coverage_ex" }, { "name": "CurveEditor", "kind": "method", "id": "method|CurveEditor|1|0|NativeCurveResult|nint ui;nint id;nint keys;ref int count;int capacity;in NativeCurveOpts opts||h96718fdb1bc3448845d2464d7bb341aaa324a86a9faea4496630c39fb7ca169a", "signature": "static NativeCurveResult CurveEditor(nint ui, nint id, nint keys, ref int count, int capacity, in NativeCurveOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "keys", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeCurveOpts" }], "summary": "cui_curve_editor_ex" }, { "name": "DateFromDays", "kind": "method", "id": "method|DateFromDays|1|0|NativeDate|int days||h1feda9236ea087efd2070df1a696cc0677817502ff785ff54c56c9bded66c802", "signature": "static NativeDate DateFromDays(int days)", "parameters": [{ "name": "days", "type": "int" }], "summary": "cui_date_from_days" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|1|0|NativeDate|||hb0af2f41da02d6baf40ca220344dbbc0745b0b07b0017d8945ba60b14f23d7bf", "signature": "static NativeDate DateToday()", "summary": "cui_date_today" }, { "name": "DiffView", "kind": "method", "id": "method|DiffView|1|0|NativeDiffResult|nint ui;nint id;nint oldText;nint newText;in NativeDiffOpts opts||h9938cb3dcf99694ce2c1936767de75bdf0ab18f91c7c4f698ac795cc563ccbf8", "signature": "static NativeDiffResult DiffView(nint ui, nint id, nint oldText, nint newText, in NativeDiffOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "oldText", "type": "nint" }, { "name": "newText", "type": "nint" }, { "name": "opts", "type": "in NativeDiffOpts" }], "summary": "cui_diff_view_ex" }, { "name": "DocTabs", "kind": "method", "id": "method|DocTabs|1|0|NativeDocTabsResult|nint ui;nint id;nint tabs;int count;ref int selected;in NativeDocTabsOpts opts||hecb3160d850e49f639702d27b881b59b7defdcb80863fe9009dccc178a9136a2", "signature": "static NativeDocTabsResult DocTabs(nint ui, nint id, nint tabs, int count, ref int selected, in NativeDocTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tabs", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeDocTabsOpts" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "method", "id": "method|FeatureFlags|1|0|NativeFeatureFlagsResult|nint ui;nint id;nint flags;int count;nint envs;int envCount;in NativeFeatureFlagsOpts opts||hb5efa0dddbc12664f0d095e30db5d75f7fa84690d18c2b2a95e8e380c02a06ea", "signature": "static NativeFeatureFlagsResult FeatureFlags(nint ui, nint id, nint flags, int count, nint envs, int envCount, in NativeFeatureFlagsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "flags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "envs", "type": "nint" }, { "name": "envCount", "type": "int" }, { "name": "opts", "type": "in NativeFeatureFlagsOpts" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "method", "id": "method|FileBrowser|1|0|NativeFileBrowserResult|nint ui;nint id;nint path;ulong pathCap;in NativeFileBrowserOpts opts||heac2ded2d8b83ba7f18e3c053fcbe8074ae034c90d0046ba4d5ec9b9824f1821", "signature": "static NativeFileBrowserResult FileBrowser(nint ui, nint id, nint path, ulong pathCap, in NativeFileBrowserOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "pathCap", "type": "ulong" }, { "name": "opts", "type": "in NativeFileBrowserOpts" }], "summary": "cui_file_browser_ex" }, { "name": "FlameGraph", "kind": "method", "id": "method|FlameGraph|1|0|NativeFlameResult|nint ui;nint id;nint spans;int count;ref NativeFlameView view;ref int selected;in NativeFlameOpts opts||h572e9eae08f26d8c3ef0ce6dd6873004c38722dc8d44d901d89cf381a4bcad20", "signature": "static NativeFlameResult FlameGraph(nint ui, nint id, nint spans, int count, ref NativeFlameView view, ref int selected, in NativeFlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "view", "type": "ref NativeFlameView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeFlameOpts" }], "summary": "cui_flame_graph_ex" }, { "name": "GradientEditor", "kind": "method", "id": "method|GradientEditor|1|0|NativeGradientResult|nint ui;nint id;nint stops;ref int count;int capacity;in NativeGradientOpts opts||h8c5d8f1ee3133998b21568f32399f5f1066973b6fe35c0d2c046bde0f3711fa7", "signature": "static NativeGradientResult GradientEditor(nint ui, nint id, nint stops, ref int count, int capacity, in NativeGradientOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stops", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeGradientOpts" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "method", "id": "method|GraphView|1|0|NativeGraphResult|nint ui;nint id;nint nodes;int nodeCount;nint edges;int edgeCount;in NativeGraphOpts opts||hd5b1f3cf7868c7e999da3ea9b89f9abd50a2a2e5fa0cabce9dbf681f75d6c217", "signature": "static NativeGraphResult GraphView(nint ui, nint id, nint nodes, int nodeCount, nint edges, int edgeCount, in NativeGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "edges", "type": "nint" }, { "name": "edgeCount", "type": "int" }, { "name": "opts", "type": "in NativeGraphOpts" }], "summary": "cui_graph_view_ex" }, { "name": "HexView", "kind": "method", "id": "method|HexView|1|0|NativeHexResult|nint ui;nint id;nint data;ulong size;ref NativeHexSelection sel;in NativeHexViewOpts opts||hfd80550fdd3aa1f906c97b613488efc83cd1eca8ef7aee5efb6799e68782f406", "signature": "static NativeHexResult HexView(nint ui, nint id, nint data, ulong size, ref NativeHexSelection sel, in NativeHexViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "sel", "type": "ref NativeHexSelection" }, { "name": "opts", "type": "in NativeHexViewOpts" }], "summary": "cui_hex_view_ex" }, { "name": "Keymap", "kind": "method", "id": "method|Keymap|1|0|NativeKeymapResult|nint ui;nint id;nint bindings;int count;in NativeKeymapOpts opts||h9217cafc1fe775ad6698a0f05dd5582060c83090eedef5d953fbdf4293837498", "signature": "static NativeKeymapResult Keymap(nint ui, nint id, nint bindings, int count, in NativeKeymapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "bindings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeKeymapOpts" }], "summary": "cui_keymap_ex" }, { "name": "Markdown", "kind": "method", "id": "method|Markdown|1|0|NativeMarkdownResult|nint ui;nint id;nint text;in NativeMarkdownOpts opts||heaa94f7d43805d3025afbd720deb33d8585c24b46340d859317c44d35a8dc81a", "signature": "static NativeMarkdownResult Markdown(nint ui, nint id, nint text, in NativeMarkdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeMarkdownOpts" }], "summary": "cui_markdown_ex" }, { "name": "MonthCalendar", "kind": "method", "id": "method|MonthCalendar|1|0|NativeMonthResult|nint ui;nint id;ref NativeDate month;nint events;int count;in NativeMonthOpts opts||h44b8b3863faad3edc72fb84b70f78ff6c0786b4dbffd156203510cd11e19c2b8", "signature": "static NativeMonthResult MonthCalendar(nint ui, nint id, ref NativeDate month, nint events, int count, in NativeMonthOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "month", "type": "ref NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeMonthOpts" }], "summary": "cui_month_calendar_ex" }, { "name": "PathBar", "kind": "method", "id": "method|PathBar|1|0|NativePathBarResult|nint ui;nint id;nint segments;int count;in NativePathBarOpts opts||h91468a1041cda9c640d4d69a543f01f0eadaf8a0f81f1e0f31cc82613550c097", "signature": "static NativePathBarResult PathBar(nint ui, nint id, nint segments, int count, in NativePathBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segments", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePathBarOpts" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "method", "id": "method|Pipeline|1|0|NativePipelineResult|nint ui;nint id;nint stages;int stageCount;nint jobs;int jobCount;in NativePipelineOpts opts||h822fa481b7070f67b506e9542f7480a3c3e7b0682bcc85d6c91293d82634ca39", "signature": "static NativePipelineResult Pipeline(nint ui, nint id, nint stages, int stageCount, nint jobs, int jobCount, in NativePipelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "stageCount", "type": "int" }, { "name": "jobs", "type": "nint" }, { "name": "jobCount", "type": "int" }, { "name": "opts", "type": "in NativePipelineOpts" }], "summary": "cui_pipeline_ex" }, { "name": "Problems", "kind": "method", "id": "method|Problems|1|0|NativeProblemsResult|nint ui;nint id;nint diags;int count;in NativeProblemsOpts opts||h117f40fd2f6fef166ca95e09841a9367ad807c7ceb667067317604d7ebaaae04", "signature": "static NativeProblemsResult Problems(nint ui, nint id, nint diags, int count, in NativeProblemsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "diags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeProblemsOpts" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "method", "id": "method|FlameSpanRect|1|0|NativeRect|nint ui;uint flame;in NativeFlameSpan span||h40857a4a550d0690331d16f0f488573f3a49d975293a36369b1bf7c4d088bedc", "signature": "static NativeRect FlameSpanRect(nint ui, uint flame, in NativeFlameSpan span)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "flame", "type": "uint" }, { "name": "span", "type": "in NativeFlameSpan" }], "summary": "cui_flame_span_rect" }, { "name": "GetRect", "kind": "method", "id": "method|GetRect|1|0|NativeRect|nint ui;uint id||hfffd1bbdffac717a67f0184e99f213c780291e8ec750c8b06b21c9e1589aef60", "signature": "static NativeRect GetRect(nint ui, uint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }], "summary": "cui_get_rect" }, { "name": "LastRect", "kind": "method", "id": "method|LastRect|1|0|NativeRect|nint ui||hd3fce3194b991a66cf4c7eebf1b6f7cc7d75664cdc7eb24d369ed74fd947f6f3", "signature": "static NativeRect LastRect(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_rect" }, { "name": "RegexTester", "kind": "method", "id": "method|RegexTester|1|0|NativeRegexTesterResult|nint ui;nint id;nint pattern;ulong patternCap;nint text;ulong textCap;in NativeRegexTesterOpts opts||h203fbf6543aa6a0ad68392c581a214cb631fa795ffebd9e8568fa4ee95c3b2c5", "signature": "static NativeRegexTesterResult RegexTester(nint ui, nint id, nint pattern, ulong patternCap, nint text, ulong textCap, in NativeRegexTesterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pattern", "type": "nint" }, { "name": "patternCap", "type": "ulong" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }, { "name": "opts", "type": "in NativeRegexTesterOpts" }], "summary": "cui_regex_tester_ex" }, { "name": "GlIface", "kind": "method", "id": "method|GlIface|1|0|NativeRendererIface|nint r||h795e70c9de3d729a8866ef635bab08eeb83d4375a5f987962f843af30ddd3e6d", "signature": "static NativeRendererIface GlIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_iface" }, { "name": "SwIface", "kind": "method", "id": "method|SwIface|1|0|NativeRendererIface|nint r||h5464602ec3a20f54b913735aaa2ec3c5b7fe93367a5b041be05e6e377b4daeb0", "signature": "static NativeRendererIface SwIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_iface" }, { "name": "RequestBar", "kind": "method", "id": "method|RequestBar|1|0|NativeRequestBarResult|nint ui;nint id;ref int method;nint url;ulong cap;in NativeRequestBarOpts opts||h55fd7824c77defde52b87c7ec32097db0823c316062b8bb80d5188d9dcc3efd8", "signature": "static NativeRequestBarResult RequestBar(nint ui, nint id, ref int method, nint url, ulong cap, in NativeRequestBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "method", "type": "ref int" }, { "name": "url", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeRequestBarOpts" }], "summary": "cui_request_bar_ex" }, { "name": "SchedulePicker", "kind": "method", "id": "method|SchedulePicker|1|0|NativeScheduleResult|nint ui;nint id;nint cron;ulong cap;in NativeScheduleOpts opts||h52d0ab4e74edcf7384c11079a8130cc7df3000cd7abcf76f6e271f96181759e9", "signature": "static NativeScheduleResult SchedulePicker(nint ui, nint id, nint cron, ulong cap, in NativeScheduleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "cron", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeScheduleOpts" }], "summary": "cui_schedule_picker_ex" }, { "name": "StackTrace", "kind": "method", "id": "method|StackTrace|1|0|NativeStackTraceResult|nint ui;nint id;nint frames;int count;in NativeStackTraceOpts opts||h9f73202328ea1e1acd56bdbbb0145c51176116307ced16ae48c761e993751c43", "signature": "static NativeStackTraceResult StackTrace(nint ui, nint id, nint frames, int count, in NativeStackTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "frames", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeStackTraceOpts" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "method", "id": "method|Terminal|1|0|NativeTerminalResult|nint ui;nint id;ref NativeTerminalBuffer t;in NativeTerminalOpts opts||h542c3a2dd62619cc3ea7fe3ac18031b59cba9cfdc574ed6c5b0dd6b5b0fa11ad", "signature": "static NativeTerminalResult Terminal(nint ui, nint id, ref NativeTerminalBuffer t, in NativeTerminalOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "opts", "type": "in NativeTerminalOpts" }], "summary": "cui_terminal_ex" }, { "name": "TestExplorer", "kind": "method", "id": "method|TestExplorer|1|0|NativeTestExplorerResult|nint ui;nint id;nint items;int count;in NativeTestExplorerOpts opts||h9f9556409348b1762b26e56637cef03ff46bdee0a835046a3c6df37e7afef027", "signature": "static NativeTestExplorerResult TestExplorer(nint ui, nint id, nint items, int count, in NativeTestExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTestExplorerOpts" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|1|0|NativeTextMetrics|nint ui;Font font;float size;nint text;int len||hc0767d4a4f1ef0e4b660dee972d158dcdee74407c51c840bb833f43a4857ba5d", "signature": "static NativeTextMetrics MeasureText(nint ui, Font font, float size, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_measure_text" }, { "name": "TimeHistogram", "kind": "method", "id": "method|TimeHistogram|1|0|NativeTimeHistogramResult|nint ui;nint id;double start;double bucketSeconds;int buckets;nint series;int seriesCount;ref double selStart;ref double selEnd;in NativeTimeHistogramOpts opts||hfa1f5b5edf695e77944ae27c1a7d2971389e8adf5c2986b00bd0343fa941466f", "signature": "static NativeTimeHistogramResult TimeHistogram(nint ui, nint id, double start, double bucketSeconds, int buckets, nint series, int seriesCount, ref double selStart, ref double selEnd, in NativeTimeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "nint" }, { "name": "seriesCount", "type": "int" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "opts", "type": "in NativeTimeHistogramOpts" }], "summary": "cui_time_histogram_ex" }, { "name": "TimelineEditor", "kind": "method", "id": "method|TimelineEditor|1|0|NativeTimelineEditorResult|nint ui;nint id;nint tracks;int count;ref float time;in NativeTimelineEditorOpts opts||hb2351de7669631a8a067960970da082a535fcae1ee61308afd9d8e8a739fa48a", "signature": "static NativeTimelineEditorResult TimelineEditor(nint ui, nint id, nint tracks, int count, ref float time, in NativeTimelineEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "time", "type": "ref float" }, { "name": "opts", "type": "in NativeTimelineEditorOpts" }], "summary": "cui_timeline_editor_ex" }, { "name": "TraceView", "kind": "method", "id": "method|TraceView|1|0|NativeTraceResult|nint ui;nint id;nint tracks;int trackCount;nint spans;int spanCount;ref NativeTraceView view;ref int selected;in NativeTraceOpts opts||h73907b2dca89e0d041b59dfd17100da9cea8e43016feff734544ec106467a465", "signature": "static NativeTraceResult TraceView(nint ui, nint id, nint tracks, int trackCount, nint spans, int spanCount, ref NativeTraceView view, ref int selected, in NativeTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "trackCount", "type": "int" }, { "name": "spans", "type": "nint" }, { "name": "spanCount", "type": "int" }, { "name": "view", "type": "ref NativeTraceView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTraceOpts" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTableEnd", "kind": "method", "id": "method|TreeTableEnd|1|0|NativeTreeTableEvents|nint ui||h4eee805112b7850f0485af91222e57e0a8f2c649236ae73d46f82c976dc53c29", "signature": "static NativeTreeTableEvents TreeTableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_end" }, { "name": "Uptime", "kind": "method", "id": "method|Uptime|1|0|NativeUptimeResult|nint ui;nint id;nint services;int count;in NativeUptimeOpts opts||hc265bb0f05628c0fb22bbf75876b45305005dc6eac18ab16dfb505efd5f0da2f", "signature": "static NativeUptimeResult Uptime(nint ui, nint id, nint services, int count, in NativeUptimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "services", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeUptimeOpts" }], "summary": "cui_uptime_ex" }, { "name": "AppSize", "kind": "method", "id": "method|AppSize|1|0|NativeVec2|nint app||ha74729608d621b24bc8ffdd406a5b45ae9fa70dab961521f18833480ef16f6bd", "signature": "static NativeVec2 AppSize(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_size" }, { "name": "MousePos", "kind": "method", "id": "method|MousePos|1|0|NativeVec2|nint ui||hd2c7d87a1a27b098cfb7f49fa68afdafabac9d9acecf9d42a72652db8ea7f7f3", "signature": "static NativeVec2 MousePos(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_mouse_pos" }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|1|0|NativeVec2|nint ui||h655b0214496432d350fa7c5aa2dbfca82105134c4828a721a360598172ef33c0", "signature": "static NativeVec2 ViewportSize(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_viewport_size" }, { "name": "Waterfall", "kind": "method", "id": "method|Waterfall|1|0|NativeWaterfallResult|nint ui;nint id;nint requests;int count;in NativeWaterfallOpts opts||h36804244956e9d24e6feeb89cc3e7c1fb527ba4c1aa4e926e783be74cd6cdfce", "signature": "static NativeWaterfallResult Waterfall(nint ui, nint id, nint requests, int count, in NativeWaterfallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "requests", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaterfallOpts" }], "summary": "cui_waterfall_ex" }, { "name": "GetThemeMode", "kind": "method", "id": "method|GetThemeMode|1|0|Theme|nint ui||hd5dd420a6020ca9e2b3b03f97b96bc85c5a27efd6ee6df0eae33870895d7a9d3", "signature": "static Theme GetThemeMode(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_theme_mode" }, { "name": "AccordionBegin", "kind": "method", "id": "method|AccordionBegin|1|0|byte|nint ui;nint title;nint open||h59a40c85c4909ae585d78fc0410d19198504d98fdc3315c31c6b29cbd5093b22", "signature": "static byte AccordionBegin(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_accordion_begin" }, { "name": "Alert", "kind": "method", "id": "method|Alert|1|0|byte|nint ui;nint title;in NativeAlertOpts opts||h4a50e5754338f20bc39ed71731aa6b5f2a164fde306492214009bd2a0a9b6dcc", "signature": "static byte Alert(nint ui, nint title, in NativeAlertOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeAlertOpts" }], "summary": "cui_alert_ex" }, { "name": "AppFileDialog", "kind": "method", "id": "method|AppFileDialog|1|0|byte|nint app;in NativeFileDialogOpts opts;nint out;ulong cap||ha2ed469f269bf56b4592cc47e73904a0da56e866df8e7900ea115cdc6ee9f1f3", "signature": "static byte AppFileDialog(nint app, in NativeFileDialogOpts opts, nint @out, ulong cap)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "opts", "type": "in NativeFileDialogOpts" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_app_file_dialog" }, { "name": "AppFrame", "kind": "method", "id": "method|AppFrame|1|0|byte|nint app||he4db78bd95169682f895be0dff74b53e3973f2db55ce753f0d144b3beb0db873", "signature": "static byte AppFrame(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_frame" }, { "name": "AppIsSoftware", "kind": "method", "id": "method|AppIsSoftware|1|0|byte|nint app||h7cfe758e335174ee97ad36da7db9f00b8a23df3abdef176d7ee242cf54f423b0", "signature": "static byte AppIsSoftware(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_is_software" }, { "name": "AppOpenUrl", "kind": "method", "id": "method|AppOpenUrl|1|0|byte|nint url||ha4a1975a2f8bd8f16549e1c2e2d0fdb3377790f3b33115a0de136383555329f4", "signature": "static byte AppOpenUrl(nint url)", "parameters": [{ "name": "url", "type": "nint" }], "summary": "cui_app_open_url" }, { "name": "AppScreenshot", "kind": "method", "id": "method|AppScreenshot|1|0|byte|nint app;nint rgba;int width;int height||h3c30ad02d7c81cec1318052acb1ae7dffc5d7b4922a5a5b1a1e61dc3ca38b950", "signature": "static byte AppScreenshot(nint app, nint rgba, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_screenshot" }, { "name": "Banner", "kind": "method", "id": "method|Banner|1|0|byte|nint ui;nint text;nint open;in NativeBannerOpts opts||hb5ad03ccbefd63827bc917d6263f04db05dcdf2dbb1c4571eb9d4f94f5388d42", "signature": "static byte Banner(nint ui, nint text, nint open, in NativeBannerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeBannerOpts" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "method", "id": "method|Button|1|0|byte|nint ui;nint label;in NativeButtonOpts opts||hbf77c65cd58bceccdde70f6c89f7363b8da26191c316501dbe5bcdd8d43ac2b6", "signature": "static byte Button(nint ui, nint label, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "method", "id": "method|Calendar|1|0|byte|nint ui;nint id;ref NativeDate value||h95efe1a12806e2a8561314e3a70abd0ff38a240e350c2f061307438ff122ab4a", "signature": "static byte Calendar(nint ui, nint id, ref NativeDate value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }], "summary": "cui_calendar" }, { "name": "CardBegin", "kind": "method", "id": "method|CardBegin|1|0|byte|nint ui;in NativeCardOpts opts||h8eb89566776b1709be89f536ce55eef794eacc637d7c3737090c86333c2ae707", "signature": "static byte CardBegin(nint ui, in NativeCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeCardOpts" }], "summary": "cui_card_begin" }, { "name": "CarouselBegin", "kind": "method", "id": "method|CarouselBegin|1|0|byte|nint ui;nint id;int count;ref int index;in NativeCarouselOpts opts||hb18645d7f90ffa240dcb88b8de82f4d32e264fa620a19d90c2fd6da2e5cee0fd", "signature": "static byte CarouselBegin(nint ui, nint id, int count, ref int index, in NativeCarouselOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeCarouselOpts" }], "summary": "cui_carousel_begin" }, { "name": "Checkbox", "kind": "method", "id": "method|Checkbox|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hff3bc3ffdd5a33d31ff9b97fc872eb4f252bd3b9b1aace78eb72c45dd110e46e", "signature": "static byte Checkbox(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "method", "id": "method|Chip|1|0|byte|nint ui;nint label;nint selected;in NativeChipOpts opts||head6d3534ffead4ac5649c1e26da63fd27441e52ad599488313efd3171e7911a", "signature": "static byte Chip(nint ui, nint label, nint selected, in NativeChipOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeChipOpts" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "method", "id": "method|Citation|1|0|byte|nint ui;int number;in NativeSource source||hffed798222a8e812b80fd9a4f8de893f54f9aa2a9ba39b646c7fc4c36d97028f", "signature": "static byte Citation(nint ui, int number, in NativeSource source)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "number", "type": "int" }, { "name": "source", "type": "in NativeSource" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "method", "id": "method|ColorPicker|1|0|byte|nint ui;nint id;ref NativeColor value||h989743a93cec76d361912fe0c33e29894c7ec163dd928db2f27ddbdb49ad5854", "signature": "static byte ColorPicker(nint ui, nint id, ref NativeColor value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "method", "id": "method|ConfirmButton|1|0|byte|nint ui;nint label;in NativeConfirmOpts opts||h8f8604ad0f24f547d8d6d8e28fd22bc47b268f0f807bac020f240abd4080dcab", "signature": "static byte ConfirmButton(nint ui, nint label, in NativeConfirmOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmOpts" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "method", "id": "method|ConfirmPopover|1|0|byte|nint ui;nint id;in NativeConfirmPopoverOpts opts||hfd5da6244ccd11ef60923dd471ea00e6d60fd8d3c20af199c7ec8b39412c7e29", "signature": "static byte ConfirmPopover(nint ui, nint id, in NativeConfirmPopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmPopoverOpts" }], "summary": "cui_confirm_popover_ex" }, { "name": "ContextMenuBegin", "kind": "method", "id": "method|ContextMenuBegin|1|0|byte|nint ui;nint id||hbf71c286d5bec94ffe1f78068f50bcf6f4a63edd23157d4b17db003f83e58a19", "signature": "static byte ContextMenuBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_context_menu_begin" }, { "name": "ControlTile", "kind": "method", "id": "method|ControlTile|1|0|byte|nint ui;nint label;nint on;in NativeTileOpts opts||he10e62b5f2afeb2033d2a9ebe247f8cd89cb234fb240344bc1e9c9c4c5e11100", "signature": "static byte ControlTile(nint ui, nint label, nint on, in NativeTileOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "on", "type": "nint" }, { "name": "opts", "type": "in NativeTileOpts" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "method", "id": "method|CopyButton|1|0|byte|nint ui;nint id;nint text||h48aef3359811011144831ea4ef53df4f260c450ae1e3945f43837aaebb616498", "signature": "static byte CopyButton(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_copy_button" }, { "name": "CronNext", "kind": "method", "id": "method|CronNext|1|0|byte|nint cron;long after;int utcOffset;ref long next||h56b578400ea3104a21e21cd8839e108a8122060418bfd3101cd73d569ce1a8d7", "signature": "static byte CronNext(nint cron, long after, int utcOffset, ref long next)", "parameters": [{ "name": "cron", "type": "nint" }, { "name": "after", "type": "long" }, { "name": "utcOffset", "type": "int" }, { "name": "next", "type": "ref long" }], "summary": "cui_cron_next" }, { "name": "Cropper", "kind": "method", "id": "method|Cropper|1|0|byte|nint ui;nint id;ulong tex;int imageW;int imageH;ref NativeRect crop;in NativeCropperOpts opts||h0f3c82754b1aa325c333e0da9296028bd04b751c7ea105648c3227a7d9e31671", "signature": "static byte Cropper(nint ui, nint id, ulong tex, int imageW, int imageH, ref NativeRect crop, in NativeCropperOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref NativeRect" }, { "name": "opts", "type": "in NativeCropperOpts" }], "summary": "cui_cropper_ex" }, { "name": "DataGridBegin", "kind": "method", "id": "method|DataGridBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;int rowCount;ref int first;ref int last;in NativeGridOpts opts||h8592e38778819eb9396c680798d4a23f61ab9bb95e979589695c061d8a2c9bc3", "signature": "static byte DataGridBegin(nint ui, nint id, nint columns, int columnCount, int rowCount, ref int first, ref int last, in NativeGridOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "rowCount", "type": "int" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }, { "name": "opts", "type": "in NativeGridOpts" }], "summary": "cui_data_grid_begin_ex" }, { "name": "DataGridCellEdit", "kind": "method", "id": "method|DataGridCellEdit|1|0|byte|nint ui;nint buf;ulong cap||h259f45500a7384ea78f870c35bb16dae3b8d1379895634676845fa2876f6551d", "signature": "static byte DataGridCellEdit(nint ui, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_data_grid_cell_edit" }, { "name": "DataGridEdit", "kind": "method", "id": "method|DataGridEdit|1|0|byte|nint ui;nint buf;ulong cap||h92b7f342528f5ca7323049c885cd0adadb9e09de234418cf8f760bdff754e9a5", "signature": "static byte DataGridEdit(nint ui, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_data_grid_edit" }, { "name": "DataGridRow", "kind": "method", "id": "method|DataGridRow|1|0|byte|nint ui;int row||h17f96bb5d180e97edcb36108118e13a70709ad758013a1a088b598046886a76a", "signature": "static byte DataGridRow(nint ui, int row)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "method", "id": "method|DatePicker|1|0|byte|nint ui;nint id;ref NativeDate value;in NativeDateOpts opts||hd9d76b72b2af7c46bcbc08a04498bedac51208539abc4f8f01f7f4d614059494", "signature": "static byte DatePicker(nint ui, nint id, ref NativeDate value, in NativeDateOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }, { "name": "opts", "type": "in NativeDateOpts" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "method", "id": "method|DateRangePicker|1|0|byte|nint ui;nint id;ref NativeDateRange range;in NativeDateRangeOpts opts||h92533d23ef098f513ceea3b01553a6a49f16335ddfdb3eadc4ec0264e939998f", "signature": "static byte DateRangePicker(nint ui, nint id, ref NativeDateRange range, in NativeDateRangeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "opts", "type": "in NativeDateRangeOpts" }], "summary": "cui_date_range_picker_ex" }, { "name": "DialogBegin", "kind": "method", "id": "method|DialogBegin|1|0|byte|nint ui;nint title;nint open;in NativeDialogOpts opts||hd616f3e3c8148d7400e20e570bff72cb6c0caf2d7b9fec5daa919f5f471430f2", "signature": "static byte DialogBegin(nint ui, nint title, nint open, in NativeDialogOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDialogOpts" }], "summary": "cui_dialog_begin" }, { "name": "DiffWords", "kind": "method", "id": "method|DiffWords|1|0|byte|nint oldLine;int oldLen;nint newLine;int newLen;nint oldRanges;ref int oldCount;nint newRanges;ref int newCount;int cap||hcda9f2ec29f0648dbedd75e9fd2669ff2851a76de74593a5fdcfaba7e38ffbd9", "signature": "static byte DiffWords(nint oldLine, int oldLen, nint newLine, int newLen, nint oldRanges, ref int oldCount, nint newRanges, ref int newCount, int cap)", "parameters": [{ "name": "oldLine", "type": "nint" }, { "name": "oldLen", "type": "int" }, { "name": "newLine", "type": "nint" }, { "name": "newLen", "type": "int" }, { "name": "oldRanges", "type": "nint" }, { "name": "oldCount", "type": "ref int" }, { "name": "newRanges", "type": "nint" }, { "name": "newCount", "type": "ref int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_words" }, { "name": "DockItem", "kind": "method", "id": "method|DockItem|1|0|byte|nint ui;nint icon;nint label;in NativeDockItemOpts opts||hc98fe4669f05c98a74eb98bebd4a9d1a85e10093aaf887a346a97ed55781ed98", "signature": "static byte DockItem(nint ui, nint icon, nint label, in NativeDockItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeDockItemOpts" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "method", "id": "method|DockLoad|1|0|byte|nint ui;nint id;nint text||h621beeb19268aecd384a174a3f46f3fe2f0067bb2eeedd194a6bd4b1e781efaa", "signature": "static byte DockLoad(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_dock_load" }, { "name": "DockPanelBegin", "kind": "method", "id": "method|DockPanelBegin|1|0|byte|nint ui;nint title;nint open;in NativeDockPanelOpts opts||h2744ffb49bc263bc86741c7e6c0e58f096dc2dc91857010058a19ee69cb87dd2", "signature": "static byte DockPanelBegin(nint ui, nint title, nint open, in NativeDockPanelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDockPanelOpts" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "EmojiFontLoadFile", "kind": "method", "id": "method|EmojiFontLoadFile|1|0|byte|nint ui;nint path||h1fa3b59d3fb51cc55806ab6720350790ed1dea427bd97ef45db889a9e9068855", "signature": "static byte EmojiFontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_emoji_font_load_file" }, { "name": "EmojiFontLoadMemory", "kind": "method", "id": "method|EmojiFontLoadMemory|1|0|byte|nint ui;nint data;ulong size;byte copy||h4731aaab3bec31b4ee02e82d04e58eef789dd4450bda2f8a6a5b7f4df2ec97b6", "signature": "static byte EmojiFontLoadMemory(nint ui, nint data, ulong size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "ulong" }, { "name": "copy", "type": "byte" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "method", "id": "method|EmojiFontLoadSystem|1|0|byte|nint ui||hadc7b19a2a9a2e65695fc9817a04d4a731c2b5afaf61701ae690292273e13310", "signature": "static byte EmojiFontLoadSystem(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "method", "id": "method|EmojiSupported|1|0|byte|nint ui;nint utf8;int len||haa623954e33273c01efadb0b164b0325a036fa5aac7ebf21338630f47cc6f329", "signature": "static byte EmojiSupported(nint ui, nint utf8, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "method", "id": "method|EmptyState|1|0|byte|nint ui;nint title;in NativeEmptyOpts opts||h941a84eed00b9099f9a69276a71aef1c42cd24b1ed9125fcce7b3ed9cc5d56a3", "signature": "static byte EmptyState(nint ui, nint title, in NativeEmptyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeEmptyOpts" }], "summary": "cui_empty_state_ex" }, { "name": "ExpandableCardBegin", "kind": "method", "id": "method|ExpandableCardBegin|1|0|byte|nint ui;nint title;nint open;in NativeExpandableCardOpts opts||hc4f35bb8b4e0a5b5c51ced2e3eb8913efcb5526a0978d715299a9d3e6425d85a", "signature": "static byte ExpandableCardBegin(nint ui, nint title, nint open, in NativeExpandableCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableCardOpts" }], "summary": "cui_expandable_card_begin" }, { "name": "ExpandableText", "kind": "method", "id": "method|ExpandableText|1|0|byte|nint ui;nint id;nint text;in NativeExpandableTextOpts opts||he923421a6ed1305bf9a9239a09a90cb844e441a563ed0b79c1088be082b68db2", "signature": "static byte ExpandableText(nint ui, nint id, nint text, in NativeExpandableTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableTextOpts" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "method", "id": "method|Fader|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeFaderOpts opts||h6ed38dfc9564ca40874ecea6cd058d18d45a5b3df90662647f6d22fa1b43a8e9", "signature": "static byte Fader(nint ui, nint id, ref float value, float min, float max, in NativeFaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeFaderOpts" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "method", "id": "method|FileDragActive|1|0|byte|nint ui||h06689d0f1f6ad622bd4ede35fde7d9e4b27bf818d7051e398763c4d0d6c69752", "signature": "static byte FileDragActive(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_file_drag_active" }, { "name": "FilePicker", "kind": "method", "id": "method|FilePicker|1|0|byte|nint ui;nint id;nint open;nint out;ulong outCap;in NativeFilePickerOpts opts||h8aa210f51d701dad5def4bc04413bf8fe17e80b31bc38edc40f6cbfc4fa967ca", "signature": "static byte FilePicker(nint ui, nint id, nint open, nint @out, ulong outCap, in NativeFilePickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "out", "type": "nint" }, { "name": "outCap", "type": "ulong" }, { "name": "opts", "type": "in NativeFilePickerOpts" }], "summary": "cui_file_picker_ex" }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|1|0|byte|nint ui;nint id;nint fields;int count;ref uint selected;nint search;ulong searchCap||h10e5cb6dc504fbc076c16ced8a1482f61bf8adcae4723330548153733c934204", "signature": "static byte FilterBar(nint ui, nint id, nint fields, int count, ref uint selected, nint search, ulong searchCap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref uint" }, { "name": "search", "type": "nint" }, { "name": "searchCap", "type": "ulong" }], "summary": "cui_filter_bar" }, { "name": "GlIsSoftware", "kind": "method", "id": "method|GlIsSoftware|1|0|byte|nint r||h6f0d04c2dca4916b21cc9dbb2f1f9a0b5ae9561aa7f132235ee5f35dc9629684", "signature": "static byte GlIsSoftware(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_is_software" }, { "name": "HistogramSlider", "kind": "method", "id": "method|HistogramSlider|1|0|byte|nint ui;nint label;nint bins;int binCount;ref float lo;ref float hi;float min;float max;in NativeHistogramOpts opts||h76a57b17c94377856e726b8b08e866628238cda2c53b31a54f9aef2d181fa40e", "signature": "static byte HistogramSlider(nint ui, nint label, nint bins, int binCount, ref float lo, ref float hi, float min, float max, in NativeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "bins", "type": "nint" }, { "name": "binCount", "type": "int" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeHistogramOpts" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "method", "id": "method|HoldButton|1|0|byte|nint ui;nint label;in NativeHoldOpts opts||h1870c44b154f6e64561e0bc2872a662ce1c6077c5faa415f3313612b05e2df33", "signature": "static byte HoldButton(nint ui, nint label, in NativeHoldOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeHoldOpts" }], "summary": "cui_hold_button_ex" }, { "name": "HoverCardBegin", "kind": "method", "id": "method|HoverCardBegin|1|0|byte|nint ui;nint id;in NativeHoverCardOpts opts||h2acd4cd766bdafd791de91155afcbe9fcb949f5209b01f218aa8bb2ab0561e1d", "signature": "static byte HoverCardBegin(nint ui, nint id, in NativeHoverCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeHoverCardOpts" }], "summary": "cui_hover_card_begin" }, { "name": "IconButton", "kind": "method", "id": "method|IconButton|1|0|byte|nint ui;nint icon;in NativeButtonOpts opts||h2d23f5f0de85e2fcf802f1b534bb88b5c109da6930af15f92ad95402c5f2af72", "signature": "static byte IconButton(nint ui, nint icon, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_icon_button_ex" }, { "name": "ImageCompare", "kind": "method", "id": "method|ImageCompare|1|0|byte|nint ui;nint id;ulong before;ulong after;ref float pos;in NativeCompareOpts opts||h73026feb7f78c8cbd78223c91da32fbd98d3a6910059605ba7ac0eba5efb8d95", "signature": "static byte ImageCompare(nint ui, nint id, ulong before, ulong after, ref float pos, in NativeCompareOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "before", "type": "ulong" }, { "name": "after", "type": "ulong" }, { "name": "pos", "type": "ref float" }, { "name": "opts", "type": "in NativeCompareOpts" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "method", "id": "method|ImageViewer|1|0|byte|nint ui;nint id;ulong tex;int imageW;int imageH;ref NativeImageView view;in NativeImageViewerOpts opts||hf11375c486a0de23f7748433464bab1ed9200bc4f70afa33e92fc0dc45a6e350", "signature": "static byte ImageViewer(nint ui, nint id, ulong tex, int imageW, int imageH, ref NativeImageView view, in NativeImageViewerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref NativeImageView" }, { "name": "opts", "type": "in NativeImageViewerOpts" }], "summary": "cui_image_viewer_ex" }, { "name": "InspectorBegin", "kind": "method", "id": "method|InspectorBegin|1|0|byte|nint ui;nint id;in NativeInspectorOpts opts||haf0c110106f31d9e3d2a18a9340f0a4f30ab977c0436d21cadd58b7d87812a8d", "signature": "static byte InspectorBegin(nint ui, nint id, in NativeInspectorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeInspectorOpts" }], "summary": "cui_inspector_begin_ex" }, { "name": "InspectorGroup", "kind": "method", "id": "method|InspectorGroup|1|0|byte|nint ui;nint title;nint open||h497e9d988565ae5ca3b5c08f689dd3254225d3a3d9dc0ecf312ef898a908c201", "signature": "static byte InspectorGroup(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_inspector_group" }, { "name": "IsDisabled", "kind": "method", "id": "method|IsDisabled|1|0|byte|nint ui||h0f0e74072e7126efe97cf7c822e7ed9b4fd1b9ba5c5e78d6566ffb90b9ad1596", "signature": "static byte IsDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_is_disabled" }, { "name": "JsonView", "kind": "method", "id": "method|JsonView|1|0|byte|nint ui;nint id;nint json;in NativeJsonOpts opts||hdb710bc8e1b81b610086d6b063db3f139a632b10befa8e75576ebfdb26aed829", "signature": "static byte JsonView(nint ui, nint id, nint json, in NativeJsonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "json", "type": "nint" }, { "name": "opts", "type": "in NativeJsonOpts" }], "summary": "cui_json_view_ex" }, { "name": "KanbanCardBegin", "kind": "method", "id": "method|KanbanCardBegin|1|0|byte|nint ui;int cardId||hb10022a44f071459906d2056eaf86e971ba0fd1d1e8298e8e3512e2c40305731", "signature": "static byte KanbanCardBegin(nint ui, int cardId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanColumnBegin", "kind": "method", "id": "method|KanbanColumnBegin|1|0|byte|nint ui;nint title;int cardCount;in NativeKanbanColumnOpts opts||h31707cec7d02a90fb9ca22b004120125fc7c64fe847a796ff10f143a5970e8d0", "signature": "static byte KanbanColumnBegin(nint ui, nint title, int cardCount, in NativeKanbanColumnOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "cardCount", "type": "int" }, { "name": "opts", "type": "in NativeKanbanColumnOpts" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanEnd", "kind": "method", "id": "method|KanbanEnd|1|0|byte|nint ui;ref NativeKanbanMove move||h53bbfa00ebd29bb312c1e760325bdacf4768ff044b242e3f05cb6702bfc46d51", "signature": "static byte KanbanEnd(nint ui, ref NativeKanbanMove move)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "move", "type": "ref NativeKanbanMove" }], "summary": "cui_kanban_end" }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|1|0|byte|nint ui;Key key||h6d4445c5b57a82d91cda591d976850ee3d0eb9a02ac7a9a0c7f8fadba8cab1cb", "signature": "static byte KeyDown(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_down" }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|1|0|byte|nint ui;Key key||h4b8d48010a1a9850c0768747a30fbb0ec8ff46600a7bfbab7928db9651a84957", "signature": "static byte KeyPressed(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_pressed" }, { "name": "Knob", "kind": "method", "id": "method|Knob|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeKnobOpts opts||h9ee3cc21d4102e0742c3a600bae25092222ba9a1071838d49a0ca2698c8c7920", "signature": "static byte Knob(nint ui, nint id, ref float value, float min, float max, in NativeKnobOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeKnobOpts" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "method", "id": "method|KvEditor|1|0|byte|nint ui;nint id;nint pairs;ref int count;int capacity;in NativeKvEditorOpts opts||hb2614aaec9d451a0e5bdf229887d837d6bb7b2c23a13770a65a365eb3466709e", "signature": "static byte KvEditor(nint ui, nint id, nint pairs, ref int count, int capacity, in NativeKvEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeKvEditorOpts" }], "summary": "cui_kv_editor_ex" }, { "name": "LastHovered", "kind": "method", "id": "method|LastHovered|1|0|byte|nint ui||h41176bf534c908b00ace79674d97cffea1848ac349fe99eb9b1adf5c37669bb4", "signature": "static byte LastHovered(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_hovered" }, { "name": "LevelMeter", "kind": "method", "id": "method|LevelMeter|1|0|byte|nint ui;nint id;nint levels;int channels;in NativeLevelMeterOpts opts||hfc5e9178ec7f3614a5efade5d6dcdbf414075f81c96b3f6cc266f87b30516a1c", "signature": "static byte LevelMeter(nint ui, nint id, nint levels, int channels, in NativeLevelMeterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "levels", "type": "nint" }, { "name": "channels", "type": "int" }, { "name": "opts", "type": "in NativeLevelMeterOpts" }], "summary": "cui_level_meter_ex" }, { "name": "Link", "kind": "method", "id": "method|Link|1|0|byte|nint ui;nint text||h8460add3477f455cc2ee1c287e47ae31f0d673f5f961821dfdc3cd857ceadb3d", "signature": "static byte Link(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "method", "id": "method|ListItem|1|0|byte|nint ui;nint title;in NativeListItemOpts opts||h1bdd6b290a5d46e3fbc94460f2cf1e811f7ab4fb32aa4edd105643c1387b6160", "signature": "static byte ListItem(nint ui, nint title, in NativeListItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeListItemOpts" }], "summary": "cui_list_item_ex" }, { "name": "MarkdownApplyTask", "kind": "method", "id": "method|MarkdownApplyTask|1|0|byte|nint text;in NativeMarkdownResult result||h65c0748daeaff3d922677db26ff783f06848918f3064226056c488ad839a3f6e", "signature": "static byte MarkdownApplyTask(nint text, in NativeMarkdownResult result)", "parameters": [{ "name": "text", "type": "nint" }, { "name": "result", "type": "in NativeMarkdownResult" }], "summary": "cui_markdown_apply_task" }, { "name": "MenuBarMenuBegin", "kind": "method", "id": "method|MenuBarMenuBegin|1|0|byte|nint ui;nint label;in NativeMenuBarMenuOpts opts||hdce92dc64169719fd1caac182b3b3f1c1e69c519f083e93adad353ffa0087006", "signature": "static byte MenuBarMenuBegin(nint ui, nint label, in NativeMenuBarMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarMenuOpts" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "MenuBegin", "kind": "method", "id": "method|MenuBegin|1|0|byte|nint ui;nint label;in NativeMenuOpts opts||h0c701f73327f9a30be5cfb7c34816c1cdc4252ab5276470c412478196efce7ef", "signature": "static byte MenuBegin(nint ui, nint label, in NativeMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuOpts" }], "summary": "cui_menu_begin" }, { "name": "MenuItem", "kind": "method", "id": "method|MenuItem|1|0|byte|nint ui;nint label;in NativeMenuItemOpts opts||haf30308e41d50cd536bc2cf08e9736e8d2b49efc929acc8bca93a84950068f4d", "signature": "static byte MenuItem(nint ui, nint label, in NativeMenuItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuItemOpts" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "method", "id": "method|ModelPicker|1|0|byte|nint ui;nint id;nint models;int count;ref int selected;in NativeModelPickerOpts opts||hc29cc09c2e34215fa836775b784ea5bfb4f3bba7656e378d58ce8f73bff1c6fd", "signature": "static byte ModelPicker(nint ui, nint id, nint models, int count, ref int selected, in NativeModelPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "models", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeModelPickerOpts" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "method", "id": "method|MoneyInput|1|0|byte|nint ui;nint id;ref double value;in NativeMoneyOpts opts||h3ff760afb37f0e62af2cb05228c843fa66a95eada822c1352ada152ad8c575eb", "signature": "static byte MoneyInput(nint ui, nint id, ref double value, in NativeMoneyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "opts", "type": "in NativeMoneyOpts" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|1|0|byte|nint ui;MouseButton b||h15a448a8dcf4692f7df7c145b73d244866d5e5a4f735572ef4999a267379b68f", "signature": "static byte MouseClicked(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_clicked" }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|1|0|byte|nint ui;MouseButton b||hff24d7015a9ce35f643c5082bcb54be0985bb3f9f3dc211436da7b65f16590a5", "signature": "static byte MouseDown(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_down" }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|1|0|byte|nint ui;nint id;nint items;int count;nint selected;in NativeMultiSelectOpts opts||h5c9472439fb3846e3da639dcd77abda0ffc6983f39a8cd8f69537665395592e6", "signature": "static byte MultiSelect(nint ui, nint id, nint items, int count, nint selected, in NativeMultiSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeMultiSelectOpts" }], "summary": "cui_multi_select_ex" }, { "name": "NavItem", "kind": "method", "id": "method|NavItem|1|0|byte|nint ui;nint label;in NativeNavOpts opts||h12f929fa43eef8aaeeb499331c925a0a27b6aa2101c772e1fd311a90aa4ce8f5", "signature": "static byte NavItem(nint ui, nint label, in NativeNavOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeNavOpts" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "method", "id": "method|NeedsRedraw|1|0|byte|nint ui||h7b43442d721907c639ef1f2c082c75d198b178de187caf3ecd27a9945fc8ea8e", "signature": "static byte NeedsRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_needs_redraw" }, { "name": "NodeBegin", "kind": "method", "id": "method|NodeBegin|1|0|byte|nint ui;int nodeId;ref float x;ref float y;nint title;in NativeNodeOpts opts||h3ff767afdc5dc754f45f111bbc023fd04d09391838171174875147ff26ab10ac", "signature": "static byte NodeBegin(nint ui, int nodeId, ref float x, ref float y, nint title, in NativeNodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeNodeOpts" }], "summary": "cui_node_begin_ex" }, { "name": "NodeDeleted", "kind": "method", "id": "method|NodeDeleted|1|0|byte|nint ui;ref int nodeId||h26a2e21e519d12482534c9be0e688659e537c8c649731c62b8e07fd20f3aec51", "signature": "static byte NodeDeleted(nint ui, ref int nodeId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeEditorBegin", "kind": "method", "id": "method|NodeEditorBegin|1|0|byte|nint ui;nint id;ref NativeNodeView view;in NativeNodeEditorOpts opts||h5c300457768c76f92734ac1a0ccff610d8565ca52667e6bf8de7cf33ec5195f0", "signature": "static byte NodeEditorBegin(nint ui, nint id, ref NativeNodeView view, in NativeNodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "view", "type": "ref NativeNodeView" }, { "name": "opts", "type": "in NativeNodeEditorOpts" }], "summary": "cui_node_editor_begin_ex" }, { "name": "NodeInput", "kind": "method", "id": "method|NodeInput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h05349be34aeb5552ca0fe0e8e2faa4b0c88bf38b8ddfb94e56cb059827927b43", "signature": "static byte NodeInput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "method", "id": "method|NodeLink|1|0|byte|nint ui;int linkId;int fromPin;int toPin||h4fd0ea27954b724e7cdccedf031de49905dc5d5397d14cb610cc8b072c2c611e", "signature": "static byte NodeLink(nint ui, int linkId, int fromPin, int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "cui_node_link" }, { "name": "NodeLinkCreated", "kind": "method", "id": "method|NodeLinkCreated|1|0|byte|nint ui;ref int fromPin;ref int toPin||hc82624810a72f602e276268bcdcac44230c240176da8b76b33de074633261bb1", "signature": "static byte NodeLinkCreated(nint ui, ref int fromPin, ref int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "cui_node_link_created" }, { "name": "NodeLinkRemoved", "kind": "method", "id": "method|NodeLinkRemoved|1|0|byte|nint ui;ref int linkId||h4f0501cd14e679dd9c71ff20df58c61cd5ece412c9274982ca5977467578e59a", "signature": "static byte NodeLinkRemoved(nint ui, ref int linkId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "ref int" }], "summary": "cui_node_link_removed" }, { "name": "NodeOutput", "kind": "method", "id": "method|NodeOutput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h889d0c43d378b6488c82d0644a74fb8447e2024e5a741797063399e6bb76d271", "signature": "static byte NodeOutput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|1|0|byte|nint ui;nint id;ref double value;double min;double max;in NativeNumberOpts opts||h8dd3807fc82451dff355298afa82bd3d8d760f6aa9f4843c1afbf90c116722b4", "signature": "static byte Number(nint ui, nint id, ref double value, double min, double max, in NativeNumberOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "opts", "type": "in NativeNumberOpts" }], "summary": "cui_number_ex" }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|1|0|byte|nint ui;nint id;nint code;int length||h1d5f76d56771b0e941f76735b57fccf346364b04e9b6b30fc767d8c8b1a3373d", "signature": "static byte OtpInput(nint ui, nint id, nint code, int length)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "length", "type": "int" }], "summary": "cui_otp_input" }, { "name": "Pagination", "kind": "method", "id": "method|Pagination|1|0|byte|nint ui;nint id;ref int page;int pageCount||h9c6541597a311583fe7438c482c8224f55d8b6301216af97fb09d2b1b7c0dbc4", "signature": "static byte Pagination(nint ui, nint id, ref int page, int pageCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PathBarMenuBegin", "kind": "method", "id": "method|PathBarMenuBegin|1|0|byte|nint ui;nint id;ref int segment||h920519871dd34b39dc6f632fd5641a9c1fe9d2e1484743facc6341b86f2c90a4", "signature": "static byte PathBarMenuBegin(nint ui, nint id, ref int segment)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segment", "type": "ref int" }], "summary": "cui_path_bar_menu_begin" }, { "name": "PathHasExtension", "kind": "method", "id": "method|PathHasExtension|1|0|byte|nint path;nint accept||h51473867a382392260bce03dcd8573965a7a41479b3d86ba74646ab4589e6839", "signature": "static byte PathHasExtension(nint path, nint accept)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "accept", "type": "nint" }], "summary": "cui_path_has_extension" }, { "name": "PopoverBegin", "kind": "method", "id": "method|PopoverBegin|1|0|byte|nint ui;nint id;in NativePopoverOpts opts||hf7b2799f846341c5588cdd893e7efea99901ef279d1c3689385c06ab0b3c2312", "signature": "static byte PopoverBegin(nint ui, nint id, in NativePopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativePopoverOpts" }], "summary": "cui_popover_begin" }, { "name": "PopoverIsOpen", "kind": "method", "id": "method|PopoverIsOpen|1|0|byte|nint ui;nint id||h9af29adcf835a4877879bb5a326360b02b8b2db888492f0eeffdd9983f5fdd5e", "signature": "static byte PopoverIsOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "method", "id": "method|PropBool|1|0|byte|nint ui;nint label;nint value;in NativePropOpts opts||h00756c3152ec3f53862faae2e0bf373d9e2e3c324e60827347892307afe460f6", "signature": "static byte PropBool(nint ui, nint label, nint value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "method", "id": "method|PropColor|1|0|byte|nint ui;nint label;ref NativeColor value;in NativePropOpts opts||h97930e1593c9f3f948176eb0694ffbf4bb35e3ed3da460000a4985b7ab379333", "signature": "static byte PropColor(nint ui, nint label, ref NativeColor value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_color_ex" }, { "name": "PropEnum", "kind": "method", "id": "method|PropEnum|1|0|byte|nint ui;nint label;nint items;int count;ref int index;in NativePropOpts opts||hc25983cec08cc4d09953634b896fbda541bc2371db435897002a158aa7ccfb96", "signature": "static byte PropEnum(nint ui, nint label, nint items, int count, ref int index, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "method", "id": "method|PropFloat|1|0|byte|nint ui;nint label;ref float value;in NativePropOpts opts||he71b383273784a5057e7581fe417bf0b1982ba24f1a722d7c19dfbeda8447dd5", "signature": "static byte PropFloat(nint ui, nint label, ref float value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "method", "id": "method|PropInt|1|0|byte|nint ui;nint label;ref int value;in NativePropOpts opts||h5f2a28c9b5e8da8289424bf17db307be852cceb9edb2a35a223c89709c234b01", "signature": "static byte PropInt(nint ui, nint label, ref int value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "method", "id": "method|PropText|1|0|byte|nint ui;nint label;nint buf;ulong cap;in NativePropOpts opts||h69d4e978f588bda21ba0db61bc1f444f291219794caf48e7d755eff7510027c2", "signature": "static byte PropText(nint ui, nint label, nint buf, ulong cap, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "method", "id": "method|PropVec|1|0|byte|nint ui;nint label;ref float value;int components;in NativePropOpts opts||h86de2489ef65fd8442a3d0247ae840a33f6e3fcfbecbba07f586a9f869e29231", "signature": "static byte PropVec(nint ui, nint label, ref float value, int components, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_vec_ex" }, { "name": "QueryBuilder", "kind": "method", "id": "method|QueryBuilder|1|0|byte|nint ui;nint id;nint fields;int fieldCount;nint nodes;ref int count;int capacity;in NativeQueryOpts opts||h9e99d805b9400574ba394e2f6497a861baa88e0ba6b4a8e520aa819e41d38975", "signature": "static byte QueryBuilder(nint ui, nint id, nint fields, int fieldCount, nint nodes, ref int count, int capacity, in NativeQueryOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeQueryOpts" }], "summary": "cui_query_builder_ex" }, { "name": "QueryMatch", "kind": "method", "id": "method|QueryMatch|1|0|byte|nint fields;int fieldCount;nint nodes;int count;nint values||h029c8a4faaccfacab37fbdf6a5e0cbdad3ec4789fe25a84c817b9b30b1a0c9d3", "signature": "static byte QueryMatch(nint fields, int fieldCount, nint nodes, int count, nint values)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }], "summary": "cui_query_match" }, { "name": "Radio", "kind": "method", "id": "method|Radio|1|0|byte|nint ui;nint label;ref int value;int option;in NativeCheckOpts opts||hcdcef5ad8085ac53ef4c7df825d71526f96787cbe7e0056fa365c0afe2d5ee48", "signature": "static byte Radio(nint ui, nint label, ref int value, int option, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "method", "id": "method|RadioCards|1|0|byte|nint ui;nint id;nint choices;int count;ref int index;in NativeRadioCardsOpts opts||h2fc7b0b667bf08b9f7ac97eaea453441474e71299379f834d802cf253d5781d5", "signature": "static byte RadioCards(nint ui, nint id, nint choices, int count, ref int index, in NativeRadioCardsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "choices", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeRadioCardsOpts" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "method", "id": "method|RadioGroup|1|0|byte|nint ui;nint id;nint items;int count;ref int index||h41fdeaf6779c042bf31b87c0f44e30b210b8c874a28e0273fb4c1badde4f41f1", "signature": "static byte RadioGroup(nint ui, nint id, nint items, int count, ref int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "method", "id": "method|RangeCalendar|1|0|byte|nint ui;nint id;ref NativeDateRange range;int months||h170335980cd92550862e1bf6633a11da9b020be711e236ecce1a60296fdf8c5a", "signature": "static byte RangeCalendar(nint ui, nint id, ref NativeDateRange range, int months)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "months", "type": "int" }], "summary": "cui_range_calendar" }, { "name": "RangeSlider", "kind": "method", "id": "method|RangeSlider|1|0|byte|nint ui;nint label;ref float lo;ref float hi;float min;float max||h32f96bb5dbbbeefb9ddb110ad492e7e78912f7cc36806f9c027d16296a34ff63", "signature": "static byte RangeSlider(nint ui, nint label, ref float lo, ref float hi, float min, float max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "method", "id": "method|Rating|1|0|byte|nint ui;nint id;ref int value;int max||h04004cebb5c1581168f84691d3658abaf8d40451dd82ca2ff535542955e396a3", "signature": "static byte Rating(nint ui, nint id, ref int value, int max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int" }], "summary": "cui_rating" }, { "name": "ReasoningBegin", "kind": "method", "id": "method|ReasoningBegin|1|0|byte|nint ui;nint id;in NativeReasoningOpts opts||ha24ccd4e6415a9f80d7679fc60373a33e2e4979ed946fe51f20466c85714765b", "signature": "static byte ReasoningBegin(nint ui, nint id, in NativeReasoningOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeReasoningOpts" }], "summary": "cui_reasoning_begin" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|1|0|byte|nint ui||h52ff8179fcb274432849c6012a35f6479cf5b716aca5b93b2293b9ac61f63631", "signature": "static byte ReorderEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_end" }, { "name": "RulerSlider", "kind": "method", "id": "method|RulerSlider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeRulerOpts opts||h3d06261b67662650a9f462da7f534bd41b808c4cb0aed2d0d52ee4161f8b20d0", "signature": "static byte RulerSlider(nint ui, nint label, ref float value, float min, float max, in NativeRulerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRulerOpts" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "method", "id": "method|Scrub|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeScrubOpts opts||hd488ae4441e78805976672ba9c7ab7dd5bd7bfce82c675683fa86ea3adaa4c00", "signature": "static byte Scrub(nint ui, nint label, ref float value, float min, float max, in NativeScrubOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeScrubOpts" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "method", "id": "method|Segmented|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSegmentedOpts opts||h07fbd0f03f7b9d2479970a93a825fb7854a583ea1fe82a108d6d5146138f8789", "signature": "static byte Segmented(nint ui, nint id, nint items, int count, ref int index, in NativeSegmentedOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSegmentedOpts" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "method", "id": "method|Select|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSelectOpts opts||hc4cc1709b9bbacfdd0684ecb3db4fa731502a5cc6c03eadad82e4d691c403b4e", "signature": "static byte Select(nint ui, nint id, nint items, int count, ref int index, in NativeSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSelectOpts" }], "summary": "cui_select_ex" }, { "name": "SheetBegin", "kind": "method", "id": "method|SheetBegin|1|0|byte|nint ui;nint title;nint open;in NativeSheetOpts opts||h63513bae0643d65f342e309d1d5dd8742da4175344baeb0d2fdd1b8bc869d7bd", "signature": "static byte SheetBegin(nint ui, nint title, nint open, in NativeSheetOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeSheetOpts" }], "summary": "cui_sheet_begin" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|1|0|byte|nint ui;int mods;Key key||hd27db9793043c7739eb655fd479c45377af310b81113193e71c0cdcadcba8001", "signature": "static byte Shortcut(nint ui, int mods, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mods", "type": "int" }, { "name": "key", "type": "Key" }], "summary": "cui_shortcut" }, { "name": "ShortcutRecorder", "kind": "method", "id": "method|ShortcutRecorder|1|0|byte|nint ui;nint id;ref NativeKeyCombo combo;in NativeShortcutRecorderOpts opts||hbe04823b844ed3ff35a1a180f568892ebc52d0cb046997cd7c852b370dd58a2a", "signature": "static byte ShortcutRecorder(nint ui, nint id, ref NativeKeyCombo combo, in NativeShortcutRecorderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "combo", "type": "ref NativeKeyCombo" }, { "name": "opts", "type": "in NativeShortcutRecorderOpts" }], "summary": "cui_shortcut_recorder_ex" }, { "name": "SignaturePad", "kind": "method", "id": "method|SignaturePad|1|0|byte|nint ui;nint id;in NativeSignatureOpts opts||h3930868f0cb4d0c6dafbecf0ea3749ab6cde4dfae8fd98f814843a267000b9b6", "signature": "static byte SignaturePad(nint ui, nint id, in NativeSignatureOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSignatureOpts" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "method", "id": "method|Slider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeSliderOpts opts||h578e587703e448688123d0b004b5c8aca34572c3f3351a481cddc7fc655425cc", "signature": "static byte Slider(nint ui, nint label, ref float value, float min, float max, in NativeSliderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeSliderOpts" }], "summary": "cui_slider_ex" }, { "name": "StatusBarItem", "kind": "method", "id": "method|StatusBarItem|1|0|byte|nint ui;nint label;in NativeStatusItemOpts opts||h4790c555513598595f49e5d19ae07a5f8771dafa02a0285d7ce3a8e968abd2af", "signature": "static byte StatusBarItem(nint ui, nint label, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_item_ex" }, { "name": "StatusButton", "kind": "method", "id": "method|StatusButton|1|0|byte|nint ui;nint label;Status status;in NativeStatusButtonOpts opts||hbd6cdabc808f2abbd5e15ee20adc0f511c02054771b4253e14b383238529a1a3", "signature": "static byte StatusButton(nint ui, nint label, Status status, in NativeStatusButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "status", "type": "Status" }, { "name": "opts", "type": "in NativeStatusButtonOpts" }], "summary": "cui_status_button_ex" }, { "name": "SwLastDamage", "kind": "method", "id": "method|SwLastDamage|1|0|byte|nint r;ref int x;ref int y;ref int w;ref int h||h30233e8faa58656654e4f604218a579860dd2a7cb7bd6c5783181ae5c0625ad0", "signature": "static byte SwLastDamage(nint r, ref int x, ref int y, ref int w, ref int h)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "x", "type": "ref int" }, { "name": "y", "type": "ref int" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_sw_last_damage" }, { "name": "Switch", "kind": "method", "id": "method|Switch|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hc0a92c21627fec7195b958312e07a90e476a927d664950cd0c27890469716786", "signature": "static byte Switch(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "method", "id": "method|TabBar|1|0|byte|nint ui;nint id;nint items;int count;ref int selected;in NativeTabBarOpts opts||h84a537ef295b05ec9a7875c20f88a0981f676e0519a819543ecd2cb53df679dd", "signature": "static byte TabBar(nint ui, nint id, nint items, int count, ref int selected, in NativeTabBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTabBarOpts" }], "summary": "cui_tab_bar_ex" }, { "name": "TableBegin", "kind": "method", "id": "method|TableBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;in NativeTableOpts opts||h813dd66787d9f3a118c5213b3c708d32a3f8b37e8f9b6d23892055c031061a91", "signature": "static byte TableBegin(nint ui, nint id, nint columns, int columnCount, in NativeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "opts", "type": "in NativeTableOpts" }], "summary": "cui_table_begin_ex" }, { "name": "TableRow", "kind": "method", "id": "method|TableRow|1|0|byte|nint ui;byte selected||h10abf29c8d0d297c4ae783e8573bf59af256507d548fed3846f6cb8d1e33af7f", "signature": "static byte TableRow(nint ui, byte selected)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "selected", "type": "byte" }], "summary": "cui_table_row" }, { "name": "Tabs", "kind": "method", "id": "method|Tabs|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeTabsOpts opts||h3f80b81e7e4481583c25cf0e2c4a863b9d3dc7ffcf927d6efaa5eecc40d72708", "signature": "static byte Tabs(nint ui, nint id, nint items, int count, ref int index, in NativeTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeTabsOpts" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|1|0|byte|nint ui;nint id;nint buf;ulong cap;in NativeTagOpts opts||h4b51505c400e2374a9ef4b086f61587960b0963f8b80956a5be995481d915fab", "signature": "static byte TagInput(nint ui, nint id, nint buf, ulong cap, in NativeTagOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeTagOpts" }], "summary": "cui_tag_input_ex" }, { "name": "ThemeSwitcher", "kind": "method", "id": "method|ThemeSwitcher|1|0|byte|nint ui;ref int mode;byte withSystem||hca6a471cd4a87cc19eff3f9a4fadc50a73d523e83d0a773a344adbe1b0d04866", "signature": "static byte ThemeSwitcher(nint ui, ref int mode, byte withSystem)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "byte" }], "summary": "cui_theme_switcher" }, { "name": "ThemeToggle", "kind": "method", "id": "method|ThemeToggle|1|0|byte|nint ui||h4609d89e653a3baaef3cea4c9659df20b1303da3806ee0320fb59809f3fc6265", "signature": "static byte ThemeToggle(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_toggle" }, { "name": "TimeDial", "kind": "method", "id": "method|TimeDial|1|0|byte|nint ui;nint id;ref int hour;ref int minute;float size||hac05b892060233f70ac054ae631a05408fc9ed16c3e54e39475eeaee7a5752d7", "signature": "static byte TimeDial(nint ui, nint id, ref int hour, ref int minute, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "cui_time_dial" }, { "name": "TimePicker", "kind": "method", "id": "method|TimePicker|1|0|byte|nint ui;nint id;ref int hour;ref int minute;in NativeTimeOpts opts||h76c1a6f222300c98ffc9ee66d84b4eab5447a305ed64bd77d24dd358dc4c225c", "signature": "static byte TimePicker(nint ui, nint id, ref int hour, ref int minute, in NativeTimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "opts", "type": "in NativeTimeOpts" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "method", "id": "method|ToastActionClicked|1|0|byte|nint ui;int handle||hc310181a49b561232fbe10a57b50969930e55cb20455bdd700c79f6c1d3cf32a", "signature": "static byte ToastActionClicked(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|1|0|byte|nint ui;nint id;nint labels;int count;nint values;in NativeToggleGroupOpts opts||h9bfed721c10f74f2140e62a76fe5591423ccc4e2e91b1106c38fc1b1869b9c88", "signature": "static byte ToggleGroup(nint ui, nint id, nint labels, int count, nint values, in NativeToggleGroupOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }, { "name": "opts", "type": "in NativeToggleGroupOpts" }], "summary": "cui_toggle_group_ex" }, { "name": "ToolbarButton", "kind": "method", "id": "method|ToolbarButton|1|0|byte|nint ui;nint icon;in NativeToolOpts opts||h994afb837ec2079774d6535e3a3cb0d1881de0153fe23fc39186b0605a2cb2da", "signature": "static byte ToolbarButton(nint ui, nint icon, in NativeToolOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeToolOpts" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeBegin", "kind": "method", "id": "method|TreeBegin|1|0|byte|nint ui;nint label;nint open;in NativeTreeOpts opts||hebd9789f6109d185bae7dcc7dea5d5ef0a57172e5fbb10bd0bff64c10944485e", "signature": "static byte TreeBegin(nint ui, nint label, nint open, in NativeTreeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeTreeOpts" }], "summary": "cui_tree_begin" }, { "name": "TreeCell", "kind": "method", "id": "method|TreeCell|1|0|byte|nint ui;nint label;int depth;byte hasChildren;nint open;nint icon||h92fbcfdc4fbc2346e13caf9792c234af2e9a400f3d4ebb54ad1a8eff50cb83ab", "signature": "static byte TreeCell(nint ui, nint label, int depth, byte hasChildren, nint open, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "byte" }, { "name": "open", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_cell" }, { "name": "TreeClicked", "kind": "method", "id": "method|TreeClicked|1|0|byte|nint ui||hd91dfe2b074aa7b109f468e8b4040c694aef31ff296cba3699a36fe57032280a", "signature": "static byte TreeClicked(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "method", "id": "method|Typewriter|1|0|byte|nint ui;nint id;nint text;in NativeTextFxOpts opts||h7fb0abddf731ca6f9ade4f67404605f67cc2bbeca56950e6b83ec10b732cc13a", "signature": "static byte Typewriter(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_typewriter_ex" }, { "name": "UrlSetParams", "kind": "method", "id": "method|UrlSetParams|1|0|byte|nint url;ulong cap;nint pairs;int count||h4c1824026b07f4046b123e5684c3774de2a904c7301d8fec705e91aeaa60afd9", "signature": "static byte UrlSetParams(nint url, ulong cap, nint pairs, int count)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_url_set_params" }, { "name": "UserMenuBegin", "kind": "method", "id": "method|UserMenuBegin|1|0|byte|nint ui;nint name;in NativeUserMenuOpts opts||hb48d59d99a73868669d0b331ec83192210a0c833e3988ef13eda6fb5658c27a4", "signature": "static byte UserMenuBegin(nint ui, nint name, in NativeUserMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeUserMenuOpts" }], "summary": "cui_user_menu_begin" }, { "name": "VoiceOrb", "kind": "method", "id": "method|VoiceOrb|1|0|byte|nint ui;nint id;VoiceState state;float level;in NativeVoiceOrbOpts opts||h93f6b3e912f2a6852d94df96ec4a2f9302788d4dd152171fe341f961c7b04563", "signature": "static byte VoiceOrb(nint ui, nint id, VoiceState state, float level, in NativeVoiceOrbOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "opts", "type": "in NativeVoiceOrbOpts" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "method", "id": "method|WantsKeyboard|1|0|byte|nint ui||hf239c9950a859c2b1ee4d96bd406f245de4535bec30ad74ba5dc5886536c1718", "signature": "static byte WantsKeyboard(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_keyboard" }, { "name": "WantsMouse", "kind": "method", "id": "method|WantsMouse|1|0|byte|nint ui||h43a7d8c4da0674c3b57b4bbff09e3dc88bc0b56f3d7496e133fbdf99b6439585", "signature": "static byte WantsMouse(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_mouse" }, { "name": "Waveform", "kind": "method", "id": "method|Waveform|1|0|byte|nint ui;nint id;nint peaks;int count;ref float progress;in NativeWaveformOpts opts||hde8136d458f7da0d7a74fe40a2f5009959fe7d3a370e498fe9d7bf29214ded9a", "signature": "static byte Waveform(nint ui, nint id, nint peaks, int count, ref float progress, in NativeWaveformOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "peaks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "progress", "type": "ref float" }, { "name": "opts", "type": "in NativeWaveformOpts" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "method", "id": "method|WheelPicker|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeWheelOpts opts||hf3c3b0182f87f1b680f739b50bb8d87c9cabfee03586951ac62bf65b871448ef", "signature": "static byte WheelPicker(nint ui, nint id, nint items, int count, ref int index, in NativeWheelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeWheelOpts" }], "summary": "cui_wheel_picker_ex" }, { "name": "WritePng", "kind": "method", "id": "method|WritePng|1|0|byte|nint path;nint rgba;int width;int height;int stride||h85e643ea1e51d20a5fdccd30c3478c4965e2c38118937188e217dd742b1b2308", "signature": "static byte WritePng(nint path, nint rgba, int width, int height, int stride)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }], "summary": "cui_write_png" }, { "name": "Time", "kind": "method", "id": "method|Time|1|0|double|nint ui||hb2f1ad77b6f92fa1a452bb4566892538d32ec9562aa9a5dbf0d51f163236ee63", "signature": "static double Time(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_time" }, { "name": "Animate", "kind": "method", "id": "method|Animate|1|0|float|nint ui;uint id;float target||h783081c7165f6473b03c87976bf42bd71bb8dba6a771cc8e726a95e9b31185e5", "signature": "static float Animate(nint ui, uint id, float target)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }], "summary": "cui_animate" }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|1|0|float|nint ui;uint id;float target;float duration;float bounce||haadb48d9ac3326b48d979e354207d7fe478973a6fbc31ca176c063059ee82e70", "signature": "static float AnimateSpring(nint ui, uint id, float target, float duration, float bounce)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "cui_animate_spring" }, { "name": "CurveEval", "kind": "method", "id": "method|CurveEval|1|0|float|nint keys;int count;float x||ha777fdac9157752521a46d103b76d33d1192ee259722b6dea4faf21e203b3d94", "signature": "static float CurveEval(nint keys, int count, float x)", "parameters": [{ "name": "keys", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }], "summary": "cui_curve_eval" }, { "name": "DeltaTime", "kind": "method", "id": "method|DeltaTime|1|0|float|nint ui||h6ee192edd9536831c0243d007d39a8bf5a8f54a0151b686bc63099af3951e2db", "signature": "static float DeltaTime(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_delta_time" }, { "name": "DpiScale", "kind": "method", "id": "method|DpiScale|1|0|float|nint ui||h634ef8f8003d098e28306a7d54dcf08d6cf9a3c70bd47e93dcfc9e6237125047", "signature": "static float DpiScale(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dpi_scale" }, { "name": "NextWakeup", "kind": "method", "id": "method|NextWakeup|1|0|float|nint ui||heaa3059e89c281cf8618ccc70329affe44629f9bfd94615949690fb4265bbc46", "signature": "static float NextWakeup(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_next_wakeup" }, { "name": "ActivityRings", "kind": "method", "id": "method|ActivityRings|1|0|int|nint ui;nint id;nint rings;int count;in NativeRingsOpts opts||hfab99a08b98a1a46a19500c9dc566de59336b84686e088b3b08aa493b5bfb5f1", "signature": "static int ActivityRings(nint ui, nint id, nint rings, int count, in NativeRingsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeRingsOpts" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "method", "id": "method|AgentPlan|1|0|int|nint ui;nint id;nint steps;int count;in NativeAgentPlanOpts opts||h783bd47ee92e5be4ecf611f1b10dcce34680176116584cb837c3d63ece939fc8", "signature": "static int AgentPlan(nint ui, nint id, nint steps, int count, in NativeAgentPlanOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeAgentPlanOpts" }], "summary": "cui_agent_plan_ex" }, { "name": "AppRun", "kind": "method", "id": "method|AppRun|1|0|int|in NativeAppDesc desc;nint frame;nint user||h5b274bb4d7f996aa456c048eb630e0e5d79c988ae23fb56e20e90dae2e8d2ff9", "signature": "static int AppRun(in NativeAppDesc desc, nint frame, nint user)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }, { "name": "frame", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_app_run" }, { "name": "AvatarUpload", "kind": "method", "id": "method|AvatarUpload|1|0|int|nint ui;nint id;nint name;ref ulong image;float size||h1a590f05d0f131e9a0374b0d1821a2e797b3b4e6f91871f223d8fcef540820c6", "signature": "static int AvatarUpload(nint ui, nint id, nint name, ref ulong image, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "image", "type": "ref ulong" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_upload" }, { "name": "BarList", "kind": "method", "id": "method|BarList|1|0|int|nint ui;nint id;nint items;int count;in NativeBarListOpts opts||h38c11ff449d272606355ff091085f89c94306998c17998930106f4560b27dea7", "signature": "static int BarList(nint ui, nint id, nint items, int count, in NativeBarListOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeBarListOpts" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "method", "id": "method|Breadcrumb|1|0|int|nint ui;nint items;int count||h63c8fc446537769f774a935e4558c83571acc23d75274e5d703a72ce1523fe85", "signature": "static int Breadcrumb(nint ui, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "method", "id": "method|CalendarHeatmap|1|0|int|nint ui;nint id;NativeDate start;nint values;int days;in NativeCalendarHeatmapOpts opts||hc23599f375fea1dfd07e8380e49bd8fac1279ab8e2e5d142291dd4196e1fafa3", "signature": "static int CalendarHeatmap(nint ui, nint id, NativeDate start, nint values, int days, in NativeCalendarHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "NativeDate" }, { "name": "values", "type": "nint" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeCalendarHeatmapOpts" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "method", "id": "method|Candlestick|1|0|int|nint ui;nint id;nint candles;int count;in NativeCandlestickOpts opts||ha23000c433513bc9358604c3881de3ea161c7d64c66e39fc7756d310c341ad95", "signature": "static int Candlestick(nint ui, nint id, nint candles, int count, in NativeCandlestickOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "candles", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCandlestickOpts" }], "summary": "cui_candlestick_ex" }, { "name": "CardStackEnd", "kind": "method", "id": "method|CardStackEnd|1|0|int|nint ui||hf8bca440238fade3f7ea582ac1602ee0127f53a72ac52ee2411e8f8aaf5686d8", "signature": "static int CardStackEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_end" }, { "name": "ChatComposer", "kind": "method", "id": "method|ChatComposer|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeComposerOpts opts||h2a06bab1b93330b382be829803f5dd529e0a0fed034dd58a0aaab411b3067717", "signature": "static int ChatComposer(nint ui, nint id, nint buf, ulong cap, in NativeComposerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeComposerOpts" }], "summary": "cui_chat_composer_ex" }, { "name": "Checklist", "kind": "method", "id": "method|Checklist|1|0|int|nint ui;nint id;nint steps;int count;in NativeChecklistOpts opts||hdba0108e3588df0823f7df8666b548f9fb5aec5772f65711074a08a7380e60f8", "signature": "static int Checklist(nint ui, nint id, nint steps, int count, in NativeChecklistOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChecklistOpts" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "method", "id": "method|CommandPalette|1|0|int|nint ui;nint open;nint commands;int count||hd92303b12ad508c387686648ab58b2eddf7ba0e5c16ecb04f912944ea3c865d7", "signature": "static int CommandPalette(nint ui, nint open, nint commands, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "commands", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_command_palette" }, { "name": "Comment", "kind": "method", "id": "method|Comment|1|0|int|nint ui;nint id;nint author;nint text;in NativeCommentOpts opts||hdd03cdb9d470cd5bf5dfd06ad2a88b6454a330709bd3321ca9b851600542d1e5", "signature": "static int Comment(nint ui, nint id, nint author, nint text, in NativeCommentOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "author", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeCommentOpts" }], "summary": "cui_comment_ex" }, { "name": "DateToDays", "kind": "method", "id": "method|DateToDays|1|0|int|NativeDate d||hb0dad71dec46af8c99d25fcad3b990e1cf144e3e1a5ee8bc6add3ecdca7e5e6b", "signature": "static int DateToDays(NativeDate d)", "parameters": [{ "name": "d", "type": "NativeDate" }], "summary": "cui_date_to_days" }, { "name": "DiffCompute", "kind": "method", "id": "method|DiffCompute|1|0|int|nint oldText;ulong oldLen;nint newText;ulong newLen;uint flags;nint hunks;int cap;nint stats||hbd57a30bb6e264ef7243f4fe261f435296711881b447b48ca3a3d348ecf33ec8", "signature": "static int DiffCompute(nint oldText, ulong oldLen, nint newText, ulong newLen, uint flags, nint hunks, int cap, nint stats)", "parameters": [{ "name": "oldText", "type": "nint" }, { "name": "oldLen", "type": "ulong" }, { "name": "newText", "type": "nint" }, { "name": "newLen", "type": "ulong" }, { "name": "flags", "type": "uint" }, { "name": "hunks", "type": "nint" }, { "name": "cap", "type": "int" }, { "name": "stats", "type": "nint" }], "summary": "cui_diff_compute" }, { "name": "DiffViewRows", "kind": "method", "id": "method|DiffViewRows|1|0|int|nint ui;nint id;nint rows;int first;int cap||h1c7aade1dc1cf7abe185f6b4cc3cfa64e49ade089a1fc6d704e67924616863fd", "signature": "static int DiffViewRows(nint ui, nint id, nint rows, int first, int cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rows", "type": "nint" }, { "name": "first", "type": "int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_view_rows" }, { "name": "DroppedFileCount", "kind": "method", "id": "method|DroppedFileCount|1|0|int|nint ui||h6b75c3c22dbbb1f2ce9ee98bd11d91fbbaf2729d2d06380e850cf9b5fd8ba0e5", "signature": "static int DroppedFileCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dropped_file_count" }, { "name": "Dropzone", "kind": "method", "id": "method|Dropzone|1|0|int|nint ui;nint id;in NativeDropzoneOpts opts||h7d55496ae62b3bf291f2e1623067e800421a125a3441fbd4b22bd9880aebf298", "signature": "static int Dropzone(nint ui, nint id, in NativeDropzoneOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDropzoneOpts" }], "summary": "cui_dropzone_ex" }, { "name": "FsList", "kind": "method", "id": "method|FsList|1|0|int|nint user;nint path;ref NativeFileEntry out;int cap;nint names;ulong namesCap;byte hidden||hc1b544731ffb36fa5cdf8780f2343ce475feb9bcf939b64a7baafaca17c85b97", "signature": "static int FsList(nint user, nint path, ref NativeFileEntry @out, int cap, nint names, ulong namesCap, byte hidden)", "parameters": [{ "name": "user", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "out", "type": "ref NativeFileEntry" }, { "name": "cap", "type": "int" }, { "name": "names", "type": "nint" }, { "name": "namesCap", "type": "ulong" }, { "name": "hidden", "type": "byte" }], "summary": "cui_fs_list" }, { "name": "Funnel", "kind": "method", "id": "method|Funnel|1|0|int|nint ui;nint id;nint stages;int count;in NativeFunnelOpts opts||h5da5cae7c9d4360a84a6d41280b3d14dc41d9b0d80485581d03d051408bdc6f0", "signature": "static int Funnel(nint ui, nint id, nint stages, int count, in NativeFunnelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeFunnelOpts" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "method", "id": "method|Gantt|1|0|int|nint ui;nint id;nint tasks;int count;NativeDate origin;int days;in NativeGanttOpts opts||hc253df918bb421e7723ead0a131a534d65e811db10c12d19569f79ca874ef106", "signature": "static int Gantt(nint ui, nint id, nint tasks, int count, NativeDate origin, int days, in NativeGanttOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tasks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "origin", "type": "NativeDate" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeGanttOpts" }], "summary": "cui_gantt_ex" }, { "name": "Heatmap", "kind": "method", "id": "method|Heatmap|1|0|int|nint ui;nint id;nint values;int rows;int cols;in NativeHeatmapOpts opts||h4df783b0c75a2cc42ad921f03a3a1e2694072d72a3a65780abd6d65acdb7f3fd", "signature": "static int Heatmap(nint ui, nint id, nint values, int rows, int cols, in NativeHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "opts", "type": "in NativeHeatmapOpts" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "method", "id": "method|InlineEdit|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInlineEditOpts opts||h7143f520b1f81033517b98aca967ce5fedaa4105094e335bfcf7207ee3b2733a", "signature": "static int InlineEdit(nint ui, nint id, nint buf, ulong cap, in NativeInlineEditOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInlineEditOpts" }], "summary": "cui_inline_edit_ex" }, { "name": "Input", "kind": "method", "id": "method|Input|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h796e5768aac93644ab2f47ff4e5ed3af9e0572e38004095c843127a656d32dd2", "signature": "static int Input(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_input_ex" }, { "name": "KeyMods", "kind": "method", "id": "method|KeyMods|1|0|int|nint ui||h293d80845300d58f2995a5510e21c1111fca0df2e690ba98a8a8d63d903fbeb5", "signature": "static int KeyMods(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_key_mods" }, { "name": "NowPlaying", "kind": "method", "id": "method|NowPlaying|1|0|int|nint ui;nint id;ref NativeNowPlaying np;in NativeNowPlayingOpts opts||h3305da350f9305ad71c56ecfc831c7c04162ba1bc05e8da67efa84f26e701d7f", "signature": "static int NowPlaying(nint ui, nint id, ref NativeNowPlaying np, in NativeNowPlayingOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "np", "type": "ref NativeNowPlaying" }, { "name": "opts", "type": "in NativeNowPlayingOpts" }], "summary": "cui_now_playing_ex" }, { "name": "PasswordStrength", "kind": "method", "id": "method|PasswordStrength|1|0|int|nint ui;nint password||h296f8bc019e9a78a40862348b6ef154911727f24b96d3ce53528bf23cef3905a", "signature": "static int PasswordStrength(nint ui, nint password)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "password", "type": "nint" }], "summary": "cui_password_strength" }, { "name": "PromptSuggestions", "kind": "method", "id": "method|PromptSuggestions|1|0|int|nint ui;nint id;nint items;int count;in NativePromptSuggestionsOpts opts||h39cb0ee93a2df36c51cfb2d9a4e30d06e4b34a4e8cd1c660fe0ae0bcd00797fa", "signature": "static int PromptSuggestions(nint ui, nint id, nint items, int count, in NativePromptSuggestionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePromptSuggestionsOpts" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "method", "id": "method|RadarChart|1|0|int|nint ui;nint id;nint series;int count;nint axes;int axisCount;in NativeRadarOpts opts||h06cae4d94cc306c429feaef1500dc5b79741ac577050107bd413b612a5a4205b", "signature": "static int RadarChart(nint ui, nint id, nint series, int count, nint axes, int axisCount, in NativeRadarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "axes", "type": "nint" }, { "name": "axisCount", "type": "int" }, { "name": "opts", "type": "in NativeRadarOpts" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "method", "id": "method|Reactions|1|0|int|nint ui;nint id;nint items;int count||h143216460130bd0a205a3323a055f03e662c39c9993e057c4a7be569e363e3e4", "signature": "static int Reactions(nint ui, nint id, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_reactions" }, { "name": "RegexSearch", "kind": "method", "id": "method|RegexSearch|1|0|int|nint pattern;int flags;nint text;int len;int from;ref NativeRegexMatch m;nint error||h72d881084b53fb08b98d00025e7a3aa54591c236a477a81dec5980fdd339b3a2", "signature": "static int RegexSearch(nint pattern, int flags, nint text, int len, int from, ref NativeRegexMatch m, nint error)", "parameters": [{ "name": "pattern", "type": "nint" }, { "name": "flags", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "from", "type": "int" }, { "name": "m", "type": "ref NativeRegexMatch" }, { "name": "error", "type": "nint" }], "summary": "cui_regex_search" }, { "name": "ResponseActions", "kind": "method", "id": "method|ResponseActions|1|0|int|nint ui;nint id;in NativeResponseActionsOpts opts||hf0045bf0fe8346d68d3e858a4d4fd84158f1d7b3705a5b21433eb294b616ad2d", "signature": "static int ResponseActions(nint ui, nint id, in NativeResponseActionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeResponseActionsOpts" }], "summary": "cui_response_actions_ex" }, { "name": "Sankey", "kind": "method", "id": "method|Sankey|1|0|int|nint ui;nint id;nint nodes;int nodeCount;nint links;int linkCount;in NativeSankeyOpts opts||hd7ee09dc37ead6c7726c9f6e58362252feb879f0f2a23e2b42b5ad14fb4cf537", "signature": "static int Sankey(nint ui, nint id, nint nodes, int nodeCount, nint links, int linkCount, in NativeSankeyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "links", "type": "nint" }, { "name": "linkCount", "type": "int" }, { "name": "opts", "type": "in NativeSankeyOpts" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "method", "id": "method|ScatterChart|1|0|int|nint ui;nint id;nint series;int count;in NativeScatterOpts opts||hb705f85ec95b21fc19db4370c4a67ef8c487d162f3f505dcc1dd6fd9e348f603", "signature": "static int ScatterChart(nint ui, nint id, nint series, int count, in NativeScatterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeScatterOpts" }], "summary": "cui_scatter_chart_ex" }, { "name": "Search", "kind": "method", "id": "method|Search|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h13ff2c660a7121d9eea3e531962d731513ea3a0c696f0b6b881b865ef0ef7762", "signature": "static int Search(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_search_ex" }, { "name": "SignaturePoints", "kind": "method", "id": "method|SignaturePoints|1|0|int|nint ui;nint id;nint points;nint strokeEnds;ref int strokeCount||h4c2f8ff2aa2236c71ac5c2e55e5c4fdf8cd9f1ba3b97c9da2fe3262b3c0283b1", "signature": "static int SignaturePoints(nint ui, nint id, nint points, nint strokeEnds, ref int strokeCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "strokeEnds", "type": "nint" }, { "name": "strokeCount", "type": "ref int" }], "summary": "cui_signature_points" }, { "name": "SourceList", "kind": "method", "id": "method|SourceList|1|0|int|nint ui;nint id;nint sources;int count||h173d8ddb8e06588e29b9b6561cae327c824de30f3eeac0263ad449aae20a4ff5", "signature": "static int SourceList(nint ui, nint id, nint sources, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "sources", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "method", "id": "method|SpeedDial|1|0|int|nint ui;nint id;nint actions;int count;in NativeSpeedDialOpts opts||h589b0efb656624188f68c92733ef84b7e64202167ff454647d6b39f7a6f5146f", "signature": "static int SpeedDial(nint ui, nint id, nint actions, int count, in NativeSpeedDialOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "actions", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSpeedDialOpts" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "method", "id": "method|SplitBar|1|0|int|nint ui;nint id;nint items;int count;in NativeSplitBarOpts opts||h97364f98499ce83e79a8207d604d42304a76619dccbb7e144242711cd7feefe0", "signature": "static int SplitBar(nint ui, nint id, nint items, int count, in NativeSplitBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitBarOpts" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "method", "id": "method|SplitButton|1|0|int|nint ui;nint label;nint items;int count;in NativeSplitButtonOpts opts||h331bb07f0620c9a28f4f5de29ae68a66b96a56a79d295f7f529aecf5476464a4", "signature": "static int SplitButton(nint ui, nint label, nint items, int count, in NativeSplitButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitButtonOpts" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItemEnd", "kind": "method", "id": "method|SwipeItemEnd|1|0|int|nint ui||h5bd4f1ea033d2888651ca8ea05a6e9ca8f4ff11e33d9ecce300b4141f39e6311", "signature": "static int SwipeItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_swipe_item_end" }, { "name": "Textarea", "kind": "method", "id": "method|Textarea|1|0|int|nint ui;nint id;nint buf;ulong cap;in NativeInputOpts opts||h5e8bc4d6c0eb6f60350f3a952b5b7ac1c677f20ac117fbec5982a24df3e7eaa0", "signature": "static int Textarea(nint ui, nint id, nint buf, ulong cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_textarea_ex" }, { "name": "Toast", "kind": "method", "id": "method|Toast|1|0|int|nint ui;nint title;in NativeToastOpts opts||h13689b750de406a3341573c925e1a79dc5c11ea4aeb2cf3aad8fe0526dd629f7", "signature": "static int Toast(nint ui, nint title, in NativeToastOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeToastOpts" }], "summary": "cui_toast_ex" }, { "name": "Toc", "kind": "method", "id": "method|Toc|1|0|int|nint ui;nint scrollId;nint items;int count||h1230ef692ba1345b1fbff1069d5f78b9a0a304715bed3abbaee1e82ceb24a4cb", "signature": "static int Toc(nint ui, nint scrollId, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_toc" }, { "name": "Tour", "kind": "method", "id": "method|Tour|1|0|int|nint ui;nint id;nint steps;int count;ref int step;in NativeTourOpts opts||h28473eff703cdbd0694b161e355986bc70e34dc0659fc87a6119eb709b790561", "signature": "static int Tour(nint ui, nint id, nint steps, int count, ref int step, in NativeTourOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "step", "type": "ref int" }, { "name": "opts", "type": "in NativeTourOpts" }], "summary": "cui_tour_ex" }, { "name": "TreeSort", "kind": "method", "id": "method|TreeSort|1|0|int|nint nodes;int nodeCount;int root;nint cmp;nint user||h79bd46996209a0fd369858d15348bb23447681cc8b613944658f76ba8529d25c", "signature": "static int TreeSort(nint nodes, int nodeCount, int root, nint cmp, nint user)", "parameters": [{ "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "root", "type": "int" }, { "name": "cmp", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_tree_sort" }, { "name": "TreeTableDepth", "kind": "method", "id": "method|TreeTableDepth|1|0|int|nint ui||hc408f5ee6df386b4c209cc868243614a0ed9d7c32fb85223d03be490a22102dc", "signature": "static int TreeTableDepth(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "method", "id": "method|TreeTableRow|1|0|int|nint ui||h9f2f1f1e2af816caaefbd73d6eb5c028cf4ca05ce516a6861b821ab370909f09", "signature": "static int TreeTableRow(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_row" }, { "name": "Treemap", "kind": "method", "id": "method|Treemap|1|0|int|nint ui;nint id;nint items;int count;in NativeTreemapOpts opts||hc1888700abb5f35fb2ed06350215c4685126a96420dc7007fe9df21a5d90613c", "signature": "static int Treemap(nint ui, nint id, nint items, int count, in NativeTreemapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTreemapOpts" }], "summary": "cui_treemap_ex" }, { "name": "UrlParams", "kind": "method", "id": "method|UrlParams|1|0|int|nint url;nint pairs;int cap||h4a23f39a17798b564160832286c89313233b789ff2c9d29b58ff79e7c2856e40", "signature": "static int UrlParams(nint url, nint pairs, int cap)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "cap", "type": "int" }], "summary": "cui_url_params" }, { "name": "Waffle", "kind": "method", "id": "method|Waffle|1|0|int|nint ui;nint id;nint items;int count;in NativeWaffleOpts opts||h91d5a6b00273ece9452eeaeb494d083c353c673614d055269b1169331a6b4ae4", "signature": "static int Waffle(nint ui, nint id, nint items, int count, in NativeWaffleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaffleOpts" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "method", "id": "method|WeekCalendar|1|0|int|nint ui;nint id;NativeDate weekStart;nint events;int count;in NativeWeekOpts opts||hbb095a1e64e8bbd711e67c7cfcdb9a58e9f785211803178c11cd6f1bf8b7b015", "signature": "static int WeekCalendar(nint ui, nint id, NativeDate weekStart, nint events, int count, in NativeWeekOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "weekStart", "type": "NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWeekOpts" }], "summary": "cui_week_calendar_ex" }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|nint|Accent accent||h706d6dd77c55c7ddda285af111782b2f11f32d8769bbf2cb681be21d5ac8ada9", "signature": "static nint AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "cui_accent_name" }, { "name": "AppBackend", "kind": "method", "id": "method|AppBackend|1|0|nint|nint app||h52b17123ad3c9d4bd9d419ef74b1e518ec62cddbbec3c96e735713a188ef3647", "signature": "static nint AppBackend(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_backend" }, { "name": "AppCreate", "kind": "method", "id": "method|AppCreate|1|0|nint|in NativeAppDesc desc||h35637a56c67acf9c38029480b98d63c25370c8a38b76ad57061048a14e7b3835", "signature": "static nint AppCreate(in NativeAppDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }], "summary": "cui_app_create" }, { "name": "AppNativeWindow", "kind": "method", "id": "method|AppNativeWindow|1|0|nint|nint app||h64a22aaf8ee82f2330b25966dcae3689117de90e79ce550123e6d8e3ac44b8a3", "signature": "static nint AppNativeWindow(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_native_window" }, { "name": "AppUi", "kind": "method", "id": "method|AppUi|1|0|nint|nint app||h181845c0c76d32f823bb1ae6e8b1ac2ffa8da1e9507fababe6aacd5b36ca8787", "signature": "static nint AppUi(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_ui" }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|nint|in NativeCtxDesc desc||h4eb43e2edd735d5e2a219bc13dd5e7e88e8991d095f239299ba4c8d1e1becdb7", "signature": "static nint Create(in NativeCtxDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeCtxDesc" }], "summary": "cui_create" }, { "name": "CronDescribe", "kind": "method", "id": "method|CronDescribe|1|0|nint|nint ui;nint cron||h786e314b78b7a1d02be17656e35b267435a967dc15aee3127a55a4c392f0761b", "signature": "static nint CronDescribe(nint ui, nint cron)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cron", "type": "nint" }], "summary": "cui_cron_describe" }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|1|0|nint|nint ui;int index||h47fbe595a1de4b0d7c2064f6bac755f6564e54de2ce919af26ca16d376f3a004", "signature": "static nint DroppedFile(nint ui, int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "index", "type": "int" }], "summary": "cui_dropped_file" }, { "name": "EmojiPicker", "kind": "method", "id": "method|EmojiPicker|1|0|nint|nint ui;nint id;in NativeEmojiPickerOpts opts||hd4a4fecb1d681bd9183b353fd4fcdfe846f9ec3cc23071692271717d065d270e", "signature": "static nint EmojiPicker(nint ui, nint id, in NativeEmojiPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeEmojiPickerOpts" }], "summary": "cui_emoji_picker_ex" }, { "name": "GetDrawData", "kind": "method", "id": "method|GetDrawData|1|0|nint|nint ui||h556e604418b97276b8abf660206d9ef57103fe5e6ce1b2e1b6830472e86d11d1", "signature": "static nint GetDrawData(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_draw_data" }, { "name": "GetStrings", "kind": "method", "id": "method|GetStrings|1|0|nint|nint ui||h76f1e0d35595d1e771ffc072c6754f0a77374e2794e542b92996eba3e6da5ab6", "signature": "static nint GetStrings(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_strings" }, { "name": "GlCreate", "kind": "method", "id": "method|GlCreate|1|0|nint|nint loader||haf2665bd70b61421a86f653e37f52a7a893a83f60b653d37f28c47443757d28c", "signature": "static nint GlCreate(nint loader)", "parameters": [{ "name": "loader", "type": "nint" }], "summary": "cui_gl_create" }, { "name": "HttpMethodName", "kind": "method", "id": "method|HttpMethodName|1|0|nint|int method||hb7e8187e99b53389dc6e86e151d986b3cf309f38635df0577a3fe962daa521ae", "signature": "static nint HttpMethodName(int method)", "parameters": [{ "name": "method", "type": "int" }], "summary": "cui_http_method_name" }, { "name": "HttpReason", "kind": "method", "id": "method|HttpReason|1|0|nint|int status||h695531bbc242279e6965807c5ef206851620bc61925a48efc1c70490e259e991", "signature": "static nint HttpReason(int status)", "parameters": [{ "name": "status", "type": "int" }], "summary": "cui_http_reason" }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|nint|Key key||h33e5cc4941073359fa23837fde165bfa9ecb77851d42ec00ee3f76716ba7d095", "signature": "static nint KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "cui_key_name" }, { "name": "LogGet", "kind": "method", "id": "method|LogGet|1|0|nint|in NativeLogBuffer buf;int i;nint text||h5eb523fd02830629ff354a65a7f0c9484a2db18400dd03d40b164c8544a52139", "signature": "static nint LogGet(in NativeLogBuffer buf, int i, nint text)", "parameters": [{ "name": "buf", "type": "in NativeLogBuffer" }, { "name": "i", "type": "int" }, { "name": "text", "type": "nint" }], "summary": "cui_log_get" }, { "name": "QueryOpName", "kind": "method", "id": "method|QueryOpName|1|0|nint|QueryType type;int op||hed4479b8d55e4aa5481e595c8b70182622151b68aad3431d8bad265aafd06359", "signature": "static nint QueryOpName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "cui_query_op_name" }, { "name": "ShortcutLabel", "kind": "method", "id": "method|ShortcutLabel|1|0|nint|nint ui;NativeKeyCombo combo||hfd8f3dac138b4eccd820249ccad5a1166cf9a64f912805326c24f1606089921a", "signature": "static nint ShortcutLabel(nint ui, NativeKeyCombo combo)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "combo", "type": "NativeKeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "State", "kind": "method", "id": "method|State|1|0|nint|nint ui;uint id;ulong size||h733284cebac51d740bebc087d764afa0465ab8010b6a0ad7357922e8687e9d9e", "signature": "static nint State(nint ui, uint id, ulong size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "size", "type": "ulong" }], "summary": "cui_state" }, { "name": "SwCreate", "kind": "method", "id": "method|SwCreate|1|0|nint|||h85597fbde117bcfd906be42a5c6a3ede7c97fcede8c3e83adaaf4bcd0d2a149f", "signature": "static nint SwCreate()", "summary": "cui_sw_create" }, { "name": "ThemeGet", "kind": "method", "id": "method|ThemeGet|1|0|nint|nint ui||h38d0e1dce01bdd529849c410dd4462bf3383282d767baa343a527aa15ef23465", "signature": "static nint ThemeGet(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_get" }, { "name": "BoxBegin", "kind": "method", "id": "method|BoxBegin|1|0|uint|nint ui;in NativeBox opts||h78b4f546a22c8dcff5d224c08405fd0b5e2821851dcdb4e55096c0e8693f0956", "signature": "static uint BoxBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_box_begin" }, { "name": "ColumnBegin", "kind": "method", "id": "method|ColumnBegin|1|0|uint|nint ui;in NativeBox opts||h45c09e63ed196b77333af8e46712ff2505cc3f8bcc07a627029a9cd094146d62", "signature": "static uint ColumnBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_column_begin" }, { "name": "LastId", "kind": "method", "id": "method|LastId|1|0|uint|nint ui||h83f5914b8fbddf1b6874121e162f8f3564ee535fdfd0aa48b3aedc3f658526e2", "signature": "static uint LastId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_id" }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|1|0|uint|nint ui;nint str||h810e16e55563121eca53f068456f007d3a658359e80b4d6baf960fb19eda3a49", "signature": "static uint MakeId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_make_id" }, { "name": "RowBegin", "kind": "method", "id": "method|RowBegin|1|0|uint|nint ui;in NativeBox opts||h51dd108e72913a38e43c2096668b66dca76f36804a325a70e49280eba7b71acd", "signature": "static uint RowBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_row_begin" }, { "name": "DockSave", "kind": "method", "id": "method|DockSave|1|0|ulong|nint ui;nint id;nint buf;ulong cap||hc7b31eaf2b2669b65e8c79265700578adeabf8649e00133d5fe5c1044177283b", "signature": "static ulong DockSave(nint ui, nint id, nint buf, ulong cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_dock_save" }, { "name": "FrameCount", "kind": "method", "id": "method|FrameCount|1|0|ulong|nint ui||hb2e86c14dd9b07f2eea60b7c8d55b65e02ffff62e411ee7cb0672b10e126b5b9", "signature": "static ulong FrameCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_frame_count" }, { "name": "ImageCreate", "kind": "method", "id": "method|ImageCreate|1|0|ulong|nint ui;int w;int h;nint rgba||h93ddefe58f45619e4367e05ebf526533f2395aebc589e8f9a7e9b5c17cb51b71", "signature": "static ulong ImageCreate(nint ui, int w, int h, nint rgba)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "w", "type": "int" }, { "name": "h", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_image_create" }, { "name": "ImageLoad", "kind": "method", "id": "method|ImageLoad|1|0|ulong|nint ui;nint path;ref int w;ref int h||h664c095f4833f0affe5061b62defbec75a746409a47fff7904c1b584487343fa", "signature": "static ulong ImageLoad(nint ui, nint path, ref int w, ref int h)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_image_load" }, { "name": "QueryText", "kind": "method", "id": "method|QueryText|1|0|ulong|nint fields;int fieldCount;nint nodes;int count;nint out;ulong cap||hc826f11de3391c47b7453dd6aabc935b95a7c47a3f4876ac9cf1c9b1ec7430d8", "signature": "static ulong QueryText(nint fields, int fieldCount, nint nodes, int count, nint @out, ulong cap)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "ulong" }], "summary": "cui_query_text" }, { "name": "AccordionEnd", "kind": "method", "id": "method|AccordionEnd|1|0|void|nint ui||h3d97ebd000bc2ec6e1a7150b220a9becc237dc2bba7aded857d0ea19c78017a0", "signature": "static void AccordionEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_accordion_end" }, { "name": "AgentStatus", "kind": "method", "id": "method|AgentStatus|1|0|void|nint ui;nint text;in NativeAgentStatusOpts opts||h3677239a52459a84a94838abb70788ec3897854d3ce45365570b8f83594a74ae", "signature": "static void AgentStatus(nint ui, nint text, in NativeAgentStatusOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeAgentStatusOpts" }], "summary": "cui_agent_status_ex" }, { "name": "AppDestroy", "kind": "method", "id": "method|AppDestroy|1|0|void|nint app||hc989924b2fd6d017f98d26fff662487b516cbab9500766f46d09255919df7950", "signature": "static void AppDestroy(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_destroy" }, { "name": "AppQuit", "kind": "method", "id": "method|AppQuit|1|0|void|nint app||hd6cde514c822ba2738ba9206f51fb83f9f92c4b6dc7b57f3205c1b2ec2155ce0", "signature": "static void AppQuit(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_quit" }, { "name": "AppSetSize", "kind": "method", "id": "method|AppSetSize|1|0|void|nint app;int width;int height||hd48949a2e472726eb44e6fc0879c3ea5484809ef2886b68422478fd7bec09d5b", "signature": "static void AppSetSize(nint app, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_set_size" }, { "name": "AppSetTitle", "kind": "method", "id": "method|AppSetTitle|1|0|void|nint app;nint title||ha3182099a994045166b2e57cb91f7e7db7a36a218a967dd2deb49aead615196e", "signature": "static void AppSetTitle(nint app, nint title)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_app_set_title" }, { "name": "Avatar", "kind": "method", "id": "method|Avatar|1|0|void|nint ui;nint name;in NativeAvatarOpts opts||ha7c7fbd501ba6d9a9d0c85f18993dbc5f695aefb665ecd71a483b21a8c3377ee", "signature": "static void Avatar(nint ui, nint name, in NativeAvatarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeAvatarOpts" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "method", "id": "method|AvatarGroup|1|0|void|nint ui;nint names;int count;int maxVisible;float size||hd3b5566e6c93bb5d7fae387200441ac86d6327854ecf6e3c4a06b607f77bcffe", "signature": "static void AvatarGroup(nint ui, nint names, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "names", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "method", "id": "method|Badge|1|0|void|nint ui;nint text;in NativeBadgeOpts opts||h4c699e61ab328131bdd5a979f9042f4fafff7936f9a9a83e0f2d684598518848", "signature": "static void Badge(nint ui, nint text, in NativeBadgeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeBadgeOpts" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||haf0da3ee52487e3934a5089881f58e28122f995fc45f0b8639ffb1e8b41e372c", "signature": "static void BarChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_bar_chart_ex" }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|1|0|void|nint ui;float dt||h0577f006e4965cf88c6cd51c68044ddf72298474e56596fcd27493fea2d564f7", "signature": "static void BeginFrame(nint ui, float dt)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dt", "type": "float" }], "summary": "cui_begin_frame" }, { "name": "BoxEnd", "kind": "method", "id": "method|BoxEnd|1|0|void|nint ui||h4d9efc3d8f8ab981898dbe51c6008187153af8998858cae8e0858f28c2551207", "signature": "static void BoxEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_box_end" }, { "name": "ButtonGroupBegin", "kind": "method", "id": "method|ButtonGroupBegin|1|0|void|nint ui||h0be043c8228e09eadff1fdf48fdf8a66080fd96c5ef0e9b37c0cc15269b57f42", "signature": "static void ButtonGroupBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_begin" }, { "name": "ButtonGroupEnd", "kind": "method", "id": "method|ButtonGroupEnd|1|0|void|nint ui||h02a77719946880966ef2607e9618fff0d27e7c0065a03aab8a008dd70e998a12", "signature": "static void ButtonGroupEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_end" }, { "name": "CardEnd", "kind": "method", "id": "method|CardEnd|1|0|void|nint ui||hb2b95a09c234214774fc081e54ee7667e81fa37a371cd5d16ce1480dfdb60c4d", "signature": "static void CardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_end" }, { "name": "CardStackBegin", "kind": "method", "id": "method|CardStackBegin|1|0|void|nint ui;nint id;int count;in NativeCardStackOpts opts||h3d0bcb79a71984d808a89084a4967995247c9e125c4ca94c2b207e6b96afc939", "signature": "static void CardStackBegin(nint ui, nint id, int count, in NativeCardStackOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCardStackOpts" }], "summary": "cui_card_stack_begin" }, { "name": "CardStackItemBegin", "kind": "method", "id": "method|CardStackItemBegin|1|0|void|nint ui;int depth||h8d8dd4e573301cd6d4e5489717cedafd511c28b35aa8d35537bd8de8eea7a3e7", "signature": "static void CardStackItemBegin(nint ui, int depth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CardStackItemEnd", "kind": "method", "id": "method|CardStackItemEnd|1|0|void|nint ui||h1da0d16400e5185d4662ae573e720650ce7b2bbaf941ee9a7b61b6e2a81c2d30", "signature": "static void CardStackItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_item_end" }, { "name": "CarouselEnd", "kind": "method", "id": "method|CarouselEnd|1|0|void|nint ui||h88ea0dcb5f23fd135d74954d156bc1ff125fdb2bd9df4ec846916a88306bff74", "signature": "static void CarouselEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_end" }, { "name": "CarouselSlideBegin", "kind": "method", "id": "method|CarouselSlideBegin|1|0|void|nint ui||h3599a68cab9230fb08a3258faaddefe1ad6161a4751519cf1c5a7b1f3d05b88c", "signature": "static void CarouselSlideBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_begin" }, { "name": "CarouselSlideEnd", "kind": "method", "id": "method|CarouselSlideEnd|1|0|void|nint ui||h9d93eb90d33062dc61cddff987460dea38282ff61648715c18c958d279799780", "signature": "static void CarouselSlideEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_end" }, { "name": "ChatDivider", "kind": "method", "id": "method|ChatDivider|1|0|void|nint ui;nint label||hfd5fbcb1a8c9848c9cae6bcfb8ace33dea4f91925d47c2ec2a7a551ecaddc080", "signature": "static void ChatDivider(nint ui, nint label)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "method", "id": "method|ChatMessage|1|0|void|nint ui;nint text;in NativeChatOpts opts||h9e6d0b3029b5c2a5c4d1d658db09d4bc4ff66df880e976004f40e1ef92503075", "signature": "static void ChatMessage(nint ui, nint text, in NativeChatOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeChatOpts" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "method", "id": "method|Code|1|0|void|nint ui;nint text||h99721e62b2be9508d09c56055eece668035a2c7fc409d3f008528fbea17ed941", "signature": "static void Code(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "method", "id": "method|CodeBlock|1|0|void|nint ui;nint id;nint code;in NativeCodeOpts opts||hc751583c23a944f06a82072454dab93ff848eaf6a783795ed53ef837152ce5bf", "signature": "static void CodeBlock(nint ui, nint id, nint code, in NativeCodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "opts", "type": "in NativeCodeOpts" }], "summary": "cui_code_block_ex" }, { "name": "CodeEditorFind", "kind": "method", "id": "method|CodeEditorFind|1|0|void|nint ui;nint id;nint query||h86eb240d8430ac800b8696eaf2e4dde832bb2d4df1029cefecb3cc66b188f092", "signature": "static void CodeEditorFind(nint ui, nint id, nint query)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "query", "type": "nint" }], "summary": "cui_code_editor_find" }, { "name": "CodeEditorGoto", "kind": "method", "id": "method|CodeEditorGoto|1|0|void|nint ui;nint id;int line;int column||h9f1be9ecc4d2d37691a36fcc31fd91af3053120e20a573470af630765075c911", "signature": "static void CodeEditorGoto(nint ui, nint id, int line, int column)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "cui_code_editor_goto" }, { "name": "CodeEditorSelect", "kind": "method", "id": "method|CodeEditorSelect|1|0|void|nint ui;nint id;int anchor;int cursor||h3f435189695be2273ac362b4b8bb4c94c643bb1d5f309e0e171b605288490a7e", "signature": "static void CodeEditorSelect(nint ui, nint id, int anchor, int cursor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "cui_code_editor_select" }, { "name": "ContextMenuEnd", "kind": "method", "id": "method|ContextMenuEnd|1|0|void|nint ui||h921a6627edea7d846f50a3e71d7b3e158ceadca1488f42e38e93435efd23a46f", "signature": "static void ContextMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_context_menu_end" }, { "name": "ContextMeter", "kind": "method", "id": "method|ContextMeter|1|0|void|nint ui;nint id;float used;float limit;in NativeContextOpts opts||h47503ec60b3931c234feb4cd2d90839bdc3a1bb69dd18f89b089869f5a1c895d", "signature": "static void ContextMeter(nint ui, nint id, float used, float limit, in NativeContextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "opts", "type": "in NativeContextOpts" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "method", "id": "method|Countdown|1|0|void|nint ui;nint id;double secondsLeft;in NativeCountdownOpts opts||hb12db0b3493545831fc11d40595fe30a6cf1b530f5533674661079b5ecc31292", "signature": "static void Countdown(nint ui, nint id, double secondsLeft, in NativeCountdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "secondsLeft", "type": "double" }, { "name": "opts", "type": "in NativeCountdownOpts" }], "summary": "cui_countdown_ex" }, { "name": "Counter", "kind": "method", "id": "method|Counter|1|0|void|nint ui;nint id;double value;in NativeCounterOpts opts||h0fe352fbd522ca0b3418a4868a6bc25bdd30bd5b7a45c3d575b696fa20480b07", "signature": "static void Counter(nint ui, nint id, double value, in NativeCounterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "double" }, { "name": "opts", "type": "in NativeCounterOpts" }], "summary": "cui_counter_ex" }, { "name": "DataGridCell", "kind": "method", "id": "method|DataGridCell|1|0|void|nint ui||h73b91589e91a8d1c4fc2073886ea6ff3cd347f193f612e4c8ae3082fce77bb43", "signature": "static void DataGridCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "method", "id": "method|DataGridCellText|1|0|void|nint ui;nint text||h370160bb44c12b1662d2a793b63e6c0a6aca8fae93f701d7e43389419aa2172a", "signature": "static void DataGridCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_data_grid_cell_text" }, { "name": "DataGridEnd", "kind": "method", "id": "method|DataGridEnd|1|0|void|nint ui||h5a5f8cdf9f134bef7b75a46527cce4859b6badb8313e4fe7ab28a5450fed97dc", "signature": "static void DataGridEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_end" }, { "name": "Destroy", "kind": "method", "id": "method|Destroy|1|0|void|nint ui||h05cb071f6685432b523c0036d1761c8893330558489e46e6985cc34dd129a3fe", "signature": "static void Destroy(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_destroy" }, { "name": "DialogEnd", "kind": "method", "id": "method|DialogEnd|1|0|void|nint ui||h9bd7a6a951ef94643a54e664aad2535ec3a7207333a2d8e783d8149451981865", "signature": "static void DialogEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_end" }, { "name": "DialogFooterBegin", "kind": "method", "id": "method|DialogFooterBegin|1|0|void|nint ui||hf839714f8840afc193f5a953838c7c6f9547c52a59b7f6be7bd0a708283b4307", "signature": "static void DialogFooterBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_begin" }, { "name": "DialogFooterEnd", "kind": "method", "id": "method|DialogFooterEnd|1|0|void|nint ui||h5d76c827818ed14d8e202fcabac61bc9196e05b890413440004aaddbec16e336", "signature": "static void DialogFooterEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_end" }, { "name": "DockBegin", "kind": "method", "id": "method|DockBegin|1|0|void|nint ui;nint id;in NativeDockOpts opts||h6f3edeceeaf66c008a7996f96822dbd6d090c09f8bf4cfc6d6b4e778e7d8b5f2", "signature": "static void DockBegin(nint ui, nint id, in NativeDockOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockOpts" }], "summary": "cui_dock_begin" }, { "name": "DockEnd", "kind": "method", "id": "method|DockEnd|1|0|void|nint ui||hb760c60156b670f25e6f5d8cbc9737800b9d21c04e9535b205b0ba253774446d", "signature": "static void DockEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_end" }, { "name": "DockPanelEnd", "kind": "method", "id": "method|DockPanelEnd|1|0|void|nint ui||h5de954501994a4036fa179afa8289522d9752e1163c4188891a0abae283ed03a", "signature": "static void DockPanelEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_panel_end" }, { "name": "DockSeparator", "kind": "method", "id": "method|DockSeparator|1|0|void|nint ui||h15a570c703a4ce8ae58a2b8b48ead6e62f25de766708db20c7715a8b4bbe3434", "signature": "static void DockSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_separator" }, { "name": "DockspaceBegin", "kind": "method", "id": "method|DockspaceBegin|1|0|void|nint ui;nint id;in NativeDockspaceOpts opts||h00aaa3e5f30c8089c428f17db11c00696eb0a3c959fa8a01013dcf8705152753", "signature": "static void DockspaceBegin(nint ui, nint id, in NativeDockspaceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockspaceOpts" }], "summary": "cui_dockspace_begin_ex" }, { "name": "DockspaceEnd", "kind": "method", "id": "method|DockspaceEnd|1|0|void|nint ui||hdc6d3cdf73135422a36fc8ea6bb35188568f5636e9cb4b4fdcf94c091abdfd75", "signature": "static void DockspaceEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dockspace_end" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|1|0|void|nint ui;nint id;nint values;nint labels;int count;in NativeChartOpts opts||hc0548e7a422b79e5d257e4b35eb6309134be0175ce42f28f063fbb6590f3223f", "signature": "static void DonutChart(nint ui, nint id, nint values, nint labels, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_donut_chart_ex" }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|1|0|void|nint ui;NativeVec2 center;float radius;float a0;float a1;float thickness;NativeColor color||h8295de68de771f7ea4b447a1b85536fc822114e72d10c5c5d5a8f77b855e8b65", "signature": "static void DrawArc(nint ui, NativeVec2 center, float radius, float a0, float a1, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "a0", "type": "float" }, { "name": "a1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_arc" }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|1|0|void|nint ui;NativeVec2 center;float radius;NativeColor color||hb2c7ac883387890ae23baf3494c5f980bbff8565f3aa92e4b1c68bfc815bc634", "signature": "static void DrawCircle(nint ui, NativeVec2 center, float radius, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_circle" }, { "name": "DrawEmoji", "kind": "method", "id": "method|DrawEmoji|1|0|void|nint ui;nint utf8;int len;NativeRect r||h22f8e14bbcea26fad35db047ca50800680362cc351944170bc0ee2cd483f4cd6", "signature": "static void DrawEmoji(nint ui, nint utf8, int len, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|1|0|void|nint ui;nint icon;NativeRect r;float size;NativeColor color||h5b0d1e4fd4dff20bc9477435bc42d68f4ad7d83a08f09a30a929c5edc919364b", "signature": "static void DrawIcon(nint ui, nint icon, NativeRect r, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_icon" }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|1|0|void|nint ui;ulong tex;NativeRect r;NativeRect uv;NativeCorners radius;NativeColor tint||h3490d22e3065d7b9e7a1f76caf8e4b4a9712702cdc85c15997db41d1bb7f0730", "signature": "static void DrawImage(nint ui, ulong tex, NativeRect r, NativeRect uv, NativeCorners radius, NativeColor tint)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "r", "type": "NativeRect" }, { "name": "uv", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "tint", "type": "NativeColor" }], "summary": "cui_draw_image" }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|1|0|void|nint ui;NativeVec2 a;NativeVec2 b;float thickness;NativeColor color||he3578bcb0522121dfd056009e1b35d5d30a75130a7a38c0f51ed6d8fac4fc3b0", "signature": "static void DrawLine(nint ui, NativeVec2 a, NativeVec2 b, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "a", "type": "NativeVec2" }, { "name": "b", "type": "NativeVec2" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_line" }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|1|0|void|nint ui;nint points;int count;NativeColor color||hee4fb990119035a52fcf521dd800de932f8242a1e8a16076d55dcf65f4100dc9", "signature": "static void DrawPolygon(nint ui, nint points, int count, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_polygon" }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|1|0|void|nint ui;nint points;int count;float thickness;NativeColor color;byte closed||h4ad84f0066e3ab9a3a06cf60ccf987cb6bc98a64f0f3fcb9460f78bd3a809c8a", "signature": "static void DrawPolyline(nint ui, nint points, int count, float thickness, NativeColor color, byte closed)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }, { "name": "closed", "type": "byte" }], "summary": "cui_draw_polyline" }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill||hfe26311cf9bae1a4548048b162121debfa9ed2c49fe5b6156697b75c61ef16ac", "signature": "static void DrawRect(nint ui, NativeRect r, NativeCorners radius, NativeColor fill)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }], "summary": "cui_draw_rect" }, { "name": "DrawRectBorder", "kind": "method", "id": "method|DrawRectBorder|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill;NativeColor border;float borderWidth||h0c3c3d48ab680a667e97dd2c382028f9c818564a905007232aaf41011f511106", "signature": "static void DrawRectBorder(nint ui, NativeRect r, NativeCorners radius, NativeColor fill, NativeColor border, float borderWidth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }, { "name": "border", "type": "NativeColor" }, { "name": "borderWidth", "type": "float" }], "summary": "cui_draw_rect_border" }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor top;NativeColor bottom||h20692c7cd3bd979d311205e190b3c434adb4e5c4e20999958918dc0db918ff41", "signature": "static void DrawRectGradient(nint ui, NativeRect r, NativeCorners radius, NativeColor top, NativeColor bottom)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "top", "type": "NativeColor" }, { "name": "bottom", "type": "NativeColor" }], "summary": "cui_draw_rect_gradient" }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|1|0|void|nint ui;NativeRect r;NativeCorners radius;float blur;float spread;NativeVec2 offset;NativeColor color||hce3e65faa7aa8dc55c83a032ad2f23ad8dc999105f20b0bbfeaa1f774e1a49b3", "signature": "static void DrawShadow(nint ui, NativeRect r, NativeCorners radius, float blur, float spread, NativeVec2 offset, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "blur", "type": "float" }, { "name": "spread", "type": "float" }, { "name": "offset", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_shadow" }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|1|0|void|nint ui;Font font;float size;NativeVec2 pos;NativeColor color;nint text;int len||hc2f27110ba2d6fbe45d096508ff3fad13a507ee2bf39df0e0d443bc523e0c664", "signature": "static void DrawText(nint ui, Font font, float size, NativeVec2 pos, NativeColor color, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "pos", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_draw_text" }, { "name": "Emoji", "kind": "method", "id": "method|Emoji|1|0|void|nint ui;nint utf8;float size||h03c0443d50e5a072c0253a97bce2fa8faee0949ec19ecd141417da32f8fd5329", "signature": "static void Emoji(nint ui, nint utf8, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|1|0|void|nint ui||h31b18c88ba32cd1c6cff6cb5b6d37c8737f4f80a8df45b310f28cac1548a28e5", "signature": "static void EndFrame(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_end_frame" }, { "name": "ExpandableCardEnd", "kind": "method", "id": "method|ExpandableCardEnd|1|0|void|nint ui||h021bc28e25114a32e55f17a5833e96d5310be1e1406fcd3b8fb9953100360644", "signature": "static void ExpandableCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_expandable_card_end" }, { "name": "FlameSort", "kind": "method", "id": "method|FlameSort|1|0|void|nint spans;int count||h0991e6f38190c13942ffa39a630d77506b361220708585e719a9c35eb9d97659", "signature": "static void FlameSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_flame_sort" }, { "name": "FontAddFallback", "kind": "method", "id": "method|FontAddFallback|1|0|void|nint ui;Font font;Font fallback||hdf010fb946a48d289df8be37b90cfa127248a6b0b637cbf46fdbabcadaefefdc", "signature": "static void FontAddFallback(nint ui, Font font, Font fallback)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "cui_font_add_fallback" }, { "name": "FontSetRole", "kind": "method", "id": "method|FontSetRole|1|0|void|nint ui;Font role;Font font||habee93e00846743b067b5bc61fefcc6e9708412e2fa47530423be4dc7f05f0e7", "signature": "static void FontSetRole(nint ui, Font role, Font font)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "cui_font_set_role" }, { "name": "Gap", "kind": "method", "id": "method|Gap|1|0|void|nint ui;float size||h72ded2697cd72ab69e9854d5b60bbdab7d81198e2d51aafd8b161d9dad5f76f2", "signature": "static void Gap(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "method", "id": "method|Gauge|1|0|void|nint ui;nint label;float value;float size||h7f72645a7be87c086ff175cefaa6de27d61de542a45562f0ee65926cc4159201", "signature": "static void Gauge(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_gauge" }, { "name": "GlDestroy", "kind": "method", "id": "method|GlDestroy|1|0|void|nint r||h0409b70021c2ece5ae11d86ffa0a1b54a38b4d8871d19f9fbc68a159a9368fec", "signature": "static void GlDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_destroy" }, { "name": "GlReadPixels", "kind": "method", "id": "method|GlReadPixels|1|0|void|nint r;int width;int height;nint rgba||haee94127f9e202f09a7395d3fc94e7655c4b9dbdd1e3442de02294565ea69d3b", "signature": "static void GlReadPixels(nint r, int width, int height, nint rgba)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_gl_read_pixels" }, { "name": "GlRender", "kind": "method", "id": "method|GlRender|1|0|void|nint r;in NativeDrawData dd;byte clear||h28c93a9bcb0a414099f8be1f4ae2d08dfe74881324f5e398a8f7ca2b6342d2e2", "signature": "static void GlRender(nint r, in NativeDrawData dd, byte clear)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "clear", "type": "byte" }], "summary": "cui_gl_render" }, { "name": "GradientText", "kind": "method", "id": "method|GradientText|1|0|void|nint ui;nint text;in NativeGradientTextOpts opts||h6c797e7f12adc043c2730857e1e257efee47cd48a6574ca561e9edd7348d6eb3", "signature": "static void GradientText(nint ui, nint text, in NativeGradientTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeGradientTextOpts" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "method", "id": "method|Heading|1|0|void|nint ui;nint text;int level||ha3ccb600076c2097c212a0b747c3a17ee1400a5050e89087bb278fa0d69c0a56", "signature": "static void Heading(nint ui, nint text, int level)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "level", "type": "int" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "method", "id": "method|HexViewGoto|1|0|void|nint ui;nint id;ulong offset||h667e85293cd620c54580c15f4a5da0cf0d0ea54af458f211a22ee6b927590713", "signature": "static void HexViewGoto(nint ui, nint id, ulong offset)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "offset", "type": "ulong" }], "summary": "cui_hex_view_goto" }, { "name": "HoverCardEnd", "kind": "method", "id": "method|HoverCardEnd|1|0|void|nint ui||h5cfa5bf8fd516aeba07a65fa1d7553759b7ecd2643d8054765a4684f067d85fe", "signature": "static void HoverCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_hover_card_end" }, { "name": "Icon", "kind": "method", "id": "method|Icon|1|0|void|nint ui;nint icon;float size;NativeColor color||hfe918e7ebd91e9d0f04d1321aa645b768e0750e48e2f70701bdb84394c7e4bdb", "signature": "static void Icon(nint ui, nint icon, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_icon" }, { "name": "Image", "kind": "method", "id": "method|Image|1|0|void|nint ui;ulong tex;in NativeImageOpts opts||h1a8243e6c4b0a2e148a5fd2e2b5621c123bc1e7be99ae427e3fa2992efef3020", "signature": "static void Image(nint ui, ulong tex, in NativeImageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }, { "name": "opts", "type": "in NativeImageOpts" }], "summary": "cui_image_ex" }, { "name": "ImageDestroy", "kind": "method", "id": "method|ImageDestroy|1|0|void|nint ui;ulong tex||hebd8daa0b3ae426e7024d0aa49ee04a9a233739236f55458c5feb80af1a86a9d", "signature": "static void ImageDestroy(nint ui, ulong tex)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "ulong" }], "summary": "cui_image_destroy" }, { "name": "InputFileDrop", "kind": "method", "id": "method|InputFileDrop|1|0|void|nint ui;nint paths;int count;float x;float y||h2dc0aedb8bd58c5dabe372e22f6a7c5338330b523568883aae3c63281400af28", "signature": "static void InputFileDrop(nint ui, nint paths, int count, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "paths", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_drop" }, { "name": "InputFileHover", "kind": "method", "id": "method|InputFileHover|1|0|void|nint ui;byte hovering;float x;float y||hfce5ebf2d37de57aeea32ce290ddb90f6a34478a69e1b80e64e15369c054cfe1", "signature": "static void InputFileHover(nint ui, byte hovering, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "hovering", "type": "byte" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_hover" }, { "name": "InputFocus", "kind": "method", "id": "method|InputFocus|1|0|void|nint ui;byte windowFocused||hb9c96e7b6b0b4495072fdbfc2b45487d04e64d46106d311f6b41f9ca0979dd5b", "signature": "static void InputFocus(nint ui, byte windowFocused)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "windowFocused", "type": "byte" }], "summary": "cui_input_focus" }, { "name": "InputKey", "kind": "method", "id": "method|InputKey|1|0|void|nint ui;Key key;byte down;int mods||he9e25baee090dd81f87a3359f812b0affe80d87f185a5e496c5f94d4d600b4a7", "signature": "static void InputKey(nint ui, Key key, byte down, int mods)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }, { "name": "down", "type": "byte" }, { "name": "mods", "type": "int" }], "summary": "cui_input_key" }, { "name": "InputMouseButton", "kind": "method", "id": "method|InputMouseButton|1|0|void|nint ui;MouseButton button;byte down||h6270e6c39ec308c89fdc117c2bc93e497b893943bf9c0f297eb3bc8bd9926c3c", "signature": "static void InputMouseButton(nint ui, MouseButton button, byte down)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "button", "type": "MouseButton" }, { "name": "down", "type": "byte" }], "summary": "cui_input_mouse_button" }, { "name": "InputMouseLeave", "kind": "method", "id": "method|InputMouseLeave|1|0|void|nint ui||h9036a64e5dd7d1da6320ba5086cefe6e3867e714461040256010cf82d367941e", "signature": "static void InputMouseLeave(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_input_mouse_leave" }, { "name": "InputMouseMove", "kind": "method", "id": "method|InputMouseMove|1|0|void|nint ui;float x;float y||hd0c123e0767faf579c286e823d9a962b112570997e9e663592cbd209faa1031a", "signature": "static void InputMouseMove(nint ui, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_mouse_move" }, { "name": "InputScroll", "kind": "method", "id": "method|InputScroll|1|0|void|nint ui;float dx;float dy||hc8cbc117e3db6a84144252e54692e3b66351e54d1c46990d7afde3e8b30195a4", "signature": "static void InputScroll(nint ui, float dx, float dy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dx", "type": "float" }, { "name": "dy", "type": "float" }], "summary": "cui_input_scroll" }, { "name": "InputText", "kind": "method", "id": "method|InputText|1|0|void|nint ui;nint utf8||hfb99b27e7589d689af11e1f3b33b999fd83f8b96dfc59bfec214a2d9ed87e63c", "signature": "static void InputText(nint ui, nint utf8)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }], "summary": "cui_input_text" }, { "name": "InspectorEnd", "kind": "method", "id": "method|InspectorEnd|1|0|void|nint ui||hbae2a784f117cc7cf8fde59d927783452fb610145ee483403247a944453c2ee4", "signature": "static void InspectorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_inspector_end" }, { "name": "KanbanBegin", "kind": "method", "id": "method|KanbanBegin|1|0|void|nint ui;nint id||h3a6b1c97ed7644e95a939ad84eb74872b36457939226042cb87047ea3415722c", "signature": "static void KanbanBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_kanban_begin" }, { "name": "KanbanCardEnd", "kind": "method", "id": "method|KanbanCardEnd|1|0|void|nint ui||h6e4eb5e54f70e5e1b090f9fb90691e52a75493fc367b8dca9b723cf7fe51af88", "signature": "static void KanbanCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_card_end" }, { "name": "KanbanColumnEnd", "kind": "method", "id": "method|KanbanColumnEnd|1|0|void|nint ui||h9b6ffeadf22b51cea43f39f69a6c0af698e8dd7afba1ba450a994457d7bb3af5", "signature": "static void KanbanColumnEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_column_end" }, { "name": "Kbd", "kind": "method", "id": "method|Kbd|1|0|void|nint ui;nint keys||h9a69f5968b341ca3bc4847f30a367580e3a295109d39c5a22d98f4a2e4413d28", "signature": "static void Kbd(nint ui, nint keys)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "keys", "type": "nint" }], "summary": "cui_kbd" }, { "name": "Label", "kind": "method", "id": "method|Label|1|0|void|nint ui;nint text||h662088f013009dfe935af56487bec74180d254e361741c4e018b2fa56a1f0353", "signature": "static void Label(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||hbafa428eb32bcb4432f697971202f9feb226e72be253d1846779b4c42195fc35", "signature": "static void LineChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_line_chart_ex" }, { "name": "Loader", "kind": "method", "id": "method|Loader|1|0|void|nint ui;in NativeLoaderOpts opts||he7826de7d57fcc29cdd3f4f18ad2b445818fbe8e1dda524d58d9f0192869e1ef", "signature": "static void Loader(nint ui, in NativeLoaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeLoaderOpts" }], "summary": "cui_loader_ex" }, { "name": "LogAppendText", "kind": "method", "id": "method|LogAppendText|1|0|void|ref NativeLogBuffer buf;LogLevel level;double time;nint text;int len||h4a7ed9d39233b97d0669e5a37da7ee40aa53dad0a7cf65470776649966b86e51", "signature": "static void LogAppendText(ref NativeLogBuffer buf, LogLevel level, double time, nint text, int len)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "time", "type": "double" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_log_append_text" }, { "name": "LogAppendv", "kind": "method", "id": "method|LogAppendv|1|0|void|ref NativeLogBuffer buf;LogLevel level;nint fmt;nint ap||hee49e56c9ba82b42b6b99183ff76f0f63f31b9ba7042c57f73ad71629d84df23", "signature": "static void LogAppendv(ref NativeLogBuffer buf, LogLevel level, nint fmt, nint ap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "fmt", "type": "nint" }, { "name": "ap", "type": "nint" }], "summary": "cui_log_appendv" }, { "name": "LogClear", "kind": "method", "id": "method|LogClear|1|0|void|ref NativeLogBuffer buf||h7bae18e46b5b4237b0f1cd653cef0790433b1718a8ce8005293d709c247b6295", "signature": "static void LogClear(ref NativeLogBuffer buf)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }], "summary": "cui_log_clear" }, { "name": "LogInit", "kind": "method", "id": "method|LogInit|1|0|void|ref NativeLogBuffer buf;nint lines;int lineCap;nint text;ulong textCap||ha8586cc666fb05a2a524b29b0d41553930d426c119835289cbd689465aa78f60", "signature": "static void LogInit(ref NativeLogBuffer buf, nint lines, int lineCap, nint text, ulong textCap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }], "summary": "cui_log_init" }, { "name": "LogView", "kind": "method", "id": "method|LogView|1|0|void|nint ui;nint id;ref NativeLogBuffer buf;in NativeLogViewOpts opts||h3bf31c940bcf0f123937456ea18917c5b12879732b8c742acf7864b43941bce8", "signature": "static void LogView(nint ui, nint id, ref NativeLogBuffer buf, in NativeLogViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "opts", "type": "in NativeLogViewOpts" }], "summary": "cui_log_view_ex" }, { "name": "MenuBarBegin", "kind": "method", "id": "method|MenuBarBegin|1|0|void|nint ui;nint id;in NativeMenuBarOpts opts||h2d170d38dd10fffeba6f35c2286b8e949c1277d362990277a723f1c7f53c2061", "signature": "static void MenuBarBegin(nint ui, nint id, in NativeMenuBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarOpts" }], "summary": "cui_menu_bar_begin" }, { "name": "MenuBarEnd", "kind": "method", "id": "method|MenuBarEnd|1|0|void|nint ui||hb13e4f4b0dcb3f8fd8d21d8b00ea5fa6017723b169df7398cf86511fddc6e8f3", "signature": "static void MenuBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_end" }, { "name": "MenuBarMenuEnd", "kind": "method", "id": "method|MenuBarMenuEnd|1|0|void|nint ui||hed83615b225f71ed8013d397272be3081c1221a7036bbee6e4346e0c6777179f", "signature": "static void MenuBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_menu_end" }, { "name": "MenuEnd", "kind": "method", "id": "method|MenuEnd|1|0|void|nint ui||hd514b968798469a91f7171fc3c11d2bc443560fedb439de13a6107be3c6a544b", "signature": "static void MenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_end" }, { "name": "MenuLabel", "kind": "method", "id": "method|MenuLabel|1|0|void|nint ui;nint text||ha4b8ad0e5b82fc1548f6ba84530f37adf4d9f0a532b3709d195d073699bcac3d", "signature": "static void MenuLabel(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "method", "id": "method|MenuSeparator|1|0|void|nint ui||h43baafe94729515380b87ebc65483aa6d85741aeb6bba325ece2d1eabae0797a", "signature": "static void MenuSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "method", "id": "method|Meter|1|0|void|nint ui;nint label;float used;float total;nint unit||h30ed539c27876837b8db7a1089daa25a6062adad4a0f9d03e8ada4e2ee7b7543", "signature": "static void Meter(nint ui, nint label, float used, float total, nint unit)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "nint" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "method", "id": "method|Metric|1|0|void|nint ui;nint label;nint value;in NativeMetricOpts opts||h523a868a2b31da0883e292d982d5cac253880c98471f114d39a6aa1967937f65", "signature": "static void Metric(nint ui, nint label, nint value, in NativeMetricOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeMetricOpts" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "method", "id": "method|Muted|1|0|void|nint ui;nint text||hdda682be0e03b2adcd33ac4733279d81dcae507f3677762d1bbd5faa3973441d", "signature": "static void Muted(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "method", "id": "method|NavSection|1|0|void|nint ui;nint title||h6cda75c653da98b8d8a4e1d3184c2f0372398fe655428979078fb1b9830a64f3", "signature": "static void NavSection(nint ui, nint title)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_nav_section" }, { "name": "NodeContentBegin", "kind": "method", "id": "method|NodeContentBegin|1|0|void|nint ui||h8aaeefd8936d2e56b0ac7cfd0e4fe1ec0163a3f32ead969c8a6b272cb8c33c33", "signature": "static void NodeContentBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_begin" }, { "name": "NodeContentEnd", "kind": "method", "id": "method|NodeContentEnd|1|0|void|nint ui||h8d1d8b82c2faed633dc8e3790241846c336d16db75745737aa16e5cdd4f03101", "signature": "static void NodeContentEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_end" }, { "name": "NodeEditorEnd", "kind": "method", "id": "method|NodeEditorEnd|1|0|void|nint ui||h8e2de39479bf3039a75ad1a43e67864e2fdedbcfa3d0ea17890714f79153cf0a", "signature": "static void NodeEditorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_editor_end" }, { "name": "NodeEnd", "kind": "method", "id": "method|NodeEnd|1|0|void|nint ui||h776ebaba5480021545ebdcc94862ed3b0f4ad3392a425a74c78a1a85ae8f894c", "signature": "static void NodeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_end" }, { "name": "NumberRoll", "kind": "method", "id": "method|NumberRoll|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||hab625d06c0b1cdefddb6d8384378241c49e2b7ee8ad244ab3a68b2c5cd72a66b", "signature": "static void NumberRoll(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_number_roll_ex" }, { "name": "PathBarMenuEnd", "kind": "method", "id": "method|PathBarMenuEnd|1|0|void|nint ui||h997f537d82bf299ed326f925257b8510b206db162119f5f76a82e4c4c64949ff", "signature": "static void PathBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_path_bar_menu_end" }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|1|0|void|nint ui||h63c0504d7458e435fcb1ffd50d073429edcc2e5de95c4b16ded5217563b6dc92", "signature": "static void PopClip(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_clip" }, { "name": "PopDisabled", "kind": "method", "id": "method|PopDisabled|1|0|void|nint ui||he2561f8c20dccea5c0d16cff7db5d33fa51f16e2405105c51b70cdf03d1cb051", "signature": "static void PopDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_disabled" }, { "name": "PopId", "kind": "method", "id": "method|PopId|1|0|void|nint ui||hb10c43cb5fb600005cd12d82cd44778b6b2d85fcd1aa993b6d5ac4ad52c80022", "signature": "static void PopId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_id" }, { "name": "PopoverClose", "kind": "method", "id": "method|PopoverClose|1|0|void|nint ui;nint id||h77cfcef0fa0acec5febc68b8745c36a30c41f550fcf802f10f1f29ce3cb99f0b", "signature": "static void PopoverClose(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_close" }, { "name": "PopoverEnd", "kind": "method", "id": "method|PopoverEnd|1|0|void|nint ui||h3a90dbcf8257c5a18ecbf028f1dd1f2b0738316b1e71ed2ed00b83ac007ae51b", "signature": "static void PopoverEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_popover_end" }, { "name": "PopoverOpen", "kind": "method", "id": "method|PopoverOpen|1|0|void|nint ui;nint id||he1d748eab3cdbe7c6819f4982df24d6dd06f0ba4256858420b9291cdc94efaeb", "signature": "static void PopoverOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "method", "id": "method|PopoverToggle|1|0|void|nint ui;nint id||hf969fb3316a6f58bf6652dd965ae15925db3bbf664294da71aef8af21d99664d", "signature": "static void PopoverToggle(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "method", "id": "method|Presence|1|0|void|nint ui;nint id;nint users;int count;int maxVisible;float size||ha18a6116c23c2a9b36bda9eaba4ac8b6d4cef8d2512e11df8496374e2915d918", "signature": "static void Presence(nint ui, nint id, nint users, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "users", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "method", "id": "method|Progress|1|0|void|nint ui;float value;in NativeProgressOpts opts||ha6c27a7e9e6567cb5e505a6c043a703129bff9e7f726b7b8ee84206931d4ae3c", "signature": "static void Progress(nint ui, float value, in NativeProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeProgressOpts" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "method", "id": "method|ProgressRing|1|0|void|nint ui;nint label;float value;float size||hf23fdb90419b8cc9503afed3ebdd63578f6707f7e317f73a33cccdef064b21fd", "signature": "static void ProgressRing(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_progress_ring" }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|1|0|void|nint ui;NativeRect r||h5e48edf0962d24abc38b2b811582434e972f2fc2bbe2e43bf552cef8b8bdda49", "signature": "static void PushClip(nint ui, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_push_clip" }, { "name": "PushDisabled", "kind": "method", "id": "method|PushDisabled|1|0|void|nint ui;byte disabled||h0491a2ed86913b2fc3fa8007bbf0284aaece1e82513ff70a1f38943a8495ee62", "signature": "static void PushDisabled(nint ui, byte disabled)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "disabled", "type": "byte" }], "summary": "cui_push_disabled" }, { "name": "PushId", "kind": "method", "id": "method|PushId|1|0|void|nint ui;nint str||h6fb92263648fbe47b124cd60a2bb1f0194b441b80b610b9f33550aa562437492", "signature": "static void PushId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_push_id" }, { "name": "PushIdInt", "kind": "method", "id": "method|PushIdInt|1|0|void|nint ui;int value||h50055247580a4f4fa0392b341c835a51a52a72b4f34bb1f4c613242daeea3ecc", "signature": "static void PushIdInt(nint ui, int value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "int" }], "summary": "cui_push_id_int" }, { "name": "RadialGauge", "kind": "method", "id": "method|RadialGauge|1|0|void|nint ui;nint id;float value;float min;float max;in NativeRadialGaugeOpts opts||h4f8518675e6c379418dc5d18483c1736619dcc5322b6ec788f182e70d2744138", "signature": "static void RadialGauge(nint ui, nint id, float value, float min, float max, in NativeRadialGaugeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRadialGaugeOpts" }], "summary": "cui_radial_gauge_ex" }, { "name": "ReasoningEnd", "kind": "method", "id": "method|ReasoningEnd|1|0|void|nint ui||h3d7a570a4d95899a623aba8b34225b94fe8e298223296a8b417ba68577277f1c", "signature": "static void ReasoningEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reasoning_end" }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|1|0|void|nint ui;nint id;ref int order;int count||h91b67144d6c858e6046d3e88798f968c4b7717073334cfb0e25b0e4e03429f65", "signature": "static void ReorderBegin(nint ui, nint id, ref int order, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "order", "type": "ref int" }, { "name": "count", "type": "int" }], "summary": "cui_reorder_begin" }, { "name": "ReorderItemBegin", "kind": "method", "id": "method|ReorderItemBegin|1|0|void|nint ui;int position||hc8aab216de052d8eec1b27621290e2c67cf005624582def3cde53d7c629abf2d", "signature": "static void ReorderItemBegin(nint ui, int position)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "position", "type": "int" }], "summary": "cui_reorder_item_begin" }, { "name": "ReorderItemEnd", "kind": "method", "id": "method|ReorderItemEnd|1|0|void|nint ui||he5f9866dc46db08efe5e2ec97c8f7cb9dcaf3dda4dbec7c6cecb97404aa0cac2", "signature": "static void ReorderItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_item_end" }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|1|0|void|nint ui||haa3c00370fae8d80bb9419af2e90690a039bfdc6b9696bf7ec766b11d67053b6", "signature": "static void RequestRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_request_redraw" }, { "name": "RequestWakeup", "kind": "method", "id": "method|RequestWakeup|1|0|void|nint ui;float seconds||h4c1697d95f098be55214b6596a6d2d431ababeb4b7aeee1a3a5c7b4c9ec1014d", "signature": "static void RequestWakeup(nint ui, float seconds)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "seconds", "type": "float" }], "summary": "cui_request_wakeup" }, { "name": "ResponseStatus", "kind": "method", "id": "method|ResponseStatus|1|0|void|nint ui;int status;double seconds;double bytes||h6bf64977b38462ced090956d263a7ca82b23aaf9c4eb8826267ac35f603593a4", "signature": "static void ResponseStatus(nint ui, int status, double seconds, double bytes)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollBegin", "kind": "method", "id": "method|ScrollBegin|1|0|void|nint ui;in NativeScrollOpts opts||hccf27da1d078b4595fdc9f11585d8d946c5ee619a7122ded6d4f0212402cf5c8", "signature": "static void ScrollBegin(nint ui, in NativeScrollOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeScrollOpts" }], "summary": "cui_scroll_begin" }, { "name": "ScrollEnd", "kind": "method", "id": "method|ScrollEnd|1|0|void|nint ui||h5c13b2e28e6ee670888611965b36901a2f68e9b77c2798b783d4cd1039b6b9fb", "signature": "static void ScrollEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_scroll_end" }, { "name": "ScrollTo", "kind": "method", "id": "method|ScrollTo|1|0|void|nint ui;nint scrollId;float y||h23b87c2c57323b5eec317ad983e363d4a22bcfbeb280f4cee0e098567f3c4686", "signature": "static void ScrollTo(nint ui, nint scrollId, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "method", "id": "method|Secondary|1|0|void|nint ui;nint text||h8c8af7950942ddc4910460d7cd39b63b771e005a78f3d6c721494d9c3c9e8a9b", "signature": "static void Secondary(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "method", "id": "method|Separator|1|0|void|nint ui||h46e03a6322e7ff314ff9145e05fc878a8ef074c48477fdfa72eef15647ab1ce6", "signature": "static void Separator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_separator" }, { "name": "SetAccent", "kind": "method", "id": "method|SetAccent|1|0|void|nint ui;Accent accent||haaabdbf69a955a9add0a9acc324c39f604d971cd839fc29f7592edd0e72bd52e", "signature": "static void SetAccent(nint ui, Accent accent)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "accent", "type": "Accent" }], "summary": "cui_set_accent" }, { "name": "SetPlatform", "kind": "method", "id": "method|SetPlatform|1|0|void|nint ui;in NativePlatformIface platform||h622526b30b257fe65cd0827a815d82bd5b01d7a35bbec3fba719fcffbf9877a9", "signature": "static void SetPlatform(nint ui, in NativePlatformIface platform)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "platform", "type": "in NativePlatformIface" }], "summary": "cui_set_platform" }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|1|0|void|nint ui;byte reduced||hf68a9d8f75523bd677993d42d4b723a079b2492a26f565814f77b0f795732b6a", "signature": "static void SetReducedMotion(nint ui, byte reduced)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "reduced", "type": "byte" }], "summary": "cui_set_reduced_motion" }, { "name": "SetRenderer", "kind": "method", "id": "method|SetRenderer|1|0|void|nint ui;in NativeRendererIface renderer||hdbd27894e6a941293fab67adf26129d544c8f69e78c535ee83fb40689647a17e", "signature": "static void SetRenderer(nint ui, in NativeRendererIface renderer)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "renderer", "type": "in NativeRendererIface" }], "summary": "cui_set_renderer" }, { "name": "SetStrings", "kind": "method", "id": "method|SetStrings|1|0|void|nint ui;nint strings||hf673ccc8351e0077ec04e8e52c88524e21f92c433996f4d11fb38d37f6ce3e4c", "signature": "static void SetStrings(nint ui, nint strings)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "strings", "type": "nint" }], "summary": "cui_set_strings" }, { "name": "SetTheme", "kind": "method", "id": "method|SetTheme|1|0|void|nint ui;Theme mode||he438c162911cf2b181388de75abb1e0fbfc9fccf62191c0c78a14324c8f8d67e", "signature": "static void SetTheme(nint ui, Theme mode)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "Theme" }], "summary": "cui_set_theme" }, { "name": "SetViewport", "kind": "method", "id": "method|SetViewport|1|0|void|nint ui;float width;float height;float scale||hf74647d478ddd211eaf64bf0ca79714dd3761805f2dc0aeaa820806cdc485ce1", "signature": "static void SetViewport(nint ui, float width, float height, float scale)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "float" }, { "name": "height", "type": "float" }, { "name": "scale", "type": "float" }], "summary": "cui_set_viewport" }, { "name": "SheetEnd", "kind": "method", "id": "method|SheetEnd|1|0|void|nint ui||h755e8a9b487011b773092e6c07731052b68899276185054b447af8330fa23cef", "signature": "static void SheetEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_sheet_end" }, { "name": "ShimmerText", "kind": "method", "id": "method|ShimmerText|1|0|void|nint ui;nint text;in NativeTextFxOpts opts||hc19c7328a7355de44b28fdbfba2b3d8a03763b03b03d31b020777541cf193b87", "signature": "static void ShimmerText(nint ui, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_shimmer_text_ex" }, { "name": "SignatureClear", "kind": "method", "id": "method|SignatureClear|1|0|void|nint ui;nint id||hc0eecd4bc3b717f1e8b91695f778ccd32566c7f13ed423d7e6b59f94052613c7", "signature": "static void SignatureClear(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "method", "id": "method|Skeleton|1|0|void|nint ui;NativeSize width;float height||hbc0c03c46cfd766c307600dc73e54a4ce856f1311af31af59206cbb964d0b537", "signature": "static void Skeleton(nint ui, NativeSize width, float height)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "method", "id": "method|Spacer|1|0|void|nint ui||haf848915bff67f68bd2719ee3c0bba3024a1eb67d973fda3cb8f6fd6d8bda46d", "signature": "static void Spacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "method", "id": "method|Sparkline|1|0|void|nint ui;nint values;int count;NativeSize width;float height;NativeColor color||h472c1899de78ca26befe4486df72311abfb910f99a70c749777e8bce3ead8e6c", "signature": "static void Sparkline(nint ui, nint values, int count, NativeSize width, float height, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "method", "id": "method|Spinner|1|0|void|nint ui;float size||h79e05ad32fd9183b8abef18a003c42c2efb983f5f3dc41cb0d986befa1e14607", "signature": "static void Spinner(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_spinner" }, { "name": "SplitBegin", "kind": "method", "id": "method|SplitBegin|1|0|void|nint ui;nint id;ref float ratio;in NativeSplitOpts opts||h8e1cfc21d02f926a599a7b9fd32a463c34f116012625ed954ebabe3eda0b218c", "signature": "static void SplitBegin(nint ui, nint id, ref float ratio, in NativeSplitOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "ratio", "type": "ref float" }, { "name": "opts", "type": "in NativeSplitOpts" }], "summary": "cui_split_begin" }, { "name": "SplitEnd", "kind": "method", "id": "method|SplitEnd|1|0|void|nint ui||h3f556aa6a80585d876fdcab26d6a691809a4c59857fb96c820d7ce63f02567f5", "signature": "static void SplitEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_end" }, { "name": "SplitNext", "kind": "method", "id": "method|SplitNext|1|0|void|nint ui||h31dc7568501ad9f8fd786663ada605e96397f17a3b5d5da6ab7f9b6cc0f76982", "signature": "static void SplitNext(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_next" }, { "name": "SpotlightBegin", "kind": "method", "id": "method|SpotlightBegin|1|0|void|nint ui;nint id;in NativeSpotlightOpts opts||h963693d8664d583e71befca392e8b3c9a5ba239feb7aaf2df1083b5a16a5557f", "signature": "static void SpotlightBegin(nint ui, nint id, in NativeSpotlightOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSpotlightOpts" }], "summary": "cui_spotlight_begin" }, { "name": "SpotlightEnd", "kind": "method", "id": "method|SpotlightEnd|1|0|void|nint ui||h0c73da51d3dde86dbb2ef775471416fa9b9baa4fe4d82d5379a1a0874cda7890", "signature": "static void SpotlightEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spotlight_end" }, { "name": "StateOnFree", "kind": "method", "id": "method|StateOnFree|1|0|void|nint ui;uint id;nint fn||h14b5dc9f39df6208158ac8c6ae25df41995cc8a66f0fd49778bd67518233fb53", "signature": "static void StateOnFree(nint ui, uint id, nint fn)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "fn", "type": "nint" }], "summary": "cui_state_on_free" }, { "name": "StatusBarBegin", "kind": "method", "id": "method|StatusBarBegin|1|0|void|nint ui;nint id;in NativeStatusBarOpts opts||h0ab9af3979891707f59e475e805ef3326b8e428b0787763856b3bb5f91e167d1", "signature": "static void StatusBarBegin(nint ui, nint id, in NativeStatusBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeStatusBarOpts" }], "summary": "cui_status_bar_begin" }, { "name": "StatusBarEnd", "kind": "method", "id": "method|StatusBarEnd|1|0|void|nint ui||hfe889f07a7b2493dd34050626f8b25502ec3780753f2da61e485cf5851b53a8f", "signature": "static void StatusBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_end" }, { "name": "StatusBarProgress", "kind": "method", "id": "method|StatusBarProgress|1|0|void|nint ui;float value;in NativeStatusProgressOpts opts||h2e2514329347cd72bc4da650e5035a15a358812e6c7d0653a7530568ee5e6bd7", "signature": "static void StatusBarProgress(nint ui, float value, in NativeStatusProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeStatusProgressOpts" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "method", "id": "method|StatusBarSpacer|1|0|void|nint ui||h6f6ec7af809873713139db42be67fec0525aab67fc40f3fb3a4e4d13b9364c23", "signature": "static void StatusBarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "method", "id": "method|StatusBarText|1|0|void|nint ui;nint text;in NativeStatusItemOpts opts||h932eb9ea317e3daa001764723c6e67f68d748dbf6010f7d85aa4976712031b71", "signature": "static void StatusBarText(nint ui, nint text, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_text_ex" }, { "name": "Stepper", "kind": "method", "id": "method|Stepper|1|0|void|nint ui;nint steps;int count;int current||h6dc16579869bceefc9c1731229696cb78560f6f3caab3b13b0b3de481ac33cc1", "signature": "static void Stepper(nint ui, nint steps, int count, int current)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "SwDestroy", "kind": "method", "id": "method|SwDestroy|1|0|void|nint r||h0be21b0a0affe749f9f0be7261a36a00aeaf8b0842dec23c6d43e92f8dfd56ad", "signature": "static void SwDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_destroy" }, { "name": "SwRender", "kind": "method", "id": "method|SwRender|1|0|void|nint r;in NativeDrawData dd;nint pixels;int width;int height;int stride;SwFormat format||h925ce92039facee940d37c72a24d58ed861e8d2428f045e01248136712bd27d3", "signature": "static void SwRender(nint r, in NativeDrawData dd, nint pixels, int width, int height, int stride, SwFormat format)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "pixels", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }, { "name": "format", "type": "SwFormat" }], "summary": "cui_sw_render" }, { "name": "SwSetIncremental", "kind": "method", "id": "method|SwSetIncremental|1|0|void|nint r;byte on||h35784ddf9e6e2ff25d8c10204553e0402b67e13e77d8272ab56f0c994fc7247b", "signature": "static void SwSetIncremental(nint r, byte on)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "on", "type": "byte" }], "summary": "cui_sw_set_incremental" }, { "name": "SwSetThreads", "kind": "method", "id": "method|SwSetThreads|1|0|void|nint r;int threads||h34a2c21d60bb367d5b1aacc5f2e0a24cc1fd4fc2f7af20d0078cb2693d57cb3d", "signature": "static void SwSetThreads(nint r, int threads)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "threads", "type": "int" }], "summary": "cui_sw_set_threads" }, { "name": "SwipeItemBegin", "kind": "method", "id": "method|SwipeItemBegin|1|0|void|nint ui;nint id;nint left;int leftCount;nint right;int rightCount||he356b37e0bb4b9d789e5c769a16e8687b4b7c08507d6f7ccb21de0c58296ee1e", "signature": "static void SwipeItemBegin(nint ui, nint id, nint left, int leftCount, nint right, int rightCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "left", "type": "nint" }, { "name": "leftCount", "type": "int" }, { "name": "right", "type": "nint" }, { "name": "rightCount", "type": "int" }], "summary": "cui_swipe_item_begin" }, { "name": "TableCell", "kind": "method", "id": "method|TableCell|1|0|void|nint ui||h58c1c69464959545f2c0c22eb0645330579440d8f636f3602edb6d4218b27d19", "signature": "static void TableCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_cell" }, { "name": "TableCellText", "kind": "method", "id": "method|TableCellText|1|0|void|nint ui;nint text||hda71654f59a916615205136e685705fde1ced9f7607676b2b05742f84907a3f9", "signature": "static void TableCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_table_cell_text" }, { "name": "TableEnd", "kind": "method", "id": "method|TableEnd|1|0|void|nint ui||hc984d1509de63bf52b50c7a34ca3189a0bb153d3ea71eca8518f7cdbdd00f65c", "signature": "static void TableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_end" }, { "name": "TerminalClear", "kind": "method", "id": "method|TerminalClear|1|0|void|ref NativeTerminalBuffer t||h2c35a3f1e8ac6abb885522cc4abf14b1aba391dfcffdb7e8162392ec1efbac69", "signature": "static void TerminalClear(ref NativeTerminalBuffer t)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }], "summary": "cui_terminal_clear" }, { "name": "TerminalInit", "kind": "method", "id": "method|TerminalInit|1|0|void|ref NativeTerminalBuffer t;nint text;ulong textCap;nint lines;int lineCap||hb2732e164d5c67e073913c65bdbc035ee1c5a1d101105c7e58fcc11f7f6730c9", "signature": "static void TerminalInit(ref NativeTerminalBuffer t, nint text, ulong textCap, nint lines, int lineCap)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "ulong" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }], "summary": "cui_terminal_init" }, { "name": "TerminalWrite", "kind": "method", "id": "method|TerminalWrite|1|0|void|ref NativeTerminalBuffer t;nint data;int len||h7db23fca94baa41b713b578a3f7f2eb4edde9296bb42f48ffbc41cacffcab173", "signature": "static void TerminalWrite(ref NativeTerminalBuffer t, nint data, int len)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "data", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_terminal_write" }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|void|nint ui;nint text;in NativeTextOpts opts||h272e9e5fd15e3e439624830da1a61bd8173755af5237d17c5de5b35b2b7fcc78", "signature": "static void Text(nint ui, nint text, in NativeTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextOpts" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "method", "id": "method|TextReveal|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||h810e5b8c5623cd79b19e255847e1b2350f771771bc43231ebd67d24fef43bf45", "signature": "static void TextReveal(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_text_reveal_ex" }, { "name": "Ticker", "kind": "method", "id": "method|Ticker|1|0|void|nint ui;nint id;nint items;int count;in NativeTickerOpts opts||hcf89f408f6d2cc69a1d015b699a290c0ae5b7441df2a83b42e3fb27d70c27db6", "signature": "static void Ticker(nint ui, nint id, nint items, int count, in NativeTickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTickerOpts" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "method", "id": "method|TimelineItem|1|0|void|nint ui;nint title;in NativeTimelineOpts opts||h9b4bdedc14e8242b067d1b691d32b876cb84a64b2324bf04fca99f755cd7d46e", "signature": "static void TimelineItem(nint ui, nint title, in NativeTimelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeTimelineOpts" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "method", "id": "method|ToastDismiss|1|0|void|nint ui;int handle||h75880d60348ac0f108d23509a49259435396571a873cbcbfabc7a7ce03565c56", "signature": "static void ToastDismiss(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "method", "id": "method|TocAnchor|1|0|void|nint ui;nint anchor||hbf2b12d07854201eb614389915564e72b12beaca82777abc523cfd00e4b0202d", "signature": "static void TocAnchor(nint ui, nint anchor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "anchor", "type": "nint" }], "summary": "cui_toc_anchor" }, { "name": "ToolCall", "kind": "method", "id": "method|ToolCall|1|0|void|nint ui;nint id;nint name;in NativeToolCallOpts opts||hec6f0eb79910da856e82af5251fb47ff3cdd8859d6b96873d1dfaa3e22d9187d", "signature": "static void ToolCall(nint ui, nint id, nint name, in NativeToolCallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeToolCallOpts" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarBegin", "kind": "method", "id": "method|ToolbarBegin|1|0|void|nint ui;nint id;in NativeToolbarOpts opts||ha8e07119a1461f0bb5edde4ce58cdc0140369f80e0033f3f208dffb00d98ee5d", "signature": "static void ToolbarBegin(nint ui, nint id, in NativeToolbarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeToolbarOpts" }], "summary": "cui_toolbar_begin" }, { "name": "ToolbarEnd", "kind": "method", "id": "method|ToolbarEnd|1|0|void|nint ui||hb80555fe0cf6dfda93d88a72607be9a5c706625fab680a97936dbf6533b176e3", "signature": "static void ToolbarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_end" }, { "name": "ToolbarSeparator", "kind": "method", "id": "method|ToolbarSeparator|1|0|void|nint ui||h2f525a4e5418c61ca18349feb1c7a95baee6b316f2e23e1d6aa18232e5ec4341", "signature": "static void ToolbarSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "method", "id": "method|ToolbarSpacer|1|0|void|nint ui||hd061dc8872d0ac7eb8238161e16cb000d93d422443f622ebb1121fae117ed97e", "signature": "static void ToolbarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "method", "id": "method|Tooltip|1|0|void|nint ui;nint text||h1f9de01bb16e1558786abe4c1b14699c29b647b8cd8553afed19fc2b4b3caa84", "signature": "static void Tooltip(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_tooltip" }, { "name": "TraceSort", "kind": "method", "id": "method|TraceSort|1|0|void|nint spans;int count||ha66d747d05ad548296f53fcbb98f77b31eae6b02c6b8b6ec977000c7b3fe3a5f", "signature": "static void TraceSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_trace_sort" }, { "name": "TreeEnd", "kind": "method", "id": "method|TreeEnd|1|0|void|nint ui||ha713edeffbaee9686dc29a28c602d73338ef0b3cf4fb5902d41efc308ec5b21a", "signature": "static void TreeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_end" }, { "name": "TreeTableBegin", "kind": "method", "id": "method|TreeTableBegin|1|0|void|nint ui;nint id;nint columns;int columnCount;nint nodes;int nodeCount;in NativeTreeTableOpts opts||hd0eb2658a484bda8296e5b59fad3baf23f8729e625357b5dbf526e06cfecbf42", "signature": "static void TreeTableBegin(nint ui, nint id, nint columns, int columnCount, nint nodes, int nodeCount, in NativeTreeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "opts", "type": "in NativeTreeTableOpts" }], "summary": "cui_tree_table_begin_ex" }, { "name": "TreeTableName", "kind": "method", "id": "method|TreeTableName|1|0|void|nint ui;nint label;nint icon||h0751fd004c88e946e3cf26f6e5601c4d76cd57fd60d2086a0ff269e9d881a24c", "signature": "static void TreeTableName(nint ui, nint label, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_table_name" }, { "name": "TypingIndicator", "kind": "method", "id": "method|TypingIndicator|1|0|void|nint ui;nint name||hd81aef062aabdc6d41e05b88c87b46aefd6e009c83910f8ed3f0426342c0c825", "signature": "static void TypingIndicator(nint ui, nint name)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }], "summary": "cui_typing_indicator" }, { "name": "UserMenuEnd", "kind": "method", "id": "method|UserMenuEnd|1|0|void|nint ui||h9f762ffe81925fac89d4361eb1562a613e9eaa270d61fd325ab25799fa0afe27", "signature": "static void UserMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_user_menu_end" }, { "name": "VirtualListBegin", "kind": "method", "id": "method|VirtualListBegin|1|0|void|nint ui;nint id;int count;float rowHeight;NativeSize height;ref int first;ref int last||ha61ead8705d1939e2b7fe69f251360a61fe18faef67fa9137031b1fe6ce05ff1", "signature": "static void VirtualListBegin(nint ui, nint id, int count, float rowHeight, NativeSize height, ref int first, ref int last)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "NativeSize" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }], "summary": "cui_virtual_list_begin" }, { "name": "VirtualListEnd", "kind": "method", "id": "method|VirtualListEnd|1|0|void|nint ui||h17bfe0f38637d279b00163d916474f0367149d134f26d7350a37198637c0da59", "signature": "static void VirtualListEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_virtual_list_end" }, { "name": "WordRotate", "kind": "method", "id": "method|WordRotate|1|0|void|nint ui;nint id;nint words;int count;float interval;in NativeTextFxOpts opts||he94d507dcc15d0bcfc24aaaa9f83e04c779d69d75f151da8f8f8749dac8b28c2", "signature": "static void WordRotate(nint ui, nint id, nint words, int count, float interval, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "words", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "interval", "type": "float" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_word_rotate_ex" }] }, + { "name": "CuiSharp.Interop.Native", "displayName": "Native", "kind": "static class", "summary": "Raw P/Invoke for cui.dll: one method per CUI_API function.", "members": [{ "name": "GetAccent", "kind": "method", "id": "method|GetAccent|1|0|Accent|nint ui||h4b5f008e77f36e753c29f584e84c7e8249ea899a16121c4a9ab6a5e3d2e462d6", "signature": "static Accent GetAccent(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_accent" }, { "name": "GetCursor", "kind": "method", "id": "method|GetCursor|1|0|Cursor|nint ui||h9592bd795030ec6f07a1b68093cf60e0ddb49ad084262abef2006bc6c6c5e263", "signature": "static Cursor GetCursor(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_cursor" }, { "name": "FontLoadFile", "kind": "method", "id": "method|FontLoadFile|1|0|Font|nint ui;nint path||h45e3467937e6440386ba379704bca3b0aca47850d974f4abb9c8c86279f26276", "signature": "static Font FontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_font_load_file" }, { "name": "FontLoadMemory", "kind": "method", "id": "method|FontLoadMemory|1|0|Font|nint ui;nint data;nuint size;byte copy||h0dbc267103f6d17b74a64b86ef08af5d19d591a58bfe2d1cb2c66bce90a33d17", "signature": "static Font FontLoadMemory(nint ui, nint data, nuint size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "nuint" }, { "name": "copy", "type": "byte" }], "summary": "cui_font_load_memory" }, { "name": "ApiExplorer", "kind": "method", "id": "method|ApiExplorer|1|0|NativeApiExplorerResult|nint ui;nint id;nint endpoints;int count;in NativeApiExplorerOpts opts||hf224b6dffe9e3dda0f0308f3af34d5a163659fc92533358cfa712df17d1a639e", "signature": "static NativeApiExplorerResult ApiExplorer(nint ui, nint id, nint endpoints, int count, in NativeApiExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "endpoints", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeApiExplorerOpts" }], "summary": "cui_api_explorer_ex" }, { "name": "Blame", "kind": "method", "id": "method|Blame|1|0|NativeBlameResult|nint ui;nint id;nint lines;nint lineCommit;int lineCount;nint commits;int commitCount;in NativeBlameOpts opts||h4038398c6e9c93c3d4c2bfc504f5192b4a691dd68bae5b401920ae508d57dffd", "signature": "static NativeBlameResult Blame(nint ui, nint id, nint lines, nint lineCommit, int lineCount, nint commits, int commitCount, in NativeBlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "lines", "type": "nint" }, { "name": "lineCommit", "type": "nint" }, { "name": "lineCount", "type": "int" }, { "name": "commits", "type": "nint" }, { "name": "commitCount", "type": "int" }, { "name": "opts", "type": "in NativeBlameOpts" }], "summary": "cui_blame_ex" }, { "name": "Canvas", "kind": "method", "id": "method|Canvas|1|0|NativeCanvasResult|nint ui;nint id;NativeSize width;NativeSize height;nint paint;nint user;nuint userSize||he97d81faab75b76f5c111bd6c8ac29454458429f209b9d1d3db7c880e9656350", "signature": "static NativeCanvasResult Canvas(nint ui, nint id, NativeSize width, NativeSize height, nint paint, nint user, nuint userSize)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "NativeSize" }, { "name": "paint", "type": "nint" }, { "name": "user", "type": "nint" }, { "name": "userSize", "type": "nuint" }], "summary": "cui_canvas" }, { "name": "CodeEditor", "kind": "method", "id": "method|CodeEditor|1|0|NativeCodeEditorResult|nint ui;nint id;nint buf;nuint cap;in NativeCodeEditorOpts opts||h25f359abfb59fb635c63f3409cffc0221ce1b73aecd18481b8bf55e7015fcead", "signature": "static NativeCodeEditorResult CodeEditor(nint ui, nint id, nint buf, nuint cap, in NativeCodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeCodeEditorOpts" }], "summary": "cui_code_editor_ex" }, { "name": "Alpha", "kind": "method", "id": "method|Alpha|1|0|NativeColor|NativeColor c;float alphaMultiplier||h6f6dc7f18231ffd4e72a98ba480ab083b4d26389e8ae083debcf59c9dd9da08f", "signature": "static NativeColor Alpha(NativeColor c, float alphaMultiplier)", "parameters": [{ "name": "c", "type": "NativeColor" }, { "name": "alphaMultiplier", "type": "float" }], "summary": "cui_alpha" }, { "name": "ColorOf", "kind": "method", "id": "method|ColorOf|1|0|NativeColor|nint ui;NativeColor c||h54ccc38136527a38949cb0d73367b6a6e3137b549bc57ee96e1a2a475d8f4089", "signature": "static NativeColor ColorOf(nint ui, NativeColor c)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "c", "type": "NativeColor" }], "summary": "cui_color_of" }, { "name": "GradientEval", "kind": "method", "id": "method|GradientEval|1|0|NativeColor|nint stops;int count;float t||ha841b21375b91451bf65ef779e13748e49ce1347627211578ad95f0700a1616d", "signature": "static NativeColor GradientEval(nint stops, int count, float t)", "parameters": [{ "name": "stops", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "t", "type": "float" }], "summary": "cui_gradient_eval" }, { "name": "Mix", "kind": "method", "id": "method|Mix|1|0|NativeColor|NativeColor a;NativeColor b;float t||hda3f5edb5311ba1769ae795a7dfd6a98f20c60db5bb606d95b5810cbc9d83d4a", "signature": "static NativeColor Mix(NativeColor a, NativeColor b, float t)", "parameters": [{ "name": "a", "type": "NativeColor" }, { "name": "b", "type": "NativeColor" }, { "name": "t", "type": "float" }], "summary": "cui_mix" }, { "name": "Oklch", "kind": "method", "id": "method|Oklch|1|0|NativeColor|float l;float c;float hDegrees;float alpha||h26e67a65df209683f5291a98b82c8a5cabd7337b202d5d5c21c2ddc07fcb2232", "signature": "static NativeColor Oklch(float l, float c, float hDegrees, float alpha)", "parameters": [{ "name": "l", "type": "float" }, { "name": "c", "type": "float" }, { "name": "hDegrees", "type": "float" }, { "name": "alpha", "type": "float" }], "summary": "cui_oklch" }, { "name": "TokenColor", "kind": "method", "id": "method|TokenColor|1|0|NativeColor|nint ui;Token token||h90e46c89d5e70f5f21daa0f9b683a793e619fecb1ab9c0a299de0471b3426f32", "signature": "static NativeColor TokenColor(nint ui, Token token)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "token", "type": "Token" }], "summary": "cui_token_color" }, { "name": "CommitGraph", "kind": "method", "id": "method|CommitGraph|1|0|NativeCommitGraphResult|nint ui;nint id;nint commits;int count;in NativeCommitGraphOpts opts||h45d73cd59f1de127d447c740e1830e6b5a5b060bba456bfafde41fa92f64c74e", "signature": "static NativeCommitGraphResult CommitGraph(nint ui, nint id, nint commits, int count, in NativeCommitGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "commits", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCommitGraphOpts" }], "summary": "cui_commit_graph_ex" }, { "name": "Coverage", "kind": "method", "id": "method|Coverage|1|0|NativeCoverageResult|nint ui;nint id;nint files;int count;in NativeCoverageOpts opts||h1b0a2f1fdc7808920e72995a8476b64bef4b6f5f5a6712da0ad04749a085826a", "signature": "static NativeCoverageResult Coverage(nint ui, nint id, nint files, int count, in NativeCoverageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "files", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCoverageOpts" }], "summary": "cui_coverage_ex" }, { "name": "CurveEditor", "kind": "method", "id": "method|CurveEditor|1|0|NativeCurveResult|nint ui;nint id;nint keys;ref int count;int capacity;in NativeCurveOpts opts||h96718fdb1bc3448845d2464d7bb341aaa324a86a9faea4496630c39fb7ca169a", "signature": "static NativeCurveResult CurveEditor(nint ui, nint id, nint keys, ref int count, int capacity, in NativeCurveOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "keys", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeCurveOpts" }], "summary": "cui_curve_editor_ex" }, { "name": "DateFromDays", "kind": "method", "id": "method|DateFromDays|1|0|NativeDate|int days||h1feda9236ea087efd2070df1a696cc0677817502ff785ff54c56c9bded66c802", "signature": "static NativeDate DateFromDays(int days)", "parameters": [{ "name": "days", "type": "int" }], "summary": "cui_date_from_days" }, { "name": "DateToday", "kind": "method", "id": "method|DateToday|1|0|NativeDate|||hb0af2f41da02d6baf40ca220344dbbc0745b0b07b0017d8945ba60b14f23d7bf", "signature": "static NativeDate DateToday()", "summary": "cui_date_today" }, { "name": "DiffView", "kind": "method", "id": "method|DiffView|1|0|NativeDiffResult|nint ui;nint id;nint oldText;nint newText;in NativeDiffOpts opts||h9938cb3dcf99694ce2c1936767de75bdf0ab18f91c7c4f698ac795cc563ccbf8", "signature": "static NativeDiffResult DiffView(nint ui, nint id, nint oldText, nint newText, in NativeDiffOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "oldText", "type": "nint" }, { "name": "newText", "type": "nint" }, { "name": "opts", "type": "in NativeDiffOpts" }], "summary": "cui_diff_view_ex" }, { "name": "DocTabs", "kind": "method", "id": "method|DocTabs|1|0|NativeDocTabsResult|nint ui;nint id;nint tabs;int count;ref int selected;in NativeDocTabsOpts opts||hecb3160d850e49f639702d27b881b59b7defdcb80863fe9009dccc178a9136a2", "signature": "static NativeDocTabsResult DocTabs(nint ui, nint id, nint tabs, int count, ref int selected, in NativeDocTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tabs", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeDocTabsOpts" }], "summary": "cui_doc_tabs_ex" }, { "name": "FeatureFlags", "kind": "method", "id": "method|FeatureFlags|1|0|NativeFeatureFlagsResult|nint ui;nint id;nint flags;int count;nint envs;int envCount;in NativeFeatureFlagsOpts opts||hb5efa0dddbc12664f0d095e30db5d75f7fa84690d18c2b2a95e8e380c02a06ea", "signature": "static NativeFeatureFlagsResult FeatureFlags(nint ui, nint id, nint flags, int count, nint envs, int envCount, in NativeFeatureFlagsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "flags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "envs", "type": "nint" }, { "name": "envCount", "type": "int" }, { "name": "opts", "type": "in NativeFeatureFlagsOpts" }], "summary": "cui_feature_flags_ex" }, { "name": "FileBrowser", "kind": "method", "id": "method|FileBrowser|1|0|NativeFileBrowserResult|nint ui;nint id;nint path;nuint pathCap;in NativeFileBrowserOpts opts||h08099d06b6206902f3eacf84023b3f3700251302fc626d834bfc0c98b509520c", "signature": "static NativeFileBrowserResult FileBrowser(nint ui, nint id, nint path, nuint pathCap, in NativeFileBrowserOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "pathCap", "type": "nuint" }, { "name": "opts", "type": "in NativeFileBrowserOpts" }], "summary": "cui_file_browser_ex" }, { "name": "FlameGraph", "kind": "method", "id": "method|FlameGraph|1|0|NativeFlameResult|nint ui;nint id;nint spans;int count;ref NativeFlameView view;ref int selected;in NativeFlameOpts opts||h572e9eae08f26d8c3ef0ce6dd6873004c38722dc8d44d901d89cf381a4bcad20", "signature": "static NativeFlameResult FlameGraph(nint ui, nint id, nint spans, int count, ref NativeFlameView view, ref int selected, in NativeFlameOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "view", "type": "ref NativeFlameView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeFlameOpts" }], "summary": "cui_flame_graph_ex" }, { "name": "GradientEditor", "kind": "method", "id": "method|GradientEditor|1|0|NativeGradientResult|nint ui;nint id;nint stops;ref int count;int capacity;in NativeGradientOpts opts||h8c5d8f1ee3133998b21568f32399f5f1066973b6fe35c0d2c046bde0f3711fa7", "signature": "static NativeGradientResult GradientEditor(nint ui, nint id, nint stops, ref int count, int capacity, in NativeGradientOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stops", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeGradientOpts" }], "summary": "cui_gradient_editor_ex" }, { "name": "GraphView", "kind": "method", "id": "method|GraphView|1|0|NativeGraphResult|nint ui;nint id;nint nodes;int nodeCount;nint edges;int edgeCount;in NativeGraphOpts opts||hd5b1f3cf7868c7e999da3ea9b89f9abd50a2a2e5fa0cabce9dbf681f75d6c217", "signature": "static NativeGraphResult GraphView(nint ui, nint id, nint nodes, int nodeCount, nint edges, int edgeCount, in NativeGraphOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "edges", "type": "nint" }, { "name": "edgeCount", "type": "int" }, { "name": "opts", "type": "in NativeGraphOpts" }], "summary": "cui_graph_view_ex" }, { "name": "HexView", "kind": "method", "id": "method|HexView|1|0|NativeHexResult|nint ui;nint id;nint data;nuint size;ref NativeHexSelection sel;in NativeHexViewOpts opts||hb15e58797f8b99309bce8f61db678bf1d7abbcda46acc035b9be9c5cd6e53e85", "signature": "static NativeHexResult HexView(nint ui, nint id, nint data, nuint size, ref NativeHexSelection sel, in NativeHexViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "nuint" }, { "name": "sel", "type": "ref NativeHexSelection" }, { "name": "opts", "type": "in NativeHexViewOpts" }], "summary": "cui_hex_view_ex" }, { "name": "Keymap", "kind": "method", "id": "method|Keymap|1|0|NativeKeymapResult|nint ui;nint id;nint bindings;int count;in NativeKeymapOpts opts||h9217cafc1fe775ad6698a0f05dd5582060c83090eedef5d953fbdf4293837498", "signature": "static NativeKeymapResult Keymap(nint ui, nint id, nint bindings, int count, in NativeKeymapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "bindings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeKeymapOpts" }], "summary": "cui_keymap_ex" }, { "name": "Markdown", "kind": "method", "id": "method|Markdown|1|0|NativeMarkdownResult|nint ui;nint id;nint text;in NativeMarkdownOpts opts||heaa94f7d43805d3025afbd720deb33d8585c24b46340d859317c44d35a8dc81a", "signature": "static NativeMarkdownResult Markdown(nint ui, nint id, nint text, in NativeMarkdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeMarkdownOpts" }], "summary": "cui_markdown_ex" }, { "name": "MonthCalendar", "kind": "method", "id": "method|MonthCalendar|1|0|NativeMonthResult|nint ui;nint id;ref NativeDate month;nint events;int count;in NativeMonthOpts opts||h44b8b3863faad3edc72fb84b70f78ff6c0786b4dbffd156203510cd11e19c2b8", "signature": "static NativeMonthResult MonthCalendar(nint ui, nint id, ref NativeDate month, nint events, int count, in NativeMonthOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "month", "type": "ref NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeMonthOpts" }], "summary": "cui_month_calendar_ex" }, { "name": "PathBar", "kind": "method", "id": "method|PathBar|1|0|NativePathBarResult|nint ui;nint id;nint segments;int count;in NativePathBarOpts opts||h91468a1041cda9c640d4d69a543f01f0eadaf8a0f81f1e0f31cc82613550c097", "signature": "static NativePathBarResult PathBar(nint ui, nint id, nint segments, int count, in NativePathBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segments", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePathBarOpts" }], "summary": "cui_path_bar_ex" }, { "name": "Pipeline", "kind": "method", "id": "method|Pipeline|1|0|NativePipelineResult|nint ui;nint id;nint stages;int stageCount;nint jobs;int jobCount;in NativePipelineOpts opts||h822fa481b7070f67b506e9542f7480a3c3e7b0682bcc85d6c91293d82634ca39", "signature": "static NativePipelineResult Pipeline(nint ui, nint id, nint stages, int stageCount, nint jobs, int jobCount, in NativePipelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "stageCount", "type": "int" }, { "name": "jobs", "type": "nint" }, { "name": "jobCount", "type": "int" }, { "name": "opts", "type": "in NativePipelineOpts" }], "summary": "cui_pipeline_ex" }, { "name": "Problems", "kind": "method", "id": "method|Problems|1|0|NativeProblemsResult|nint ui;nint id;nint diags;int count;in NativeProblemsOpts opts||h117f40fd2f6fef166ca95e09841a9367ad807c7ceb667067317604d7ebaaae04", "signature": "static NativeProblemsResult Problems(nint ui, nint id, nint diags, int count, in NativeProblemsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "diags", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeProblemsOpts" }], "summary": "cui_problems_ex" }, { "name": "FlameSpanRect", "kind": "method", "id": "method|FlameSpanRect|1|0|NativeRect|nint ui;uint flame;in NativeFlameSpan span||h40857a4a550d0690331d16f0f488573f3a49d975293a36369b1bf7c4d088bedc", "signature": "static NativeRect FlameSpanRect(nint ui, uint flame, in NativeFlameSpan span)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "flame", "type": "uint" }, { "name": "span", "type": "in NativeFlameSpan" }], "summary": "cui_flame_span_rect" }, { "name": "GetRect", "kind": "method", "id": "method|GetRect|1|0|NativeRect|nint ui;uint id||hfffd1bbdffac717a67f0184e99f213c780291e8ec750c8b06b21c9e1589aef60", "signature": "static NativeRect GetRect(nint ui, uint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }], "summary": "cui_get_rect" }, { "name": "LastRect", "kind": "method", "id": "method|LastRect|1|0|NativeRect|nint ui||hd3fce3194b991a66cf4c7eebf1b6f7cc7d75664cdc7eb24d369ed74fd947f6f3", "signature": "static NativeRect LastRect(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_rect" }, { "name": "RegexTester", "kind": "method", "id": "method|RegexTester|1|0|NativeRegexTesterResult|nint ui;nint id;nint pattern;nuint patternCap;nint text;nuint textCap;in NativeRegexTesterOpts opts||hdd04993c7dbcec6516f8b55b6fd473b17d8db4afcc6584202728b7a7d698e35f", "signature": "static NativeRegexTesterResult RegexTester(nint ui, nint id, nint pattern, nuint patternCap, nint text, nuint textCap, in NativeRegexTesterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pattern", "type": "nint" }, { "name": "patternCap", "type": "nuint" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "nuint" }, { "name": "opts", "type": "in NativeRegexTesterOpts" }], "summary": "cui_regex_tester_ex" }, { "name": "GlIface", "kind": "method", "id": "method|GlIface|1|0|NativeRendererIface|nint r||h795e70c9de3d729a8866ef635bab08eeb83d4375a5f987962f843af30ddd3e6d", "signature": "static NativeRendererIface GlIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_iface" }, { "name": "SwIface", "kind": "method", "id": "method|SwIface|1|0|NativeRendererIface|nint r||h5464602ec3a20f54b913735aaa2ec3c5b7fe93367a5b041be05e6e377b4daeb0", "signature": "static NativeRendererIface SwIface(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_iface" }, { "name": "RequestBar", "kind": "method", "id": "method|RequestBar|1|0|NativeRequestBarResult|nint ui;nint id;ref int method;nint url;nuint cap;in NativeRequestBarOpts opts||he5f65f42fef8d87f2cfdfdf610eeb6fbfcdef6aead78fd4bb2a46e976b4e987b", "signature": "static NativeRequestBarResult RequestBar(nint ui, nint id, ref int method, nint url, nuint cap, in NativeRequestBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "method", "type": "ref int" }, { "name": "url", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeRequestBarOpts" }], "summary": "cui_request_bar_ex" }, { "name": "SchedulePicker", "kind": "method", "id": "method|SchedulePicker|1|0|NativeScheduleResult|nint ui;nint id;nint cron;nuint cap;in NativeScheduleOpts opts||hdcfde877a035f281ea3fbe1375a4525a8b839e69848900f711b119fb68040038", "signature": "static NativeScheduleResult SchedulePicker(nint ui, nint id, nint cron, nuint cap, in NativeScheduleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "cron", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeScheduleOpts" }], "summary": "cui_schedule_picker_ex" }, { "name": "StackTrace", "kind": "method", "id": "method|StackTrace|1|0|NativeStackTraceResult|nint ui;nint id;nint frames;int count;in NativeStackTraceOpts opts||h9f73202328ea1e1acd56bdbbb0145c51176116307ced16ae48c761e993751c43", "signature": "static NativeStackTraceResult StackTrace(nint ui, nint id, nint frames, int count, in NativeStackTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "frames", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeStackTraceOpts" }], "summary": "cui_stack_trace_ex" }, { "name": "Terminal", "kind": "method", "id": "method|Terminal|1|0|NativeTerminalResult|nint ui;nint id;ref NativeTerminalBuffer t;in NativeTerminalOpts opts||h542c3a2dd62619cc3ea7fe3ac18031b59cba9cfdc574ed6c5b0dd6b5b0fa11ad", "signature": "static NativeTerminalResult Terminal(nint ui, nint id, ref NativeTerminalBuffer t, in NativeTerminalOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "opts", "type": "in NativeTerminalOpts" }], "summary": "cui_terminal_ex" }, { "name": "TestExplorer", "kind": "method", "id": "method|TestExplorer|1|0|NativeTestExplorerResult|nint ui;nint id;nint items;int count;in NativeTestExplorerOpts opts||h9f9556409348b1762b26e56637cef03ff46bdee0a835046a3c6df37e7afef027", "signature": "static NativeTestExplorerResult TestExplorer(nint ui, nint id, nint items, int count, in NativeTestExplorerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTestExplorerOpts" }], "summary": "cui_test_explorer_ex" }, { "name": "MeasureText", "kind": "method", "id": "method|MeasureText|1|0|NativeTextMetrics|nint ui;Font font;float size;nint text;int len||hc0767d4a4f1ef0e4b660dee972d158dcdee74407c51c840bb833f43a4857ba5d", "signature": "static NativeTextMetrics MeasureText(nint ui, Font font, float size, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_measure_text" }, { "name": "TimeHistogram", "kind": "method", "id": "method|TimeHistogram|1|0|NativeTimeHistogramResult|nint ui;nint id;double start;double bucketSeconds;int buckets;nint series;int seriesCount;ref double selStart;ref double selEnd;in NativeTimeHistogramOpts opts||hfa1f5b5edf695e77944ae27c1a7d2971389e8adf5c2986b00bd0343fa941466f", "signature": "static NativeTimeHistogramResult TimeHistogram(nint ui, nint id, double start, double bucketSeconds, int buckets, nint series, int seriesCount, ref double selStart, ref double selEnd, in NativeTimeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "double" }, { "name": "bucketSeconds", "type": "double" }, { "name": "buckets", "type": "int" }, { "name": "series", "type": "nint" }, { "name": "seriesCount", "type": "int" }, { "name": "selStart", "type": "ref double" }, { "name": "selEnd", "type": "ref double" }, { "name": "opts", "type": "in NativeTimeHistogramOpts" }], "summary": "cui_time_histogram_ex" }, { "name": "TimelineEditor", "kind": "method", "id": "method|TimelineEditor|1|0|NativeTimelineEditorResult|nint ui;nint id;nint tracks;int count;ref float time;in NativeTimelineEditorOpts opts||hb2351de7669631a8a067960970da082a535fcae1ee61308afd9d8e8a739fa48a", "signature": "static NativeTimelineEditorResult TimelineEditor(nint ui, nint id, nint tracks, int count, ref float time, in NativeTimelineEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "time", "type": "ref float" }, { "name": "opts", "type": "in NativeTimelineEditorOpts" }], "summary": "cui_timeline_editor_ex" }, { "name": "TraceView", "kind": "method", "id": "method|TraceView|1|0|NativeTraceResult|nint ui;nint id;nint tracks;int trackCount;nint spans;int spanCount;ref NativeTraceView view;ref int selected;in NativeTraceOpts opts||h73907b2dca89e0d041b59dfd17100da9cea8e43016feff734544ec106467a465", "signature": "static NativeTraceResult TraceView(nint ui, nint id, nint tracks, int trackCount, nint spans, int spanCount, ref NativeTraceView view, ref int selected, in NativeTraceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tracks", "type": "nint" }, { "name": "trackCount", "type": "int" }, { "name": "spans", "type": "nint" }, { "name": "spanCount", "type": "int" }, { "name": "view", "type": "ref NativeTraceView" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTraceOpts" }], "summary": "cui_trace_view_ex" }, { "name": "TreeTableEnd", "kind": "method", "id": "method|TreeTableEnd|1|0|NativeTreeTableEvents|nint ui||h4eee805112b7850f0485af91222e57e0a8f2c649236ae73d46f82c976dc53c29", "signature": "static NativeTreeTableEvents TreeTableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_end" }, { "name": "Uptime", "kind": "method", "id": "method|Uptime|1|0|NativeUptimeResult|nint ui;nint id;nint services;int count;in NativeUptimeOpts opts||hc265bb0f05628c0fb22bbf75876b45305005dc6eac18ab16dfb505efd5f0da2f", "signature": "static NativeUptimeResult Uptime(nint ui, nint id, nint services, int count, in NativeUptimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "services", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeUptimeOpts" }], "summary": "cui_uptime_ex" }, { "name": "AppSize", "kind": "method", "id": "method|AppSize|1|0|NativeVec2|nint app||ha74729608d621b24bc8ffdd406a5b45ae9fa70dab961521f18833480ef16f6bd", "signature": "static NativeVec2 AppSize(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_size" }, { "name": "MousePos", "kind": "method", "id": "method|MousePos|1|0|NativeVec2|nint ui||hd2c7d87a1a27b098cfb7f49fa68afdafabac9d9acecf9d42a72652db8ea7f7f3", "signature": "static NativeVec2 MousePos(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_mouse_pos" }, { "name": "ViewportSize", "kind": "method", "id": "method|ViewportSize|1|0|NativeVec2|nint ui||h655b0214496432d350fa7c5aa2dbfca82105134c4828a721a360598172ef33c0", "signature": "static NativeVec2 ViewportSize(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_viewport_size" }, { "name": "Waterfall", "kind": "method", "id": "method|Waterfall|1|0|NativeWaterfallResult|nint ui;nint id;nint requests;int count;in NativeWaterfallOpts opts||h36804244956e9d24e6feeb89cc3e7c1fb527ba4c1aa4e926e783be74cd6cdfce", "signature": "static NativeWaterfallResult Waterfall(nint ui, nint id, nint requests, int count, in NativeWaterfallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "requests", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaterfallOpts" }], "summary": "cui_waterfall_ex" }, { "name": "GetThemeMode", "kind": "method", "id": "method|GetThemeMode|1|0|Theme|nint ui||hd5dd420a6020ca9e2b3b03f97b96bc85c5a27efd6ee6df0eae33870895d7a9d3", "signature": "static Theme GetThemeMode(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_theme_mode" }, { "name": "AccordionBegin", "kind": "method", "id": "method|AccordionBegin|1|0|byte|nint ui;nint title;nint open||h59a40c85c4909ae585d78fc0410d19198504d98fdc3315c31c6b29cbd5093b22", "signature": "static byte AccordionBegin(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_accordion_begin" }, { "name": "Alert", "kind": "method", "id": "method|Alert|1|0|byte|nint ui;nint title;in NativeAlertOpts opts||h4a50e5754338f20bc39ed71731aa6b5f2a164fde306492214009bd2a0a9b6dcc", "signature": "static byte Alert(nint ui, nint title, in NativeAlertOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeAlertOpts" }], "summary": "cui_alert_ex" }, { "name": "AppFileDialog", "kind": "method", "id": "method|AppFileDialog|1|0|byte|nint app;in NativeFileDialogOpts opts;nint out;nuint cap||h0e53b3363f81f00bce2f7dad5b3517ceb5c80e01cf9ec62825cfa5a6a93295ad", "signature": "static byte AppFileDialog(nint app, in NativeFileDialogOpts opts, nint @out, nuint cap)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "opts", "type": "in NativeFileDialogOpts" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "nuint" }], "summary": "cui_app_file_dialog" }, { "name": "AppFrame", "kind": "method", "id": "method|AppFrame|1|0|byte|nint app||he4db78bd95169682f895be0dff74b53e3973f2db55ce753f0d144b3beb0db873", "signature": "static byte AppFrame(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_frame" }, { "name": "AppIsSoftware", "kind": "method", "id": "method|AppIsSoftware|1|0|byte|nint app||h7cfe758e335174ee97ad36da7db9f00b8a23df3abdef176d7ee242cf54f423b0", "signature": "static byte AppIsSoftware(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_is_software" }, { "name": "AppOpenUrl", "kind": "method", "id": "method|AppOpenUrl|1|0|byte|nint url||ha4a1975a2f8bd8f16549e1c2e2d0fdb3377790f3b33115a0de136383555329f4", "signature": "static byte AppOpenUrl(nint url)", "parameters": [{ "name": "url", "type": "nint" }], "summary": "cui_app_open_url" }, { "name": "AppScreenshot", "kind": "method", "id": "method|AppScreenshot|1|0|byte|nint app;nint rgba;int width;int height||h3c30ad02d7c81cec1318052acb1ae7dffc5d7b4922a5a5b1a1e61dc3ca38b950", "signature": "static byte AppScreenshot(nint app, nint rgba, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_screenshot" }, { "name": "Banner", "kind": "method", "id": "method|Banner|1|0|byte|nint ui;nint text;nint open;in NativeBannerOpts opts||hb5ad03ccbefd63827bc917d6263f04db05dcdf2dbb1c4571eb9d4f94f5388d42", "signature": "static byte Banner(nint ui, nint text, nint open, in NativeBannerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeBannerOpts" }], "summary": "cui_banner_ex" }, { "name": "Button", "kind": "method", "id": "method|Button|1|0|byte|nint ui;nint label;in NativeButtonOpts opts||hbf77c65cd58bceccdde70f6c89f7363b8da26191c316501dbe5bcdd8d43ac2b6", "signature": "static byte Button(nint ui, nint label, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_button_ex" }, { "name": "Calendar", "kind": "method", "id": "method|Calendar|1|0|byte|nint ui;nint id;ref NativeDate value||h95efe1a12806e2a8561314e3a70abd0ff38a240e350c2f061307438ff122ab4a", "signature": "static byte Calendar(nint ui, nint id, ref NativeDate value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }], "summary": "cui_calendar" }, { "name": "CardBegin", "kind": "method", "id": "method|CardBegin|1|0|byte|nint ui;in NativeCardOpts opts||h8eb89566776b1709be89f536ce55eef794eacc637d7c3737090c86333c2ae707", "signature": "static byte CardBegin(nint ui, in NativeCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeCardOpts" }], "summary": "cui_card_begin" }, { "name": "CarouselBegin", "kind": "method", "id": "method|CarouselBegin|1|0|byte|nint ui;nint id;int count;ref int index;in NativeCarouselOpts opts||hb18645d7f90ffa240dcb88b8de82f4d32e264fa620a19d90c2fd6da2e5cee0fd", "signature": "static byte CarouselBegin(nint ui, nint id, int count, ref int index, in NativeCarouselOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeCarouselOpts" }], "summary": "cui_carousel_begin" }, { "name": "Checkbox", "kind": "method", "id": "method|Checkbox|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hff3bc3ffdd5a33d31ff9b97fc872eb4f252bd3b9b1aace78eb72c45dd110e46e", "signature": "static byte Checkbox(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_checkbox_ex" }, { "name": "Chip", "kind": "method", "id": "method|Chip|1|0|byte|nint ui;nint label;nint selected;in NativeChipOpts opts||head6d3534ffead4ac5649c1e26da63fd27441e52ad599488313efd3171e7911a", "signature": "static byte Chip(nint ui, nint label, nint selected, in NativeChipOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeChipOpts" }], "summary": "cui_chip_ex" }, { "name": "Citation", "kind": "method", "id": "method|Citation|1|0|byte|nint ui;int number;in NativeSource source||hffed798222a8e812b80fd9a4f8de893f54f9aa2a9ba39b646c7fc4c36d97028f", "signature": "static byte Citation(nint ui, int number, in NativeSource source)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "number", "type": "int" }, { "name": "source", "type": "in NativeSource" }], "summary": "cui_citation" }, { "name": "ColorPicker", "kind": "method", "id": "method|ColorPicker|1|0|byte|nint ui;nint id;ref NativeColor value||h989743a93cec76d361912fe0c33e29894c7ec163dd928db2f27ddbdb49ad5854", "signature": "static byte ColorPicker(nint ui, nint id, ref NativeColor value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }], "summary": "cui_color_picker" }, { "name": "ConfirmButton", "kind": "method", "id": "method|ConfirmButton|1|0|byte|nint ui;nint label;in NativeConfirmOpts opts||h8f8604ad0f24f547d8d6d8e28fd22bc47b268f0f807bac020f240abd4080dcab", "signature": "static byte ConfirmButton(nint ui, nint label, in NativeConfirmOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmOpts" }], "summary": "cui_confirm_button_ex" }, { "name": "ConfirmPopover", "kind": "method", "id": "method|ConfirmPopover|1|0|byte|nint ui;nint id;in NativeConfirmPopoverOpts opts||hfd5da6244ccd11ef60923dd471ea00e6d60fd8d3c20af199c7ec8b39412c7e29", "signature": "static byte ConfirmPopover(nint ui, nint id, in NativeConfirmPopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeConfirmPopoverOpts" }], "summary": "cui_confirm_popover_ex" }, { "name": "ContextMenuBegin", "kind": "method", "id": "method|ContextMenuBegin|1|0|byte|nint ui;nint id||hbf71c286d5bec94ffe1f78068f50bcf6f4a63edd23157d4b17db003f83e58a19", "signature": "static byte ContextMenuBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_context_menu_begin" }, { "name": "ControlTile", "kind": "method", "id": "method|ControlTile|1|0|byte|nint ui;nint label;nint on;in NativeTileOpts opts||he10e62b5f2afeb2033d2a9ebe247f8cd89cb234fb240344bc1e9c9c4c5e11100", "signature": "static byte ControlTile(nint ui, nint label, nint on, in NativeTileOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "on", "type": "nint" }, { "name": "opts", "type": "in NativeTileOpts" }], "summary": "cui_control_tile_ex" }, { "name": "CopyButton", "kind": "method", "id": "method|CopyButton|1|0|byte|nint ui;nint id;nint text||h48aef3359811011144831ea4ef53df4f260c450ae1e3945f43837aaebb616498", "signature": "static byte CopyButton(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_copy_button" }, { "name": "CronNext", "kind": "method", "id": "method|CronNext|1|0|byte|nint cron;long after;int utcOffset;ref long next||h56b578400ea3104a21e21cd8839e108a8122060418bfd3101cd73d569ce1a8d7", "signature": "static byte CronNext(nint cron, long after, int utcOffset, ref long next)", "parameters": [{ "name": "cron", "type": "nint" }, { "name": "after", "type": "long" }, { "name": "utcOffset", "type": "int" }, { "name": "next", "type": "ref long" }], "summary": "cui_cron_next" }, { "name": "Cropper", "kind": "method", "id": "method|Cropper|1|0|byte|nint ui;nint id;nuint tex;int imageW;int imageH;ref NativeRect crop;in NativeCropperOpts opts||h5fd51a4a0b5e8135c4015f9e0676d9658dfd816f02d1edc2d56d69a43eb847ef", "signature": "static byte Cropper(nint ui, nint id, nuint tex, int imageW, int imageH, ref NativeRect crop, in NativeCropperOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "nuint" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "crop", "type": "ref NativeRect" }, { "name": "opts", "type": "in NativeCropperOpts" }], "summary": "cui_cropper_ex" }, { "name": "DataGridBegin", "kind": "method", "id": "method|DataGridBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;int rowCount;ref int first;ref int last;in NativeGridOpts opts||h8592e38778819eb9396c680798d4a23f61ab9bb95e979589695c061d8a2c9bc3", "signature": "static byte DataGridBegin(nint ui, nint id, nint columns, int columnCount, int rowCount, ref int first, ref int last, in NativeGridOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "rowCount", "type": "int" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }, { "name": "opts", "type": "in NativeGridOpts" }], "summary": "cui_data_grid_begin_ex" }, { "name": "DataGridCellEdit", "kind": "method", "id": "method|DataGridCellEdit|1|0|byte|nint ui;nint buf;nuint cap||hd29cacae4bc510ac2073f2ec3dafbd6d3eedeecb1d2f8f9b273a1c95a0a6b969", "signature": "static byte DataGridCellEdit(nint ui, nint buf, nuint cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }], "summary": "cui_data_grid_cell_edit" }, { "name": "DataGridEdit", "kind": "method", "id": "method|DataGridEdit|1|0|byte|nint ui;nint buf;nuint cap||hb51d44fa028a4498c2a366835b6380815a5dcf187320d5c580b357792b24f825", "signature": "static byte DataGridEdit(nint ui, nint buf, nuint cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }], "summary": "cui_data_grid_edit" }, { "name": "DataGridRow", "kind": "method", "id": "method|DataGridRow|1|0|byte|nint ui;int row||h17f96bb5d180e97edcb36108118e13a70709ad758013a1a088b598046886a76a", "signature": "static byte DataGridRow(nint ui, int row)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "row", "type": "int" }], "summary": "cui_data_grid_row" }, { "name": "DatePicker", "kind": "method", "id": "method|DatePicker|1|0|byte|nint ui;nint id;ref NativeDate value;in NativeDateOpts opts||hd9d76b72b2af7c46bcbc08a04498bedac51208539abc4f8f01f7f4d614059494", "signature": "static byte DatePicker(nint ui, nint id, ref NativeDate value, in NativeDateOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref NativeDate" }, { "name": "opts", "type": "in NativeDateOpts" }], "summary": "cui_date_picker_ex" }, { "name": "DateRangePicker", "kind": "method", "id": "method|DateRangePicker|1|0|byte|nint ui;nint id;ref NativeDateRange range;in NativeDateRangeOpts opts||h92533d23ef098f513ceea3b01553a6a49f16335ddfdb3eadc4ec0264e939998f", "signature": "static byte DateRangePicker(nint ui, nint id, ref NativeDateRange range, in NativeDateRangeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "opts", "type": "in NativeDateRangeOpts" }], "summary": "cui_date_range_picker_ex" }, { "name": "DialogBegin", "kind": "method", "id": "method|DialogBegin|1|0|byte|nint ui;nint title;nint open;in NativeDialogOpts opts||hd616f3e3c8148d7400e20e570bff72cb6c0caf2d7b9fec5daa919f5f471430f2", "signature": "static byte DialogBegin(nint ui, nint title, nint open, in NativeDialogOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDialogOpts" }], "summary": "cui_dialog_begin" }, { "name": "DiffWords", "kind": "method", "id": "method|DiffWords|1|0|byte|nint oldLine;int oldLen;nint newLine;int newLen;nint oldRanges;ref int oldCount;nint newRanges;ref int newCount;int cap||hcda9f2ec29f0648dbedd75e9fd2669ff2851a76de74593a5fdcfaba7e38ffbd9", "signature": "static byte DiffWords(nint oldLine, int oldLen, nint newLine, int newLen, nint oldRanges, ref int oldCount, nint newRanges, ref int newCount, int cap)", "parameters": [{ "name": "oldLine", "type": "nint" }, { "name": "oldLen", "type": "int" }, { "name": "newLine", "type": "nint" }, { "name": "newLen", "type": "int" }, { "name": "oldRanges", "type": "nint" }, { "name": "oldCount", "type": "ref int" }, { "name": "newRanges", "type": "nint" }, { "name": "newCount", "type": "ref int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_words" }, { "name": "DockItem", "kind": "method", "id": "method|DockItem|1|0|byte|nint ui;nint icon;nint label;in NativeDockItemOpts opts||hc98fe4669f05c98a74eb98bebd4a9d1a85e10093aaf887a346a97ed55781ed98", "signature": "static byte DockItem(nint ui, nint icon, nint label, in NativeDockItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeDockItemOpts" }], "summary": "cui_dock_item_ex" }, { "name": "DockLoad", "kind": "method", "id": "method|DockLoad|1|0|byte|nint ui;nint id;nint text||h621beeb19268aecd384a174a3f46f3fe2f0067bb2eeedd194a6bd4b1e781efaa", "signature": "static byte DockLoad(nint ui, nint id, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_dock_load" }, { "name": "DockPanelBegin", "kind": "method", "id": "method|DockPanelBegin|1|0|byte|nint ui;nint title;nint open;in NativeDockPanelOpts opts||h2744ffb49bc263bc86741c7e6c0e58f096dc2dc91857010058a19ee69cb87dd2", "signature": "static byte DockPanelBegin(nint ui, nint title, nint open, in NativeDockPanelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeDockPanelOpts" }], "summary": "cui_dock_panel_begin_ex" }, { "name": "EmojiFontLoadFile", "kind": "method", "id": "method|EmojiFontLoadFile|1|0|byte|nint ui;nint path||h1fa3b59d3fb51cc55806ab6720350790ed1dea427bd97ef45db889a9e9068855", "signature": "static byte EmojiFontLoadFile(nint ui, nint path)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }], "summary": "cui_emoji_font_load_file" }, { "name": "EmojiFontLoadMemory", "kind": "method", "id": "method|EmojiFontLoadMemory|1|0|byte|nint ui;nint data;nuint size;byte copy||h58c96f83873fb0393db7455ce5c340f9d15f089541c178d904efa392b2dfc00c", "signature": "static byte EmojiFontLoadMemory(nint ui, nint data, nuint size, byte copy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "data", "type": "nint" }, { "name": "size", "type": "nuint" }, { "name": "copy", "type": "byte" }], "summary": "cui_emoji_font_load_memory" }, { "name": "EmojiFontLoadSystem", "kind": "method", "id": "method|EmojiFontLoadSystem|1|0|byte|nint ui||hadc7b19a2a9a2e65695fc9817a04d4a731c2b5afaf61701ae690292273e13310", "signature": "static byte EmojiFontLoadSystem(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_emoji_font_load_system" }, { "name": "EmojiSupported", "kind": "method", "id": "method|EmojiSupported|1|0|byte|nint ui;nint utf8;int len||haa623954e33273c01efadb0b164b0325a036fa5aac7ebf21338630f47cc6f329", "signature": "static byte EmojiSupported(nint ui, nint utf8, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_emoji_supported" }, { "name": "EmptyState", "kind": "method", "id": "method|EmptyState|1|0|byte|nint ui;nint title;in NativeEmptyOpts opts||h941a84eed00b9099f9a69276a71aef1c42cd24b1ed9125fcce7b3ed9cc5d56a3", "signature": "static byte EmptyState(nint ui, nint title, in NativeEmptyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeEmptyOpts" }], "summary": "cui_empty_state_ex" }, { "name": "ExpandableCardBegin", "kind": "method", "id": "method|ExpandableCardBegin|1|0|byte|nint ui;nint title;nint open;in NativeExpandableCardOpts opts||hc4f35bb8b4e0a5b5c51ced2e3eb8913efcb5526a0978d715299a9d3e6425d85a", "signature": "static byte ExpandableCardBegin(nint ui, nint title, nint open, in NativeExpandableCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableCardOpts" }], "summary": "cui_expandable_card_begin" }, { "name": "ExpandableText", "kind": "method", "id": "method|ExpandableText|1|0|byte|nint ui;nint id;nint text;in NativeExpandableTextOpts opts||he923421a6ed1305bf9a9239a09a90cb844e441a563ed0b79c1088be082b68db2", "signature": "static byte ExpandableText(nint ui, nint id, nint text, in NativeExpandableTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeExpandableTextOpts" }], "summary": "cui_expandable_text_ex" }, { "name": "Fader", "kind": "method", "id": "method|Fader|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeFaderOpts opts||h6ed38dfc9564ca40874ecea6cd058d18d45a5b3df90662647f6d22fa1b43a8e9", "signature": "static byte Fader(nint ui, nint id, ref float value, float min, float max, in NativeFaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeFaderOpts" }], "summary": "cui_fader_ex" }, { "name": "FileDragActive", "kind": "method", "id": "method|FileDragActive|1|0|byte|nint ui||h06689d0f1f6ad622bd4ede35fde7d9e4b27bf818d7051e398763c4d0d6c69752", "signature": "static byte FileDragActive(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_file_drag_active" }, { "name": "FilePicker", "kind": "method", "id": "method|FilePicker|1|0|byte|nint ui;nint id;nint open;nint out;nuint outCap;in NativeFilePickerOpts opts||hce1d0bb445dc444bcb9f6dbdd7fe0abd2e09e043e7ff5498e06a7087f0238d63", "signature": "static byte FilePicker(nint ui, nint id, nint open, nint @out, nuint outCap, in NativeFilePickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "out", "type": "nint" }, { "name": "outCap", "type": "nuint" }, { "name": "opts", "type": "in NativeFilePickerOpts" }], "summary": "cui_file_picker_ex" }, { "name": "FilterBar", "kind": "method", "id": "method|FilterBar|1|0|byte|nint ui;nint id;nint fields;int count;ref uint selected;nint search;nuint searchCap||h439da7369bd0a7c312d2f90525f951269174bf9f93f1ea661122ad8a8220c491", "signature": "static byte FilterBar(nint ui, nint id, nint fields, int count, ref uint selected, nint search, nuint searchCap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref uint" }, { "name": "search", "type": "nint" }, { "name": "searchCap", "type": "nuint" }], "summary": "cui_filter_bar" }, { "name": "GlIsSoftware", "kind": "method", "id": "method|GlIsSoftware|1|0|byte|nint r||h6f0d04c2dca4916b21cc9dbb2f1f9a0b5ae9561aa7f132235ee5f35dc9629684", "signature": "static byte GlIsSoftware(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_is_software" }, { "name": "HistogramSlider", "kind": "method", "id": "method|HistogramSlider|1|0|byte|nint ui;nint label;nint bins;int binCount;ref float lo;ref float hi;float min;float max;in NativeHistogramOpts opts||h76a57b17c94377856e726b8b08e866628238cda2c53b31a54f9aef2d181fa40e", "signature": "static byte HistogramSlider(nint ui, nint label, nint bins, int binCount, ref float lo, ref float hi, float min, float max, in NativeHistogramOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "bins", "type": "nint" }, { "name": "binCount", "type": "int" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeHistogramOpts" }], "summary": "cui_histogram_slider_ex" }, { "name": "HoldButton", "kind": "method", "id": "method|HoldButton|1|0|byte|nint ui;nint label;in NativeHoldOpts opts||h1870c44b154f6e64561e0bc2872a662ce1c6077c5faa415f3313612b05e2df33", "signature": "static byte HoldButton(nint ui, nint label, in NativeHoldOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeHoldOpts" }], "summary": "cui_hold_button_ex" }, { "name": "HoverCardBegin", "kind": "method", "id": "method|HoverCardBegin|1|0|byte|nint ui;nint id;in NativeHoverCardOpts opts||h2acd4cd766bdafd791de91155afcbe9fcb949f5209b01f218aa8bb2ab0561e1d", "signature": "static byte HoverCardBegin(nint ui, nint id, in NativeHoverCardOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeHoverCardOpts" }], "summary": "cui_hover_card_begin" }, { "name": "IconButton", "kind": "method", "id": "method|IconButton|1|0|byte|nint ui;nint icon;in NativeButtonOpts opts||h2d23f5f0de85e2fcf802f1b534bb88b5c109da6930af15f92ad95402c5f2af72", "signature": "static byte IconButton(nint ui, nint icon, in NativeButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeButtonOpts" }], "summary": "cui_icon_button_ex" }, { "name": "ImageCompare", "kind": "method", "id": "method|ImageCompare|1|0|byte|nint ui;nint id;nuint before;nuint after;ref float pos;in NativeCompareOpts opts||hc06a5f26d4dc2f33c6e9de17a4f5d692a8a125973f156fd9d4fa451a2bd5285b", "signature": "static byte ImageCompare(nint ui, nint id, nuint before, nuint after, ref float pos, in NativeCompareOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "before", "type": "nuint" }, { "name": "after", "type": "nuint" }, { "name": "pos", "type": "ref float" }, { "name": "opts", "type": "in NativeCompareOpts" }], "summary": "cui_image_compare_ex" }, { "name": "ImageViewer", "kind": "method", "id": "method|ImageViewer|1|0|byte|nint ui;nint id;nuint tex;int imageW;int imageH;ref NativeImageView view;in NativeImageViewerOpts opts||h0cf78963603044f43e01c356a5265e35ab70d8179f729c4a4dc7c8e5f69cd296", "signature": "static byte ImageViewer(nint ui, nint id, nuint tex, int imageW, int imageH, ref NativeImageView view, in NativeImageViewerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tex", "type": "nuint" }, { "name": "imageW", "type": "int" }, { "name": "imageH", "type": "int" }, { "name": "view", "type": "ref NativeImageView" }, { "name": "opts", "type": "in NativeImageViewerOpts" }], "summary": "cui_image_viewer_ex" }, { "name": "InspectorBegin", "kind": "method", "id": "method|InspectorBegin|1|0|byte|nint ui;nint id;in NativeInspectorOpts opts||haf0c110106f31d9e3d2a18a9340f0a4f30ab977c0436d21cadd58b7d87812a8d", "signature": "static byte InspectorBegin(nint ui, nint id, in NativeInspectorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeInspectorOpts" }], "summary": "cui_inspector_begin_ex" }, { "name": "InspectorGroup", "kind": "method", "id": "method|InspectorGroup|1|0|byte|nint ui;nint title;nint open||h497e9d988565ae5ca3b5c08f689dd3254225d3a3d9dc0ecf312ef898a908c201", "signature": "static byte InspectorGroup(nint ui, nint title, nint open)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }], "summary": "cui_inspector_group" }, { "name": "IsDisabled", "kind": "method", "id": "method|IsDisabled|1|0|byte|nint ui||h0f0e74072e7126efe97cf7c822e7ed9b4fd1b9ba5c5e78d6566ffb90b9ad1596", "signature": "static byte IsDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_is_disabled" }, { "name": "JsonView", "kind": "method", "id": "method|JsonView|1|0|byte|nint ui;nint id;nint json;in NativeJsonOpts opts||hdb710bc8e1b81b610086d6b063db3f139a632b10befa8e75576ebfdb26aed829", "signature": "static byte JsonView(nint ui, nint id, nint json, in NativeJsonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "json", "type": "nint" }, { "name": "opts", "type": "in NativeJsonOpts" }], "summary": "cui_json_view_ex" }, { "name": "KanbanCardBegin", "kind": "method", "id": "method|KanbanCardBegin|1|0|byte|nint ui;int cardId||hb10022a44f071459906d2056eaf86e971ba0fd1d1e8298e8e3512e2c40305731", "signature": "static byte KanbanCardBegin(nint ui, int cardId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cardId", "type": "int" }], "summary": "cui_kanban_card_begin" }, { "name": "KanbanColumnBegin", "kind": "method", "id": "method|KanbanColumnBegin|1|0|byte|nint ui;nint title;int cardCount;in NativeKanbanColumnOpts opts||h31707cec7d02a90fb9ca22b004120125fc7c64fe847a796ff10f143a5970e8d0", "signature": "static byte KanbanColumnBegin(nint ui, nint title, int cardCount, in NativeKanbanColumnOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "cardCount", "type": "int" }, { "name": "opts", "type": "in NativeKanbanColumnOpts" }], "summary": "cui_kanban_column_begin_ex" }, { "name": "KanbanEnd", "kind": "method", "id": "method|KanbanEnd|1|0|byte|nint ui;ref NativeKanbanMove move||h53bbfa00ebd29bb312c1e760325bdacf4768ff044b242e3f05cb6702bfc46d51", "signature": "static byte KanbanEnd(nint ui, ref NativeKanbanMove move)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "move", "type": "ref NativeKanbanMove" }], "summary": "cui_kanban_end" }, { "name": "KeyDown", "kind": "method", "id": "method|KeyDown|1|0|byte|nint ui;Key key||h6d4445c5b57a82d91cda591d976850ee3d0eb9a02ac7a9a0c7f8fadba8cab1cb", "signature": "static byte KeyDown(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_down" }, { "name": "KeyPressed", "kind": "method", "id": "method|KeyPressed|1|0|byte|nint ui;Key key||h4b8d48010a1a9850c0768747a30fbb0ec8ff46600a7bfbab7928db9651a84957", "signature": "static byte KeyPressed(nint ui, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }], "summary": "cui_key_pressed" }, { "name": "Knob", "kind": "method", "id": "method|Knob|1|0|byte|nint ui;nint id;ref float value;float min;float max;in NativeKnobOpts opts||h9ee3cc21d4102e0742c3a600bae25092222ba9a1071838d49a0ca2698c8c7920", "signature": "static byte Knob(nint ui, nint id, ref float value, float min, float max, in NativeKnobOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeKnobOpts" }], "summary": "cui_knob_ex" }, { "name": "KvEditor", "kind": "method", "id": "method|KvEditor|1|0|byte|nint ui;nint id;nint pairs;ref int count;int capacity;in NativeKvEditorOpts opts||hb2614aaec9d451a0e5bdf229887d837d6bb7b2c23a13770a65a365eb3466709e", "signature": "static byte KvEditor(nint ui, nint id, nint pairs, ref int count, int capacity, in NativeKvEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeKvEditorOpts" }], "summary": "cui_kv_editor_ex" }, { "name": "LastHovered", "kind": "method", "id": "method|LastHovered|1|0|byte|nint ui||h41176bf534c908b00ace79674d97cffea1848ac349fe99eb9b1adf5c37669bb4", "signature": "static byte LastHovered(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_hovered" }, { "name": "LevelMeter", "kind": "method", "id": "method|LevelMeter|1|0|byte|nint ui;nint id;nint levels;int channels;in NativeLevelMeterOpts opts||hfc5e9178ec7f3614a5efade5d6dcdbf414075f81c96b3f6cc266f87b30516a1c", "signature": "static byte LevelMeter(nint ui, nint id, nint levels, int channels, in NativeLevelMeterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "levels", "type": "nint" }, { "name": "channels", "type": "int" }, { "name": "opts", "type": "in NativeLevelMeterOpts" }], "summary": "cui_level_meter_ex" }, { "name": "Link", "kind": "method", "id": "method|Link|1|0|byte|nint ui;nint text||h8460add3477f455cc2ee1c287e47ae31f0d673f5f961821dfdc3cd857ceadb3d", "signature": "static byte Link(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_link" }, { "name": "ListItem", "kind": "method", "id": "method|ListItem|1|0|byte|nint ui;nint title;in NativeListItemOpts opts||h1bdd6b290a5d46e3fbc94460f2cf1e811f7ab4fb32aa4edd105643c1387b6160", "signature": "static byte ListItem(nint ui, nint title, in NativeListItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeListItemOpts" }], "summary": "cui_list_item_ex" }, { "name": "MarkdownApplyTask", "kind": "method", "id": "method|MarkdownApplyTask|1|0|byte|nint text;in NativeMarkdownResult result||h65c0748daeaff3d922677db26ff783f06848918f3064226056c488ad839a3f6e", "signature": "static byte MarkdownApplyTask(nint text, in NativeMarkdownResult result)", "parameters": [{ "name": "text", "type": "nint" }, { "name": "result", "type": "in NativeMarkdownResult" }], "summary": "cui_markdown_apply_task" }, { "name": "MenuBarMenuBegin", "kind": "method", "id": "method|MenuBarMenuBegin|1|0|byte|nint ui;nint label;in NativeMenuBarMenuOpts opts||hdce92dc64169719fd1caac182b3b3f1c1e69c519f083e93adad353ffa0087006", "signature": "static byte MenuBarMenuBegin(nint ui, nint label, in NativeMenuBarMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarMenuOpts" }], "summary": "cui_menu_bar_menu_begin" }, { "name": "MenuBegin", "kind": "method", "id": "method|MenuBegin|1|0|byte|nint ui;nint label;in NativeMenuOpts opts||h0c701f73327f9a30be5cfb7c34816c1cdc4252ab5276470c412478196efce7ef", "signature": "static byte MenuBegin(nint ui, nint label, in NativeMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuOpts" }], "summary": "cui_menu_begin" }, { "name": "MenuItem", "kind": "method", "id": "method|MenuItem|1|0|byte|nint ui;nint label;in NativeMenuItemOpts opts||haf30308e41d50cd536bc2cf08e9736e8d2b49efc929acc8bca93a84950068f4d", "signature": "static byte MenuItem(nint ui, nint label, in NativeMenuItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeMenuItemOpts" }], "summary": "cui_menu_item_ex" }, { "name": "ModelPicker", "kind": "method", "id": "method|ModelPicker|1|0|byte|nint ui;nint id;nint models;int count;ref int selected;in NativeModelPickerOpts opts||hc29cc09c2e34215fa836775b784ea5bfb4f3bba7656e378d58ce8f73bff1c6fd", "signature": "static byte ModelPicker(nint ui, nint id, nint models, int count, ref int selected, in NativeModelPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "models", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeModelPickerOpts" }], "summary": "cui_model_picker_ex" }, { "name": "MoneyInput", "kind": "method", "id": "method|MoneyInput|1|0|byte|nint ui;nint id;ref double value;in NativeMoneyOpts opts||h3ff760afb37f0e62af2cb05228c843fa66a95eada822c1352ada152ad8c575eb", "signature": "static byte MoneyInput(nint ui, nint id, ref double value, in NativeMoneyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "opts", "type": "in NativeMoneyOpts" }], "summary": "cui_money_input_ex" }, { "name": "MouseClicked", "kind": "method", "id": "method|MouseClicked|1|0|byte|nint ui;MouseButton b||h15a448a8dcf4692f7df7c145b73d244866d5e5a4f735572ef4999a267379b68f", "signature": "static byte MouseClicked(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_clicked" }, { "name": "MouseDown", "kind": "method", "id": "method|MouseDown|1|0|byte|nint ui;MouseButton b||hff24d7015a9ce35f643c5082bcb54be0985bb3f9f3dc211436da7b65f16590a5", "signature": "static byte MouseDown(nint ui, MouseButton b)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "b", "type": "MouseButton" }], "summary": "cui_mouse_down" }, { "name": "MultiSelect", "kind": "method", "id": "method|MultiSelect|1|0|byte|nint ui;nint id;nint items;int count;nint selected;in NativeMultiSelectOpts opts||h5c9472439fb3846e3da639dcd77abda0ffc6983f39a8cd8f69537665395592e6", "signature": "static byte MultiSelect(nint ui, nint id, nint items, int count, nint selected, in NativeMultiSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "nint" }, { "name": "opts", "type": "in NativeMultiSelectOpts" }], "summary": "cui_multi_select_ex" }, { "name": "NavItem", "kind": "method", "id": "method|NavItem|1|0|byte|nint ui;nint label;in NativeNavOpts opts||h12f929fa43eef8aaeeb499331c925a0a27b6aa2101c772e1fd311a90aa4ce8f5", "signature": "static byte NavItem(nint ui, nint label, in NativeNavOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeNavOpts" }], "summary": "cui_nav_item_ex" }, { "name": "NeedsRedraw", "kind": "method", "id": "method|NeedsRedraw|1|0|byte|nint ui||h7b43442d721907c639ef1f2c082c75d198b178de187caf3ecd27a9945fc8ea8e", "signature": "static byte NeedsRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_needs_redraw" }, { "name": "NodeBegin", "kind": "method", "id": "method|NodeBegin|1|0|byte|nint ui;int nodeId;ref float x;ref float y;nint title;in NativeNodeOpts opts||h3ff767afdc5dc754f45f111bbc023fd04d09391838171174875147ff26ab10ac", "signature": "static byte NodeBegin(nint ui, int nodeId, ref float x, ref float y, nint title, in NativeNodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "int" }, { "name": "x", "type": "ref float" }, { "name": "y", "type": "ref float" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeNodeOpts" }], "summary": "cui_node_begin_ex" }, { "name": "NodeDeleted", "kind": "method", "id": "method|NodeDeleted|1|0|byte|nint ui;ref int nodeId||h26a2e21e519d12482534c9be0e688659e537c8c649731c62b8e07fd20f3aec51", "signature": "static byte NodeDeleted(nint ui, ref int nodeId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "nodeId", "type": "ref int" }], "summary": "cui_node_deleted" }, { "name": "NodeEditorBegin", "kind": "method", "id": "method|NodeEditorBegin|1|0|byte|nint ui;nint id;ref NativeNodeView view;in NativeNodeEditorOpts opts||h5c300457768c76f92734ac1a0ccff610d8565ca52667e6bf8de7cf33ec5195f0", "signature": "static byte NodeEditorBegin(nint ui, nint id, ref NativeNodeView view, in NativeNodeEditorOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "view", "type": "ref NativeNodeView" }, { "name": "opts", "type": "in NativeNodeEditorOpts" }], "summary": "cui_node_editor_begin_ex" }, { "name": "NodeInput", "kind": "method", "id": "method|NodeInput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h05349be34aeb5552ca0fe0e8e2faa4b0c88bf38b8ddfb94e56cb059827927b43", "signature": "static byte NodeInput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_input_ex" }, { "name": "NodeLink", "kind": "method", "id": "method|NodeLink|1|0|byte|nint ui;int linkId;int fromPin;int toPin||h4fd0ea27954b724e7cdccedf031de49905dc5d5397d14cb610cc8b072c2c611e", "signature": "static byte NodeLink(nint ui, int linkId, int fromPin, int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "int" }, { "name": "fromPin", "type": "int" }, { "name": "toPin", "type": "int" }], "summary": "cui_node_link" }, { "name": "NodeLinkCreated", "kind": "method", "id": "method|NodeLinkCreated|1|0|byte|nint ui;ref int fromPin;ref int toPin||hc82624810a72f602e276268bcdcac44230c240176da8b76b33de074633261bb1", "signature": "static byte NodeLinkCreated(nint ui, ref int fromPin, ref int toPin)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "fromPin", "type": "ref int" }, { "name": "toPin", "type": "ref int" }], "summary": "cui_node_link_created" }, { "name": "NodeLinkRemoved", "kind": "method", "id": "method|NodeLinkRemoved|1|0|byte|nint ui;ref int linkId||h4f0501cd14e679dd9c71ff20df58c61cd5ece412c9274982ca5977467578e59a", "signature": "static byte NodeLinkRemoved(nint ui, ref int linkId)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "linkId", "type": "ref int" }], "summary": "cui_node_link_removed" }, { "name": "NodeOutput", "kind": "method", "id": "method|NodeOutput|1|0|byte|nint ui;int pinId;nint label;in NativePinOpts opts||h889d0c43d378b6488c82d0644a74fb8447e2024e5a741797063399e6bb76d271", "signature": "static byte NodeOutput(nint ui, int pinId, nint label, in NativePinOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "pinId", "type": "int" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativePinOpts" }], "summary": "cui_node_output_ex" }, { "name": "Number", "kind": "method", "id": "method|Number|1|0|byte|nint ui;nint id;ref double value;double min;double max;in NativeNumberOpts opts||h8dd3807fc82451dff355298afa82bd3d8d760f6aa9f4843c1afbf90c116722b4", "signature": "static byte Number(nint ui, nint id, ref double value, double min, double max, in NativeNumberOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref double" }, { "name": "min", "type": "double" }, { "name": "max", "type": "double" }, { "name": "opts", "type": "in NativeNumberOpts" }], "summary": "cui_number_ex" }, { "name": "OtpInput", "kind": "method", "id": "method|OtpInput|1|0|byte|nint ui;nint id;nint code;int length||h1d5f76d56771b0e941f76735b57fccf346364b04e9b6b30fc767d8c8b1a3373d", "signature": "static byte OtpInput(nint ui, nint id, nint code, int length)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "length", "type": "int" }], "summary": "cui_otp_input" }, { "name": "Pagination", "kind": "method", "id": "method|Pagination|1|0|byte|nint ui;nint id;ref int page;int pageCount||h9c6541597a311583fe7438c482c8224f55d8b6301216af97fb09d2b1b7c0dbc4", "signature": "static byte Pagination(nint ui, nint id, ref int page, int pageCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "page", "type": "ref int" }, { "name": "pageCount", "type": "int" }], "summary": "cui_pagination" }, { "name": "PathBarMenuBegin", "kind": "method", "id": "method|PathBarMenuBegin|1|0|byte|nint ui;nint id;ref int segment||h920519871dd34b39dc6f632fd5641a9c1fe9d2e1484743facc6341b86f2c90a4", "signature": "static byte PathBarMenuBegin(nint ui, nint id, ref int segment)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "segment", "type": "ref int" }], "summary": "cui_path_bar_menu_begin" }, { "name": "PathHasExtension", "kind": "method", "id": "method|PathHasExtension|1|0|byte|nint path;nint accept||h51473867a382392260bce03dcd8573965a7a41479b3d86ba74646ab4589e6839", "signature": "static byte PathHasExtension(nint path, nint accept)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "accept", "type": "nint" }], "summary": "cui_path_has_extension" }, { "name": "PopoverBegin", "kind": "method", "id": "method|PopoverBegin|1|0|byte|nint ui;nint id;in NativePopoverOpts opts||hf7b2799f846341c5588cdd893e7efea99901ef279d1c3689385c06ab0b3c2312", "signature": "static byte PopoverBegin(nint ui, nint id, in NativePopoverOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativePopoverOpts" }], "summary": "cui_popover_begin" }, { "name": "PopoverIsOpen", "kind": "method", "id": "method|PopoverIsOpen|1|0|byte|nint ui;nint id||h9af29adcf835a4877879bb5a326360b02b8b2db888492f0eeffdd9983f5fdd5e", "signature": "static byte PopoverIsOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_is_open" }, { "name": "PropBool", "kind": "method", "id": "method|PropBool|1|0|byte|nint ui;nint label;nint value;in NativePropOpts opts||h00756c3152ec3f53862faae2e0bf373d9e2e3c324e60827347892307afe460f6", "signature": "static byte PropBool(nint ui, nint label, nint value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_bool_ex" }, { "name": "PropColor", "kind": "method", "id": "method|PropColor|1|0|byte|nint ui;nint label;ref NativeColor value;in NativePropOpts opts||h97930e1593c9f3f948176eb0694ffbf4bb35e3ed3da460000a4985b7ab379333", "signature": "static byte PropColor(nint ui, nint label, ref NativeColor value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref NativeColor" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_color_ex" }, { "name": "PropEnum", "kind": "method", "id": "method|PropEnum|1|0|byte|nint ui;nint label;nint items;int count;ref int index;in NativePropOpts opts||hc25983cec08cc4d09953634b896fbda541bc2371db435897002a158aa7ccfb96", "signature": "static byte PropEnum(nint ui, nint label, nint items, int count, ref int index, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_enum_ex" }, { "name": "PropFloat", "kind": "method", "id": "method|PropFloat|1|0|byte|nint ui;nint label;ref float value;in NativePropOpts opts||he71b383273784a5057e7581fe417bf0b1982ba24f1a722d7c19dfbeda8447dd5", "signature": "static byte PropFloat(nint ui, nint label, ref float value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_float_ex" }, { "name": "PropInt", "kind": "method", "id": "method|PropInt|1|0|byte|nint ui;nint label;ref int value;in NativePropOpts opts||h5f2a28c9b5e8da8289424bf17db307be852cceb9edb2a35a223c89709c234b01", "signature": "static byte PropInt(nint ui, nint label, ref int value, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_int_ex" }, { "name": "PropText", "kind": "method", "id": "method|PropText|1|0|byte|nint ui;nint label;nint buf;nuint cap;in NativePropOpts opts||hd1c1ba855ea422da71f45b7f54b25eba0185da4756c1cfd3f84326ce7a5ea219", "signature": "static byte PropText(nint ui, nint label, nint buf, nuint cap, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_text_ex" }, { "name": "PropVec", "kind": "method", "id": "method|PropVec|1|0|byte|nint ui;nint label;ref float value;int components;in NativePropOpts opts||h86de2489ef65fd8442a3d0247ae840a33f6e3fcfbecbba07f586a9f869e29231", "signature": "static byte PropVec(nint ui, nint label, ref float value, int components, in NativePropOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "components", "type": "int" }, { "name": "opts", "type": "in NativePropOpts" }], "summary": "cui_prop_vec_ex" }, { "name": "QueryBuilder", "kind": "method", "id": "method|QueryBuilder|1|0|byte|nint ui;nint id;nint fields;int fieldCount;nint nodes;ref int count;int capacity;in NativeQueryOpts opts||h9e99d805b9400574ba394e2f6497a861baa88e0ba6b4a8e520aa819e41d38975", "signature": "static byte QueryBuilder(nint ui, nint id, nint fields, int fieldCount, nint nodes, ref int count, int capacity, in NativeQueryOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "ref int" }, { "name": "capacity", "type": "int" }, { "name": "opts", "type": "in NativeQueryOpts" }], "summary": "cui_query_builder_ex" }, { "name": "QueryMatch", "kind": "method", "id": "method|QueryMatch|1|0|byte|nint fields;int fieldCount;nint nodes;int count;nint values||h029c8a4faaccfacab37fbdf6a5e0cbdad3ec4789fe25a84c817b9b30b1a0c9d3", "signature": "static byte QueryMatch(nint fields, int fieldCount, nint nodes, int count, nint values)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }], "summary": "cui_query_match" }, { "name": "Radio", "kind": "method", "id": "method|Radio|1|0|byte|nint ui;nint label;ref int value;int option;in NativeCheckOpts opts||hcdcef5ad8085ac53ef4c7df825d71526f96787cbe7e0056fa365c0afe2d5ee48", "signature": "static byte Radio(nint ui, nint label, ref int value, int option, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "option", "type": "int" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_radio_ex" }, { "name": "RadioCards", "kind": "method", "id": "method|RadioCards|1|0|byte|nint ui;nint id;nint choices;int count;ref int index;in NativeRadioCardsOpts opts||h2fc7b0b667bf08b9f7ac97eaea453441474e71299379f834d802cf253d5781d5", "signature": "static byte RadioCards(nint ui, nint id, nint choices, int count, ref int index, in NativeRadioCardsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "choices", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeRadioCardsOpts" }], "summary": "cui_radio_cards_ex" }, { "name": "RadioGroup", "kind": "method", "id": "method|RadioGroup|1|0|byte|nint ui;nint id;nint items;int count;ref int index||h41fdeaf6779c042bf31b87c0f44e30b210b8c874a28e0273fb4c1badde4f41f1", "signature": "static byte RadioGroup(nint ui, nint id, nint items, int count, ref int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }], "summary": "cui_radio_group" }, { "name": "RangeCalendar", "kind": "method", "id": "method|RangeCalendar|1|0|byte|nint ui;nint id;ref NativeDateRange range;int months||h170335980cd92550862e1bf6633a11da9b020be711e236ecce1a60296fdf8c5a", "signature": "static byte RangeCalendar(nint ui, nint id, ref NativeDateRange range, int months)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "range", "type": "ref NativeDateRange" }, { "name": "months", "type": "int" }], "summary": "cui_range_calendar" }, { "name": "RangeSlider", "kind": "method", "id": "method|RangeSlider|1|0|byte|nint ui;nint label;ref float lo;ref float hi;float min;float max||h32f96bb5dbbbeefb9ddb110ad492e7e78912f7cc36806f9c027d16296a34ff63", "signature": "static byte RangeSlider(nint ui, nint label, ref float lo, ref float hi, float min, float max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "lo", "type": "ref float" }, { "name": "hi", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }], "summary": "cui_range_slider" }, { "name": "Rating", "kind": "method", "id": "method|Rating|1|0|byte|nint ui;nint id;ref int value;int max||h04004cebb5c1581168f84691d3658abaf8d40451dd82ca2ff535542955e396a3", "signature": "static byte Rating(nint ui, nint id, ref int value, int max)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "ref int" }, { "name": "max", "type": "int" }], "summary": "cui_rating" }, { "name": "ReasoningBegin", "kind": "method", "id": "method|ReasoningBegin|1|0|byte|nint ui;nint id;in NativeReasoningOpts opts||ha24ccd4e6415a9f80d7679fc60373a33e2e4979ed946fe51f20466c85714765b", "signature": "static byte ReasoningBegin(nint ui, nint id, in NativeReasoningOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeReasoningOpts" }], "summary": "cui_reasoning_begin" }, { "name": "ReorderEnd", "kind": "method", "id": "method|ReorderEnd|1|0|byte|nint ui||h52ff8179fcb274432849c6012a35f6479cf5b716aca5b93b2293b9ac61f63631", "signature": "static byte ReorderEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_end" }, { "name": "RulerSlider", "kind": "method", "id": "method|RulerSlider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeRulerOpts opts||h3d06261b67662650a9f462da7f534bd41b808c4cb0aed2d0d52ee4161f8b20d0", "signature": "static byte RulerSlider(nint ui, nint label, ref float value, float min, float max, in NativeRulerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRulerOpts" }], "summary": "cui_ruler_slider_ex" }, { "name": "Scrub", "kind": "method", "id": "method|Scrub|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeScrubOpts opts||hd488ae4441e78805976672ba9c7ab7dd5bd7bfce82c675683fa86ea3adaa4c00", "signature": "static byte Scrub(nint ui, nint label, ref float value, float min, float max, in NativeScrubOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeScrubOpts" }], "summary": "cui_scrub_ex" }, { "name": "Segmented", "kind": "method", "id": "method|Segmented|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSegmentedOpts opts||h07fbd0f03f7b9d2479970a93a825fb7854a583ea1fe82a108d6d5146138f8789", "signature": "static byte Segmented(nint ui, nint id, nint items, int count, ref int index, in NativeSegmentedOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSegmentedOpts" }], "summary": "cui_segmented_ex" }, { "name": "Select", "kind": "method", "id": "method|Select|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeSelectOpts opts||hc4cc1709b9bbacfdd0684ecb3db4fa731502a5cc6c03eadad82e4d691c403b4e", "signature": "static byte Select(nint ui, nint id, nint items, int count, ref int index, in NativeSelectOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeSelectOpts" }], "summary": "cui_select_ex" }, { "name": "SheetBegin", "kind": "method", "id": "method|SheetBegin|1|0|byte|nint ui;nint title;nint open;in NativeSheetOpts opts||h63513bae0643d65f342e309d1d5dd8742da4175344baeb0d2fdd1b8bc869d7bd", "signature": "static byte SheetBegin(nint ui, nint title, nint open, in NativeSheetOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeSheetOpts" }], "summary": "cui_sheet_begin" }, { "name": "Shortcut", "kind": "method", "id": "method|Shortcut|1|0|byte|nint ui;int mods;Key key||hd27db9793043c7739eb655fd479c45377af310b81113193e71c0cdcadcba8001", "signature": "static byte Shortcut(nint ui, int mods, Key key)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mods", "type": "int" }, { "name": "key", "type": "Key" }], "summary": "cui_shortcut" }, { "name": "ShortcutRecorder", "kind": "method", "id": "method|ShortcutRecorder|1|0|byte|nint ui;nint id;ref NativeKeyCombo combo;in NativeShortcutRecorderOpts opts||hbe04823b844ed3ff35a1a180f568892ebc52d0cb046997cd7c852b370dd58a2a", "signature": "static byte ShortcutRecorder(nint ui, nint id, ref NativeKeyCombo combo, in NativeShortcutRecorderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "combo", "type": "ref NativeKeyCombo" }, { "name": "opts", "type": "in NativeShortcutRecorderOpts" }], "summary": "cui_shortcut_recorder_ex" }, { "name": "SignaturePad", "kind": "method", "id": "method|SignaturePad|1|0|byte|nint ui;nint id;in NativeSignatureOpts opts||h3930868f0cb4d0c6dafbecf0ea3749ab6cde4dfae8fd98f814843a267000b9b6", "signature": "static byte SignaturePad(nint ui, nint id, in NativeSignatureOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSignatureOpts" }], "summary": "cui_signature_pad_ex" }, { "name": "Slider", "kind": "method", "id": "method|Slider|1|0|byte|nint ui;nint label;ref float value;float min;float max;in NativeSliderOpts opts||h578e587703e448688123d0b004b5c8aca34572c3f3351a481cddc7fc655425cc", "signature": "static byte Slider(nint ui, nint label, ref float value, float min, float max, in NativeSliderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "ref float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeSliderOpts" }], "summary": "cui_slider_ex" }, { "name": "StatusBarItem", "kind": "method", "id": "method|StatusBarItem|1|0|byte|nint ui;nint label;in NativeStatusItemOpts opts||h4790c555513598595f49e5d19ae07a5f8771dafa02a0285d7ce3a8e968abd2af", "signature": "static byte StatusBarItem(nint ui, nint label, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_item_ex" }, { "name": "StatusButton", "kind": "method", "id": "method|StatusButton|1|0|byte|nint ui;nint label;Status status;in NativeStatusButtonOpts opts||hbd6cdabc808f2abbd5e15ee20adc0f511c02054771b4253e14b383238529a1a3", "signature": "static byte StatusButton(nint ui, nint label, Status status, in NativeStatusButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "status", "type": "Status" }, { "name": "opts", "type": "in NativeStatusButtonOpts" }], "summary": "cui_status_button_ex" }, { "name": "SwLastDamage", "kind": "method", "id": "method|SwLastDamage|1|0|byte|nint r;ref int x;ref int y;ref int w;ref int h||h30233e8faa58656654e4f604218a579860dd2a7cb7bd6c5783181ae5c0625ad0", "signature": "static byte SwLastDamage(nint r, ref int x, ref int y, ref int w, ref int h)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "x", "type": "ref int" }, { "name": "y", "type": "ref int" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_sw_last_damage" }, { "name": "Switch", "kind": "method", "id": "method|Switch|1|0|byte|nint ui;nint label;nint value;in NativeCheckOpts opts||hc0a92c21627fec7195b958312e07a90e476a927d664950cd0c27890469716786", "signature": "static byte Switch(nint ui, nint label, nint value, in NativeCheckOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeCheckOpts" }], "summary": "cui_switch_ex" }, { "name": "TabBar", "kind": "method", "id": "method|TabBar|1|0|byte|nint ui;nint id;nint items;int count;ref int selected;in NativeTabBarOpts opts||h84a537ef295b05ec9a7875c20f88a0981f676e0519a819543ecd2cb53df679dd", "signature": "static byte TabBar(nint ui, nint id, nint items, int count, ref int selected, in NativeTabBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "selected", "type": "ref int" }, { "name": "opts", "type": "in NativeTabBarOpts" }], "summary": "cui_tab_bar_ex" }, { "name": "TableBegin", "kind": "method", "id": "method|TableBegin|1|0|byte|nint ui;nint id;nint columns;int columnCount;in NativeTableOpts opts||h813dd66787d9f3a118c5213b3c708d32a3f8b37e8f9b6d23892055c031061a91", "signature": "static byte TableBegin(nint ui, nint id, nint columns, int columnCount, in NativeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "opts", "type": "in NativeTableOpts" }], "summary": "cui_table_begin_ex" }, { "name": "TableRow", "kind": "method", "id": "method|TableRow|1|0|byte|nint ui;byte selected||h10abf29c8d0d297c4ae783e8573bf59af256507d548fed3846f6cb8d1e33af7f", "signature": "static byte TableRow(nint ui, byte selected)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "selected", "type": "byte" }], "summary": "cui_table_row" }, { "name": "Tabs", "kind": "method", "id": "method|Tabs|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeTabsOpts opts||h3f80b81e7e4481583c25cf0e2c4a863b9d3dc7ffcf927d6efaa5eecc40d72708", "signature": "static byte Tabs(nint ui, nint id, nint items, int count, ref int index, in NativeTabsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeTabsOpts" }], "summary": "cui_tabs_ex" }, { "name": "TagInput", "kind": "method", "id": "method|TagInput|1|0|byte|nint ui;nint id;nint buf;nuint cap;in NativeTagOpts opts||h770b3a4c31eea60fa381775eb2891a91e34ad5496273b9758511cc9495c5c5bc", "signature": "static byte TagInput(nint ui, nint id, nint buf, nuint cap, in NativeTagOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeTagOpts" }], "summary": "cui_tag_input_ex" }, { "name": "ThemeSwitcher", "kind": "method", "id": "method|ThemeSwitcher|1|0|byte|nint ui;ref int mode;byte withSystem||hca6a471cd4a87cc19eff3f9a4fadc50a73d523e83d0a773a344adbe1b0d04866", "signature": "static byte ThemeSwitcher(nint ui, ref int mode, byte withSystem)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "ref int" }, { "name": "withSystem", "type": "byte" }], "summary": "cui_theme_switcher" }, { "name": "ThemeToggle", "kind": "method", "id": "method|ThemeToggle|1|0|byte|nint ui||h4609d89e653a3baaef3cea4c9659df20b1303da3806ee0320fb59809f3fc6265", "signature": "static byte ThemeToggle(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_toggle" }, { "name": "TimeDial", "kind": "method", "id": "method|TimeDial|1|0|byte|nint ui;nint id;ref int hour;ref int minute;float size||hac05b892060233f70ac054ae631a05408fc9ed16c3e54e39475eeaee7a5752d7", "signature": "static byte TimeDial(nint ui, nint id, ref int hour, ref int minute, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "size", "type": "float" }], "summary": "cui_time_dial" }, { "name": "TimePicker", "kind": "method", "id": "method|TimePicker|1|0|byte|nint ui;nint id;ref int hour;ref int minute;in NativeTimeOpts opts||h76c1a6f222300c98ffc9ee66d84b4eab5447a305ed64bd77d24dd358dc4c225c", "signature": "static byte TimePicker(nint ui, nint id, ref int hour, ref int minute, in NativeTimeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "hour", "type": "ref int" }, { "name": "minute", "type": "ref int" }, { "name": "opts", "type": "in NativeTimeOpts" }], "summary": "cui_time_picker_ex" }, { "name": "ToastActionClicked", "kind": "method", "id": "method|ToastActionClicked|1|0|byte|nint ui;int handle||hc310181a49b561232fbe10a57b50969930e55cb20455bdd700c79f6c1d3cf32a", "signature": "static byte ToastActionClicked(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_action_clicked" }, { "name": "ToggleGroup", "kind": "method", "id": "method|ToggleGroup|1|0|byte|nint ui;nint id;nint labels;int count;nint values;in NativeToggleGroupOpts opts||h9bfed721c10f74f2140e62a76fe5591423ccc4e2e91b1106c38fc1b1869b9c88", "signature": "static byte ToggleGroup(nint ui, nint id, nint labels, int count, nint values, in NativeToggleGroupOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "values", "type": "nint" }, { "name": "opts", "type": "in NativeToggleGroupOpts" }], "summary": "cui_toggle_group_ex" }, { "name": "ToolbarButton", "kind": "method", "id": "method|ToolbarButton|1|0|byte|nint ui;nint icon;in NativeToolOpts opts||h994afb837ec2079774d6535e3a3cb0d1881de0153fe23fc39186b0605a2cb2da", "signature": "static byte ToolbarButton(nint ui, nint icon, in NativeToolOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "opts", "type": "in NativeToolOpts" }], "summary": "cui_toolbar_button_ex" }, { "name": "TreeBegin", "kind": "method", "id": "method|TreeBegin|1|0|byte|nint ui;nint label;nint open;in NativeTreeOpts opts||hebd9789f6109d185bae7dcc7dea5d5ef0a57172e5fbb10bd0bff64c10944485e", "signature": "static byte TreeBegin(nint ui, nint label, nint open, in NativeTreeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "opts", "type": "in NativeTreeOpts" }], "summary": "cui_tree_begin" }, { "name": "TreeCell", "kind": "method", "id": "method|TreeCell|1|0|byte|nint ui;nint label;int depth;byte hasChildren;nint open;nint icon||h92fbcfdc4fbc2346e13caf9792c234af2e9a400f3d4ebb54ad1a8eff50cb83ab", "signature": "static byte TreeCell(nint ui, nint label, int depth, byte hasChildren, nint open, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "depth", "type": "int" }, { "name": "hasChildren", "type": "byte" }, { "name": "open", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_cell" }, { "name": "TreeClicked", "kind": "method", "id": "method|TreeClicked|1|0|byte|nint ui||hd91dfe2b074aa7b109f468e8b4040c694aef31ff296cba3699a36fe57032280a", "signature": "static byte TreeClicked(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_clicked" }, { "name": "Typewriter", "kind": "method", "id": "method|Typewriter|1|0|byte|nint ui;nint id;nint text;in NativeTextFxOpts opts||h7fb0abddf731ca6f9ade4f67404605f67cc2bbeca56950e6b83ec10b732cc13a", "signature": "static byte Typewriter(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_typewriter_ex" }, { "name": "UrlSetParams", "kind": "method", "id": "method|UrlSetParams|1|0|byte|nint url;nuint cap;nint pairs;int count||hc0576428de8a5e20674dd0ecdfe704641f86a7c317e52d5d3c5a26126e5b907d", "signature": "static byte UrlSetParams(nint url, nuint cap, nint pairs, int count)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "pairs", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_url_set_params" }, { "name": "UserMenuBegin", "kind": "method", "id": "method|UserMenuBegin|1|0|byte|nint ui;nint name;in NativeUserMenuOpts opts||hb48d59d99a73868669d0b331ec83192210a0c833e3988ef13eda6fb5658c27a4", "signature": "static byte UserMenuBegin(nint ui, nint name, in NativeUserMenuOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeUserMenuOpts" }], "summary": "cui_user_menu_begin" }, { "name": "VoiceOrb", "kind": "method", "id": "method|VoiceOrb|1|0|byte|nint ui;nint id;VoiceState state;float level;in NativeVoiceOrbOpts opts||h93f6b3e912f2a6852d94df96ec4a2f9302788d4dd152171fe341f961c7b04563", "signature": "static byte VoiceOrb(nint ui, nint id, VoiceState state, float level, in NativeVoiceOrbOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "state", "type": "VoiceState" }, { "name": "level", "type": "float" }, { "name": "opts", "type": "in NativeVoiceOrbOpts" }], "summary": "cui_voice_orb_ex" }, { "name": "WantsKeyboard", "kind": "method", "id": "method|WantsKeyboard|1|0|byte|nint ui||hf239c9950a859c2b1ee4d96bd406f245de4535bec30ad74ba5dc5886536c1718", "signature": "static byte WantsKeyboard(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_keyboard" }, { "name": "WantsMouse", "kind": "method", "id": "method|WantsMouse|1|0|byte|nint ui||h43a7d8c4da0674c3b57b4bbff09e3dc88bc0b56f3d7496e133fbdf99b6439585", "signature": "static byte WantsMouse(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_wants_mouse" }, { "name": "Waveform", "kind": "method", "id": "method|Waveform|1|0|byte|nint ui;nint id;nint peaks;int count;ref float progress;in NativeWaveformOpts opts||hde8136d458f7da0d7a74fe40a2f5009959fe7d3a370e498fe9d7bf29214ded9a", "signature": "static byte Waveform(nint ui, nint id, nint peaks, int count, ref float progress, in NativeWaveformOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "peaks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "progress", "type": "ref float" }, { "name": "opts", "type": "in NativeWaveformOpts" }], "summary": "cui_waveform_ex" }, { "name": "WheelPicker", "kind": "method", "id": "method|WheelPicker|1|0|byte|nint ui;nint id;nint items;int count;ref int index;in NativeWheelOpts opts||hf3c3b0182f87f1b680f739b50bb8d87c9cabfee03586951ac62bf65b871448ef", "signature": "static byte WheelPicker(nint ui, nint id, nint items, int count, ref int index, in NativeWheelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "index", "type": "ref int" }, { "name": "opts", "type": "in NativeWheelOpts" }], "summary": "cui_wheel_picker_ex" }, { "name": "WritePng", "kind": "method", "id": "method|WritePng|1|0|byte|nint path;nint rgba;int width;int height;int stride||h85e643ea1e51d20a5fdccd30c3478c4965e2c38118937188e217dd742b1b2308", "signature": "static byte WritePng(nint path, nint rgba, int width, int height, int stride)", "parameters": [{ "name": "path", "type": "nint" }, { "name": "rgba", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }], "summary": "cui_write_png" }, { "name": "Time", "kind": "method", "id": "method|Time|1|0|double|nint ui||hb2f1ad77b6f92fa1a452bb4566892538d32ec9562aa9a5dbf0d51f163236ee63", "signature": "static double Time(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_time" }, { "name": "Animate", "kind": "method", "id": "method|Animate|1|0|float|nint ui;uint id;float target||h783081c7165f6473b03c87976bf42bd71bb8dba6a771cc8e726a95e9b31185e5", "signature": "static float Animate(nint ui, uint id, float target)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }], "summary": "cui_animate" }, { "name": "AnimateSpring", "kind": "method", "id": "method|AnimateSpring|1|0|float|nint ui;uint id;float target;float duration;float bounce||haadb48d9ac3326b48d979e354207d7fe478973a6fbc31ca176c063059ee82e70", "signature": "static float AnimateSpring(nint ui, uint id, float target, float duration, float bounce)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "target", "type": "float" }, { "name": "duration", "type": "float" }, { "name": "bounce", "type": "float" }], "summary": "cui_animate_spring" }, { "name": "CurveEval", "kind": "method", "id": "method|CurveEval|1|0|float|nint keys;int count;float x||ha777fdac9157752521a46d103b76d33d1192ee259722b6dea4faf21e203b3d94", "signature": "static float CurveEval(nint keys, int count, float x)", "parameters": [{ "name": "keys", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }], "summary": "cui_curve_eval" }, { "name": "DeltaTime", "kind": "method", "id": "method|DeltaTime|1|0|float|nint ui||h6ee192edd9536831c0243d007d39a8bf5a8f54a0151b686bc63099af3951e2db", "signature": "static float DeltaTime(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_delta_time" }, { "name": "DpiScale", "kind": "method", "id": "method|DpiScale|1|0|float|nint ui||h634ef8f8003d098e28306a7d54dcf08d6cf9a3c70bd47e93dcfc9e6237125047", "signature": "static float DpiScale(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dpi_scale" }, { "name": "NextWakeup", "kind": "method", "id": "method|NextWakeup|1|0|float|nint ui||heaa3059e89c281cf8618ccc70329affe44629f9bfd94615949690fb4265bbc46", "signature": "static float NextWakeup(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_next_wakeup" }, { "name": "ActivityRings", "kind": "method", "id": "method|ActivityRings|1|0|int|nint ui;nint id;nint rings;int count;in NativeRingsOpts opts||hfab99a08b98a1a46a19500c9dc566de59336b84686e088b3b08aa493b5bfb5f1", "signature": "static int ActivityRings(nint ui, nint id, nint rings, int count, in NativeRingsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rings", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeRingsOpts" }], "summary": "cui_activity_rings_ex" }, { "name": "AgentPlan", "kind": "method", "id": "method|AgentPlan|1|0|int|nint ui;nint id;nint steps;int count;in NativeAgentPlanOpts opts||h783bd47ee92e5be4ecf611f1b10dcce34680176116584cb837c3d63ece939fc8", "signature": "static int AgentPlan(nint ui, nint id, nint steps, int count, in NativeAgentPlanOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeAgentPlanOpts" }], "summary": "cui_agent_plan_ex" }, { "name": "AppRun", "kind": "method", "id": "method|AppRun|1|0|int|in NativeAppDesc desc;nint frame;nint user||h5b274bb4d7f996aa456c048eb630e0e5d79c988ae23fb56e20e90dae2e8d2ff9", "signature": "static int AppRun(in NativeAppDesc desc, nint frame, nint user)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }, { "name": "frame", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_app_run" }, { "name": "AvatarUpload", "kind": "method", "id": "method|AvatarUpload|1|0|int|nint ui;nint id;nint name;ref nuint image;float size||h5fd1064396ca10dd1719ccec083429b0c356210c39e3ce7cc0cd28642b6b2c70", "signature": "static int AvatarUpload(nint ui, nint id, nint name, ref nuint image, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "image", "type": "ref nuint" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_upload" }, { "name": "BarList", "kind": "method", "id": "method|BarList|1|0|int|nint ui;nint id;nint items;int count;in NativeBarListOpts opts||h38c11ff449d272606355ff091085f89c94306998c17998930106f4560b27dea7", "signature": "static int BarList(nint ui, nint id, nint items, int count, in NativeBarListOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeBarListOpts" }], "summary": "cui_bar_list_ex" }, { "name": "Breadcrumb", "kind": "method", "id": "method|Breadcrumb|1|0|int|nint ui;nint items;int count||h63c8fc446537769f774a935e4558c83571acc23d75274e5d703a72ce1523fe85", "signature": "static int Breadcrumb(nint ui, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_breadcrumb" }, { "name": "CalendarHeatmap", "kind": "method", "id": "method|CalendarHeatmap|1|0|int|nint ui;nint id;NativeDate start;nint values;int days;in NativeCalendarHeatmapOpts opts||hc23599f375fea1dfd07e8380e49bd8fac1279ab8e2e5d142291dd4196e1fafa3", "signature": "static int CalendarHeatmap(nint ui, nint id, NativeDate start, nint values, int days, in NativeCalendarHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "start", "type": "NativeDate" }, { "name": "values", "type": "nint" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeCalendarHeatmapOpts" }], "summary": "cui_calendar_heatmap_ex" }, { "name": "Candlestick", "kind": "method", "id": "method|Candlestick|1|0|int|nint ui;nint id;nint candles;int count;in NativeCandlestickOpts opts||ha23000c433513bc9358604c3881de3ea161c7d64c66e39fc7756d310c341ad95", "signature": "static int Candlestick(nint ui, nint id, nint candles, int count, in NativeCandlestickOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "candles", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCandlestickOpts" }], "summary": "cui_candlestick_ex" }, { "name": "CardStackEnd", "kind": "method", "id": "method|CardStackEnd|1|0|int|nint ui||hf8bca440238fade3f7ea582ac1602ee0127f53a72ac52ee2411e8f8aaf5686d8", "signature": "static int CardStackEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_end" }, { "name": "ChatComposer", "kind": "method", "id": "method|ChatComposer|1|0|int|nint ui;nint id;nint buf;nuint cap;in NativeComposerOpts opts||h0d83db53b76632a1fc4d48dd72406263140ececde44c22bc339467a5acb583ca", "signature": "static int ChatComposer(nint ui, nint id, nint buf, nuint cap, in NativeComposerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeComposerOpts" }], "summary": "cui_chat_composer_ex" }, { "name": "Checklist", "kind": "method", "id": "method|Checklist|1|0|int|nint ui;nint id;nint steps;int count;in NativeChecklistOpts opts||hdba0108e3588df0823f7df8666b548f9fb5aec5772f65711074a08a7380e60f8", "signature": "static int Checklist(nint ui, nint id, nint steps, int count, in NativeChecklistOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChecklistOpts" }], "summary": "cui_checklist_ex" }, { "name": "CommandPalette", "kind": "method", "id": "method|CommandPalette|1|0|int|nint ui;nint open;nint commands;int count||hd92303b12ad508c387686648ab58b2eddf7ba0e5c16ecb04f912944ea3c865d7", "signature": "static int CommandPalette(nint ui, nint open, nint commands, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "open", "type": "nint" }, { "name": "commands", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_command_palette" }, { "name": "Comment", "kind": "method", "id": "method|Comment|1|0|int|nint ui;nint id;nint author;nint text;in NativeCommentOpts opts||hdd03cdb9d470cd5bf5dfd06ad2a88b6454a330709bd3321ca9b851600542d1e5", "signature": "static int Comment(nint ui, nint id, nint author, nint text, in NativeCommentOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "author", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeCommentOpts" }], "summary": "cui_comment_ex" }, { "name": "DateToDays", "kind": "method", "id": "method|DateToDays|1|0|int|NativeDate d||hb0dad71dec46af8c99d25fcad3b990e1cf144e3e1a5ee8bc6add3ecdca7e5e6b", "signature": "static int DateToDays(NativeDate d)", "parameters": [{ "name": "d", "type": "NativeDate" }], "summary": "cui_date_to_days" }, { "name": "DiffCompute", "kind": "method", "id": "method|DiffCompute|1|0|int|nint oldText;nuint oldLen;nint newText;nuint newLen;uint flags;nint hunks;int cap;nint stats||h82ddb4b348995156267eb2bef2eae0291066bdc321677b8c61be53c7eab5aad1", "signature": "static int DiffCompute(nint oldText, nuint oldLen, nint newText, nuint newLen, uint flags, nint hunks, int cap, nint stats)", "parameters": [{ "name": "oldText", "type": "nint" }, { "name": "oldLen", "type": "nuint" }, { "name": "newText", "type": "nint" }, { "name": "newLen", "type": "nuint" }, { "name": "flags", "type": "uint" }, { "name": "hunks", "type": "nint" }, { "name": "cap", "type": "int" }, { "name": "stats", "type": "nint" }], "summary": "cui_diff_compute" }, { "name": "DiffViewRows", "kind": "method", "id": "method|DiffViewRows|1|0|int|nint ui;nint id;nint rows;int first;int cap||h1c7aade1dc1cf7abe185f6b4cc3cfa64e49ade089a1fc6d704e67924616863fd", "signature": "static int DiffViewRows(nint ui, nint id, nint rows, int first, int cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "rows", "type": "nint" }, { "name": "first", "type": "int" }, { "name": "cap", "type": "int" }], "summary": "cui_diff_view_rows" }, { "name": "DroppedFileCount", "kind": "method", "id": "method|DroppedFileCount|1|0|int|nint ui||h6b75c3c22dbbb1f2ce9ee98bd11d91fbbaf2729d2d06380e850cf9b5fd8ba0e5", "signature": "static int DroppedFileCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dropped_file_count" }, { "name": "Dropzone", "kind": "method", "id": "method|Dropzone|1|0|int|nint ui;nint id;in NativeDropzoneOpts opts||h7d55496ae62b3bf291f2e1623067e800421a125a3441fbd4b22bd9880aebf298", "signature": "static int Dropzone(nint ui, nint id, in NativeDropzoneOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDropzoneOpts" }], "summary": "cui_dropzone_ex" }, { "name": "FsList", "kind": "method", "id": "method|FsList|1|0|int|nint user;nint path;ref NativeFileEntry out;int cap;nint names;nuint namesCap;byte hidden||hd5649b458090896f6f4fbe09028211015d616bc8d57d5b7d15d708aebc4b6edf", "signature": "static int FsList(nint user, nint path, ref NativeFileEntry @out, int cap, nint names, nuint namesCap, byte hidden)", "parameters": [{ "name": "user", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "out", "type": "ref NativeFileEntry" }, { "name": "cap", "type": "int" }, { "name": "names", "type": "nint" }, { "name": "namesCap", "type": "nuint" }, { "name": "hidden", "type": "byte" }], "summary": "cui_fs_list" }, { "name": "Funnel", "kind": "method", "id": "method|Funnel|1|0|int|nint ui;nint id;nint stages;int count;in NativeFunnelOpts opts||h5da5cae7c9d4360a84a6d41280b3d14dc41d9b0d80485581d03d051408bdc6f0", "signature": "static int Funnel(nint ui, nint id, nint stages, int count, in NativeFunnelOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "stages", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeFunnelOpts" }], "summary": "cui_funnel_ex" }, { "name": "Gantt", "kind": "method", "id": "method|Gantt|1|0|int|nint ui;nint id;nint tasks;int count;NativeDate origin;int days;in NativeGanttOpts opts||hc253df918bb421e7723ead0a131a534d65e811db10c12d19569f79ca874ef106", "signature": "static int Gantt(nint ui, nint id, nint tasks, int count, NativeDate origin, int days, in NativeGanttOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "tasks", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "origin", "type": "NativeDate" }, { "name": "days", "type": "int" }, { "name": "opts", "type": "in NativeGanttOpts" }], "summary": "cui_gantt_ex" }, { "name": "Heatmap", "kind": "method", "id": "method|Heatmap|1|0|int|nint ui;nint id;nint values;int rows;int cols;in NativeHeatmapOpts opts||h4df783b0c75a2cc42ad921f03a3a1e2694072d72a3a65780abd6d65acdb7f3fd", "signature": "static int Heatmap(nint ui, nint id, nint values, int rows, int cols, in NativeHeatmapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "rows", "type": "int" }, { "name": "cols", "type": "int" }, { "name": "opts", "type": "in NativeHeatmapOpts" }], "summary": "cui_heatmap_ex" }, { "name": "InlineEdit", "kind": "method", "id": "method|InlineEdit|1|0|int|nint ui;nint id;nint buf;nuint cap;in NativeInlineEditOpts opts||hccdf1e7bb740c0ba86c761bc926887dbf86ce6f5ec79a2780c0322e2e37c736d", "signature": "static int InlineEdit(nint ui, nint id, nint buf, nuint cap, in NativeInlineEditOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeInlineEditOpts" }], "summary": "cui_inline_edit_ex" }, { "name": "Input", "kind": "method", "id": "method|Input|1|0|int|nint ui;nint id;nint buf;nuint cap;in NativeInputOpts opts||had2ed9e86f3f40ca5c2e77ab62a2b0ee00eebe31d56f728629d93e0007859326", "signature": "static int Input(nint ui, nint id, nint buf, nuint cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_input_ex" }, { "name": "KeyMods", "kind": "method", "id": "method|KeyMods|1|0|int|nint ui||h293d80845300d58f2995a5510e21c1111fca0df2e690ba98a8a8d63d903fbeb5", "signature": "static int KeyMods(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_key_mods" }, { "name": "NowPlaying", "kind": "method", "id": "method|NowPlaying|1|0|int|nint ui;nint id;ref NativeNowPlaying np;in NativeNowPlayingOpts opts||h3305da350f9305ad71c56ecfc831c7c04162ba1bc05e8da67efa84f26e701d7f", "signature": "static int NowPlaying(nint ui, nint id, ref NativeNowPlaying np, in NativeNowPlayingOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "np", "type": "ref NativeNowPlaying" }, { "name": "opts", "type": "in NativeNowPlayingOpts" }], "summary": "cui_now_playing_ex" }, { "name": "PasswordStrength", "kind": "method", "id": "method|PasswordStrength|1|0|int|nint ui;nint password||h296f8bc019e9a78a40862348b6ef154911727f24b96d3ce53528bf23cef3905a", "signature": "static int PasswordStrength(nint ui, nint password)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "password", "type": "nint" }], "summary": "cui_password_strength" }, { "name": "PromptSuggestions", "kind": "method", "id": "method|PromptSuggestions|1|0|int|nint ui;nint id;nint items;int count;in NativePromptSuggestionsOpts opts||h39cb0ee93a2df36c51cfb2d9a4e30d06e4b34a4e8cd1c660fe0ae0bcd00797fa", "signature": "static int PromptSuggestions(nint ui, nint id, nint items, int count, in NativePromptSuggestionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativePromptSuggestionsOpts" }], "summary": "cui_prompt_suggestions_ex" }, { "name": "RadarChart", "kind": "method", "id": "method|RadarChart|1|0|int|nint ui;nint id;nint series;int count;nint axes;int axisCount;in NativeRadarOpts opts||h06cae4d94cc306c429feaef1500dc5b79741ac577050107bd413b612a5a4205b", "signature": "static int RadarChart(nint ui, nint id, nint series, int count, nint axes, int axisCount, in NativeRadarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "axes", "type": "nint" }, { "name": "axisCount", "type": "int" }, { "name": "opts", "type": "in NativeRadarOpts" }], "summary": "cui_radar_chart_ex" }, { "name": "Reactions", "kind": "method", "id": "method|Reactions|1|0|int|nint ui;nint id;nint items;int count||h143216460130bd0a205a3323a055f03e662c39c9993e057c4a7be569e363e3e4", "signature": "static int Reactions(nint ui, nint id, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_reactions" }, { "name": "RegexSearch", "kind": "method", "id": "method|RegexSearch|1|0|int|nint pattern;int flags;nint text;int len;int from;ref NativeRegexMatch m;nint error||h72d881084b53fb08b98d00025e7a3aa54591c236a477a81dec5980fdd339b3a2", "signature": "static int RegexSearch(nint pattern, int flags, nint text, int len, int from, ref NativeRegexMatch m, nint error)", "parameters": [{ "name": "pattern", "type": "nint" }, { "name": "flags", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "from", "type": "int" }, { "name": "m", "type": "ref NativeRegexMatch" }, { "name": "error", "type": "nint" }], "summary": "cui_regex_search" }, { "name": "ResponseActions", "kind": "method", "id": "method|ResponseActions|1|0|int|nint ui;nint id;in NativeResponseActionsOpts opts||hf0045bf0fe8346d68d3e858a4d4fd84158f1d7b3705a5b21433eb294b616ad2d", "signature": "static int ResponseActions(nint ui, nint id, in NativeResponseActionsOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeResponseActionsOpts" }], "summary": "cui_response_actions_ex" }, { "name": "Sankey", "kind": "method", "id": "method|Sankey|1|0|int|nint ui;nint id;nint nodes;int nodeCount;nint links;int linkCount;in NativeSankeyOpts opts||hd7ee09dc37ead6c7726c9f6e58362252feb879f0f2a23e2b42b5ad14fb4cf537", "signature": "static int Sankey(nint ui, nint id, nint nodes, int nodeCount, nint links, int linkCount, in NativeSankeyOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "links", "type": "nint" }, { "name": "linkCount", "type": "int" }, { "name": "opts", "type": "in NativeSankeyOpts" }], "summary": "cui_sankey_ex" }, { "name": "ScatterChart", "kind": "method", "id": "method|ScatterChart|1|0|int|nint ui;nint id;nint series;int count;in NativeScatterOpts opts||hb705f85ec95b21fc19db4370c4a67ef8c487d162f3f505dcc1dd6fd9e348f603", "signature": "static int ScatterChart(nint ui, nint id, nint series, int count, in NativeScatterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeScatterOpts" }], "summary": "cui_scatter_chart_ex" }, { "name": "Search", "kind": "method", "id": "method|Search|1|0|int|nint ui;nint id;nint buf;nuint cap;in NativeInputOpts opts||hec35c305c318680f13baf5b94c7ece8717d2ed4f3939142db7c29e2383a8de54", "signature": "static int Search(nint ui, nint id, nint buf, nuint cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_search_ex" }, { "name": "SignaturePoints", "kind": "method", "id": "method|SignaturePoints|1|0|int|nint ui;nint id;nint points;nint strokeEnds;ref int strokeCount||h4c2f8ff2aa2236c71ac5c2e55e5c4fdf8cd9f1ba3b97c9da2fe3262b3c0283b1", "signature": "static int SignaturePoints(nint ui, nint id, nint points, nint strokeEnds, ref int strokeCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "strokeEnds", "type": "nint" }, { "name": "strokeCount", "type": "ref int" }], "summary": "cui_signature_points" }, { "name": "SourceList", "kind": "method", "id": "method|SourceList|1|0|int|nint ui;nint id;nint sources;int count||h173d8ddb8e06588e29b9b6561cae327c824de30f3eeac0263ad449aae20a4ff5", "signature": "static int SourceList(nint ui, nint id, nint sources, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "sources", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_source_list" }, { "name": "SpeedDial", "kind": "method", "id": "method|SpeedDial|1|0|int|nint ui;nint id;nint actions;int count;in NativeSpeedDialOpts opts||h589b0efb656624188f68c92733ef84b7e64202167ff454647d6b39f7a6f5146f", "signature": "static int SpeedDial(nint ui, nint id, nint actions, int count, in NativeSpeedDialOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "actions", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSpeedDialOpts" }], "summary": "cui_speed_dial_ex" }, { "name": "SplitBar", "kind": "method", "id": "method|SplitBar|1|0|int|nint ui;nint id;nint items;int count;in NativeSplitBarOpts opts||h97364f98499ce83e79a8207d604d42304a76619dccbb7e144242711cd7feefe0", "signature": "static int SplitBar(nint ui, nint id, nint items, int count, in NativeSplitBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitBarOpts" }], "summary": "cui_split_bar_ex" }, { "name": "SplitButton", "kind": "method", "id": "method|SplitButton|1|0|int|nint ui;nint label;nint items;int count;in NativeSplitButtonOpts opts||h331bb07f0620c9a28f4f5de29ae68a66b96a56a79d295f7f529aecf5476464a4", "signature": "static int SplitButton(nint ui, nint label, nint items, int count, in NativeSplitButtonOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeSplitButtonOpts" }], "summary": "cui_split_button_ex" }, { "name": "SwipeItemEnd", "kind": "method", "id": "method|SwipeItemEnd|1|0|int|nint ui||h5bd4f1ea033d2888651ca8ea05a6e9ca8f4ff11e33d9ecce300b4141f39e6311", "signature": "static int SwipeItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_swipe_item_end" }, { "name": "Textarea", "kind": "method", "id": "method|Textarea|1|0|int|nint ui;nint id;nint buf;nuint cap;in NativeInputOpts opts||h039644aa55c787cc40104a4f00e3e729b4cf1284c577cc6f3455cbbc16f963aa", "signature": "static int Textarea(nint ui, nint id, nint buf, nuint cap, in NativeInputOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }, { "name": "opts", "type": "in NativeInputOpts" }], "summary": "cui_textarea_ex" }, { "name": "Toast", "kind": "method", "id": "method|Toast|1|0|int|nint ui;nint title;in NativeToastOpts opts||h13689b750de406a3341573c925e1a79dc5c11ea4aeb2cf3aad8fe0526dd629f7", "signature": "static int Toast(nint ui, nint title, in NativeToastOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeToastOpts" }], "summary": "cui_toast_ex" }, { "name": "Toc", "kind": "method", "id": "method|Toc|1|0|int|nint ui;nint scrollId;nint items;int count||h1230ef692ba1345b1fbff1069d5f78b9a0a304715bed3abbaee1e82ceb24a4cb", "signature": "static int Toc(nint ui, nint scrollId, nint items, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_toc" }, { "name": "Tour", "kind": "method", "id": "method|Tour|1|0|int|nint ui;nint id;nint steps;int count;ref int step;in NativeTourOpts opts||h28473eff703cdbd0694b161e355986bc70e34dc0659fc87a6119eb709b790561", "signature": "static int Tour(nint ui, nint id, nint steps, int count, ref int step, in NativeTourOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "step", "type": "ref int" }, { "name": "opts", "type": "in NativeTourOpts" }], "summary": "cui_tour_ex" }, { "name": "TreeSort", "kind": "method", "id": "method|TreeSort|1|0|int|nint nodes;int nodeCount;int root;nint cmp;nint user||h79bd46996209a0fd369858d15348bb23447681cc8b613944658f76ba8529d25c", "signature": "static int TreeSort(nint nodes, int nodeCount, int root, nint cmp, nint user)", "parameters": [{ "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "root", "type": "int" }, { "name": "cmp", "type": "nint" }, { "name": "user", "type": "nint" }], "summary": "cui_tree_sort" }, { "name": "TreeTableDepth", "kind": "method", "id": "method|TreeTableDepth|1|0|int|nint ui||hc408f5ee6df386b4c209cc868243614a0ed9d7c32fb85223d03be490a22102dc", "signature": "static int TreeTableDepth(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_depth" }, { "name": "TreeTableRow", "kind": "method", "id": "method|TreeTableRow|1|0|int|nint ui||h9f2f1f1e2af816caaefbd73d6eb5c028cf4ca05ce516a6861b821ab370909f09", "signature": "static int TreeTableRow(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_table_row" }, { "name": "Treemap", "kind": "method", "id": "method|Treemap|1|0|int|nint ui;nint id;nint items;int count;in NativeTreemapOpts opts||hc1888700abb5f35fb2ed06350215c4685126a96420dc7007fe9df21a5d90613c", "signature": "static int Treemap(nint ui, nint id, nint items, int count, in NativeTreemapOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTreemapOpts" }], "summary": "cui_treemap_ex" }, { "name": "UrlParams", "kind": "method", "id": "method|UrlParams|1|0|int|nint url;nint pairs;int cap||h4a23f39a17798b564160832286c89313233b789ff2c9d29b58ff79e7c2856e40", "signature": "static int UrlParams(nint url, nint pairs, int cap)", "parameters": [{ "name": "url", "type": "nint" }, { "name": "pairs", "type": "nint" }, { "name": "cap", "type": "int" }], "summary": "cui_url_params" }, { "name": "Waffle", "kind": "method", "id": "method|Waffle|1|0|int|nint ui;nint id;nint items;int count;in NativeWaffleOpts opts||h91d5a6b00273ece9452eeaeb494d083c353c673614d055269b1169331a6b4ae4", "signature": "static int Waffle(nint ui, nint id, nint items, int count, in NativeWaffleOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWaffleOpts" }], "summary": "cui_waffle_ex" }, { "name": "WeekCalendar", "kind": "method", "id": "method|WeekCalendar|1|0|int|nint ui;nint id;NativeDate weekStart;nint events;int count;in NativeWeekOpts opts||hbb095a1e64e8bbd711e67c7cfcdb9a58e9f785211803178c11cd6f1bf8b7b015", "signature": "static int WeekCalendar(nint ui, nint id, NativeDate weekStart, nint events, int count, in NativeWeekOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "weekStart", "type": "NativeDate" }, { "name": "events", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeWeekOpts" }], "summary": "cui_week_calendar_ex" }, { "name": "AccentName", "kind": "method", "id": "method|AccentName|1|0|nint|Accent accent||h706d6dd77c55c7ddda285af111782b2f11f32d8769bbf2cb681be21d5ac8ada9", "signature": "static nint AccentName(Accent accent)", "parameters": [{ "name": "accent", "type": "Accent" }], "summary": "cui_accent_name" }, { "name": "AppBackend", "kind": "method", "id": "method|AppBackend|1|0|nint|nint app||h52b17123ad3c9d4bd9d419ef74b1e518ec62cddbbec3c96e735713a188ef3647", "signature": "static nint AppBackend(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_backend" }, { "name": "AppCreate", "kind": "method", "id": "method|AppCreate|1|0|nint|in NativeAppDesc desc||h35637a56c67acf9c38029480b98d63c25370c8a38b76ad57061048a14e7b3835", "signature": "static nint AppCreate(in NativeAppDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeAppDesc" }], "summary": "cui_app_create" }, { "name": "AppNativeWindow", "kind": "method", "id": "method|AppNativeWindow|1|0|nint|nint app||h64a22aaf8ee82f2330b25966dcae3689117de90e79ce550123e6d8e3ac44b8a3", "signature": "static nint AppNativeWindow(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_native_window" }, { "name": "AppUi", "kind": "method", "id": "method|AppUi|1|0|nint|nint app||h181845c0c76d32f823bb1ae6e8b1ac2ffa8da1e9507fababe6aacd5b36ca8787", "signature": "static nint AppUi(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_ui" }, { "name": "Create", "kind": "method", "id": "method|Create|1|0|nint|in NativeCtxDesc desc||h4eb43e2edd735d5e2a219bc13dd5e7e88e8991d095f239299ba4c8d1e1becdb7", "signature": "static nint Create(in NativeCtxDesc desc)", "parameters": [{ "name": "desc", "type": "in NativeCtxDesc" }], "summary": "cui_create" }, { "name": "CronDescribe", "kind": "method", "id": "method|CronDescribe|1|0|nint|nint ui;nint cron||h786e314b78b7a1d02be17656e35b267435a967dc15aee3127a55a4c392f0761b", "signature": "static nint CronDescribe(nint ui, nint cron)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "cron", "type": "nint" }], "summary": "cui_cron_describe" }, { "name": "DroppedFile", "kind": "method", "id": "method|DroppedFile|1|0|nint|nint ui;int index||h47fbe595a1de4b0d7c2064f6bac755f6564e54de2ce919af26ca16d376f3a004", "signature": "static nint DroppedFile(nint ui, int index)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "index", "type": "int" }], "summary": "cui_dropped_file" }, { "name": "EmojiPicker", "kind": "method", "id": "method|EmojiPicker|1|0|nint|nint ui;nint id;in NativeEmojiPickerOpts opts||hd4a4fecb1d681bd9183b353fd4fcdfe846f9ec3cc23071692271717d065d270e", "signature": "static nint EmojiPicker(nint ui, nint id, in NativeEmojiPickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeEmojiPickerOpts" }], "summary": "cui_emoji_picker_ex" }, { "name": "GetDrawData", "kind": "method", "id": "method|GetDrawData|1|0|nint|nint ui||h556e604418b97276b8abf660206d9ef57103fe5e6ce1b2e1b6830472e86d11d1", "signature": "static nint GetDrawData(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_draw_data" }, { "name": "GetStrings", "kind": "method", "id": "method|GetStrings|1|0|nint|nint ui||h76f1e0d35595d1e771ffc072c6754f0a77374e2794e542b92996eba3e6da5ab6", "signature": "static nint GetStrings(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_get_strings" }, { "name": "GlCreate", "kind": "method", "id": "method|GlCreate|1|0|nint|nint loader||haf2665bd70b61421a86f653e37f52a7a893a83f60b653d37f28c47443757d28c", "signature": "static nint GlCreate(nint loader)", "parameters": [{ "name": "loader", "type": "nint" }], "summary": "cui_gl_create" }, { "name": "HttpMethodName", "kind": "method", "id": "method|HttpMethodName|1|0|nint|int method||hb7e8187e99b53389dc6e86e151d986b3cf309f38635df0577a3fe962daa521ae", "signature": "static nint HttpMethodName(int method)", "parameters": [{ "name": "method", "type": "int" }], "summary": "cui_http_method_name" }, { "name": "HttpReason", "kind": "method", "id": "method|HttpReason|1|0|nint|int status||h695531bbc242279e6965807c5ef206851620bc61925a48efc1c70490e259e991", "signature": "static nint HttpReason(int status)", "parameters": [{ "name": "status", "type": "int" }], "summary": "cui_http_reason" }, { "name": "KeyName", "kind": "method", "id": "method|KeyName|1|0|nint|Key key||h33e5cc4941073359fa23837fde165bfa9ecb77851d42ec00ee3f76716ba7d095", "signature": "static nint KeyName(Key key)", "parameters": [{ "name": "key", "type": "Key" }], "summary": "cui_key_name" }, { "name": "LogGet", "kind": "method", "id": "method|LogGet|1|0|nint|in NativeLogBuffer buf;int i;nint text||h5eb523fd02830629ff354a65a7f0c9484a2db18400dd03d40b164c8544a52139", "signature": "static nint LogGet(in NativeLogBuffer buf, int i, nint text)", "parameters": [{ "name": "buf", "type": "in NativeLogBuffer" }, { "name": "i", "type": "int" }, { "name": "text", "type": "nint" }], "summary": "cui_log_get" }, { "name": "QueryOpName", "kind": "method", "id": "method|QueryOpName|1|0|nint|QueryType type;int op||hed4479b8d55e4aa5481e595c8b70182622151b68aad3431d8bad265aafd06359", "signature": "static nint QueryOpName(QueryType type, int op)", "parameters": [{ "name": "type", "type": "QueryType" }, { "name": "op", "type": "int" }], "summary": "cui_query_op_name" }, { "name": "ShortcutLabel", "kind": "method", "id": "method|ShortcutLabel|1|0|nint|nint ui;NativeKeyCombo combo||hfd8f3dac138b4eccd820249ccad5a1166cf9a64f912805326c24f1606089921a", "signature": "static nint ShortcutLabel(nint ui, NativeKeyCombo combo)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "combo", "type": "NativeKeyCombo" }], "summary": "cui_shortcut_label" }, { "name": "State", "kind": "method", "id": "method|State|1|0|nint|nint ui;uint id;nuint size||he77c93e7e985428e6413cee2cfa17096c39bbe25d2cc77c33b245fe378f87e67", "signature": "static nint State(nint ui, uint id, nuint size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "size", "type": "nuint" }], "summary": "cui_state" }, { "name": "SwCreate", "kind": "method", "id": "method|SwCreate|1|0|nint|||h85597fbde117bcfd906be42a5c6a3ede7c97fcede8c3e83adaaf4bcd0d2a149f", "signature": "static nint SwCreate()", "summary": "cui_sw_create" }, { "name": "ThemeGet", "kind": "method", "id": "method|ThemeGet|1|0|nint|nint ui||h38d0e1dce01bdd529849c410dd4462bf3383282d767baa343a527aa15ef23465", "signature": "static nint ThemeGet(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_theme_get" }, { "name": "DockSave", "kind": "method", "id": "method|DockSave|1|0|nuint|nint ui;nint id;nint buf;nuint cap||h97cbdd62c2deb4dfc5b9e1466366ff222261a2fc5d0d7c5961bd9281c01921ae", "signature": "static nuint DockSave(nint ui, nint id, nint buf, nuint cap)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "nint" }, { "name": "cap", "type": "nuint" }], "summary": "cui_dock_save" }, { "name": "ImageCreate", "kind": "method", "id": "method|ImageCreate|1|0|nuint|nint ui;int w;int h;nint rgba||hd066d185cd3b97f795c55dd3af8098c6b7c44dee971f48783ce88732f7052b23", "signature": "static nuint ImageCreate(nint ui, int w, int h, nint rgba)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "w", "type": "int" }, { "name": "h", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_image_create" }, { "name": "ImageLoad", "kind": "method", "id": "method|ImageLoad|1|0|nuint|nint ui;nint path;ref int w;ref int h||h4155150152dbc3dd6f4802b7f2095f0a203c7e60cab7ed364e860a8bdf930947", "signature": "static nuint ImageLoad(nint ui, nint path, ref int w, ref int h)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "path", "type": "nint" }, { "name": "w", "type": "ref int" }, { "name": "h", "type": "ref int" }], "summary": "cui_image_load" }, { "name": "QueryText", "kind": "method", "id": "method|QueryText|1|0|nuint|nint fields;int fieldCount;nint nodes;int count;nint out;nuint cap||hbd3cb3c6609b3e3305c99214b7e32085614fc24e222ea232c2e5bea8e8c1cd69", "signature": "static nuint QueryText(nint fields, int fieldCount, nint nodes, int count, nint @out, nuint cap)", "parameters": [{ "name": "fields", "type": "nint" }, { "name": "fieldCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "out", "type": "nint" }, { "name": "cap", "type": "nuint" }], "summary": "cui_query_text" }, { "name": "BoxBegin", "kind": "method", "id": "method|BoxBegin|1|0|uint|nint ui;in NativeBox opts||h78b4f546a22c8dcff5d224c08405fd0b5e2821851dcdb4e55096c0e8693f0956", "signature": "static uint BoxBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_box_begin" }, { "name": "ColumnBegin", "kind": "method", "id": "method|ColumnBegin|1|0|uint|nint ui;in NativeBox opts||h45c09e63ed196b77333af8e46712ff2505cc3f8bcc07a627029a9cd094146d62", "signature": "static uint ColumnBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_column_begin" }, { "name": "LastId", "kind": "method", "id": "method|LastId|1|0|uint|nint ui||h83f5914b8fbddf1b6874121e162f8f3564ee535fdfd0aa48b3aedc3f658526e2", "signature": "static uint LastId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_last_id" }, { "name": "MakeId", "kind": "method", "id": "method|MakeId|1|0|uint|nint ui;nint str||h810e16e55563121eca53f068456f007d3a658359e80b4d6baf960fb19eda3a49", "signature": "static uint MakeId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_make_id" }, { "name": "RowBegin", "kind": "method", "id": "method|RowBegin|1|0|uint|nint ui;in NativeBox opts||h51dd108e72913a38e43c2096668b66dca76f36804a325a70e49280eba7b71acd", "signature": "static uint RowBegin(nint ui, in NativeBox opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeBox" }], "summary": "cui_row_begin" }, { "name": "FrameCount", "kind": "method", "id": "method|FrameCount|1|0|ulong|nint ui||hb2e86c14dd9b07f2eea60b7c8d55b65e02ffff62e411ee7cb0672b10e126b5b9", "signature": "static ulong FrameCount(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_frame_count" }, { "name": "AccordionEnd", "kind": "method", "id": "method|AccordionEnd|1|0|void|nint ui||h3d97ebd000bc2ec6e1a7150b220a9becc237dc2bba7aded857d0ea19c78017a0", "signature": "static void AccordionEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_accordion_end" }, { "name": "AgentStatus", "kind": "method", "id": "method|AgentStatus|1|0|void|nint ui;nint text;in NativeAgentStatusOpts opts||h3677239a52459a84a94838abb70788ec3897854d3ce45365570b8f83594a74ae", "signature": "static void AgentStatus(nint ui, nint text, in NativeAgentStatusOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeAgentStatusOpts" }], "summary": "cui_agent_status_ex" }, { "name": "AppDestroy", "kind": "method", "id": "method|AppDestroy|1|0|void|nint app||hc989924b2fd6d017f98d26fff662487b516cbab9500766f46d09255919df7950", "signature": "static void AppDestroy(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_destroy" }, { "name": "AppQuit", "kind": "method", "id": "method|AppQuit|1|0|void|nint app||hd6cde514c822ba2738ba9206f51fb83f9f92c4b6dc7b57f3205c1b2ec2155ce0", "signature": "static void AppQuit(nint app)", "parameters": [{ "name": "app", "type": "nint" }], "summary": "cui_app_quit" }, { "name": "AppSetSize", "kind": "method", "id": "method|AppSetSize|1|0|void|nint app;int width;int height||hd48949a2e472726eb44e6fc0879c3ea5484809ef2886b68422478fd7bec09d5b", "signature": "static void AppSetSize(nint app, int width, int height)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }], "summary": "cui_app_set_size" }, { "name": "AppSetTitle", "kind": "method", "id": "method|AppSetTitle|1|0|void|nint app;nint title||ha3182099a994045166b2e57cb91f7e7db7a36a218a967dd2deb49aead615196e", "signature": "static void AppSetTitle(nint app, nint title)", "parameters": [{ "name": "app", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_app_set_title" }, { "name": "Avatar", "kind": "method", "id": "method|Avatar|1|0|void|nint ui;nint name;in NativeAvatarOpts opts||ha7c7fbd501ba6d9a9d0c85f18993dbc5f695aefb665ecd71a483b21a8c3377ee", "signature": "static void Avatar(nint ui, nint name, in NativeAvatarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeAvatarOpts" }], "summary": "cui_avatar_ex" }, { "name": "AvatarGroup", "kind": "method", "id": "method|AvatarGroup|1|0|void|nint ui;nint names;int count;int maxVisible;float size||hd3b5566e6c93bb5d7fae387200441ac86d6327854ecf6e3c4a06b607f77bcffe", "signature": "static void AvatarGroup(nint ui, nint names, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "names", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_avatar_group" }, { "name": "Badge", "kind": "method", "id": "method|Badge|1|0|void|nint ui;nint text;in NativeBadgeOpts opts||h4c699e61ab328131bdd5a979f9042f4fafff7936f9a9a83e0f2d684598518848", "signature": "static void Badge(nint ui, nint text, in NativeBadgeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeBadgeOpts" }], "summary": "cui_badge_ex" }, { "name": "BarChart", "kind": "method", "id": "method|BarChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||haf0da3ee52487e3934a5089881f58e28122f995fc45f0b8639ffb1e8b41e372c", "signature": "static void BarChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_bar_chart_ex" }, { "name": "BeginFrame", "kind": "method", "id": "method|BeginFrame|1|0|void|nint ui;float dt||h0577f006e4965cf88c6cd51c68044ddf72298474e56596fcd27493fea2d564f7", "signature": "static void BeginFrame(nint ui, float dt)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dt", "type": "float" }], "summary": "cui_begin_frame" }, { "name": "BoxEnd", "kind": "method", "id": "method|BoxEnd|1|0|void|nint ui||h4d9efc3d8f8ab981898dbe51c6008187153af8998858cae8e0858f28c2551207", "signature": "static void BoxEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_box_end" }, { "name": "ButtonGroupBegin", "kind": "method", "id": "method|ButtonGroupBegin|1|0|void|nint ui||h0be043c8228e09eadff1fdf48fdf8a66080fd96c5ef0e9b37c0cc15269b57f42", "signature": "static void ButtonGroupBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_begin" }, { "name": "ButtonGroupEnd", "kind": "method", "id": "method|ButtonGroupEnd|1|0|void|nint ui||h02a77719946880966ef2607e9618fff0d27e7c0065a03aab8a008dd70e998a12", "signature": "static void ButtonGroupEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_button_group_end" }, { "name": "CardEnd", "kind": "method", "id": "method|CardEnd|1|0|void|nint ui||hb2b95a09c234214774fc081e54ee7667e81fa37a371cd5d16ce1480dfdb60c4d", "signature": "static void CardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_end" }, { "name": "CardStackBegin", "kind": "method", "id": "method|CardStackBegin|1|0|void|nint ui;nint id;int count;in NativeCardStackOpts opts||h3d0bcb79a71984d808a89084a4967995247c9e125c4ca94c2b207e6b96afc939", "signature": "static void CardStackBegin(nint ui, nint id, int count, in NativeCardStackOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeCardStackOpts" }], "summary": "cui_card_stack_begin" }, { "name": "CardStackItemBegin", "kind": "method", "id": "method|CardStackItemBegin|1|0|void|nint ui;int depth||h8d8dd4e573301cd6d4e5489717cedafd511c28b35aa8d35537bd8de8eea7a3e7", "signature": "static void CardStackItemBegin(nint ui, int depth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "depth", "type": "int" }], "summary": "cui_card_stack_item_begin" }, { "name": "CardStackItemEnd", "kind": "method", "id": "method|CardStackItemEnd|1|0|void|nint ui||h1da0d16400e5185d4662ae573e720650ce7b2bbaf941ee9a7b61b6e2a81c2d30", "signature": "static void CardStackItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_card_stack_item_end" }, { "name": "CarouselEnd", "kind": "method", "id": "method|CarouselEnd|1|0|void|nint ui||h88ea0dcb5f23fd135d74954d156bc1ff125fdb2bd9df4ec846916a88306bff74", "signature": "static void CarouselEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_end" }, { "name": "CarouselSlideBegin", "kind": "method", "id": "method|CarouselSlideBegin|1|0|void|nint ui||h3599a68cab9230fb08a3258faaddefe1ad6161a4751519cf1c5a7b1f3d05b88c", "signature": "static void CarouselSlideBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_begin" }, { "name": "CarouselSlideEnd", "kind": "method", "id": "method|CarouselSlideEnd|1|0|void|nint ui||h9d93eb90d33062dc61cddff987460dea38282ff61648715c18c958d279799780", "signature": "static void CarouselSlideEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_carousel_slide_end" }, { "name": "ChatDivider", "kind": "method", "id": "method|ChatDivider|1|0|void|nint ui;nint label||hfd5fbcb1a8c9848c9cae6bcfb8ace33dea4f91925d47c2ec2a7a551ecaddc080", "signature": "static void ChatDivider(nint ui, nint label)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }], "summary": "cui_chat_divider" }, { "name": "ChatMessage", "kind": "method", "id": "method|ChatMessage|1|0|void|nint ui;nint text;in NativeChatOpts opts||h9e6d0b3029b5c2a5c4d1d658db09d4bc4ff66df880e976004f40e1ef92503075", "signature": "static void ChatMessage(nint ui, nint text, in NativeChatOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeChatOpts" }], "summary": "cui_chat_message_ex" }, { "name": "Code", "kind": "method", "id": "method|Code|1|0|void|nint ui;nint text||h99721e62b2be9508d09c56055eece668035a2c7fc409d3f008528fbea17ed941", "signature": "static void Code(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_code" }, { "name": "CodeBlock", "kind": "method", "id": "method|CodeBlock|1|0|void|nint ui;nint id;nint code;in NativeCodeOpts opts||hc751583c23a944f06a82072454dab93ff848eaf6a783795ed53ef837152ce5bf", "signature": "static void CodeBlock(nint ui, nint id, nint code, in NativeCodeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "code", "type": "nint" }, { "name": "opts", "type": "in NativeCodeOpts" }], "summary": "cui_code_block_ex" }, { "name": "CodeEditorFind", "kind": "method", "id": "method|CodeEditorFind|1|0|void|nint ui;nint id;nint query||h86eb240d8430ac800b8696eaf2e4dde832bb2d4df1029cefecb3cc66b188f092", "signature": "static void CodeEditorFind(nint ui, nint id, nint query)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "query", "type": "nint" }], "summary": "cui_code_editor_find" }, { "name": "CodeEditorGoto", "kind": "method", "id": "method|CodeEditorGoto|1|0|void|nint ui;nint id;int line;int column||h9f1be9ecc4d2d37691a36fcc31fd91af3053120e20a573470af630765075c911", "signature": "static void CodeEditorGoto(nint ui, nint id, int line, int column)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "line", "type": "int" }, { "name": "column", "type": "int" }], "summary": "cui_code_editor_goto" }, { "name": "CodeEditorSelect", "kind": "method", "id": "method|CodeEditorSelect|1|0|void|nint ui;nint id;int anchor;int cursor||h3f435189695be2273ac362b4b8bb4c94c643bb1d5f309e0e171b605288490a7e", "signature": "static void CodeEditorSelect(nint ui, nint id, int anchor, int cursor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "anchor", "type": "int" }, { "name": "cursor", "type": "int" }], "summary": "cui_code_editor_select" }, { "name": "ContextMenuEnd", "kind": "method", "id": "method|ContextMenuEnd|1|0|void|nint ui||h921a6627edea7d846f50a3e71d7b3e158ceadca1488f42e38e93435efd23a46f", "signature": "static void ContextMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_context_menu_end" }, { "name": "ContextMeter", "kind": "method", "id": "method|ContextMeter|1|0|void|nint ui;nint id;float used;float limit;in NativeContextOpts opts||h47503ec60b3931c234feb4cd2d90839bdc3a1bb69dd18f89b089869f5a1c895d", "signature": "static void ContextMeter(nint ui, nint id, float used, float limit, in NativeContextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "limit", "type": "float" }, { "name": "opts", "type": "in NativeContextOpts" }], "summary": "cui_context_meter_ex" }, { "name": "Countdown", "kind": "method", "id": "method|Countdown|1|0|void|nint ui;nint id;double secondsLeft;in NativeCountdownOpts opts||hb12db0b3493545831fc11d40595fe30a6cf1b530f5533674661079b5ecc31292", "signature": "static void Countdown(nint ui, nint id, double secondsLeft, in NativeCountdownOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "secondsLeft", "type": "double" }, { "name": "opts", "type": "in NativeCountdownOpts" }], "summary": "cui_countdown_ex" }, { "name": "Counter", "kind": "method", "id": "method|Counter|1|0|void|nint ui;nint id;double value;in NativeCounterOpts opts||h0fe352fbd522ca0b3418a4868a6bc25bdd30bd5b7a45c3d575b696fa20480b07", "signature": "static void Counter(nint ui, nint id, double value, in NativeCounterOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "double" }, { "name": "opts", "type": "in NativeCounterOpts" }], "summary": "cui_counter_ex" }, { "name": "DataGridCell", "kind": "method", "id": "method|DataGridCell|1|0|void|nint ui||h73b91589e91a8d1c4fc2073886ea6ff3cd347f193f612e4c8ae3082fce77bb43", "signature": "static void DataGridCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_cell" }, { "name": "DataGridCellText", "kind": "method", "id": "method|DataGridCellText|1|0|void|nint ui;nint text||h370160bb44c12b1662d2a793b63e6c0a6aca8fae93f701d7e43389419aa2172a", "signature": "static void DataGridCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_data_grid_cell_text" }, { "name": "DataGridEnd", "kind": "method", "id": "method|DataGridEnd|1|0|void|nint ui||h5a5f8cdf9f134bef7b75a46527cce4859b6badb8313e4fe7ab28a5450fed97dc", "signature": "static void DataGridEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_data_grid_end" }, { "name": "Destroy", "kind": "method", "id": "method|Destroy|1|0|void|nint ui||h05cb071f6685432b523c0036d1761c8893330558489e46e6985cc34dd129a3fe", "signature": "static void Destroy(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_destroy" }, { "name": "DialogEnd", "kind": "method", "id": "method|DialogEnd|1|0|void|nint ui||h9bd7a6a951ef94643a54e664aad2535ec3a7207333a2d8e783d8149451981865", "signature": "static void DialogEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_end" }, { "name": "DialogFooterBegin", "kind": "method", "id": "method|DialogFooterBegin|1|0|void|nint ui||hf839714f8840afc193f5a953838c7c6f9547c52a59b7f6be7bd0a708283b4307", "signature": "static void DialogFooterBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_begin" }, { "name": "DialogFooterEnd", "kind": "method", "id": "method|DialogFooterEnd|1|0|void|nint ui||h5d76c827818ed14d8e202fcabac61bc9196e05b890413440004aaddbec16e336", "signature": "static void DialogFooterEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dialog_footer_end" }, { "name": "DockBegin", "kind": "method", "id": "method|DockBegin|1|0|void|nint ui;nint id;in NativeDockOpts opts||h6f3edeceeaf66c008a7996f96822dbd6d090c09f8bf4cfc6d6b4e778e7d8b5f2", "signature": "static void DockBegin(nint ui, nint id, in NativeDockOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockOpts" }], "summary": "cui_dock_begin" }, { "name": "DockEnd", "kind": "method", "id": "method|DockEnd|1|0|void|nint ui||hb760c60156b670f25e6f5d8cbc9737800b9d21c04e9535b205b0ba253774446d", "signature": "static void DockEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_end" }, { "name": "DockPanelEnd", "kind": "method", "id": "method|DockPanelEnd|1|0|void|nint ui||h5de954501994a4036fa179afa8289522d9752e1163c4188891a0abae283ed03a", "signature": "static void DockPanelEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_panel_end" }, { "name": "DockSeparator", "kind": "method", "id": "method|DockSeparator|1|0|void|nint ui||h15a570c703a4ce8ae58a2b8b48ead6e62f25de766708db20c7715a8b4bbe3434", "signature": "static void DockSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dock_separator" }, { "name": "DockspaceBegin", "kind": "method", "id": "method|DockspaceBegin|1|0|void|nint ui;nint id;in NativeDockspaceOpts opts||h00aaa3e5f30c8089c428f17db11c00696eb0a3c959fa8a01013dcf8705152753", "signature": "static void DockspaceBegin(nint ui, nint id, in NativeDockspaceOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeDockspaceOpts" }], "summary": "cui_dockspace_begin_ex" }, { "name": "DockspaceEnd", "kind": "method", "id": "method|DockspaceEnd|1|0|void|nint ui||hdc6d3cdf73135422a36fc8ea6bb35188568f5636e9cb4b4fdcf94c091abdfd75", "signature": "static void DockspaceEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_dockspace_end" }, { "name": "DonutChart", "kind": "method", "id": "method|DonutChart|1|0|void|nint ui;nint id;nint values;nint labels;int count;in NativeChartOpts opts||hc0548e7a422b79e5d257e4b35eb6309134be0175ce42f28f063fbb6590f3223f", "signature": "static void DonutChart(nint ui, nint id, nint values, nint labels, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "labels", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_donut_chart_ex" }, { "name": "DrawArc", "kind": "method", "id": "method|DrawArc|1|0|void|nint ui;NativeVec2 center;float radius;float a0;float a1;float thickness;NativeColor color||h8295de68de771f7ea4b447a1b85536fc822114e72d10c5c5d5a8f77b855e8b65", "signature": "static void DrawArc(nint ui, NativeVec2 center, float radius, float a0, float a1, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "a0", "type": "float" }, { "name": "a1", "type": "float" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_arc" }, { "name": "DrawCircle", "kind": "method", "id": "method|DrawCircle|1|0|void|nint ui;NativeVec2 center;float radius;NativeColor color||hb2c7ac883387890ae23baf3494c5f980bbff8565f3aa92e4b1c68bfc815bc634", "signature": "static void DrawCircle(nint ui, NativeVec2 center, float radius, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "center", "type": "NativeVec2" }, { "name": "radius", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_circle" }, { "name": "DrawEmoji", "kind": "method", "id": "method|DrawEmoji|1|0|void|nint ui;nint utf8;int len;NativeRect r||h22f8e14bbcea26fad35db047ca50800680362cc351944170bc0ee2cd483f4cd6", "signature": "static void DrawEmoji(nint ui, nint utf8, int len, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "len", "type": "int" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_draw_emoji" }, { "name": "DrawIcon", "kind": "method", "id": "method|DrawIcon|1|0|void|nint ui;nint icon;NativeRect r;float size;NativeColor color||h5b0d1e4fd4dff20bc9477435bc42d68f4ad7d83a08f09a30a929c5edc919364b", "signature": "static void DrawIcon(nint ui, nint icon, NativeRect r, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_icon" }, { "name": "DrawImage", "kind": "method", "id": "method|DrawImage|1|0|void|nint ui;nuint tex;NativeRect r;NativeRect uv;NativeCorners radius;NativeColor tint||h80dcecd6098295e3e8b542fa8741f2a2cf4a9419b577d024628a94127250ae6b", "signature": "static void DrawImage(nint ui, nuint tex, NativeRect r, NativeRect uv, NativeCorners radius, NativeColor tint)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "nuint" }, { "name": "r", "type": "NativeRect" }, { "name": "uv", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "tint", "type": "NativeColor" }], "summary": "cui_draw_image" }, { "name": "DrawLine", "kind": "method", "id": "method|DrawLine|1|0|void|nint ui;NativeVec2 a;NativeVec2 b;float thickness;NativeColor color||he3578bcb0522121dfd056009e1b35d5d30a75130a7a38c0f51ed6d8fac4fc3b0", "signature": "static void DrawLine(nint ui, NativeVec2 a, NativeVec2 b, float thickness, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "a", "type": "NativeVec2" }, { "name": "b", "type": "NativeVec2" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_line" }, { "name": "DrawPolygon", "kind": "method", "id": "method|DrawPolygon|1|0|void|nint ui;nint points;int count;NativeColor color||hee4fb990119035a52fcf521dd800de932f8242a1e8a16076d55dcf65f4100dc9", "signature": "static void DrawPolygon(nint ui, nint points, int count, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_polygon" }, { "name": "DrawPolyline", "kind": "method", "id": "method|DrawPolyline|1|0|void|nint ui;nint points;int count;float thickness;NativeColor color;byte closed||h4ad84f0066e3ab9a3a06cf60ccf987cb6bc98a64f0f3fcb9460f78bd3a809c8a", "signature": "static void DrawPolyline(nint ui, nint points, int count, float thickness, NativeColor color, byte closed)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "points", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "thickness", "type": "float" }, { "name": "color", "type": "NativeColor" }, { "name": "closed", "type": "byte" }], "summary": "cui_draw_polyline" }, { "name": "DrawRect", "kind": "method", "id": "method|DrawRect|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill||hfe26311cf9bae1a4548048b162121debfa9ed2c49fe5b6156697b75c61ef16ac", "signature": "static void DrawRect(nint ui, NativeRect r, NativeCorners radius, NativeColor fill)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }], "summary": "cui_draw_rect" }, { "name": "DrawRectBorder", "kind": "method", "id": "method|DrawRectBorder|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor fill;NativeColor border;float borderWidth||h0c3c3d48ab680a667e97dd2c382028f9c818564a905007232aaf41011f511106", "signature": "static void DrawRectBorder(nint ui, NativeRect r, NativeCorners radius, NativeColor fill, NativeColor border, float borderWidth)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "fill", "type": "NativeColor" }, { "name": "border", "type": "NativeColor" }, { "name": "borderWidth", "type": "float" }], "summary": "cui_draw_rect_border" }, { "name": "DrawRectGradient", "kind": "method", "id": "method|DrawRectGradient|1|0|void|nint ui;NativeRect r;NativeCorners radius;NativeColor top;NativeColor bottom||h20692c7cd3bd979d311205e190b3c434adb4e5c4e20999958918dc0db918ff41", "signature": "static void DrawRectGradient(nint ui, NativeRect r, NativeCorners radius, NativeColor top, NativeColor bottom)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "top", "type": "NativeColor" }, { "name": "bottom", "type": "NativeColor" }], "summary": "cui_draw_rect_gradient" }, { "name": "DrawShadow", "kind": "method", "id": "method|DrawShadow|1|0|void|nint ui;NativeRect r;NativeCorners radius;float blur;float spread;NativeVec2 offset;NativeColor color||hce3e65faa7aa8dc55c83a032ad2f23ad8dc999105f20b0bbfeaa1f774e1a49b3", "signature": "static void DrawShadow(nint ui, NativeRect r, NativeCorners radius, float blur, float spread, NativeVec2 offset, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }, { "name": "radius", "type": "NativeCorners" }, { "name": "blur", "type": "float" }, { "name": "spread", "type": "float" }, { "name": "offset", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_draw_shadow" }, { "name": "DrawText", "kind": "method", "id": "method|DrawText|1|0|void|nint ui;Font font;float size;NativeVec2 pos;NativeColor color;nint text;int len||hc2f27110ba2d6fbe45d096508ff3fad13a507ee2bf39df0e0d443bc523e0c664", "signature": "static void DrawText(nint ui, Font font, float size, NativeVec2 pos, NativeColor color, nint text, int len)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "size", "type": "float" }, { "name": "pos", "type": "NativeVec2" }, { "name": "color", "type": "NativeColor" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_draw_text" }, { "name": "Emoji", "kind": "method", "id": "method|Emoji|1|0|void|nint ui;nint utf8;float size||h03c0443d50e5a072c0253a97bce2fa8faee0949ec19ecd141417da32f8fd5329", "signature": "static void Emoji(nint ui, nint utf8, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_emoji" }, { "name": "EndFrame", "kind": "method", "id": "method|EndFrame|1|0|void|nint ui||h31b18c88ba32cd1c6cff6cb5b6d37c8737f4f80a8df45b310f28cac1548a28e5", "signature": "static void EndFrame(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_end_frame" }, { "name": "ExpandableCardEnd", "kind": "method", "id": "method|ExpandableCardEnd|1|0|void|nint ui||h021bc28e25114a32e55f17a5833e96d5310be1e1406fcd3b8fb9953100360644", "signature": "static void ExpandableCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_expandable_card_end" }, { "name": "FlameSort", "kind": "method", "id": "method|FlameSort|1|0|void|nint spans;int count||h0991e6f38190c13942ffa39a630d77506b361220708585e719a9c35eb9d97659", "signature": "static void FlameSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_flame_sort" }, { "name": "FontAddFallback", "kind": "method", "id": "method|FontAddFallback|1|0|void|nint ui;Font font;Font fallback||hdf010fb946a48d289df8be37b90cfa127248a6b0b637cbf46fdbabcadaefefdc", "signature": "static void FontAddFallback(nint ui, Font font, Font fallback)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "font", "type": "Font" }, { "name": "fallback", "type": "Font" }], "summary": "cui_font_add_fallback" }, { "name": "FontSetRole", "kind": "method", "id": "method|FontSetRole|1|0|void|nint ui;Font role;Font font||habee93e00846743b067b5bc61fefcc6e9708412e2fa47530423be4dc7f05f0e7", "signature": "static void FontSetRole(nint ui, Font role, Font font)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "role", "type": "Font" }, { "name": "font", "type": "Font" }], "summary": "cui_font_set_role" }, { "name": "Gap", "kind": "method", "id": "method|Gap|1|0|void|nint ui;float size||h72ded2697cd72ab69e9854d5b60bbdab7d81198e2d51aafd8b161d9dad5f76f2", "signature": "static void Gap(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_gap" }, { "name": "Gauge", "kind": "method", "id": "method|Gauge|1|0|void|nint ui;nint label;float value;float size||h7f72645a7be87c086ff175cefaa6de27d61de542a45562f0ee65926cc4159201", "signature": "static void Gauge(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_gauge" }, { "name": "GlDestroy", "kind": "method", "id": "method|GlDestroy|1|0|void|nint r||h0409b70021c2ece5ae11d86ffa0a1b54a38b4d8871d19f9fbc68a159a9368fec", "signature": "static void GlDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_gl_destroy" }, { "name": "GlReadPixels", "kind": "method", "id": "method|GlReadPixels|1|0|void|nint r;int width;int height;nint rgba||haee94127f9e202f09a7395d3fc94e7655c4b9dbdd1e3442de02294565ea69d3b", "signature": "static void GlReadPixels(nint r, int width, int height, nint rgba)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "rgba", "type": "nint" }], "summary": "cui_gl_read_pixels" }, { "name": "GlRender", "kind": "method", "id": "method|GlRender|1|0|void|nint r;in NativeDrawData dd;byte clear||h28c93a9bcb0a414099f8be1f4ae2d08dfe74881324f5e398a8f7ca2b6342d2e2", "signature": "static void GlRender(nint r, in NativeDrawData dd, byte clear)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "clear", "type": "byte" }], "summary": "cui_gl_render" }, { "name": "GradientText", "kind": "method", "id": "method|GradientText|1|0|void|nint ui;nint text;in NativeGradientTextOpts opts||h6c797e7f12adc043c2730857e1e257efee47cd48a6574ca561e9edd7348d6eb3", "signature": "static void GradientText(nint ui, nint text, in NativeGradientTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeGradientTextOpts" }], "summary": "cui_gradient_text_ex" }, { "name": "Heading", "kind": "method", "id": "method|Heading|1|0|void|nint ui;nint text;int level||ha3ccb600076c2097c212a0b747c3a17ee1400a5050e89087bb278fa0d69c0a56", "signature": "static void Heading(nint ui, nint text, int level)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "level", "type": "int" }], "summary": "cui_heading" }, { "name": "HexViewGoto", "kind": "method", "id": "method|HexViewGoto|1|0|void|nint ui;nint id;nuint offset||h652ff40b89a50ddcfe94df2541bc6bcacff1078574e1e3f68cd4b49f07bffbf6", "signature": "static void HexViewGoto(nint ui, nint id, nuint offset)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "offset", "type": "nuint" }], "summary": "cui_hex_view_goto" }, { "name": "HoverCardEnd", "kind": "method", "id": "method|HoverCardEnd|1|0|void|nint ui||h5cfa5bf8fd516aeba07a65fa1d7553759b7ecd2643d8054765a4684f067d85fe", "signature": "static void HoverCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_hover_card_end" }, { "name": "Icon", "kind": "method", "id": "method|Icon|1|0|void|nint ui;nint icon;float size;NativeColor color||hfe918e7ebd91e9d0f04d1321aa645b768e0750e48e2f70701bdb84394c7e4bdb", "signature": "static void Icon(nint ui, nint icon, float size, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "icon", "type": "nint" }, { "name": "size", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_icon" }, { "name": "Image", "kind": "method", "id": "method|Image|1|0|void|nint ui;nuint tex;in NativeImageOpts opts||h46d3bd25f42e44e36fb57f73efa84b4a6db4adb78527d895d2e47bc3c110a386", "signature": "static void Image(nint ui, nuint tex, in NativeImageOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "nuint" }, { "name": "opts", "type": "in NativeImageOpts" }], "summary": "cui_image_ex" }, { "name": "ImageDestroy", "kind": "method", "id": "method|ImageDestroy|1|0|void|nint ui;nuint tex||h8e51e8b79329b7fc75974cca89c9f82af337ea77de536984eaa9ed8699237678", "signature": "static void ImageDestroy(nint ui, nuint tex)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "tex", "type": "nuint" }], "summary": "cui_image_destroy" }, { "name": "InputFileDrop", "kind": "method", "id": "method|InputFileDrop|1|0|void|nint ui;nint paths;int count;float x;float y||h2dc0aedb8bd58c5dabe372e22f6a7c5338330b523568883aae3c63281400af28", "signature": "static void InputFileDrop(nint ui, nint paths, int count, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "paths", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_drop" }, { "name": "InputFileHover", "kind": "method", "id": "method|InputFileHover|1|0|void|nint ui;byte hovering;float x;float y||hfce5ebf2d37de57aeea32ce290ddb90f6a34478a69e1b80e64e15369c054cfe1", "signature": "static void InputFileHover(nint ui, byte hovering, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "hovering", "type": "byte" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_file_hover" }, { "name": "InputFocus", "kind": "method", "id": "method|InputFocus|1|0|void|nint ui;byte windowFocused||hb9c96e7b6b0b4495072fdbfc2b45487d04e64d46106d311f6b41f9ca0979dd5b", "signature": "static void InputFocus(nint ui, byte windowFocused)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "windowFocused", "type": "byte" }], "summary": "cui_input_focus" }, { "name": "InputKey", "kind": "method", "id": "method|InputKey|1|0|void|nint ui;Key key;byte down;int mods||he9e25baee090dd81f87a3359f812b0affe80d87f185a5e496c5f94d4d600b4a7", "signature": "static void InputKey(nint ui, Key key, byte down, int mods)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "key", "type": "Key" }, { "name": "down", "type": "byte" }, { "name": "mods", "type": "int" }], "summary": "cui_input_key" }, { "name": "InputMouseButton", "kind": "method", "id": "method|InputMouseButton|1|0|void|nint ui;MouseButton button;byte down||h6270e6c39ec308c89fdc117c2bc93e497b893943bf9c0f297eb3bc8bd9926c3c", "signature": "static void InputMouseButton(nint ui, MouseButton button, byte down)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "button", "type": "MouseButton" }, { "name": "down", "type": "byte" }], "summary": "cui_input_mouse_button" }, { "name": "InputMouseLeave", "kind": "method", "id": "method|InputMouseLeave|1|0|void|nint ui||h9036a64e5dd7d1da6320ba5086cefe6e3867e714461040256010cf82d367941e", "signature": "static void InputMouseLeave(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_input_mouse_leave" }, { "name": "InputMouseMove", "kind": "method", "id": "method|InputMouseMove|1|0|void|nint ui;float x;float y||hd0c123e0767faf579c286e823d9a962b112570997e9e663592cbd209faa1031a", "signature": "static void InputMouseMove(nint ui, float x, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "x", "type": "float" }, { "name": "y", "type": "float" }], "summary": "cui_input_mouse_move" }, { "name": "InputScroll", "kind": "method", "id": "method|InputScroll|1|0|void|nint ui;float dx;float dy||hc8cbc117e3db6a84144252e54692e3b66351e54d1c46990d7afde3e8b30195a4", "signature": "static void InputScroll(nint ui, float dx, float dy)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "dx", "type": "float" }, { "name": "dy", "type": "float" }], "summary": "cui_input_scroll" }, { "name": "InputText", "kind": "method", "id": "method|InputText|1|0|void|nint ui;nint utf8||hfb99b27e7589d689af11e1f3b33b999fd83f8b96dfc59bfec214a2d9ed87e63c", "signature": "static void InputText(nint ui, nint utf8)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "utf8", "type": "nint" }], "summary": "cui_input_text" }, { "name": "InspectorEnd", "kind": "method", "id": "method|InspectorEnd|1|0|void|nint ui||hbae2a784f117cc7cf8fde59d927783452fb610145ee483403247a944453c2ee4", "signature": "static void InspectorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_inspector_end" }, { "name": "KanbanBegin", "kind": "method", "id": "method|KanbanBegin|1|0|void|nint ui;nint id||h3a6b1c97ed7644e95a939ad84eb74872b36457939226042cb87047ea3415722c", "signature": "static void KanbanBegin(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_kanban_begin" }, { "name": "KanbanCardEnd", "kind": "method", "id": "method|KanbanCardEnd|1|0|void|nint ui||h6e4eb5e54f70e5e1b090f9fb90691e52a75493fc367b8dca9b723cf7fe51af88", "signature": "static void KanbanCardEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_card_end" }, { "name": "KanbanColumnEnd", "kind": "method", "id": "method|KanbanColumnEnd|1|0|void|nint ui||h9b6ffeadf22b51cea43f39f69a6c0af698e8dd7afba1ba450a994457d7bb3af5", "signature": "static void KanbanColumnEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_kanban_column_end" }, { "name": "Kbd", "kind": "method", "id": "method|Kbd|1|0|void|nint ui;nint keys||h9a69f5968b341ca3bc4847f30a367580e3a295109d39c5a22d98f4a2e4413d28", "signature": "static void Kbd(nint ui, nint keys)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "keys", "type": "nint" }], "summary": "cui_kbd" }, { "name": "Label", "kind": "method", "id": "method|Label|1|0|void|nint ui;nint text||h662088f013009dfe935af56487bec74180d254e361741c4e018b2fa56a1f0353", "signature": "static void Label(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_label" }, { "name": "LineChart", "kind": "method", "id": "method|LineChart|1|0|void|nint ui;nint id;nint series;int count;in NativeChartOpts opts||hbafa428eb32bcb4432f697971202f9feb226e72be253d1846779b4c42195fc35", "signature": "static void LineChart(nint ui, nint id, nint series, int count, in NativeChartOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "series", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeChartOpts" }], "summary": "cui_line_chart_ex" }, { "name": "Loader", "kind": "method", "id": "method|Loader|1|0|void|nint ui;in NativeLoaderOpts opts||he7826de7d57fcc29cdd3f4f18ad2b445818fbe8e1dda524d58d9f0192869e1ef", "signature": "static void Loader(nint ui, in NativeLoaderOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeLoaderOpts" }], "summary": "cui_loader_ex" }, { "name": "LogAppendText", "kind": "method", "id": "method|LogAppendText|1|0|void|ref NativeLogBuffer buf;LogLevel level;double time;nint text;int len||h4a7ed9d39233b97d0669e5a37da7ee40aa53dad0a7cf65470776649966b86e51", "signature": "static void LogAppendText(ref NativeLogBuffer buf, LogLevel level, double time, nint text, int len)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "time", "type": "double" }, { "name": "text", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_log_append_text" }, { "name": "LogAppendv", "kind": "method", "id": "method|LogAppendv|1|0|void|ref NativeLogBuffer buf;LogLevel level;nint fmt;nint ap||hee49e56c9ba82b42b6b99183ff76f0f63f31b9ba7042c57f73ad71629d84df23", "signature": "static void LogAppendv(ref NativeLogBuffer buf, LogLevel level, nint fmt, nint ap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "level", "type": "LogLevel" }, { "name": "fmt", "type": "nint" }, { "name": "ap", "type": "nint" }], "summary": "cui_log_appendv" }, { "name": "LogClear", "kind": "method", "id": "method|LogClear|1|0|void|ref NativeLogBuffer buf||h7bae18e46b5b4237b0f1cd653cef0790433b1718a8ce8005293d709c247b6295", "signature": "static void LogClear(ref NativeLogBuffer buf)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }], "summary": "cui_log_clear" }, { "name": "LogInit", "kind": "method", "id": "method|LogInit|1|0|void|ref NativeLogBuffer buf;nint lines;int lineCap;nint text;nuint textCap||h00f3179c5a7fabfc02fad6b1038a28c209c3e2c974c13ea73bbd0a2978eddee4", "signature": "static void LogInit(ref NativeLogBuffer buf, nint lines, int lineCap, nint text, nuint textCap)", "parameters": [{ "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "nuint" }], "summary": "cui_log_init" }, { "name": "LogView", "kind": "method", "id": "method|LogView|1|0|void|nint ui;nint id;ref NativeLogBuffer buf;in NativeLogViewOpts opts||h3bf31c940bcf0f123937456ea18917c5b12879732b8c742acf7864b43941bce8", "signature": "static void LogView(nint ui, nint id, ref NativeLogBuffer buf, in NativeLogViewOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "buf", "type": "ref NativeLogBuffer" }, { "name": "opts", "type": "in NativeLogViewOpts" }], "summary": "cui_log_view_ex" }, { "name": "MenuBarBegin", "kind": "method", "id": "method|MenuBarBegin|1|0|void|nint ui;nint id;in NativeMenuBarOpts opts||h2d170d38dd10fffeba6f35c2286b8e949c1277d362990277a723f1c7f53c2061", "signature": "static void MenuBarBegin(nint ui, nint id, in NativeMenuBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeMenuBarOpts" }], "summary": "cui_menu_bar_begin" }, { "name": "MenuBarEnd", "kind": "method", "id": "method|MenuBarEnd|1|0|void|nint ui||hb13e4f4b0dcb3f8fd8d21d8b00ea5fa6017723b169df7398cf86511fddc6e8f3", "signature": "static void MenuBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_end" }, { "name": "MenuBarMenuEnd", "kind": "method", "id": "method|MenuBarMenuEnd|1|0|void|nint ui||hed83615b225f71ed8013d397272be3081c1221a7036bbee6e4346e0c6777179f", "signature": "static void MenuBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_bar_menu_end" }, { "name": "MenuEnd", "kind": "method", "id": "method|MenuEnd|1|0|void|nint ui||hd514b968798469a91f7171fc3c11d2bc443560fedb439de13a6107be3c6a544b", "signature": "static void MenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_end" }, { "name": "MenuLabel", "kind": "method", "id": "method|MenuLabel|1|0|void|nint ui;nint text||ha4b8ad0e5b82fc1548f6ba84530f37adf4d9f0a532b3709d195d073699bcac3d", "signature": "static void MenuLabel(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_menu_label" }, { "name": "MenuSeparator", "kind": "method", "id": "method|MenuSeparator|1|0|void|nint ui||h43baafe94729515380b87ebc65483aa6d85741aeb6bba325ece2d1eabae0797a", "signature": "static void MenuSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_menu_separator" }, { "name": "Meter", "kind": "method", "id": "method|Meter|1|0|void|nint ui;nint label;float used;float total;nint unit||h30ed539c27876837b8db7a1089daa25a6062adad4a0f9d03e8ada4e2ee7b7543", "signature": "static void Meter(nint ui, nint label, float used, float total, nint unit)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "used", "type": "float" }, { "name": "total", "type": "float" }, { "name": "unit", "type": "nint" }], "summary": "cui_meter" }, { "name": "Metric", "kind": "method", "id": "method|Metric|1|0|void|nint ui;nint label;nint value;in NativeMetricOpts opts||h523a868a2b31da0883e292d982d5cac253880c98471f114d39a6aa1967937f65", "signature": "static void Metric(nint ui, nint label, nint value, in NativeMetricOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "nint" }, { "name": "opts", "type": "in NativeMetricOpts" }], "summary": "cui_metric_ex" }, { "name": "Muted", "kind": "method", "id": "method|Muted|1|0|void|nint ui;nint text||hdda682be0e03b2adcd33ac4733279d81dcae507f3677762d1bbd5faa3973441d", "signature": "static void Muted(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_muted" }, { "name": "NavSection", "kind": "method", "id": "method|NavSection|1|0|void|nint ui;nint title||h6cda75c653da98b8d8a4e1d3184c2f0372398fe655428979078fb1b9830a64f3", "signature": "static void NavSection(nint ui, nint title)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }], "summary": "cui_nav_section" }, { "name": "NodeContentBegin", "kind": "method", "id": "method|NodeContentBegin|1|0|void|nint ui||h8aaeefd8936d2e56b0ac7cfd0e4fe1ec0163a3f32ead969c8a6b272cb8c33c33", "signature": "static void NodeContentBegin(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_begin" }, { "name": "NodeContentEnd", "kind": "method", "id": "method|NodeContentEnd|1|0|void|nint ui||h8d1d8b82c2faed633dc8e3790241846c336d16db75745737aa16e5cdd4f03101", "signature": "static void NodeContentEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_content_end" }, { "name": "NodeEditorEnd", "kind": "method", "id": "method|NodeEditorEnd|1|0|void|nint ui||h8e2de39479bf3039a75ad1a43e67864e2fdedbcfa3d0ea17890714f79153cf0a", "signature": "static void NodeEditorEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_editor_end" }, { "name": "NodeEnd", "kind": "method", "id": "method|NodeEnd|1|0|void|nint ui||h776ebaba5480021545ebdcc94862ed3b0f4ad3392a425a74c78a1a85ae8f894c", "signature": "static void NodeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_node_end" }, { "name": "NumberRoll", "kind": "method", "id": "method|NumberRoll|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||hab625d06c0b1cdefddb6d8384378241c49e2b7ee8ad244ab3a68b2c5cd72a66b", "signature": "static void NumberRoll(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_number_roll_ex" }, { "name": "PathBarMenuEnd", "kind": "method", "id": "method|PathBarMenuEnd|1|0|void|nint ui||h997f537d82bf299ed326f925257b8510b206db162119f5f76a82e4c4c64949ff", "signature": "static void PathBarMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_path_bar_menu_end" }, { "name": "PopClip", "kind": "method", "id": "method|PopClip|1|0|void|nint ui||h63c0504d7458e435fcb1ffd50d073429edcc2e5de95c4b16ded5217563b6dc92", "signature": "static void PopClip(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_clip" }, { "name": "PopDisabled", "kind": "method", "id": "method|PopDisabled|1|0|void|nint ui||he2561f8c20dccea5c0d16cff7db5d33fa51f16e2405105c51b70cdf03d1cb051", "signature": "static void PopDisabled(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_disabled" }, { "name": "PopId", "kind": "method", "id": "method|PopId|1|0|void|nint ui||hb10c43cb5fb600005cd12d82cd44778b6b2d85fcd1aa993b6d5ac4ad52c80022", "signature": "static void PopId(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_pop_id" }, { "name": "PopoverClose", "kind": "method", "id": "method|PopoverClose|1|0|void|nint ui;nint id||h77cfcef0fa0acec5febc68b8745c36a30c41f550fcf802f10f1f29ce3cb99f0b", "signature": "static void PopoverClose(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_close" }, { "name": "PopoverEnd", "kind": "method", "id": "method|PopoverEnd|1|0|void|nint ui||h3a90dbcf8257c5a18ecbf028f1dd1f2b0738316b1e71ed2ed00b83ac007ae51b", "signature": "static void PopoverEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_popover_end" }, { "name": "PopoverOpen", "kind": "method", "id": "method|PopoverOpen|1|0|void|nint ui;nint id||he1d748eab3cdbe7c6819f4982df24d6dd06f0ba4256858420b9291cdc94efaeb", "signature": "static void PopoverOpen(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_open" }, { "name": "PopoverToggle", "kind": "method", "id": "method|PopoverToggle|1|0|void|nint ui;nint id||hf969fb3316a6f58bf6652dd965ae15925db3bbf664294da71aef8af21d99664d", "signature": "static void PopoverToggle(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_popover_toggle" }, { "name": "Presence", "kind": "method", "id": "method|Presence|1|0|void|nint ui;nint id;nint users;int count;int maxVisible;float size||ha18a6116c23c2a9b36bda9eaba4ac8b6d4cef8d2512e11df8496374e2915d918", "signature": "static void Presence(nint ui, nint id, nint users, int count, int maxVisible, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "users", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "maxVisible", "type": "int" }, { "name": "size", "type": "float" }], "summary": "cui_presence" }, { "name": "Progress", "kind": "method", "id": "method|Progress|1|0|void|nint ui;float value;in NativeProgressOpts opts||ha6c27a7e9e6567cb5e505a6c043a703129bff9e7f726b7b8ee84206931d4ae3c", "signature": "static void Progress(nint ui, float value, in NativeProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeProgressOpts" }], "summary": "cui_progress_ex" }, { "name": "ProgressRing", "kind": "method", "id": "method|ProgressRing|1|0|void|nint ui;nint label;float value;float size||hf23fdb90419b8cc9503afed3ebdd63578f6707f7e317f73a33cccdef064b21fd", "signature": "static void ProgressRing(nint ui, nint label, float value, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "size", "type": "float" }], "summary": "cui_progress_ring" }, { "name": "PushClip", "kind": "method", "id": "method|PushClip|1|0|void|nint ui;NativeRect r||h5e48edf0962d24abc38b2b811582434e972f2fc2bbe2e43bf552cef8b8bdda49", "signature": "static void PushClip(nint ui, NativeRect r)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "r", "type": "NativeRect" }], "summary": "cui_push_clip" }, { "name": "PushDisabled", "kind": "method", "id": "method|PushDisabled|1|0|void|nint ui;byte disabled||h0491a2ed86913b2fc3fa8007bbf0284aaece1e82513ff70a1f38943a8495ee62", "signature": "static void PushDisabled(nint ui, byte disabled)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "disabled", "type": "byte" }], "summary": "cui_push_disabled" }, { "name": "PushId", "kind": "method", "id": "method|PushId|1|0|void|nint ui;nint str||h6fb92263648fbe47b124cd60a2bb1f0194b441b80b610b9f33550aa562437492", "signature": "static void PushId(nint ui, nint str)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "str", "type": "nint" }], "summary": "cui_push_id" }, { "name": "PushIdInt", "kind": "method", "id": "method|PushIdInt|1|0|void|nint ui;int value||h50055247580a4f4fa0392b341c835a51a52a72b4f34bb1f4c613242daeea3ecc", "signature": "static void PushIdInt(nint ui, int value)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "int" }], "summary": "cui_push_id_int" }, { "name": "RadialGauge", "kind": "method", "id": "method|RadialGauge|1|0|void|nint ui;nint id;float value;float min;float max;in NativeRadialGaugeOpts opts||h4f8518675e6c379418dc5d18483c1736619dcc5322b6ec788f182e70d2744138", "signature": "static void RadialGauge(nint ui, nint id, float value, float min, float max, in NativeRadialGaugeOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "min", "type": "float" }, { "name": "max", "type": "float" }, { "name": "opts", "type": "in NativeRadialGaugeOpts" }], "summary": "cui_radial_gauge_ex" }, { "name": "ReasoningEnd", "kind": "method", "id": "method|ReasoningEnd|1|0|void|nint ui||h3d7a570a4d95899a623aba8b34225b94fe8e298223296a8b417ba68577277f1c", "signature": "static void ReasoningEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reasoning_end" }, { "name": "ReorderBegin", "kind": "method", "id": "method|ReorderBegin|1|0|void|nint ui;nint id;ref int order;int count||h91b67144d6c858e6046d3e88798f968c4b7717073334cfb0e25b0e4e03429f65", "signature": "static void ReorderBegin(nint ui, nint id, ref int order, int count)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "order", "type": "ref int" }, { "name": "count", "type": "int" }], "summary": "cui_reorder_begin" }, { "name": "ReorderItemBegin", "kind": "method", "id": "method|ReorderItemBegin|1|0|void|nint ui;int position||hc8aab216de052d8eec1b27621290e2c67cf005624582def3cde53d7c629abf2d", "signature": "static void ReorderItemBegin(nint ui, int position)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "position", "type": "int" }], "summary": "cui_reorder_item_begin" }, { "name": "ReorderItemEnd", "kind": "method", "id": "method|ReorderItemEnd|1|0|void|nint ui||he5f9866dc46db08efe5e2ec97c8f7cb9dcaf3dda4dbec7c6cecb97404aa0cac2", "signature": "static void ReorderItemEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_reorder_item_end" }, { "name": "RequestRedraw", "kind": "method", "id": "method|RequestRedraw|1|0|void|nint ui||haa3c00370fae8d80bb9419af2e90690a039bfdc6b9696bf7ec766b11d67053b6", "signature": "static void RequestRedraw(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_request_redraw" }, { "name": "RequestWakeup", "kind": "method", "id": "method|RequestWakeup|1|0|void|nint ui;float seconds||h4c1697d95f098be55214b6596a6d2d431ababeb4b7aeee1a3a5c7b4c9ec1014d", "signature": "static void RequestWakeup(nint ui, float seconds)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "seconds", "type": "float" }], "summary": "cui_request_wakeup" }, { "name": "ResponseStatus", "kind": "method", "id": "method|ResponseStatus|1|0|void|nint ui;int status;double seconds;double bytes||h6bf64977b38462ced090956d263a7ca82b23aaf9c4eb8826267ac35f603593a4", "signature": "static void ResponseStatus(nint ui, int status, double seconds, double bytes)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "status", "type": "int" }, { "name": "seconds", "type": "double" }, { "name": "bytes", "type": "double" }], "summary": "cui_response_status" }, { "name": "ScrollBegin", "kind": "method", "id": "method|ScrollBegin|1|0|void|nint ui;in NativeScrollOpts opts||hccf27da1d078b4595fdc9f11585d8d946c5ee619a7122ded6d4f0212402cf5c8", "signature": "static void ScrollBegin(nint ui, in NativeScrollOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "opts", "type": "in NativeScrollOpts" }], "summary": "cui_scroll_begin" }, { "name": "ScrollEnd", "kind": "method", "id": "method|ScrollEnd|1|0|void|nint ui||h5c13b2e28e6ee670888611965b36901a2f68e9b77c2798b783d4cd1039b6b9fb", "signature": "static void ScrollEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_scroll_end" }, { "name": "ScrollTo", "kind": "method", "id": "method|ScrollTo|1|0|void|nint ui;nint scrollId;float y||h23b87c2c57323b5eec317ad983e363d4a22bcfbeb280f4cee0e098567f3c4686", "signature": "static void ScrollTo(nint ui, nint scrollId, float y)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "scrollId", "type": "nint" }, { "name": "y", "type": "float" }], "summary": "cui_scroll_to" }, { "name": "Secondary", "kind": "method", "id": "method|Secondary|1|0|void|nint ui;nint text||h8c8af7950942ddc4910460d7cd39b63b771e005a78f3d6c721494d9c3c9e8a9b", "signature": "static void Secondary(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_secondary" }, { "name": "Separator", "kind": "method", "id": "method|Separator|1|0|void|nint ui||h46e03a6322e7ff314ff9145e05fc878a8ef074c48477fdfa72eef15647ab1ce6", "signature": "static void Separator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_separator" }, { "name": "SetAccent", "kind": "method", "id": "method|SetAccent|1|0|void|nint ui;Accent accent||haaabdbf69a955a9add0a9acc324c39f604d971cd839fc29f7592edd0e72bd52e", "signature": "static void SetAccent(nint ui, Accent accent)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "accent", "type": "Accent" }], "summary": "cui_set_accent" }, { "name": "SetPlatform", "kind": "method", "id": "method|SetPlatform|1|0|void|nint ui;in NativePlatformIface platform||h622526b30b257fe65cd0827a815d82bd5b01d7a35bbec3fba719fcffbf9877a9", "signature": "static void SetPlatform(nint ui, in NativePlatformIface platform)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "platform", "type": "in NativePlatformIface" }], "summary": "cui_set_platform" }, { "name": "SetReducedMotion", "kind": "method", "id": "method|SetReducedMotion|1|0|void|nint ui;byte reduced||hf68a9d8f75523bd677993d42d4b723a079b2492a26f565814f77b0f795732b6a", "signature": "static void SetReducedMotion(nint ui, byte reduced)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "reduced", "type": "byte" }], "summary": "cui_set_reduced_motion" }, { "name": "SetRenderer", "kind": "method", "id": "method|SetRenderer|1|0|void|nint ui;in NativeRendererIface renderer||hdbd27894e6a941293fab67adf26129d544c8f69e78c535ee83fb40689647a17e", "signature": "static void SetRenderer(nint ui, in NativeRendererIface renderer)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "renderer", "type": "in NativeRendererIface" }], "summary": "cui_set_renderer" }, { "name": "SetStrings", "kind": "method", "id": "method|SetStrings|1|0|void|nint ui;nint strings||hf673ccc8351e0077ec04e8e52c88524e21f92c433996f4d11fb38d37f6ce3e4c", "signature": "static void SetStrings(nint ui, nint strings)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "strings", "type": "nint" }], "summary": "cui_set_strings" }, { "name": "SetTheme", "kind": "method", "id": "method|SetTheme|1|0|void|nint ui;Theme mode||he438c162911cf2b181388de75abb1e0fbfc9fccf62191c0c78a14324c8f8d67e", "signature": "static void SetTheme(nint ui, Theme mode)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "mode", "type": "Theme" }], "summary": "cui_set_theme" }, { "name": "SetViewport", "kind": "method", "id": "method|SetViewport|1|0|void|nint ui;float width;float height;float scale||hf74647d478ddd211eaf64bf0ca79714dd3761805f2dc0aeaa820806cdc485ce1", "signature": "static void SetViewport(nint ui, float width, float height, float scale)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "float" }, { "name": "height", "type": "float" }, { "name": "scale", "type": "float" }], "summary": "cui_set_viewport" }, { "name": "SheetEnd", "kind": "method", "id": "method|SheetEnd|1|0|void|nint ui||h755e8a9b487011b773092e6c07731052b68899276185054b447af8330fa23cef", "signature": "static void SheetEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_sheet_end" }, { "name": "ShimmerText", "kind": "method", "id": "method|ShimmerText|1|0|void|nint ui;nint text;in NativeTextFxOpts opts||hc19c7328a7355de44b28fdbfba2b3d8a03763b03b03d31b020777541cf193b87", "signature": "static void ShimmerText(nint ui, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_shimmer_text_ex" }, { "name": "SignatureClear", "kind": "method", "id": "method|SignatureClear|1|0|void|nint ui;nint id||hc0eecd4bc3b717f1e8b91695f778ccd32566c7f13ed423d7e6b59f94052613c7", "signature": "static void SignatureClear(nint ui, nint id)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }], "summary": "cui_signature_clear" }, { "name": "Skeleton", "kind": "method", "id": "method|Skeleton|1|0|void|nint ui;NativeSize width;float height||hbc0c03c46cfd766c307600dc73e54a4ce856f1311af31af59206cbb964d0b537", "signature": "static void Skeleton(nint ui, NativeSize width, float height)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }], "summary": "cui_skeleton" }, { "name": "Spacer", "kind": "method", "id": "method|Spacer|1|0|void|nint ui||haf848915bff67f68bd2719ee3c0bba3024a1eb67d973fda3cb8f6fd6d8bda46d", "signature": "static void Spacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spacer" }, { "name": "Sparkline", "kind": "method", "id": "method|Sparkline|1|0|void|nint ui;nint values;int count;NativeSize width;float height;NativeColor color||h472c1899de78ca26befe4486df72311abfb910f99a70c749777e8bce3ead8e6c", "signature": "static void Sparkline(nint ui, nint values, int count, NativeSize width, float height, NativeColor color)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "values", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "width", "type": "NativeSize" }, { "name": "height", "type": "float" }, { "name": "color", "type": "NativeColor" }], "summary": "cui_sparkline" }, { "name": "Spinner", "kind": "method", "id": "method|Spinner|1|0|void|nint ui;float size||h79e05ad32fd9183b8abef18a003c42c2efb983f5f3dc41cb0d986befa1e14607", "signature": "static void Spinner(nint ui, float size)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "size", "type": "float" }], "summary": "cui_spinner" }, { "name": "SplitBegin", "kind": "method", "id": "method|SplitBegin|1|0|void|nint ui;nint id;ref float ratio;in NativeSplitOpts opts||h8e1cfc21d02f926a599a7b9fd32a463c34f116012625ed954ebabe3eda0b218c", "signature": "static void SplitBegin(nint ui, nint id, ref float ratio, in NativeSplitOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "ratio", "type": "ref float" }, { "name": "opts", "type": "in NativeSplitOpts" }], "summary": "cui_split_begin" }, { "name": "SplitEnd", "kind": "method", "id": "method|SplitEnd|1|0|void|nint ui||h3f556aa6a80585d876fdcab26d6a691809a4c59857fb96c820d7ce63f02567f5", "signature": "static void SplitEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_end" }, { "name": "SplitNext", "kind": "method", "id": "method|SplitNext|1|0|void|nint ui||h31dc7568501ad9f8fd786663ada605e96397f17a3b5d5da6ab7f9b6cc0f76982", "signature": "static void SplitNext(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_split_next" }, { "name": "SpotlightBegin", "kind": "method", "id": "method|SpotlightBegin|1|0|void|nint ui;nint id;in NativeSpotlightOpts opts||h963693d8664d583e71befca392e8b3c9a5ba239feb7aaf2df1083b5a16a5557f", "signature": "static void SpotlightBegin(nint ui, nint id, in NativeSpotlightOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeSpotlightOpts" }], "summary": "cui_spotlight_begin" }, { "name": "SpotlightEnd", "kind": "method", "id": "method|SpotlightEnd|1|0|void|nint ui||h0c73da51d3dde86dbb2ef775471416fa9b9baa4fe4d82d5379a1a0874cda7890", "signature": "static void SpotlightEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_spotlight_end" }, { "name": "StateOnFree", "kind": "method", "id": "method|StateOnFree|1|0|void|nint ui;uint id;nint fn||h14b5dc9f39df6208158ac8c6ae25df41995cc8a66f0fd49778bd67518233fb53", "signature": "static void StateOnFree(nint ui, uint id, nint fn)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "uint" }, { "name": "fn", "type": "nint" }], "summary": "cui_state_on_free" }, { "name": "StatusBarBegin", "kind": "method", "id": "method|StatusBarBegin|1|0|void|nint ui;nint id;in NativeStatusBarOpts opts||h0ab9af3979891707f59e475e805ef3326b8e428b0787763856b3bb5f91e167d1", "signature": "static void StatusBarBegin(nint ui, nint id, in NativeStatusBarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeStatusBarOpts" }], "summary": "cui_status_bar_begin" }, { "name": "StatusBarEnd", "kind": "method", "id": "method|StatusBarEnd|1|0|void|nint ui||hfe889f07a7b2493dd34050626f8b25502ec3780753f2da61e485cf5851b53a8f", "signature": "static void StatusBarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_end" }, { "name": "StatusBarProgress", "kind": "method", "id": "method|StatusBarProgress|1|0|void|nint ui;float value;in NativeStatusProgressOpts opts||h2e2514329347cd72bc4da650e5035a15a358812e6c7d0653a7530568ee5e6bd7", "signature": "static void StatusBarProgress(nint ui, float value, in NativeStatusProgressOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "value", "type": "float" }, { "name": "opts", "type": "in NativeStatusProgressOpts" }], "summary": "cui_status_bar_progress_ex" }, { "name": "StatusBarSpacer", "kind": "method", "id": "method|StatusBarSpacer|1|0|void|nint ui||h6f6ec7af809873713139db42be67fec0525aab67fc40f3fb3a4e4d13b9364c23", "signature": "static void StatusBarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_status_bar_spacer" }, { "name": "StatusBarText", "kind": "method", "id": "method|StatusBarText|1|0|void|nint ui;nint text;in NativeStatusItemOpts opts||h932eb9ea317e3daa001764723c6e67f68d748dbf6010f7d85aa4976712031b71", "signature": "static void StatusBarText(nint ui, nint text, in NativeStatusItemOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeStatusItemOpts" }], "summary": "cui_status_bar_text_ex" }, { "name": "Stepper", "kind": "method", "id": "method|Stepper|1|0|void|nint ui;nint steps;int count;int current||h6dc16579869bceefc9c1731229696cb78560f6f3caab3b13b0b3de481ac33cc1", "signature": "static void Stepper(nint ui, nint steps, int count, int current)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "steps", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "current", "type": "int" }], "summary": "cui_stepper" }, { "name": "SwDestroy", "kind": "method", "id": "method|SwDestroy|1|0|void|nint r||h0be21b0a0affe749f9f0be7261a36a00aeaf8b0842dec23c6d43e92f8dfd56ad", "signature": "static void SwDestroy(nint r)", "parameters": [{ "name": "r", "type": "nint" }], "summary": "cui_sw_destroy" }, { "name": "SwRender", "kind": "method", "id": "method|SwRender|1|0|void|nint r;in NativeDrawData dd;nint pixels;int width;int height;int stride;SwFormat format||h925ce92039facee940d37c72a24d58ed861e8d2428f045e01248136712bd27d3", "signature": "static void SwRender(nint r, in NativeDrawData dd, nint pixels, int width, int height, int stride, SwFormat format)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "dd", "type": "in NativeDrawData" }, { "name": "pixels", "type": "nint" }, { "name": "width", "type": "int" }, { "name": "height", "type": "int" }, { "name": "stride", "type": "int" }, { "name": "format", "type": "SwFormat" }], "summary": "cui_sw_render" }, { "name": "SwSetIncremental", "kind": "method", "id": "method|SwSetIncremental|1|0|void|nint r;byte on||h35784ddf9e6e2ff25d8c10204553e0402b67e13e77d8272ab56f0c994fc7247b", "signature": "static void SwSetIncremental(nint r, byte on)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "on", "type": "byte" }], "summary": "cui_sw_set_incremental" }, { "name": "SwSetThreads", "kind": "method", "id": "method|SwSetThreads|1|0|void|nint r;int threads||h34a2c21d60bb367d5b1aacc5f2e0a24cc1fd4fc2f7af20d0078cb2693d57cb3d", "signature": "static void SwSetThreads(nint r, int threads)", "parameters": [{ "name": "r", "type": "nint" }, { "name": "threads", "type": "int" }], "summary": "cui_sw_set_threads" }, { "name": "SwipeItemBegin", "kind": "method", "id": "method|SwipeItemBegin|1|0|void|nint ui;nint id;nint left;int leftCount;nint right;int rightCount||he356b37e0bb4b9d789e5c769a16e8687b4b7c08507d6f7ccb21de0c58296ee1e", "signature": "static void SwipeItemBegin(nint ui, nint id, nint left, int leftCount, nint right, int rightCount)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "left", "type": "nint" }, { "name": "leftCount", "type": "int" }, { "name": "right", "type": "nint" }, { "name": "rightCount", "type": "int" }], "summary": "cui_swipe_item_begin" }, { "name": "TableCell", "kind": "method", "id": "method|TableCell|1|0|void|nint ui||h58c1c69464959545f2c0c22eb0645330579440d8f636f3602edb6d4218b27d19", "signature": "static void TableCell(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_cell" }, { "name": "TableCellText", "kind": "method", "id": "method|TableCellText|1|0|void|nint ui;nint text||hda71654f59a916615205136e685705fde1ced9f7607676b2b05742f84907a3f9", "signature": "static void TableCellText(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_table_cell_text" }, { "name": "TableEnd", "kind": "method", "id": "method|TableEnd|1|0|void|nint ui||hc984d1509de63bf52b50c7a34ca3189a0bb153d3ea71eca8518f7cdbdd00f65c", "signature": "static void TableEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_table_end" }, { "name": "TerminalClear", "kind": "method", "id": "method|TerminalClear|1|0|void|ref NativeTerminalBuffer t||h2c35a3f1e8ac6abb885522cc4abf14b1aba391dfcffdb7e8162392ec1efbac69", "signature": "static void TerminalClear(ref NativeTerminalBuffer t)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }], "summary": "cui_terminal_clear" }, { "name": "TerminalInit", "kind": "method", "id": "method|TerminalInit|1|0|void|ref NativeTerminalBuffer t;nint text;nuint textCap;nint lines;int lineCap||hae969ea7a1dcf1b992acba2fc390063b42a9269de36456dc381e9f5d23d2902f", "signature": "static void TerminalInit(ref NativeTerminalBuffer t, nint text, nuint textCap, nint lines, int lineCap)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "text", "type": "nint" }, { "name": "textCap", "type": "nuint" }, { "name": "lines", "type": "nint" }, { "name": "lineCap", "type": "int" }], "summary": "cui_terminal_init" }, { "name": "TerminalWrite", "kind": "method", "id": "method|TerminalWrite|1|0|void|ref NativeTerminalBuffer t;nint data;int len||h7db23fca94baa41b713b578a3f7f2eb4edde9296bb42f48ffbc41cacffcab173", "signature": "static void TerminalWrite(ref NativeTerminalBuffer t, nint data, int len)", "parameters": [{ "name": "t", "type": "ref NativeTerminalBuffer" }, { "name": "data", "type": "nint" }, { "name": "len", "type": "int" }], "summary": "cui_terminal_write" }, { "name": "Text", "kind": "method", "id": "method|Text|1|0|void|nint ui;nint text;in NativeTextOpts opts||h272e9e5fd15e3e439624830da1a61bd8173755af5237d17c5de5b35b2b7fcc78", "signature": "static void Text(nint ui, nint text, in NativeTextOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextOpts" }], "summary": "cui_text_ex" }, { "name": "TextReveal", "kind": "method", "id": "method|TextReveal|1|0|void|nint ui;nint id;nint text;in NativeTextFxOpts opts||h810e5b8c5623cd79b19e255847e1b2350f771771bc43231ebd67d24fef43bf45", "signature": "static void TextReveal(nint ui, nint id, nint text, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "text", "type": "nint" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_text_reveal_ex" }, { "name": "Ticker", "kind": "method", "id": "method|Ticker|1|0|void|nint ui;nint id;nint items;int count;in NativeTickerOpts opts||hcf89f408f6d2cc69a1d015b699a290c0ae5b7441df2a83b42e3fb27d70c27db6", "signature": "static void Ticker(nint ui, nint id, nint items, int count, in NativeTickerOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "items", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "opts", "type": "in NativeTickerOpts" }], "summary": "cui_ticker_ex" }, { "name": "TimelineItem", "kind": "method", "id": "method|TimelineItem|1|0|void|nint ui;nint title;in NativeTimelineOpts opts||h9b4bdedc14e8242b067d1b691d32b876cb84a64b2324bf04fca99f755cd7d46e", "signature": "static void TimelineItem(nint ui, nint title, in NativeTimelineOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "title", "type": "nint" }, { "name": "opts", "type": "in NativeTimelineOpts" }], "summary": "cui_timeline_item_ex" }, { "name": "ToastDismiss", "kind": "method", "id": "method|ToastDismiss|1|0|void|nint ui;int handle||h75880d60348ac0f108d23509a49259435396571a873cbcbfabc7a7ce03565c56", "signature": "static void ToastDismiss(nint ui, int handle)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "handle", "type": "int" }], "summary": "cui_toast_dismiss" }, { "name": "TocAnchor", "kind": "method", "id": "method|TocAnchor|1|0|void|nint ui;nint anchor||hbf2b12d07854201eb614389915564e72b12beaca82777abc523cfd00e4b0202d", "signature": "static void TocAnchor(nint ui, nint anchor)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "anchor", "type": "nint" }], "summary": "cui_toc_anchor" }, { "name": "ToolCall", "kind": "method", "id": "method|ToolCall|1|0|void|nint ui;nint id;nint name;in NativeToolCallOpts opts||hec6f0eb79910da856e82af5251fb47ff3cdd8859d6b96873d1dfaa3e22d9187d", "signature": "static void ToolCall(nint ui, nint id, nint name, in NativeToolCallOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "name", "type": "nint" }, { "name": "opts", "type": "in NativeToolCallOpts" }], "summary": "cui_tool_call_ex" }, { "name": "ToolbarBegin", "kind": "method", "id": "method|ToolbarBegin|1|0|void|nint ui;nint id;in NativeToolbarOpts opts||ha8e07119a1461f0bb5edde4ce58cdc0140369f80e0033f3f208dffb00d98ee5d", "signature": "static void ToolbarBegin(nint ui, nint id, in NativeToolbarOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "opts", "type": "in NativeToolbarOpts" }], "summary": "cui_toolbar_begin" }, { "name": "ToolbarEnd", "kind": "method", "id": "method|ToolbarEnd|1|0|void|nint ui||hb80555fe0cf6dfda93d88a72607be9a5c706625fab680a97936dbf6533b176e3", "signature": "static void ToolbarEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_end" }, { "name": "ToolbarSeparator", "kind": "method", "id": "method|ToolbarSeparator|1|0|void|nint ui||h2f525a4e5418c61ca18349feb1c7a95baee6b316f2e23e1d6aa18232e5ec4341", "signature": "static void ToolbarSeparator(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_separator" }, { "name": "ToolbarSpacer", "kind": "method", "id": "method|ToolbarSpacer|1|0|void|nint ui||hd061dc8872d0ac7eb8238161e16cb000d93d422443f622ebb1121fae117ed97e", "signature": "static void ToolbarSpacer(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_toolbar_spacer" }, { "name": "Tooltip", "kind": "method", "id": "method|Tooltip|1|0|void|nint ui;nint text||h1f9de01bb16e1558786abe4c1b14699c29b647b8cd8553afed19fc2b4b3caa84", "signature": "static void Tooltip(nint ui, nint text)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "text", "type": "nint" }], "summary": "cui_tooltip" }, { "name": "TraceSort", "kind": "method", "id": "method|TraceSort|1|0|void|nint spans;int count||ha66d747d05ad548296f53fcbb98f77b31eae6b02c6b8b6ec977000c7b3fe3a5f", "signature": "static void TraceSort(nint spans, int count)", "parameters": [{ "name": "spans", "type": "nint" }, { "name": "count", "type": "int" }], "summary": "cui_trace_sort" }, { "name": "TreeEnd", "kind": "method", "id": "method|TreeEnd|1|0|void|nint ui||ha713edeffbaee9686dc29a28c602d73338ef0b3cf4fb5902d41efc308ec5b21a", "signature": "static void TreeEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_tree_end" }, { "name": "TreeTableBegin", "kind": "method", "id": "method|TreeTableBegin|1|0|void|nint ui;nint id;nint columns;int columnCount;nint nodes;int nodeCount;in NativeTreeTableOpts opts||hd0eb2658a484bda8296e5b59fad3baf23f8729e625357b5dbf526e06cfecbf42", "signature": "static void TreeTableBegin(nint ui, nint id, nint columns, int columnCount, nint nodes, int nodeCount, in NativeTreeTableOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "columns", "type": "nint" }, { "name": "columnCount", "type": "int" }, { "name": "nodes", "type": "nint" }, { "name": "nodeCount", "type": "int" }, { "name": "opts", "type": "in NativeTreeTableOpts" }], "summary": "cui_tree_table_begin_ex" }, { "name": "TreeTableName", "kind": "method", "id": "method|TreeTableName|1|0|void|nint ui;nint label;nint icon||h0751fd004c88e946e3cf26f6e5601c4d76cd57fd60d2086a0ff269e9d881a24c", "signature": "static void TreeTableName(nint ui, nint label, nint icon)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "label", "type": "nint" }, { "name": "icon", "type": "nint" }], "summary": "cui_tree_table_name" }, { "name": "TypingIndicator", "kind": "method", "id": "method|TypingIndicator|1|0|void|nint ui;nint name||hd81aef062aabdc6d41e05b88c87b46aefd6e009c83910f8ed3f0426342c0c825", "signature": "static void TypingIndicator(nint ui, nint name)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "name", "type": "nint" }], "summary": "cui_typing_indicator" }, { "name": "UserMenuEnd", "kind": "method", "id": "method|UserMenuEnd|1|0|void|nint ui||h9f762ffe81925fac89d4361eb1562a613e9eaa270d61fd325ab25799fa0afe27", "signature": "static void UserMenuEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_user_menu_end" }, { "name": "VirtualListBegin", "kind": "method", "id": "method|VirtualListBegin|1|0|void|nint ui;nint id;int count;float rowHeight;NativeSize height;ref int first;ref int last||ha61ead8705d1939e2b7fe69f251360a61fe18faef67fa9137031b1fe6ce05ff1", "signature": "static void VirtualListBegin(nint ui, nint id, int count, float rowHeight, NativeSize height, ref int first, ref int last)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "rowHeight", "type": "float" }, { "name": "height", "type": "NativeSize" }, { "name": "first", "type": "ref int" }, { "name": "last", "type": "ref int" }], "summary": "cui_virtual_list_begin" }, { "name": "VirtualListEnd", "kind": "method", "id": "method|VirtualListEnd|1|0|void|nint ui||h17bfe0f38637d279b00163d916474f0367149d134f26d7350a37198637c0da59", "signature": "static void VirtualListEnd(nint ui)", "parameters": [{ "name": "ui", "type": "nint" }], "summary": "cui_virtual_list_end" }, { "name": "WordRotate", "kind": "method", "id": "method|WordRotate|1|0|void|nint ui;nint id;nint words;int count;float interval;in NativeTextFxOpts opts||he94d507dcc15d0bcfc24aaaa9f83e04c779d69d75f151da8f8f8749dac8b28c2", "signature": "static void WordRotate(nint ui, nint id, nint words, int count, float interval, in NativeTextFxOpts opts)", "parameters": [{ "name": "ui", "type": "nint" }, { "name": "id", "type": "nint" }, { "name": "words", "type": "nint" }, { "name": "count", "type": "int" }, { "name": "interval", "type": "float" }, { "name": "opts", "type": "in NativeTextFxOpts" }], "summary": "cui_word_rotate_ex" }] }, { "name": "CuiSharp.Interop.NativeAgentPlanOpts", "displayName": "NativeAgentPlanOpts", "kind": "struct", "summary": "cui_agent_plan_opts, 16 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeAgentStatusOpts", "displayName": "NativeAgentStatusOpts", "kind": "struct", "summary": "cui_agent_status_opts, 24 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status (offset 4)" }, { "name": "Seconds", "kind": "field", "id": "field|Seconds|0|0|float|||hb2b6bfb7a4abde73c46fe03cfd0492620c03edc110332cec5c1c257b49ebec83", "signature": "public float Seconds", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeAlertOpts", "displayName": "NativeAlertOpts", "kind": "struct", "summary": "cui_alert_opts, 40 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|byte|||h3a9a514414e8a3ecdae7b6c0427c4f7e74781101755b94b83ff8501a761b98fa", "signature": "public byte Dismissible", "summary": "_Bool (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }] }, @@ -186,7 +186,7 @@ { "name": "CuiSharp.Interop.NativeApiExplorerResult", "displayName": "NativeApiExplorerResult", "kind": "struct", "summary": "cui_api_explorer_result, 8 bytes.", "members": [{ "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 0)" }, { "name": "TryIt", "kind": "field", "id": "field|TryIt|0|0|int|||h5b7497c7ff57eca579c0220484ed786050570c5aa1615b0f5118bc1ae8af3b74", "signature": "public int TryIt", "summary": "int (offset 4)" }] }, { "name": "CuiSharp.Interop.NativeApiParam", "displayName": "NativeApiParam", "kind": "struct", "summary": "cui_api_param, 40 bytes.", "members": [{ "name": "Required", "kind": "field", "id": "field|Required|0|0|byte|||h1a3af43b954883cd8432d9b5221a16371cd78abed44f2f2fbcfef531a562c34b", "signature": "public byte Required", "summary": "_Bool (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 32)" }, { "name": "In", "kind": "field", "id": "field|In|0|0|nint|||h63687a4cc9c3aa327d17f7a3675e77e3cdff1e19aabfd8647bad98e3874e5f5b", "signature": "public nint In", "summary": "const char * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Type", "kind": "field", "id": "field|Type|0|0|nint|||h08ef46c97f44246852387cb0db61193354036168da9659fe690b19c9be180ecd", "signature": "public nint Type", "summary": "const char * (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeAppDesc", "displayName": "NativeAppDesc", "kind": "struct", "summary": "cui_app_desc, 48 bytes.", "members": [{ "name": "Accent", "kind": "field", "id": "field|Accent|0|0|Accent|||h71052de13333411c0ea4ea9fd862bffc6c17770b3cd6a8d9e8d2bd9946427e80", "signature": "public Accent Accent", "summary": "cui_accent (offset 36)" }, { "name": "Renderer", "kind": "field", "id": "field|Renderer|0|0|Renderer|||h02bb378d95b6dccf4c48468a5cedcc8a1eb5e62c8b3f6def255345e2084c71da", "signature": "public Renderer Renderer", "summary": "cui_renderer_kind (offset 28)" }, { "name": "Theme", "kind": "field", "id": "field|Theme|0|0|Theme|||hc03062bcd5b400bad341e4abf4eced6f575572c853644893313e624c9667b6d8", "signature": "public Theme Theme", "summary": "cui_theme_mode (offset 32)" }, { "name": "Continuous", "kind": "field", "id": "field|Continuous|0|0|byte|||hf2b455e067c03fa095924e6359e38896423f8b87f43c5ff9421e149e2d79a771", "signature": "public byte Continuous", "summary": "_Bool (offset 25)" }, { "name": "FixedSize", "kind": "field", "id": "field|FixedSize|0|0|byte|||h3539fe6510c42c32f38f915daf424b43ed63fcbab6906963bf5878728a51d14d", "signature": "public byte FixedSize", "summary": "_Bool (offset 24)" }, { "name": "FollowSystemTheme", "kind": "field", "id": "field|FollowSystemTheme|0|0|byte|||h04801d61686302d7b69f7876e01e91e976b87da820e0e1d33f4666700f2da5ab", "signature": "public byte FollowSystemTheme", "summary": "_Bool (offset 40)" }, { "name": "Hidden", "kind": "field", "id": "field|Hidden|0|0|byte|||h09d64fd87a2ea3d6dc71208d5d191ef6983ee56f643ddde81b958e84c34b17b8", "signature": "public byte Hidden", "summary": "_Bool (offset 27)" }, { "name": "NoVsync", "kind": "field", "id": "field|NoVsync|0|0|byte|||ha03bf38afb5c85107eca7224756dd2dea79fd3efc171f22b28d872ae5f390e35", "signature": "public byte NoVsync", "summary": "_Bool (offset 26)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|int|||h52495b8092c70bc2ab79420020dea8829a5d21b13502d02d4d3876b4e6344385", "signature": "public int Height", "summary": "int (offset 12)" }, { "name": "MinHeight", "kind": "field", "id": "field|MinHeight|0|0|int|||ha9923860663e934851ae42ff98e9dfb070366310ecc14f385685bbc3585bbf65", "signature": "public int MinHeight", "summary": "int (offset 20)" }, { "name": "MinWidth", "kind": "field", "id": "field|MinWidth|0|0|int|||h4c1c24fa7ad7638870d99dd112c1f3bee470dbea9a43f4a22238041222847345", "signature": "public int MinWidth", "summary": "int (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|int|||ha520b8ffe64569abde298f583f1cebdf54a0fcf8f8c03a737243848cb9cd9ae5", "signature": "public int Width", "summary": "int (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, - { "name": "CuiSharp.Interop.NativeAvatarOpts", "displayName": "NativeAvatarOpts", "kind": "struct", "summary": "cui_avatar_opts, 32 bytes.", "members": [{ "name": "Square", "kind": "field", "id": "field|Square|0|0|byte|||h8271ae9bf49e9464a144633f5391cf90166c1b6df513611e60cdf9c987f3a4d9", "signature": "public byte Square", "summary": "_Bool (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Image", "kind": "field", "id": "field|Image|0|0|ulong|||he25dd60d612e9a06babb072bcf3c76754f6f813f5113d829ed08e969dc20f672", "signature": "public ulong Image", "summary": "cui_texture (offset 8)" }] }, + { "name": "CuiSharp.Interop.NativeAvatarOpts", "displayName": "NativeAvatarOpts", "kind": "struct", "summary": "cui_avatar_opts, 32 bytes.", "members": [{ "name": "Square", "kind": "field", "id": "field|Square|0|0|byte|||h8271ae9bf49e9464a144633f5391cf90166c1b6df513611e60cdf9c987f3a4d9", "signature": "public byte Square", "summary": "_Bool (offset 24)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Image", "kind": "field", "id": "field|Image|0|0|nuint|||hde12e2664af440184d2bb6e1b9e23d1b0129ddc2beb2f73e0e61d1dd4992031e", "signature": "public nuint Image", "summary": "cui_texture (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeBadgeOpts", "displayName": "NativeBadgeOpts", "kind": "struct", "summary": "cui_badge_opts, 32 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 24)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 4)" }, { "name": "Dot", "kind": "field", "id": "field|Dot|0|0|byte|||h3ae15341111db9635d36c494735d2956621314bfb54e9984860313e9b5a6a292", "signature": "public byte Dot", "summary": "_Bool (offset 8)" }, { "name": "Solid", "kind": "field", "id": "field|Solid|0|0|byte|||h7eea20659a45a5ea7894a8523b52271603fb5b4c884a1b3440fbdbeee4c65b06", "signature": "public byte Solid", "summary": "_Bool (offset 9)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeBannerOpts", "displayName": "NativeBannerOpts", "kind": "struct", "summary": "cui_banner_opts, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 4)" }, { "name": "Dismissible", "kind": "field", "id": "field|Dismissible|0|0|byte|||h3a9a514414e8a3ecdae7b6c0427c4f7e74781101755b94b83ff8501a761b98fa", "signature": "public byte Dismissible", "summary": "_Bool (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeBarListOpts", "displayName": "NativeBarListOpts", "kind": "struct", "summary": "cui_bar_list_opts, 40 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 29)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "KeepOrder", "kind": "field", "id": "field|KeepOrder|0|0|byte|||hfbebf017a95d56629f37455bf04c5c22d795a9eefb6852d664cef873fcce979d", "signature": "public byte KeepOrder", "summary": "_Bool (offset 28)" }, { "name": "MaxRows", "kind": "field", "id": "field|MaxRows|0|0|int|||h82a530e961fd20944667ea1ad6f4d328cd4ce0e5c238e091ebaa74d2086ed486", "signature": "public int MaxRows", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 16)" }] }, @@ -204,7 +204,7 @@ { "name": "CuiSharp.Interop.NativeCardStackOpts", "displayName": "NativeCardStackOpts", "kind": "struct", "summary": "cui_card_stack_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Visible", "kind": "field", "id": "field|Visible|0|0|int|||h4fdf87b1e77faeb11e5326e71ffb6338d699f8b49d4a214a0b6bef7bf1309566", "signature": "public int Visible", "summary": "int (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeCarouselOpts", "displayName": "NativeCarouselOpts", "kind": "struct", "summary": "cui_carousel_opts, 20 bytes.", "members": [{ "name": "Loop", "kind": "field", "id": "field|Loop|0|0|byte|||h3ea3d61078da90ba0c3355d3ef0183631b189a2445b74ebdb98d33d3479d2b7e", "signature": "public byte Loop", "summary": "_Bool (offset 18)" }, { "name": "NoArrows", "kind": "field", "id": "field|NoArrows|0|0|byte|||h7a6a12415b4c6dab1df3ff5c83c6bb25f115313482e4ca44ed78af5fc6a75854", "signature": "public byte NoArrows", "summary": "_Bool (offset 16)" }, { "name": "NoDots", "kind": "field", "id": "field|NoDots|0|0|byte|||hf9ef934ce44c465e4ec7f41621759281b8a5473953f2999e98657ef9ea08ba38", "signature": "public byte NoDots", "summary": "_Bool (offset 17)" }, { "name": "AutoAdvance", "kind": "field", "id": "field|AutoAdvance|0|0|float|||h33329d1b2d0ca9a63bdd777428459fd84fbfa04489f913ad51d47d16c7581b9c", "signature": "public float AutoAdvance", "summary": "float (offset 8)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 12)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeChartOpts", "displayName": "NativeChartOpts", "kind": "struct", "summary": "cui_chart_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Area", "kind": "field", "id": "field|Area|0|0|byte|||he8d3e8e8bb4ce63a9137e3d4828bc93f823171d1a6f241ca48772fa8dc7c11c5", "signature": "public byte Area", "summary": "_Bool (offset 28)" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|byte|||h026f953f32349519b56ea40bf2b85e0b94dcd1027cc2c5b4a4388f7196a50566", "signature": "public byte NoGrid", "summary": "_Bool (offset 29)" }, { "name": "NoLegend", "kind": "field", "id": "field|NoLegend|0|0|byte|||h1f8a110b3f30258fe29c926542fc3ebe7571478d3c055e1b3267d8e06e0b33f4", "signature": "public byte NoLegend", "summary": "_Bool (offset 30)" }, { "name": "Smooth", "kind": "field", "id": "field|Smooth|0|0|byte|||h8b09e18311bbb164f88305b5cff80844717a74f7fa25b154b9b3c08afe4cdcc0", "signature": "public byte Smooth", "summary": "_Bool (offset 32)" }, { "name": "Stacked", "kind": "field", "id": "field|Stacked|0|0|byte|||h693692fdffed29590d3fe4ff4aa98f0b1a5a647b80ba9fbd6a002ea4005f895f", "signature": "public byte Stacked", "summary": "_Bool (offset 31)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 52)" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "float (offset 48)" }, { "name": "LabelCount", "kind": "field", "id": "field|LabelCount|0|0|int|||h0786fd3eeaf4c765c6fa8cf9e8d15e20cd1426ffc09f46dd1856d4d1cd8ef852", "signature": "public int LabelCount", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 40)" }, { "name": "Labels", "kind": "field", "id": "field|Labels|0|0|nint|||h0891cfd95c52c3d740759d7929c72841b5dbbfe2ec9c515f56c7e5d7f437cf1c", "signature": "public nint Labels", "summary": "const char *const * (offset 16)" }] }, - { "name": "CuiSharp.Interop.NativeChatOpts", "displayName": "NativeChatOpts", "kind": "struct", "summary": "cui_chat_opts, 64 bytes.", "members": [{ "name": "Grouped", "kind": "field", "id": "field|Grouped|0|0|byte|||h8824f5842400fbe6b3e8bd9b3741c5b0523524fed53dfaeb300ba1a1518360cd", "signature": "public byte Grouped", "summary": "_Bool (offset 32)" }, { "name": "LastInGroup", "kind": "field", "id": "field|LastInGroup|0|0|byte|||hf6373daa489f65906e6886d8f38c321fbadadfa87b74990611c559a01a31cc0e", "signature": "public byte LastInGroup", "summary": "_Bool (offset 33)" }, { "name": "Markdown", "kind": "field", "id": "field|Markdown|0|0|byte|||h7f1da1fcb473b91e0f6ecc7349a064e18b8ff52792412e081751d8d1938096fe", "signature": "public byte Markdown", "summary": "_Bool (offset 48)" }, { "name": "Mine", "kind": "field", "id": "field|Mine|0|0|byte|||h4514fcc235e72a7f07362ff9cc72b4bd54f81d528491c1ed167f6c52cee36833", "signature": "public byte Mine", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|nint|||h42259eda4a5cd5217e3ff4e52e5ab08ff4edda9240aaa452d4af2589b41bd856", "signature": "public nint Author", "summary": "const char * (offset 8)" }, { "name": "MarkdownResult", "kind": "field", "id": "field|MarkdownResult|0|0|nint|||ha56930908ad109e7d79045cac68d2bc2e984f2ea31e8af6e6fa827cf29a231f6", "signature": "public nint MarkdownResult", "summary": "cui_markdown_result * (offset 56)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 24)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|nint|||h6d58676de43396dc84cf8d2e099bd5fe6b43afec28246479d0f40b03dafda113", "signature": "public nint Time", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 40)" }] }, + { "name": "CuiSharp.Interop.NativeChatOpts", "displayName": "NativeChatOpts", "kind": "struct", "summary": "cui_chat_opts, 64 bytes.", "members": [{ "name": "Grouped", "kind": "field", "id": "field|Grouped|0|0|byte|||h8824f5842400fbe6b3e8bd9b3741c5b0523524fed53dfaeb300ba1a1518360cd", "signature": "public byte Grouped", "summary": "_Bool (offset 32)" }, { "name": "LastInGroup", "kind": "field", "id": "field|LastInGroup|0|0|byte|||hf6373daa489f65906e6886d8f38c321fbadadfa87b74990611c559a01a31cc0e", "signature": "public byte LastInGroup", "summary": "_Bool (offset 33)" }, { "name": "Markdown", "kind": "field", "id": "field|Markdown|0|0|byte|||h7f1da1fcb473b91e0f6ecc7349a064e18b8ff52792412e081751d8d1938096fe", "signature": "public byte Markdown", "summary": "_Bool (offset 48)" }, { "name": "Mine", "kind": "field", "id": "field|Mine|0|0|byte|||h4514fcc235e72a7f07362ff9cc72b4bd54f81d528491c1ed167f6c52cee36833", "signature": "public byte Mine", "summary": "_Bool (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Author", "kind": "field", "id": "field|Author|0|0|nint|||h42259eda4a5cd5217e3ff4e52e5ab08ff4edda9240aaa452d4af2589b41bd856", "signature": "public nint Author", "summary": "const char * (offset 8)" }, { "name": "MarkdownResult", "kind": "field", "id": "field|MarkdownResult|0|0|nint|||ha56930908ad109e7d79045cac68d2bc2e984f2ea31e8af6e6fa827cf29a231f6", "signature": "public nint MarkdownResult", "summary": "cui_markdown_result * (offset 56)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 24)" }, { "name": "Time", "kind": "field", "id": "field|Time|0|0|nint|||h6d58676de43396dc84cf8d2e099bd5fe6b43afec28246479d0f40b03dafda113", "signature": "public nint Time", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|nuint|||hd836d3050349dc9e230d8ba691c657178a9fd72c10b4dc2ffe3eba6966257126", "signature": "public nuint Avatar", "summary": "cui_texture (offset 40)" }] }, { "name": "CuiSharp.Interop.NativeCheckOpts", "displayName": "NativeCheckOpts", "kind": "struct", "summary": "cui_check_opts, 24 bytes.", "members": [{ "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 16)" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|byte|||hfedb6a86910124c963d29f1734bebdd306e24edb2eb5d92514b1fc88f2d3b8a7", "signature": "public byte Indeterminate", "summary": "_Bool (offset 17)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeCheckStep", "displayName": "NativeCheckStep", "kind": "struct", "summary": "cui_check_step, 32 bytes.", "members": [{ "name": "Done", "kind": "field", "id": "field|Done|0|0|byte|||h58098c30b144e76005c563d0bd944f605f0196fda06a720faadb04ff25758c6c", "signature": "public byte Done", "summary": "_Bool (offset 24)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 16)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeChecklistOpts", "displayName": "NativeChecklistOpts", "kind": "struct", "summary": "cui_checklist_opts, 24 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, @@ -254,10 +254,10 @@ { "name": "CuiSharp.Interop.NativeDockOpts", "displayName": "NativeDockOpts", "kind": "struct", "summary": "cui_dock_opts, 12 bytes.", "members": [{ "name": "Magnify", "kind": "field", "id": "field|Magnify|0|0|float|||h1b7c2d09207b0b96fb623cbceda94330e8256fdb75cff5e9cb0e5693e018a756", "signature": "public float Magnify", "summary": "float (offset 8)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeDockPanelOpts", "displayName": "NativeDockPanelOpts", "kind": "struct", "summary": "cui_dock_panel_opts, 24 bytes.", "members": [{ "name": "Dirty", "kind": "field", "id": "field|Dirty|0|0|byte|||hdeca808be0cb980e0127bf11db817b7eba18ce8bebf9b076a7a0630e4feaa531", "signature": "public byte Dirty", "summary": "_Bool (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeDockspaceOpts", "displayName": "NativeDockspaceOpts", "kind": "struct", "summary": "cui_dockspace_opts, 48 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 24)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 16)" }, { "name": "Shortcuts", "kind": "field", "id": "field|Shortcuts|0|0|byte|||hd6377cbca16d594c8b5a4148204280325d292de8ca3b071947064f77f6e6a6fb", "signature": "public byte Shortcuts", "summary": "_Bool (offset 40)" }, { "name": "MinPanelHeight", "kind": "field", "id": "field|MinPanelHeight|0|0|float|||h477499d2af5c2fdee80ea8ecbb7b89b8cd2bc2693730e692f2b738fdae410cd7", "signature": "public float MinPanelHeight", "summary": "float (offset 36)" }, { "name": "MinPanelWidth", "kind": "field", "id": "field|MinPanelWidth|0|0|float|||hc8164d822bee1bca4df57bb3dbc7061e2e0cc00b5193fd5ee4341cbc793ce8d5", "signature": "public float MinPanelWidth", "summary": "float (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Layout", "kind": "field", "id": "field|Layout|0|0|nint|||he153907fa360ada3863f43f9763a85f428ae5b8f3addb4c159119cea0044e884", "signature": "public nint Layout", "summary": "const char * (offset 8)" }] }, - { "name": "CuiSharp.Interop.NativeDrawCmd", "displayName": "NativeDrawCmd", "kind": "struct", "summary": "cui_draw_cmd, 32 bytes.", "members": [{ "name": "Clip", "kind": "field", "id": "field|Clip|0|0|NativeRect|||h09bdaf8c5530d338de131c10bf3864c030b9fcc63a721815522ccb35df10e05e", "signature": "public NativeRect Clip", "summary": "cui_rect (offset 0)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|uint|||hb0bcb37c85a9f860f8ee892fff2d4b18cabf19879cb74b9c3f7f7e8aa18ff42c", "signature": "public uint IndexCount", "summary": "uint32_t (offset 28)" }, { "name": "IndexOffset", "kind": "field", "id": "field|IndexOffset|0|0|uint|||hb6d7b22f4a50cdb0db51a0d9d4e40e8b23387e64c8e283df7b5db3022fbbaba5", "signature": "public uint IndexOffset", "summary": "uint32_t (offset 24)" }, { "name": "Texture", "kind": "field", "id": "field|Texture|0|0|ulong|||h63b610588c6e3cf4be0188cb8c6eb0ad66f9a7a8baeaf740af8b3dd26d117cbb", "signature": "public ulong Texture", "summary": "cui_texture (offset 16)" }] }, - { "name": "CuiSharp.Interop.NativeDrawData", "displayName": "NativeDrawData", "kind": "struct", "summary": "cui_draw_data, 64 bytes.", "members": [{ "name": "ClearColor", "kind": "field", "id": "field|ClearColor|0|0|NativeColor|||heb9a573661370f973e3eb7ac8e1caf42bd059a193fd68abb81ca31dc5e189195", "signature": "public NativeColor ClearColor", "summary": "cui_color (offset 52)" }, { "name": "CommandCount", "kind": "field", "id": "field|CommandCount|0|0|int|||hc190b445170235490a4c93672339bb39cf03f4c800e272271fabef50fde7e5b4", "signature": "public int CommandCount", "summary": "int (offset 40)" }, { "name": "HeightPx", "kind": "field", "id": "field|HeightPx|0|0|int|||hc7abb4500bf8c59f5efde6d760572fea4431b3675d3b65005761e1a876b470f4", "signature": "public int HeightPx", "summary": "int (offset 48)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|int|||h6d841b3a76641eedc5238403d2c20b0963aed3c79fb6d07a7cd37698b8966731", "signature": "public int IndexCount", "summary": "int (offset 24)" }, { "name": "VertexCount", "kind": "field", "id": "field|VertexCount|0|0|int|||h0b32c3ca172972ce82332a1e2117e19a05d322760a5a01602052553ed4b16f19", "signature": "public int VertexCount", "summary": "int (offset 8)" }, { "name": "WidthPx", "kind": "field", "id": "field|WidthPx|0|0|int|||hadce0c1d922dc2297d04376b3fb0d7d5cfe53b2c2f6102992a52b783c8f15f31", "signature": "public int WidthPx", "summary": "int (offset 44)" }, { "name": "Commands", "kind": "field", "id": "field|Commands|0|0|nint|||hf0a2f92a6de78b78d4ffbdcddcfd7daf34fcb2c10d9f28119399bf055205a7c2", "signature": "public nint Commands", "summary": "const cui_draw_cmd * (offset 32)" }, { "name": "Indices", "kind": "field", "id": "field|Indices|0|0|nint|||h6d12982c36688cc1f72ee4cb2937f350902bae1d575d229d9f269495445c4a87", "signature": "public nint Indices", "summary": "const uint32_t * (offset 16)" }, { "name": "Vertices", "kind": "field", "id": "field|Vertices|0|0|nint|||h66a8649f8a7a541c7e3f7ca35269a409f94c28e3511bfdb3fef999a8c13eef91", "signature": "public nint Vertices", "summary": "const cui_vertex * (offset 0)" }, { "name": "FontAtlas", "kind": "field", "id": "field|FontAtlas|0|0|ulong|||h9748952396fca2bb8d87012e5ae742f689e7937bcbccb6f68eaca199303c7658", "signature": "public ulong FontAtlas", "summary": "cui_texture (offset 56)" }] }, + { "name": "CuiSharp.Interop.NativeDrawCmd", "displayName": "NativeDrawCmd", "kind": "struct", "summary": "cui_draw_cmd, 32 bytes.", "members": [{ "name": "Clip", "kind": "field", "id": "field|Clip|0|0|NativeRect|||h09bdaf8c5530d338de131c10bf3864c030b9fcc63a721815522ccb35df10e05e", "signature": "public NativeRect Clip", "summary": "cui_rect (offset 0)" }, { "name": "Texture", "kind": "field", "id": "field|Texture|0|0|nuint|||h23dd5d78f859076fb8ace99f2c743e186553f036f88bc3d8a2187d11495b0d96", "signature": "public nuint Texture", "summary": "cui_texture (offset 16)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|uint|||hb0bcb37c85a9f860f8ee892fff2d4b18cabf19879cb74b9c3f7f7e8aa18ff42c", "signature": "public uint IndexCount", "summary": "uint32_t (offset 28)" }, { "name": "IndexOffset", "kind": "field", "id": "field|IndexOffset|0|0|uint|||hb6d7b22f4a50cdb0db51a0d9d4e40e8b23387e64c8e283df7b5db3022fbbaba5", "signature": "public uint IndexOffset", "summary": "uint32_t (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeDrawData", "displayName": "NativeDrawData", "kind": "struct", "summary": "cui_draw_data, 64 bytes.", "members": [{ "name": "ClearColor", "kind": "field", "id": "field|ClearColor|0|0|NativeColor|||heb9a573661370f973e3eb7ac8e1caf42bd059a193fd68abb81ca31dc5e189195", "signature": "public NativeColor ClearColor", "summary": "cui_color (offset 52)" }, { "name": "CommandCount", "kind": "field", "id": "field|CommandCount|0|0|int|||hc190b445170235490a4c93672339bb39cf03f4c800e272271fabef50fde7e5b4", "signature": "public int CommandCount", "summary": "int (offset 40)" }, { "name": "HeightPx", "kind": "field", "id": "field|HeightPx|0|0|int|||hc7abb4500bf8c59f5efde6d760572fea4431b3675d3b65005761e1a876b470f4", "signature": "public int HeightPx", "summary": "int (offset 48)" }, { "name": "IndexCount", "kind": "field", "id": "field|IndexCount|0|0|int|||h6d841b3a76641eedc5238403d2c20b0963aed3c79fb6d07a7cd37698b8966731", "signature": "public int IndexCount", "summary": "int (offset 24)" }, { "name": "VertexCount", "kind": "field", "id": "field|VertexCount|0|0|int|||h0b32c3ca172972ce82332a1e2117e19a05d322760a5a01602052553ed4b16f19", "signature": "public int VertexCount", "summary": "int (offset 8)" }, { "name": "WidthPx", "kind": "field", "id": "field|WidthPx|0|0|int|||hadce0c1d922dc2297d04376b3fb0d7d5cfe53b2c2f6102992a52b783c8f15f31", "signature": "public int WidthPx", "summary": "int (offset 44)" }, { "name": "Commands", "kind": "field", "id": "field|Commands|0|0|nint|||hf0a2f92a6de78b78d4ffbdcddcfd7daf34fcb2c10d9f28119399bf055205a7c2", "signature": "public nint Commands", "summary": "const cui_draw_cmd * (offset 32)" }, { "name": "Indices", "kind": "field", "id": "field|Indices|0|0|nint|||h6d12982c36688cc1f72ee4cb2937f350902bae1d575d229d9f269495445c4a87", "signature": "public nint Indices", "summary": "const uint32_t * (offset 16)" }, { "name": "Vertices", "kind": "field", "id": "field|Vertices|0|0|nint|||h66a8649f8a7a541c7e3f7ca35269a409f94c28e3511bfdb3fef999a8c13eef91", "signature": "public nint Vertices", "summary": "const cui_vertex * (offset 0)" }, { "name": "FontAtlas", "kind": "field", "id": "field|FontAtlas|0|0|nuint|||h630a4c0033636b636312cedc7fd00d014938dc2d7fe90a80670b7e8d0a6ddb3b", "signature": "public nuint FontAtlas", "summary": "cui_texture (offset 56)" }] }, { "name": "CuiSharp.Interop.NativeDropzoneOpts", "displayName": "NativeDropzoneOpts", "kind": "struct", "summary": "cui_dropzone_opts, 56 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 44)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 52)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Accept", "kind": "field", "id": "field|Accept|0|0|nint|||h04df6c7ccc4694e99bc343faf31eac321c25224fae62b3ab149ef7169848243e", "signature": "public nint Accept", "summary": "const char * (offset 32)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 24)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 8)" }] }, - { "name": "CuiSharp.Interop.NativeEmojiPickerOpts", "displayName": "NativeEmojiPickerOpts", "kind": "struct", "summary": "cui_emoji_picker_opts, 88 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoPreview", "kind": "field", "id": "field|NoPreview|0|0|byte|||h1b1c0f53e0a98b6a75cf1fc3b196dbf13d6a97e6e4059a5ccc7f9cd2fede46a4", "signature": "public byte NoPreview", "summary": "_Bool (offset 81)" }, { "name": "NoSearch", "kind": "field", "id": "field|NoSearch|0|0|byte|||h1b79e845e35ce805c0e9ba6daa0b221e2b4ea3253a0d30fe5a0b3089ad7dffd5", "signature": "public byte NoSearch", "summary": "_Bool (offset 80)" }, { "name": "NoTone", "kind": "field", "id": "field|NoTone|0|0|byte|||h1bca5d13bfa507ddb10e74de6a3c85a065b6495379158fefd41887baa0ab131a", "signature": "public byte NoTone", "summary": "_Bool (offset 82)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "EmptyText", "kind": "field", "id": "field|EmptyText|0|0|nint|||h84afe79dbbeaa0c9b73bb4d20fbcc6738301e0c67a55100fcffd03eebcc017be", "signature": "public nint EmptyText", "summary": "const char * (offset 56)" }, { "name": "GroupNames", "kind": "field", "id": "field|GroupNames|0|0|nint|||ha62ebbf39e9bcbd501d6bc943ba53462d2998b6e8a5b223621f0cc14171a66c5", "signature": "public nint GroupNames", "summary": "const char *const * (offset 72)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|nint|||hc04a330155ea240694e4f00b47172663ef8f8e8c7171babe8307883ebbeeee6c", "signature": "public nint Hint", "summary": "const char * (offset 64)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 48)" }, { "name": "Recent", "kind": "field", "id": "field|Recent|0|0|nint|||heeef6ed734e158bf4d663036a6949c21cdaf60f565283d539fbdb77e077d495b", "signature": "public nint Recent", "summary": "char * (offset 24)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|nint|||hcdeacaaea3b8fdcb54307dc47361bdd3478789682315f2252ea858fba686d74d", "signature": "public nint Tone", "summary": "int * (offset 40)" }, { "name": "RecentCap", "kind": "field", "id": "field|RecentCap|0|0|ulong|||h5a97b0cd3619d65258129e392aa98391407116002ea5b16ebe8968e37fa2a705", "signature": "public ulong RecentCap", "summary": "size_t (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeEmojiPickerOpts", "displayName": "NativeEmojiPickerOpts", "kind": "struct", "summary": "cui_emoji_picker_opts, 88 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoPreview", "kind": "field", "id": "field|NoPreview|0|0|byte|||h1b1c0f53e0a98b6a75cf1fc3b196dbf13d6a97e6e4059a5ccc7f9cd2fede46a4", "signature": "public byte NoPreview", "summary": "_Bool (offset 81)" }, { "name": "NoSearch", "kind": "field", "id": "field|NoSearch|0|0|byte|||h1b79e845e35ce805c0e9ba6daa0b221e2b4ea3253a0d30fe5a0b3089ad7dffd5", "signature": "public byte NoSearch", "summary": "_Bool (offset 80)" }, { "name": "NoTone", "kind": "field", "id": "field|NoTone|0|0|byte|||h1bca5d13bfa507ddb10e74de6a3c85a065b6495379158fefd41887baa0ab131a", "signature": "public byte NoTone", "summary": "_Bool (offset 82)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 16)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "EmptyText", "kind": "field", "id": "field|EmptyText|0|0|nint|||h84afe79dbbeaa0c9b73bb4d20fbcc6738301e0c67a55100fcffd03eebcc017be", "signature": "public nint EmptyText", "summary": "const char * (offset 56)" }, { "name": "GroupNames", "kind": "field", "id": "field|GroupNames|0|0|nint|||ha62ebbf39e9bcbd501d6bc943ba53462d2998b6e8a5b223621f0cc14171a66c5", "signature": "public nint GroupNames", "summary": "const char *const * (offset 72)" }, { "name": "Hint", "kind": "field", "id": "field|Hint|0|0|nint|||hc04a330155ea240694e4f00b47172663ef8f8e8c7171babe8307883ebbeeee6c", "signature": "public nint Hint", "summary": "const char * (offset 64)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 48)" }, { "name": "Recent", "kind": "field", "id": "field|Recent|0|0|nint|||heeef6ed734e158bf4d663036a6949c21cdaf60f565283d539fbdb77e077d495b", "signature": "public nint Recent", "summary": "char * (offset 24)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|nint|||hcdeacaaea3b8fdcb54307dc47361bdd3478789682315f2252ea858fba686d74d", "signature": "public nint Tone", "summary": "int * (offset 40)" }, { "name": "RecentCap", "kind": "field", "id": "field|RecentCap|0|0|nuint|||h397e41a24d23c02e76bd607b6ff96175fd5f8e330990dc40c2e2bc90a5a2c87c", "signature": "public nuint RecentCap", "summary": "size_t (offset 32)" }] }, { "name": "CuiSharp.Interop.NativeEmptyOpts", "displayName": "NativeEmptyOpts", "kind": "struct", "summary": "cui_empty_opts, 32 bytes.", "members": [{ "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Action", "kind": "field", "id": "field|Action|0|0|nint|||h7dfe2a16d24f5ae17516623e6e776336e0c9174236c2f3e6d25910fcd1c88c17", "signature": "public nint Action", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 16)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeExpandableCardOpts", "displayName": "NativeExpandableCardOpts", "kind": "struct", "summary": "cui_expandable_card_opts, 40 bytes.", "members": [{ "name": "BadgeTone", "kind": "field", "id": "field|BadgeTone|0|0|Tone|||h7d1e4a819759475402672321667bc594bcbc369a9973d1d17f2954d94090361f", "signature": "public Tone BadgeTone", "summary": "cui_tone (offset 32)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Badge", "kind": "field", "id": "field|Badge|0|0|nint|||hde22c04ea21d8219db7a1a082d573f3b836e72a11c561a5bcf979fe76b33f2fc", "signature": "public nint Badge", "summary": "const char * (offset 24)" }, { "name": "Description", "kind": "field", "id": "field|Description|0|0|nint|||h6ee8ec6624c6b7f3700d7e8f1e4cfa8524b431ae33738d7f5cec221581ab4be6", "signature": "public nint Description", "summary": "const char * (offset 8)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeExpandableTextOpts", "displayName": "NativeExpandableTextOpts", "kind": "struct", "summary": "cui_expandable_text_opts, 20 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "FadeTo", "kind": "field", "id": "field|FadeTo|0|0|NativeColor|||h6fc5b6e540a84749802df1347a5cfdc931ab8a9f1b348236de4856c7d7b190e4", "signature": "public NativeColor FadeTo", "summary": "cui_color (offset 16)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 8)" }, { "name": "Lines", "kind": "field", "id": "field|Lines|0|0|int|||hee1996ff73a3bb29577188d155832b95024d32ca718f5404022abdd064faf7d7", "signature": "public int Lines", "summary": "int (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, @@ -290,9 +290,9 @@ { "name": "CuiSharp.Interop.NativeGridColumn", "displayName": "NativeGridColumn", "kind": "struct", "summary": "cui_grid_column, 24 bytes.", "members": [{ "name": "Align", "kind": "field", "id": "field|Align|0|0|TextAlign|||h6ff96aac7a3fc8d3690efcf70b1d20c634720e28a0fe218fa2d0bcfba09c25dd", "signature": "public TextAlign Align", "summary": "cui_text_align (offset 12)" }, { "name": "Fixed", "kind": "field", "id": "field|Fixed|0|0|byte|||hf34b5694d58a07d3223ee2235d451f81ed7a09be66068c9bbc95ff88ca3b1e17", "signature": "public byte Fixed", "summary": "_Bool (offset 17)" }, { "name": "Sortable", "kind": "field", "id": "field|Sortable|0|0|byte|||he9070b0f1a6618362c7d61bbbdebf35e70e6d19b96b6e0a0848b987b2f8927ef", "signature": "public byte Sortable", "summary": "_Bool (offset 16)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Priority", "kind": "field", "id": "field|Priority|0|0|int|||hbaa8b212dbdc34fa1179a77ab76338f94bb35b6954915c627238c0927fab9d97", "signature": "public int Priority", "summary": "int (offset 20)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeGridOpts", "displayName": "NativeGridOpts", "kind": "struct", "summary": "cui_grid_opts, 72 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "HideCheckboxes", "kind": "field", "id": "field|HideCheckboxes|0|0|byte|||h6fd6eac04a71b52ef56545ea61ec90897603d0ba2b00d592fe3aea544ab351fe", "signature": "public byte HideCheckboxes", "summary": "_Bool (offset 56)" }, { "name": "Striped", "kind": "field", "id": "field|Striped|0|0|byte|||hd2f33c74b431b991629cd3110070b2971b239e494028617bdf5c8495f08a3c04", "signature": "public byte Striped", "summary": "_Bool (offset 40)" }, { "name": "RowHeight", "kind": "field", "id": "field|RowHeight|0|0|float|||h5ea2104bcd7b1901e422af1ae5e7bfbafd249069750d53240ecbcc4c462a864a", "signature": "public float RowHeight", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Anchor", "kind": "field", "id": "field|Anchor|0|0|nint|||h2a3efb78b027ddab56b002c1c17c0175140a3ae80ce9ca969857ccc0bd8e0f33", "signature": "public nint Anchor", "summary": "int * (offset 64)" }, { "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|nint|||h195d74261818c31b6a837175cd06968e2a34f757d46f62d7a83a2655d64fa49a", "signature": "public nint Cursor", "summary": "int * (offset 48)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|nint|||hb9b23e216684496af33f255761d36a505197ddb902c4eea6b0ab2a2a779d34a2", "signature": "public nint Selected", "summary": "_Bool * (offset 24)" }, { "name": "Sort", "kind": "field", "id": "field|Sort|0|0|nint|||h9d98eab2f080d85ca8cb2b51bbfbb1c26340f12564431ce3c0cb8b55484a96e2", "signature": "public nint Sort", "summary": "cui_table_sort * (offset 32)" }] }, { "name": "CuiSharp.Interop.NativeHeatmapOpts", "displayName": "NativeHeatmapOpts", "kind": "struct", "summary": "cui_heatmap_opts, 56 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 36)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 48)" }, { "name": "Cell", "kind": "field", "id": "field|Cell|0|0|float|||hf561982788f651cf6be459cbdafa3d95b9d0eec610073c6be9f8ee75925d3d45", "signature": "public float Cell", "summary": "float (offset 24)" }, { "name": "Max", "kind": "field", "id": "field|Max|0|0|float|||hbfb97365f87b77bc2fa51f3b6b7aa7630e15f6dd2d7a40b3d76c97043e3c5b6f", "signature": "public float Max", "summary": "float (offset 32)" }, { "name": "Min", "kind": "field", "id": "field|Min|0|0|float|||h81101b82558caea906d5838961d5313f13c99e7d68f18285b0cf84040f989d8a", "signature": "public float Min", "summary": "float (offset 28)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "ColLabels", "kind": "field", "id": "field|ColLabels|0|0|nint|||h341f6ff47d1dcad907f5ec30036b4decc19be9a4df947a770e8e5b0e72fd543e", "signature": "public nint ColLabels", "summary": "const char *const * (offset 16)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 40)" }, { "name": "RowLabels", "kind": "field", "id": "field|RowLabels|0|0|nint|||h129c5d8d02700ee3ed6a4c66311945bf00088b45af8ac7f9d0e28f31d5d856ff", "signature": "public nint RowLabels", "summary": "const char *const * (offset 8)" }] }, - { "name": "CuiSharp.Interop.NativeHexRange", "displayName": "NativeHexRange", "kind": "struct", "summary": "cui_hex_range, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 24)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t (offset 8)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|ulong|||h551e41a24460675e284010a5af686471e6984d12957a75afe1617a2b52cae613", "signature": "public ulong Offset", "summary": "size_t (offset 0)" }] }, - { "name": "CuiSharp.Interop.NativeHexResult", "displayName": "NativeHexResult", "kind": "struct", "summary": "cui_hex_result, 64 bytes.", "members": [{ "name": "Selection", "kind": "field", "id": "field|Selection|0|0|NativeHexSelection|||h1175db1a8eb0e5f6c36cd11589758d1e21c61e89ecae69a29088a40c9dd0da5b", "signature": "public NativeHexSelection Selection", "summary": "cui_hex_selection (offset 0)" }, { "name": "Copied", "kind": "field", "id": "field|Copied|0|0|byte|||ha564c6f6c9a275eb3a25db281ebdd5bdf919eb7f01edce0e75c7dc0faab6136c", "signature": "public byte Copied", "summary": "_Bool (offset 56)" }, { "name": "Edited", "kind": "field", "id": "field|Edited|0|0|byte|||h9ef1d7c46ce21222bc9354c9bc032337f9bc7c03cf045d2ab6957bb638b70c68", "signature": "public byte Edited", "summary": "_Bool (offset 25)" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 24)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|long|||hbe1c39e7bbdecc557c8876890e8eac9658e0fa1fd65737f5d44c9f0b0cf4e2d9", "signature": "public long Hovered", "summary": "int64_t (offset 48)" }, { "name": "EditLength", "kind": "field", "id": "field|EditLength|0|0|ulong|||h66a400d24c2bcc6360469f4a4692e40110aeb039982f00e721a6b211f11c894f", "signature": "public ulong EditLength", "summary": "size_t (offset 40)" }, { "name": "EditOffset", "kind": "field", "id": "field|EditOffset|0|0|ulong|||h4a499a954baf5dc83819cf8b6a96a7ea8d3b7cfd43644a2dffb73eba4670fe6a", "signature": "public ulong EditOffset", "summary": "size_t (offset 32)" }] }, - { "name": "CuiSharp.Interop.NativeHexSelection", "displayName": "NativeHexSelection", "kind": "struct", "summary": "cui_hex_selection, 24 bytes.", "members": [{ "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|ulong|||hfcbcd4bd9c8959404ba53364315fdc79909689596fa3560cbab04a7c9e5291ba", "signature": "public ulong Cursor", "summary": "size_t (offset 16)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|ulong|||h9211b674b545dc64e10d1c3d245897135e2c99ff1498bfce4768f2b18f2a59b6", "signature": "public ulong Length", "summary": "size_t (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|ulong|||hd5d86251473efab40ee9afffd915b80f4ffa0f9346d99fba8e024520db5e0883", "signature": "public ulong Start", "summary": "size_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeHexRange", "displayName": "NativeHexRange", "kind": "struct", "summary": "cui_hex_range, 32 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 24)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|nuint|||hedf65e6cbb8502783a4b1db6bf52e3cb2ac5fc655d896572bd904d3dec117894", "signature": "public nuint Length", "summary": "size_t (offset 8)" }, { "name": "Offset", "kind": "field", "id": "field|Offset|0|0|nuint|||h12d9fc8e8a79ade3b2b6c9d612c1d902e92a0d2fd1e9fa210581e42cae95e5aa", "signature": "public nuint Offset", "summary": "size_t (offset 0)" }] }, + { "name": "CuiSharp.Interop.NativeHexResult", "displayName": "NativeHexResult", "kind": "struct", "summary": "cui_hex_result, 64 bytes.", "members": [{ "name": "Selection", "kind": "field", "id": "field|Selection|0|0|NativeHexSelection|||h1175db1a8eb0e5f6c36cd11589758d1e21c61e89ecae69a29088a40c9dd0da5b", "signature": "public NativeHexSelection Selection", "summary": "cui_hex_selection (offset 0)" }, { "name": "Copied", "kind": "field", "id": "field|Copied|0|0|byte|||ha564c6f6c9a275eb3a25db281ebdd5bdf919eb7f01edce0e75c7dc0faab6136c", "signature": "public byte Copied", "summary": "_Bool (offset 56)" }, { "name": "Edited", "kind": "field", "id": "field|Edited|0|0|byte|||h9ef1d7c46ce21222bc9354c9bc032337f9bc7c03cf045d2ab6957bb638b70c68", "signature": "public byte Edited", "summary": "_Bool (offset 25)" }, { "name": "SelectionChanged", "kind": "field", "id": "field|SelectionChanged|0|0|byte|||hcd9665fd3f1681a5d2b578f5591a4ad75144e40faafeb6788c0782cddf3116c2", "signature": "public byte SelectionChanged", "summary": "_Bool (offset 24)" }, { "name": "Hovered", "kind": "field", "id": "field|Hovered|0|0|long|||hbe1c39e7bbdecc557c8876890e8eac9658e0fa1fd65737f5d44c9f0b0cf4e2d9", "signature": "public long Hovered", "summary": "int64_t (offset 48)" }, { "name": "EditLength", "kind": "field", "id": "field|EditLength|0|0|nuint|||hf53d8a9c16df84a6ee7ed527d46eee361c22769d926b46b82d49c6d0d8292c0d", "signature": "public nuint EditLength", "summary": "size_t (offset 40)" }, { "name": "EditOffset", "kind": "field", "id": "field|EditOffset|0|0|nuint|||h8fc22aaf7fa6bc3dab506e0fc9fbbba958729739f2b5662ac547515924520604", "signature": "public nuint EditOffset", "summary": "size_t (offset 32)" }] }, + { "name": "CuiSharp.Interop.NativeHexSelection", "displayName": "NativeHexSelection", "kind": "struct", "summary": "cui_hex_selection, 24 bytes.", "members": [{ "name": "Cursor", "kind": "field", "id": "field|Cursor|0|0|nuint|||hfa45858e7446de1748c469d079c5914767b81cc09541907100fed7193ae9e90e", "signature": "public nuint Cursor", "summary": "size_t (offset 16)" }, { "name": "Length", "kind": "field", "id": "field|Length|0|0|nuint|||hedf65e6cbb8502783a4b1db6bf52e3cb2ac5fc655d896572bd904d3dec117894", "signature": "public nuint Length", "summary": "size_t (offset 8)" }, { "name": "Start", "kind": "field", "id": "field|Start|0|0|nuint|||hf5ab1ae637d54d5286a48ab4bd471c3fbd3b424aed466045a63666fdd96f187e", "signature": "public nuint Start", "summary": "size_t (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeHexViewOpts", "displayName": "NativeHexViewOpts", "kind": "struct", "summary": "cui_hex_view_opts, 64 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoAscii", "kind": "field", "id": "field|NoAscii|0|0|byte|||h3e2aa825acf39bc9df144017bf97823b0c1a092a9d328d417b98dc2a270f1498", "signature": "public byte NoAscii", "summary": "_Bool (offset 56)" }, { "name": "NoHeader", "kind": "field", "id": "field|NoHeader|0|0|byte|||h6093941fb44d7f5a4ff51d16324ccdb8778e77d1ae10d4e0d62af2a3df85380c", "signature": "public byte NoHeader", "summary": "_Bool (offset 57)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Size", "kind": "field", "id": "field|Size|0|0|float|||h6a7994d51dd3609f0c6e82fd31943ebae3ebffffaa8f0910f7f745869078fb26", "signature": "public float Size", "summary": "float (offset 60)" }, { "name": "BytesPerRow", "kind": "field", "id": "field|BytesPerRow|0|0|int|||hd61386e0b1631168d5ba3121886245ecce5b4ff2f8648ec936c3d6745e973f40", "signature": "public int BytesPerRow", "summary": "int (offset 24)" }, { "name": "RangeCount", "kind": "field", "id": "field|RangeCount|0|0|int|||h7cf44af00c194dbcd2d248d6d668d0e792ba9f5e70caed801178c75e0527cb4e", "signature": "public int RangeCount", "summary": "int (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Edit", "kind": "field", "id": "field|Edit|0|0|nint|||hb58a60b15fcbd3ae6f0be93b9f52af11f835d1a3062a50281e96005e5a8e56ea", "signature": "public nint Edit", "summary": "uint8_t * (offset 48)" }, { "name": "Ranges", "kind": "field", "id": "field|Ranges|0|0|nint|||h5e8cf57120f430601bf30d0dab9b30003d9f95318475f93f1e97c1a729522280", "signature": "public nint Ranges", "summary": "const cui_hex_range * (offset 32)" }, { "name": "Base", "kind": "field", "id": "field|Base|0|0|ulong|||h2d347b8391ce7744ac9390fd5433f8b42dd856f120afc62df3093dae04e197ff", "signature": "public ulong Base", "summary": "uint64_t (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeHistogramOpts", "displayName": "NativeHistogramOpts", "kind": "struct", "summary": "cui_histogram_opts, 16 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Format", "kind": "field", "id": "field|Format|0|0|nint|||h559b500e059f0007c7d603fb0c93c2fe8b56b25e8e4e331c1410c2e4b8eab022", "signature": "public nint Format", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeHistogramSeries", "displayName": "NativeHistogramSeries", "kind": "struct", "summary": "cui_histogram_series, 24 bytes.", "members": [{ "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 16)" }, { "name": "Counts", "kind": "field", "id": "field|Counts|0|0|nint|||h4ea94f3389c79a675e397e48da85da17c2b2112bce59a8565db06ae9977a4be3", "signature": "public nint Counts", "summary": "const float * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, @@ -339,7 +339,7 @@ { "name": "CuiSharp.Interop.NativeNodeEditorOpts", "displayName": "NativeNodeEditorOpts", "kind": "struct", "summary": "cui_node_editor_opts, 32 bytes.", "members": [{ "name": "Height", "kind": "field", "id": "field|Height|0|0|NativeSize|||he57ae53a281463afb47c00880a2e5be49827fa0c015877f84ada2071d670c6aa", "signature": "public NativeSize Height", "summary": "cui_size (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Minimap", "kind": "field", "id": "field|Minimap|0|0|byte|||h847e9339276a95438b4954fd2ae7292a7f2cbad91327a2d1b08131fc590f34f3", "signature": "public byte Minimap", "summary": "_Bool (offset 29)" }, { "name": "NoGrid", "kind": "field", "id": "field|NoGrid|0|0|byte|||h026f953f32349519b56ea40bf2b85e0b94dcd1027cc2c5b4a4388f7196a50566", "signature": "public byte NoGrid", "summary": "_Bool (offset 28)" }, { "name": "MaxZoom", "kind": "field", "id": "field|MaxZoom|0|0|float|||hce7b521ad509796f5171145038456d5846fb43275f5ab2bd1dd22e941b179f55", "signature": "public float MaxZoom", "summary": "float (offset 24)" }, { "name": "MinZoom", "kind": "field", "id": "field|MinZoom|0|0|float|||h29a9b1097fc3444e1615953dab0039e9cc2b1daf864d629ecf3057778d2512c1", "signature": "public float MinZoom", "summary": "float (offset 20)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeNodeOpts", "displayName": "NativeNodeOpts", "kind": "struct", "summary": "cui_node_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeNodeView", "displayName": "NativeNodeView", "kind": "struct", "summary": "cui_node_view, 12 bytes.", "members": [{ "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }, { "name": "Zoom", "kind": "field", "id": "field|Zoom|0|0|float|||h15d1ab2e6f15237e95efde0c028fdb5a985bc69724f9d1c2dfbc7d04a92a3d84", "signature": "public float Zoom", "summary": "float (offset 8)" }] }, - { "name": "CuiSharp.Interop.NativeNowPlaying", "displayName": "NativeNowPlaying", "kind": "struct", "summary": "cui_now_playing, 40 bytes.", "members": [{ "name": "ArtColor", "kind": "field", "id": "field|ArtColor|0|0|NativeColor|||h352188e9ae8bb04bc66c65f9d72ef1f7d0c715f17a6c2f1762f16c4dc5a22779", "signature": "public NativeColor ArtColor", "summary": "cui_color (offset 24)" }, { "name": "Playing", "kind": "field", "id": "field|Playing|0|0|byte|||he58ec49fe5fe3b98881f6fdbfe30b7ddb8a3aee5fbe73f58d9ff3d7ab6d4d484", "signature": "public byte Playing", "summary": "_Bool (offset 36)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 32)" }, { "name": "Position", "kind": "field", "id": "field|Position|0|0|float|||hd7fd432a49838186bd7a06ec98a4843ede3007d3a1803ab3581dabd884c9c313", "signature": "public float Position", "summary": "float (offset 28)" }, { "name": "Artist", "kind": "field", "id": "field|Artist|0|0|nint|||he59bb20b10e5b5d8ea31aec4cfcaef621ca667fcdb52e496e8066b4339509d45", "signature": "public nint Artist", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }, { "name": "Art", "kind": "field", "id": "field|Art|0|0|ulong|||h19abe1aca1c372b5d71e6ee5c212ee79fe340cde357d6c23bf3af4a305f7caba", "signature": "public ulong Art", "summary": "cui_texture (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativeNowPlaying", "displayName": "NativeNowPlaying", "kind": "struct", "summary": "cui_now_playing, 40 bytes.", "members": [{ "name": "ArtColor", "kind": "field", "id": "field|ArtColor|0|0|NativeColor|||h352188e9ae8bb04bc66c65f9d72ef1f7d0c715f17a6c2f1762f16c4dc5a22779", "signature": "public NativeColor ArtColor", "summary": "cui_color (offset 24)" }, { "name": "Playing", "kind": "field", "id": "field|Playing|0|0|byte|||he58ec49fe5fe3b98881f6fdbfe30b7ddb8a3aee5fbe73f58d9ff3d7ab6d4d484", "signature": "public byte Playing", "summary": "_Bool (offset 36)" }, { "name": "Duration", "kind": "field", "id": "field|Duration|0|0|float|||h2f80017f9c32679580f9de13eedc1ab816c5701c1761ae5b1f3500a885b7493a", "signature": "public float Duration", "summary": "float (offset 32)" }, { "name": "Position", "kind": "field", "id": "field|Position|0|0|float|||hd7fd432a49838186bd7a06ec98a4843ede3007d3a1803ab3581dabd884c9c313", "signature": "public float Position", "summary": "float (offset 28)" }, { "name": "Artist", "kind": "field", "id": "field|Artist|0|0|nint|||he59bb20b10e5b5d8ea31aec4cfcaef621ca667fcdb52e496e8066b4339509d45", "signature": "public nint Artist", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }, { "name": "Art", "kind": "field", "id": "field|Art|0|0|nuint|||h1a6b68368ef145c59e5b9891870c67cad162629e59e3fe5de80d9897c0af9b51", "signature": "public nuint Art", "summary": "cui_texture (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeNowPlayingOpts", "displayName": "NativeNowPlayingOpts", "kind": "struct", "summary": "cui_now_playing_opts, 16 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeNumberOpts", "displayName": "NativeNumberOpts", "kind": "struct", "summary": "cui_number_opts, 48 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 32)" }, { "name": "Disabled", "kind": "field", "id": "field|Disabled|0|0|byte|||h598b782fc187a61c70a340f0627cb3971902d249311c8b02cefc539f346c7b24", "signature": "public byte Disabled", "summary": "_Bool (offset 28)" }, { "name": "Step", "kind": "field", "id": "field|Step|0|0|double|||h44b63c009d1e13f96b6beedec59bbb32a22e099dcdc403d6954e0407657f670a", "signature": "public double Step", "summary": "double (offset 16)" }, { "name": "Decimals", "kind": "field", "id": "field|Decimals|0|0|int|||h1b738cb70bf917879f304fb58ce030898c555b54b73eb0e896589e3d0ec3d3b3", "signature": "public int Decimals", "summary": "int (offset 24)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 8)" }, { "name": "Suffix", "kind": "field", "id": "field|Suffix|0|0|nint|||hf74991389a50a9d4f62042eaba5519ce0c8537c405e4fb6215db1322dfac00e9", "signature": "public nint Suffix", "summary": "const char * (offset 40)" }] }, { "name": "CuiSharp.Interop.NativePathBarOpts", "displayName": "NativePathBarOpts", "kind": "struct", "summary": "cui_path_bar_opts, 48 bytes.", "members": [{ "name": "Size", "kind": "field", "id": "field|Size|0|0|ControlSize|||h32de9b14a4bf8f7cd9d51ddf122308c327f7d5cddfa2b057d7d9d10409d1283b", "signature": "public ControlSize Size", "summary": "cui_control_size (offset 32)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 36)" }, { "name": "Menus", "kind": "field", "id": "field|Menus|0|0|byte|||hfce09a2273f9e5959eeec0f9b791dfbe55c631d67f0f6007ceb096b5ef67f9e9", "signature": "public byte Menus", "summary": "_Bool (offset 44)" }, { "name": "NoEdit", "kind": "field", "id": "field|NoEdit|0|0|byte|||h4ddb78a9b807eee3628959ae9d3d2fd89fb75146a70af1561aae0012d2f4b96f", "signature": "public byte NoEdit", "summary": "_Bool (offset 45)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Icon", "kind": "field", "id": "field|Icon|0|0|nint|||ha48e0eb0e04c9fff956a3c68f27c2322280997e38a0ef25c3c45bd2857b0d34e", "signature": "public nint Icon", "summary": "const char * (offset 8)" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|nint|||hca9822b7cb32c981fa821b3bbeeaf069ba16c3b0ca3e319ac2cd7830b3b2e49d", "signature": "public nint Placeholder", "summary": "const char * (offset 24)" }, { "name": "Text", "kind": "field", "id": "field|Text|0|0|nint|||h66aaa42b78279f1149dcb8a32f27fc2db74dc535e86360cd658d24fb0bf042d8", "signature": "public nint Text", "summary": "const char * (offset 16)" }] }, @@ -351,7 +351,7 @@ { "name": "CuiSharp.Interop.NativePlanStep", "displayName": "NativePlanStep", "kind": "struct", "summary": "cui_plan_step, 24 bytes.", "members": [{ "name": "Status", "kind": "field", "id": "field|Status|0|0|CuiTaskStatus|||hc70e5654f5e0b77ce9da45f798c273c2ac66019dc100160d6f02b89ccf377bba", "signature": "public CuiTaskStatus Status", "summary": "cui_task_status (offset 16)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Title", "kind": "field", "id": "field|Title|0|0|nint|||h559defeee66deb7151a3fceb2f0d5bfe862721a161e609db613c9b7bdf286c4a", "signature": "public nint Title", "summary": "const char * (offset 0)" }] }, { "name": "CuiSharp.Interop.NativePlatformIface", "displayName": "NativePlatformIface", "kind": "struct", "summary": "cui_platform_iface, 48 bytes.", "members": [{ "name": "DrawEmoji", "kind": "field", "id": "field|DrawEmoji|0|0|nint|||ha007e832e7a875694aca1e9339d52e0e40e66ca966c69e8166069d40e16986fb", "signature": "public nint DrawEmoji", "summary": "_Bool (*)(void *, const char *, int, int, unsigned char *) (offset 40)" }, { "name": "GetClipboard", "kind": "field", "id": "field|GetClipboard|0|0|nint|||h9a9190f3e6b6b5c6d0cf55146b73ded113e6a38cca967b429c055648776b5ea4", "signature": "public nint GetClipboard", "summary": "const char *(*)(void *) (offset 16)" }, { "name": "SetClipboard", "kind": "field", "id": "field|SetClipboard|0|0|nint|||hbbfbbd36a4826cc8a71409977e795f45ff9dc93c83f28304cf89488f2cbbff5e", "signature": "public nint SetClipboard", "summary": "void (*)(void *, const char *) (offset 8)" }, { "name": "SetCursor", "kind": "field", "id": "field|SetCursor|0|0|nint|||he1e9b99feebed3486f20ea19b4e8390e04b586ddc2f91b87c5d32f19a0383572", "signature": "public nint SetCursor", "summary": "void (*)(void *, cui_cursor) (offset 24)" }, { "name": "SetTextInputRect", "kind": "field", "id": "field|SetTextInputRect|0|0|nint|||h2ff757d709ab7da74f78fcdc47702a9dcb9b51cc0252b56ba41df20a87d93643", "signature": "public nint SetTextInputRect", "summary": "void (*)(void *, cui_rect) (offset 32)" }, { "name": "User", "kind": "field", "id": "field|User|0|0|nint|||hbb8b86031509e9566eb92455c659fd89532fcd8a35724b86f43a45f38dc8e34f", "signature": "public nint User", "summary": "void * (offset 0)" }] }, { "name": "CuiSharp.Interop.NativePopoverOpts", "displayName": "NativePopoverOpts", "kind": "struct", "summary": "cui_popover_opts, 20 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 4)" }, { "name": "Gap", "kind": "field", "id": "field|Gap|0|0|float|||hfb7872ce9b59a7527ff553ff6078c53ec071b88b0788739fd4b0c8e604853e0a", "signature": "public float Gap", "summary": "float (offset 16)" }, { "name": "Pad", "kind": "field", "id": "field|Pad|0|0|float|||hc0c71e69f9b15d6abad4a13aff35117ed3688321c92801e20aa0ca1ac91b5739", "signature": "public float Pad", "summary": "float (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 8)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, - { "name": "CuiSharp.Interop.NativePresenceUser", "displayName": "NativePresenceUser", "kind": "struct", "summary": "cui_presence_user, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 8)" }, { "name": "Idle", "kind": "field", "id": "field|Idle|0|0|byte|||h1ef96cd97047669694287cf7836fe9005bdfdc75f578cc63c3879ec0d9f7f364", "signature": "public byte Idle", "summary": "_Bool (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 16)" }] }, + { "name": "CuiSharp.Interop.NativePresenceUser", "displayName": "NativePresenceUser", "kind": "struct", "summary": "cui_presence_user, 32 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 8)" }, { "name": "Idle", "kind": "field", "id": "field|Idle|0|0|byte|||h1ef96cd97047669694287cf7836fe9005bdfdc75f578cc63c3879ec0d9f7f364", "signature": "public byte Idle", "summary": "_Bool (offset 24)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|nuint|||hd836d3050349dc9e230d8ba691c657178a9fd72c10b4dc2ffe3eba6966257126", "signature": "public nuint Avatar", "summary": "cui_texture (offset 16)" }] }, { "name": "CuiSharp.Interop.NativeProblemsOpts", "displayName": "NativeProblemsOpts", "kind": "struct", "summary": "cui_problems_opts, 20 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "NoToolbar", "kind": "field", "id": "field|NoToolbar|0|0|byte|||h1230557801560ff86cbce3521dab7087f74f25026715f9de53fdbb79ff28a7c9", "signature": "public byte NoToolbar", "summary": "_Bool (offset 16)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeProblemsResult", "displayName": "NativeProblemsResult", "kind": "struct", "summary": "cui_problems_result, 12 bytes.", "members": [{ "name": "Activated", "kind": "field", "id": "field|Activated|0|0|int|||hccd1142cfa67503111f6278e03a9e1f44ab16e4626f93148fb8d70dc2fe63931", "signature": "public int Activated", "summary": "int (offset 4)" }, { "name": "Selected", "kind": "field", "id": "field|Selected|0|0|int|||hd98912bfc567742bd8241eb3f21d509fffc5e92c09441b5ff08a59d14bcf1553", "signature": "public int Selected", "summary": "int (offset 0)" }, { "name": "Shown", "kind": "field", "id": "field|Shown|0|0|int|||hb58805b7e5564373001000b59ffc5a328243e1da90b1bf69d07d8ff266b1d72f", "signature": "public int Shown", "summary": "int (offset 8)" }] }, { "name": "CuiSharp.Interop.NativeProgressOpts", "displayName": "NativeProgressOpts", "kind": "struct", "summary": "cui_progress_opts, 40 bytes.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 28)" }, { "name": "Tone", "kind": "field", "id": "field|Tone|0|0|Tone|||h34cf99709011d80e01e30e5f5f32dd42fc736257abef30989bc1bdf182b7842e", "signature": "public Tone Tone", "summary": "cui_tone (offset 8)" }, { "name": "Indeterminate", "kind": "field", "id": "field|Indeterminate|0|0|byte|||hfedb6a86910124c963d29f1734bebdd306e24edb2eb5d92514b1fc88f2d3b8a7", "signature": "public byte Indeterminate", "summary": "_Bool (offset 4)" }, { "name": "ShowValue", "kind": "field", "id": "field|ShowValue|0|0|byte|||hb6f28ed830dc1357a9e6ae1ac2207fd475f7cd4adf20dc1c2cc2e9ae662df3db", "signature": "public byte ShowValue", "summary": "_Bool (offset 24)" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "float (offset 12)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 16)" }] }, @@ -473,7 +473,7 @@ { "name": "CuiSharp.Interop.NativeUptimeOpts", "displayName": "NativeUptimeOpts", "kind": "struct", "summary": "cui_uptime_opts, 24 bytes.", "members": [{ "name": "LastDay", "kind": "field", "id": "field|LastDay|0|0|NativeDate|||h45adcdab927139a6170b18813b908fcc78735c3c1111d3ce3f9139bbc85469b1", "signature": "public NativeDate LastDay", "summary": "cui_date (offset 12)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|NativeSize|||h1846b5e04ea3e4cd0dda8e8db05f3d13562443f272d1b79d7a3862f71f14c172", "signature": "public NativeSize Width", "summary": "cui_size (offset 4)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeUptimeResult", "displayName": "NativeUptimeResult", "kind": "struct", "summary": "cui_uptime_result, 8 bytes.", "members": [{ "name": "Day", "kind": "field", "id": "field|Day|0|0|int|||h40d69339a69f05f7a1cf0fdcf537358258767e30cc6d07e430cb48196d28a0e1", "signature": "public int Day", "summary": "int (offset 4)" }, { "name": "Service", "kind": "field", "id": "field|Service|0|0|int|||hba0d1bf399894e025b711a3e44f55e40012b5deae721403f37ad45df303a1b8b", "signature": "public int Service", "summary": "int (offset 0)" }] }, { "name": "CuiSharp.Interop.NativeUptimeService", "displayName": "NativeUptimeService", "kind": "struct", "summary": "cui_uptime_service, 24 bytes.", "members": [{ "name": "DayCount", "kind": "field", "id": "field|DayCount|0|0|int|||h807a67852d2bc2138f90f797ad0d152fe0dfce453c6d29ff5f83297024adfbca", "signature": "public int DayCount", "summary": "int (offset 16)" }, { "name": "Days", "kind": "field", "id": "field|Days|0|0|nint|||h32980efb990a38503338072a962cf6130151324687d2a1adf8f4a0c793bc0ef9", "signature": "public nint Days", "summary": "const float * (offset 8)" }, { "name": "Name", "kind": "field", "id": "field|Name|0|0|nint|||h4385fc4e9e78a1bff4005233736edaa3b7e7b2adb2d4e4c67d827bd3cdd10bc9", "signature": "public nint Name", "summary": "const char * (offset 0)" }] }, - { "name": "CuiSharp.Interop.NativeUserMenuOpts", "displayName": "NativeUserMenuOpts", "kind": "struct", "summary": "cui_user_menu_opts, 48 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 36)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 32)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|ulong|||h6765b735e7badc83f84a351ff974e0656ad18b5550da2fa781650ae1ccda1d0d", "signature": "public ulong Avatar", "summary": "cui_texture (offset 24)" }] }, + { "name": "CuiSharp.Interop.NativeUserMenuOpts", "displayName": "NativeUserMenuOpts", "kind": "struct", "summary": "cui_user_menu_opts, 48 bytes.", "members": [{ "name": "Placement", "kind": "field", "id": "field|Placement|0|0|Placement|||hf195de79a8d91746df0b8c16e35ba7d16ceae982142ab61e53708b3f3c7905f1", "signature": "public Placement Placement", "summary": "cui_placement (offset 36)" }, { "name": "Compact", "kind": "field", "id": "field|Compact|0|0|byte|||h82ad4978e776988891fb40f0e87ef125edf87783174f60001d6260930e049142", "signature": "public byte Compact", "summary": "_Bool (offset 32)" }, { "name": "Width", "kind": "field", "id": "field|Width|0|0|float|||h09484e060a56a245cb1b8dd34046053777e40c112712137a7d87044b8d646e30", "signature": "public float Width", "summary": "float (offset 40)" }, { "name": "Sentinel", "kind": "field", "id": "field|Sentinel|0|0|int|||hb0b3c6c740fda3ebf37f54bf1c38841c2fa88dac7eacbf44e0422ba353807715", "signature": "public int Sentinel", "summary": "int (offset 0)" }, { "name": "Detail", "kind": "field", "id": "field|Detail|0|0|nint|||he69894387d5fc094a7cdccdba192cc597553cc294c184915bc6eeae4d098c54d", "signature": "public nint Detail", "summary": "const char * (offset 8)" }, { "name": "Status", "kind": "field", "id": "field|Status|0|0|nint|||h5eb064e9f4d4ca19be69b5617dddc7619d74afabd85bd1578dc70d05818e080a", "signature": "public nint Status", "summary": "const char * (offset 16)" }, { "name": "Avatar", "kind": "field", "id": "field|Avatar|0|0|nuint|||hd836d3050349dc9e230d8ba691c657178a9fd72c10b4dc2ffe3eba6966257126", "signature": "public nuint Avatar", "summary": "cui_texture (offset 24)" }] }, { "name": "CuiSharp.Interop.NativeVec2", "displayName": "NativeVec2", "kind": "struct", "summary": "cui_vec2, 8 bytes.", "members": [{ "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, { "name": "CuiSharp.Interop.NativeVertex", "displayName": "NativeVertex", "kind": "struct", "summary": "cui_vertex, 64 bytes.", "members": [{ "name": "BorderColor", "kind": "field", "id": "field|BorderColor|0|0|NativeColor|||h6c242cb21110bdcec7298ca27c1f6fe09c2e439c7c00a703fbb920a55723822b", "signature": "public NativeColor BorderColor", "summary": "cui_color (offset 60)" }, { "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 56)" }, { "name": "Border", "kind": "field", "id": "field|Border|0|0|float|||h4bb5750724304a562c69bb723b5db8d43e5846d3b78c2e66ad01710cdfbf5191", "signature": "public float Border", "summary": "float (offset 48)" }, { "name": "Hh", "kind": "field", "id": "field|Hh|0|0|float|||h1c6862ae07c727004a8c7151417e749467d8b042296b3293853eb996ce807c90", "signature": "public float Hh", "summary": "float (offset 28)" }, { "name": "Hw", "kind": "field", "id": "field|Hw|0|0|float|||h758884b50ea929bcc3a60a8b05dadcf44f148f00f839e7ecdbc4fc368682fef9", "signature": "public float Hw", "summary": "float (offset 24)" }, { "name": "Lx", "kind": "field", "id": "field|Lx|0|0|float|||h3a4b6e9eb14f7c42a745e1ae6676a77e89f1a174b969ede89c750ab88b3bdbb0", "signature": "public float Lx", "summary": "float (offset 16)" }, { "name": "Ly", "kind": "field", "id": "field|Ly|0|0|float|||hd1165beb2153fe6bcacd014305ca3e89e51a409a8217b41f7f302e96ee5906e0", "signature": "public float Ly", "summary": "float (offset 20)" }, { "name": "Mode", "kind": "field", "id": "field|Mode|0|0|float|||heb69ea4c288c1f889d5934bff78b3dbf2cc214d6953588aa989e0370de0bbf4b", "signature": "public float Mode", "summary": "float (offset 52)" }, { "name": "RBl", "kind": "field", "id": "field|RBl|0|0|float|||h8310356cb564473fa9b73326e0134c97865f51a13a40d30bd52837fc384992b1", "signature": "public float RBl", "summary": "float (offset 44)" }, { "name": "RBr", "kind": "field", "id": "field|RBr|0|0|float|||h6eb011a321c1ff1f497439bb8e4915f976f20d3a2e96e2c31379b21cf17ff472", "signature": "public float RBr", "summary": "float (offset 40)" }, { "name": "RTl", "kind": "field", "id": "field|RTl|0|0|float|||he836cc4321783d2a824b07c8669092e0bcc56e20a0bfebc80021d9db22fb4eb8", "signature": "public float RTl", "summary": "float (offset 32)" }, { "name": "RTr", "kind": "field", "id": "field|RTr|0|0|float|||h8bb36ee8371dbbba0c29cc7b754b94e45ca2acd3916bd2308261c85d1155193d", "signature": "public float RTr", "summary": "float (offset 36)" }, { "name": "U", "kind": "field", "id": "field|U|0|0|float|||h80a260e59ef807833e3326184d04df9d5bf8b6b63f398ead0a7fe40184d52c71", "signature": "public float U", "summary": "float (offset 8)" }, { "name": "V", "kind": "field", "id": "field|V|0|0|float|||h9ed934207acd45cf3efdba998593819e906780e91ea6d2a0c3bd1c528440f096", "signature": "public float V", "summary": "float (offset 12)" }, { "name": "X", "kind": "field", "id": "field|X|0|0|float|||hbec0ecb6e96ea8c241f3a15f38ef8790ed3bc60112d724cb0682faace7a31ad9", "signature": "public float X", "summary": "float (offset 0)" }, { "name": "Y", "kind": "field", "id": "field|Y|0|0|float|||hc00783e50f9198b7b18649e9937eb1d8ff1a46a45ace997ee4e0201cd0172883", "signature": "public float Y", "summary": "float (offset 4)" }] }, { "name": "CuiSharp.Interop.NativeVizItem", "displayName": "NativeVizItem", "kind": "struct", "summary": "cui_viz_item, 16 bytes.", "members": [{ "name": "Color", "kind": "field", "id": "field|Color|0|0|NativeColor|||h6cd6a23acbd8283ddef1feedac618c9790e4f0fcaee1cb472804c574f12dc041", "signature": "public NativeColor Color", "summary": "cui_color (offset 12)" }, { "name": "Value", "kind": "field", "id": "field|Value|0|0|float|||h8c20ac2e2f946bfe778b76ce5a0751e644f14cbfa254ac592650fe0166f91e91", "signature": "public float Value", "summary": "float (offset 8)" }, { "name": "Label", "kind": "field", "id": "field|Label|0|0|nint|||h4ee20f09ec543f894e95a7facfb2d78441c3a1ab2b41a83f5288990443bc84cd", "signature": "public nint Label", "summary": "const char * (offset 0)" }] }, @@ -574,6 +574,7 @@ { "name": "CuiSharp.RegexTesterOpts", "displayName": "RegexTesterOpts", "kind": "struct", "summary": "cui_regex_tester_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Height", "kind": "field", "id": "field|Height|0|0|float|||ha333299f179a1814155cda66a26b50fd7f476d27bf3ad5ffbc147c5abc8227fd", "signature": "public float Height", "summary": "of the test text, default 180" }] }, { "name": "CuiSharp.RegexTesterResult", "displayName": "RegexTesterResult", "kind": "struct", "summary": "cui_regex_tester_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Valid;int Matches = default;string? Error = null||he6f4f4e14ca7d9019cda96bee63475fcb4663f5970fa1d423eb538657e8b2228", "signature": "RegexTesterResult(bool Valid, int Matches = default, string? Error = null)", "parameters": [{ "name": "Valid", "type": "bool" }, { "name": "Matches", "type": "int", "default": "default" }, { "name": "Error", "type": "string?", "default": "null" }] }, { "name": "Valid", "kind": "field", "id": "field|Valid|0|0|bool|||h7ca8856a4d2de0f5a2a653cccda6609bb071117f9dc2b81e77d45f50fd6b8385", "signature": "public bool Valid", "summary": "_Bool valid" }, { "name": "Matches", "kind": "field", "id": "field|Matches|0|0|int|||hcedd9515c638fc304b4b46a264002d08e5bd2da7de258318812e2fb6ea94b072", "signature": "public int Matches", "summary": "int matches" }, { "name": "Error", "kind": "field", "id": "field|Error|0|0|string?|||h0b7f7e3a629b91e7b6cf4f9562657aad586fd4666941bbac0e0e8fccbc0ea31d", "signature": "public string? Error", "summary": "const char * error" }] }, { "name": "CuiSharp.Renderer", "displayName": "Renderer", "kind": "enum", "summary": "cui_renderer_kind", "members": [{ "name": "Auto", "kind": "enum value", "id": "enum value|Auto|1|0|||0|h284236ae44d2136d400d7adf09d16069ad74e439b1df76d7c8eddc5385164140", "signature": "Auto = 0", "value": "0" }, { "name": "OpenGL", "kind": "enum value", "id": "enum value|OpenGL|1|0|||1|hb9692d6e72320810bff0c91c598bbed9993bb9c9465d0f979cf5f0e92ede1417", "signature": "OpenGL = 1", "value": "1" }, { "name": "Software", "kind": "enum value", "id": "enum value|Software|1|0|||2|h28bc4665785d34e42fb52be1dafd3b6e20ca521221646f8e5f7e7965c2451ac5", "signature": "Software = 2", "value": "2" }] }, + { "name": "CuiSharp.RendererKind", "displayName": "RendererKind", "kind": "enum", "summary": "Which rasterizer a surface uses to turn draw data into pixels.", "members": [{ "name": "Gpu", "kind": "enum value", "id": "enum value|Gpu|1|0|||1|h65019820efb6e36ff0268db406291955d2a2b1c89d3a7008933917e9351b6705", "signature": "Gpu = 1", "summary": "GPU renderer (WebGL2 in the browser) consuming the surface\u0027s draw data.", "value": "1" }, { "name": "Software", "kind": "enum value", "id": "enum value|Software|1|0|||0|h631c7b6d74799c8ab80ae4816527d5bdb3aefb2e3ad4e9d3e688ec4ee51d7c7b", "signature": "Software = 0", "summary": "Software rasterizer into a pixel buffer (CPU, works everywhere).", "value": "0" }] }, { "name": "CuiSharp.RequestBarOpts", "displayName": "RequestBarOpts", "kind": "struct", "summary": "cui_request_bar_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "Width", "kind": "field", "id": "field|Width|0|0|Size|||h4006d8d1aa3607cf3007c2fd6686981e9812586a28b9a4d7a283aeadfcd379ad", "signature": "public Size Width", "summary": "cui_size width" }, { "name": "Loading", "kind": "field", "id": "field|Loading|0|0|bool|||h1a1df670039b692be8a827bee28c939371fe741e0871265ea4bdd3a172311bd8", "signature": "public bool Loading", "summary": "_Bool loading" }, { "name": "Placeholder", "kind": "field", "id": "field|Placeholder|0|0|string?|||hbe61d1785f65fabbd3ef4afbfb40a45eae9d76cb4082fe468fe662c6a46ecb72", "signature": "public string? Placeholder", "summary": "const char * placeholder" }] }, { "name": "CuiSharp.RequestBarResult", "displayName": "RequestBarResult", "kind": "struct", "summary": "cui_request_bar_result. Elements are copied into the frame arena by the wrapper.", "members": [{ "name": ".ctor", "kind": "constructor", "id": "constructor|.ctor|0|0||bool Send;bool Cancel = default;bool Changed = default||h68d778d1cd29be8f34a56c061b429131b33869382c4a2e78ec4ead662a0446d3", "signature": "RequestBarResult(bool Send, bool Cancel = default, bool Changed = default)", "parameters": [{ "name": "Send", "type": "bool" }, { "name": "Cancel", "type": "bool", "default": "default" }, { "name": "Changed", "type": "bool", "default": "default" }] }, { "name": "Cancel", "kind": "field", "id": "field|Cancel|0|0|bool|||h415f8fb17ae6a4daf79803e4d07341fefe680a32dc62663c2503d7e8eaa13c45", "signature": "public bool Cancel", "summary": "_Bool cancel" }, { "name": "Changed", "kind": "field", "id": "field|Changed|0|0|bool|||h8c85f6cfc38e0138c8eb4125f6296f3a8f63126e75288f3d3b7fc9e85c6c1f63", "signature": "public bool Changed", "summary": "_Bool changed" }, { "name": "Send", "kind": "field", "id": "field|Send|0|0|bool|||he70bac26a761d17520ddb5d7d37168ad091ede3b4c7cba9d5d8eb0f6f5e382d7", "signature": "public bool Send", "summary": "_Bool send" }] }, { "name": "CuiSharp.ResponseActionsOpts", "displayName": "ResponseActionsOpts", "kind": "struct", "summary": "cui_response_actions_opts. All fields are optional; zero selects native defaults.", "members": [{ "name": "NoRegenerate", "kind": "field", "id": "field|NoRegenerate|0|0|bool|||h06b5931683cdcc4cc9ae926772734510653e788fc8f6189b22819f9e647a2894", "signature": "public bool NoRegenerate", "summary": "_Bool no_regenerate" }, { "name": "NoShare", "kind": "field", "id": "field|NoShare|0|0|bool|||h32a001d872c2df9d7c8035c43bf1acbcd7d42ab762cc139aa15394787d93d6f4", "signature": "public bool NoShare", "summary": "_Bool no_share" }, { "name": "CopyText", "kind": "field", "id": "field|CopyText|0|0|string?|||hfe793dda98f888020e54f1782d429935c4c338206c4238febd197ee92f0efe2e", "signature": "public string? CopyText", "summary": "const char * copy_text" }] },