diff --git a/.claude/docs/patterns.md b/.claude/docs/patterns.md new file mode 100644 index 00000000..8157bcea --- /dev/null +++ b/.claude/docs/patterns.md @@ -0,0 +1,204 @@ +# Patterns + +Common patterns for working in this codebase. Applies to **`imgui-binding`**, **`imgui-lwjgl3`**, **`imgui-app`** and +their tests/examples. The codegen plumbing under `buildSrc/` is **not** part of these patterns — see +`.claude/rules/guardrails.md` for the rationale. + +## Working with the binding + +### The codegen loop + +The Java public API is materialized in two trees: + +``` +imgui-binding/src/main/java/ ← hand-written, source of truth +imgui-binding/src/generated/java/ ← codegen output, committed +``` + +You edit the first; the generator (`buildSrc/`) writes the second. Both are checked in so downstream consumers see a +normal Java project, but only the source tree is meaningful for review. + +``` +# typical edit flow +edit imgui-binding/src/main/java/imgui/Foo.java +./gradlew :imgui-binding:generateApi +./gradlew :imgui-binding:javadoc # catches doclint regressions early +git add -p imgui-binding/src/main/java imgui-binding/src/generated/java +git commit +``` + +If you skip `generateApi`, the generated tree drifts and CI fails. If you commit only the generated tree, your change +vanishes on the next regen. + +### Annotated stubs as a vocabulary + +The hand-written sources use annotations from `imgui.binding.annotation` to describe the wanted Java API on top of the +C++ shape: + +| Annotation | Use | +|--------------------------------|-------------------------------------------------------------------------------------------------------------------------| +| `@BindingSource` | Class-level: this type participates in codegen. | +| `@BindingMethod` | Method-level: emit a JNI bridge for this method. `name=` overrides the Java name; `callName=` overrides the C++ symbol. | +| `@BindingField` | Field-level: emit getter/setter for a struct field. | +| `@BindingAstEnum` | Bind a class to a clang-AST enum dump in `buildSrc/.../api/ast/`. | +| `@OptArg` | Mark a parameter as having an overload that omits it. | +| `@ArgValue`, `@ArgVariant` | Argument variant hints (e.g. `ImVec2` vs `(float, float)`). | +| `@ReturnValue` | Return-value hints (`isStatic` for shared instances, etc.). | +| `@TypeArray`, `@TypeStdString` | Map between Java arrays/`String` and C++ container types. | +| `@ExcludedSource` | Skip this source when running codegen. | + +When adding a new method, copy the annotation pattern from a structurally similar nearby method — the generator is +sensitive to placement and combinations. + +### Wrapping a native struct + +The recurring shape (see `ImVec2`, `ImInt`, `ImFontGlyph`, `ImColor`): + +1. Extend `imgui.binding.ImGuiStruct` if the type wraps a native pointer; otherwise it's a value type with public + mutable fields or a backing `T[] data` array. +2. Constructors: no-arg, copy (`new Foo(other)`), and per-field value form. +3. Fluent `set(...)` returning `this`. +4. `@Override` `toString` / `equals` / `hashCode`. Add `clone` with `@SuppressWarnings("MethodDoesntCallSuperMethod")` + and the copy-constructor inside. +5. Annotate `@BindingSource` if it's bound from upstream; otherwise leave plain. + +Don't invent a new layout — readers expect this one. + +### Out-parameters via `Im*` wrappers + +Dear ImGui's C++ API frequently takes `T*` for values the function will mutate (`bool* p_open`, `int* current_item`, +`float* values`). Java can't do that with primitives, so the binding uses single-element wrappers under `imgui.type`: + +| C++ | Java wrapper | +|-------------------------|--------------| +| `bool*` | `ImBoolean` | +| `int*` | `ImInt` | +| `short*` | `ImShort` | +| `long long*` | `ImLong` | +| `float*` | `ImFloat` | +| `double*` | `ImDouble` | +| `char*`, `std::string*` | `ImString` | + +Pattern from a caller's perspective: + +```java +ImBoolean isOpen = new ImBoolean(true); +if (ImGui.begin("Window", isOpen)) { + // ... + ImGui.end(); +} +if (!isOpen.get()) { + // window was closed via the title-bar X +} +``` + +When designing a new binding method that takes an out-parameter, mirror this — accept the wrapper, not a `boolean[]` or +`AtomicReference`. + +### `@OptArg` and overload generation + +A C++ default argument becomes a series of Java overloads, generated automatically. In source you write the most general +signature once and tag the optional tail: + +```java +@BindingMethod +public static native void ShowDemoWindow(@OptArg ImBoolean pOpen); +``` + +The generator emits both `showDemoWindow()` and `showDemoWindow(ImBoolean)`. You don't need to hand-write the overloads, +and you shouldn't. + +### Enums as constants on a holder class + +Dear ImGui's enums (`ImGuiWindowFlags`, `ImGuiCond`, `ImGuiKey`, …) are surfaced as classes under `imgui.flag.*` with +`public static final int` constants and a private constructor. They're driven from clang AST dumps via +`@BindingAstEnum`. When upstream adds or renames an enum value, regenerate the AST, then `generateApi` propagates it to +the flag class. + +Don't hand-edit the flag classes. If a value is missing, the AST is stale. + +## Module boundaries + +``` +imgui-binding ← Dear ImGui Java API + JNI. Zero runtime deps. +imgui-lwjgl3 ← GLFW + OpenGL backend. Depends on lwjgl + imgui-binding. +imgui-app ← Application abstraction. Depends on lwjgl + imgui-binding + imgui-lwjgl3, ships natives in the jar. +example ← Demos. Depends on imgui-app. +``` + +Rules of thumb: + +- New ImGui surface (a new function from upstream) → `imgui-binding`. +- New backend wiring (alternate GL version, headless renderer) → new module sibling to `imgui-lwjgl3`. Don't add Vulkan + to `imgui-lwjgl3`. +- New Application convenience (an extra lifecycle hook) → `imgui-app`. Keep it minimal — it's meant as a starting point, + not a framework. +- Demo of a new feature → `example/src/main/java/Example*.java`, named `Example.java`. + +Cross-module dependencies are one-way. `imgui-binding` must not depend on lwjgl or anything else. + +## Lifecycle of an `imgui-app` application + +`Application` extends `Window`. The `launch(...)` entry point runs: + +``` +configure(Configuration) ← override to set title/size/etc. +initWindow(Configuration) +initImGui(Configuration) ← override to load fonts, set styles +preRun() ← override: one-shot setup +loop: + preProcess() ← override: per-frame pre-work + process() ← override: your UI + postProcess() ← override: per-frame post-work +postRun() ← override: one-shot teardown +disposeImGui() +disposeWindow() +``` + +Threading: ImGui is single-threaded by design. Heavy work goes outside `process()` (background threads + lock-free +hand-off), not inside it. The `imgui.app.Application` Javadoc spells this out. + +## Tests + +Tests use **JUnit Jupiter (5.x)** — see `imgui-binding/build.gradle`. They run via `./gradlew :imgui-binding:test`. +There is no separate "integration" suite; test what you can in pure JVM, and rely on the example app for visual smoke +tests. UI behavior changes (new widget rendering, font glyph coverage, viewport handling) cannot be unit-tested — run +`./gradlew :example:run -PlibPath=...` and verify by eye. + +The `TypeName` Checkstyle rule is suppressed under `src/test/` so tests can use names like `ImGui_Test` without +complaint, but otherwise tests follow the same code style as production code. + +## Building native libs locally + +Two flows, both documented in `README.md`: + +1. **Recommended**: `buildSrc/scripts/build.sh ` — runs `vendor_freetype.sh`, calls `generateLibs`, + drops the binary in `/tmp/imgui/dst/`. Matches what CI does. +2. **Direct**: `./gradlew imgui-binding:generateLibs -Denvs= -Dlocal` — skip when you don't need FreeType or want + output under the project tree. + +After building, point the example at the fresh binary: + +``` +cp /tmp/imgui/dst/libimgui-java64. bin/ +./gradlew :example:run -PlibPath=$PWD/bin +``` + +Iterate `:example:run` (instead of `:imgui-binding:generateLibs` again) for Java-only changes — the native lib only +needs rebuilding when JNI signatures or vendored sources change. + +## Submodule bumps in one paragraph + +`AGENTS.md` is the canonical guide. The condensed flow: read upstream's changelog and header diff before touching +anything; bump the submodule pointer; `./gradlew generateAst` and revert any AST changes outside your scope; update +annotated sources to match upstream's renames/removals; `./gradlew :imgui-binding:generateApi`; run javadoc locally and +fix doclint hits; rebuild natives. Submodule bumps go in their own commit, separate from new-feature exposure. + +## Where to look first + +- `imgui.ImGui` — the giant entry-point class (1.4 MB worth of generated bindings + the static lib loader). +- `imgui.binding.ImGuiStruct` — the JNI handshake. +- `imgui.app.Application` — the lifecycle template you'd subclass. +- `imgui-lwjgl3/.../ImGuiImplGl3.java` — reference for what a full backend looks like. +- `example/src/main/java/Main.java` — the smallest end-to-end runnable, plus per-extension `Example*.java` siblings. +- `AGENTS.md` (repo root) — submodule-bump procedure, generator gotchas, doclint pitfalls. diff --git a/.claude/rules/codestyle.md b/.claude/rules/codestyle.md new file mode 100644 index 00000000..c61b8271 --- /dev/null +++ b/.claude/rules/codestyle.md @@ -0,0 +1,126 @@ +# Code Style + +Applies to **`imgui-binding/src/main/java/`**, **`imgui-lwjgl3/`**, **`imgui-app/`** and any other production module. +Does **not** apply to `buildSrc/` — see `guardrails.md`. + +The authoritative rules live in `config/checkstyle/checkstyle.xml`; this document is the human-readable summary. If the +two disagree, Checkstyle wins. + +## Formatting + +- **Indent**: 4 spaces. Never tabs (`FileTabCharacter` enforced). +- **Line length**: 160 columns max. +- **Trailing whitespace**: forbidden. End every file with a single newline. +- **EOL**: LF (`.editorconfig` pins this; do not introduce CRLF). +- **Braces**: K&R / Java standard — opening brace on the same line, single-statement `if`/`for`/`while` still get + braces (`NeedBraces`). +- **Blocks**: no nested anonymous `{ ... }` blocks (`AvoidNestedBlocks`); empty blocks must have a comment explaining + why (`EmptyBlock`). + +## Naming + +Follows standard Java conventions, enforced by Checkstyle: + +| Element | Convention | Example | +|--------------------------------|--------------------------|--------------------------------| +| Package | lowercase, dot-separated | `imgui.binding.annotation` | +| Class / interface / annotation | UpperCamelCase | `ImFontAtlas`, `BindingMethod` | +| Method | lowerCamelCase | `getFontSize()` | +| Field / parameter / local | lowerCamelCase | `fontGlyphRanges` | +| Constant (`static final`) | UPPER_SNAKE_CASE | `LIB_PATH_PROP` | + +Class names that wrap a Dear ImGui struct or enum keep the upstream prefix (`ImGuiIO`, `ImGuiStyle`, `ImGuiKey`) so Java +code reads close to C++ headers. Vector wrappers drop the namespace (`ImVec2`, `ImVec4`). + +## Imports + +- **No star imports**, with two whitelisted exceptions for `org.lwjgl.opengl.GL32` and `org.lwjgl.glfw.GLFW` — both + expose hundreds of constants and the explicit listing pattern is established (see `ImGuiImplGl3.java`). +- **Sort order**: third-party imports, then `java.*` / `javax.*`, then `static` imports — a blank line between the + regular and the static block. Match what's already in `ImGuiImplGl3.java`. +- **No unused imports** (`UnusedImports`). Don't keep them around "just in case". +- **Static imports** are fine for OpenGL constants, JUnit assertions, and similar bulk APIs. Use the same package per + file (e.g. consolidate everything on `GL32` even if a symbol exists in `GL11` — keeps the file uniform). + +## Modifiers & visibility + +- Modifier order is JLS-canonical: `public static final ...`, never `final static`. +- Redundant modifiers (`public` on interface methods, `static` on nested interface, etc.) are flagged. +- **Method parameters and local variables are `final` by default** (`FinalParameters`, `FinalLocalVariable`). Only drop + `final` when reassignment is genuinely needed; suppression for `ImGui.java` is intentional (it is generator-touched + and not representative). +- **`HideUtilityClassConstructor`**: utility classes (`ImColor`, `ImColor`-style `final class` with only static methods) + must declare a `private` no-arg constructor. +- **`FinalClass`**: a class with only private constructors must be declared `final`. +- **`VisibilityModifier`**: fields must be `private` unless there is a documented reason to expose them. Native struct + wrappers expose the `long ptr` field on purpose — that exception is established in `imgui.binding.ImGuiStruct` and the + `imgui` package is whitelisted in `suppressions.xml`. +- **`DesignForExtension`**: any non-final, non-private method on a non-final class must be `final`, `abstract`, or have + an empty body — i.e. design extension points explicitly. The `imgui.app` package is suppressed because `Application` + is meant to be subclassed; do the same only when subclass-friendly behavior is the intent. + +## Common-coding rules + +Enforced by Checkstyle and worth keeping in mind: + +- `EmptyStatement` — no stray `;`. +- `EqualsHashCode` — override both or neither. +- `InnerAssignment` — don't assign inside conditions. +- `MagicNumber` — extract numeric literals other than `-1, 0, 1, 2` into named constants. Suppressed for the `imgui.*` + packages because the binding mirrors raw enum values from C++ headers; do **not** use that as a license elsewhere. +- `MultipleVariableDeclarations` — one declaration per line (`int a, b;` is rejected). +- `MissingSwitchDefault`, `SimplifyBooleanExpression`, `SimplifyBooleanReturn`. +- `UpperEll` — `1L`, never `1l`. +- `ArrayTypeStyle` — `int[] arr`, never `int arr[]`. + +## Whitespace + +`GenericWhitespace`, `OperatorWrap`, `ParenPad`, `WhitespaceAround` and friends are all on. In practice: standard Java +spacing — space around binary operators and after commas, no space inside parens, generic angle brackets touch the type +name (`Map`). + +## Javadoc + +- The binding's public API ships Javadoc copied verbatim from upstream Dear ImGui headers. Preserve those comments when + editing — they round-trip through codegen. +- Inline operators that look like HTML (`<`, `>`, `&`, `->`) trip JDK 17 doclint. Wrap them in `{@code ...}`. Examples: + - `(flags & X)` → `{@code (flags & X)}` + - `if threshold < 0.0f` → `{@code if threshold < 0.0f}` + - `"Demo->Child->X"` → `{@code Demo->Child->X}` +- `@deprecated` Javadoc must come together with `@Deprecated` annotation, and should point at the replacement ( + `{@link #...}`). +- Don't add commentary for the sake of comments. The `ImColor`-style one-liner Javadoc on each overload is the bar — + accurate, terse. + +## Class structure (binding wrappers) + +Recurring pattern in `imgui.*` data classes (`ImVec2`, `ImInt`, `ImFontGlyph`, …): + +1. Public mutable fields **or** a private backing array, exposed via `get/set`. +2. No-arg, copy, and value constructors. +3. Fluent `set(...)` returning `this`. +4. `@Override` for `toString`, `equals`, `hashCode`, `clone` (with `@SuppressWarnings("MethodDoesntCallSuperMethod")` on + `clone`). +5. For struct pointers — extend `imgui.binding.ImGuiStruct`; never re-implement the `long ptr` field manually. + +When adding a new wrapper, mirror this layout — readers expect it. + +## Annotations on binding sources + +In `imgui-binding/src/main/java/`, hand-written sources are fed into the codegen via annotations from +`imgui.binding.annotation`: + +- `@BindingSource` — class-level marker that the type participates in codegen. +- `@BindingMethod`, `@BindingField`, `@BindingAstEnum` — method/field-level metadata. +- `@OptArg`, `@ArgValue`, `@ArgVariant`, `@ReturnValue`, `@TypeArray`, `@TypeStdString` — fine-grained signature hints. +- `@ExcludedSource` — exclude from codegen processing. + +Use the existing surrounding methods as the template; the generator is sensitive to annotation placement. + +## Suppressing rules + +- Prefer fixing the code over suppressing the rule. +- If suppression is required, use `@SuppressWarnings("CheckName")` at the smallest possible scope. Class-level + suppression of generic `"unused"` is reserved for `ImGui.java` and similar generator-fed entry points. +- Do **not** add new entries to `config/checkstyle/suppressions.xml` casually. That file currently relaxes rules for the + codegen-touched `imgui` package; adding more reduces signal across the rest of the codebase. diff --git a/.claude/rules/guardrails.md b/.claude/rules/guardrails.md new file mode 100644 index 00000000..be9ab876 --- /dev/null +++ b/.claude/rules/guardrails.md @@ -0,0 +1,169 @@ +# Guardrails + +What **not** to do when working in this repo. Applies to **`imgui-binding`**, **`imgui-lwjgl3`**, **`imgui-app`**, and +other production modules. + +## Scope note: `buildSrc/` is out of scope + +The Gradle plugin and codegen tooling under `buildSrc/` are in an actively-evolving state. Style, structure, and +shortcuts there reflect work-in-progress, not project conventions. **Do not extract style rules, naming patterns, or " +the project does X" claims from `buildSrc/`.** When the task is "fix a bug in the binding" or "add a new wrapper," do +not borrow patterns from generator code as authority. + +If the task explicitly targets `buildSrc/`, that is a separate context with its own (currently informal) rules — see +`AGENTS.md` for the few constraints that do apply there (Spoon generic-type bounds, Gradle 9 configuration cache). + +--- + +## The big two + +### 1. Never edit `imgui-binding/src/generated/java/` + +This directory is **codegen output**. Hand-edits are silently reverted on the next +`./gradlew :imgui-binding:generateApi`. + +The single source of truth is `imgui-binding/src/main/java/`. Workflow is always: + +``` +edit imgui-binding/src/main/java/... +./gradlew :imgui-binding:generateApi +git add imgui-binding/src/main/java imgui-binding/src/generated/java +git commit +``` + +If you find yourself wanting to fix something in the generated tree, that's a generator bug — file it or fix in +`buildSrc/`, do not work around it in the output. + +### 2. Never commit native build artifacts manually + +`bin/libimgui-java64.*` and `bin/imgui-java64.dll` are owned by CI's post-merge update job. Do not stage them as part of +feature work. + +- Use `git add ` rather than `git add -A` / `git add .` — bulk staging picks up `bin/` and `/tmp/imgui/` + outputs by accident. +- The same applies to anything under `imgui-binding/build/libsNative/` or `/tmp/imgui/`. + +--- + +## Don't break the JNI contract + +### Don't reorder, rename, or remove `native` method signatures without regenerating + +Native `Java_imgui_*` symbols on the C++ side are bound by JNI to the exact Java signature. Renaming a parameter is +fine; renaming a method, changing its parameter types, or moving it to a different class breaks the link silently — +you'll get `UnsatisfiedLinkError` only at runtime. + +When adding/changing a `native` method: + +1. Edit the source class under `src/main/java/`. +2. Run `./gradlew :imgui-binding:generateApi` to regenerate the Java side. +3. Run `./gradlew :imgui-binding:generateLibs` (or `buildSrc/scripts/build.sh `) to rebuild the native lib. +4. Smoke-test by running `:example:run` against the locally-built lib. + +Static checks alone are not enough: missing JNI bindings only surface when the call is actually made. + +### Don't reach into `ImGuiStruct.ptr` from feature code + +The `public long ptr` field on `imgui.binding.ImGuiStruct` is a binding implementation detail that the generator and JNI +layer rely on. It is intentionally public so the generator can swap pointers when iterating native arrays. Application +code should treat it as opaque — interact via the methods on the wrapper, not the raw pointer. + +### Don't allocate native handles outside the binding + +Anything that owns native memory comes from a wrapper that knows how to dispose it (`ImGuiStructDestroyable`, the +lifecycle hooks in `imgui.app.Application`). Don't construct fake `ImGuiStruct` instances pointing at addresses you +computed yourself, and don't bypass `ImGui.init()` — the static initializer in `ImGui.java` does library loading, JNI +handshake, and InputText callback setup, and other classes assume it has run. + +--- + +## Don't loosen Checkstyle to avoid fixing code + +`config/checkstyle/checkstyle.xml` runs at `severity="error"` for `imgui-lwjgl3` and `imgui-app`. When a check fires: + +- Fix the code first. +- If a rule legitimately doesn't fit a specific construct, suppress at the **smallest scope** with + `@SuppressWarnings("...")`. +- Do **not** add entries to `config/checkstyle/suppressions.xml` to silence warnings — those are reserved for the + `imgui.*` codegen-touched package and a few historical carve-outs. New blanket suppressions weaken the signal for the + whole codebase. +- Do **not** disable checks in the XML to "unblock" a PR. + +--- + +## Don't break Java 8 compatibility on consumed classes + +The build uses JDK 17 toolchain but compiles with `--release 8`. Public modules ship as Java 8 bytecode for downstream +consumers. + +This means: **no Java 9+ APIs** in code that lands in `imgui-binding`, `imgui-lwjgl3`, or `imgui-app`, even if your IDE +auto-completes them. Common foot-guns: + +- `List.of(...)`, `Map.of(...)`, `Set.of(...)` — Java 9. +- `String.isBlank()`, `String.strip()`, `String.repeat()` — Java 11. +- `var` for local types — Java 10. +- Stream collectors that arrived after 8 (`Collectors.toUnmodifiableList()` etc.). +- `Optional.isEmpty()`, `Optional.or(...)` — Java 9/11. + +Use `Collections.singletonList(...)`, `new HashMap<>()`, `!s.trim().isEmpty()`, explicit types, etc. + +--- + +## Don't break the doclint build + +Javadoc runs as part of CI for `imgui-binding`. The doc comments are largely copied verbatim from Dear ImGui's C++ +headers, and JDK 17's strict doclint trips on patterns that look like malformed HTML. + +When pasting upstream comments: + +- Wrap operators in `{@code ...}` — `<`, `>`, `&`, `&&`, `||`, `->` all break otherwise. +- `@link` references must resolve to an existing method **with the current signature**. After a method rename or + parameter change, every `@link` to it must be updated in the same commit. +- `@param` and `@return` tags must match the current method shape; mismatched tags are doclint errors. + +For a fast local check, run the javadoc snippet from `AGENTS.md` ("Fast javadoc iteration without Gradle"). + +--- + +## Don't introduce dependencies casually + +`imgui-binding` ships with **zero runtime dependencies** — that is a feature, not an accident. Adding a dependency to +the binding is a breaking change for downstream consumers and must be discussed before doing it. + +- `imgui-lwjgl3` may depend on LWJGL (it already does — that's the point). +- `imgui-app` bundles LWJGL + native libs and that's it. +- New transitive deps under `imgui-binding` are a hard "no" without explicit sign-off. + +When tempted to pull in Guava / Apache Commons / SLF4J for a one-off utility — write the utility instead. Look at how +`ImGui.java` resolves the native lib path with stdlib `Files`/`Paths` only. + +--- + +## Don't ship debug/log output by default + +The binding does not log. There is no SLF4J, no `System.out.println`. The one place stderr is acceptable is the +assertion callback in `ImGui.java`'s static init, and that's a bug-discovery tool, not general logging. + +If you need diagnostics during development, use them and remove before commit. Production code paths must stay quiet — +downstream applications integrate this library into their own logging, and surprise stdout breaks them. + +--- + +## Don't merge submodule bumps with feature work + +When upgrading Dear ImGui or an extension submodule: + +- Bump the submodule, regenerate AST, regenerate API, fix javadoc — **one PR**. +- New surface added on top of the bump (e.g., exposing a new flag) — **separate PR**, after the bump merges. +- Same for Gradle/dependency bumps and codegen-tooling changes — keep them in their own PRs. + +Mixing makes the diff unreviewable and the failure mode unclear when CI breaks. + +--- + +## Don't trust AST regeneration to scope itself + +`./gradlew generateAst` may rewrite JSONs unrelated to the submodule you bumped (e.g. `ast-ImGuiFileDialog.json`, +`ast-TextEditor.json`) because clang picks up different system headers per machine. Those changes are local environment +drift, not real API changes — **revert them** before committing. Keep the AST diff scoped to the submodule you actually +touched. diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 00000000..35033b2f --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,13 @@ +# These are supported funding model platforms + +github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: spair +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..20591a85 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,31 @@ +name: Bug Report +description: Create a report to help reproduce and fix the issue +title: "Bug: " +labels: [ bug ] +body: + - type: input + attributes: + label: Version + description: What version of imgui-java did you use? + validations: + required: true + - type: textarea + attributes: + label: What happened? + description: Also tell us, what did you expect to happen? + placeholder: Tell us what you see! + value: A bug happened! + validations: + required: true + - type: textarea + attributes: + label: Reproduction + description: How did you manage to make the error happen? + placeholder: How did you do it? + validations: + required: true + - type: textarea + attributes: + label: Relevant log output + description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: bash diff --git a/.github/ISSUE_TEMPLATE/missing_bindings.yml b/.github/ISSUE_TEMPLATE/missing_bindings.yml new file mode 100644 index 00000000..23c2488a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/missing_bindings.yml @@ -0,0 +1,38 @@ +name: Missing Bindings +description: Create a report to help reproduce and fix the issue +title: "Missing Bindings: " +labels: [ "missing binding" ] +body: + - type: input + attributes: + label: Version + description: What version of imgui-java did you use? + validations: + required: true + - type: dropdown + attributes: + label: What part of the binding has gaps? + options: + - Dear ImGui + - ImNodes + - imgui-node-editor + - ImGuizmo + - implot + - ImGuiColorTextEdit + - ImGuiFileDialog + - ImGui Club MemoryEditor + validations: + required: true + - type: textarea + attributes: + label: What is missing? + description: Tell us, what part of the API is missing? + placeholder: Tell us what you are missing! + value: Something is missing! + validations: + required: true + - type: markdown + attributes: + value: | + Please, provide additional references like links to a source code of the missing API. + If there are several ways to implement the API, provide a pov of yourself. diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..0bc01bf5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +version: 2 +updates: + - package-ecosystem: github-actions + directory: / + schedule: + interval: weekly + labels: + - deps + + - package-ecosystem: gradle + directory: / + schedule: + interval: weekly + labels: + - deps diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 00000000..3d68ff00 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,15 @@ + + +## Type of change + + + +- [ ] Minor changes or tweaks (quality of life stuff) +- [ ] Bug fix (non-breaking change which fixes an issue) +- [ ] New feature (non-breaking change which adds functionality) +- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) +- [ ] This change requires a documentation update diff --git a/.github/workflows/ci-build.yml b/.github/workflows/ci-build.yml deleted file mode 100644 index 49b57918..00000000 --- a/.github/workflows/ci-build.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: CI Build -on: [ push, pull_request ] -jobs: - gradle: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 - with: - java-version: 8 - - uses: eskatos/gradle-command-action@v1 - with: - arguments: build diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..5f1a85e5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,196 @@ +name: CI + +on: + push: + branches: + - main + tags: + - v* + pull_request: + branches: + - main + +jobs: + build-java: + name: Build Java + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: liberica + java-version: 17 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v6 + + - name: Build + run: ./gradlew buildAll + + # This helps to upload only jar files into the build artifact + - name: Copy Build Results to Temp + run: | + mkdir -p tmp/ + cp imgui-app/build/libs/*.jar tmp/ + cp imgui-binding/build/libs/*.jar tmp/ + cp imgui-lwjgl3/build/libs/*.jar tmp/ + + - name: Upload Artifacts + uses: actions/upload-artifact@v7 + with: + name: java-libraries + path: tmp/*.jar + + build-natives: + name: Build Native (${{ matrix.target.os }} - ${{ matrix.target.type }}) + needs: build-java + strategy: + fail-fast: false + matrix: + target: + - os: ubuntu-latest + type: linux + - os: ubuntu-latest + type: windows + - os: macos-latest + type: macos + runs-on: ${{ matrix.target.os }} + steps: + - name: Checkout Repository and Submodules + uses: actions/checkout@v6 + with: + fetch-depth: 0 + submodules: recursive + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: liberica + java-version: 17 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v6 + + - name: Install Dependencies (for Windows build) + if: matrix.target.type == 'windows' + run: sudo apt install mingw-w64 + + - name: Build + run: | + chmod +x buildSrc/scripts/build.sh + buildSrc/scripts/build.sh ${{ matrix.target.type }} + + - name: Upload Artifacts + uses: actions/upload-artifact@v7 + with: + name: native-library-${{ matrix.target.type }} + path: /tmp/imgui/dst/ + + # This required to pack all native libraries into single archive + archive-natives: + name: Archive Natives + runs-on: ubuntu-latest + needs: build-natives + steps: + - name: Merge Artifacts + uses: actions/upload-artifact/merge@v7 + with: + name: native-libraries + pattern: native-library-* + + update-bin: + name: Update Binaries + if: github.ref == 'refs/heads/main' && !github.event.repository.fork # runs only on the main branch and not forks (sometimes people do PRs from the main branch) + runs-on: ubuntu-latest + needs: archive-natives + steps: + - name: Checkout Repository + uses: actions/checkout@v6 + + - name: Download Artifacts + uses: actions/download-artifact@v8 + with: + path: /tmp/artifacts + + # Job compares sha1 hash of the imgui-binding/src/main directory. + # If there are any changes, then we update native libraries. + # We do not rely on git in terms of comparing binaries, + # since DLL files will always have versioning difference. + - name: Compare Binding Hash + id: cmp-binding-hash + continue-on-error: true + run: | + touch bin/binding.sha1 + cat bin/binding.sha1 > /tmp/hash + find imgui-binding/src/main -type f -print0 | sort -z | xargs -0 sha1sum > bin/binding.sha1 + find imgui-binding/src/generated -type f -print0 | sort -z | xargs -0 sha1sum >> bin/binding.sha1 + find include -type f -print0 | sort -z | xargs -0 sha1sum >> bin/binding.sha1 + cmp /tmp/hash bin/binding.sha1 + + - name: Update + if: steps.cmp-binding-hash.outcome != 'success' + run: mv /tmp/artifacts/native-libraries/* bin/ + + - name: Commit + if: steps.cmp-binding-hash.outcome != 'success' + uses: EndBug/add-and-commit@v10 + with: + default_author: github_actions + message: '[ci skip] update native binaries' + + release: + name: Release + if: startsWith(github.ref, 'refs/tags/v') # if tag starts with "v" + runs-on: ubuntu-latest + needs: [ build-java, archive-natives ] + steps: + - name: Checkout Repository + uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - name: Setup Java + uses: actions/setup-java@v5 + with: + distribution: liberica + java-version: 17 + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v6 + + - name: Download Artifacts + uses: actions/download-artifact@v8 + with: + path: out/artifacts + + - name: Zip Artifacts + run: | + mkdir out/archives + zip -rj out/archives/native-libraries out/artifacts/native-libraries + zip -rj out/archives/java-libraries out/artifacts/java-libraries + + - name: Publish + env: + NEXUS_UPD_ID: ${{ secrets.RELEASE_NEXUS_UPD_ID }} + NEXUS_UPD_PASS: ${{ secrets.RELEASE_NEXUS_UPD_PASS }} + SIGNING_KEY_ID: ${{ secrets.RELEASE_SIGNING_KEY_ID }} + SIGNING_KEY: ${{ secrets.RELEASE_SIGNING_KEY }} + SIGNING_KEY_PASS: ${{ secrets.RELEASE_SIGNING_KEY_PASS }} + run: | + chmod +x ./buildSrc/scripts/publish.sh + buildSrc/scripts/publish.sh + + - name: Release + uses: softprops/action-gh-release@v3 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + draft: true + prerelease: false + files: | + out/archives/** diff --git a/.gitignore b/.gitignore index e5d6d4f6..aee6e667 100644 --- a/.gitignore +++ b/.gitignore @@ -25,10 +25,14 @@ logs/ *.tar.gz *.rar *.gpg +!vendor/*.tar.gz # Gradle .gradletasknamecache .gradle/ -!gradle/wrapper/*.jar build/ out/ +!gradle/wrapper/*.jar + +# Dear ImGui runtime layout file (written by ImGui on exit) +imgui.ini diff --git a/.gitmodules b/.gitmodules index 83a2b573..2aadfa68 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,27 @@ [submodule "include/imgui"] path = include/imgui url = https://github.com/ocornut/imgui -[submodule "include/imgui-node-editor"] - path = include/imgui-node-editor - url = https://github.com/thedmd/imgui-node-editor [submodule "include/imnodes"] path = include/imnodes url = https://github.com/Nelarius/imnodes +[submodule "include/imguizmo"] + path = include/imguizmo + url = https://github.com/CedricGuillemet/ImGuizmo.git +[submodule "include/implot"] + path = include/implot + url = https://github.com/epezent/implot.git +[submodule "include/ImGuiColorTextEdit"] + path = include/ImGuiColorTextEdit + url = https://github.com/goossens/ImGuiColorTextEdit +[submodule "include/ImGuiFileDialog"] + path = include/ImGuiFileDialog + url = https://github.com/aiekick/ImGuiFileDialog +[submodule "include/imgui-node-editor"] + path = include/imgui-node-editor + url = https://github.com/thedmd/imgui-node-editor +[submodule "include/imgui_club"] + path = include/imgui_club + url = https://github.com/ocornut/imgui_club +[submodule "include/imgui-knobs"] + path = include/imgui-knobs + url = https://github.com/altschuler/imgui-knobs diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 00000000..61e22ab5 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,213 @@ +# AGENTS.md + +Guidance for AI coding agents working on `imgui-java`. + +This file is the operational guide: what the repo is, how to build it, the procedure for +upgrading submodules, and the codegen-internals conventions. The everyday conventions and +"don't"s live in companion files — read them too: + +- **`.claude/rules/guardrails.md`** — what *not* to do. Covers the golden rules (never + edit `src/generated/java/`, never commit `bin/` natives), the JNI contract, Java 8 + compatibility on consumed classes, doclint pitfalls, dependency hygiene, AST drift, + and the rule against mixing submodule bumps with feature work. +- **`.claude/rules/codestyle.md`** — Java style for `imgui-binding/`, `imgui-lwjgl3/`, + `imgui-app/` (formatting, naming, modifiers, imports, javadoc, wrapper class shape, + binding-source annotations). Authoritative copy is `config/checkstyle/checkstyle.xml`. +- **`.claude/docs/patterns.md`** — recurring patterns when adding to the binding (the + codegen loop, annotated stubs, struct wrappers, out-parameter `Im*` wrappers, module + boundaries, application lifecycle). +- **`docs/CONTRIBUTING.md`** — PR/commit workflow. Includes the conventional-commit + format and, importantly, the **`Co-authored-by` trailer rule for AI-assisted commits** + and the "you are responsible for the change" rule. Read it before opening a PR. + +If anything below conflicts with those files, the dedicated file wins — update it +there, not here. + +## What this repo is + +JNI-based Java binding for [Dear ImGui](https://github.com/ocornut/imgui) + extensions (ImPlot, ImNodes, ImGuizmo, imgui-node-editor, imgui-knobs, imgui-file-dialog, imgui-text-edit, imgui-club). Multi-module Gradle build, published as `io.github.spair:imgui-java-{binding,lwjgl3,app}`. Java is **codegen-driven**: annotated stubs in `imgui-binding/src/main/java/`, expanded by the Spoon-based generator in `buildSrc/` into `imgui-binding/src/generated/java/` — both trees committed. + +The most important rule to internalize before doing anything else: **never edit +`imgui-binding/src/generated/java/` by hand** — it is regenerated from the annotated +sources in `imgui-binding/src/main/java/`. See `.claude/rules/guardrails.md` for the +full statement and the workflow. + +## Project layout + +| Path | What's there | +|--------------------------------------------------------|---------------------------------------------------------------------------------------------------------| +| `imgui-binding/` | Core JNI binding + codegen | +| `imgui-binding/src/main/java/` | Hand-written annotated sources (`@BindingSource`, `@BindingField`, `@BindingMethod`, `@BindingAstEnum`) | +| `imgui-binding/src/generated/java/` | Codegen output; committed. See `.claude/rules/guardrails.md` | +| `imgui-binding/src/main/native/` | Hand-written JNI `.cpp` / `.h` (struct marshaling etc.) | +| `imgui-lwjgl3/` | LWJGL backend (GLFW + OpenGL) | +| `imgui-app/` | Convenience wrapper bundling natives + an `Application` entry-point | +| `include/` | Git submodules: imgui, implot, imnodes, imguizmo, etc. | +| `bin/` | Native libs (`.so/.dylib/.dll`), committed by CI | +| `buildSrc/` | Gradle plugin: codegen tasks, JNI build, AST parser | +| `buildSrc/src/main/resources/generator/api/ast/*.json` | Clang-dumped AST data, consumed by `@BindingAstEnum` | +| `example/` | Example apps | +| `patches/` | Local patches against vendored submodules | + +## Build & test + +Gradle's toolchain pins JDK 17 regardless of the system JDK. + +```bash +./gradlew :imgui-binding:compileJava # fast Java-side check +./gradlew :imgui-binding:javadoc # catch doc errors (CI also runs this; mandatory pass) +./gradlew :imgui-binding:generateApi # regen src/generated/java from annotated sources +./gradlew generateAst # regen clang AST JSONs (needs clang++ installed) +./gradlew :imgui-binding:generateLibs # build native JNI libs (per-OS; CI handles cross-platform) +./gradlew build # full build + tests +``` + +**Visual smoke test** — backend, font, texture, or example changes need a runtime run; static checks can't catch blank atlases or assertion loops: + +```bash +buildSrc/scripts/build.sh # builds freetype + generateLibs +cp /tmp/imgui/dst/libimgui-java64. bin/ +./gradlew :example:run -PlibPath=$PWD/bin +``` + +**Fast javadoc iteration without Gradle:** + +```bash +find imgui-binding/src/generated/java imgui-binding/src/main/java -name '*.java' > /tmp/files.txt +javadoc -d /tmp/jdoc -Xdoclint:all \ + -sourcepath imgui-binding/src/generated/java:imgui-binding/src/main/java \ + @/tmp/files.txt 2>&1 | grep 'error:' +``` + +Zero `error:` lines is the bar. Warnings (mostly missing `@param`/`@return` on regenerated methods) are the baseline and non-blocking. + +## Upgrading Dear ImGui or an extension + +### 0. Orient yourself + +Read the upstream changelog and diff before touching anything. + +```bash +cd include/imgui # or implot, imnodes, etc. +git fetch --tags origin +less CHANGELOG.txt # imgui has this; others vary (docs/CHANGELOG.md, release notes) +git log --oneline .. # commit-level overview +git diff .. -- '*.h' # header-level diff — what actually changes the C API +``` + +Identify: + +- **Breaking changes** — removed/renamed functions, changed signatures, enum renames, struct field changes. Grep hand-written sources for any `@BindingMethod`/`@BindingField` that hits these. +- **Obsoleted APIs** — usually guarded by `IMGUI_DISABLE_OBSOLETE_FUNCTIONS`. Decide per-case whether the binding keeps the legacy surface (flagged as obsolete in docs) or drops it; mirror upstream's stance. +- **New features worth exposing** — new functions, flags, struct fields useful from Java. Prefer landing the bump first, then adding new surface in follow-up commits. +- **AST implications** — new types/renames surface in regenerated `ast-*.json`. Unexpected AST changes outside your target submodule = drift (revert per Gotchas). + +Use this reading to write a meaningful commit message and PR description. A one-line "bump imgui" is never enough. + +### 1. Mechanical flow + +1. Bump the submodule pointer. + ```bash + git -C include/imgui checkout v1.92.7 + ``` +2. Regenerate the clang AST. + ```bash + ./gradlew generateAst + ``` + Commit the resulting `buildSrc/src/main/resources/generator/api/ast/ast-.json`. If *other* AST JSONs change (e.g., `ast-ImGuiFileDialog.json`, `ast-TextEditor.json`), that's unrelated local clang/system-header drift — **revert those**, keep the diff scoped. +3. Update annotated sources under `imgui-binding/src/main/java/` to match upstream's new/renamed/removed fields and methods exactly. Doc comments copy through verbatim — pre-sanitize anything that'd trip doclint (see Gotchas). +4. Regenerate Java. + ```bash + ./gradlew :imgui-binding:generateApi + ``` + Commit `src/generated/java/` changes alongside the source changes. +5. **Run javadoc locally** (see above). Any errors → fix in source, regen, recheck. +6. `./gradlew generateLibs` rebuilds the native lib for the current OS. CI builds the cross-platform set on merge and commits to `bin/`. + +## Gotchas (what bites on a submodule bump) + +The general "don't"s — javadoc doclint, AST drift, committing `bin/` artifacts — are +all spelled out in `.claude/rules/guardrails.md`. The items below are submodule-bump +specifics that aren't covered there. + +### Vendor patches + +Some submodules need local patches to compile against current imgui (e.g., `imgui-node-editor`'s `operator*` overload colliding with imgui's). Patches live in `patches/`, applied idempotently by `buildSrc/scripts/apply_vendor_patches.sh` (wired into `generateLibs`). When bumping a patched submodule, re-check the patch still applies; drop if upstream fixed the issue. + +### Native source rewrites in `GenerateLibs.groovy` + +`buildSrc/.../GenerateLibs.groovy` does literal-string rewrites against vendored C++ sources (e.g., swapping the default font loader in `imgui_draw.cpp`). When imgui renames the anchor symbol across versions, the rewrite silently no-ops and the native build ships unpatched — grep `replaceSourceFileContent(` on every submodule bump and refresh each anchor. + +### Rebasing: regenerate, don't hand-merge + +Conflict markers inside generated files or AST JSONs are a false fight. Take your side, then re-run `generateAst` / `generateApi` on the rebased tree. Hand-merging codegen output just produces drift. + +### Submodule sync after branch switch + +`git checkout ` doesn't update submodules. If `include/*` pointers differ between branches you'll compile against the wrong headers with mystifying errors. After any branch/rebase touching `include/`: `git submodule update --init --recursive`. + +### Doclint sanitizer coverage gap + +Only enum-constant docs are auto-sanitized (via `ast_content.kt`'s `sanitizeDocComment`); class- and method-level +Javadoc is copied verbatim from upstream C++ headers. Extending the sanitizer to cover those too would eliminate the +manual `{@code ...}` step on bumps — open opportunity. Until then, run javadoc locally before pushing (see +`.claude/rules/guardrails.md` → "Don't break the doclint build" for the fix patterns). + +## Design conventions + +### Dual font loader (stb_truetype + FreeType) + +Native build ships both loaders. `GenerateLibs.groovy` rewrites `imgui_draw.cpp` so the compile-time default is stb_truetype even when `IMGUI_ENABLE_FREETYPE` is set; `ImFontAtlas#setFreeTypeRenderer(boolean)` flips between them at runtime. When refactoring font-related code or bumping imgui, preserve this: the patch anchor (see Gotchas) and the Java toggle must stay in sync with imgui's current loader-selection API. + +## Codegen conventions (when editing `buildSrc/`) + +Only relevant if you're changing the generator itself (`buildSrc/src/main/kotlin/tool/generator/**`); routine source edits under `imgui-binding/src/main/java/` don't need this section. + +### Don't use `` as a generic type arg in Spoon calls + +Kotlin 2.x K2 emits a runtime `CHECKCAST java/lang/Void` for `` generic returns, which fails since Spoon returns concrete types. Use bound-appropriate types: + +| Setter | Bound / use | +|---|---| +| `setType` | `>` | +| `setSimpleName` on CtNamedElement | `` | +| `setSimpleName` on CtReference | `` | +| `setParent`, `setAnnotations`, `addAnnotation`, `setDocComment` | `` | +| `addModifier`, `setModifiers` | `` | +| `addParameter`, `addParameterAt`, `setParameters` | `>` | +| `setBody` | `` | +| `addStatement` | `` | +| `setTags`, `removeTag` | `` | +| `setValue` | `` | +| `addValue` | `>` | +| `createMethod` / `createField` / `createParameter` | `` | + +For `CtMethod<*>` receivers of setters bounded on `CtExecutable`, Kotlin can't reconcile — cast: + +```kotlin +@Suppress("UNCHECKED_CAST") +val newMethod = method.clone() as CtMethod +newMethod.setParameters>(newParams) +``` + +### Gradle 9 configuration cache + +Use `providers.exec { ... }` for shell-outs, never `.execute()`. Capture resolved strings at configuration time; don't capture the `Project` model in closures that execute later. + +## PR workflow + +The full commit-message format, the conventional-commit types/scopes, and the +mandatory `Co-authored-by` trailer for AI-assisted commits are documented in +`docs/CONTRIBUTING.md` — follow that. The rule that submodule bumps, Gradle/deps +bumps, and codegen-tooling changes each go in their own PR is in +`.claude/rules/guardrails.md` ("Don't merge submodule bumps with feature work"). + +Operational guidance on top of those: + +- When multiple PRs are open, suggest a merge order: + 1. Infrastructure (Gradle, build tooling) — unblocks everything else. + 2. Independent changes (submodule refresh) — low risk, fast review. + 3. Larger API bumps, in dependency order. +- Offer to rebase after each preceding merge. +- For CI failures, start with `gh pr checks ` to identify the failing job, then `gh run view --job --log` + for focused output. Reproduce locally — don't iterate on CI. diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..20acacc8 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,23 @@ +# CLAUDE.md + +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. + +See [AGENTS.md](AGENTS.md) — it is the canonical guidance for AI agents in this repo and covers everything Claude Code +needs: + +- What the repo is (JNI binding for Dear ImGui + extensions, codegen-driven multi-module Gradle build). +- Project layout (`imgui-binding/`, `imgui-lwjgl3/`, `imgui-app/`, `buildSrc/`, `include/` submodules, etc.). +- The **golden rule**: never edit `imgui-binding/src/generated/java/` — it is regenerated from annotated sources in + `imgui-binding/src/main/java/`. Workflow: edit source → `./gradlew :imgui-binding:generateApi` → commit both trees + together. +- Build & test commands (`compileJava`, `javadoc`, `generateApi`, `generateAst`, `generateLibs`, `build`) and the visual + smoke-test flow for backend/font/example changes. +- Submodule-bump procedure for Dear ImGui and extensions, including AST regeneration scope rules. +- Gotchas: doclint-vs-C++ comment patterns, vendor patches, `GenerateLibs.groovy` literal-string rewrites, AST drift, + rebase strategy for codegen output, submodule sync after branch switch, `bin/` ownership by CI. +- Design conventions (dual font loader: stb_truetype + FreeType). +- Codegen-internals conventions for `buildSrc/` (Spoon generic-type bounds, Gradle 9 configuration cache). +- PR workflow and merge-ordering guidance. + +Treat `AGENTS.md` as authoritative. If something here ever conflicts with `AGENTS.md`, `AGENTS.md` wins — update it +there, not here. diff --git a/LICENSE b/LICENSE index a5492787..1ab3aa97 100644 --- a/LICENSE +++ b/LICENSE @@ -1,201 +1,21 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2019-2021, Ilya "SpaiR" Prymshyts - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. +MIT License + +Copyright (c) 2019-present, Ilya "SpaiR" Prymshyts + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md index a0329ccd..ec3fcdd2 100644 --- a/README.md +++ b/README.md @@ -1,68 +1,114 @@ -# imgui-java -[![CI Build](https://github.com/SpaiR/imgui-java/workflows/CI%20Build/badge.svg)](https://github.com/SpaiR/imgui-java/actions?query=workflow%3A%22CI+Build%22) -[![Maven Central](https://img.shields.io/maven-central/v/io.github.spair/imgui-java-binding?logo=apache-maven)](https://search.maven.org/search?q=g:io.github.spair%20AND%20a:imgui-java-*) +
+ +# ImGui Java + +**JNI based binding for [Dear ImGui](https://github.com/ocornut/imgui)** + +[![Github All Releases](https://img.shields.io/github/downloads/SpaiR/imgui-java/total.svg?logo=github)](https://github.com/SpaiR/imgui-java/releases) +[![CI](https://github.com/SpaiR/imgui-java/actions/workflows/ci.yml/badge.svg)](https://github.com/SpaiR/imgui-java/actions/workflows/ci.yml)
+[![Maven Central](https://img.shields.io/maven-central/v/io.github.spair/imgui-java-binding?logo=apache-maven)](https://central.sonatype.com/search?q=io.github.spair++imgui-java) [![binding javadoc](https://javadoc.io/badge2/io.github.spair/imgui-java-binding/javadoc_binding.svg?logo=java)](https://javadoc.io/doc/io.github.spair/imgui-java-binding) [![app javadoc](https://javadoc.io/badge2/io.github.spair/imgui-java-app/javadoc_app.svg?logo=java)](https://javadoc.io/doc/io.github.spair/imgui-java-app) -## Important News! -_(If you are using raw jars, you can skip this section.)_
-Because of [JCenter shutdown](https://jfrog.com/blog/into-the-sunset-bintray-jcenter-gocenter-and-chartcenter/) library has moved to Maven Central. -That fact affects nothing, but the groupId parameter in your Gradle and Maven configuration files. -From version `1.80-1.5.0` use `io.github.spair` instead of `io.imgui.java`. See an updated [How To Use](#how-to-use) section for details. +Tracks **Dear ImGui v1.92.7** (docking branch). -**Old versions will not be transferred to Maven Central and will become unavailable after JCenter goes down.** +
--- -JNI based binding for [Dear ImGui](https://github.com/ocornut/imgui) with no dependencies.
-Read official [documentation](https://github.com/ocornut/imgui#usage) and [wiki](https://github.com/ocornut/imgui/wiki) to see how to work with Dear ImGui. -Almost everything from C++ could be done in Java in the same way. +### Features -Binding has an OpenGL renderer and a GLFW backend implementation, using a [LWJGL3](https://www.lwjgl.org/) library. Could be found in [imgui-lwjgl3](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/imgui-lwjgl3) module.
-They are recommended, yet optional to use. The advantage of Dear ImGui is a portability, so feel free to copy-paste classes or write your own implementations.
+- Generated JNI code with no third-party runtime dependencies. +- Small footprint, direct native calls. +- Full coverage of the public Dear ImGui API, adapted for idiomatic Java usage. +- [Multi-Viewports](https://github.com/ocornut/imgui/wiki/Multi-Viewports) + and [Docking](https://github.com/ocornut/imgui/wiki/Docking) support (docking branch). +- Optional [FreeType font renderer](#freetype) for higher-quality text. +- Bundled [extensions](#extensions): ImPlot, ImNodes, imgui-node-editor, ImGuizmo, ImGuiColorTextEdit, ImGuiFileDialog, + ImGui Club MemoryEditor, imgui-knobs. -Additionally, there is an [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/imgui-app) module, which provides **a high abstraction layer**.
-It hides all low-level stuff under one class to extend, so you can build your GUI application instantly. +The repo ships three Maven artifacts: -### Features -- **Small and Efficient**
- Binding has a very small memory footprint and uses direct native calls to work.
-- **Fully Featured**
- All public API was carefully implemented with Java usage in mind.
-- **Multi-Viewports/Docking Branch**
- Binding has a full support of [Multi-Viewports](https://github.com/ocornut/imgui/wiki/Multi-Viewports) and [Docking](https://github.com/ocornut/imgui/wiki/Docking).
-- **FreeType Font Renderer**
- FreeType font renderer is included by default to draw a better quality fonts. Should be [enabled](https://github.com/ocornut/imgui/blob/v1.80/misc/freetype/README.md) though.
-- **Extensions**
- Binding includes several useful [extensions](https://github.com/ocornut/imgui/wiki/Useful-Widgets) for Dear ImGui. [See full list](#extensions). +- **`imgui-java-app`** — high-level wrapper with bundled GLFW + OpenGL + native libs. Subclass `Application`, override + `process()`. +- **`imgui-java-binding`** — the binding itself, no backend included. +- **`imgui-java-lwjgl3`** — ready-made GLFW/OpenGL backend on top of [LWJGL3](https://www.lwjgl.org/) for use with + `imgui-java-binding`. -# How to Try -_Make sure you have installed Java 8 or higher._ +Backends are optional — Dear ImGui is renderer-agnostic, so feel free to copy `imgui-lwjgl3` as a starting point and +adapt it to your stack. -### [Demo](https://i.imgur.com/c0ds1EZ.gif) +# How to Try -You can try binding by yourself in three simple steps: +JDK 17+ is required to run the build (Gradle's toolchain pins it). Published artifacts target Java 8 bytecode, so +consuming them as a dependency only needs JDK 8+ at runtime. ``` -git clone --branch v1.80-1.5.0 https://github.com/SpaiR/imgui-java.git +git clone --recurse-submodules https://github.com/SpaiR/imgui-java.git cd imgui-java -./gradlew :example:start +./gradlew :example:run +# SDL3 + SDL_GPU backend smoke test: +./gradlew :example:run -PmainClass=MainSdl ``` -See [example](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/example) module to try other widgets in action. +`example/src/main/java/` contains a runnable showcase for every widget and extension — start with `Main.java`, then +explore the per-extension `Example*.java` files. + +# How to Use + +Pick a module based on how much control you need: + +- **`imgui-app`** — one-jar batteries-included setup (GLFW + OpenGL + Dear ImGui + native libs). Extend `Application`, + override `process()`, you're done. +- **`imgui-binding`** + **`imgui-lwjgl3`** — bring your own backend wiring. Use this when you want to integrate ImGui + into an existing render loop or a non-default GLFW/OpenGL setup. + +On Apple Silicon nothing extra is needed: the published macOS native is a universal binary covering both `x86_64` and +`aarch64`. + +### SDL3 backend (imgui-app) + +`imgui-app` now supports two backends via `Configuration#setBackend(...)`: + +- `Backend.GLFW` (default) +- `Backend.SDL` (SDL3 + SDL_GPU) + +Use SDL3 by switching backend in `configure(...)`: + +``` +@Override +protected void configure(final Configuration config) { + config.setBackend(Backend.SDL); +} +``` + +For a ready smoke-test entry point, run `MainSdl`: + +``` +./gradlew :example:run -PmainClass=MainSdl +``` -# How To Use +At the moment, SDL backend in `imgui-app` is focused on single-window flow (multi-viewport is not supported). ## Application -If you don't care about OpenGL or other low-level stuff, then you can use application layer from [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/imgui-app) module.
-It is a **one jar solution**, which includes everything you need to build your user interface with Dear ImGui!
-At the same time, every life-cycle method of the application could be overridden, so you can extend class in the way you need. -#### Example +If you don't care about OpenGL and other low-level stuff, then you can use application layer from `imgui-app` module. +It is a **one jar solution** which includes: GLFW, OpenGL and Dear ImGui itself. +So you only need **one dependency** line or **one jar in classpath** to make everything to work. +You don't need to add separate dependencies to LWJGL or native libraries, since they are already included. + +**Application module is the best choice if everything you care is the GUI itself.** + +At the same time, Application gives options to override any life-cycle method it has. +That means that if you are seeking for a bit more low-level control - you can gain it as well. + +### Example + A very simple application may look like this: ``` import imgui.ImGui; import imgui.app.Application; +import imgui.app.Configuration; public class Main extends Application { @Override @@ -80,9 +126,12 @@ public class Main extends Application { } } ``` + Read `imgui.app.Application` [javadoc](https://javadoc.io/doc/io.github.spair/imgui-java-app) to understand how it works under the hood. -#### Dependencies +### Dependencies + +![Maven Central](https://img.shields.io/maven-central/v/io.github.spair/imgui-java-binding?color=green&label=version&style=flat-square)
Gradle @@ -93,7 +142,7 @@ repositories { } dependencies { - implementation "io.github.spair:imgui-java-app:1.80-1.5.0" + implementation "io.github.spair:imgui-java-app:${version}" } ```
@@ -106,7 +155,7 @@ dependencies { io.github.spair imgui-java-app - 1.80-1.5.0 + ${version} ``` @@ -116,17 +165,39 @@ dependencies { Raw Jar 1. Go to the [release page](https://github.com/SpaiR/imgui-java/releases/latest); -2. Download `imgui-app-${version}.jar`; -3. Add the jar to your classpath. +2. Download `java-libraries.zip`; +3. Get `imgui-app-${version}-all.jar`; +4. Add the jar to your classpath. + +Jar with `all` classifier already contains `binding` and `lwjgl3` modules.
+If you're using jar without the `all` classifier, add appropriate jars as well. + +Both jars, with or without `all` classifier, have all required native libraries already. + +#### Java Module System + +If using Java 9 modules, you will need to require the `imgui.app` module. + ## Binding -Using binding without the wrapper requires to "attach" it to your application manually. -You can refer to [imgui-app](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/imgui-app) module and see how things are done there. -#### Dependencies -For simplicity, example of dependencies for Gradle and Maven only show how to add natives for Windows.
-Feel free to add other platforms: `imgui-java-natives-windows-x86`, `imgui-java-natives-linux`, `imgui-java-natives-linux-x86`, `imgui-java-natives-macos`. +Using binding without `imgui-app` module requires to "attach" it to the application manually. +You can refer to `imgui-app` module to see how things are done there. + +### Dependencies + +![Maven Central](https://img.shields.io/maven-central/v/io.github.spair/imgui-java-binding?color=green&label=version&style=flat-square) + +For simplicity, example of dependencies for Gradle / Maven only shows how to add natives for Windows. Feel free to add other platforms. + +| Native Binaries | System | +|--------------------------------|-------------| +| imgui-java-natives-windows | Windows | +| imgui-java-natives-linux | Linux | +| imgui-java-natives-macos | macOS | + +Take a note, that you also need to add dependencies to [LWJGL](https://www.lwjgl.org/) library. Examples below shows how to do it as well.
Gradle @@ -137,8 +208,8 @@ repositories { } ext { - lwjglVersion = '3.2.3' - imguiVersion = '1.80-1.5.0' + lwjglVersion = '3.4.1' + imguiVersion = "${version}" } dependencies { @@ -162,8 +233,8 @@ dependencies { ``` - 3.2.3 - 1.80-1.5.0 + 3.4.1 + ${version} @@ -229,55 +300,178 @@ dependencies {
Raw Jars - 1. Go to the [release page](https://github.com/SpaiR/imgui-java/releases/latest); - 2. Download `imgui-binding-${version}.jar`, `imgui-lwjgl3-${version}.jar` and binary libraries for your OS; - - imgui-java.dll - Windows 32bit - - imgui-java64.dll - Windows 64bit - - libimgui-java.so - Linux 32bit - - libimgui-java64.so - Linux 64bit - - libimgui-java64.dylib - MacOS - 3. Add jars to your classpath; - 4. Provide a VM option: `imgui.library.path` or `java.library.path`. It should point to the folder where you've placed downloaded native libraries. +1. Go to the [release page](https://github.com/SpaiR/imgui-java/releases/latest); +2. Download `java-libraries.zip` and `native-libraries.zip`; +3. Get `imgui-binding-${version}.jar` and `imgui-lwjgl3-${version}.jar` from `java-libraries`, and binary libraries for required OS from `native-libraries` archive; +4. Add jars to your classpath; +5. Provide a VM option with location of files from the `native-libraries` archive. + +VM option example: +- **-Dimgui.library.path=_${path}_** +- **-Djava.library.path=_${path}_** + +Both `imgui.library.path` and `java.library.path` are equal with the difference, that `java.library.path` is standard JVM option to provide native libraries. +
-## Extensions -- [ImNodes](https://github.com/Nelarius/imnodes/tree/595972941054e9fa453f5a6d5590a51c9e1c98a4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/example/src/main/java/ExampleImNodes.java)
- A small, dependency-free node editor for dear imgui. (A good choice for simple start.) -- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor/tree/687a72f940c76cf5064e13fe55fa0408c18fcbe4) | [Example](https://github.com/SpaiR/imgui-java/blob/v1.80-1.5.0/example/src/main/java/ExampleImGuiNodeEditor.java)
+#### Java Module System + +If using Java 9 modules, ImGui Java has Automatic Module Names: + +| Package | Module | +|--------------------------------|---------------------------| +| imgui-java-app | imgui.app | +| imgui-java-binding | imgui.binding | +| imgui-java-lwjgl3 | imgui.lwjgl3 | +| imgui-java-natives-windows | imgui.natives.windows | +| imgui-java-natives-linux | imgui.natives.linux | +| imgui-java-natives-macos | imgui.natives.macos | + +# Extensions + +All extensions are already included in the binding and can be used as is. See `example/src/main/java/` for runnable +demos of each. + +- [ImNodes](https://github.com/Nelarius/imnodes) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImNodes.java)
+ A small, dependency-free node editor for Dear ImGui. (A good choice for simple start.) +- [imgui-node-editor](https://github.com/thedmd/imgui-node-editor) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiNodeEditor.java)
Node Editor using ImGui. (A bit more complex than ImNodes, but has more features.) +- [ImGuizmo](https://github.com/CedricGuillemet/ImGuizmo) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuizmo.java)
+ Immediate mode 3D gizmo for scene editing and other controls based on Dear ImGui. +- [implot](https://github.com/epezent/implot) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImPlot.java)
+ Advanced 2D Plotting for Dear ImGui. +- [ImGuiColorTextEdit](https://github.com/goossens/ImGuiColorTextEdit) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiColorTextEdit.java)
+ Syntax highlighting text editor for ImGui. +- [ImGuiFileDialog](https://github.com/aiekick/ImGuiFileDialog) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiFileDialog.java)
+ A file selection dialog built for ImGui. +- [ImGui Club MemoryEditor](https://github.com/ocornut/imgui_club) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleImGuiMemoryEditor.java)
+ Memory editor and viewer for ImGui. +- [imgui-knobs](https://github.com/altschuler/imgui-knobs) | [Example](https://github.com/SpaiR/imgui-java/blob/main/example/src/main/java/ExampleKnobs.java)
+ A collection of knob widgets for Dear ImGui. + +# FreeType + +By default, Dear ImGui uses stb-truetype to render fonts. There is an option to use the FreeType font renderer instead — +see [imgui_freetype](https://github.com/ocornut/imgui/tree/master/misc/freetype) for the differences. + +This binding also supports the FreeType option. +FreeType is statically pre-compiled into the published native libraries, meaning it is **included by default**. +The compile-time default font loader stays stb_truetype; the renderer is switched at runtime via +`ImFontAtlas#setFreeTypeRenderer(true)`, which must be called before fonts atlas generation. After that you can freely +use `ImGuiFreeTypeBuilderFlags` in your font configuration. -# Binding Notice -Binding was made with java usage in mind. Some places of the original library were adapted for that.
-For example, in places where in C++ you need to pass a reference value, in Java you pass primitive wrappers: `ImInt`, `ImFloat` etc.
+See `example/src/main/java/Main.java` for a working example. -One important thing is how natives structs work. All of them have a public field with a pointer to the natively allocated memory.
-By changing the pointer it's possible to use the same Java instance to work with different native structs.
-Most of the time you can ignore this fact and just work with objects in a common way. +If you prefer not to ship FreeType, you will need to build your own binaries (omit `-Dfreetype=true` when invoking +`generateLibs`). -Read [javadoc](https://javadoc.io/doc/io.github.spair/imgui-java-binding) and source comments to get more info about how to do specific stuff. +# API Conventions + +The binding adapts the C++ API for Java; almost everything maps directly, but two patterns differ: + +- **Out-parameters**: where C++ takes a reference, Java takes a primitive wrapper — `ImInt`, `ImFloat`, `ImBoolean`, + etc. +- **Native structs**: every wrapper holds a public pointer to its native memory. You can usually ignore this, but + reassigning the pointer lets one Java instance address different native structs — useful for iteration over native + arrays. + +For everything else, follow upstream Dear ImGui's [documentation](https://github.com/ocornut/imgui#usage) +and [wiki](https://github.com/ocornut/imgui/wiki); +the [binding javadoc](https://javadoc.io/doc/io.github.spair/imgui-java-binding) covers Java-specific details. # How to Build Native Libraries + +Native binaries shipped on Maven Central are built by CI; you only need to build them yourself when bumping a vendored +submodule, hacking on the JNI layer, or producing a binary without FreeType. + +Ensure you've downloaded git submodules. That could be achieved: +- When cloning the repository: `git clone --recurse-submodules https://github.com/SpaiR/imgui-java.git` +- When the repository already cloned: `git submodule update --init --recursive` + +The Gradle toolchain pins **JDK 17** for the build regardless of your system JDK. You only need a JVM that can launch +`gradlew`. + +## Recommended: `buildSrc/scripts/build.sh` + +This is the path CI uses. It vendors FreeType, runs `generateLibs`, and lays the resulting binary under +`/tmp/imgui/dst/`: + +``` +buildSrc/scripts/build.sh +``` + +For `macos` it builds both `x86_64` and `arm64` slices and combines them into a single universal `libimgui-java64.dylib` +via `lipo`. + +To use the freshly-built binary with the example: + +``` +cp /tmp/imgui/dst/libimgui-java64. bin/ +./gradlew :example:run -PlibPath=$PWD/bin +``` + +## Direct Gradle invocation + +If you don't need FreeType or want a stock build under the project tree, call `generateLibs` directly: + ### Windows - - Make sure you have installed and **available in PATH**: - * Java 8 or higher - * Ant - * Mingw-w64 (recommended way: use [MSYS2](https://www.msys2.org/) and install [mingw-w64-x86_64-toolchain](https://packages.msys2.org/group/mingw-w64-x86_64-toolchain) group) - - Build with: `./gradlew :imgui-binding:generateLibs -Denvs=win64 -Dlocal` - - Run with: `./gradlew :example:start -DlibPath="../imgui-binding/build/libsNative/windows64"` - + +- Required on PATH: Ant, Mingw-w64 (recommended via [MSYS2](https://www.msys2.org/) — install + the [mingw-w64-x86_64-toolchain](https://packages.msys2.org/group/mingw-w64-x86_64-toolchain) group). +- Build: `./gradlew imgui-binding:generateLibs -Denvs=windows -Dlocal` +- Run example: `./gradlew example:run -PlibPath="../imgui-binding/build/libsNative/windows64"` + ### Linux - - Install dependencies: `openjdk8`, `mingw-w64-gcc`, `ant`. (Package names could vary from system to system.) - - Build with: `./gradlew :imgui-binding:generateLibs -Denvs=linux64 -Dlocal` - - Run with: `./gradlew :example:start -DlibPath=../imgui-binding/build/libsNative/linux64` - -### MacOS - - Check dependencies from "Linux" section and make sure you have them installed. - - Build with: `./gradlew :imgui-binding:generateLibs -Denvs=mac64 -Dlocal` - - Run with: `./gradlew :example:start -DlibPath=../imgui-binding/build/libsNative/macosx64` - -In `envs` parameter next values could be used `win32`, `win64`, `linux32`, `linux64` or `mac64`.
-`-Dlocal` is optional and means that natives will be built under the `./imgui-binding/build/` folder. Otherwise `/tmp/imgui` folder will be used. -On Windows always use local build. + +- Install dependencies: `mingw-w64-gcc`, `ant`. (Package names vary by distro.) +- Build: `./gradlew imgui-binding:generateLibs -Denvs=linux -Dlocal` +- Run example: `./gradlew example:run -PlibPath=../imgui-binding/build/libsNative/linux64` + +### macOS + +- Same toolchain dependencies as Linux. +- Build (universal): `./gradlew imgui-binding:generateLibs -Denvs=macos,macosarm64 -Dlocal` — produces `macosx64/` and + `macosxarm64/` outputs that the Maven Central artifact bundles together via `lipo` (see `buildSrc/scripts/build.sh`). +- Single slice: pass only `-Denvs=macos` or `-Denvs=macosarm64`. +- Run example (Intel slice): `./gradlew example:run -PlibPath=../imgui-binding/build/libsNative/macosx64` + +### Flags + +| Flag | Effect | +|-------------------|-------------------------------------------------------------------------------------------------------------------------------| +| `-Denvs=` | Target platforms — any of `windows`, `linux`, `macos`, `macosarm64` | +| `-Dlocal` | Output to `imgui-binding/build/libsNative/` instead of `/tmp/imgui/` | +| `-Dfreetype=true` | Compile FreeType statically into the binary (requires `vendor_freetype.sh` to have been run; `build.sh` handles this for you) | + +## Vendored patches + +A few submodules need local fixups to compile against the current Dear ImGui (e.g. `imgui-node-editor` against imgui +1.92's new `operator*` overload). Patches live under `patches/` and are applied idempotently by the `applyVendorPatches` +task, which `generateLibs` runs automatically — no manual step required. + +# For Contributors + +The Java side of the binding is **codegen-driven**. Annotated stubs live under `imgui-binding/src/main/java/`; the +generator in `buildSrc/` expands them into `imgui-binding/src/generated/java/` (both trees are committed). Never +hand-edit `src/generated/`: it is regenerated and your changes will be lost. The workflow is always: + +``` +# edit imgui-binding/src/main/java/... +./gradlew :imgui-binding:generateApi +# commit both src/main/java and src/generated/java in one commit +``` + +[`AGENTS.md`](AGENTS.md) is the canonical contributor and AI-agent guide. It documents the codegen workflow, the +procedure for upgrading Dear ImGui or any extension submodule, javadoc/doclint pitfalls when copying C++ comments, the +dual font-loader design, codegen internals (Spoon generic-type bounds, Gradle 9 configuration cache requirements), and +the PR/merge-order conventions used in this repo. Read it before bumping a submodule or touching the generator. + +# Support + +[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/P5P5BF17Q) + +If you find the project useful, you can support it on Ko-fi to motivate further development. # License -See the LICENSE file for license rights and limitations (Apache-2.0). + +See the LICENSE file for license rights and limitations (MIT). diff --git a/bin/README.md b/bin/README.md new file mode 100644 index 00000000..5811c4f7 --- /dev/null +++ b/bin/README.md @@ -0,0 +1,37 @@ +### Overview + +The folder contains libraries used by the binding and the `binding.sha1` checksum for the `imgui-binding/src/main` directory that the libraries are built upon. These libraries are utilized during the release process. + +### Specifying the Library Path + +To specify the folder containing these files, provide the `imgui.library.path` (or `java.library.path`) VM option. For example: +``` +-Dimgui.library.path=./folder/path +``` +You can also use the `java.library.path` option in the same manner. + +### Changing the Library Name + +By default, the binding expects the file name `imgui-java64`. You can change this by using the `imgui.library.name` VM option. For example: +``` +-Dimgui.library.name=custom-lib-name.dll +``` + +### Expected Library File Names + +The expected library file names for different operating systems are: + +| OS | Library | +|---------|-----------------------| +| Windows | imgui-java64.dll | +| Linux | libimgui-java64.so | +| macOS | libimgui-java64.dylib | + +### Additional Information + +- All libraries include statically compiled **FreeType**. +- The macOS version is a universal library and support x86_64 and arm64 architectures. + +### Continuous Integration + +The hash sum in the `binding.sha1` file is used in continuous integration (CI) to determine if there is a need to update the native binaries. diff --git a/bin/README.txt b/bin/README.txt deleted file mode 100644 index 5528fee6..00000000 --- a/bin/README.txt +++ /dev/null @@ -1,11 +0,0 @@ -Folder contains libraries used by the binding. -Provide 'imgui.library.path' VM option to a folder with one of those file (ex: -Dimgui.library.path=./some/folder). -The same way you can use 'java.library.path' option as well. -By default binding expects 'imgui-java' ('imgui-java64' for x64 arch) file name. -You can change that by using 'imgui.library.name' VM option (ex: -Dimgui.library.name=custom-lib-name). - -- imgui-java.dll << win32 -- imgui-java64.dll << win64 -- libimgui-java.so << linux32 -- libimgui-java64.so << linux64 -- libimgui-java64.dylib << MacOs64 diff --git a/bin/binding.sha1 b/bin/binding.sha1 new file mode 100644 index 00000000..895a2bd7 --- /dev/null +++ b/bin/binding.sha1 @@ -0,0 +1,379 @@ +b282da90ccdd5e1eb36cebc86e0fcedc05d9b6b2 imgui-binding/src/main/java/imgui/ImColor.java +0ff30ef511a1b6fcf6e5205a01c62bffcd2eb2d8 imgui-binding/src/main/java/imgui/ImDrawData.java +4afc2b7a87cd167312dfe502a632e760a80378b0 imgui-binding/src/main/java/imgui/ImDrawList.java +6b6e2fa9e0c45c978a45025a660b960bf0ab2c14 imgui-binding/src/main/java/imgui/ImFont.java +8a81c19ab1202b0dafaebf24778b806ace807c01 imgui-binding/src/main/java/imgui/ImFontAtlas.java +8aae8a068e3d05b990815afa8e4cadde0885ea18 imgui-binding/src/main/java/imgui/ImFontConfig.java +9323e8a1ca7496bee6c7aa7dc16272fe81c9f411 imgui-binding/src/main/java/imgui/ImFontGlyph.java +02db135a54b6e95dfc7494d68af20cd4bd1010e9 imgui-binding/src/main/java/imgui/ImFontGlyphRangesBuilder.java +50c6e38119862ee925daeaba24734d216c149c9d imgui-binding/src/main/java/imgui/ImGui.java +619506b129a38099ae01a460076450ffdc327e88 imgui-binding/src/main/java/imgui/ImGuiIO.java +6e3034d8ee18db6b3fd72b00c51c1a4f2becd7d3 imgui-binding/src/main/java/imgui/ImGuiInputTextCallbackData.java +c9b5993ec7a3b69b3e513559483c028cf0e0e66c imgui-binding/src/main/java/imgui/ImGuiKeyData.java +7140005e77cc6d243b5c5c06015428b1cb297ac1 imgui-binding/src/main/java/imgui/ImGuiListClipper.java +0f6062ee6b95efc6e7ffe8530b8d3f06ec36182f imgui-binding/src/main/java/imgui/ImGuiOnceUponAFrame.java +61ff28fe35f46ae77657cb9145a0cd095f2c6d16 imgui-binding/src/main/java/imgui/ImGuiPlatformIO.java +89e55abe5ffd0bd3090cae8c3201f1e1deda946e imgui-binding/src/main/java/imgui/ImGuiPlatformMonitor.java +409d8c04105ce10c87a38715f438207647b65a98 imgui-binding/src/main/java/imgui/ImGuiStorage.java +b22279ad473e187a92354f9f84bad41aeba50d96 imgui-binding/src/main/java/imgui/ImGuiStyle.java +02dc06c701bc946407f0f0012d25303391667b90 imgui-binding/src/main/java/imgui/ImGuiTableColumnSortSpecs.java +31f4a31eb45144505e87e34d5dfc2cbabb6e4993 imgui-binding/src/main/java/imgui/ImGuiTableSortSpecs.java +236b74d696312b390648f046805a9836a59b869a imgui-binding/src/main/java/imgui/ImGuiTextFilter.java +91db9680f397659921bdb1060541d5ea0272904d imgui-binding/src/main/java/imgui/ImGuiViewport.java +10f0a92b41dcbeaa6152cc51775cc46afbb788bd imgui-binding/src/main/java/imgui/ImGuiWindowClass.java +4c7aaed3004e9b2b001532d11eef6afae9c06ff1 imgui-binding/src/main/java/imgui/ImVec2.java +9045857e582bc103a47869d7696b3f8ffa9ca32f imgui-binding/src/main/java/imgui/ImVec4.java +47a690530a965c51ea580cd7b9760b55836ab4f3 imgui-binding/src/main/java/imgui/assertion/ImAssertCallback.java +c902069596a551954b31ba7786060f92b460bce1 imgui-binding/src/main/java/imgui/binding/ImGuiStruct.java +171b6e4e7eeb969c07b86f2ed532955d05705139 imgui-binding/src/main/java/imgui/binding/ImGuiStructDestroyable.java +38daf340422bcff450280dff3689e21348d99104 imgui-binding/src/main/java/imgui/binding/annotation/ArgValue.java +cc1e6cf84fd3b4d49d53c8a3b6d8dadf761f7df5 imgui-binding/src/main/java/imgui/binding/annotation/ArgVariant.java +1d78570abee35b1953b90fe19b91ba0b36c7a75a imgui-binding/src/main/java/imgui/binding/annotation/BindingAstEnum.java +19cf870be1805de694938e9a0b180384abb3afcc imgui-binding/src/main/java/imgui/binding/annotation/BindingField.java +5f18e33b8e21db73925dc5022a62e783ee3d58e9 imgui-binding/src/main/java/imgui/binding/annotation/BindingMethod.java +8eb97b9276188eee50a50d61552f665ef7ff1a91 imgui-binding/src/main/java/imgui/binding/annotation/BindingSource.java +321545c6fc558a4c62db142218d2d26a7246b09c imgui-binding/src/main/java/imgui/binding/annotation/ExcludedSource.java +5e82a991064eeb511f9d4d23a8891e692ef87daa imgui-binding/src/main/java/imgui/binding/annotation/OptArg.java +0a298a892d2684238107050ef49034938db7c6fe imgui-binding/src/main/java/imgui/binding/annotation/ReturnValue.java +3ddbe0127f1de8af810ffc3970e078106693ece4 imgui-binding/src/main/java/imgui/binding/annotation/TypeArray.java +595458b1122988a555405327ceb65fb59bffdbb1 imgui-binding/src/main/java/imgui/binding/annotation/TypeStdString.java +0524d1252793d8ac62abd760f76169fc5daf8766 imgui-binding/src/main/java/imgui/callback/ImGuiInputTextCallback.java +3799e554b90b5537e06f34379ecd97102e84c9f0 imgui-binding/src/main/java/imgui/callback/ImListClipperCallback.java +9313a23686de8e42891b20a20da1c0dfe08a2dec imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewport.java +da23c429ca5d187d897254dbfa8667a7bc42f03f imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportFloat.java +1efce30b9442dd8e04bd7953e018ae744a0d6b23 imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportImVec2.java +64b2f55496c8331cebd96db86cad888bc06d2964 imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportString.java +7ef829868f2466cce9bee83553ad16e69ea3bdfc imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java +6ffd51052be88d3af771ef9dc6737e2cca559658 imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java +5e85edbef6ed664a5c3d1c012fccc394a11a4db5 imgui-binding/src/main/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java +edf6350a062c899e4eea0b1e5cf40fc31b208265 imgui-binding/src/main/java/imgui/callback/ImStrConsumer.java +ae803d26bd4c8c5a57460147014c96013e8a77a6 imgui-binding/src/main/java/imgui/callback/ImStrSupplier.java +7c055198ff09d4eeb92026aa998b1e8047160314 imgui-binding/src/main/java/imgui/extension/imguifiledialog/ImGuiFileDialog.java +50188afc5a1f968fbad2bfe9c6bcc52cdf8b6e43 imgui-binding/src/main/java/imgui/extension/imguifiledialog/callback/ImGuiFileDialogPaneFun.java +a8d4aad5a68e840967c030a4b66c3f5aaf0a4226 imgui-binding/src/main/java/imgui/extension/imguifiledialog/flag/ImGuiFileDialogFlags.java +61f18e3aa99649a6aab426a0e20b96d2038fd4ae imgui-binding/src/main/java/imgui/extension/imguiknobs/ImGuiKnobs.java +3cfa1faa0e7d5cd1a2191db03368d6f22b961084 imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java +c554290feb55e66c195ce71ab8931182d6772f38 imgui-binding/src/main/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java +e6069f1cdd8a662464e6d925ea249f950d1c370f imgui-binding/src/main/java/imgui/extension/imguizmo/ImGuizmo.java +d4f5cd2e9f6de4f4305d5d65bddb5074ad52b8e3 imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Mode.java +d978a822d83ef0f2356a7167c9467e4aea61d5d7 imgui-binding/src/main/java/imgui/extension/imguizmo/flag/Operation.java +0261b70f4b56815474b971eff9aace5782acb9c4 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodes.java +415fb9cd034846afad001207ad630e84dcfd1875 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesContext.java +9a140585e44427ad07924837a8a9d12b1b502281 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesEditorContext.java +79a88ef57a339a28877f72c91ce9dd6252b5e755 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesIO.java +d7a9336532f6a91b6465faa74a6db157e83317c1 imgui-binding/src/main/java/imgui/extension/imnodes/ImNodesStyle.java +ed3503b513f8625e808366b1d5c4cf302add27fd imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java +1051c6a104280d7a2e09b2076da6b45582c269f7 imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesCol.java +e7cb369231f4493f4f22ff8f983f65c1c003eb39 imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java +c9ad9c532cc04bc0577d81a653806ab43232b3b5 imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesPinShape.java +1356a76e0fb790db7cd2ad2b36951cd6ec92838a imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java +9e3e85832b694f72c47c7ab00f8160e4a3710660 imgui-binding/src/main/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java +207427beadb86e8204815aada8fca734b675f8d6 imgui-binding/src/main/java/imgui/extension/implot/ImPlot.java +4d9fbdbd6ad28c11199b8bbf1a5053a3179b5d34 imgui-binding/src/main/java/imgui/extension/implot/ImPlotContext.java +af74a781f622a1d9049314acca73b7f01cbd2c7c imgui-binding/src/main/java/imgui/extension/implot/ImPlotInputMap.java +e2a5bf6fb85c9b337679d2938668c9d4b5c1e0a9 imgui-binding/src/main/java/imgui/extension/implot/ImPlotPoint.java +9f21abf83739d88082ac8dff99677fb9f7c9d23f imgui-binding/src/main/java/imgui/extension/implot/ImPlotRange.java +95cb5ebbfc41413cb1bb43b27467b12fafd43102 imgui-binding/src/main/java/imgui/extension/implot/ImPlotRect.java +355a26a14344e77c7ceb11d33116ca2b40127e8a imgui-binding/src/main/java/imgui/extension/implot/ImPlotSpec.java +bc5fd86fe27d308eae181997613c537bda39fb4c imgui-binding/src/main/java/imgui/extension/implot/ImPlotStyle.java +47b6723cc2ef25bbb42cdfca2b2e18f0ab595dad imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxis.java +7ad16dcc09908b805aa6c54bdb1f94f6f12b67f2 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotAxisFlags.java +15edae04d40ac6f7002b59666560775684cfa426 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBarGroupsFlags.java +2e8401600865aede5cfb17b0a0874bf6e7700cf2 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBarsFlags.java +6f043eea401cc3df0a3dff7b3135a0ec493c9ca4 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotBin.java +9ca8a1bb89dfaadcf255d3d95ef6d17a7d40464b imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCol.java +21d31de03e3b77d3648a3e92b8ea84e9715ef028 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotColormap.java +6a705ce40d4acf05265439862a8471bc4b7ea717 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotCond.java +8f282555f0dd02f33632352a26458548cdd5ba3a imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotDragToolFlags.java +1a0db5d7b43ce10b4edd1b119a319074221e1aa5 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotErrorBarsFlags.java +efaa0c68422c6f3384b048f0158e9c0509acf2c9 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotFlags.java +3cd2e98235728a9e60f18bca7db77bb116d24627 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotHeatmapFlags.java +909e3d26a6e2e0a50c846475dc2d9f2d08696931 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java +263c6cc04f12d6c867954aa3e11dd48d891e7f8f imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotInfLinesFlags.java +0b2c2b8a3db8f19e02173b16b0c5a95d25b96245 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotItemFlags.java +a85a900b605373907bb66f8755e6928c788626c4 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLegendFlags.java +3f7eaac9b676d65deecf7294e9a26ff23bfc2e44 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLineFlags.java +47f3fca87c872f3058dffd2918a0ff34e0c659e7 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotLocation.java +7944b2d0d0cda36a5d0b576f2b50057d4a8d5475 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMarker.java +dda6cd0e0160e0505dcf49d699743e8fe86ebba8 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotMouseTextFlags.java +e981228abd46dd460effa848cf5d755a328ced74 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java +5cc571234367a3fe03599894ad546192a20f53e7 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotScale.java +8ff0eb146bfbea21dbfc4e69e974202a03075d70 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotScatterFlags.java +bf37050240506839f961bfe375f0029b32ffd531 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStairsFlags.java +4c6ac7e5c37ddd5dad467b9aa9dd5eb3fb63e9c6 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStemsFlags.java +4b2cc972fd7cf2298392d154ab625dc2efcb2b7e imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotStyleVar.java +17d04019acb7d512e7ecb82b6bc7a9c43c574fc9 imgui-binding/src/main/java/imgui/extension/implot/flag/ImPlotTextFlags.java +79ac3cf4e4835b0e9f9ecc209d4071e41b1f6991 imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditor.java +8974fa8f66a2b9e0c4c0818794bb4b4a8fa31a32 imgui-binding/src/main/java/imgui/extension/memedit/MemoryEditorSizes.java +2abfa9cbebbf902bb425ee4619f50699aabef7b4 imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditor.java +2239b18ba1aedb7c301b2ca42f3946a4d24aa336 imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorConfig.java +be6d044a49743d72ad2a6eb80b855378001b1616 imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorContext.java +17f9ab1007b7d72af7e071cf82f89e4f86df02bb imgui-binding/src/main/java/imgui/extension/nodeditor/NodeEditorStyle.java +95eb1a50cf1d02a470f1c27887c20250cd093418 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorCanvasSizeMode.java +b69d169d2970aea776faf0a99145b5e7cb8e8ab3 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java +4ca9cd2ffc62c2f7b6e38b8e8af27323dbcfecb3 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java +e9be903fdb64babdf86e15d9e7d33639c29371b2 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java +62bad3c0b68f6602686b932fa70c7fd6dde78a14 imgui-binding/src/main/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java +98f31dbffcc33cae25535baa56f9413bc1ab4020 imgui-binding/src/main/java/imgui/extension/texteditor/TextEditor.java +c4894b1ef93374bf5fcec13fdeba652fb32e5233 imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCursorPosition.java +d827bfd85d78128c3cb2d3d2052c928056054e41 imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorCursorSelection.java +6dea5c4eb59d6da7e4549c070c0e4bc2a042f968 imgui-binding/src/main/java/imgui/extension/texteditor/TextEditorLanguage.java +8747015bac82783879bb441b8ed681bc024ec089 imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorColor.java +7395490f3073acdf199f100ae3c2f4e93d82ede7 imgui-binding/src/main/java/imgui/extension/texteditor/flag/TextEditorScroll.java +df65d0d4add612197b28b0004b1b679c050f151f imgui-binding/src/main/java/imgui/flag/ImDrawFlags.java +0ed314c28b88e5504171115844006091db43597f imgui-binding/src/main/java/imgui/flag/ImDrawListFlags.java +d63e7d9df8c498d1dddf9d275d6445591685d803 imgui-binding/src/main/java/imgui/flag/ImFontAtlasFlags.java +9d5a682de8e90b52fe491502141db3ee7f24e590 imgui-binding/src/main/java/imgui/flag/ImGuiBackendFlags.java +dc9c9049afda36c2613b1ab2d0695389ca6bca6c imgui-binding/src/main/java/imgui/flag/ImGuiButtonFlags.java +f164ed683258f8e9cc0dab5f77819e7b0a272678 imgui-binding/src/main/java/imgui/flag/ImGuiChildFlags.java +dc74f5430338a6568e4df3559abfa94634d7f790 imgui-binding/src/main/java/imgui/flag/ImGuiCol.java +9e8501254da5af32478369ab10946d77862207b3 imgui-binding/src/main/java/imgui/flag/ImGuiColorEditFlags.java +6cab8dc313914208326a327336d0ee52e90a963d imgui-binding/src/main/java/imgui/flag/ImGuiComboFlags.java +e6e0cf0f1a5b03b2c6b6f8115454e43da7e3793c imgui-binding/src/main/java/imgui/flag/ImGuiCond.java +b76d8296fcda68447942c64fb9aa2814e56ee603 imgui-binding/src/main/java/imgui/flag/ImGuiConfigFlags.java +9a44afa60eab3b242066c510591c3bc9f7930258 imgui-binding/src/main/java/imgui/flag/ImGuiDataType.java +2a1edeed44a811354ac08f4c80cbd94a2b5f4dbe imgui-binding/src/main/java/imgui/flag/ImGuiDir.java +353130a2081d3b47ce8b32a4c4daa20973004275 imgui-binding/src/main/java/imgui/flag/ImGuiDockNodeFlags.java +42e70f57aa598bbfaafac4c8affe4c19f3c5fb13 imgui-binding/src/main/java/imgui/flag/ImGuiDragDropFlags.java +e8fe3f98453c5973e8900db66fb269dde332571f imgui-binding/src/main/java/imgui/flag/ImGuiFocusedFlags.java +c6f2fc615194c64da7c3834419d1f8e81647d190 imgui-binding/src/main/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java +35b9d607bd8c706a5d5d57475c7e1e351474f2b3 imgui-binding/src/main/java/imgui/flag/ImGuiHoveredFlags.java +cc64497c274b0db2958e7ad18ec4e6de4c640be0 imgui-binding/src/main/java/imgui/flag/ImGuiInputTextFlags.java +291f36c390efec8fb78892eb98c2125b50f3fd6a imgui-binding/src/main/java/imgui/flag/ImGuiKey.java +8c2dc6d00e94111d52d89996e444a7c36b397d84 imgui-binding/src/main/java/imgui/flag/ImGuiMouseButton.java +f448f7745084075b28807399f2508868b359bc90 imgui-binding/src/main/java/imgui/flag/ImGuiMouseCursor.java +ec3ba9fda2afc6ebbfa7562c3ebdbf427d2af2e2 imgui-binding/src/main/java/imgui/flag/ImGuiMouseSource.java +6452e9f67cfb0d91bae76fd035b39b532dddfe06 imgui-binding/src/main/java/imgui/flag/ImGuiPopupFlags.java +d2438cd91f03c92b4b1e8164b463a464a2aed5f3 imgui-binding/src/main/java/imgui/flag/ImGuiSelectableFlags.java +93743e1bdd1cb61cad2567ff5a9ad7bdfa8ee749 imgui-binding/src/main/java/imgui/flag/ImGuiSliderFlags.java +63b7bfd654ab279b13531d6f25196c5bef157e8d imgui-binding/src/main/java/imgui/flag/ImGuiSortDirection.java +40365c6ed1c8f879ccef90c7e04a5491b727c82a imgui-binding/src/main/java/imgui/flag/ImGuiStyleVar.java +6a2c36229900a23a89eae422ffa5ba2bf1e3be0c imgui-binding/src/main/java/imgui/flag/ImGuiTabBarFlags.java +624a3f1cbef543d24e8ea3f7669df1018c3e2981 imgui-binding/src/main/java/imgui/flag/ImGuiTabItemFlags.java +f2df528f066fd006e35bc77aca46e51988fbf684 imgui-binding/src/main/java/imgui/flag/ImGuiTableBgTarget.java +158d45b4358b520f0f783c7827a99f11597c1c37 imgui-binding/src/main/java/imgui/flag/ImGuiTableColumnFlags.java +7f897c4102dd12112b54d29641a74db3bbcbb87d imgui-binding/src/main/java/imgui/flag/ImGuiTableFlags.java +2af7960f4db1e906b34a28d1ccabd50aefddf335 imgui-binding/src/main/java/imgui/flag/ImGuiTableRowFlags.java +5f41e2e78e945805173dd69dd359f76fce93d82a imgui-binding/src/main/java/imgui/flag/ImGuiTreeNodeFlags.java +12783e8963e87af3d81c2207894d566ff0206b7c imgui-binding/src/main/java/imgui/flag/ImGuiViewportFlags.java +6bf01fb6e30f7baa5293deee550d843c909543b2 imgui-binding/src/main/java/imgui/flag/ImGuiWindowFlags.java +8baac938ca67aeb7c2600cb6bc8a459675209868 imgui-binding/src/main/java/imgui/internal/ImGui.java +103cfbb25c902fee4a654f325e69e24c8d2f0024 imgui-binding/src/main/java/imgui/internal/ImGuiContext.java +3c56792900d92886d4758334040a29e86e4ac6dc imgui-binding/src/main/java/imgui/internal/ImGuiDockNode.java +fdda5bd8fedd0553e4697e88aca7d13e370e59f6 imgui-binding/src/main/java/imgui/internal/ImGuiWindow.java +bf1afb6aa23db2a7127d3eba30d0098f06c5449d imgui-binding/src/main/java/imgui/internal/ImRect.java +2ee80e6e2b8cc8ed9ff60589b0489920b86c57b5 imgui-binding/src/main/java/imgui/internal/flag/ImGuiAxis.java +3f8da04b069b6321feeccdfa7632c3bfc445268a imgui-binding/src/main/java/imgui/internal/flag/ImGuiButtonFlags.java +83ef054010196bd57fc6affc1fb2e4e6c60eb10a imgui-binding/src/main/java/imgui/internal/flag/ImGuiDataAuthority.java +13f689eda833d4aea93990bed4cc39fd884cacfd imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeFlags.java +b19c4f11bf2308d001efcd35912cae0ae919eee6 imgui-binding/src/main/java/imgui/internal/flag/ImGuiDockNodeState.java +0e5b6f6277d0980920425bbdae067c6b6dc2a8a0 imgui-binding/src/main/java/imgui/internal/flag/ImGuiFocusRequestFlags.java +558b80d1e905b1a609a35ed700014f27e87ed102 imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemFlags.java +5b198da5e7d1c46641e276c0382c294589cfe450 imgui-binding/src/main/java/imgui/internal/flag/ImGuiItemStatusFlags.java +b77730d4faddd4dab4a3582aaa81f85fb9cd23b9 imgui-binding/src/main/java/imgui/internal/flag/ImGuiSeparatorFlags.java +919cd9ebf6c8d7983eb771c873bfa522391b088b imgui-binding/src/main/java/imgui/internal/flag/ImGuiTextFlags.java +c765e6eadf81568364ece65bdc87541130ebc57f imgui-binding/src/main/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java +2f50626f0e9e9811265a2b46513b077687e75c65 imgui-binding/src/main/java/imgui/type/ImBoolean.java +41c585c1446caba686f1d7aa209fcc1ca1137c2e imgui-binding/src/main/java/imgui/type/ImDouble.java +9f01623ad87f740388fb416c51ca5b0f4699d307 imgui-binding/src/main/java/imgui/type/ImFloat.java +9af49e06c80817988beddcbcbace6cbf625f9685 imgui-binding/src/main/java/imgui/type/ImInt.java +9fb533da9855658cdde49fe13012b9df34ea5bf3 imgui-binding/src/main/java/imgui/type/ImLong.java +1ec8254b8d7023c1b9db85f57cd020f142f05574 imgui-binding/src/main/java/imgui/type/ImShort.java +0ed3ce650328c595f6c374c889320a15e0f894d9 imgui-binding/src/main/java/imgui/type/ImString.java +ebaeae97db5cdc8316de13ba2ea1afaf3c8a8fef imgui-binding/src/main/native/_common.h +1a369653b8eab4be880b1bd2125a26a6f17e800c imgui-binding/src/main/native/_imguifiledialog.h +305e792b8c65c2b2f4446f35e3b7f25186f15aed imgui-binding/src/main/native/_imguiknobs.h +6ffad4359f5e844be5edd743edebfd622f78fc00 imgui-binding/src/main/native/_imguizmo.h +4339ad37e0ba0ecba58f8ee5a353fd5f0cd98c5d imgui-binding/src/main/native/_imnodes.h +7e7bcf192100d7805f3f67c7a451c3c4a1626749 imgui-binding/src/main/native/_implot.h +7002db971351c6a01ddd4a04c539d17bd844d07a imgui-binding/src/main/native/_internal.h +cf5e3a1e1f69ca16f7a2a653baffc515042bfa2f imgui-binding/src/main/native/_memedit.h +98419485989df42090981b013ca98188da01b48b imgui-binding/src/main/native/_nodeeditor.h +d23ee9baa061292dd8445f3f1da185e824de7764 imgui-binding/src/main/native/_texteditor.h +2326324c16490aa8f87385da631828fe3e771f80 imgui-binding/src/main/native/imconfig.h +f2db8453ac6843e846822b878c52bb31e2d336b9 imgui-binding/src/main/native/jni_assertion.cpp +957ce75266115c2c0b2bef67941bdf454befcd6c imgui-binding/src/main/native/jni_assertion.h +ef606408ac1c27bdf9048daa121e457acc587543 imgui-binding/src/main/native/jni_binding_struct.cpp +c2032cef3c7576a8f8191877b530d04c67d1c28b imgui-binding/src/main/native/jni_binding_struct.h +3133a5089a2036e4db165c3d419d20451638e254 imgui-binding/src/main/native/jni_callbacks.cpp +b8aec5248eca2d79b893b37e36be0fed3c65906f imgui-binding/src/main/native/jni_callbacks.h +f94e999ce7b59ca2bf05cef05139dd12625f857f imgui-binding/src/main/native/jni_common.cpp +3e9d74ed21956e54ee645d76452b18bffcd15409 imgui-binding/src/main/native/jni_common.h +7caedaed007ac24a8eb8a0ecc1ac735b4b7732b9 imgui-binding/src/main/native/jni_implot.cpp +35ff319c0066425a35a78b8972defe4b6fb771f5 imgui-binding/src/main/native/jni_implot.h +6e0f19bed99de1bbbf11f1b4491ae3e3a320ebf3 imgui-binding/src/main/native/jni_internal.cpp +2b226731cc6f238000a2137bdb79fcdafdf34aed imgui-binding/src/main/native/jni_internal.h +5e4b43e3c7f87f5fc106626a9407f88974a8d455 imgui-binding/src/main/native/jni_jvm.cpp +87083f9f1c0b677c9f7a385c67b54ea50726d19d imgui-binding/src/main/native/jni_jvm.h +01a9d2f15034068ac2469e8673a6e6182eb16c91 imgui-binding/src/main/native/jni_texteditor.cpp +3601cd29c8670686db5f52434d5ed26b82fe8ac6 imgui-binding/src/main/native/jni_texteditor.h +04ec5e3baeaea3d37cd56849c706802ed6768a19 imgui-binding/src/main/resources/imgui/imgui-java.properties +b282da90ccdd5e1eb36cebc86e0fcedc05d9b6b2 imgui-binding/src/generated/java/imgui/ImColor.java +a1fe300f1e13c8a63b5b0293400f07932ebbabd7 imgui-binding/src/generated/java/imgui/ImDrawData.java +be296e5d58df1010e7734c84e598e83fc3760f20 imgui-binding/src/generated/java/imgui/ImDrawList.java +5abdde6531ad0ee117166e1f94bf0f928993d7f0 imgui-binding/src/generated/java/imgui/ImFont.java +c0a45565cc6f185a48c9bd8dd69d6e401246a3e8 imgui-binding/src/generated/java/imgui/ImFontAtlas.java +961751dbd4f59e74ae834ec3df5aca2e46cc363b imgui-binding/src/generated/java/imgui/ImFontConfig.java +d5bd63c69c13066e97ad5dc9c4359f8f2f7d315a imgui-binding/src/generated/java/imgui/ImFontGlyph.java +02db135a54b6e95dfc7494d68af20cd4bd1010e9 imgui-binding/src/generated/java/imgui/ImFontGlyphRangesBuilder.java +35f75ea8ef3cd1f5875d50ac4800575dd1cacb26 imgui-binding/src/generated/java/imgui/ImGui.java +71ef8660ea656102bb78456a2499fb4852d881c0 imgui-binding/src/generated/java/imgui/ImGuiIO.java +b4cc27d51482470f2d07cf3ef069585cbd4e5887 imgui-binding/src/generated/java/imgui/ImGuiInputTextCallbackData.java +4e99a91b6e46f7e800424dc6bf98fa9ce7d0b135 imgui-binding/src/generated/java/imgui/ImGuiKeyData.java +c82b8b15b02a17d9ed1e1a987c4be9a2aa3d03c3 imgui-binding/src/generated/java/imgui/ImGuiListClipper.java +0f6062ee6b95efc6e7ffe8530b8d3f06ec36182f imgui-binding/src/generated/java/imgui/ImGuiOnceUponAFrame.java +61ff28fe35f46ae77657cb9145a0cd095f2c6d16 imgui-binding/src/generated/java/imgui/ImGuiPlatformIO.java +b193598cfa09f741fe687e218ca80e29bf83d607 imgui-binding/src/generated/java/imgui/ImGuiPlatformMonitor.java +a2c34f2ef33e6d4cbdb25a5764da478bde768932 imgui-binding/src/generated/java/imgui/ImGuiStorage.java +7b9fd571e41926d31b6bc3bf0437624992ddeca7 imgui-binding/src/generated/java/imgui/ImGuiStyle.java +35e0e08ecb999289a10db4b44dbcc0517089741a imgui-binding/src/generated/java/imgui/ImGuiTableColumnSortSpecs.java +bb4adf76978bf9f5519991e2e0ef5c34a2a907f7 imgui-binding/src/generated/java/imgui/ImGuiTableSortSpecs.java +bac9d3739698357020bd0d06f21bed67b57f9d19 imgui-binding/src/generated/java/imgui/ImGuiTextFilter.java +e5ebb79661d82ce3d3640ac0efcf7e9645cb5eff imgui-binding/src/generated/java/imgui/ImGuiViewport.java +80ded7db8056b752bd30591cdeaece84e66d8963 imgui-binding/src/generated/java/imgui/ImGuiWindowClass.java +4c7aaed3004e9b2b001532d11eef6afae9c06ff1 imgui-binding/src/generated/java/imgui/ImVec2.java +9045857e582bc103a47869d7696b3f8ffa9ca32f imgui-binding/src/generated/java/imgui/ImVec4.java +47a690530a965c51ea580cd7b9760b55836ab4f3 imgui-binding/src/generated/java/imgui/assertion/ImAssertCallback.java +c902069596a551954b31ba7786060f92b460bce1 imgui-binding/src/generated/java/imgui/binding/ImGuiStruct.java +171b6e4e7eeb969c07b86f2ed532955d05705139 imgui-binding/src/generated/java/imgui/binding/ImGuiStructDestroyable.java +0524d1252793d8ac62abd760f76169fc5daf8766 imgui-binding/src/generated/java/imgui/callback/ImGuiInputTextCallback.java +3799e554b90b5537e06f34379ecd97102e84c9f0 imgui-binding/src/generated/java/imgui/callback/ImListClipperCallback.java +9313a23686de8e42891b20a20da1c0dfe08a2dec imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewport.java +da23c429ca5d187d897254dbfa8667a7bc42f03f imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportFloat.java +1efce30b9442dd8e04bd7953e018ae744a0d6b23 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportImVec2.java +64b2f55496c8331cebd96db86cad888bc06d2964 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportString.java +7ef829868f2466cce9bee83553ad16e69ea3bdfc imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppBoolean.java +6ffd51052be88d3af771ef9dc6737e2cca559658 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppFloat.java +5e85edbef6ed664a5c3d1c012fccc394a11a4db5 imgui-binding/src/generated/java/imgui/callback/ImPlatformFuncViewportSuppImVec2.java +edf6350a062c899e4eea0b1e5cf40fc31b208265 imgui-binding/src/generated/java/imgui/callback/ImStrConsumer.java +ae803d26bd4c8c5a57460147014c96013e8a77a6 imgui-binding/src/generated/java/imgui/callback/ImStrSupplier.java +1f3d1e08d7b67dad2d4a4e88b734e063d5ba5b0f imgui-binding/src/generated/java/imgui/extension/imguiknobs/ImGuiKnobs.java +d90e338326db3283187aeebdac3bbb0692f64809 imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobFlags.java +51e9961520257e28e8956696916d18bba240a4a3 imgui-binding/src/generated/java/imgui/extension/imguiknobs/flag/ImGuiKnobVariant.java +8edf7e57703f62ba396c48ceb37e81d452c31ac0 imgui-binding/src/generated/java/imgui/extension/imguizmo/ImGuizmo.java +fecf429a0f9da3a39920afc44df5a2db2b034a26 imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Mode.java +87de9bcceab1df0e0139b81a04507a70a8fc8ae4 imgui-binding/src/generated/java/imgui/extension/imguizmo/flag/Operation.java +abbc63038b4b4b9183500ca48ffa733fae2f1d2c imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodes.java +415fb9cd034846afad001207ad630e84dcfd1875 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesContext.java +9a140585e44427ad07924837a8a9d12b1b502281 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesEditorContext.java +4cf9d80f019cd5ce57363d580cf288facdb31a52 imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesIO.java +9a6220ba53140f845ac893ddc36aedf856a5d29e imgui-binding/src/generated/java/imgui/extension/imnodes/ImNodesStyle.java +80a9ddcfcba507f6e757ec65b1111d1f7224dde2 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesAttributeFlags.java +718f1bf5ba68bcb0a7734121e117e9d413556adb imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesCol.java +86c0aa2bbbf5b51d33f0d9f1d379f7e2b771ee84 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesMiniMapLocation.java +53581b03a08cea920ddfd61dc5308ae3507744cf imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesPinShape.java +1f7f9b1864e17cb2a17cd437d0feaeb42dfa4867 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleFlags.java +71ccdeac2d1f346cce7a75c6c709ee9ce5041a66 imgui-binding/src/generated/java/imgui/extension/imnodes/flag/ImNodesStyleVar.java +7ffc74960c817a0153db4f61c842fd5b9560a366 imgui-binding/src/generated/java/imgui/extension/implot/ImPlot.java +4d9fbdbd6ad28c11199b8bbf1a5053a3179b5d34 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotContext.java +d52f3376d9847751f2a6d80a2ba5838a6aa5fc0e imgui-binding/src/generated/java/imgui/extension/implot/ImPlotInputMap.java +e2a5bf6fb85c9b337679d2938668c9d4b5c1e0a9 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotPoint.java +9f21abf83739d88082ac8dff99677fb9f7c9d23f imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRange.java +95cb5ebbfc41413cb1bb43b27467b12fafd43102 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotRect.java +bde7d7d38da3d8dedcf7361f77159463eb4c283b imgui-binding/src/generated/java/imgui/extension/implot/ImPlotSpec.java +ee27a38052beb6aa678ee3aa598fa99fe2d425c3 imgui-binding/src/generated/java/imgui/extension/implot/ImPlotStyle.java +f77e77d9b3a7c97e0fd39c01e4ff90ea2a334d78 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxis.java +d9414ff2df95a397e53ab5cf8def9d65c0b24c68 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotAxisFlags.java +1838c38681f148684b2b75c2981efa76860ea76f imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBarGroupsFlags.java +f45cbf2b3746db5cdcdc9ccb809ceb445c7a6cc2 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBarsFlags.java +158b09d117e5c693a47c4616943e54d113c7b6dc imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotBin.java +e9fcb5016b1ac50673c563f9d22e8d17abdb7b06 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCol.java +79091c147fcb0a67fc9869ba21c53c5436e7caa0 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotColormap.java +a9f0d904657d2596ca86127367e617af9e62bb1d imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotCond.java +6c602815f301a31a64d09c23e59df41a177d3791 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotDragToolFlags.java +10b7184af307f52e4829f6b4e80759a223a8b1e7 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotErrorBarsFlags.java +bdc090abbe0b2ffbb982a2a294235b5d3a3feedd imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotFlags.java +b319dc7dfe3f38e988a088e34e328355556ab3b9 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHeatmapFlags.java +1457134cfb1f1bf3ff95bea59a4d5f9a38e93f21 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotHistogramFlags.java +b437e286b1b3f50b2a72b34e145b2cbddb29cb54 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotInfLinesFlags.java +20a7ae425b7cc3078ef767dfc77b121721483f6b imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotItemFlags.java +f46b0d1464ac3e0da438e7ff9a2aead94f0f9b44 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLegendFlags.java +4218db361645ef400abf9ec6c35f8a0f70ced46f imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLineFlags.java +89d421ed60d15d5d3a25098fb5d3de6227cd337a imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotLocation.java +f3f6efaa180b5558798177dd6f783aa10cca0c67 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMarker.java +42d1eb43326c9ec5d1cf93d22ff28aef9906edec imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotMouseTextFlags.java +42e70c7c5f4a92f43ce0dde2e3f191bee848f77b imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotPieChartFlags.java +3a51f25129d042cc1b9a4c7ec45fefbcb8c952b7 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScale.java +324bd6532cb552db1a954baf1b1647c993a40cf9 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotScatterFlags.java +a708d3ca7a7641abd9cc04c47365af4cdb992a78 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStairsFlags.java +34728c8b2b7fc23a82cbd9ca62f053c2ddb07a9f imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStemsFlags.java +740d4a5d7ad4d3abfebe6c18b6299c5e13d65ee2 imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotStyleVar.java +7bde2a2ec1f53dcd57137a025f3667c09bcfafdb imgui-binding/src/generated/java/imgui/extension/implot/flag/ImPlotTextFlags.java +8329a2d969580286af07a8f676595eb90c8a7ac7 imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditor.java +b447175033fe1944c56bcba8e8250a512613df4f imgui-binding/src/generated/java/imgui/extension/memedit/MemoryEditorSizes.java +7e05779b33619161d86aa4f0971af0147716a04e imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditor.java +c79a57d14334f100a66ffdaed70c32f47d9b45f2 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorConfig.java +be6d044a49743d72ad2a6eb80b855378001b1616 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorContext.java +a5ca1a61caf2a6c22b02343ef0857e6301e874a6 imgui-binding/src/generated/java/imgui/extension/nodeditor/NodeEditorStyle.java +823a72150bdca2947b72d91d193a61e094e673b5 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorCanvasSizeMode.java +9e96c54aedb07905a233f05a1b478e3759a3e70a imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorFlowDirection.java +b71268a7e3f1f5151195ee7bbb1536a52ebbd68d imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorPinKind.java +e62fdff842b8c99bf2246646cbc37dc48f0f37a3 imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleColor.java +253a8d56f18b8055382d3cbf32fdf8c0d9150a0b imgui-binding/src/generated/java/imgui/extension/nodeditor/flag/NodeEditorStyleVar.java +5c3c77311fc98a5cd64316e0c4c8521f0005a533 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditor.java +c4894b1ef93374bf5fcec13fdeba652fb32e5233 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCursorPosition.java +d827bfd85d78128c3cb2d3d2052c928056054e41 imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorCursorSelection.java +c36a632da27279299e7f7f150b7925d1230ce41a imgui-binding/src/generated/java/imgui/extension/texteditor/TextEditorLanguage.java +8747015bac82783879bb441b8ed681bc024ec089 imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorColor.java +7395490f3073acdf199f100ae3c2f4e93d82ede7 imgui-binding/src/generated/java/imgui/extension/texteditor/flag/TextEditorScroll.java +40032431469b7369e7b0df33d3ad6475e91f73c6 imgui-binding/src/generated/java/imgui/flag/ImDrawFlags.java +01bc1651e68c864e605b46c0ea72c217b0cbecc7 imgui-binding/src/generated/java/imgui/flag/ImDrawListFlags.java +60de12a1324ed690a8cb41c3841320f12e7c85e9 imgui-binding/src/generated/java/imgui/flag/ImFontAtlasFlags.java +ecab3872175831a66193186124d364e42c66c6c0 imgui-binding/src/generated/java/imgui/flag/ImGuiBackendFlags.java +c16ab83889fbb9d4a8e3ce34939084e1d5c22779 imgui-binding/src/generated/java/imgui/flag/ImGuiButtonFlags.java +2a482cc308887dc808e0b94094773b640626c2d8 imgui-binding/src/generated/java/imgui/flag/ImGuiChildFlags.java +7d09e6fb807b53f5eb40c5c1fc3bbf23c1303d4b imgui-binding/src/generated/java/imgui/flag/ImGuiCol.java +9c765f89165fb72149eae3f0f4d841c0681af20d imgui-binding/src/generated/java/imgui/flag/ImGuiColorEditFlags.java +0cc4e4f88ba9c7c5e6c4b5fbca84cf9dc1742c95 imgui-binding/src/generated/java/imgui/flag/ImGuiComboFlags.java +a31bea89e086d04923a7b7a6d15e3af0d7a1ccc3 imgui-binding/src/generated/java/imgui/flag/ImGuiCond.java +93159113529928dec065391598e9693441631418 imgui-binding/src/generated/java/imgui/flag/ImGuiConfigFlags.java +323c9bbb63c67b2c7e1ad714170a8d8236a1a93e imgui-binding/src/generated/java/imgui/flag/ImGuiDataType.java +03afecb9836d37ceeffea1bb589388a3b844a5a3 imgui-binding/src/generated/java/imgui/flag/ImGuiDir.java +16b0173938a0f8dad35a78c8a546ae0e6ad02117 imgui-binding/src/generated/java/imgui/flag/ImGuiDockNodeFlags.java +c8e21f41c549336d2e4b8fd36030f4650f71f10d imgui-binding/src/generated/java/imgui/flag/ImGuiDragDropFlags.java +8591f02e79ee0a326d34d25021f4b96c39ffa47c imgui-binding/src/generated/java/imgui/flag/ImGuiFocusedFlags.java +d8bbcb76e1a3da5147567ee7876f660e4f4ec475 imgui-binding/src/generated/java/imgui/flag/ImGuiFreeTypeLoaderFlags.java +5b2d888a77656cfadcf351c92dd363786334b576 imgui-binding/src/generated/java/imgui/flag/ImGuiHoveredFlags.java +3b3bc03a1859b7b834423364252041c1c3fcbe6a imgui-binding/src/generated/java/imgui/flag/ImGuiInputTextFlags.java +c13d70513e6e4bccc7c359da21ffd6a74b13aaed imgui-binding/src/generated/java/imgui/flag/ImGuiKey.java +d3371cdb61c7783d6d7f9cc4afd5b2a873d32585 imgui-binding/src/generated/java/imgui/flag/ImGuiMouseButton.java +c07006bcb25b152d0bae0decaf5aa2f1bc0ed3e7 imgui-binding/src/generated/java/imgui/flag/ImGuiMouseCursor.java +49c535ddde9b627ba8616603747f75dec812c8b2 imgui-binding/src/generated/java/imgui/flag/ImGuiMouseSource.java +cfcc9a136416cab3aa7567ed4cdcc67b64ff60e2 imgui-binding/src/generated/java/imgui/flag/ImGuiPopupFlags.java +ede6bc3cab9d799ae17ba94c639b688f57e7d359 imgui-binding/src/generated/java/imgui/flag/ImGuiSelectableFlags.java +ca6ef1eb4b72805c068bbf7731886208b60bcb5d imgui-binding/src/generated/java/imgui/flag/ImGuiSliderFlags.java +5622b2c9ec3a88740f5e6a5955d0b04a75135fc3 imgui-binding/src/generated/java/imgui/flag/ImGuiSortDirection.java +48e68768d5b8557cd5cde3f76db4e7db1582681a imgui-binding/src/generated/java/imgui/flag/ImGuiStyleVar.java +2b03d842a939774342f4a7fb17a155789ead94fa imgui-binding/src/generated/java/imgui/flag/ImGuiTabBarFlags.java +694c0d87395997174303405b431c2f99ff4e2949 imgui-binding/src/generated/java/imgui/flag/ImGuiTabItemFlags.java +cf022320223adc91134a24ef0d6c64592128a383 imgui-binding/src/generated/java/imgui/flag/ImGuiTableBgTarget.java +f05bcae87360f8c0a8469f459311d59139d75e59 imgui-binding/src/generated/java/imgui/flag/ImGuiTableColumnFlags.java +7691d805aee7cf40747089b41421efc2f9efd6b0 imgui-binding/src/generated/java/imgui/flag/ImGuiTableFlags.java +b683336e1054a4617962f4341b375bdb3674c0e0 imgui-binding/src/generated/java/imgui/flag/ImGuiTableRowFlags.java +224ca185d07ec97862b26b3abf80b3d9f48b6778 imgui-binding/src/generated/java/imgui/flag/ImGuiTreeNodeFlags.java +ac70a34664774cb82b685c8ca90f113ffecfbd32 imgui-binding/src/generated/java/imgui/flag/ImGuiViewportFlags.java +30e881a8471393c3bb380a5c0d6f5c64017cd0a7 imgui-binding/src/generated/java/imgui/flag/ImGuiWindowFlags.java +572592323ed525595b3509a739f088d63c76363b imgui-binding/src/generated/java/imgui/internal/ImGui.java +103cfbb25c902fee4a654f325e69e24c8d2f0024 imgui-binding/src/generated/java/imgui/internal/ImGuiContext.java +6a91da6724f693dd655248fae4f2001a25633c23 imgui-binding/src/generated/java/imgui/internal/ImGuiDockNode.java +4572622ad082090bd369d54367b2365b88979647 imgui-binding/src/generated/java/imgui/internal/ImGuiWindow.java +bf1afb6aa23db2a7127d3eba30d0098f06c5449d imgui-binding/src/generated/java/imgui/internal/ImRect.java +4d13c7ede2c8737d5a9e684efda9141313d555c2 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiAxis.java +d926bffa1fc0fecb8629813837fe7fa26bf68c99 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiButtonFlags.java +0868ff0b24c80714072bbcfd70fb833f916e0767 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDataAuthority.java +8fe8f24bd24fcb637e8be8166b2d02bdbcf51029 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeFlags.java +94c82c186d8d87f37017606d036c4e07cef3adc4 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiDockNodeState.java +a045fe68b287b8b2214b3bbb8833a021899cde63 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiFocusRequestFlags.java +9b7db3d3ab7db22a3423f86a0140a8fd3e5e7431 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemFlags.java +9f9ff4634664167eb7e80d696ab9fd8b4684542e imgui-binding/src/generated/java/imgui/internal/flag/ImGuiItemStatusFlags.java +8481563c9f982b3596caf95994dcff3c7bf22392 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiSeparatorFlags.java +3d8b66f572bfb007e41792039ccabc23e5b72101 imgui-binding/src/generated/java/imgui/internal/flag/ImGuiTextFlags.java +c765e6eadf81568364ece65bdc87541130ebc57f imgui-binding/src/generated/java/imgui/lwjgl3/glfw/ImGuiImplGlfwNative.java +2f50626f0e9e9811265a2b46513b077687e75c65 imgui-binding/src/generated/java/imgui/type/ImBoolean.java +41c585c1446caba686f1d7aa209fcc1ca1137c2e imgui-binding/src/generated/java/imgui/type/ImDouble.java +9f01623ad87f740388fb416c51ca5b0f4699d307 imgui-binding/src/generated/java/imgui/type/ImFloat.java +9af49e06c80817988beddcbcbace6cbf625f9685 imgui-binding/src/generated/java/imgui/type/ImInt.java +9fb533da9855658cdde49fe13012b9df34ea5bf3 imgui-binding/src/generated/java/imgui/type/ImLong.java +1ec8254b8d7023c1b9db85f57cd020f142f05574 imgui-binding/src/generated/java/imgui/type/ImShort.java +0ed3ce650328c595f6c374c889320a15e0f894d9 imgui-binding/src/generated/java/imgui/type/ImString.java +da39a3ee5e6b4b0d3255bfef95601890afd80709 - diff --git a/bin/imgui-java.dll b/bin/imgui-java.dll deleted file mode 100755 index e7022100..00000000 Binary files a/bin/imgui-java.dll and /dev/null differ diff --git a/bin/imgui-java64.dll b/bin/imgui-java64.dll old mode 100755 new mode 100644 index 2c530748..90c5f00d Binary files a/bin/imgui-java64.dll and b/bin/imgui-java64.dll differ diff --git a/bin/libimgui-java.so b/bin/libimgui-java.so deleted file mode 100755 index 157e68da..00000000 Binary files a/bin/libimgui-java.so and /dev/null differ diff --git a/bin/libimgui-java64.dylib b/bin/libimgui-java64.dylib index ee0a6576..c91ddd77 100644 Binary files a/bin/libimgui-java64.dylib and b/bin/libimgui-java64.dylib differ diff --git a/bin/libimgui-java64.so b/bin/libimgui-java64.so old mode 100755 new mode 100644 index cf4d27a1..55cce7eb Binary files a/bin/libimgui-java64.so and b/bin/libimgui-java64.so differ diff --git a/build.gradle b/build.gradle index 6cd5d2b2..a9bb53f3 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,91 @@ +import tool.generator.ast.task.GenerateAst + +import java.text.SimpleDateFormat + +ext { + lwjglVersion = '3.4.1' +} + +// Gradle 9's configuration cache forbids starting external processes at +// configuration time via Groovy's '...'.execute() (the cache can't know +// if the result would be different next time). Use providers.exec, which +// is cache-aware. +def gitDescribeProvider = providers.exec { + commandLine 'git', 'describe', '--tags', '--always' +}.standardOutput.asText.map { it.trim().startsWith('v') ? it.trim().substring(1) : it.trim() }.orElse('unknown') + +def gitRevProvider = providers.exec { + commandLine 'git', 'rev-parse', 'HEAD' +}.standardOutput.asText.map { it.trim() }.orElse('unknown') + allprojects { - group 'imgui-java' - version property('version') + group = 'imgui-java' + version = gitDescribeProvider.get() + repositories { - jcenter() mavenCentral() } + + tasks.withType(Jar).tap { + configureEach { + from(project.rootDir) { + include 'LICENSE' + into 'META-INF' + } + + def jdkMetadata = tasks.withType(JavaCompile).find().javaCompiler.get().metadata + def buildJdk = "${jdkMetadata.javaRuntimeVersion} (${jdkMetadata.vendor})".toString() + def buildRev = gitRevProvider.get() + + manifest { + attributes ( + 'Implementation-Title': project.name, + 'Implementation-Version': project.version, + 'Build-Timestamp': new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(System.currentTimeMillis()), + 'Build-Revision': buildRev, + 'Build-Jdk': buildJdk, + 'Source-Compatibility': tasks.withType(JavaCompile).find().sourceCompatibility, + 'Target-Compatibility': tasks.withType(JavaCompile).find().targetCompatibility, + 'Created-By': "Gradle ${gradle.gradleVersion} " + ) + } + } + } +} + +tasks.register('buildAll') { t -> + t.group = 'build' + t.description = 'Build all project sources.' + + t.dependsOn ':imgui-app:shadowJar' + + ['app', 'binding', 'lwjgl3'].each { module -> + ['build', 'sourcesJar', 'javadocJar'].each { task -> + t.dependsOn ":imgui-$module:$task" + } + } +} + +tasks.register('generateAst', GenerateAst) { + headerFiles = [ + file('include/imgui/imgui.h'), + file('include/imgui/imgui_internal.h'), + file('include/imgui/misc/freetype/imgui_freetype.h'), + file('include/ImGuiFileDialog/ImGuiFileDialog.h'), + file('include/imgui-knobs/imgui-knobs.h'), + file('include/imguizmo/ImGuizmo.h'), + file('include/imnodes/imnodes.h'), + file('include/implot/implot.h'), + file('include/imgui-node-editor/imgui_node_editor.h'), + file('include/ImGuiColorTextEdit/TextEditor.h'), + ] +} + +// imgui-node-editor has an unreleased fix pending for imgui 1.92's new +// 'operator*(float, ImVec2)'. Apply a small patch file to the vendored +// submodule before native compile. The script is idempotent. +tasks.register('applyVendorPatches', Exec) { + group = 'build' + description = 'Apply patches to vendored submodules (e.g. imgui-node-editor imgui 1.92 compat).' + commandLine 'bash', 'buildSrc/scripts/apply_vendor_patches.sh' } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle deleted file mode 100644 index 88ee9a8f..00000000 --- a/buildSrc/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -plugins { - id 'groovy' -} - -repositories { - jcenter() - mavenCentral() -} - -ext { - jnigenVersion = '2.0.1' -} - -dependencies { - implementation gradleApi() - implementation localGroovy() - - implementation "com.badlogicgames.gdx:gdx-jnigen:$jnigenVersion" -} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 00000000..3f9affa4 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,21 @@ +plugins { + groovy + `kotlin-dsl` +} + +repositories { + mavenCentral() +} + +dependencies { + implementation(gradleApi()) + implementation(localGroovy()) + + implementation("com.badlogicgames.gdx:gdx-jnigen:2.5.2") + implementation("org.reflections:reflections:0.10.2") + implementation("com.lordcodes.turtle:turtle:0.6.0") + implementation("fr.inria.gforge.spoon:spoon-core:11.3.0") + + implementation("com.fasterxml.jackson.core:jackson-core:2.21.3") + implementation("com.fasterxml.jackson.core:jackson-databind:2.21.3") +} diff --git a/buildSrc/scripts/apply_vendor_patches.sh b/buildSrc/scripts/apply_vendor_patches.sh new file mode 100755 index 00000000..7489a8fd --- /dev/null +++ b/buildSrc/scripts/apply_vendor_patches.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Apply patches to vendored submodules. +# Idempotent: each patch is applied only if not already applied. + +set -e + +BASEDIR=$(dirname "$0") +cd "$BASEDIR"/../.. || exit 1 + +apply_patch_idempotent() { + local patch_file="$1" + local target_dir="$2" + + # --check returns 0 if the patch can apply cleanly (i.e. not yet applied), + # non-zero if it can't (already applied, or conflicts). + if git -C "$target_dir" apply --check "$patch_file" 2>/dev/null; then + echo "Applying $patch_file to $target_dir" + git -C "$target_dir" apply "$patch_file" + else + # Try reverse-check: if the patch is already applied, reversing would succeed. + if git -C "$target_dir" apply --reverse --check "$patch_file" 2>/dev/null; then + echo "Patch $patch_file already applied to $target_dir, skipping" + else + echo "ERROR: Patch $patch_file neither applies cleanly nor is already applied to $target_dir" >&2 + exit 1 + fi + fi +} + +apply_patch_idempotent \ + "$(pwd)/patches/imgui-node-editor-imgui-1.92-operator-star.patch" \ + include/imgui-node-editor diff --git a/buildSrc/scripts/build-natives-local-no-freetype.sh b/buildSrc/scripts/build-natives-local-no-freetype.sh deleted file mode 100644 index e3753bb0..00000000 --- a/buildSrc/scripts/build-natives-local-no-freetype.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -BASEDIR=$(dirname "$0") -cd $BASEDIR/../../imgui-binding || exit - -../gradlew clean generateLibs -Denvs=$* -Dlocal -rm -frd libsNative diff --git a/buildSrc/scripts/build-natives-local.sh b/buildSrc/scripts/build-natives-local.sh deleted file mode 100644 index e4bd09e4..00000000 --- a/buildSrc/scripts/build-natives-local.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -BASEDIR=$(dirname "$0") -cd $BASEDIR/../../imgui-binding || exit - -../gradlew clean generateLibs -Denvs=$* -Dlocal -DwithFreeType -rm -frd libsNative diff --git a/buildSrc/scripts/build-natives-no-freetype.sh b/buildSrc/scripts/build-natives-no-freetype.sh deleted file mode 100644 index c6f6d513..00000000 --- a/buildSrc/scripts/build-natives-no-freetype.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -BASEDIR=$(dirname "$0") -cd $BASEDIR/../../imgui-binding || exit - -rm -frd /tmp/imgui -../gradlew clean generateLibs -Denvs=$* diff --git a/buildSrc/scripts/build-natives.sh b/buildSrc/scripts/build-natives.sh deleted file mode 100644 index 04bc256e..00000000 --- a/buildSrc/scripts/build-natives.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -BASEDIR=$(dirname "$0") -cd $BASEDIR/../../imgui-binding || exit - -rm -frd /tmp/imgui -../gradlew clean generateLibs -Denvs=$* -DwithFreeType diff --git a/buildSrc/scripts/build.sh b/buildSrc/scripts/build.sh new file mode 100755 index 00000000..d7d17d69 --- /dev/null +++ b/buildSrc/scripts/build.sh @@ -0,0 +1,106 @@ +#!/bin/bash + +echo "Setting base directory and navigating to project root..." +BASEDIR=$(dirname "$0") +cd "$BASEDIR"/../.. || exit 1 +echo "Navigated to $(pwd)" + +# Check if vendor type argument is provided +if [ -z "$1" ]; then + echo "Vendor type is required" + exit 1 +fi + +VTYPE=$1 +echo "Vendor type set to '$VTYPE'" + +# Make the vendor FreeType script executable and run it +echo "Making vendor FreeType script executable and running it..." +chmod +x buildSrc/scripts/vendor_freetype.sh +buildSrc/scripts/vendor_freetype.sh "$VTYPE" +if [ $? -ne 0 ]; then + echo "Vendor FreeType script failed" + exit 1 +fi +echo "Vendor FreeType script completed successfully" + +# Create the destination directory for imgui libraries +echo "Creating destination directory for imgui libraries..." +mkdir -p /tmp/imgui/dst +echo "Directory /tmp/imgui/dst created successfully" + +# Function to check if a file exists +check_file_exists() { + if [ ! -f "$1" ]; then + echo "File $1 not found!" + exit 1 + fi +} + +# Determine build process based on vendor type +case "$VTYPE" in + windows) + echo "Running Gradle task for Windows..." + ./gradlew imgui-binding:generateLibs -Denvs=windows -Dfreetype=true + if [ $? -ne 0 ]; then + echo "Gradle task for Windows failed" + exit 1 + fi + + echo "Checking if the generated DLL exists..." + check_file_exists /tmp/imgui/libsNative/windows64/imgui-java64.dll + + echo "Copying the generated DLL to the destination directory..." + cp /tmp/imgui/libsNative/windows64/imgui-java64.dll /tmp/imgui/dst/imgui-java64.dll + if [ $? -ne 0 ]; then + echo "Failed to copy DLL to /tmp/imgui/dst/imgui-java64.dll" + exit 1 + fi + echo "DLL copied to /tmp/imgui/dst/imgui-java64.dll successfully" + ;; + linux) + echo "Running Gradle task for Linux..." + ./gradlew imgui-binding:generateLibs -Denvs=linux -Dfreetype=true + if [ $? -ne 0 ]; then + echo "Gradle task for Linux failed" + exit 1 + fi + + echo "Checking if the generated SO file exists..." + check_file_exists /tmp/imgui/libsNative/linux64/libimgui-java64.so + + echo "Copying the generated SO file to the destination directory..." + cp /tmp/imgui/libsNative/linux64/libimgui-java64.so /tmp/imgui/dst/libimgui-java64.so + if [ $? -ne 0 ]; then + echo "Failed to copy SO file to /tmp/imgui/dst/libimgui-java64.so" + exit 1 + fi + echo "SO file copied to /tmp/imgui/dst/libimgui-java64.so successfully" + ;; + macos) + echo "Running Gradle task for macOS and macOS ARM..." + ./gradlew imgui-binding:generateLibs -Denvs=macos,macosarm64 -Dfreetype=true + if [ $? -ne 0 ]; then + echo "Gradle task for macOS failed" + exit 1 + fi + + echo "Checking if the generated DYLIB files exist..." + check_file_exists /tmp/imgui/libsNative/macosx64/libimgui-java64.dylib + check_file_exists /tmp/imgui/libsNative/macosxarm64/libimgui-java64.dylib + + echo "Creating a universal library using lipo..." + lipo -create -output /tmp/imgui/dst/libimgui-java64.dylib /tmp/imgui/libsNative/macosx64/libimgui-java64.dylib /tmp/imgui/libsNative/macosxarm64/libimgui-java64.dylib + if [ $? -ne 0 ]; then + echo "Failed to create universal library with lipo" + exit 1 + fi + echo "Universal library created at /tmp/imgui/dst/libimgui-java64.dylib successfully" + ;; + *) + echo "Unknown vendor type: $VTYPE" + exit 1 + ;; +esac + +echo "Script completed successfully." diff --git a/buildSrc/scripts/copy-natives.sh b/buildSrc/scripts/copy-natives.sh deleted file mode 100644 index 37aa4272..00000000 --- a/buildSrc/scripts/copy-natives.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -BASEDIR=$(dirname "$0") -cd $BASEDIR/../.. || exit - -[ -e "/tmp/imgui/libsNative/windows32/imgui-java.dll" ] && cp /tmp/imgui/libsNative/windows32/imgui-java.dll ./bin -[ -e "/tmp/imgui/libsNative/windows64/imgui-java64.dll" ] && cp /tmp/imgui/libsNative/windows64/imgui-java64.dll ./bin -[ -e "/tmp/imgui/libsNative/linux32/libimgui-java.so" ] && cp /tmp/imgui/libsNative/linux32/libimgui-java.so ./bin -[ -e "/tmp/imgui/libsNative/linux64/libimgui-java64.so" ] && cp /tmp/imgui/libsNative/linux64/libimgui-java64.so ./bin -[ -e "/tmp/imgui/libsNative/macosx64/libimgui-java64.dylib" ] && cp /tmp/imgui/libsNative/macosx64/libimgui-java64.dylib ./bin diff --git a/buildSrc/scripts/publish.sh b/buildSrc/scripts/publish.sh new file mode 100755 index 00000000..9f73b829 --- /dev/null +++ b/buildSrc/scripts/publish.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Set base directory and navigate to project root +echo "Setting base directory and navigating to project root..." +BASEDIR=$(dirname "$0") +cd "$BASEDIR"/../.. || exit 1 +echo "Navigated to $(pwd)" + +echo '> Publishing Modules...' + +publish_module() { + local module=$1 + echo ">> Publishing Module [$module]" + ./gradlew $module:publishImguiPublicationToMavenCentralRepository + if [ $? -ne 0 ]; then + echo "Failed to publish $module module" + exit 1 + fi + echo ">> Module [$module] published successfully" +} + +# Publish each module +publish_module "imgui-app" +publish_module "imgui-lwjgl3" +publish_module "imgui-binding" + +echo '> Publishing Natives...' + +publish_natives() { + local platform=$1 + echo ">> Publishing Natives: [$platform]" + ./gradlew imgui-binding-natives:publishImguiPublicationToMavenCentralRepository -PdeployType=$platform + if [ $? -ne 0 ]; then + echo "Failed to publish natives for $platform" + exit 1 + fi + echo ">> Natives for $platform published successfully" +} + +# Publish natives for each platform +publish_natives "windows" +publish_natives "linux" +publish_natives "macos" + +echo "> Nexus manual upload..." +curl -D - -X POST -u "${NEXUS_UPD_ID}:${NEXUS_UPD_PASS}" "https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/io.github.spair" + +echo "All modules and natives published successfully." diff --git a/buildSrc/scripts/vendor_freetype.sh b/buildSrc/scripts/vendor_freetype.sh new file mode 100755 index 00000000..5d973c79 --- /dev/null +++ b/buildSrc/scripts/vendor_freetype.sh @@ -0,0 +1,107 @@ +#!/bin/bash + +# Set base directory and navigate to project root +echo "Setting base directory and navigating to project root..." +BASEDIR=$(dirname "$0") +cd "$BASEDIR"/../.. || exit 1 +echo "Navigated to $(pwd)" + +# Check if vendor type argument is provided +if [ -z "$1" ]; then + echo "Vendor type is required" + exit 1 +fi + +VTYPE=$1 +echo "Vendor type set to '$VTYPE'" + +# Define library directory and version +LIBDIR=build/vendor/freetype +VERSION=2.13.3 + +# Clean and create library directory, then extract FreeType source +echo "Cleaning and creating library directory, then extracting FreeType source..." +rm -rf $LIBDIR +mkdir -p $LIBDIR +tar -xzf ./vendor/freetype-$VERSION.tar.gz -C $LIBDIR --strip-components=1 +if [ $? -ne 0 ]; then + echo "Failed to extract FreeType source" + exit 1 +fi +cd $LIBDIR || exit 1 +echo "FreeType unzipped to $LIBDIR" + +# Common configuration flags +COMMON_FLAGS="--enable-static --disable-shared --without-zlib --without-bzip2 --without-png --without-harfbuzz --without-brotli" + +# Function to configure and build FreeType +build_freetype() { + cflags=$1 + prefix=$2 + output_dir=$3 + + echo "Cleaning previous builds..." + make clean + + echo "Configuring FreeType with CFLAGS='$cflags' and PREFIX='$prefix'..." + ./configure CFLAGS="$cflags" $COMMON_FLAGS $prefix + if [ $? -ne 0 ]; then + echo "Failed to configure FreeType" + exit 1 + fi + + echo "Building FreeType..." + make + if [ $? -ne 0 ]; then + echo "Failed to build FreeType" + exit 1 + fi + + echo "Checking if the generated library exists..." + if [ ! -f objs/.libs/libfreetype.a ]; then + echo "File objs/.libs/libfreetype.a not found!" + exit 1 + fi + + echo "Copying the generated library to $output_dir..." + cp objs/.libs/libfreetype.a "$output_dir" + if [ $? -ne 0 ]; then + echo "Failed to copy library to $output_dir" + exit 1 + fi + echo "Library copied to $output_dir" +} + +# Ensure necessary directories exist +echo "Ensuring necessary directories exist..." +mkdir -p lib tmp + +# Determine build process based on vendor type +case "$VTYPE" in + windows) + build_freetype "" "--host=x86_64-w64-mingw32 --prefix=/usr/x86_64-w64-mingw32" "lib/libfreetype.a" + ;; + linux) + build_freetype "-fPIC" "" "lib/libfreetype.a" + ;; + macos) + MACOS_VERSION=10.15 + + build_freetype "-arch x86_64 -mmacosx-version-min=$MACOS_VERSION" "" "tmp/libfreetype-x86_64.a" + build_freetype "-arch arm64 -mmacosx-version-min=$MACOS_VERSION" "" "tmp/libfreetype-arm64.a" + + echo "Creating universal library using lipo..." + lipo -create -output lib/libfreetype.a tmp/libfreetype-x86_64.a tmp/libfreetype-arm64.a + if [ $? -ne 0 ]; then + echo "Failed to create universal library with lipo" + exit 1 + fi + echo "Universal library created at lib/libfreetype.a" + ;; + *) + echo "Unknown vendor type: $VTYPE" + exit 1 + ;; +esac + +echo "Script completed successfully." diff --git a/buildSrc/src/main/groovy/imgui/generate/GenerateLibs.groovy b/buildSrc/src/main/groovy/imgui/generate/GenerateLibs.groovy deleted file mode 100644 index d8b9b39d..00000000 --- a/buildSrc/src/main/groovy/imgui/generate/GenerateLibs.groovy +++ /dev/null @@ -1,142 +0,0 @@ -package imgui.generate - -import com.badlogic.gdx.jnigen.* -import groovy.transform.CompileStatic -import org.gradle.api.DefaultTask -import org.gradle.api.file.CopySpec -import org.gradle.api.tasks.TaskAction - -@CompileStatic -class GenerateLibs extends DefaultTask { - String description = 'Generates native libraries using classes under ":imgui-binding" and Dear ImGui itself from "imgui" submodule.' - - private final String[] buildEnvs = System.getProperty('envs')?.split(',') - private final boolean forWin32 = buildEnvs?.contains('win32') - private final boolean forWin64 = buildEnvs?.contains('win64') - private final boolean forLinux32 = buildEnvs?.contains('linux32') - private final boolean forLinux64 = buildEnvs?.contains('linux64') - private final boolean forMac64 = buildEnvs?.contains('mac64') - - private final boolean isLocal = System.properties.containsKey("local") - private final boolean withFreeType = System.properties.containsKey("withFreeType") - - private final String sourceDir = project.file('src/main/java') - private final String classpath = project.file('build/classes/java/main') - private final String jniDir = (isLocal ? project.buildDir.path : '/tmp/imgui') + '/jni' - private final String tmpFolder = (isLocal ? project.buildDir.path : '/tmp/imgui') + '/tmp' - private final String libsFolder = 'libsNative' - - @TaskAction - void generate() { - println 'Generating Native Libraries...' - println "Build environments: $buildEnvs" - println "Local mode: $isLocal" - println "With FreeType: $withFreeType" - println '=====================================' - - // Generate h/cpp files for JNI - new NativeCodeGenerator().generate(sourceDir, classpath, jniDir) - - // Copy ImGui h/cpp files - project.copy { CopySpec spec -> - ['include/imgui', 'include/imnodes', 'include/imgui-node-editor'].each { - spec.from(project.rootProject.file(it)) { CopySpec s -> s.include('*.h', '*.cpp', '*.inl') } - } - - if (withFreeType) { - spec.from(project.rootProject.file('include/imgui/misc/freetype')) { CopySpec it -> it.include('*.h', '*.cpp') } - } - - spec.into(jniDir) - } - - project.copy {CopySpec spec -> - spec.from(project.rootProject.file('imgui-binding/src/main/native')).into(jniDir) - } - - // Generate platform dependant ant configs and header files - def buildConfig = new BuildConfig('imgui-java', tmpFolder, libsFolder, jniDir) - def buildTargets = [] as BuildTarget[] - - if (forWin32) { - def win32 = BuildTarget.newDefaultTarget(BuildTarget.TargetOs.Windows, false) - - if (withFreeType) { - win32.cppFlags += ' -fstack-protector -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - win32.libraries += '-lfreetype -lbz2 -lssp' - } - - buildTargets += win32 - } - if (forWin64) { - def win64 = BuildTarget.newDefaultTarget(BuildTarget.TargetOs.Windows, true) - - if (withFreeType) { - win64.cppFlags += ' -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - win64.libraries += '-lfreetype -lbz2 -lssp' - } - - buildTargets += win64 - } - - if (forLinux32) { - def linux32 = BuildTarget.newDefaultTarget(BuildTarget.TargetOs.Linux, false) - - if (withFreeType) { - linux32.cppFlags += ' -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - linux32.linkerFlags += ' -lfreetype' - } - - buildTargets += linux32 - } - if (forLinux64) { - def linux64 = BuildTarget.newDefaultTarget(BuildTarget.TargetOs.Linux, true) - - if (withFreeType) { - linux64.cppFlags += ' -I/usr/include/freetype2 -I/usr/include/libpng16 -I/usr/include/harfbuzz -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include' - linux64.linkerFlags += ' -lfreetype' - } - - buildTargets += linux64 - } - - if (forMac64) { - def minMacOsVersion = '10.15' - def mac64 = BuildTarget.newDefaultTarget(BuildTarget.TargetOs.MacOsX, true) - mac64.cppFlags += ' -std=c++14 -stdlib=libc++' - mac64.cppFlags = mac64.cppFlags.replace('10.5', minMacOsVersion).replace('10.7', minMacOsVersion) - mac64.linkerFlags = mac64.linkerFlags.replace('10.5', minMacOsVersion).replace('10.7', minMacOsVersion) - - if (withFreeType) { - mac64.cppFlags += ' -I/usr/local/include/freetype2 -I/usr/local/include/libpng16 -I/usr/local/include/harfbuzz -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include' - mac64.linkerFlags += ' -lfreetype' - } - - buildTargets += mac64 - } - - new AntScriptGenerator().generate(buildConfig, buildTargets) - - if (!withFreeType) { - project.delete { - it.delete("$jniDir/imgui_ImGuiFreeType.cpp", "$jniDir/imgui_ImGuiFreeType.h") - } - } - - // Generate native libraries - // Comment/uncomment lines with OS you need. - - if (forWin32) - BuildExecutor.executeAnt(jniDir + '/build-windows32.xml', '-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile') - if (forWin64) - BuildExecutor.executeAnt(jniDir + '/build-windows64.xml', '-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile') - if (forLinux32) - BuildExecutor.executeAnt(jniDir + '/build-linux32.xml', '-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile') - if (forLinux64) - BuildExecutor.executeAnt(jniDir + '/build-linux64.xml', '-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile') - if (forMac64) - BuildExecutor.executeAnt(jniDir + '/build-macosx64.xml', '-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile') - - BuildExecutor.executeAnt(jniDir + '/build.xml', '-v', 'pack-natives') - } -} diff --git a/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy b/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy new file mode 100644 index 00000000..d6dd666c --- /dev/null +++ b/buildSrc/src/main/groovy/tool/generator/GenerateLibs.groovy @@ -0,0 +1,216 @@ +package tool.generator + +import com.badlogic.gdx.jnigen.* +import com.badlogic.gdx.utils.Architecture +import com.badlogic.gdx.utils.Os +import groovy.transform.CompileStatic +import org.gradle.api.DefaultTask +import org.gradle.api.file.CopySpec +import org.gradle.api.file.DuplicatesStrategy +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction + +@CompileStatic +class GenerateLibs extends DefaultTask { + private static final String[] INCLUDES = [ + 'include/imgui', + 'include/imnodes', + 'include/imgui-node-editor', + 'include/imguizmo', + 'include/implot', + 'include/ImGuiColorTextEdit', +// 'include/ImGuiFileDialog', + 'include/imgui_club/imgui_memory_editor', + 'include/imgui-knobs' + ] + + @Internal + String group = 'build' + @Internal + String description = 'Generate imgui-java native binaries.' + + private final String[] buildEnvs = System.getProperty('envs')?.split(',') + private final boolean forWindows = buildEnvs?.contains('windows') + private final boolean forLinux = buildEnvs?.contains('linux') + private final boolean forMac = buildEnvs?.contains('macos') + private final boolean forMacArm64 = buildEnvs?.contains('macosarm64') + + private final boolean isLocal = System.properties.containsKey('local') + private final boolean withFreeType = Boolean.valueOf(System.properties.getProperty('freetype', 'false')) + + private final String sourceDir = project.file('src/generated/java') + private final String classpath = project.file('build/classes/java/main') + private final String rootDir = (isLocal ? project.buildDir.path : '/tmp/imgui') + private final String jniDir = "$rootDir/jni" + private final String tmpDir = "$rootDir/tmp" + private final String libsDirName = 'libsNative' + + @TaskAction + void generate() { + println 'Generating Native Libraries...' + println "Build targets: $buildEnvs" + println "Local: $isLocal" + println "FreeType: $withFreeType" + println '=====================================' + + if (!buildEnvs) { + throw new IllegalStateException('No build targets') + } + + new File(jniDir).deleteDir() + new File(tmpDir).deleteDir() + new File("$rootDir/$libsDirName").deleteDir() + + // Generate h/cpp files for JNI + new NativeCodeGenerator().generate(sourceDir, classpath, jniDir) + + // Copy ImGui h/cpp files + project.copy { CopySpec spec -> + INCLUDES.each { + spec.from(project.rootProject.file(it)) { CopySpec s -> s.include('*.h', '*.cpp', '*.inl') } + } + spec.from(project.rootProject.file('imgui-binding/src/main/native')) + spec.into(jniDir) + spec.duplicatesStrategy = DuplicatesStrategy.INCLUDE // Allows for duplicate imconfig.h, we ensure the correct one is copied below + } + + // Ensure we overwrite imconfig.h with our own + project.copy { CopySpec spec -> + spec.from(project.rootProject.file('imgui-binding/src/main/native/imconfig.h')) + spec.into(jniDir) + } + + // Ensure the active ImGuiColorTextEdit snapshot wins even if a stale TextEditor.* exists in the JNI dir. + project.copy { CopySpec spec -> + spec.from(project.rootProject.file('include/ImGuiColorTextEdit')) { CopySpec s -> s.include('TextEditor.h', 'TextEditor.cpp') } + spec.into(jniDir) + } + + if (withFreeType) { + project.copy { CopySpec spec -> + spec.from(project.rootProject.file('include/imgui/misc/freetype')) { CopySpec it -> it.include('*.h', '*.cpp') } + spec.into("$jniDir/misc/freetype") + } + + // Since we give a possibility to build library without enabled freetype - define should be set like that. + replaceSourceFileContent("imconfig.h", "//#define IMGUI_ENABLE_FREETYPE", "#define IMGUI_ENABLE_FREETYPE") + + // Binding specific behavior to handle FreeType. + // By defining IMGUI_ENABLE_FREETYPE, Dear ImGui will default to using the FreeType font renderer. + // However, we modify the source code to ensure that, even with this, the STB_TrueType renderer is used instead. + // To use the FreeType font renderer, it must be explicitly forced on the atlas manually. + replaceSourceFileContent("imgui_draw.cpp", "ImGuiFreeType::GetFontLoader()", "ImFontAtlasGetFontLoaderForStbTruetype()") + } + + // Copy dirent for ImGuiFileDialog + project.copy { CopySpec spec -> + spec.from(project.rootProject.file('include/ImGuiFileDialog/dirent')) { CopySpec s -> s.include('*.h', '*.cpp', '*.inl') } + spec.into(jniDir + '/dirent') + } + + // Generate platform dependant ant configs and header files + def buildConfig = new BuildConfig('imgui-java', tmpDir, libsDirName, jniDir) + BuildTarget[] buildTargets = [] + + if (forWindows) { + def win64 = BuildTarget.newDefaultTarget(Os.Windows, Architecture.Bitness._64) + requireCpp17(win64) + addFreeTypeIfEnabled(win64) + buildTargets += win64 + } + + if (forLinux) { + def linux64 = BuildTarget.newDefaultTarget(Os.Linux, Architecture.Bitness._64) + requireCpp17(linux64) + addFreeTypeIfEnabled(linux64) + buildTargets += linux64 + } + + if (forMac) { + buildTargets += createMacTarget(Architecture.x86) + } + + if (forMacArm64) { + buildTargets += createMacTarget(Architecture.ARM) + } + + new AntScriptGenerator().generate(buildConfig, buildTargets) + + // Generate native libraries + // Comment/uncomment lines with OS you need. + + def commonParams = ['-v', '-Dhas-compiler=true', '-Drelease=true', 'clean', 'postcompile'] as String[] + + if (forWindows) + BuildExecutor.executeAnt(jniDir + '/build-windows64.xml', commonParams) + if (forLinux) + BuildExecutor.executeAnt(jniDir + '/build-linux64.xml', commonParams) + if (forMac) + BuildExecutor.executeAnt(jniDir + '/build-macosx64.xml', commonParams) + if (forMacArm64) + BuildExecutor.executeAnt(jniDir + '/build-macosxarm64.xml', commonParams) + + BuildExecutor.executeAnt(jniDir + '/build.xml', '-v', 'pack-natives') + + if (forWindows) + checkLibExist("windows64/imgui-java64.dll") + if (forLinux) + checkLibExist("linux64/libimgui-java64.so") + if (forMac) + checkLibExist("macosx64/libimgui-java64.dylib") + if (forMacArm64) + checkLibExist("macosxarm64/libimgui-java64.dylib") + } + + void checkLibExist(String libName) { + def path = new File("$rootDir/$libsDirName/$libName") + if (!path.exists()) { + logger.error("Failed to build $libName!") + throw new IllegalStateException("$path does not exist") + } + } + + BuildTarget createMacTarget(Architecture arch) { + def minMacOsVersion = '10.15' + def macTarget = BuildTarget.newDefaultTarget(Os.MacOsX, Architecture.Bitness._64, arch) + macTarget.libName = "libimgui-java64.dylib" // Lib for arm64 will be named the same for consistency. + requireCpp17(macTarget) + macTarget.cppFlags = macTarget.cppFlags.replace('10.7', minMacOsVersion) + macTarget.linkerFlags = macTarget.linkerFlags.replace('10.7', minMacOsVersion) + addFreeTypeIfEnabled(macTarget) + return macTarget + } + + void requireCpp17(BuildTarget target) { + target.cppFlags = target.cppFlags.replace(' -std=c++14', '') + if (!target.cppFlags.contains('-std=c++17')) { + target.cppFlags += ' -std=c++17' + } + } + + void addFreeTypeIfEnabled(BuildTarget target) { + if (!withFreeType) { + return + } + + def freetypeVendorDir = project.rootProject.file('build/vendor/freetype') + if (!freetypeVendorDir.exists()) { + logger.error("$freetypeVendorDir doesn't exist! Run 'buildSrc/scripts/vendor_freetype.sh' for your platform beforehand!") + throw new IllegalStateException("Unable to build library for FreeType") + } + + target.cppFlags += " -I$freetypeVendorDir/include" + target.linkerFlags += " -L${project.rootProject.file("$freetypeVendorDir/lib")}" + target.libraries += ' -lfreetype' + } + + void replaceSourceFileContent(String fileName, String replaceWhat, String replaceWith) { + def sourceFile = new File("$jniDir/$fileName") + def sourceTxt = sourceFile.text + def sourceTxtModified = sourceTxt.replace(replaceWhat, replaceWith) + if (sourceTxt == sourceTxtModified) { + throw new IllegalStateException("Unable to replace [$fileName] with content [$replaceWith]!") + } + sourceFile.text = sourceTxtModified + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt b/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt new file mode 100644 index 00000000..43e11012 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/BindingSourceProcessor.kt @@ -0,0 +1,204 @@ +package tool.generator.api + +import spoon.reflect.code.CtJavaDoc +import spoon.reflect.declaration.CtElement +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtNamedElement +import spoon.reflect.declaration.CtType +import spoon.reflect.declaration.CtTypedElement +import kotlin.math.max + +class BindingSourceProcessor( + private val type: CtType<*> +) { + companion object { + private const val BLANK_SPACE = " " + + private val CLEANUP_ANNOTATIONS_REGEX = Regex( + "@" + CLEANUP_ANNOTATIONS_LIST.joinToString(separator = "|", prefix = "(", postfix = ")") + ".*" + ) + + private val CLEANUP_IMPORTS_REGEX = Regex( + "import.+" + CLEANUP_ANNOTATIONS_LIST.joinToString(separator = "|", prefix = "(", postfix = ")") + ) + + fun isProcessable(type: CtType<*>): Boolean { + return type.hasAnnotation(A_NAME_BINDING_SOURCE) + } + } + + private val originalContent: String = type.position.file.readText() + + fun process() { + val contentToReplace = mutableMapOf() + contentToReplace += collectBindingFields() + contentToReplace += collectBindingMethods() + contentToReplace += collectBindingAstEnums() + + val contentBuilder = StringBuilder(originalContent) + contentToReplace.keys.sortedDescending().forEach { replacePos -> + contentBuilder.replace(replacePos.startIdx, replacePos.endIdx, contentToReplace[replacePos]) + } + + cleanupBindingAnnotations(contentBuilder) + + type.position.file.writeText(contentBuilder.toString()) + } + + private fun collectBindingFields(): Map { + val result = mutableMapOf() + for (field in type.fields) { + if (field.hasAnnotation(A_NAME_BINDING_FIELD)) { + result += processBindingField(field) + } + } + return result + } + + private fun collectBindingMethods(): Map { + val result = mutableMapOf() + for (method in type.methods) { + if (method.hasAnnotation(A_NAME_BINDING_METHOD)) { + result += processBindingMethod(method) + } + } + return result + } + + private fun collectBindingAstEnums(): Map { + val result = mutableMapOf() + for (field in type.fields) { + if (field.hasAnnotation(A_NAME_BINDING_AST_ENUM)) { + result += processBindingAstEnum(field) + } + } + return result + } + + private fun cleanupBindingAnnotations(contentBuilder: StringBuilder) { + val linesToRemove = mutableListOf() + contentBuilder.lineSequence().forEach { line -> + if (line.contains(CLEANUP_IMPORTS_REGEX)) { + linesToRemove += line + } + if (line.contains(CLEANUP_ANNOTATIONS_REGEX)) { + linesToRemove += line + } + } + linesToRemove.reversed().forEach { line -> + val idx = contentBuilder.indexOf(line) + contentBuilder.delete(idx, idx + line.length + 1) + } + } + + private fun processBindingMethod(method: CtMethod<*>): Map { + val contentToReplace = mutableMapOf() + + // Remove the original javadoc comment from the generated content. + method.comments.find { it is CtJavaDoc }?.let { + // sourceEnd has an additional offset of 6. + // 1 - '/' + // 2 - '\n' + // 3-6 - ' ' + contentToReplace[ReplacePos(it.position.sourceStart, it.position.sourceEnd + 6)] = "" + } + + val content = mutableListOf() + + // Handle argument variants + if (method.parameters.find { it.hasAnnotation(A_NAME_ARG_VARIANT) } != null) { + data class ArgVar(val idx: Int, val type: String, val name: String) + + val variants = mutableListOf() + + method.parameters.forEachIndexed { idx, p -> + if (p.hasAnnotation(A_NAME_ARG_VARIANT)) { + val a = p.getAnnotation(A_NAME_ARG_VARIANT)!! + val types = (a.getValueAsObject(A_VALUE_TYPE) as Array<*>).map { it.toString() } + val names = (a.getValueAsObject(A_VALUE_NAME) as Array<*>).map { it.toString() } + + if (types.isNotEmpty() && names.isNotEmpty() && types.size != names.size) { + error("Types size should be the as names! Current: types=${types.size}, names=${names.size}") + } + + for (i in 0 until max(types.size, names.size)) { + variants += ArgVar( + idx, + types.getOrNull(i) ?: p.type.simpleName, + names.getOrNull(i) ?: p.simpleName, + ) + } + } + } + + val variantsMap = variants.groupBy { it.idx } + val variantsCount = variantsMap.values.first().size + + for (i in 0 until variantsCount) { + val m = method.clone() + m.setParent(method.parent) + variantsMap.values.forEach { vList -> + val v = vList[i] + val p = m.parameters[v.idx] + p.setAnnotations(p.annotations.filterNot { it.name == A_NAME_ARG_VARIANT }) + p.setType>(m.factory.createTypeParameterReference(v.type)) + p.setSimpleName(v.name) + } + content += jvmMethodContent(m) + jniMethodContent(m) + } + } else { + content += jvmMethodContent(method) + jniMethodContent(method) + } + + contentToReplace[method.findReplacePos()] = content.joinWithIndention() + return contentToReplace + } + + private fun processBindingField(field: CtField<*>): Map { + val contentToReplace = mutableMapOf() + + // Remove the original javadoc comment from the generated content. + field.comments.find { it is CtJavaDoc }?.let { + // sourceEnd has an additional offset of 6. + // 1 - '/' + // 2 - '\n' + // 3-6 - ' ' + contentToReplace[ReplacePos(it.position.sourceStart, it.position.sourceEnd + 6)] = "" + } + + val content = jvmFieldContent(field) + jniFieldContent(field) + contentToReplace[field.findReplacePos()] = content.joinWithIndention() + return contentToReplace + } + + private fun processBindingAstEnum(field: CtField<*>): Map { + val content = astEnumContent(field.getAnnotation(A_NAME_BINDING_AST_ENUM)!!) + val contentStr = content.joinWithIndention() + return mapOf(field.findReplacePos() to contentStr) + } + + private fun List.joinWithIndention(): String { + return joinToString("\n\n") { str -> + str.lines().joinToString("\n") { + it.takeIf(String::isNotBlank)?.prependIndent(BLANK_SPACE) ?: it + } + } + } + + private fun CtElement.findReplacePos(): ReplacePos { + var startIdx = annotations[0].position.sourceStart + while (originalContent[startIdx] != '\n') { + startIdx-- + } + startIdx++ + val endIdx = position.sourceEnd + 1 + return ReplacePos(startIdx, endIdx) + } + + private data class ReplacePos(val startIdx: Int, val endIdx: Int) : Comparable { + override fun compareTo(other: ReplacePos): Int { + return startIdx.compareTo(other.startIdx) + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt b/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt new file mode 100644 index 00000000..dd797fa1 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/ExcludedSourceProcessor.kt @@ -0,0 +1,23 @@ +package tool.generator.api + +import org.apache.commons.io.FileUtils +import spoon.reflect.declaration.CtType + +class ExcludedSourceProcessor( + private val type: CtType<*> +) { + companion object { + fun isProcessable(type: CtType<*>): Boolean { + return type.hasAnnotation(A_NAME_EXCLUDED_SOURCE) + } + } + + fun process() { + val sourceFile = type.position.file + val parentDir = sourceFile.parentFile + sourceFile.delete() + if (FileUtils.isEmptyDirectory(parentDir)) { + parentDir.delete() + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt new file mode 100644 index 00000000..5dca5bb7 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/ast_content.kt @@ -0,0 +1,76 @@ +package tool.generator.api + +import spoon.reflect.code.CtRHSReceiver +import spoon.reflect.declaration.CtAnnotation +import spoon.reflect.declaration.CtElement +import spoon.reflect.declaration.CtModifiable +import spoon.reflect.declaration.CtNamedElement +import spoon.reflect.declaration.CtTypedElement +import spoon.reflect.declaration.ModifierKind +import tool.generator.ast.AstEnumConstantDecl +import tool.generator.ast.AstParser + +fun astEnumContent(markerAnnotation: CtAnnotation<*>): List { + val result = mutableListOf() + + val file = markerAnnotation.getValueAsString(A_VALUE_FILE)!! + val qualType = markerAnnotation.getValueAsString(A_VALUE_QUAL_TYPE)!! + val astRoot = AstParser.readFromResource(file) + + val enums = astRoot.decls.filterDecls0 { + it is AstEnumConstantDecl && it.qualType == qualType + }.map { it as AstEnumConstantDecl } + + val factory = markerAnnotation.factory + + enums.forEach { e -> + val f = factory.createField() + + f.setModifiers(setOf(ModifierKind.PUBLIC, ModifierKind.STATIC, ModifierKind.FINAL)) + f.setType>(factory.createTypeParam("int")) + f.setSimpleName(sanitizeName(markerAnnotation.getValueSanitizeName(qualType), e.name)) + buildString { + if (e.docComment != null) { + appendLine(e.docComment) + if (e.value != null) { + appendLine() + append("

") + } + } + if (e.value != null) { + append("Definition: {@code ${e.value}}") + } + }.let { + if (it.isNotEmpty()) { + f.setDocComment(sanitizeDocComment(it)) + } + } + f.setAssignment>(factory.createCodeSnippetExpression((e.evaluatedValue ?: e.order).toString())) + + result += f.prettyprint() + } + + return result +} + +private fun CtAnnotation<*>.getValueSanitizeName(default: String): String { + return getValueAsString(A_VALUE_SANITIZE_NAME)?.takeIf(String::isNotEmpty) ?: default +} + +private fun sanitizeName(aValueSanitizeName: String, name: String): String { + var result = name.replace(aValueSanitizeName, "").trim() + if (result.toIntOrNull() != null) { + result = "_$result" + } + return result +} + +private fun sanitizeDocComment(doc: String): String { + return doc + .replace("*/", "* /") + .replace(" > ", "{@code >}") + .replace("< <", "{@code <<}") + .replace(" < ", "{@code <}") + .replace("->", "{@code ->}") + .replace("&", "{@code &}") +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt new file mode 100644 index 00000000..37d15fb4 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/jni_content.kt @@ -0,0 +1,710 @@ +package tool.generator.api + +import spoon.reflect.code.CtBodyHolder +import spoon.reflect.code.CtStatement +import spoon.reflect.code.CtStatementList +import spoon.reflect.declaration.CtAnnotation +import spoon.reflect.declaration.CtElement +import spoon.reflect.declaration.CtExecutable +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtModifiable +import spoon.reflect.declaration.CtNamedElement +import spoon.reflect.declaration.CtParameter +import spoon.reflect.declaration.CtTypedElement +import spoon.reflect.declaration.ModifierKind +import spoon.reflect.factory.Factory +import spoon.reflect.reference.CtReference +import spoon.reflect.reference.CtTypeReference + +private fun convertParams2jni(f: Factory, params: List>, defaults: IntArray): List> { + val result = mutableListOf>() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + if (p.isType("ImVec2") || p.isType("ImVec4")) { // vec param always accepted as primitive values + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}X") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}Y") + } + if (p.isType("ImVec4")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}Z") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}W") + } + } + } else if (p.isType("ImRect")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MinX") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MinY") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MaxX") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("float")) + setSimpleName("${p.simpleName}MaxY") + } + } else if (p.isType("ImPlotPoint")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}X") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Y") + } + } else if (p.isType("ImPlotRange")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Min") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}Max") + } + } else if (p.isType("ImPlotRect")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MinX") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MinY") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MaxX") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("double")) + setSimpleName("${p.simpleName}MaxY") + } + } else if (p.isType("TextEditorCursorPosition")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("${p.simpleName}Line") + } + result += f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("${p.simpleName}Column") + } + } else if (p.isType("String[]")) { + result += f.createParameter().apply { + setType>(f.createTypeParam("String[]")) + setSimpleName(p.simpleName) + } + result += f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("${p.simpleName}$PARAM_ARR_LEN_POSTFIX") + } + } else { + result += f.createParameter().apply { + val type = if (p.type.isPtrClass()) { + f.createTypeParam("long") + } else { + when (p.type.simpleName) { + "ImBoolean" -> f.createTypeParam("boolean[]") + "ImShort" -> f.createTypeParam("short[]") + "ImInt" -> f.createTypeParam("int[]") + "ImFloat" -> f.createTypeParam("float[]") + "ImLong" -> f.createTypeParam("long[]") + "ImDouble" -> f.createTypeParam("double[]") + else -> p.type + } + } + + setType>(type) + setSimpleName(p.simpleName) + } + } + } + return result +} + +private fun joinInBodyParams(params: List>, defaults: IntArray): String { + fun param2str(p: CtParameter<*>): String { + return if (p.type.isPtrClass()) { + "reinterpret_cast<${p.type.simpleName}*>(${p.simpleName})" + } else if (p.isPrimitivePtrType()) { + "&${p.simpleName}[0]" + } else { + when (p.type.simpleName) { + "ImBoolean", "ImShort", "ImInt", "ImFloat", "ImLong", "ImDouble" -> { + "(${p.simpleName} != NULL ? &${p.simpleName}[0] : NULL)" + } + + "ImRect" -> { + "ImRect(${p.simpleName}MinX, ${p.simpleName}MinY, ${p.simpleName}MaxX, ${p.simpleName}MaxY)" + } + + "ImPlotPoint" -> { + "ImPlotPoint(${p.simpleName}X, ${p.simpleName}Y)" + } + + "ImPlotRange" -> { + "ImPlotRange(${p.simpleName}Min, ${p.simpleName}Max)" + } + + "ImPlotRect" -> { + "ImPlotRect(${p.simpleName}MinX, ${p.simpleName}MinY, ${p.simpleName}MaxX, ${p.simpleName}MaxY)" + } + + "TextEditorCursorPosition" -> { + "TextEditor::CursorPosition(${p.simpleName}Line, ${p.simpleName}Column)" + } + + else -> p.simpleName + } + } + } + + val visibleParams = mutableListOf() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + visibleParams += p.getAnnotation(A_NAME_OPT_ARG)!!.getValueAsString(A_VALUE_CALL_VALUE) + continue + } + if (p.isType("Void")) { + visibleParams += p.getAnnotation(A_NAME_ARG_VALUE)?.getValueAsString(A_VALUE_CALL_VALUE) ?: p.simpleName + continue + } + var value = param2str(p) + p.getAnnotation(A_NAME_ARG_VALUE)?.let { a -> + a.getValueAsString(A_VALUE_CALL_VALUE).takeIf(String::isNotEmpty)?.let { v -> + value = v + } + a.getValueAsString(A_VALUE_CALL_PREFIX).takeIf(String::isNotEmpty)?.let { v -> + value = v + value + } + a.getValueAsString(A_VALUE_CALL_SUFFIX).takeIf(String::isNotEmpty)?.let { v -> + value += v + } + a.getValueAsString(A_VALUE_STATIC_CAST).takeIf(String::isNotEmpty)?.let { v -> + value = "static_cast<$v>($value)" + } + a.getValueAsString(A_VALUE_REINTERPRET_CAST).takeIf(String::isNotEmpty)?.let { v -> + value = "reinterpret_cast<$v>($value)" + } + } + visibleParams += value + } + return visibleParams.joinToString() +} + +private fun createMethod(mOrig: CtMethod<*>, params: List>, defaults: IntArray): CtMethod<*> { + val f = mOrig.factory + val newM = f.createMethod() + + newM.setParent(mOrig.parent) + + newM.addModifier(ModifierKind.PRIVATE) + newM.addModifier(ModifierKind.NATIVE) + if (mOrig.isStatic) { + newM.addModifier(ModifierKind.STATIC) + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + newM.setType>(f.createTypeParam("void")) + } else if (mOrig.type.isPtrClass()) { // classes returned as a pointer + newM.setType>(f.createTypeParam("long")) + } else { + newM.setType>(mOrig.type) + } + + newM.setSimpleName(mOrig.getJniName()) + + convertParams2jni(f, params, defaults).forEach { + newM.addParameter>(it) + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + newM.addParameterAt>(0, f.createParameter().apply { + setType>(mOrig.type) + setSimpleName("dst") + }) + } + + newM.setBody(f.createCodeSnippet( + buildString { + val jniCpyReturn = DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName) + val isStrReturn = mOrig.isType("String") + + if (jniCpyReturn) { + append("Jni::${mOrig.type.simpleName}Cpy(env, ") + } else { + if (!mOrig.isType("void")) { + append("return ") + if (isStrReturn) { + append("env->NewStringUTF(") + } else if (!mOrig.type.isPrimitive) { + append("($PTR_JNI_CAST)") + } + mOrig.getAnnotation(A_NAME_RETURN_VALUE)?.let { a -> + append(a.getValueAsString(A_VALUE_CALL_PREFIX)) + } + } + } + + val callName = mOrig.getAnnotation(A_NAME_BINDING_METHOD)?.let { a -> + a.getValueAsString(A_VALUE_CALL_NAME)?.takeIf(String::isNotEmpty) + } ?: mOrig.simpleName + + val callPtr = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_PTR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + mOrig.declaringType.simpleName + } else { + PTR_JNI_THIS + } + } + + val callOperator = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_OPERATOR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + "::" + } else { + "->" + } + } + + append("$callPtr$callOperator${callName}(") + append(joinInBodyParams(params, defaults)) + append(')') + + if (!mOrig.isType("void")) { + mOrig.getAnnotation(A_NAME_RETURN_VALUE)?.let { a -> + append(a.getValueAsString(A_VALUE_CALL_SUFFIX)) + } + } + + if (jniCpyReturn) { + append(", dst)") + } else if (isStrReturn) { + append(')') + } + } + )) + + return newM +} + +private fun createMethodVecValueReturn( + vecVal: String, + mOrig: CtMethod<*>, + nameOrig: String, + params: List>, + defaults: IntArray +): CtMethod<*> { + val callPtr = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_PTR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + mOrig.declaringType.simpleName + } else { + PTR_JNI_THIS + } + } + + val callOperator = mOrig.parent.getAnnotation(A_NAME_BINDING_SOURCE)!!.let { a -> + a.getValueAsString(A_VALUE_CALL_OPERATOR)?.takeIf(String::isNotEmpty) ?: if (mOrig.isStatic) { + "::" + } else { + "->" + } + } + + @Suppress("UNCHECKED_CAST") val mNew = mOrig.clone() as CtMethod + mNew.setSimpleName(mOrig.simpleName + vecVal.capitalize()) + mNew.removeParameter(mNew.parameters[0]) // dst param which was added during orig method creation + mNew.type.setSimpleName("float") + mNew.setBody(mOrig.factory.createCodeSnippet( + buildString { + append("return ") + append("$callPtr$callOperator$nameOrig(") + append(joinInBodyParams(params, defaults)) + append(").$vecVal") + } + )) + return mNew +} + +private fun convertManualJni(mOrig: CtMethod<*>, method: CtMethod<*>): CtMethod<*>? { + val mNew = method.clone() + + val getLines = mutableListOf() + val releaseLines = mutableListOf() + + mNew.parameters.forEach { p -> + var isConverted = false + + if (p.isPrimitivePtrType()) { + val typeCast = PRIMITIVE_PTR_TYPECAST_MAP[p.type.simpleName] + getLines += "auto ${p.simpleName} = obj_${p.simpleName} == NULL ? NULL : (${typeCast})env->GetPrimitiveArrayCritical(obj_${p.simpleName}, JNI_FALSE)" + releaseLines += "if (${p.simpleName} != NULL) env->ReleasePrimitiveArrayCritical(obj_${p.simpleName}, ${p.simpleName}, JNI_FALSE)" + isConverted = true + } + + if (p.isType("String")) { + getLines += "auto ${p.simpleName} = obj_${p.simpleName} == NULL ? NULL : (char*)env->GetStringUTFChars(obj_${p.simpleName}, JNI_FALSE)" + releaseLines += "if (${p.simpleName} != NULL) env->ReleaseStringUTFChars(obj_${p.simpleName}, ${p.simpleName})" + isConverted = true + } + + if (p.isType("String[]")) { + val countParam = "${p.simpleName}$PARAM_ARR_LEN_POSTFIX" + getLines += """ + const char* ${p.simpleName}[$countParam]; + for (int i = 0; i < ${p.simpleName}$PARAM_ARR_LEN_POSTFIX; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_${p.simpleName}, i); + auto rawStr = (char*)env->GetStringUTFChars(str, JNI_FALSE); + ${p.simpleName}[i] = rawStr; + } + """.trimIndent() + releaseLines += """ + for (int i = 0; i < $countParam; i++) { + const jstring str = (jstring)env->GetObjectArrayElement(obj_${p.simpleName}, i); + env->ReleaseStringUTFChars(str, ${p.simpleName}[i]); + } + """.trimIndent() + isConverted = true + } + + if (p.isType("ImVec2[]")) { + val lengthVar = "${p.simpleName}Length" + getLines += """ + int $lengthVar = env->GetArrayLength(obj_${p.simpleName}); + ImVec2 ${p.simpleName}[$lengthVar]; + for (int i = 0; i < $lengthVar; i++) { + jobject src = env->GetObjectArrayElement(obj_${p.simpleName}, i); + ImVec2 dst; + Jni::ImVec2Cpy(env, src, &dst); + ${p.simpleName}[i] = dst; + } + """.trimIndent() + isConverted = true + } + + if (p.isType("ImVec4[]")) { + val lengthVar = "${p.simpleName}Length" + getLines += """ + int $lengthVar = env->GetArrayLength(obj_${p.simpleName}); + ImVec4 ${p.simpleName}[$lengthVar]; + for (int i = 0; i < $lengthVar; i++) { + jobject src = env->GetObjectArrayElement(obj_${p.simpleName}, i); + ImVec4 dst; + Jni::ImVec4Cpy(env, src, &dst); + ${p.simpleName}[i] = dst; + } + """.trimIndent() + isConverted = true + } + + fun isAddPrefixType(type: CtTypeReference<*>): Boolean { + return setOf( + "String[]", + "ImVec2[]", + "ImVec4[]", + ).contains(type.simpleName) + } + + if (isConverted && (!mNew.isType("void") || isAddPrefixType(p.type))) { + p.setSimpleName("obj_" + p.simpleName) + } + } + + // Sine we work with an already transformed method, which doesn't contain original information, + // we need to process the original method instead. For example, ImVec args are transformed into floats. + mOrig.parameters.forEach { p -> + // Transformed method may not have the current param. For example, if it's optional. + // So for ImVec arguments we check, if there is a parameter with the same name and "X" attached. + // It's a sort of marker in our case. + if (method.parameters.find { it.simpleName == p.simpleName + "X" } != null) { + if (p.isType("ImVec2")) { + getLines += "ImVec2 ${p.simpleName} = ImVec2(${p.simpleName}X, ${p.simpleName}Y)" + } + if (p.isType("ImVec4")) { + getLines += "ImVec4 ${p.simpleName} = ImVec4(${p.simpleName}X, ${p.simpleName}Y, ${p.simpleName}Z, ${p.simpleName}W)" + } + } + } + + if (getLines.isNotEmpty() || releaseLines.isNotEmpty()) { + val bOrigCode = mNew.body.getLastStatement().prettyprint() + + mNew.body.statements.clear() + + getLines.forEach { + mNew.body.addStatement(mNew.factory.createCodeSnippet(it)) + } + + mNew.body.addStatement(mNew.factory.createCodeSnippet(bOrigCode.replace("return ", "auto _result = "))) + + releaseLines.forEach { + mNew.body.addStatement(mNew.factory.createCodeSnippet(it)) + } + + if (!mNew.isType("void")) { + mNew.body.addStatement(mNew.factory.createCodeSnippet("return _result")) + } + + return mNew + } + + return null +} + +private fun CtMethod<*>.prettyprint(isManual: Boolean): String { + return buildString { + val str = prettyprint().let { + if (isManual) { + it.replaceFirst(" {", "; /*MANUAL") + } else { + it.replaceFirst(" {", "; /*") + } + } + append(str) + lastIndexOf("}").let { idx -> + replace(idx, idx + 1, "*/") + } + } +} + +private fun transformMethodToContent( + mOrig: CtMethod<*>, + params: List> = emptyList(), + defaults: IntArray = intArrayOf() +): List { + fun CtMethod<*>.printJni(): String { + return convertManualJni(mOrig, this)?.prettyprint(true) ?: prettyprint(false) + } + + val methods = mutableListOf() + val mNew = createMethod(mOrig, params, defaults) + + methods += mNew.printJni() + + if (mOrig.isType("ImVec2") || mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("x", mNew, mOrig.simpleName, params, defaults).printJni() + methods += createMethodVecValueReturn("y", mNew, mOrig.simpleName, params, defaults).printJni() + if (mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("z", mNew, mOrig.simpleName, params, defaults).printJni() + methods += createMethodVecValueReturn("w", mNew, mOrig.simpleName, params, defaults).printJni() + } + } + + return methods +} + +fun jniMethodContent(method: CtMethod<*>): List { + val methods = mutableListOf() + + for (paramsSize in (findFirstOptParam(method)..method.parameters.size)) { + val params = method.parameters.subList(0, paramsSize) + methods += transformMethodToContent(method, params) + } + + for (defaults in findDefaultsCombinations(method)) { + methods += transformMethodToContent(method, method.parameters, defaults) + } + + return methods +} + +private fun createFieldGetContent(field: CtField<*>): List { + val f = field.factory + + val getAccessor = f.createMethod() + getAccessor.setParent(field.parent) + getAccessor.setSimpleName("get${field.simpleName}") + getAccessor.setType>(field.type) + getAccessor.addModifier(ModifierKind.PRIVATE) + getAccessor.setAnnotations(field.annotations) + + val result = mutableListOf() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE) + val arraySize = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_SIZE) + + val getArray = getAccessor.clone() + getArray.addModifier(ModifierKind.NATIVE) + getArray.setSimpleName("nGet${field.simpleName}") + getArray.setType>(f.createTypeParam("$arrayType[]")) + + when (arrayType) { + "boolean", "byte", "short", "int", "float", "double", "long" -> { + getArray.setBody( + f.createCodeSnippet( + """ + j$arrayType jBuf[$arraySize]; + for (int i = 0; i < $arraySize; i++) + jBuf[i] = $PTR_JNI_THIS->${field.getCallName()}[i]; + j${arrayType}Array result = env->New${arrayType.capitalize()}Array($arraySize); + env->Set${arrayType.capitalize()}ArrayRegion(result, 0, $arraySize, jBuf); + return result + """.trimIndent() + ) + ) + } + + else -> { + getArray.setBody( + f.createCodeSnippet( + """ + return Jni::New${arrayType}Array(env, $PTR_JNI_THIS->${field.getCallName()}, $arraySize) + """.trimIndent() + ) + ) + } + } + + result += getArray.prettyprint(false) + + when (arrayType) { + "boolean", "byte", "short", "int", "float", "double", "long" -> { + val getArrayIdx = getArray.clone() + getArrayIdx.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("idx") + }) + getArrayIdx.setType>(f.createTypeParam(arrayType)) + getArrayIdx.setBody(f.createCodeSnippet("return $PTR_JNI_THIS->${field.getCallName()}[idx]")) + + result += getArrayIdx.prettyprint(false) + } + } + } else { + getAccessor.addAnnotation(f.createAnnotation(f.createTypeReference().apply { + setSimpleName("imgui.binding.annotation.BindingMethod") + }).apply { + addValue>(A_VALUE_CALL_NAME, field.getCallName()) + }) + + result += transformMethodToContent(getAccessor).map { + it.replace("$PTR_JNI_THIS->${getAccessor.simpleName}()", "$PTR_JNI_THIS->${field.getCallName()}") + } + } + + return result +} + +private fun createFieldSetContent(field: CtField<*>): List { + val f = field.factory + + val setAccessor = f.createMethod() + setAccessor.setType>(f.createTypeParam("void")) + setAccessor.setParent(field.parent) + setAccessor.setSimpleName("set${field.simpleName}") + setAccessor.addModifier(ModifierKind.PRIVATE) + setAccessor.setAnnotations(field.annotations) + + val valueParam = f.createParameter().apply { + setType>(field.type) + setSimpleName("value") + } + + // Add this param to the method placeholder, since some transformations can check it. + setAccessor.addParameter>(valueParam) + + val result = mutableListOf() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE) + val arraySize = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_SIZE) + + val setArray = setAccessor.clone() + setArray.addModifier(ModifierKind.NATIVE) + setArray.setSimpleName("nSet${field.simpleName}") + + when (arrayType) { + "boolean", "byte", "short", "int", "float", "double", "long" -> { + setArray.setBody( + f.createCodeSnippet( + """ + for (int i = 0; i < $arraySize; i++) + $PTR_JNI_THIS->${field.getCallName()}[i] = value[i] + """.trimIndent() + ) + ) + } + + else -> { + setArray.setBody( + f.createCodeSnippet(""" + Jni::${arrayType}ArrayCpy(env, value, $PTR_JNI_THIS->${field.getCallName()}, $arraySize) + """.trimIndent() + ) + ) + } + } + + result += setArray.prettyprint(false) + + when (arrayType) { + "boolean", "byte", "short", "int", "float", "double", "long" -> { + val setArrayIdx = setArray.clone() + setArrayIdx.parameters.clear() + setArrayIdx.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("idx") + }) + setArrayIdx.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam(arrayType)) + setSimpleName("value") + }) + setArrayIdx.setBody(f.createCodeSnippet("$PTR_JNI_THIS->${field.getCallName()}[idx] = value")) + + result += setArrayIdx.prettyprint(false) + } + } + } else { + result += transformMethodToContent(setAccessor, listOf(valueParam)).map { + var valueReplaceTarget = "$1" + field.getAnnotation(A_NAME_BINDING_FIELD)?.let { a -> + val staticCast = a.getValueAsString(A_VALUE_STATIC_CAST) + if (staticCast != null && staticCast.isNotEmpty()) { + valueReplaceTarget = "static_cast<$staticCast>($valueReplaceTarget)" + } + } + + val fieldName = "$PTR_JNI_THIS->${field.getCallName()}" + val replaceTarget = "$PTR_JNI_THIS->${setAccessor.simpleName}\\((.+)\\)" + var replaceContent = "$fieldName = $valueReplaceTarget" + + // When we set a string to a field we need to manually copy the string itself. + if (field.isType("String") && !field.hasAnnotation(A_NAME_TYPE_STD_STRING)) { + replaceContent = "SET_STRING_FIELD($fieldName, $valueReplaceTarget)" + } + + it.replace(replaceTarget.toRegex(), replaceContent) + } + } + + return result +} + +fun jniFieldContent(field: CtField<*>): List { + val fields = mutableListOf() + val a = field.getAnnotation(A_NAME_BINDING_FIELD) + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + fields += createFieldGetContent(field) + } + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + fields += createFieldSetContent(field) + } + return fields +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt b/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt new file mode 100644 index 00000000..05f6d747 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/jvm_content.kt @@ -0,0 +1,721 @@ +package tool.generator.api + +import spoon.reflect.code.CtBodyHolder +import spoon.reflect.code.CtJavaDoc +import spoon.reflect.code.CtJavaDocTag +import spoon.reflect.reference.CtReference +import spoon.reflect.declaration.CtCodeSnippet +import spoon.reflect.declaration.CtElement +import spoon.reflect.declaration.CtExecutable +import spoon.reflect.declaration.CtField +import spoon.reflect.declaration.CtMethod +import spoon.reflect.declaration.CtModifiable +import spoon.reflect.declaration.CtNamedElement +import spoon.reflect.declaration.CtParameter +import spoon.reflect.declaration.CtTypedElement +import spoon.reflect.declaration.ModifierKind +import kotlin.math.absoluteValue + +private fun createStaticStructFieldName(method: CtMethod<*>): String { + return "_${method.simpleName.uppercase()}_${method.parameters.hashCode().absoluteValue}" +} + +private fun createStaticStructField(typeName: String, fieldName: String): String { + return "private static final $typeName $fieldName = new $typeName(0);" +} + +private fun joinInBodyParams(params: List>, defaults: IntArray): String { + fun param2str(p: CtParameter<*>): String { + return if (p.type.isPtrClass()) { + "${p.simpleName}.$PTR_JVM_FIELD" + } else { + when (p.type.simpleName) { + "ImBoolean", "ImShort", "ImInt", "ImFloat", "ImLong", "ImDouble" -> { + "${p.simpleName} != null ? ${p.simpleName}.getData() : null" + } + + "ImVec2" -> "${p.simpleName}.x, ${p.simpleName}.y" + "ImVec4" -> "${p.simpleName}.x, ${p.simpleName}.y, ${p.simpleName}.z, ${p.simpleName}.w" + "ImRect" -> "${p.simpleName}.min.x, ${p.simpleName}.min.y, ${p.simpleName}.max.x, ${p.simpleName}.max.y" + + "ImPlotPoint" -> "${p.simpleName}.x, ${p.simpleName}.y" + "ImPlotRange" -> "${p.simpleName}.min, ${p.simpleName}.max" + "ImPlotRect" -> "${p.simpleName}.x.min, ${p.simpleName}.y.min, ${p.simpleName}.x.max, ${p.simpleName}.y.max" + + "TextEditorCursorPosition" -> "${p.simpleName}.line, ${p.simpleName}.column" + + "String[]" -> "${p.simpleName}, ${p.simpleName}.length" + + "boolean[]", "byte[]", "short[]", "int[]", "float[]", "long[]", "double[]" -> p.simpleName + + else -> p.simpleName + } + } + } + + val visibleParams = mutableListOf() + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + visibleParams += param2str(p) + } + return visibleParams.joinToString() +} + +private fun createBodyStaticStructReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + val fieldName = createStaticStructFieldName(method) + return buildString { + append("${fieldName}.$PTR_JVM_FIELD = ${method.getJniName()}(") + append(joinInBodyParams(params, defaults)) + appendLine(");") + append("return $fieldName") + } +} + +private fun createBodyStructReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + return buildString { + append("return new ${method.type.simpleName}(${method.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append("))") + } +} + +private fun createBodyDstReturn( + method: CtMethod<*>, + params: List>, + defaults: IntArray +): String { + val type = method.type.simpleName + return buildString { + appendLine("final $type dst = new ${type}();") + append("${method.getJniName()}(dst") + joinInBodyParams(params, defaults).let { + if (it.isNotEmpty()) { + append(", $it") + } + } + appendLine(");") + append("return dst") + } +} + +private fun createMethod(origM: CtMethod<*>, params: List>, defaults: IntArray): CtMethod<*> { + val f = origM.factory + val newM = f.createMethod() + + if (origM.isPublic) { + newM.addModifier(ModifierKind.PUBLIC) + } + if (origM.isStatic) { + newM.addModifier(ModifierKind.STATIC) + } + + if (origM.docComment.isNotBlank()) { + newM.setDocComment(origM.docComment) + } + + newM.setAnnotations(origM.annotations) + newM.setType>(origM.type) + newM.setSimpleName(origM.getName()) + + for ((index, p) in params.withIndex()) { + if (defaults.isNotEmpty() && !defaults.contains(index)) { + continue + } + if (p.isType("Void")) { + continue + } + newM.addParameter>(f.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType>(p.type) + setSimpleName(p.simpleName) + }) + } + + sanitizeDocComment(newM) + sanitizeAnnotations(newM) + + newM.setBody(f.createCodeSnippet( + buildString { + if (origM.isStaticStructReturnValue()) { + append(createBodyStaticStructReturn(origM, params, defaults)) + } else if (DST_RETURN_TYPE_SET.contains(origM.type.simpleName)) { + append(createBodyDstReturn(origM, params, defaults)) + } else if (origM.type.isPtrClass()) { + append(createBodyStructReturn(origM, params, defaults)) + } else { + if (!origM.isType("void")) { + append("return ") + } + append("${origM.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append(")") + } + } + )) + + return newM +} + +private fun methodVecUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val vecParamNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if ((p.isType("ImVec2") || p.isType("ImVec4")) && idx >= fromIndex) { + vecParamNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType>(p.factory.createTypeParam("float")) + paramX.setSimpleName("${p.simpleName}X") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Y") + + newParams += paramX + newParams += paramY + + if (p.isType("ImVec4")) { + val paramZ = paramX.clone() + paramZ.setSimpleName("${p.simpleName}Z") + val paramW = paramX.clone() + paramW.setSimpleName("${p.simpleName}W") + + newParams += paramZ + newParams += paramW + } + + getJDoc(newMethod)?.let { jDoc -> + val tagIdx = jDoc.tags.indexOfFirst { it.param == p.simpleName } + if (tagIdx != -1) { + jDoc.removeTag(tagIdx) + } + } + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in vecParamNames) { + str = str.replace("${paramName}.x, ${paramName}.y", "${paramName}X, ${paramName}Y") + str = str.replace("${paramName}.z, ${paramName}.w", "${paramName}Z, ${paramName}W") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodRectUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if (p.isType("ImRect") && idx >= fromIndex) { + paramNames += p.simpleName + + val paramMinX = p.factory.createParameter() + paramMinX.addModifier(ModifierKind.FINAL) + paramMinX.setType>(p.factory.createTypeParam("float")) + paramMinX.setSimpleName("${p.simpleName}MinX") + + val paramMinY = paramMinX.clone() + paramMinY.setSimpleName("${p.simpleName}MinY") + + newParams += paramMinX + newParams += paramMinY + + val paramMaxX = paramMinX.clone() + paramMaxX.setSimpleName("${p.simpleName}MaxX") + val paramMaxY = paramMinX.clone() + paramMaxY.setSimpleName("${p.simpleName}MaxY") + + newParams += paramMaxX + newParams += paramMaxY + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace( + "${paramName}.min.x, ${paramName}.min.y, ${paramName}.max.x, ${paramName}.max.y", + "${paramName}MinX, ${paramName}MinY, ${paramName}MaxX, ${paramName}MaxY" + ) + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotPointUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if (p.isType("ImPlotPoint") && idx >= fromIndex) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType>(p.factory.createTypeParam("double")) + paramX.setSimpleName("${p.simpleName}X") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Y") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.x, ${paramName}.y", "${paramName}X, ${paramName}Y") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotRangeUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if (p.isType("ImPlotRange") && idx >= fromIndex) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType>(p.factory.createTypeParam("double")) + paramX.setSimpleName("${p.simpleName}Min") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Max") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.min, ${paramName}.max", "${paramName}Min, ${paramName}Max") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodPlotLimitsUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if (p.isType("ImPlotRect") && idx >= fromIndex) { + paramNames += p.simpleName + + val paramMinX = p.factory.createParameter() + paramMinX.addModifier(ModifierKind.FINAL) + paramMinX.setType>(p.factory.createTypeParam("double")) + paramMinX.setSimpleName("${p.simpleName}MinX") + + val paramMinY = paramMinX.clone() + paramMinY.setSimpleName("${p.simpleName}MinY") + + newParams += paramMinX + newParams += paramMinY + + val paramMaxX = paramMinX.clone() + paramMaxX.setSimpleName("${p.simpleName}MaxX") + val paramMaxY = paramMinX.clone() + paramMaxY.setSimpleName("${p.simpleName}MaxY") + + newParams += paramMaxX + newParams += paramMaxY + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace( + "${paramName}.x.min, ${paramName}.y.min, ${paramName}.x.max, ${paramName}.y.max", + "${paramName}MinX, ${paramName}MinY, ${paramName}MaxX, ${paramName}MaxY" + ) + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun methodCoordinatesUnwrappedContent(method: CtMethod<*>, fromIndex: Int): String { + @Suppress("UNCHECKED_CAST") val newMethod = method.clone() as CtMethod + val newParams = mutableListOf>() + val paramNames = mutableSetOf() + + for ((idx, p) in newMethod.parameters.withIndex()) { + if (p.isType("TextEditorCursorPosition") && idx >= fromIndex) { + paramNames += p.simpleName + + val paramX = p.factory.createParameter() + paramX.addModifier(ModifierKind.FINAL) + paramX.setType>(p.factory.createTypeParam("int")) + paramX.setSimpleName("${p.simpleName}Line") + + val paramY = paramX.clone() + paramY.setSimpleName("${p.simpleName}Column") + + newParams += paramX + newParams += paramY + } else { + newParams += p + } + } + + newMethod.setParameters>(newParams) + + val mContentOrig = method.prettyprint() + val mContent = newMethod.prettyprint().let { + var str = it + for (paramName in paramNames) { + str = str.replace("${paramName}.mLine, ${paramName}.mColumn", "${paramName}Line, ${paramName}Column") + } + str + } + + if (mContent != mContentOrig) { + return mContent + } + + return "" +} + +private fun createMethodDstReturn( + mOrig: CtMethod<*>, + params: List>, + defaults: IntArray +): CtMethod<*> { + @Suppress("UNCHECKED_CAST") val mNew = mOrig.clone() as CtMethod + mNew.setType>(mNew.factory.createTypeParam("void")) + mNew.addParameterAt>(0, mOrig.factory.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType>(factory.createTypeParam(mOrig.type.simpleName)) + setSimpleName("dst") + }) + mNew.setBody(mOrig.factory.createCodeSnippet( + buildString { + append("${mOrig.getJniName()}(dst") + joinInBodyParams(params, defaults).let { + if (it.isNotEmpty()) { + append(", $it") + } + } + append(")") + } + )) + return mNew +} + +private fun createMethodVecValueReturn( + vecVal: String, + mOrig: CtMethod<*>, + params: List>, + defaults: IntArray +): CtMethod<*> { + @Suppress("UNCHECKED_CAST") val mNew = mOrig.clone() as CtMethod + mNew.setSimpleName(mOrig.getName() + vecVal.capitalize()) + mNew.type.setSimpleName("float") + mNew.setBody(mOrig.factory.createCodeSnippetStatement().apply { + setValue(buildString { + append("return ") + append("${mNew.getJniName()}(") + append(joinInBodyParams(params, defaults)) + append(")") + }) + }) + return mNew +} + +private fun transformMethodToContent( + mOrig: CtMethod<*>, + params: List> = emptyList(), + defaults: IntArray = intArrayOf() +): List { + fun methodUnwrapped(method: CtMethod<*>, fromIndex: Int = 0): Set { + val result = mutableSetOf() + if (params.find { it.isType("ImVec2") || it.isType("ImVec4") } != null) { + methodVecUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + if (params.find { it.isType("ImRect") } != null) { + methodRectUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + if (params.find { it.isType("ImPlotPoint") } != null) { + methodPlotPointUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + if (params.find { it.isType("ImPlotRange") } != null) { + methodPlotRangeUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + if (params.find { it.isType("ImPlotRect") } != null) { + methodPlotLimitsUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + if (params.find { it.isType("TextEditorCursorPosition") } != null) { + methodCoordinatesUnwrappedContent(method, fromIndex).takeIf(String::isNotEmpty)?.run(result::add) + } + return result + } + + val methods = mutableListOf() + val mNew = createMethod(mOrig, params, defaults) + + methods += mNew.prettyprint() + methods += methodUnwrapped(mNew) + + if (mOrig.isType("ImVec2") || mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("x", mNew, params, defaults).prettyprint() + methods += createMethodVecValueReturn("y", mNew, params, defaults).prettyprint() + if (mOrig.isType("ImVec4")) { + methods += createMethodVecValueReturn("z", mNew, params, defaults).prettyprint() + methods += createMethodVecValueReturn("w", mNew, params, defaults).prettyprint() + } + } + + if (DST_RETURN_TYPE_SET.contains(mOrig.type.simpleName)) { + val dstMethod = createMethodDstReturn(mNew, params, defaults) + methods += dstMethod.prettyprint() + methods += methodUnwrapped(dstMethod, 1) + } + + return methods +} + +fun jvmMethodContent(method: CtMethod<*>): List { + val addContent = mutableListOf() + + if (method.isStaticStructReturnValue()) { + val staticStructFieldName = createStaticStructFieldName(method) + addContent += createStaticStructField(method.type.simpleName, staticStructFieldName) + } + + val methods = mutableListOf() + + for (paramsSize in (findFirstOptParam(method)..method.parameters.size)) { + val params = method.parameters.subList(0, paramsSize) + methods += transformMethodToContent(method, params) + } + + for (defaults in findDefaultsCombinations(method)) { + methods += transformMethodToContent(method, method.parameters, defaults) + } + + return addContent + methods +} + +private fun CtMethod<*>.isStaticStructReturnValue(): Boolean { + return !isType("void") && getAnnotation(A_NAME_RETURN_VALUE)?.getValueAsObject(A_VALUE_IS_STATIC) == true +} + +private fun createFieldGetContent(field: CtField<*>): List { + val f = field.factory + + val getAccessor = f.createMethod() + getAccessor.setParent(field.parent) + getAccessor.setSimpleName("get${field.simpleName}") + getAccessor.setType>(field.type) + getAccessor.addModifier(ModifierKind.PUBLIC) + getAccessor.setDocComment(field.docComment) + getAccessor.setAnnotations(field.annotations) + + val result = jvmMethodContent(getAccessor).toMutableList() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + when (val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE)) { + "boolean", "short", "int", "float", "double", "long" -> { + val newM = getAccessor.clone() + newM.setType>(f.createTypeParam(arrayType)) + newM.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("idx") + }) + result += jvmMethodContent(newM) + } + } + } + + return result +} + +private fun createFieldSetContent(field: CtField<*>): List { + val f = field.factory + + val setAccessor = f.createMethod() + setAccessor.setType>(f.createTypeParam("void")) + setAccessor.setParent(field.parent) + setAccessor.setSimpleName("set${field.simpleName}") + setAccessor.addModifier(ModifierKind.PUBLIC) + setAccessor.setDocComment(field.docComment) + setAccessor.setAnnotations(field.annotations) + + val valueParam = f.createParameter().apply { + setType>(field.type) + setSimpleName("value") + } + + val result = transformMethodToContent(setAccessor, listOf(valueParam)).toMutableList() + + if (field.hasAnnotation(A_NAME_TYPE_ARRAY)) { + when (val arrayType = field.getAnnotation(A_NAME_TYPE_ARRAY)!!.getValueAsString(A_VALUE_TYPE)) { + "boolean", "short", "int", "float", "double", "long" -> { + val newM = setAccessor.clone() + newM.parameters.clear() + newM.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam("int")) + setSimpleName("idx") + }) + newM.addParameter>(f.createParameter().apply { + setType>(f.createTypeParam(arrayType)) + setSimpleName("value") + }) + result += transformMethodToContent(newM, newM.parameters) + } + } + } + + return result +} + +private fun createFieldFlagUtils(field: CtField<*>): List { + val mAdd = field.factory.createMethod() + mAdd.setSimpleName("add${field.simpleName}") + mAdd.setType>(field.factory.createTypeParam("void")) + mAdd.addModifier(ModifierKind.PUBLIC) + mAdd.setDocComment(field.docComment) + mAdd.addParameter>(field.factory.createParameter().apply { + addModifier(ModifierKind.FINAL) + setType>(field.factory.createTypeParam("int")) + setSimpleName("flags") + }) + mAdd.setBody(field.factory.createCodeSnippet("set${field.simpleName}(get${field.simpleName}() | flags)")) + + val mRemove = mAdd.clone() + mRemove.setSimpleName("remove${field.simpleName}") + mRemove.setBody(field.factory.createCodeSnippet("set${field.simpleName}(get${field.simpleName}() & ~(flags))")) + + val mHas = mAdd.clone() + mHas.setSimpleName("has${field.simpleName}") + mHas.setType>(field.factory.createTypeParam("boolean")) + mHas.setBody(field.factory.createCodeSnippet("return (get${field.simpleName}() & flags) != 0")) + + val utilMethods = mutableListOf() + val bindingFieldAnnotation = field.getAnnotation(A_NAME_BINDING_FIELD) + + if (bindingFieldAnnotation?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + utilMethods += mAdd.prettyprint() + utilMethods += mRemove.prettyprint() + } + + if (bindingFieldAnnotation?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + utilMethods += mHas.prettyprint() + } + + return utilMethods +} + +fun jvmFieldContent(field: CtField<*>): List { + val fields = mutableListOf() + val a = field.getAnnotation(A_NAME_BINDING_FIELD) + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_GETTER) == true) { + fields += createFieldGetContent(field) + } + if (a?.containsValue(A_VALUE_ACCESSORS, A_TYPE_VALUE_ACCESSOR_SETTER) == true) { + fields += createFieldSetContent(field) + } + if (field.getAnnotation(A_NAME_BINDING_FIELD)?.getValueAsObject(A_VALUE_IS_FLAG) == true) { + fields += createFieldFlagUtils(field) + } + return fields +} + +private fun getJDoc(method: CtMethod<*>): CtJavaDoc? { + return method.comments.filterIsInstance().firstOrNull() +} + +private fun sanitizeDocComment(method: CtMethod<*>) { + val jDoc = getJDoc(method) ?: return + val paramNames = method.parameters.map { it.simpleName } + jDoc.setTags(jDoc.tags.filter { it.type != CtJavaDocTag.TagType.PARAM || paramNames.contains(it.param) }) +} + +private fun sanitizeAnnotations(method: CtMethod<*>) { + method.setAnnotations(method.annotations.filter { !CLEANUP_ANNOTATIONS_LIST.contains(it.name) }) +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt b/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt new file mode 100644 index 00000000..1fced06c --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/task/GenerateApi.kt @@ -0,0 +1,48 @@ +package tool.generator.api.task + +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction +import spoon.Launcher +import spoon.support.compiler.FileSystemFolder +import tool.generator.api.BindingSourceProcessor +import tool.generator.api.ExcludedSourceProcessor + +open class GenerateApi : DefaultTask() { + @Internal + override fun getGroup() = "build" + + @Internal + override fun getDescription() = "Generate API for native binaries." + + private val genSrcDir = project.file("src/main/java") + private val genDstDir = project.file("src/generated/java") + + @TaskAction + fun run() { + logger.info("Generating API...") + + logger.info("Removing old generated files in $genDstDir...") + project.file(genDstDir).deleteRecursively() + + logger.info("Copying raw sources...") + logger.info("| from: $genSrcDir") + logger.info("| into: $genDstDir") + project.copy { + from(genSrcDir) + into(genDstDir) + } + + logger.info("Processing generated sources...") + + val launcher = Launcher() + launcher.addInputResource(FileSystemFolder(genDstDir)) + val model = launcher.buildModel() + model.allTypes.filter(BindingSourceProcessor::isProcessable).forEach { + BindingSourceProcessor(it).process() + } + model.allTypes.filter(ExcludedSourceProcessor::isProcessable).forEach { + ExcludedSourceProcessor(it).process() + } + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/api/util.kt b/buildSrc/src/main/kotlin/tool/generator/api/util.kt new file mode 100644 index 00000000..3d6a983b --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/api/util.kt @@ -0,0 +1,201 @@ +package tool.generator.api + +import spoon.reflect.code.CtCodeSnippetStatement +import spoon.reflect.code.CtExpression +import spoon.reflect.code.CtFieldRead +import spoon.reflect.code.CtNewArray +import spoon.reflect.declaration.* +import spoon.reflect.factory.Factory +import spoon.reflect.reference.CtReference +import spoon.reflect.reference.CtTypeParameterReference +import tool.generator.ast.Decl +import tool.generator.ast.DeclContainer +import java.util.* + +const val A_NAME_BINDING_SOURCE = "BindingSource" +const val A_NAME_BINDING_METHOD = "BindingMethod" +const val A_NAME_BINDING_FIELD = "BindingField" +const val A_NAME_BINDING_AST_ENUM = "BindingAstEnum" +const val A_NAME_OPT_ARG = "OptArg" +const val A_NAME_EXCLUDED_SOURCE = "ExcludedSource" +const val A_NAME_RETURN_VALUE = "ReturnValue" +const val A_NAME_ARG_VALUE = "ArgValue" +const val A_NAME_ARG_VARIANT = "ArgVariant" +const val A_NAME_TYPE_ARRAY = "TypeArray" +const val A_NAME_TYPE_STD_STRING = "TypeStdString" + +const val A_VALUE_CALL_PTR = "callPtr" +const val A_VALUE_CALL_OPERATOR = "callOperator" +const val A_VALUE_CALL_PREFIX = "callPrefix" +const val A_VALUE_CALL_SUFFIX = "callSuffix" +const val A_VALUE_STATIC_CAST = "staticCast" +const val A_VALUE_REINTERPRET_CAST = "reinterpretCast" +const val A_VALUE_IS_STATIC = "isStatic" +const val A_VALUE_CALL_VALUE = "callValue" +const val A_VALUE_NAME = "name" +const val A_VALUE_CALL_NAME = "callName" +const val A_VALUE_ACCESSORS = "accessors" +const val A_VALUE_IS_FLAG = "isFlag" +const val A_VALUE_TYPE = "type" +const val A_VALUE_SIZE = "size" +const val A_VALUE_FILE = "file" +const val A_VALUE_QUAL_TYPE = "qualType" +const val A_VALUE_SANITIZE_NAME = "sanitizeName" + +const val A_TYPE_VALUE_ACCESSOR_SETTER = "SETTER" +const val A_TYPE_VALUE_ACCESSOR_GETTER = "GETTER" + +const val PTR_JVM_FIELD = "ptr" +const val PTR_JNI_CAST = "uintptr_t" +const val PTR_JNI_THIS = "THIS" + +const val PARAM_ARR_LEN_POSTFIX = "Count" + +val CLEANUP_ANNOTATIONS_LIST = listOf( + A_NAME_BINDING_SOURCE, + A_NAME_BINDING_METHOD, + A_NAME_BINDING_FIELD, + A_NAME_RETURN_VALUE, + A_NAME_OPT_ARG, + A_NAME_ARG_VALUE, + A_NAME_ARG_VARIANT, + A_NAME_TYPE_ARRAY, + A_NAME_TYPE_STD_STRING, + A_NAME_BINDING_AST_ENUM, +) + +val PRIMITIVE_PTR_TYPECAST_MAP = mapOf( + "boolean[]" to "bool*", + "byte[]" to "char*", + "short[]" to "short*", + "int[]" to "int*", + "float[]" to "float*", + "long[]" to "long*", + "double[]" to "double*", +) + +val DST_RETURN_TYPE_SET = setOf( + "ImVec2", + "ImVec4", + "ImRect", + "ImPlotPoint", + "ImPlotRange", + "ImPlotRect", + "TextEditorCursorPosition", + "TextEditorCursorSelection", +) + +fun CtElement.hasAnnotation(annotationName: String): Boolean { + return getAnnotation(annotationName) != null +} + +fun CtElement.getAnnotation(annotationName: String): CtAnnotation<*>? { + return annotations.find { a -> a?.name == annotationName } +} + +fun CtAnnotation<*>.containsValue(annotationField: String, value: String): Boolean { + val v = getValue>(annotationField) + if (v is CtFieldRead) { + return v.prettyprint().contains(value) + } + if (v is CtNewArray) { + return v.elements.find { it.prettyprint().contains(value) } != null + } + return false +} + +fun Factory.createTypeParam(name: String): CtTypeParameterReference = createTypeParameterReference().apply { + setSimpleName(name) +} + +fun Factory.createCodeSnippet(code: String): CtCodeSnippetStatement = createCodeSnippetStatement().apply { + setValue(code) +} + +fun CtTypedElement<*>.isType(type: String): Boolean = this.type.simpleName == type + +fun CtTypedElement<*>.isPrimitivePtrType(): Boolean { + return PRIMITIVE_PTR_TYPECAST_MAP.containsKey(type.simpleName) +} + +fun CtTypeInformation.isPtrClass(): Boolean { + return getDeclaredOrInheritedField(PTR_JVM_FIELD) != null +} + +fun CtMethod<*>.getJniName(): String = "n${simpleName.capitalize()}" + +fun CtMethod<*>.getName(): String { + return getAnnotation(A_NAME_BINDING_METHOD)?.getValueAsString(A_VALUE_NAME)?.takeIf(String::isNotEmpty) + ?: simpleName.decapitalize() +} + +fun CtField<*>.getCallName(): String { + return getAnnotation(A_NAME_BINDING_FIELD)?.getValueAsString(A_VALUE_CALL_NAME)?.takeIf(String::isNotEmpty) + ?: simpleName +} + +fun findDefaultsCombinations(method: CtMethod<*>): List { + fun findDefaults(params: List>): Map { + val defaults = mutableMapOf() + for ((index, p) in params.withIndex()) { + p.getAnnotation(A_NAME_OPT_ARG)?.let { a -> + val value = a.getValueAsString(A_VALUE_CALL_VALUE) + if (value.isNotEmpty()) { + defaults[index] = value + } + } + } + return defaults + } + + fun concatNextParam0(combinations: MutableList, idx0: Int, idxN: Int) { + val p1 = method.parameters[idx0] + val p2 = method.parameters[idxN] + if (p1.type.simpleName != p2.type.simpleName) { + combinations.add(((0 until idx0) + (idxN until method.parameters.size)).toIntArray()) + if (p2.getAnnotation(A_NAME_OPT_ARG)?.getValueAsString(A_VALUE_CALL_VALUE)?.isNotEmpty() == true) { + concatNextParam0(combinations, idx0, idxN + 1) + } + } + } + + val combinations = mutableListOf() + findDefaults(method.parameters).forEach { (idx, _) -> concatNextParam0(combinations, idx, idx + 1) } + return combinations +} + +fun findFirstOptParam(method: CtMethod<*>): Int { + if (method.parameters.isEmpty()) { + return method.parameters.size + } + for ((index, p) in method.parameters.withIndex()) { + if (p.hasAnnotation(A_NAME_OPT_ARG)) { + return index + } + } + return method.parameters.size +} + +fun Collection.filterDecls0(filter: (Decl) -> Boolean): Collection { + val result = mutableListOf() + fun filter0(decls: Collection) { + decls.forEach { decl -> + if (filter(decl)) { + result += decl + } + if (decl is DeclContainer) { + filter0(decl.decls) + } + } + } + filter0(this) + return result +} + +fun String.capitalize(): String { + return replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() } +} + +fun String.decapitalize(): String { + return replaceFirstChar { it.lowercase(Locale.getDefault()) } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt b/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt new file mode 100644 index 00000000..77de004e --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/AstParser.kt @@ -0,0 +1,22 @@ +package tool.generator.ast + +import com.fasterxml.jackson.databind.ObjectMapper +import java.io.InputStream + +object AstParser { + const val RESOURCE_PATH: String = "generator/api/ast" + + private val astCache = mutableMapOf() + + fun readFromResource(astResourcePath: String): AstRoot { + return astCache.computeIfAbsent(astResourcePath) { + val astResourceContent = getAtResourceStream(astResourcePath).use { s -> s.reader().use { r -> r.readText() } } + val objectMapper = ObjectMapper() + objectMapper.readValue(astResourceContent, AstRoot::class.java) + } + } + + private fun getAtResourceStream(astResourcePath: String): InputStream { + return AstRoot::class.java.classLoader.getResourceAsStream("$RESOURCE_PATH/$astResourcePath")!! + } +} diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt b/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt new file mode 100644 index 00000000..d32cde78 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/decl.kt @@ -0,0 +1,132 @@ +package tool.generator.ast + +import com.fasterxml.jackson.annotation.JsonIgnore +import com.fasterxml.jackson.annotation.JsonIgnoreProperties +import com.fasterxml.jackson.annotation.JsonSubTypes +import com.fasterxml.jackson.annotation.JsonTypeInfo + +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY) +@JsonSubTypes( + JsonSubTypes.Type(AstNamespaceDecl::class), + JsonSubTypes.Type(AstFullComment::class), + JsonSubTypes.Type(AstParagraphComment::class), + JsonSubTypes.Type(AstTextComment::class), + JsonSubTypes.Type(AstFunctionDecl::class), + JsonSubTypes.Type(AstParmVarDecl::class), + JsonSubTypes.Type(AstEnumDecl::class), + JsonSubTypes.Type(AstEnumConstantDecl::class), + JsonSubTypes.Type(AstRecordDecl::class), + JsonSubTypes.Type(AstFieldDecl::class), +) +@JsonIgnoreProperties(value = ["offset"]) +interface Decl { + // Offset property is necessary only for maintaining the correct relative order during parsing. + // We should avoid storing it in a JSON file as it significantly increases the file differences, + // making version control more challenging. + val offset: Int +} + +interface DeclContainer { + val decls: List +} + +data class AstRoot( + val info: AstInfo = AstInfo(), + override val decls: List = emptyList() +) : DeclContainer + +data class AstInfo( + val source: String = "", + val hash: String = "", + val url: String = "", + val revision: String = "", +) + +data class AstNamespaceDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstFullComment( + override val offset: Int = -1, + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstParagraphComment( + override val offset: Int = -1, + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstTextComment( + override val offset: Int = -1, + val text: String = "", +) : Decl + +data class AstFunctionDecl( + override val offset: Int = -1, + val name: String = "", + val resultType: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer { + @JsonIgnore + fun getParams(): List { + return decls.filterIsInstance() + } +} + +data class AstParmVarDecl( + override val offset: Int = -1, + val name: String = "", + val qualType: String = "", + val desugaredQualType: String = "", + val defaultValue: String? = null, +) : Decl { + companion object { + const val FORMAT_ATTR_NAME = "#FORMAT_ATTR_MARKER#" + + fun asFormatAttr(offset: Int): AstParmVarDecl { + return AstParmVarDecl( + offset = offset, + name = FORMAT_ATTR_NAME, + qualType = FORMAT_ATTR_NAME, + desugaredQualType = FORMAT_ATTR_NAME, + defaultValue = null + ) + } + } + + @JsonIgnore + fun isFormatAttr(): Boolean { + return this.name == FORMAT_ATTR_NAME + } +} + +data class AstEnumDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstEnumConstantDecl( + override val offset: Int = -1, + val name: String = "", + val docComment: String? = null, + val qualType: String = "", + val order: Int = -1, + val value: String? = null, + val evaluatedValue: Int? = null, +) : Decl + +data class AstRecordDecl( + override val offset: Int = -1, + val name: String = "", + override val decls: List = emptyList(), +) : Decl, DeclContainer + +data class AstFieldDecl( + override val offset: Int = -1, + val name: String = "", + val qualType: String = "", + val desugaredQualType: String = "", +) : Decl diff --git a/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt b/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt new file mode 100644 index 00000000..e1f98ed1 --- /dev/null +++ b/buildSrc/src/main/kotlin/tool/generator/ast/task/GenerateAst.kt @@ -0,0 +1,465 @@ +package tool.generator.ast.task + +import com.fasterxml.jackson.annotation.JsonInclude +import com.fasterxml.jackson.databind.JsonNode +import com.fasterxml.jackson.databind.ObjectMapper +import com.fasterxml.jackson.databind.SerializationFeature +import com.lordcodes.turtle.shellRun +import org.gradle.api.DefaultTask +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.InputFiles +import org.gradle.api.tasks.Internal +import org.gradle.api.tasks.TaskAction +import tool.generator.ast.* +import java.io.File +import java.math.BigInteger +import java.security.MessageDigest + +open class GenerateAst : DefaultTask() { + @Internal + override fun getGroup() = "build" + + @Internal + override fun getDescription() = "Generate AST tree for declared header files." + + @InputFiles + lateinit var headerFiles: Collection + @Input + var defines: Set = emptySet() + + private val dstDir: File = File("${project.rootDir}/buildSrc/src/main/resources/${AstParser.RESOURCE_PATH}") + private val objectMapper: ObjectMapper = ObjectMapper() + + // Content of the currently parsed header file. Can be used during parsing to extract additional information. + private lateinit var currentParsingHeaderContent: String + + init { + objectMapper.configure(SerializationFeature.INDENT_OUTPUT, true) + objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY) + } + + @TaskAction + fun run() { + logger.info("Generating AST...") + + dstDir.mkdirs() + + val scriptPath = "$dstDir/_gen_ast.sh" + File(scriptPath).setExecutable(true) + + logger.info("Processing headers...") + + headerFiles.forEach { header -> + System.gc() + + logger.info("| $header") + + // Read the header. + currentParsingHeaderContent = header.readText() + + // Header hash content to create a unique path for generated content. + val headerHash = md5Hash(currentParsingHeaderContent) + + // We create a unique folder to store files generated for the header. + // This is necessary because when we store all headers in the same directory, + // their AST dump can overlap with each other. + val astBuildDir = project.layout.buildDirectory.dir("generated/ast/$headerHash").get().asFile.apply { + mkdirs() + } + + logger.info(" | Making an ast-dump...") + + // Destination for ast-dump. + val headerName = header.nameWithoutExtension + val astBumpJson = File("$astBuildDir/$headerName.json") + + // Call clang++ with the script. + // During the process of making an ast-dump there could be errors/warnings. + // Thus making a call like that can help to ignore them. + callClangAstBump(scriptPath, header, astBumpJson) + + logger.info(" | Processing an ast-dump result: $astBumpJson...") + + // Read the ast-dump of the whole header content. + // It will contain technical information, like unneeded typdefs, std types etc. + val fullDeclsList = mutableListOf() + objectMapper.readTree(astBumpJson).get("inner").forEach { topDecl -> + parseDeclNode0(topDecl)?.let(fullDeclsList::add) + } + + logger.info(" | Sorting an ast-decls...") + sortDecls0(fullDeclsList) + + /////////////// + // In the end we write down the ast-decls result to the file. + // The file itself will be stored in VCS, so we can understand if there were any changes in native code. + + val astResultJson = File("$dstDir/ast-$headerName.json") + + logger.info(" | Writing processed AST: $astResultJson...") + + objectMapper.writer().writeValue( + astResultJson, AstRoot( + info = AstInfo( + source = header.relativeTo(project.rootDir).path, + hash = headerHash, + url = shellRun(header.parentFile) { + command("git", listOf("config", "--get", "remote.origin.url")) + }, + revision = shellRun(header.parentFile) { + command("git", listOf("rev-parse", "HEAD")) + }, + ), + decls = fullDeclsList + ) + ) + } + } + + private fun parseDeclNode0(declNode: JsonNode): Decl? { + fun logParsingDecl(name: String) { + logger.info("| Parsing $name...") + } + + fun logParsingInner(name: String) { + logger.info(" | $name") + } + + fun JsonNode.hasNoName(): Boolean { + return !has("name") || get("name").asText().isBlank() + } + + fun JsonNode.hasNoInnerContent(): Boolean { + return !has("inner") || get("inner").isEmpty + } + + fun JsonNode.getOffset(): Int { + val loc = (get("loc") ?: get("range").get("begin")).let { loc -> + if (loc.has("expansionLoc")) { + loc.get("expansionLoc") + } else { + loc + } + } + return loc.get("offset")?.asInt() ?: -1 + } + + fun JsonNode.getDefaultParamValue(): String? { + fun getOffset(jsonNode: JsonNode): Pair { + val loc = if (jsonNode.has("expansionLoc")) { + jsonNode.get("expansionLoc") + } else { + jsonNode + } + return loc.get("offset").asInt() to loc.get("tokLen").asInt() + } + return findValue("inner").findValue("range").let { range -> + val (beginOffset, _) = getOffset(range.get("begin")) + val (endOffset, endTokLoc) = getOffset(range.get("end")) + if (endOffset + endTokLoc < currentParsingHeaderContent.length) { + currentParsingHeaderContent.substring(beginOffset, endOffset + endTokLoc) + } else { + null + } + } + } + + // Ignore declaration nodes with technical information. + // This information can be specific for the OS where the script was called. + declNode.findValue("name")?.asText()?.let { + if (it.startsWith("_") + || it.startsWith("operator") + || it.startsWith("rus") + || it.startsWith("sig") + || it.startsWith("proc_") + ) { + return null + } + when (it) { + "std", "timeval", "wait", "rlimit" -> return null + else -> null // do nothing + } + } + + try { + return when (declNode.get("kind").textValue()) { + "NamespaceDecl" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + if (name.startsWith("_")) { // internal API namespaces + return null + } + + logParsingDecl("namespace $name") + + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + return AstNamespaceDecl(offset, name, decls) + } + + "FullComment" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val decls = mutableListOf() + + logParsingDecl("full comment") + + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + return AstFullComment(offset, decls) + } + + "ParagraphComment" -> { + if (declNode.hasNoInnerContent()) { + return null + } + + val offset = declNode.getOffset() + val decls = mutableListOf() + + logParsingDecl("paragraph comment") + + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + return AstParagraphComment(offset, decls) + } + + "TextComment" -> { + val offset = declNode.getOffset() + val text = declNode.get("text").asText() + logParsingInner("text comment") + return AstTextComment(offset, text) + } + + "FunctionDecl", "CXXMethodDecl" -> { + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val resultType = declNode.get("type").get("qualType").asText().substringBefore("(").trim() + val decls = mutableListOf() + + logParsingDecl("function $name") + + declNode.get("inner")?.forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + return AstFunctionDecl(offset, name, resultType, decls) + } + + "ParmVarDecl" -> { + if (declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + val desugaredQualType = declNode.get("type").get("desugaredQualType")?.asText() ?: qualType + + val defaultValue: String? = if (declNode.has("init")) { + declNode.getDefaultParamValue() + } else { + null + } + + logParsingInner("param $name") + + return AstParmVarDecl(offset, name, qualType, desugaredQualType, defaultValue) + } + + "FormatAttr" -> { + logParsingInner("param ...") + return AstParmVarDecl.asFormatAttr(declNode.getOffset()) + } + + "EnumDecl" -> { + if (declNode.hasNoInnerContent() || declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + logParsingDecl("enum $name") + + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + // Sort enums by their real pos in the header file. + sortDecls0(decls) + + var enumDecls = decls.filterIsInstance() + val otherDecls = decls - enumDecls.toSet() + + var order = 0 + enumDecls = enumDecls.mapIndexed { idx, decl -> + AstEnumConstantDecl( + decl.offset, + decl.name, + decl.docComment, + decl.qualType, + order++, + decl.value, + lookupEnumEvaluatedValue0(enumDecls, idx), + ) + } + + return AstEnumDecl(offset, name, otherDecls + enumDecls) + } + + "EnumConstantDecl" -> { + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + + // ->inner[0]-> + val declValue: String? = declNode.get("inner")?.get(0)?.let { + // Check if the first node is not a comment. + if (it.get("kind").asText() != "FullComment") { + declNode.getDefaultParamValue() + } else { + null + } + } + + val evaluatedValue: Int? = declNode.findValue("value")?.asInt() + val docComment: String? = declNode.findValuesAsText("text")?.joinToString(" ") { it.trim() } + + logParsingInner("enum value $name") + + return AstEnumConstantDecl( + offset, + name, + docComment, + qualType, + // We provide a proper order in EnumDecl, after sorting all enums by their offset. + -1, + declValue, + evaluatedValue + ) + } + + "CXXRecordDecl" -> { + if (declNode.hasNoInnerContent() || declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val decls = mutableListOf() + + logParsingDecl("record $name") + + declNode.get("inner").forEach { innerDecl -> + parseDeclNode0(innerDecl)?.let(decls::add) + } + + return AstRecordDecl(offset, name, decls) + } + + "FieldDecl" -> { + if (declNode.hasNoName()) { + return null + } + + val offset = declNode.getOffset() + val name = declNode.get("name").asText() + val qualType = declNode.get("type").get("qualType").asText() + val desugaredQualType = declNode.get("type").get("desugaredQualType")?.asText() ?: qualType + + logParsingInner("field $name") + + return AstFieldDecl(offset, name, qualType, desugaredQualType) + } + + else -> { + null + } + } + } catch (e: Exception) { + logger.error("Unable to parse: {}", declNode) + throw Error(e) + } + } + + private fun md5Hash(str: String): String { + val md = MessageDigest.getInstance("MD5") + val bigInt = BigInteger(1, md.digest(str.toByteArray(Charsets.UTF_8))) + return String.format("%032x", bigInt) + } + + private fun callClangAstBump(scriptPath: String, srcHeader: File, dstJson: File) { + fun buildCommand(): List { + val command = mutableListOf( + scriptPath, + srcHeader.absolutePath, + dstJson.absolutePath, + ) + if (defines.isNotEmpty()) { + command += defines.map { "-D$it" } + } + return command + } + + dstJson.delete() + val pb = ProcessBuilder() + pb.command(buildCommand()) + pb.start().waitFor() + } + + /** + * Sort decls in the provided list recursively using offset value. + */ + private fun sortDecls0(decls: MutableList) { + decls.sortWith { d1, d2 -> + d1.offset.compareTo(d2.offset) + } + decls.forEach { + if (it is DeclContainer) { + sortDecls0(it.decls.toMutableList()) + } + } + } + + /** + * This method helps to find the value of the enum constant. + * It relies on C++ behaviour, when the value is something defined or the order of the enum itself. + */ + private fun lookupEnumEvaluatedValue0(decls: List, idx: Int): Int { + val decl = decls[idx] + + if (decl.evaluatedValue != null) { + return decl.evaluatedValue + } + + if (decl.value != null) { + decl.value.toIntOrNull()?.let { + return it + } + } + + if (idx == 0) { + return 0 + } + + // This will behave like if we're using an order of the enum as the value. + return lookupEnumEvaluatedValue0(decls, idx - 1) + 1 + } +} diff --git a/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh b/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh new file mode 100755 index 00000000..75eae061 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/_gen_ast.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env sh + +# Separate shell script required to ensure that clang++ command is runnable. +# Java ProcessBuilder doesn't see command properly. +# Also, running like that helps to ignore local clang++ warnings which can happen. + +# Assign the first argument to 'input_file' (the C++ file to analyze). +input_file="$1" + +# Assign the second argument to 'output_file' (where to save the AST JSON). +output_file="$2" + +# 'shift 2' shifts the positional parameters to the left by two positions. +# This means "$@" will now contain any additional arguments (like macro definitions). +shift 2 + +# Run clang++ with the specified options. +# -Xclang -ast-dump=json: Dumps the AST in JSON format. +# -fsyntax-only: Only checks the syntax, does not compile. +# -fparse-all-comments: Includes comments in the AST. +# -fmerge-all-constants: Merges identical constants. +# "$@" passes any additional arguments (like -D for macro definitions). +# "$input_file" is the C++ source file to process. +# The output is redirected and appended to the specified output file. +clang++ -Xclang -ast-dump=json -fsyntax-only -fparse-all-comments -fmerge-all-constants "$@" "$input_file" >> "$output_file" diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json new file mode 100644 index 00000000..fdbf83d4 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuiFileDialog.json @@ -0,0 +1,3244 @@ +{ + "info" : { + "source" : "include/ImGuiFileDialog/ImGuiFileDialog.h", + "hash" : "11872045e07178b9875d166a203d0345", + "url" : "https://github.com/aiekick/ImGuiFileDialog", + "revision" : "007091af18c69a2eed15cf5016951eb481a1de79" + }, + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "iswalnum_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswblank_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalpha_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswhexnumber_l", + "resultType" : "int" + }, { + "@type" : "AstRecordDecl", + "name" : "timespec", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "tv_sec", + "qualType" : "__darwin_time_t", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "name" : "tv_nsec", + "qualType" : "long", + "desugaredQualType" : "long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswcntrl_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswideogram_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswctype_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswnumber_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswdigit_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswphonogram_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswgraph_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswrune_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswlower_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspecial_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswblank", + "resultType" : "int" + }, { + "@type" : "AstRecordDecl", + "name" : "lconv", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "decimal_point", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "thousands_sep", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "grouping", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "int_curr_symbol", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "currency_symbol", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_decimal_point", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_thousands_sep", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_grouping", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "positive_sign", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "negative_sign", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "int_frac_digits", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "frac_digits", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswprint_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswpunct_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswhexnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspace_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswideogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswupper_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswphonogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswxdigit_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "digittoint_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswrune", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "towlower_l", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalnum_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspecial", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "towupper_l", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalpha_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isblank_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalnum", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iscntrl_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalpha", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isdigit_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswcntrl", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isgraph_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswctype", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ishexnumber_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isideogram_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "tm", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "tm_sec", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_hour", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_mday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_mon", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_year", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_wday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_yday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_isdst", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_gmtoff", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_zone", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswgraph", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "islower_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswlower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isnumber_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswprint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isphonogram_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswpunct", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspace", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isprint_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ispunct_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswxdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isrune_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "towlower", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspace_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "towupper", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspecial_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isupper_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isxdigit_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "tolower_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "toupper_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "major", + "resultType" : "__int32_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "minor", + "resultType" : "__int32_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "makedev", + "resultType" : "dev_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalnum", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalpha", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isblank", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iscntrl", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isgraph", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "islower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isprint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ispunct", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspace", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isxdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "toascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "tolower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "toupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "digittoint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ishexnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isideogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isphonogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isrune", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspecial", + "resultType" : "int" + }, { + "@type" : "AstEnumDecl", + "name" : "IGFD_FileStyleFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyle_None", + "docComment" : "define none style", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByTypeFile", + "docComment" : "define style for all files", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 1, + "value" : "(1 << 0)", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByTypeDir", + "docComment" : "define style for all dir", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 2, + "value" : "(1 << 1)", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByTypeLink", + "docComment" : "define style for all link", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 3, + "value" : "(1 << 2)", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByExtention", + "docComment" : "define style by extention, for files or links", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 4, + "value" : "(1 << 3)", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByFullName", + "docComment" : "define style for particular file/dir/link full name (filename + extention)", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 5, + "value" : "(1 << 4)", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "IGFD_FileStyleByContainedInFullName", + "docComment" : "define style for file/dir/link when criteria is contained in full name", + "qualType" : "IGFD_FileStyleFlags_", + "order" : 6, + "value" : "(1 << 5)", + "evaluatedValue" : 32 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiFileDialogFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_None", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_ConfirmOverwrite", + "docComment" : "show confirm to overwrite dialog", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 1, + "value" : "(1 << 0)", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_DontShowHiddenFiles", + "docComment" : "dont show hidden file (file starting with a .)", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 2, + "value" : "(1 << 1)", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_DisableCreateDirectoryButton", + "docComment" : "disable the create directory button", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 3, + "value" : "(1 << 2)", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_HideColumnType", + "docComment" : "hide column file type", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 4, + "value" : "(1 << 3)", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_HideColumnSize", + "docComment" : "hide column file size", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 5, + "value" : "(1 << 4)", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_HideColumnDate", + "docComment" : "hide column file date", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 6, + "value" : "(1 << 5)", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFileDialogFlags_Default", + "qualType" : "ImGuiFileDialogFlags_", + "order" : 7, + "value" : "ImGuiFileDialogFlags_ConfirmOverwrite", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "IGFD", + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "FileDialogInternal", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "SearchManager", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "puSearchTag", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puSearchBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "name" : "puSearchInputIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawSearchBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Utils", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "PathStruct", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "path", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "name", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ext", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "isOk", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Splitter", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "split_vertically", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "size1", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size2", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "min_size1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "min_size2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "splitter_long_axis_size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ReplaceString", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "int &", + "desugaredQualType" : "int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "oldStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "newStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsDirectoryExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CreateDirectoryIfNotExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ParsePathFileName", + "resultType" : "PathStruct", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vPathFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AppendToBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vBufferLen", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "vStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ResetBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vBuffer", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vBufferLen", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "vStr", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SplitStringToVector", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "delimiter", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "name" : "pushEmpty", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrivesList", + "resultType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileStyle", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "color", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "icon", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "font", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstFieldDecl", + "name" : "flags", + "qualType" : "IGFD_FileStyleFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileInfos", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FilterManager", + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "FilterInfos", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "filter", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "collectionfilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "exist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFilter", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "prParsedFilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prSelectedFilter", + "qualType" : "FilterInfos", + "desugaredQualType" : "IGFD::FilterManager::FilterInfos" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGFilters", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGdefaultExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ParseFilters", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelectedFilterWithExt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFilter", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prFillFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vInfos", + "qualType" : "const FileStyle &", + "desugaredQualType" : "const FileStyle &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vColor", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vIcon", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutColor", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutIcon", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFilesStyle", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsCoveredByFilters", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vTag", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawFilterComboBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSelectedFilter", + "resultType" : "FilterInfos" + }, { + "@type" : "AstFunctionDecl", + "name" : "ReplaceExtentionWithCurrentFilter", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFile", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetDefaultFilterIfNotDefined", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileInfos", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "fileType", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "filePath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileNameExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileNameExt_optimized", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileExt", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileSize", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "name" : "formatedFileSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileModifDate", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "fileStyle", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsTagFound", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vTag", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileManager", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "SortingFieldEnum", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "FIELD_NONE", + "docComment" : "no sorting preference, result indetermined haha..", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "FIELD_FILENAME", + "docComment" : "sorted by filename", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "FIELD_TYPE", + "docComment" : "sorted by filetype", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "FIELD_SIZE", + "docComment" : "sorted by filesize (formated file size)", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "FIELD_DATE", + "docComment" : "sorted by filedate", + "qualType" : "IGFD::FileManager::SortingFieldEnum", + "order" : 4, + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "prCurrentPath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prCurrentPathDecomposition", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prFileList", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prFilteredFileList", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prLastSelectedFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prSelectedFileNames", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "prCreateDirectoryMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puVariadicBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "name" : "puInputPathActivated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puDrivesClicked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puPathClicked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puInputPathBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "name" : "puFileNameBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "name" : "puDirectoryNameBuffer", + "qualType" : "char[1024]", + "desugaredQualType" : "char[1024]" + }, { + "@type" : "AstFieldDecl", + "name" : "puHeaderFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puHeaderFileType", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puHeaderFileSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puHeaderFileDate", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puSortingDirection", + "qualType" : "bool[4]", + "desugaredQualType" : "bool[4]" + }, { + "@type" : "AstFieldDecl", + "name" : "puSortingField", + "qualType" : "SortingFieldEnum", + "desugaredQualType" : "IGFD::FileManager::SortingFieldEnum" + }, { + "@type" : "AstFieldDecl", + "name" : "puShowDrives", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGpath", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGDefaultFileName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGcountSelectionMax", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGDirectoryMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puFsRoot", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "prRoundNumber", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vvalue", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prFormatFileSize", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vByteSize", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prOptimizeFilenameForSearchOperations", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileNameExt", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prCompleteFileInfos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "FileInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prRemoveFileNameInSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prAddFileNameInSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSetLastSelectionFileName", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileType", + "qualType" : "const char &", + "desugaredQualType" : "const char &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsComposerEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetComposerSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsFileListEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsFilteredListEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFullFileListSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFullFileAt", + "resultType" : "std::shared_ptr", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vIdx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFilteredListSize", + "resultType" : "size_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFilteredFileAt", + "resultType" : "std::shared_ptr", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vIdx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsFileNameSelected", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBack", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearComposer", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFileLists", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ApplyFilteringOnFileList", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenCurrentPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SortFields", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSortingField", + "qualType" : "const SortingFieldEnum &", + "desugaredQualType" : "const SortingFieldEnum &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCanChangeOrder", + "qualType" : "const bool &", + "desugaredQualType" : "const bool &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrives", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "CreateDir", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ComposeNewPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vIter", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetPathOnParentDirectoryIfAny", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCurrentPath", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vCurrentPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsFileExist", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFile", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetDefaultFileName", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectDirectory", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectFileName", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vInfos", + "qualType" : "const std::shared_ptr &", + "desugaredQualType" : "const std::shared_ptr &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCurrentDir", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "depend of dirent.h" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ScanDir", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetResultingPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetResultingFileName", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetResultingFilePathName", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetResultingSelection", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawDirectoryCreation", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawPathComposer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "const FileDialogInternal &", + "desugaredQualType" : "const FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ThumbnailFeature", + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "NewThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "QuitThumbnailFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileDialogInternal", + "qualType" : "FileDialogInternal &", + "desugaredQualType" : "FileDialogInternal &" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "BookMarkFeature", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "KeyExplorerFeature", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " file localization by input chat // widget flashing" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileDialogInternal", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "puFileManager", + "qualType" : "FileManager", + "desugaredQualType" : "IGFD::FileManager" + }, { + "@type" : "AstFieldDecl", + "name" : "puFilterManager", + "qualType" : "FilterManager", + "desugaredQualType" : "IGFD::FilterManager" + }, { + "@type" : "AstFieldDecl", + "name" : "puSearchManager", + "qualType" : "SearchManager", + "desugaredQualType" : "IGFD::SearchManager" + }, { + "@type" : "AstFieldDecl", + "name" : "puName", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puShowDialog", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puDialogCenterPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puLastImGuiFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puFooterHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "puCanWeContinue", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puOkResultToConfirm", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puIsOk", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puFileInputIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puFileListViewIsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGkey", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGtitle", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGflags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGuserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGoptionsPane", + "qualType" : "PaneFun", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGoptionsPaneWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "puDLGmodal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puNeedToExitDialog", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puUseCustomLocale", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "puLocaleCategory", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puLocaleBegin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puLocaleEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ResetForNewDialog", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "FileDialog", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "prFileDialogInternal", + "qualType" : "FileDialogInternal", + "desugaredQualType" : "IGFD::FileDialogInternal" + }, { + "@type" : "AstFieldDecl", + "name" : "prFileListClipper", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "puAnyWindowsHovered", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Instance", + "resultType" : "FileDialog *" + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " standard dialog" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " with pane" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenDialog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " modal dialog" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vPath", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFileName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " with pane" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenModal", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vTitle", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilters", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFilePathName", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePane", + "qualType" : "const PaneFun &", + "desugaredQualType" : "const PaneFun &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSidePaneWidth", + "qualType" : "const float &", + "desugaredQualType" : "const float &", + "defaultValue" : "250.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCountSelectionMax", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "vUserDatas", + "qualType" : "UserDatas", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "ImGuiFileDialogFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Display", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "vMinSize", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "vMaxSize", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "ImVec2(FLT_MAX, FLT_MAX)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Display / Close dialog form" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Close", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "WasOpenedThisFrame", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " queries" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "WasOpenedThisFrame", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOpened", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vKey", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOpened", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetOpenedKey", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOk", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " get result" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSelection", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFilePathName", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentFileName", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentPath", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentFilter", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetUserDatas", + "resultType" : "UserDatas" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vInfos", + "qualType" : "const FileStyle &", + "desugaredQualType" : "const FileStyle &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " file style by extentions" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFileStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vColor", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vIcon", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFileStyle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "const IGFD_FileStyleFlags &", + "desugaredQualType" : "const IGFD_FileStyleFlags &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vCriteria", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutColor", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutIcon", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **", + "defaultValue" : "nullptr" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFilesStyle", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetLocales", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vLocaleCategory", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vLocaleBegin", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vLocaleEnd", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "QuitFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "prConfirm_Or_OpenOverWriteFileDialog_IfNeeded", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vLastAction", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFlags", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " others" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prDrawHeader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " dialog parts" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prDrawContent", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "prDrawFooter", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "prDrawSidePane", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " widgets components" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prSelectableItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vidx", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "vInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vSelected", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prDrawFileListView", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vSize", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prBeginFileColorIconStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vFileInfos", + "qualType" : "std::shared_ptr", + "desugaredQualType" : "std::shared_ptr" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutShowColor", + "qualType" : "bool &", + "desugaredQualType" : "bool &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutStr", + "qualType" : "int &", + "desugaredQualType" : "int &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vOutFont", + "qualType" : "int **", + "desugaredQualType" : "int **" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " to be called only by these function and theirs overrides" + }, { + "@type" : "AstTextComment", + "text" : " - prDrawFileListView" + }, { + "@type" : "AstTextComment", + "text" : " - prDrawThumbnailsListView" + }, { + "@type" : "AstTextComment", + "text" : " - prDrawThumbnailsGridView" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "prEndFileColorIconStyle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "vShowColor", + "qualType" : "const bool &", + "desugaredQualType" : "const bool &" + }, { + "@type" : "AstParmVarDecl", + "name" : "vFont", + "qualType" : "int *", + "desugaredQualType" : "int *" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "IGFD_Selection_Pair", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "// C API ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + }, { + "@type" : "AstTextComment", + "text" : "/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "fileName", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "filePathName", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "IGFD_Selection", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "table", + "qualType" : "IGFD_Selection_Pair *", + "desugaredQualType" : "IGFD_Selection_Pair *" + }, { + "@type" : "AstFieldDecl", + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json new file mode 100644 index 00000000..60ea8471 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-ImGuizmo.json @@ -0,0 +1,1145 @@ +{ + "info" : { + "source" : "include/imguizmo/ImGuizmo.h", + "hash" : "2f33204f2525b4020b351801ba051c26", + "url" : "https://github.com/CedricGuillemet/ImGuizmo.git", + "revision" : "a15acd87a3f3241a29ea1363ceafc680dca3a96b" + }, + "decls" : [ { + "@type" : "AstNamespaceDecl", + "name" : "ImGuizmo", + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "SetDrawlist", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "drawlist", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " call inside your own window and before Manipulate() in order to draw gizmo to that window." + }, { + "@type" : "AstTextComment", + "text" : " Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList())." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginFrame", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " call BeginFrame right after ImGui_XXXX_NewFrame();" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetImGuiContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ctx", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " this is necessary because when imguizmo is compiled into a dll, and imgui into another" + }, { + "@type" : "AstTextComment", + "text" : " globals are not shared between them." + }, { + "@type" : "AstTextComment", + "text" : " More details at https://stackoverflow.com/questions/19373061/what-happens-to-global-and-static-variables-in-a-shared-library-when-it-is-dynam" + }, { + "@type" : "AstTextComment", + "text" : " expose method to set imgui context" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOver", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " return true if mouse cursor is over any gizmo control (axis, plan or screen component)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsUsing", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " return true if mouse IsOver or if the gizmo is in moving state" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsUsingViewManipulate", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " return true if the view gizmo is in moving state" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsViewManipulateHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " only check if your mouse is over the view manipulator - no matter whether it's active or not" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsUsingAny", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " return true if any gizmo is in moving state" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Enable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "enable", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " enable/disable the gizmo. Stay in the state until next call to Enable." + }, { + "@type" : "AstTextComment", + "text" : " gizmo is rendered with gray half transparent color when disabled" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DecomposeMatrixToComponents", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "matrix", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "translation", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "rotation", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " helper functions for manualy editing translation/rotation/scale with an input float" + }, { + "@type" : "AstTextComment", + "text" : " translation, rotation and scale float points to 3 floats each" + }, { + "@type" : "AstTextComment", + "text" : " Angles are in degrees (more suitable for human editing)" + }, { + "@type" : "AstTextComment", + "text" : " example:" + }, { + "@type" : "AstTextComment", + "text" : " float matrixTranslation[3], matrixRotation[3], matrixScale[3];" + }, { + "@type" : "AstTextComment", + "text" : " ImGuizmo::DecomposeMatrixToComponents(gizmoMatrix.m16, matrixTranslation, matrixRotation, matrixScale);" + }, { + "@type" : "AstTextComment", + "text" : " ImGui::InputFloat3(\"Tr\", matrixTranslation, 3);" + }, { + "@type" : "AstTextComment", + "text" : " ImGui::InputFloat3(\"Rt\", matrixRotation, 3);" + }, { + "@type" : "AstTextComment", + "text" : " ImGui::InputFloat3(\"Sc\", matrixScale, 3);" + }, { + "@type" : "AstTextComment", + "text" : " ImGuizmo::RecomposeMatrixFromComponents(matrixTranslation, matrixRotation, matrixScale, gizmoMatrix.m16);" + } ] + }, { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " These functions have some numerical stability issues for now. Use with caution." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RecomposeMatrixFromComponents", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "translation", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "rotation", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrix", + "qualType" : "float *", + "desugaredQualType" : "float *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "height", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetOrthographic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "isOrthographic", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " default is false" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawCubes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrices", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrixCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Render a cube with face color corresponding to face normal. Usefull for debug/tests" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DrawGrid", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrix", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "gridSize", + "qualType" : "const float", + "desugaredQualType" : "const float" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "OPERATION", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " call it when you want a gizmo" + }, { + "@type" : "AstTextComment", + "text" : " Needs view and projection matrices." + }, { + "@type" : "AstTextComment", + "text" : " matrix parameter is the source matrix (where will be gizmo be drawn) and might be transformed by the function. Return deltaMatrix is optional" + }, { + "@type" : "AstTextComment", + "text" : " translation is applied in world space" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TRANSLATE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 0, + "value" : "(1u << 0)", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TRANSLATE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 1, + "value" : "(1u << 1)", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TRANSLATE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 2, + "value" : "(1u << 2)", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 3, + "value" : "(1u << 3)", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 4, + "value" : "(1u << 4)", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 5, + "value" : "(1u << 5)", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATE_SCREEN", + "qualType" : "ImGuizmo::OPERATION", + "order" : 6, + "value" : "(1u << 6)", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_X", + "qualType" : "ImGuizmo::OPERATION", + "order" : 7, + "value" : "(1u << 7)", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_Y", + "qualType" : "ImGuizmo::OPERATION", + "order" : 8, + "value" : "(1u << 8)", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_Z", + "qualType" : "ImGuizmo::OPERATION", + "order" : 9, + "value" : "(1u << 9)", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "BOUNDS", + "qualType" : "ImGuizmo::OPERATION", + "order" : 10, + "value" : "(1u << 10)", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_XU", + "qualType" : "ImGuizmo::OPERATION", + "order" : 11, + "value" : "(1u << 11)", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_YU", + "qualType" : "ImGuizmo::OPERATION", + "order" : 12, + "value" : "(1u << 12)", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_ZU", + "qualType" : "ImGuizmo::OPERATION", + "order" : 13, + "value" : "(1u << 13)", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TRANSLATE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 14, + "value" : "TRANSLATE_X | TRANSLATE_Y | TRANSLATE_Z", + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 15, + "value" : "ROTATE_X | ROTATE_Y | ROTATE_Z | ROTATE_SCREEN", + "evaluatedValue" : 120 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE", + "qualType" : "ImGuizmo::OPERATION", + "order" : 16, + "value" : "SCALE_X | SCALE_Y | SCALE_Z", + "evaluatedValue" : 896 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALEU", + "docComment" : "universal", + "qualType" : "ImGuizmo::OPERATION", + "order" : 17, + "value" : "SCALE_XU | SCALE_YU | SCALE_ZU", + "evaluatedValue" : 14336 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "UNIVERSAL", + "qualType" : "ImGuizmo::OPERATION", + "order" : 18, + "value" : "TRANSLATE | ROTATE | SCALEU", + "evaluatedValue" : 14463 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "MODE", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "LOCAL", + "qualType" : "ImGuizmo::MODE", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "WORLD", + "qualType" : "ImGuizmo::MODE", + "order" : 1, + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Manipulate", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "view", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "operation", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + }, { + "@type" : "AstParmVarDecl", + "name" : "mode", + "qualType" : "MODE", + "desugaredQualType" : "ImGuizmo::MODE" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrix", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "deltaMatrix", + "qualType" : "float *", + "desugaredQualType" : "float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "snap", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "localBounds", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "boundsSnap", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ViewManipulate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "view", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "length", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "position", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "backgroundColor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Please note that this cubeview is patented by Autodesk : https://patents.google.com/patent/US7782319B2/en" + }, { + "@type" : "AstTextComment", + "text" : " It seems to be a defensive patent in the US. I don't think it will bring troubles using it as" + }, { + "@type" : "AstTextComment", + "text" : " other software are using the same mechanics. But just in case, you are now warned!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ViewManipulate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "view", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "projection", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "operation", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + }, { + "@type" : "AstParmVarDecl", + "name" : "mode", + "qualType" : "MODE", + "desugaredQualType" : "ImGuizmo::MODE" + }, { + "@type" : "AstParmVarDecl", + "name" : "matrix", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "length", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "position", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "backgroundColor", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " use this version if you did not call Manipulate before and you are just using ViewManipulate" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAlternativeWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ID stack/scopes" + }, { + "@type" : "AstTextComment", + "text" : " Read the FAQ (docs/FAQ.md or http://dearimgui.org/faq) for more details about how ID are handled in dear imgui." + }, { + "@type" : "AstTextComment", + "text" : " - Those questions are answered and impacted by understanding of the ID stack system:" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: Why is my widget not reacting when I click on it?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have widgets with an empty label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have multiple widgets with the same label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - Short version: ID are hashes of the entire ID stack. If you are creating widgets in a loop you most likely" + }, { + "@type" : "AstTextComment", + "text" : " want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them." + }, { + "@type" : "AstTextComment", + "text" : " - You can also use the \"Label##foobar\" syntax within widget label to distinguish them from each others." + }, { + "@type" : "AstTextComment", + "text" : " - In this header file we use the \"label\"/\"name\" terminology to denote a string that will be displayed + used as an ID," + }, { + "@type" : "AstTextComment", + "text" : " whereas \"str_id\" denote a string that is only used as an ID and not normally displayed." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOver", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "op", + "qualType" : "OPERATION", + "desugaredQualType" : "ImGuizmo::OPERATION" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " return true if the cursor is over the operation's gizmo" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetGizmoSizeClipSpace", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AllowAxisFlip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "value", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Allow axis to flip" + }, { + "@type" : "AstTextComment", + "text" : " When true (default), the guizmo axis flip for better visibility" + }, { + "@type" : "AstTextComment", + "text" : " When false, they always stay along the positive world/local axis" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAxisLimit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Configure the limit where axis are hidden" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAxisMask", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "z", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Set an axis mask to permanently hide a given axis (true -> hidden, false -> shown)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetPlaneLimit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "value", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Configure the limit where planes are hiden" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOver", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "position", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "pixelRadius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " from a x,y,z point in space and using Manipulation view/projection matrix, check if mouse is in pixel radius distance of that projected point" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "COLOR", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "DIRECTION_X", + "docComment" : "directionColor[0]", + "qualType" : "ImGuizmo::COLOR", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "DIRECTION_Y", + "docComment" : "directionColor[1]", + "qualType" : "ImGuizmo::COLOR", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "DIRECTION_Z", + "docComment" : "directionColor[2]", + "qualType" : "ImGuizmo::COLOR", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "PLANE_X", + "docComment" : "planeColor[0]", + "qualType" : "ImGuizmo::COLOR", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "PLANE_Y", + "docComment" : "planeColor[1]", + "qualType" : "ImGuizmo::COLOR", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "PLANE_Z", + "docComment" : "planeColor[2]", + "qualType" : "ImGuizmo::COLOR", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SELECTION", + "docComment" : "selectionColor", + "qualType" : "ImGuizmo::COLOR", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "INACTIVE", + "docComment" : "inactiveColor", + "qualType" : "ImGuizmo::COLOR", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TRANSLATION_LINE", + "docComment" : "translationLineColor", + "qualType" : "ImGuizmo::COLOR", + "order" : 8, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "SCALE_LINE", + "qualType" : "ImGuizmo::COLOR", + "order" : 9, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATION_USING_BORDER", + "qualType" : "ImGuizmo::COLOR", + "order" : 10, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ROTATION_USING_FILL", + "qualType" : "ImGuizmo::COLOR", + "order" : 11, + "evaluatedValue" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "HATCHED_AXIS_LINES", + "qualType" : "ImGuizmo::COLOR", + "order" : 12, + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TEXT", + "qualType" : "ImGuizmo::COLOR", + "order" : 13, + "evaluatedValue" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "TEXT_SHADOW", + "qualType" : "ImGuizmo::COLOR", + "order" : 14, + "evaluatedValue" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "COUNT", + "qualType" : "ImGuizmo::COLOR", + "order" : 15, + "evaluatedValue" : 15 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Style", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "TranslationLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TranslationLineArrowSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "RotationLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "RotationOuterLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ScaleLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ScaleLineCircleSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HatchedAxisLineThickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CenterCircleSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Colors", + "qualType" : "int[15]", + "desugaredQualType" : "int[15]" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyle", + "resultType" : "Style &" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json b/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json new file mode 100644 index 00000000..a9f699af --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-TextEditor.json @@ -0,0 +1,2238 @@ +{ + "info" : { + "source" : "include/ImGuiColorTextEdit/TextEditor.h", + "hash" : "1e5c6cd321f415c393ab30d4800a0dc2", + "url" : "https://github.com/goossens/ImGuiColorTextEdit", + "revision" : "0a88824f7de8d0bd11d8419066caa7d3469395c4" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "TextEditor", + "decls" : [ { + "@type" : "AstEnumDecl", + "name" : "PaletteIndex", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "Default", + "qualType" : "TextEditor::PaletteIndex", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Keyword", + "qualType" : "TextEditor::PaletteIndex", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Number", + "qualType" : "TextEditor::PaletteIndex", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "String", + "qualType" : "TextEditor::PaletteIndex", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "CharLiteral", + "qualType" : "TextEditor::PaletteIndex", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Punctuation", + "qualType" : "TextEditor::PaletteIndex", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Preprocessor", + "qualType" : "TextEditor::PaletteIndex", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Identifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "KnownIdentifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 8, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "PreprocIdentifier", + "qualType" : "TextEditor::PaletteIndex", + "order" : 9, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Comment", + "qualType" : "TextEditor::PaletteIndex", + "order" : 10, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "MultiLineComment", + "qualType" : "TextEditor::PaletteIndex", + "order" : 11, + "evaluatedValue" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Background", + "qualType" : "TextEditor::PaletteIndex", + "order" : 12, + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Cursor", + "qualType" : "TextEditor::PaletteIndex", + "order" : 13, + "evaluatedValue" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Selection", + "qualType" : "TextEditor::PaletteIndex", + "order" : 14, + "evaluatedValue" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ErrorMarker", + "qualType" : "TextEditor::PaletteIndex", + "order" : 15, + "evaluatedValue" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Breakpoint", + "qualType" : "TextEditor::PaletteIndex", + "order" : 16, + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "LineNumber", + "qualType" : "TextEditor::PaletteIndex", + "order" : 17, + "evaluatedValue" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "CurrentLineFill", + "qualType" : "TextEditor::PaletteIndex", + "order" : 18, + "evaluatedValue" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "CurrentLineFillInactive", + "qualType" : "TextEditor::PaletteIndex", + "order" : 19, + "evaluatedValue" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "CurrentLineEdge", + "qualType" : "TextEditor::PaletteIndex", + "order" : 20, + "evaluatedValue" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Max", + "qualType" : "TextEditor::PaletteIndex", + "order" : 21, + "evaluatedValue" : 21 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "SelectionMode", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "Normal", + "qualType" : "TextEditor::SelectionMode", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Word", + "qualType" : "TextEditor::SelectionMode", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "Line", + "qualType" : "TextEditor::SelectionMode", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Breakpoint", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "mLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mCondition", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Coordinates", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Represents a character coordinate from the user's point of view," + }, { + "@type" : "AstTextComment", + "text" : " i. e. consider an uniform grid (assuming fixed-width font) on the" + }, { + "@type" : "AstTextComment", + "text" : " screen as it is rendered, and each cell has its own coordinate, starting from 0." + }, { + "@type" : "AstTextComment", + "text" : " Tabs are counted as [1..mTabSize] count empty spaces, depending on" + }, { + "@type" : "AstTextComment", + "text" : " how many space is necessary to reach the next tab stop." + }, { + "@type" : "AstTextComment", + "text" : " For example, coordinate (1, 5) represents the character 'B' in a line \"\\tABC\", when mTabSize = 4," + }, { + "@type" : "AstTextComment", + "text" : " because it is rendered as \" ABC\" on the screen." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "mLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mColumn", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "Invalid", + "resultType" : "Coordinates" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Identifier", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "mLocation", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mDeclaration", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "Glyph", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "mChar", + "qualType" : "Char", + "desugaredQualType" : "unsigned char" + }, { + "@type" : "AstFieldDecl", + "name" : "mColorIndex", + "qualType" : "PaletteIndex", + "desugaredQualType" : "TextEditor::PaletteIndex" + }, { + "@type" : "AstFieldDecl", + "name" : "mComment", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mMultiLineComment", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mPreprocessor", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "LanguageDefinition", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "mName", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mKeywords", + "qualType" : "Keywords", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mIdentifiers", + "qualType" : "Identifiers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mPreprocIdentifiers", + "qualType" : "Identifiers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mCommentStart", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mCommentEnd", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mSingleLineComment", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mPreprocChar", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "mAutoIndentation", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mTokenize", + "qualType" : "TokenizeCallback", + "desugaredQualType" : "bool (*)(const char *, const char *, const char *&, const char *&, PaletteIndex &)" + }, { + "@type" : "AstFieldDecl", + "name" : "mTokenRegexStrings", + "qualType" : "TokenRegexStrings", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mCaseSensitive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "CPlusPlus", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "HLSL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GLSL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "C", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "SQL", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "AngelScript", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "Lua", + "resultType" : "const LanguageDefinition &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetLanguageDefinition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aLanguageDef", + "qualType" : "const LanguageDefinition &", + "desugaredQualType" : "const LanguageDefinition &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetLanguageDefinition", + "resultType" : "const LanguageDefinition &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetPalette", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "const Palette &", + "desugaredQualType" : "const Palette &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetErrorMarkers", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aMarkers", + "qualType" : "const ErrorMarkers &", + "desugaredQualType" : "const ErrorMarkers &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetBreakpoints", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aMarkers", + "qualType" : "const Breakpoints &", + "desugaredQualType" : "const Breakpoints &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Render", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aTitle", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "aSize", + "qualType" : "const int &", + "desugaredQualType" : "const int &", + "defaultValue" : "ImVec2()" + }, { + "@type" : "AstParmVarDecl", + "name" : "aBorder", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aText", + "qualType" : "const std::string &", + "desugaredQualType" : "const std::string &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTextLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aLines", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTextLines", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSelectedText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentLineText", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTotalLines", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOverwrite", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetReadOnly", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsReadOnly", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsTextChanged", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsCursorPositionChanged", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsColorizerEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColorizerEnable", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPosition", + "resultType" : "Coordinates" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPosition", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetHandleMouseInputs", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsHandleMouseInputsEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetHandleKeyboardInputs", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsHandleKeyboardInputsEnabled", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetImGuiChildIgnored", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsImGuiChildIgnored", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetShowWhitespaces", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsShowingWhitespaces", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTabSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTabSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "InsertText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "const std::string &", + "desugaredQualType" : "const std::string &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InsertText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveUp", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveDown", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveLeft", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "name" : "aWordMode", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveRight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aAmount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "name" : "aWordMode", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveTop", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveBottom", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveHome", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MoveEnd", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSelect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelectionStart", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelectionEnd", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aPosition", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "name" : "aMode", + "qualType" : "SelectionMode", + "desugaredQualType" : "TextEditor::SelectionMode", + "defaultValue" : "SelectionMode::Normal" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectWordUnderCursor", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "HasSelection", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Copy", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Cut", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Paste", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Delete", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "CanUndo", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "CanRedo", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Undo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSteps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Redo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aSteps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDarkPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetLightPalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetRetroBluePalette", + "resultType" : "const Palette &" + }, { + "@type" : "AstRecordDecl", + "name" : "EditorState", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "mSelectionStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mSelectionEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mCursorPosition", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "UndoRecord", + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "Undo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aEditor", + "qualType" : "TextEditor *", + "desugaredQualType" : "TextEditor *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Redo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aEditor", + "qualType" : "TextEditor *", + "desugaredQualType" : "TextEditor *" + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "mAdded", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mAddedStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mAddedEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mRemoved", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mRemovedStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mRemovedEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mBefore", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + }, { + "@type" : "AstFieldDecl", + "name" : "mAfter", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ProcessInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Colorize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFromLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "aCount", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorizeRange", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFromLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "aToLine", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorizeInternal", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TextDistanceToLineStart", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EnsureCursorVisible", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPageSize", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetText", + "resultType" : "std::string", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetActualCursorCoordinates", + "resultType" : "Coordinates" + }, { + "@type" : "AstFunctionDecl", + "name" : "SanitizeCoordinates", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Advance", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aCoordinates", + "qualType" : "Coordinates &", + "desugaredQualType" : "Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DeleteRange", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aStart", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "name" : "aEnd", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InsertTextAt", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aWhere", + "qualType" : "Coordinates &", + "desugaredQualType" : "Coordinates &" + }, { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddUndo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aValue", + "qualType" : "UndoRecord &", + "desugaredQualType" : "UndoRecord &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ScreenPosToCoordinates", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aPosition", + "qualType" : "const int &", + "desugaredQualType" : "const int &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindWordStart", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindWordEnd", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindNextWord", + "resultType" : "Coordinates", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aFrom", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCharacterIndex", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aCoordinates", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCharacterColumn", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetLineCharacterCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetLineMaxColumn", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aLine", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsOnWordBoundary", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aAt", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RemoveLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "aEnd", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RemoveLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InsertLine", + "resultType" : "Line &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aIndex", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EnterCharacter", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aChar", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "aShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Backspace", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "DeleteSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWordUnderCursor", + "resultType" : "std::string" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWordAt", + "resultType" : "std::string", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aCoords", + "qualType" : "const Coordinates &", + "desugaredQualType" : "const Coordinates &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphColor", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "aGlyph", + "qualType" : "const Glyph &", + "desugaredQualType" : "const Glyph &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "HandleKeyboardInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "HandleMouseInputs", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Render", + "resultType" : "void" + }, { + "@type" : "AstFieldDecl", + "name" : "mLineSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "mLines", + "qualType" : "Lines", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mState", + "qualType" : "EditorState", + "desugaredQualType" : "TextEditor::EditorState" + }, { + "@type" : "AstFieldDecl", + "name" : "mUndoBuffer", + "qualType" : "UndoBuffer", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mUndoIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mTabSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mOverwrite", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mReadOnly", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mWithinRender", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mScrollToCursor", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mScrollToTop", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mTextChanged", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mColorizerEnabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mTextStart", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "mLeftMargin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mCursorPositionChanged", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mColorRangeMin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mColorRangeMax", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mSelectionMode", + "qualType" : "SelectionMode", + "desugaredQualType" : "TextEditor::SelectionMode" + }, { + "@type" : "AstFieldDecl", + "name" : "mHandleKeyboardInputs", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mHandleMouseInputs", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mIgnoreImGuiChild", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mShowWhitespaces", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mPaletteBase", + "qualType" : "Palette", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mPalette", + "qualType" : "Palette", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mLanguageDefinition", + "qualType" : "LanguageDefinition", + "desugaredQualType" : "TextEditor::LanguageDefinition" + }, { + "@type" : "AstFieldDecl", + "name" : "mRegexList", + "qualType" : "RegexList", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mCheckComments", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "mBreakpoints", + "qualType" : "Breakpoints", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mErrorMarkers", + "qualType" : "ErrorMarkers", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mCharAdvance", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "mInteractiveStart", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mInteractiveEnd", + "qualType" : "Coordinates", + "desugaredQualType" : "TextEditor::Coordinates" + }, { + "@type" : "AstFieldDecl", + "name" : "mLineBuffer", + "qualType" : "std::string", + "desugaredQualType" : "std::string" + }, { + "@type" : "AstFieldDecl", + "name" : "mStartTime", + "qualType" : "uint64_t", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstFieldDecl", + "name" : "mLastClick", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalnum_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswblank_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalpha_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswhexnumber_l", + "resultType" : "int" + }, { + "@type" : "AstRecordDecl", + "name" : "timespec", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "tv_sec", + "qualType" : "__darwin_time_t", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "name" : "tv_nsec", + "qualType" : "long", + "desugaredQualType" : "long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswcntrl_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswideogram_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswctype_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswnumber_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswdigit_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswphonogram_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswgraph_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswrune_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswlower_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspecial_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswblank", + "resultType" : "int" + }, { + "@type" : "AstRecordDecl", + "name" : "lconv", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "decimal_point", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "thousands_sep", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "grouping", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "int_curr_symbol", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "currency_symbol", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_decimal_point", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_thousands_sep", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "mon_grouping", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "positive_sign", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "negative_sign", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "int_frac_digits", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "frac_digits", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "p_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "n_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_cs_precedes", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_sep_by_space", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_p_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstFieldDecl", + "name" : "int_n_sign_posn", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswprint_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswpunct_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswhexnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspace_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswideogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswupper_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswphonogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswxdigit_l", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "digittoint_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswrune", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "towlower_l", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalnum_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspecial", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "towupper_l", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalpha_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isblank_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalnum", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iscntrl_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswalpha", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isdigit_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswcntrl", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isgraph_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswctype", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ishexnumber_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isideogram_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "tm", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "tm_sec", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_hour", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_mday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_mon", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_year", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_wday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_yday", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_isdst", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_gmtoff", + "qualType" : "long", + "desugaredQualType" : "long" + }, { + "@type" : "AstFieldDecl", + "name" : "tm_zone", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswgraph", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "islower_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswlower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isnumber_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswprint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isphonogram_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswpunct", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iswspace", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isprint_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ispunct_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "iswxdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isrune_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "towlower", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspace_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "towupper", + "resultType" : "wint_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspecial_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isupper_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isxdigit_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "tolower_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "toupper_l", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "l", + "qualType" : "locale_t", + "desugaredQualType" : "struct _xlocale *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "isascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "major", + "resultType" : "__int32_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "minor", + "resultType" : "__int32_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "makedev", + "resultType" : "dev_t" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalnum", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isalpha", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isblank", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "iscntrl", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isgraph", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "islower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isprint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ispunct", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspace", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isxdigit", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "toascii", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "tolower", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "toupper", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "digittoint", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ishexnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isideogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isnumber", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isphonogram", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isrune", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "isspecial", + "resultType" : "int" + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json new file mode 100644 index 00000000..605cc2c5 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui-knobs.json @@ -0,0 +1,284 @@ +{ + "info" : { + "source" : "include/imgui-knobs/imgui-knobs.h", + "hash" : "c27d15f1e6a3d155f490dd963d2ff856", + "url" : "https://github.com/altschuler/imgui-knobs", + "revision" : "8a43bf7b31c4166ec50f3a52c382c2cc66a91516" + }, + "decls" : [ { + "@type" : "AstEnumDecl", + "name" : "ImGuiKnobFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_NoTitle", + "qualType" : "ImGuiKnobFlags_", + "order" : 0, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_NoInput", + "qualType" : "ImGuiKnobFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_ValueTooltip", + "qualType" : "ImGuiKnobFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_DragHorizontal", + "qualType" : "ImGuiKnobFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_DragVertical", + "qualType" : "ImGuiKnobFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_Logarithmic", + "qualType" : "ImGuiKnobFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobFlags_AlwaysClamp", + "qualType" : "ImGuiKnobFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : 64 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiKnobVariant_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_Tick", + "qualType" : "ImGuiKnobVariant_", + "order" : 0, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_Dot", + "qualType" : "ImGuiKnobVariant_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_Wiper", + "qualType" : "ImGuiKnobVariant_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_WiperOnly", + "qualType" : "ImGuiKnobVariant_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_WiperDot", + "qualType" : "ImGuiKnobVariant_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_Stepped", + "qualType" : "ImGuiKnobVariant_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKnobVariant_Space", + "qualType" : "ImGuiKnobVariant_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : 64 + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImGuiKnobs", + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "color_set", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "base", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "hovered", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "active", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Knob", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_value", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "variant", + "qualType" : "ImGuiKnobVariant", + "desugaredQualType" : "int", + "defaultValue" : "ImGuiKnobVariant_Tick" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiKnobFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "steps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "10" + }, { + "@type" : "AstParmVarDecl", + "name" : "angle_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "name" : "angle_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "KnobInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_value", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%i\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "variant", + "qualType" : "ImGuiKnobVariant", + "desugaredQualType" : "int", + "defaultValue" : "ImGuiKnobVariant_Tick" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiKnobFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "steps", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "10" + }, { + "@type" : "AstParmVarDecl", + "name" : "angle_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "name" : "angle_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1" + } ] + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json new file mode 100644 index 00000000..9df9fe2b --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui.json @@ -0,0 +1,21679 @@ +{ + "info" : { + "source" : "include/imgui/imgui.h", + "hash" : "ab94ede4d87177fcb91dfc1100935445", + "url" : "https://github.com/ocornut/imgui", + "revision" : "b1bcb12a624af7509894c8e77dd47416997777fa" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "ImDrawChannel", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Forward declarations: ImDrawList, ImFontAtlas layer" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiContext", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Forward declarations: ImGui layer" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDir", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumerations" + }, { + "@type" : "AstTextComment", + "text" : " - We don't use strongly typed enums much because they add constraints (can't extend in private code, can't store typed in bit fields, extra casting on iteration)" + }, { + "@type" : "AstTextComment", + "text" : " - Tip: Use your programming IDE navigation facilities on the names in the _central column_ below to find the actual flags/enum lists!" + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio: Ctrl+Comma (\"Edit.GoToAll\") can follow symbols inside comments, whereas Ctrl+F12 (\"Edit.GoToImplementation\") cannot." + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio w/ Visual Assist installed: Alt+G (\"VAssistX.GoToImplementation\") can also follow symbols inside comments." + }, { + "@type" : "AstTextComment", + "text" : " - In VS Code, CLion, etc.: Ctrl+Click can follow symbols inside comments." + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImVec2: 2D vector used to store positions, sizes etc. [Compile-time configurable type]" + }, { + "@type" : "AstTextComment", + "text" : " - This is a frequently used type in the API. Consider using IM_VEC2_CLASS_EXTRA to create implicit cast from/to our preferred type." + }, { + "@type" : "AstTextComment", + "text" : " - Add '#define IMGUI_DEFINE_MATH_OPERATORS' before including this file (or in imconfig.h) to access courtesy maths operators for ImVec2 and ImVec4." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec4", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImVec4: 4D vector used to store clipping rectangles, colors etc. [Compile-time configurable type]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "z", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "w", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImTextureRef", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImTextureRef = higher-level identifier for a texture. Store a ImTextureID _or_ a ImTextureData*." + }, { + "@type" : "AstTextComment", + "text" : " The identifier is valid even before the texture has been uploaded to the GPU/graphics system." + }, { + "@type" : "AstTextComment", + "text" : " This is what gets passed to functions such as `ImGui::Image()`, `ImDrawList::AddImage()`." + }, { + "@type" : "AstTextComment", + "text" : " This is what gets stored in draw commands (`ImDrawCmd`) to identify a texture during rendering." + }, { + "@type" : "AstTextComment", + "text" : " - When a texture is created by user code (e.g. custom images), we directly store the low-level ImTextureID." + }, { + "@type" : "AstTextComment", + "text" : " Because of this, when displaying your own texture you are likely to ever only manage ImTextureID values on your side." + }, { + "@type" : "AstTextComment", + "text" : " - When a texture is created by the backend, we stores a ImTextureData* which becomes an indirection" + }, { + "@type" : "AstTextComment", + "text" : " to extract the ImTextureID value during rendering, after texture upload has happened." + }, { + "@type" : "AstTextComment", + "text" : " - To create a ImTextureRef from a ImTextureData you can use ImTextureData::GetTexRef()." + }, { + "@type" : "AstTextComment", + "text" : " We intentionally do not provide an ImTextureRef constructor for this: we don't expect this" + }, { + "@type" : "AstTextComment", + "text" : " to be frequently useful to the end-user, and it would be erroneously called by many legacy code." + }, { + "@type" : "AstTextComment", + "text" : " - If you want to bind the current atlas when using custom rectangle, you can use io.Fonts->TexRef." + }, { + "@type" : "AstTextComment", + "text" : " - Binding generators for languages such as C (which don't have constructors), should provide a helper, e.g." + }, { + "@type" : "AstTextComment", + "text" : " inline ImTextureRef ImTextureRefFromID(ImTextureID tex_id) { ImTextureRef tex_ref = { ._TexData = NULL, .TexID = tex_id }; return tex_ref; }" + }, { + "@type" : "AstTextComment", + "text" : " In 1.92 we changed most drawing functions using ImTextureID to use ImTextureRef." + }, { + "@type" : "AstTextComment", + "text" : " We intentionally do not provide an implicit ImTextureRef -> ImTextureID cast operator because it is technically lossy to convert ImTextureRef to ImTextureID before rendering." + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID" + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Dear ImGui end-user API functions" + }, { + "@type" : "AstTextComment", + "text" : " (Note that ImGui:: being a namespace, you can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!)" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CreateContext", + "resultType" : "ImGuiContext *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "shared_font_atlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Context creation and access" + }, { + "@type" : "AstTextComment", + "text" : " - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts." + }, { + "@type" : "AstTextComment", + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DestroyContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentContext", + "resultType" : "ImGuiContext *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCurrentContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetIO", + "resultType" : "ImGuiIO &", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Main" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPlatformIO", + "resultType" : "ImGuiPlatformIO &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyle", + "resultType" : "ImGuiStyle &" + }, { + "@type" : "AstFunctionDecl", + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Render", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrawData", + "resultType" : "ImDrawData *" + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowDemoWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Demo, Debug, Information" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowMetricsWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowDebugLogWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowIDStackToolWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowAboutWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowStyleEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ref", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowStyleSelector", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowFontSelector", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowUserGuide", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetVersion", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsDark", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Styles" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsLight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsClassic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Begin", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows" + }, { + "@type" : "AstTextComment", + "text" : " - Begin() = push window to the stack and start appending to it. End() = pop window from the stack." + }, { + "@type" : "AstTextComment", + "text" : " - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window," + }, { + "@type" : "AstTextComment", + "text" : " which clicking will set the boolean to false when clicked." + }, { + "@type" : "AstTextComment", + "text" : " - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times." + }, { + "@type" : "AstTextComment", + "text" : " Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin()." + }, { + "@type" : "AstTextComment", + "text" : " - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting" + }, { + "@type" : "AstTextComment", + "text" : " anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!" + }, { + "@type" : "AstTextComment", + "text" : " [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions" + }, { + "@type" : "AstTextComment", + "text" : " such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding" + }, { + "@type" : "AstTextComment", + "text" : " BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + }, { + "@type" : "AstTextComment", + "text" : " - Note that the bottom of window stack always contains a window called \"Debug\"." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "child_flags", + "qualType" : "ImGuiChildFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Child Windows" + }, { + "@type" : "AstTextComment", + "text" : " - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child." + }, { + "@type" : "AstTextComment", + "text" : " - Before 1.90 (November 2023), the \"ImGuiChildFlags child_flags = 0\" parameter was \"bool border = false\"." + }, { + "@type" : "AstTextComment", + "text" : " This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Borders == true." + }, { + "@type" : "AstTextComment", + "text" : " Consider updating your old code:" + }, { + "@type" : "AstTextComment", + "text" : " BeginChild(\"Name\", size, false) -> Begin(\"Name\", size, 0); or Begin(\"Name\", size, ImGuiChildFlags_None);" + }, { + "@type" : "AstTextComment", + "text" : " BeginChild(\"Name\", size, true) -> Begin(\"Name\", size, ImGuiChildFlags_Borders);" + }, { + "@type" : "AstTextComment", + "text" : " - Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)):" + }, { + "@type" : "AstTextComment", + "text" : " == 0.0f: use remaining parent window size for this axis." + }, { + "@type" : "AstTextComment", + "text" : " > 0.0f: use specified size for this axis." + }, { + "@type" : "AstTextComment", + "text" : " " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f: right/bottom-align to specified distance from available content boundaries." + }, { + "@type" : "AstTextComment", + "text" : " - Specifying ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY makes the sizing automatic based on child contents." + }, { + "@type" : "AstTextComment", + "text" : " Combining both ImGuiChildFlags_AutoResizeX _and_ ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended." + }, { + "@type" : "AstTextComment", + "text" : " - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting" + }, { + "@type" : "AstTextComment", + "text" : " anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value." + }, { + "@type" : "AstTextComment", + "text" : " [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions" + }, { + "@type" : "AstTextComment", + "text" : " such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding" + }, { + "@type" : "AstTextComment", + "text" : " BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "child_flags", + "qualType" : "ImGuiChildFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndChild", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowAppearing", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowCollapsed", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowFocused", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiFocusedFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDrawList", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDpiScale", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowViewport", + "resultType" : "ImGuiViewport *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "pivot", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Window manipulation" + }, { + "@type" : "AstTextComment", + "text" : " - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowSizeConstraints", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "custom_callback", + "qualType" : "ImGuiSizeCallback", + "desugaredQualType" : "void (*)(ImGuiSizeCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "custom_callback_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowContentSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowScroll", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowBgAlpha", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "alpha", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowViewport", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollX", + "resultType" : "float", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows Scrolling" + }, { + "@type" : "AstTextComment", + "text" : " - Any change of Scroll will be applied at the beginning of next frame in the first call to Begin()." + }, { + "@type" : "AstTextComment", + "text" : " - You may instead use SetNextWindowScroll() prior to calling Begin() to avoid this delay, as an alternative to using SetScrollX()/SetScrollY()." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollMaxX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollMaxY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollHereX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollHereY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollFromPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollFromPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.5f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushFont", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_size_base_unscaled", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (font)" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, 0.0f) // Change font and keep current size" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(NULL, 20.0f) // Keep font and change current size" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, 20.0f) // Change font and set size to 20.0f" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, style.FontSizeBase * 2.0f) // Change font and set size to be twice bigger than current size." + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, font->LegacySize) // Change font and set size to size passed to AddFontXXX() function. Same as pre-1.92 behavior." + }, { + "@type" : "AstTextComment", + "text" : " *IMPORTANT* before 1.92, fonts had a single size. They can now be dynamically be adjusted." + }, { + "@type" : "AstTextComment", + "text" : " - In 1.92 we have REMOVED the single parameter version of PushFont() because it seems like the easiest way to provide an error-proof transition." + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font) before 1.92 = PushFont(font, font->LegacySize) after 1.92 // Use default font size as passed to AddFontXXX() function." + }, { + "@type" : "AstTextComment", + "text" : " *IMPORTANT* global scale factors are applied over the provided size." + }, { + "@type" : "AstTextComment", + "text" : " - Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more." + }, { + "@type" : "AstTextComment", + "text" : " - If you want to apply a factor to the _current_ font size:" + }, { + "@type" : "AstTextComment", + "text" : " - CORRECT: PushFont(NULL, style.FontSizeBase) // use current unscaled size == does nothing" + }, { + "@type" : "AstTextComment", + "text" : " - CORRECT: PushFont(NULL, style.FontSizeBase * 2.0f) // use current unscaled size x2 == make text twice bigger" + }, { + "@type" : "AstTextComment", + "text" : " - INCORRECT: PushFont(NULL, GetFontSize()) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!" + }, { + "@type" : "AstTextComment", + "text" : " - INCORRECT: PushFont(NULL, GetFontSize() * 2.0f) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopFont", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFont", + "resultType" : "ImFont *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontSize", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontBaked", + "resultType" : "ImFontBaked *" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (shared)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVarX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVarY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushItemFlag", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "option", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopItemFlag", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (current window)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopItemWidth", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcItemWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushTextWrapPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "wrap_local_pos_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopTextWrapPos", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontTexUvWhitePixel", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Style read access" + }, { + "@type" : "AstTextComment", + "text" : " - Use the ShowStyleEditor() function to interactively see/edit the colors." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "alpha_mul", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "alpha_mul", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyleColorVec4", + "resultType" : "const ImVec4 &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorScreenPos", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Layout cursor positioning" + }, { + "@type" : "AstTextComment", + "text" : " - By \"cursor\" we mean the current output position." + }, { + "@type" : "AstTextComment", + "text" : " - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down." + }, { + "@type" : "AstTextComment", + "text" : " - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget." + }, { + "@type" : "AstTextComment", + "text" : " - YOU CAN DO 99% OF WHAT YOU NEED WITH ONLY GetCursorScreenPos() and GetContentRegionAvail()." + }, { + "@type" : "AstTextComment", + "text" : " - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:" + }, { + "@type" : "AstTextComment", + "text" : " - Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward." + }, { + "@type" : "AstTextComment", + "text" : " - Window-local coordinates: SameLine(offset), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), PushTextWrapPos()" + }, { + "@type" : "AstTextComment", + "text" : " - Window-local coordinates: GetContentRegionMax(), GetWindowContentRegionMin(), GetWindowContentRegionMax() --> all obsoleted. YOU DON'T NEED THEM." + }, { + "@type" : "AstTextComment", + "text" : " - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates. Try not to use it." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorScreenPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetContentRegionAvail", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPosX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPosY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorStartPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "Separator", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Other layout functions" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SameLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "offset_from_start_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "spacing", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "NewLine", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Spacing", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Dummy", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Indent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Unindent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "AlignTextToFramePadding", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTextLineHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTextLineHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ID stack/scopes" + }, { + "@type" : "AstTextComment", + "text" : " Read the FAQ (docs/FAQ.md or http://dearimgui.com/faq) for more details about how ID are handled in dear imgui." + }, { + "@type" : "AstTextComment", + "text" : " - Those questions are answered and impacted by understanding of the ID stack system:" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: Why is my widget not reacting when I click on it?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have widgets with an empty label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have multiple widgets with the same label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - Short version: ID are hashes of the entire ID stack. If you are creating widgets in a loop you most likely" + }, { + "@type" : "AstTextComment", + "text" : " want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them." + }, { + "@type" : "AstTextComment", + "text" : " - You can also use the \"Label##foobar\" syntax within widget label to distinguish them from each others." + }, { + "@type" : "AstTextComment", + "text" : " - In this header file we use the \"label\"/\"name\" terminology to denote a string that will be displayed + used as an ID," + }, { + "@type" : "AstTextComment", + "text" : " whereas \"str_id\" denote a string that is only used as an ID and not normally displayed." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextUnformatted", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Text" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Text", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextColored", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextColoredV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextDisabledV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextWrapped", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextWrappedV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LabelText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LabelTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BulletText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BulletTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SeparatorText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Button", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Main" + }, { + "@type" : "AstTextComment", + "text" : " - Most widgets return true when the value has been changed or when pressed/selected" + }, { + "@type" : "AstTextComment", + "text" : " - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SmallButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InvisibleButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiButtonFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ArrowButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "dir", + "qualType" : "ImGuiDir", + "desugaredQualType" : "ImGuiDir" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Checkbox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags_value", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "active", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_button", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ProgressBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fraction", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_arg", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(-FLT_MIN, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Bullet", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TextLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextLinkOpenURL", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "url", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Image", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Images" + }, { + "@type" : "AstTextComment", + "text" : " - Read about ImTextureID/ImTextureRef here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples" + }, { + "@type" : "AstTextComment", + "text" : " - 'uv0' and 'uv1' are texture coordinates. Read about them from the same link above." + }, { + "@type" : "AstTextComment", + "text" : " - Image() pads adds style.ImageBorderSize on each side, ImageButton() adds style.FramePadding on each side." + }, { + "@type" : "AstTextComment", + "text" : " - ImageButton() draws a background based on regular Button() color + optionally an inner background if specified." + }, { + "@type" : "AstTextComment", + "text" : " - An obsolete version of Image(), before 1.91.9 (March 2025), had a 'tint_col' parameter which is now supported by the ImageWithBg() function." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImageWithBg", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "name" : "bg_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(0, 0, 0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(1, 1, 1, 1)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImageButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "name" : "bg_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(0, 0, 0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ImVec4(1, 1, 1, 1)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginCombo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "preview_value", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiComboFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Combo Box (Dropdown)" + }, { + "@type" : "AstTextComment", + "text" : " - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items." + }, { + "@type" : "AstTextComment", + "text" : " - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. This is analogous to how ListBox are created." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndCombo", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_separated_by_zeros", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "getter", + "qualType" : "const char *(*)(void *, int)", + "desugaredQualType" : "const char *(*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Drag Sliders" + }, { + "@type" : "AstTextComment", + "text" : " - Ctrl+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "text" : " - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every function, note that a 'float v[X]' function argument is the same as 'float* v'," + }, { + "@type" : "AstTextComment", + "text" : " the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. " + }, { + "@type" : "AstTextComment", + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "text" : ".x" + }, { + "@type" : "AstTextComment", + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "text" : " - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For keyboard/gamepad navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision)." + }, { + "@type" : "AstTextComment", + "text" : " - Use v_min " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " v_max to clamp edits to given limits. Note that Ctrl+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used." + }, { + "@type" : "AstTextComment", + "text" : " - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum." + }, { + "@type" : "AstTextComment", + "text" : " - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them." + }, { + "@type" : "AstTextComment", + "text" : " - Legacy: Pre-1.78 there are DragXXX() function signatures that take a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloatRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_min", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_max", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragIntRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_min", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_max", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Regular Sliders" + }, { + "@type" : "AstTextComment", + "text" : " - Ctrl+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "text" : " - Legacy: Pre-1.78 there are SliderXXX() function signatures that take a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderAngle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_rad", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_degrees_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-360.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_degrees_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "+360.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.0f deg\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%d\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputText", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Input with Keyboard" + }, { + "@type" : "AstTextComment", + "text" : " - If you want to use InputText() with std::string or any custom dynamic string type, use the wrapper in misc/cpp/imgui_stdlib.h/.cpp!" + }, { + "@type" : "AstTextComment", + "text" : " - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputTextMultiline", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputTextWithHint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "hint", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.3f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "100" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputDouble", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : "0.0" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : "0.0" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"%.6f\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorEdit3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.)" + }, { + "@type" : "AstTextComment", + "text" : " - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible." + }, { + "@type" : "AstTextComment", + "text" : " - You can pass the address of a first float element out of a contiguous structure, e.g. " + }, { + "@type" : "AstTextComment", + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "text" : ".x" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorEdit4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorPicker3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorPicker4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "ref_col", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "desc_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColorEditOptions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Trees" + }, { + "@type" : "AstTextComment", + "text" : " - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePop", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTreeNodeToLabelSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_visible", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemOpen", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "is_open", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemStorageID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeGetOpen", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Selectables" + }, { + "@type" : "AstTextComment", + "text" : " - A selectable highlights when hovered, and can display another color when selected." + }, { + "@type" : "AstTextComment", + "text" : " - Neighbors selectable extend their highlight bounds in order to leave no gap between them. This is so a series of selected Selectable appear contiguous." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMultiSelect", + "resultType" : "ImGuiMultiSelectIO *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiMultiSelectFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "selection_size", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Multi-selection system for Selectable(), Checkbox(), TreeNode() functions [BETA]" + }, { + "@type" : "AstTextComment", + "text" : " - This enables standard multi-selection/range-selection idioms (Ctrl+Mouse/Keyboard, Shift+Mouse/Keyboard, etc.) in a way that also allow a clipper to be used." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiSelectionUserData is often used to store your item index within the current view (but may store something else)." + }, { + "@type" : "AstTextComment", + "text" : " - Read comments near ImGuiMultiSelectIO for instructions/details and see 'Demo->Widgets->Selection State " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Multi-Select' for demo." + }, { + "@type" : "AstTextComment", + "text" : " - TreeNode() is technically supported but... using this correctly is more complicated. You need some sort of linear/random access to your tree," + }, { + "@type" : "AstTextComment", + "text" : " which is suited to advanced trees setups already implementing filters and clipper. We will work simplifying the current demo." + }, { + "@type" : "AstTextComment", + "text" : " - 'selection_size' and 'items_count' parameters are optional and used by a few features. If they are costly for you to compute, you may avoid them." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMultiSelect", + "resultType" : "ImGuiMultiSelectIO *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemSelectionUserData", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "selection_user_data", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemToggledSelection", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: List Boxes" + }, { + "@type" : "AstTextComment", + "text" : " - This is essentially a thin wrapper to using BeginChild/EndChild with the ImGuiChildFlags_FrameStyle flag for stylistic changes + displaying a label." + }, { + "@type" : "AstTextComment", + "text" : " - If you don't need a label you can probably simply use BeginChild() with the ImGuiChildFlags_FrameStyle flag for the same result." + }, { + "@type" : "AstTextComment", + "text" : " - You can submit contents and manage your selection state however you want it, by creating e.g. Selectable() or any other items." + }, { + "@type" : "AstTextComment", + "text" : " - The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analogous to how Combos are created." + }, { + "@type" : "AstTextComment", + "text" : " - Choose frame width: size.x > 0.0f: custom / size.x " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth" + }, { + "@type" : "AstTextComment", + "text" : " - Choose frame height: size.y > 0.0f: custom / size.y " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 items" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndListBox", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "getter", + "qualType" : "const char *(*)(void *, int)", + "desugaredQualType" : "const char *(*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "sizeof(float)" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Data Plotting" + }, { + "@type" : "AstTextComment", + "text" : " - Consider using ImPlot (https://github.com/epezent/implot) which is much better!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "sizeof(float)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "FLT_MAX" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "= ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Value() Helpers." + }, { + "@type" : "AstTextComment", + "text" : " - Those are merely shortcut to calling Text() with a format string. Output single value in \"name: value\" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "float_format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMenuBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Menus" + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar." + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it." + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it." + }, { + "@type" : "AstTextComment", + "text" : " - Not that MenuItem() keyboardshortcuts are displayed as a convenience but _not processed_ by Dear ImGui at the moment." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMainMenuBar", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMainMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMenu", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTooltip", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tooltips" + }, { + "@type" : "AstTextComment", + "text" : " - Tooltips are windows following the mouse. They do not take focus away." + }, { + "@type" : "AstTextComment", + "text" : " - A tooltip window can contain items of any types." + }, { + "@type" : "AstTextComment", + "text" : " - SetTooltip() is more or less a shortcut for the 'if (BeginTooltip()) { Text(...); EndTooltip(); }' idiom (with a subtlety that it discard any previously submitted tooltip)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTooltip", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTooltipV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginItemTooltip", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tooltips: helpers for showing a tooltip when hovering an item" + }, { + "@type" : "AstTextComment", + "text" : " - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip) " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " BeginTooltip())' idiom." + }, { + "@type" : "AstTextComment", + "text" : " - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { SetTooltip(...); }' idiom." + }, { + "@type" : "AstTextComment", + "text" : " - Where 'ImGuiHoveredFlags_ForTooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort'." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemTooltipV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopup", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups, Modals" + }, { + "@type" : "AstTextComment", + "text" : " - They block normal mouse hovering detection (and therefore most mouse interactions) behind them." + }, { + "@type" : "AstTextComment", + "text" : " - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE." + }, { + "@type" : "AstTextComment", + "text" : " - Their visibility state (~bool) is held internally instead of being held by the programmer as we are used to with regular Begin*() calls." + }, { + "@type" : "AstTextComment", + "text" : " - The 3 properties above are related: we need to retain popup visibility state in the library because popups may be closed as any time." + }, { + "@type" : "AstTextComment", + "text" : " - You can bypass the hovering restriction by using ImGuiHoveredFlags_AllowWhenBlockedByPopup when calling IsItemHovered() or IsWindowHovered()." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Popup identifiers are relative to the current ID stack, so OpenPopup and BeginPopup generally needs to be at the same level of the stack." + }, { + "@type" : "AstTextComment", + "text" : " This is sometimes leading to confusing mistakes. May rework this in the future." + }, { + "@type" : "AstTextComment", + "text" : " - BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards if returned true. ImGuiWindowFlags are forwarded to the window." + }, { + "@type" : "AstTextComment", + "text" : " - BeginPopupModal(): block every interaction behind the window, cannot be closed by user, add a dimming background, has a title bar." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupModal", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: open/close functions" + }, { + "@type" : "AstTextComment", + "text" : " - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options." + }, { + "@type" : "AstTextComment", + "text" : " - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE." + }, { + "@type" : "AstTextComment", + "text" : " - CloseCurrentPopup(): use inside the BeginPopup()/EndPopup() scope to close manually." + }, { + "@type" : "AstTextComment", + "text" : " - CloseCurrentPopup() is called by default by Selectable()/MenuItem() when activated (FIXME: need some options)." + }, { + "@type" : "AstTextComment", + "text" : " - Use ImGuiPopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's already one at the same level. This is equivalent to e.g. testing for !IsAnyPopupOpen() prior to OpenPopup()." + }, { + "@type" : "AstTextComment", + "text" : " - Use IsWindowAppearing() after BeginPopup() to tell if a window just opened." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopupOnItemClick", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CloseCurrentPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: Open+Begin popup combined functions helpers to create context menus." + }, { + "@type" : "AstTextComment", + "text" : " - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Notice that BeginPopupContextXXX takes ImGuiPopupFlags just like OpenPopup() and unlike BeginPopup(). For full consistency, we may add ImGuiWindowFlags to the BeginPopupContextXXX functions in the future." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: If you ever used the left mouse button with BeginPopupContextXXX() helpers before 1.92.6:" + }, { + "@type" : "AstTextComment", + "text" : " - Before this version, OpenPopupOnItemClick(), BeginPopupContextItem(), BeginPopupContextWindow(), BeginPopupContextVoid() had 'a ImGuiPopupFlags popup_flags = 1' default value in their function signature." + }, { + "@type" : "AstTextComment", + "text" : " - Before: Explicitly passing a literal 0 meant ImGuiPopupFlags_MouseButtonLeft. The default = 1 meant ImGuiPopupFlags_MouseButtonRight." + }, { + "@type" : "AstTextComment", + "text" : " - After: The default = 0 means ImGuiPopupFlags_MouseButtonRight. Explicitly passing a literal 1 also means ImGuiPopupFlags_MouseButtonRight (if legacy behavior are enabled) or will assert (if legacy behavior are disabled)." + }, { + "@type" : "AstTextComment", + "text" : " - TL;DR: if you don't want to use right mouse button for popups, always specify it explicitly using a named ImGuiPopupFlags_MouseButtonXXXX value." + }, { + "@type" : "AstTextComment", + "text" : " - Read \"API BREAKING CHANGES\" 2026/01/07 (1.92.6) entry in imgui.cpp or GitHub topic #9157 for all details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextWindow", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextVoid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsPopupOpen", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: query functions" + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId: return true if any popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId + ImGuiPopupFlags_AnyPopupLevel: return true if any popup is open." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "columns", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTableFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "outer_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0.0f, 0.0f)" + }, { + "@type" : "AstParmVarDecl", + "name" : "inner_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables" + }, { + "@type" : "AstTextComment", + "text" : " - Full-featured replacement for old Columns API." + }, { + "@type" : "AstTextComment", + "text" : " - See Demo->Tables for demo code. See top of imgui_tables.cpp for general commentary." + }, { + "@type" : "AstTextComment", + "text" : " - See ImGuiTableFlags_ and ImGuiTableColumnFlags_ enums for a description of available flags." + }, { + "@type" : "AstTextComment", + "text" : " The typical call flow is:" + }, { + "@type" : "AstTextComment", + "text" : " - 1. Call BeginTable(), early out if returning false." + }, { + "@type" : "AstTextComment", + "text" : " - 2. Optionally call TableSetupColumn() to submit column name/flags/defaults." + }, { + "@type" : "AstTextComment", + "text" : " - 3. Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows." + }, { + "@type" : "AstTextComment", + "text" : " - 4. Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data." + }, { + "@type" : "AstTextComment", + "text" : " - 5. Populate contents:" + }, { + "@type" : "AstTextComment", + "text" : " - In most situations you can use TableNextRow() + TableSetColumnIndex(N) to start appending into a column." + }, { + "@type" : "AstTextComment", + "text" : " - If you are using tables as a sort of grid, where every column is holding the same type of contents," + }, { + "@type" : "AstTextComment", + "text" : " you may prefer using TableNextColumn() instead of TableNextRow() + TableSetColumnIndex()." + }, { + "@type" : "AstTextComment", + "text" : " TableNextColumn() will automatically wrap-around into the next row if needed." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Comparatively to the old Columns() API, we need to call TableNextColumn() for the first column!" + }, { + "@type" : "AstTextComment", + "text" : " - Summary of possible call flow:" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> TableSetColumnIndex(0) -> Text(\"Hello 0\") -> TableSetColumnIndex(1) -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK: TableNextColumn() automatically gets to next row!" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> Text(\"Hello 0\") // Not OK! Missing TableSetColumnIndex() or TableNextColumn()! Text will not appear!" + }, { + "@type" : "AstTextComment", + "text" : " - 5. Call EndTable()" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTable", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableNextRow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "row_flags", + "qualType" : "ImGuiTableRowFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "min_row_height", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableNextColumn", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetColumnIndex", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetupColumn", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTableColumnFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "init_width_or_weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables: Headers " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Columns declaration" + }, { + "@type" : "AstTextComment", + "text" : " - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc." + }, { + "@type" : "AstTextComment", + "text" : " - Use TableHeadersRow() to create a header row and automatically submit a TableHeader() for each column." + }, { + "@type" : "AstTextComment", + "text" : " Headers are required to perform: reordering, sorting, and opening the context menu." + }, { + "@type" : "AstTextComment", + "text" : " The context menu can also be made available in columns body using ImGuiTableFlags_ContextMenuInBody." + }, { + "@type" : "AstTextComment", + "text" : " - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in" + }, { + "@type" : "AstTextComment", + "text" : " some advanced use cases (e.g. adding custom widgets in header row)." + }, { + "@type" : "AstTextComment", + "text" : " - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled. When freezing columns you would usually also use ImGuiTableColumnFlags_NoHide on them." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetupScrollFreeze", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "cols", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rows", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableHeader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableHeadersRow", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableAngledHeadersRow", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetSortSpecs", + "resultType" : "ImGuiTableSortSpecs *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables: Sorting " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Miscellaneous functions" + }, { + "@type" : "AstTextComment", + "text" : " - Sorting: call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting." + }, { + "@type" : "AstTextComment", + "text" : " When 'sort_specs->SpecsDirty == true' you should sort your data. It will be true when sorting specs have" + }, { + "@type" : "AstTextComment", + "text" : " changed since last call, or the first time. Make sure to set 'SpecsDirty = false' after sorting," + }, { + "@type" : "AstTextComment", + "text" : " else you may wastefully sort your data every frame!" + }, { + "@type" : "AstTextComment", + "text" : " - Functions args 'int column_n' treat the default value of -1 as the same as passing the current column index." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetRowIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnFlags", + "resultType" : "ImGuiTableColumnFlags", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetColumnEnabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetHoveredColumn", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetBgColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "target", + "qualType" : "ImGuiTableBgTarget", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "color", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Columns", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "1" + }, { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "borders", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Legacy Columns API (prefer using Tables!)" + }, { + "@type" : "AstTextComment", + "text" : " - You can also use SameLine(pos_x) to mimic simplified columns." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "NextColumn", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnWidth", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColumnWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnOffset", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColumnOffset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "offset_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnsCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTabBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabBarFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tab Bars, Tabs" + }, { + "@type" : "AstTextComment", + "text" : " - Note: Tabs are automatically created by the docking system (when in 'docking' branch). Use this to create tab bars/tabs yourself." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTabBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTabItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTabItem", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TabItemButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTabItemClosed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tab_or_docked_window_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DockSpace", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dockspace_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Docking" + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Docking for details." + }, { + "@type" : "AstTextComment", + "text" : " - Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable." + }, { + "@type" : "AstTextComment", + "text" : " - You can use many Docking facilities without calling any API." + }, { + "@type" : "AstTextComment", + "text" : " - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking." + }, { + "@type" : "AstTextComment", + "text" : " - Drag from window menu button (upper-left button) to undock an entire node (all windows)." + }, { + "@type" : "AstTextComment", + "text" : " - When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to enable docking." + }, { + "@type" : "AstTextComment", + "text" : " - DockSpaceOverViewport:" + }, { + "@type" : "AstTextComment", + "text" : " - This is a helper to create an invisible window covering a viewport, then submit a DockSpace() into it." + }, { + "@type" : "AstTextComment", + "text" : " - Most applications can simply call DockSpaceOverViewport() once to allow docking windows into e.g. the edge of your screen." + }, { + "@type" : "AstTextComment", + "text" : " e.g. ImGui::NewFrame(); ImGui::DockSpaceOverViewport(); // Create a dockspace in main viewport." + }, { + "@type" : "AstTextComment", + "text" : " or: ImGui::NewFrame(); ImGui::DockSpaceOverViewport(0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode); // Create a dockspace in main viewport, central node is transparent." + }, { + "@type" : "AstTextComment", + "text" : " - Dockspaces:" + }, { + "@type" : "AstTextComment", + "text" : " - A dockspace is an explicit dock node within an existing window." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Dockspaces need to be submitted _before_ any window they can host. Submit them early in your frame!" + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Dockspaces need to be kept alive if hidden, otherwise windows docked into it will be undocked." + }, { + "@type" : "AstTextComment", + "text" : " If you have e.g. multiple tabs with a dockspace inside each tab: submit the non-visible dockspaces with ImGuiDockNodeFlags_KeepAliveOnly." + }, { + "@type" : "AstTextComment", + "text" : " - See 'Demo->Examples->Dockspace' or 'Demo->Examples->Documents' for more detailed demos." + }, { + "@type" : "AstTextComment", + "text" : " - Programmatic docking:" + }, { + "@type" : "AstTextComment", + "text" : " - There is no public API yet other than the very limited SetNextWindowDockID() function. Sorry for that!" + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Docking for examples of how to use current internal API." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DockSpaceOverViewport", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dockspace_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "const ImGuiViewport *", + "desugaredQualType" : "const ImGuiViewport *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowDockID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dock_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowClass", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDockID", + "resultType" : "ImGuiID" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowDocked", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToTTY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Logging/Capture" + }, { + "@type" : "AstTextComment", + "text" : " - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + }, { + "@type" : "AstParmVarDecl", + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToClipboard", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogFinish", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogButtons", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDragDropSource", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Drag and Drop" + }, { + "@type" : "AstTextComment", + "text" : " - On source items, call BeginDragDropSource(), if it returns true also call SetDragDropPayload() + EndDragDropSource()." + }, { + "@type" : "AstTextComment", + "text" : " - On target candidates, call BeginDragDropTarget(), if it returns true also call AcceptDragDropPayload() + EndDragDropTarget()." + }, { + "@type" : "AstTextComment", + "text" : " - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback \"...\" tooltip, see #1725)" + }, { + "@type" : "AstTextComment", + "text" : " - An item can be both drag source and drop target." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetDragDropPayload", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDragDropSource", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDragDropTarget", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "AcceptDragDropPayload", + "resultType" : "const ImGuiPayload *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDragDropTarget", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDragDropPayload", + "resultType" : "const ImGuiPayload *" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "disabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Disabling [BETA API]" + }, { + "@type" : "AstTextComment", + "text" : " - Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors)" + }, { + "@type" : "AstTextComment", + "text" : " - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled)" + }, { + "@type" : "AstTextComment", + "text" : " - Tooltips windows are automatically opted out of disabling. Note that IsItemHovered() by default returns false on disabled items, unless using ImGuiHoveredFlags_AllowWhenDisabled." + }, { + "@type" : "AstTextComment", + "text" : " - BeginDisabled(false)/EndDisabled() essentially does nothing but is provided to facilitate use of boolean expressions (as a micro-optimization: if you have tens of thousands of BeginDisabled(false)/EndDisabled() pairs, you might want to reformulate your code to avoid making those calls)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDisabled", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "intersect_with_current_clip_rect", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Clipping" + }, { + "@type" : "AstTextComment", + "text" : " - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemDefaultFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Focus, Activation" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetKeyboardFocusHere", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNavCursorVisible", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "visible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Keyboard/Gamepad Navigation" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemAllowOverlap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Overlapping mode" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Item/Widgets Utilities and Query Functions" + }, { + "@type" : "AstTextComment", + "text" : " - Most of the functions are referring to the previous Item that has been submitted." + }, { + "@type" : "AstTextComment", + "text" : " - See Demo Window under \"Widgets->Querying Status\" for an interactive visualization of most of those functions." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "mouse_button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemVisible", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemEdited", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemActivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemDeactivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemDeactivatedAfterEdit", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemToggledOpen", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemHovered", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemID", + "resultType" : "ImGuiID" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemFlags", + "resultType" : "ImGuiItemFlags" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMainViewport", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Viewports" + }, { + "@type" : "AstTextComment", + "text" : " - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows." + }, { + "@type" : "AstTextComment", + "text" : " - In 'docking' branch with multi-viewport enabled, we extend this concept to have multiple active viewports." + }, { + "@type" : "AstTextComment", + "text" : " - In the future we will extend this concept further to also represent Platform Monitor and support a \"no main platform window\" operation mode." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBackgroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Background/Foreground Draw Lists" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetForegroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Miscellaneous Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTime", + "resultType" : "double" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrawListSharedData", + "resultType" : "ImDrawListSharedData *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyleColorName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetStateStorage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage", + "qualType" : "ImGuiStorage *", + "desugaredQualType" : "ImGuiStorage *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStateStorage", + "resultType" : "ImGuiStorage *" + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcTextSize", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "hide_text_after_double_hash", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Text Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertU32ToFloat4", + "resultType" : "ImVec4", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Color Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertFloat4ToU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertRGBtoHSV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "g", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_h", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_s", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_v", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertHSVtoRGB", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_r", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_g", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_b", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Raw Keyboard/Mouse/Gamepad Access" + }, { + "@type" : "AstTextComment", + "text" : " - Consider using the Shortcut() function instead of IsKeyPressed()/IsKeyChordPressed()! Shortcut() is easier to use and better featured (can do focus routing check)." + }, { + "@type" : "AstTextComment", + "text" : " - the ImGuiKey enum contains all possible keyboard, mouse and gamepad inputs (e.g. ImGuiKey_A, ImGuiKey_MouseLeft, ImGuiKey_GamepadDpadUp...)." + }, { + "@type" : "AstTextComment", + "text" : " - (legacy: before v1.87 (2022-02), we used ImGuiKey " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 512 values to carry native/user indices as defined by each backends. This was obsoleted in 1.87 (2022-02) and completely removed in 1.91.5 (2024-11). See https://github.com/ocornut/imgui/issues/4921)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyPressed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyChordPressed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetKeyPressedAmount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat_delay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "rate", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetKeyName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextFrameWantCaptureKeyboard", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "want_capture_keyboard", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Shortcut", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Shortcut Testing " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Routing" + }, { + "@type" : "AstTextComment", + "text" : " - Typical use is e.g.: 'if (ImGui::Shortcut(ImGuiMod_Ctrl | ImGuiKey_S)) { ... }'." + }, { + "@type" : "AstTextComment", + "text" : " - Flags: Default route use ImGuiInputFlags_RouteFocused, but see ImGuiInputFlags_RouteGlobal and other options in ImGuiInputFlags_!" + }, { + "@type" : "AstTextComment", + "text" : " - Flags: Use ImGuiInputFlags_Repeat to support repeat." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiKeyChord = a ImGuiKey + optional ImGuiMod_Alt/ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Super." + }, { + "@type" : "AstTextComment", + "text" : " ImGuiKey_C // Accepted by functions taking ImGuiKey or ImGuiKeyChord arguments" + }, { + "@type" : "AstTextComment", + "text" : " ImGuiMod_Ctrl | ImGuiKey_C // Accepted by functions taking ImGuiKeyChord arguments" + }, { + "@type" : "AstTextComment", + "text" : " only ImGuiMod_XXX values are legal to combine with an ImGuiKey. You CANNOT combine two ImGuiKey values." + }, { + "@type" : "AstTextComment", + "text" : " - The general idea is that several callers may register interest in a shortcut, and only one owner gets it." + }, { + "@type" : "AstTextComment", + "text" : " Parent -> call Shortcut(Ctrl+S) // When Parent is focused, Parent gets the shortcut." + }, { + "@type" : "AstTextComment", + "text" : " Child1 -> call Shortcut(Ctrl+S) // When Child1 is focused, Child1 gets the shortcut (Child1 overrides Parent shortcuts)" + }, { + "@type" : "AstTextComment", + "text" : " Child2 -> no call // When Child2 is focused, Parent gets the shortcut." + }, { + "@type" : "AstTextComment", + "text" : " The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical." + }, { + "@type" : "AstTextComment", + "text" : " This is an important property as it facilitate working with foreign code or larger codebase." + }, { + "@type" : "AstTextComment", + "text" : " - To understand the difference:" + }, { + "@type" : "AstTextComment", + "text" : " - IsKeyChordPressed() compares mods and call IsKeyPressed()" + }, { + "@type" : "AstTextComment", + "text" : " -> the function has no side-effect." + }, { + "@type" : "AstTextComment", + "text" : " - Shortcut() submits a route, routes are resolved, if it currently can be routed it calls IsKeyChordPressed()" + }, { + "@type" : "AstTextComment", + "text" : " -> the function has (desirable) side-effects as it can prevents another call from getting the route." + }, { + "@type" : "AstTextComment", + "text" : " - Visualize registered routes in 'Metrics/Debugger->Inputs'." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemShortcut", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemKeyOwner", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Key/Input Ownership [BETA]" + }, { + "@type" : "AstTextComment", + "text" : " - One common use case would be to allow your items to disable standard inputs behaviors such" + }, { + "@type" : "AstTextComment", + "text" : " as Tab or Alt key handling, Mouse Wheel scrolling, etc." + }, { + "@type" : "AstTextComment", + "text" : " e.g. Button(...); SetItemKeyOwner(ImGuiKey_MouseWheelY); to make hovering/activating a button disable wheel for scrolling." + }, { + "@type" : "AstTextComment", + "text" : " - Reminder ImGuiKey enum include access to mouse buttons and gamepad, so key ownership can apply to them." + }, { + "@type" : "AstTextComment", + "text" : " - Many related features are still in imgui_internal.h. For instance, most IsKeyXXX()/IsMouseXXX() functions have an owner-id-aware version." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Mouse" + }, { + "@type" : "AstTextComment", + "text" : " - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right." + }, { + "@type" : "AstTextComment", + "text" : " - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle." + }, { + "@type" : "AstTextComment", + "text" : " - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold')" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDoubleClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseReleasedWithDelay", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "delay", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseClickedCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseHoveringRect", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "r_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "true" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMousePosValid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "mouse_pos", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyMouseDown", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMousePos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMousePosOnOpeningCurrentPopup", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDragging", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseDragDelta", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ResetMouseDragDelta", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseCursor", + "resultType" : "ImGuiMouseCursor" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetMouseCursor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "cursor_type", + "qualType" : "ImGuiMouseCursor", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextFrameWantCaptureMouse", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "want_capture_mouse", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetClipboardText", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Clipboard Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetClipboardText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LoadIniSettingsFromDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Settings/.Ini Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - The disk functions are automatically called if io.IniFilename != NULL (default is \"imgui.ini\")." + }, { + "@type" : "AstTextComment", + "text" : " - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually." + }, { + "@type" : "AstTextComment", + "text" : " - Important: default value \"imgui.ini\" is relative to current working dir! Most apps will want to lock this to an absolute path (e.g. same path as executables)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LoadIniSettingsFromMemory", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "ini_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SaveIniSettingsToDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SaveIniSettingsToMemory", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_ini_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugTextEncoding", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Debug Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - Your main debugging friend is the ShowMetricsWindow() function." + }, { + "@type" : "AstTextComment", + "text" : " - Interactive tools are all accessible from the 'Dear ImGui Demo->Tools' menu." + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Debug-Tools for a description of all available debug tools." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugFlashStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugStartItemPicker", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugCheckVersionAndDataLayout", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "version_str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_io", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_style", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_vec2", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_vec4", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_drawvert", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_drawidx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugLog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugLogV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "alloc_func", + "qualType" : "ImGuiMemAllocFunc", + "desugaredQualType" : "void *(*)(size_t, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "free_func", + "qualType" : "ImGuiMemFreeFunc", + "desugaredQualType" : "void (*)(void *, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Memory Allocators" + }, { + "@type" : "AstTextComment", + "text" : " - Those functions are not reliant on the current context." + }, { + "@type" : "AstTextComment", + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for more details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_alloc_func", + "qualType" : "ImGuiMemAllocFunc *", + "desugaredQualType" : "ImGuiMemAllocFunc *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_free_func", + "qualType" : "ImGuiMemFreeFunc *", + "desugaredQualType" : "ImGuiMemFreeFunc *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_user_data", + "qualType" : "void **", + "desugaredQualType" : "void **" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MemAlloc", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MemFree", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "UpdatePlatformWindows", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " (Optional) Platform/OS interface for multi-viewport support" + }, { + "@type" : "AstTextComment", + "text" : " Read comments around the ImGuiPlatformIO structure for more details." + }, { + "@type" : "AstTextComment", + "text" : " Note: You may use GetWindowViewport() to get the current viewport of the current window." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RenderPlatformWindowsDefault", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "platform_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "renderer_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DestroyPlatformWindows", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "FindViewportByID", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindViewportByPlatformHandle", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "platform_handle", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiWindowFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::Begin()" + }, { + "@type" : "AstTextComment", + "text" : " (Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_None", + "qualType" : "ImGuiWindowFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoTitleBar", + "docComment" : "Disable title-bar", + "qualType" : "ImGuiWindowFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoResize", + "docComment" : "Disable user resizing with the lower-right grip", + "qualType" : "ImGuiWindowFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoMove", + "docComment" : "Disable user moving the window", + "qualType" : "ImGuiWindowFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoScrollbar", + "docComment" : "Disable scrollbars (window can still scroll with mouse or programmatically)", + "qualType" : "ImGuiWindowFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoScrollWithMouse", + "docComment" : "Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.", + "qualType" : "ImGuiWindowFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoCollapse", + "docComment" : "Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).", + "qualType" : "ImGuiWindowFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_AlwaysAutoResize", + "docComment" : "Resize every window to its content every frame", + "qualType" : "ImGuiWindowFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoBackground", + "docComment" : "Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f).", + "qualType" : "ImGuiWindowFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoSavedSettings", + "docComment" : "Never load/save settings in .ini file", + "qualType" : "ImGuiWindowFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoMouseInputs", + "docComment" : "Disable catching mouse, hovering test with pass through.", + "qualType" : "ImGuiWindowFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_MenuBar", + "docComment" : "Has a menu-bar", + "qualType" : "ImGuiWindowFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_HorizontalScrollbar", + "docComment" : "Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the \"Horizontal Scrolling\" section.", + "qualType" : "ImGuiWindowFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoFocusOnAppearing", + "docComment" : "Disable taking focus when transitioning from hidden to visible state", + "qualType" : "ImGuiWindowFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoBringToFrontOnFocus", + "docComment" : "Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus)", + "qualType" : "ImGuiWindowFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_AlwaysVerticalScrollbar", + "docComment" : "Always show vertical scrollbar (even if ContentSize.y < Size.y)", + "qualType" : "ImGuiWindowFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_AlwaysHorizontalScrollbar", + "docComment" : "Always show horizontal scrollbar (even if ContentSize.x < Size.x)", + "qualType" : "ImGuiWindowFlags_", + "order" : 16, + "value" : "1<< 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoNavInputs", + "docComment" : "No keyboard/gamepad navigation within the window", + "qualType" : "ImGuiWindowFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoNavFocus", + "docComment" : "No focusing toward this window with keyboard/gamepad navigation (e.g. skipped by Ctrl+Tab)", + "qualType" : "ImGuiWindowFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_UnsavedDocument", + "docComment" : "Display a dot next to the title. When used in a tab/docking context, tab is selected when clicking the X + closure is not assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.", + "qualType" : "ImGuiWindowFlags_", + "order" : 19, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoDocking", + "docComment" : "Disable docking of this window", + "qualType" : "ImGuiWindowFlags_", + "order" : 20, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoNav", + "qualType" : "ImGuiWindowFlags_", + "order" : 21, + "value" : "ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus", + "evaluatedValue" : 196608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoDecoration", + "qualType" : "ImGuiWindowFlags_", + "order" : 22, + "value" : "ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse", + "evaluatedValue" : 43 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoInputs", + "qualType" : "ImGuiWindowFlags_", + "order" : 23, + "value" : "ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus", + "evaluatedValue" : 197120 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_DockNodeHost", + "docComment" : "Don't use! For internal use by Begin()/NewFrame()", + "qualType" : "ImGuiWindowFlags_", + "order" : 24, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_ChildWindow", + "docComment" : "Don't use! For internal use by BeginChild()", + "qualType" : "ImGuiWindowFlags_", + "order" : 25, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_Tooltip", + "docComment" : "Don't use! For internal use by BeginTooltip()", + "qualType" : "ImGuiWindowFlags_", + "order" : 26, + "value" : "1 << 25", + "evaluatedValue" : 33554432 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_Popup", + "docComment" : "Don't use! For internal use by BeginPopup()", + "qualType" : "ImGuiWindowFlags_", + "order" : 27, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_Modal", + "docComment" : "Don't use! For internal use by BeginPopupModal()", + "qualType" : "ImGuiWindowFlags_", + "order" : 28, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_ChildMenu", + "docComment" : "Don't use! For internal use by BeginMenu()", + "qualType" : "ImGuiWindowFlags_", + "order" : 29, + "value" : "1 << 28", + "evaluatedValue" : 268435456 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiChildFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginChild()" + }, { + "@type" : "AstTextComment", + "text" : " (Legacy: bit 0 must always correspond to ImGuiChildFlags_Borders to be backward compatible with old API using 'bool border = false'.)" + }, { + "@type" : "AstTextComment", + "text" : " About using AutoResizeX/AutoResizeY flags:" + }, { + "@type" : "AstTextComment", + "text" : " - May be combined with SetNextWindowSizeConstraints() to set a min/max size for each axis (see \"Demo->Child->Auto-resize with Constraints\")." + }, { + "@type" : "AstTextComment", + "text" : " - Size measurement for a given axis is only performed when the child window is within visible boundaries, or is just appearing." + }, { + "@type" : "AstTextComment", + "text" : " - This allows BeginChild() to return false when not within boundaries (e.g. when scrolling), which is more optimal. BUT it won't update its auto-size while clipped." + }, { + "@type" : "AstTextComment", + "text" : " While not perfect, it is a better default behavior as the always-on performance gain is more valuable than the occasional \"resizing after becoming visible again\" glitch." + }, { + "@type" : "AstTextComment", + "text" : " - You may also use ImGuiChildFlags_AlwaysAutoResize to force an update even when child window is not in view." + }, { + "@type" : "AstTextComment", + "text" : " HOWEVER PLEASE UNDERSTAND THAT DOING SO WILL PREVENT BeginChild() FROM EVER RETURNING FALSE, disabling benefits of coarse clipping." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_None", + "qualType" : "ImGuiChildFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_Borders", + "docComment" : "Show an outer border and enable WindowPadding. (IMPORTANT: this is always == 1 == true for legacy reason)", + "qualType" : "ImGuiChildFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_AlwaysUseWindowPadding", + "docComment" : "Pad with style.WindowPadding even if no border are drawn (no padding by default for non-bordered child windows because it makes more sense)", + "qualType" : "ImGuiChildFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_ResizeX", + "docComment" : "Allow resize from right border (layout direction). Enable .ini saving (unless ImGuiWindowFlags_NoSavedSettings passed to window flags)", + "qualType" : "ImGuiChildFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_ResizeY", + "docComment" : "Allow resize from bottom border (layout direction). \"", + "qualType" : "ImGuiChildFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_AutoResizeX", + "docComment" : "Enable auto-resizing width. Read \"IMPORTANT: Size measurement\" details above.", + "qualType" : "ImGuiChildFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_AutoResizeY", + "docComment" : "Enable auto-resizing height. Read \"IMPORTANT: Size measurement\" details above.", + "qualType" : "ImGuiChildFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_AlwaysAutoResize", + "docComment" : "Combined with AutoResizeX/AutoResizeY. Always measure size even when child is hidden, always return true, always disable clipping optimization! NOT RECOMMENDED.", + "qualType" : "ImGuiChildFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_FrameStyle", + "docComment" : "Style the child window like a framed item: use FrameBg, FrameRounding, FrameBorderSize, FramePadding instead of ChildBg, ChildRounding, ChildBorderSize, WindowPadding.", + "qualType" : "ImGuiChildFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiChildFlags_NavFlattened", + "docComment" : "[BETA] Share focus scope, allow keyboard/gamepad navigation to cross over parent border to this child or between sibling child windows.", + "qualType" : "ImGuiChildFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiItemFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::PushItemFlag()" + }, { + "@type" : "AstTextComment", + "text" : " (Those are shared by all submitted items)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_None", + "docComment" : "(Default)", + "qualType" : "ImGuiItemFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoTabStop", + "docComment" : "false // Disable keyboard tabbing. This is a \"lighter\" version of ImGuiItemFlags_NoNav.", + "qualType" : "ImGuiItemFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoNav", + "docComment" : "false // Disable any form of focusing (keyboard/gamepad directional navigation and SetKeyboardFocusHere() calls).", + "qualType" : "ImGuiItemFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoNavDefaultFocus", + "docComment" : "false // Disable item being a candidate for default focus (e.g. used by title bar items).", + "qualType" : "ImGuiItemFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_ButtonRepeat", + "docComment" : "false // Any button-like behavior will have repeat mode enabled (based on io.KeyRepeatDelay and io.KeyRepeatRate values). Note that you can also call IsItemActive() after any button to tell if it is being held.", + "qualType" : "ImGuiItemFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_AutoClosePopups", + "docComment" : "true // MenuItem()/Selectable() automatically close their parent popup window.", + "qualType" : "ImGuiItemFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_AllowDuplicateId", + "docComment" : "false // Allow submitting an item with the same identifier as an item already submitted this frame without triggering a warning tooltip if io.ConfigDebugHighlightIdConflicts is set.", + "qualType" : "ImGuiItemFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_Disabled", + "docComment" : "false // [Internal] Disable interactions. DOES NOT affect visuals. This is used by BeginDisabled()/EndDisabled() and only provided here so you can read back via GetItemFlags().", + "qualType" : "ImGuiItemFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputTextFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::InputText()" + }, { + "@type" : "AstTextComment", + "text" : " (Those are per-item flags. There are shared flags in ImGuiIO: io.ConfigInputTextCursorBlink and io.ConfigInputTextEnterKeepActive)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_None", + "docComment" : "Basic filters (also see ImGuiInputTextFlags_CallbackCharFilter)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CharsDecimal", + "docComment" : "Allow 0123456789.+-*/", + "qualType" : "ImGuiInputTextFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CharsHexadecimal", + "docComment" : "Allow 0123456789ABCDEFabcdef", + "qualType" : "ImGuiInputTextFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CharsScientific", + "docComment" : "Allow 0123456789.+-*/eE (Scientific notation input)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CharsUppercase", + "docComment" : "Turn a..z into A..Z", + "qualType" : "ImGuiInputTextFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CharsNoBlank", + "docComment" : "Filter out spaces, tabs", + "qualType" : "ImGuiInputTextFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_AllowTabInput", + "docComment" : "Pressing TAB input a ' ' character into the text field", + "qualType" : "ImGuiInputTextFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_EnterReturnsTrue", + "docComment" : "Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider using IsItemDeactivatedAfterEdit() instead!", + "qualType" : "ImGuiInputTextFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_EscapeClearsAll", + "docComment" : "Escape key clears content if not empty, and deactivate otherwise (contrast to default behavior of Escape to revert)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CtrlEnterForNewLine", + "docComment" : "In multi-line mode: validate with Enter, add new line with Ctrl+Enter (default is opposite: validate with Ctrl+Enter, add line with Enter). Note that Shift+Enter always enter a new line either way.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_ReadOnly", + "docComment" : "Read-only mode", + "qualType" : "ImGuiInputTextFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_Password", + "docComment" : "Password mode, display all characters as '*', disable copy", + "qualType" : "ImGuiInputTextFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_AlwaysOverwrite", + "docComment" : "Overwrite mode", + "qualType" : "ImGuiInputTextFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_AutoSelectAll", + "docComment" : "Select entire text when first taking mouse focus", + "qualType" : "ImGuiInputTextFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_ParseEmptyRefVal", + "docComment" : "InputFloat(), InputInt(), InputScalar() etc. only: parse empty string as zero value.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_DisplayEmptyRefVal", + "docComment" : "InputFloat(), InputInt(), InputScalar() etc. only: when value is zero, do not display it. Generally used with ImGuiInputTextFlags_ParseEmptyRefVal.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_NoHorizontalScroll", + "docComment" : "Disable following the cursor horizontally", + "qualType" : "ImGuiInputTextFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_NoUndoRedo", + "docComment" : "Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID().", + "qualType" : "ImGuiInputTextFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_ElideLeft", + "docComment" : "When text doesn't fit, elide left side to ensure right side stays visible. Useful for path/filenames. Single-line only!", + "qualType" : "ImGuiInputTextFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackCompletion", + "docComment" : "Callback on pressing TAB (for completion handling)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 19, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackHistory", + "docComment" : "Callback on pressing Up/Down arrows (for history handling)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 20, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackAlways", + "docComment" : "Callback on each iteration. User code may query cursor position, modify text buffer.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 21, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackCharFilter", + "docComment" : "Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 22, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackResize", + "docComment" : "Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this)", + "qualType" : "ImGuiInputTextFlags_", + "order" : 23, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_CallbackEdit", + "docComment" : "Callback on any edit. Note that InputText() already returns true on edit + you can always use IsItemEdited(). The callback is useful to manipulate the underlying buffer while focus is active.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 24, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_WordWrap", + "docComment" : "InputTextMultiline(): word-wrap lines that are too long.", + "qualType" : "ImGuiInputTextFlags_", + "order" : 25, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTreeNodeFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_None", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_Selected", + "docComment" : "Draw as selected", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_Framed", + "docComment" : "Draw frame with background (e.g. for CollapsingHeader)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_AllowOverlap", + "docComment" : "Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_NoTreePushOnOpen", + "docComment" : "Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_NoAutoOpenOnLog", + "docComment" : "Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_DefaultOpen", + "docComment" : "Default node to be open", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_OpenOnDoubleClick", + "docComment" : "Open on double-click instead of simple click (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_OpenOnArrow", + "docComment" : "Open when clicking on the arrow part (default for multi-select unless any _OpenOnXXX behavior is set explicitly). Both behaviors may be combined.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_Leaf", + "docComment" : "No collapsing, no arrow (use as a convenience for leaf nodes). Note: will always open a tree/id scope and return true. If you never use that scope, add ImGuiTreeNodeFlags_NoTreePushOnOpen.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_Bullet", + "docComment" : "Display a bullet instead of arrow. IMPORTANT: node can still be marked open/close if you don't set the _Leaf flag!", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_FramePadding", + "docComment" : "Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding() before the node.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_SpanAvailWidth", + "docComment" : "Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line without using AllowOverlap mode.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_SpanFullWidth", + "docComment" : "Extend hit box to the left-most and right-most edges (cover the indent area).", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_SpanLabelWidth", + "docComment" : "Narrow hit box + narrow hovering highlight, will only cover the label text.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_SpanAllColumns", + "docComment" : "Frame will span all columns of its container table (label will still fit in current column)", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_LabelSpanAllColumns", + "docComment" : "Label will span all columns of its container table", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_NavLeftJumpsToParent", + "docComment" : "Nav: left arrow moves back to parent. This is processed in TreePop() when there's an unfulfilled Left nav request remaining.", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 17, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_CollapsingHeader", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 18, + "value" : "ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog", + "evaluatedValue" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_DrawLinesNone", + "docComment" : "No lines drawn", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 19, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_DrawLinesFull", + "docComment" : "Horizontal lines to child nodes. Vertical line drawn down to TreePop() position: cover full contents. Faster (for large trees).", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 20, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_DrawLinesToNodes", + "docComment" : "Horizontal lines to child nodes. Vertical line drawn down to bottom-most child node. Slower (for large trees).", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 21, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_NavLeftJumpsBackHere", + "docComment" : "Renamed in 1.92.0", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 22, + "value" : "ImGuiTreeNodeFlags_NavLeftJumpsToParent", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_SpanTextWidth", + "docComment" : "Renamed in 1.90.7", + "qualType" : "ImGuiTreeNodeFlags_", + "order" : 23, + "value" : "ImGuiTreeNodeFlags_SpanLabelWidth", + "evaluatedValue" : 8192 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiPopupFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for OpenPopup*(), BeginPopupContext*(), IsPopupOpen() functions." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: If you ever used the left mouse button with BeginPopupContextXXX() helpers before 1.92.6: Read \"API BREAKING CHANGES\" 2026/01/07 (1.92.6) entry in imgui.cpp or GitHub topic #9157." + }, { + "@type" : "AstTextComment", + "text" : " - Multiple buttons currently cannot be combined/or-ed in those functions (we could allow it later)." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_None", + "qualType" : "ImGuiPopupFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_MouseButtonLeft", + "docComment" : "For BeginPopupContext*(): open on Left Mouse release. Only one button allowed!", + "qualType" : "ImGuiPopupFlags_", + "order" : 1, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_MouseButtonRight", + "docComment" : "For BeginPopupContext*(): open on Right Mouse release. Only one button allowed! (default)", + "qualType" : "ImGuiPopupFlags_", + "order" : 2, + "value" : "2 << 2", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_MouseButtonMiddle", + "docComment" : "For BeginPopupContext*(): open on Middle Mouse release. Only one button allowed!", + "qualType" : "ImGuiPopupFlags_", + "order" : 3, + "value" : "3 << 2", + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_NoReopen", + "docComment" : "For OpenPopup*(), BeginPopupContext*(): don't reopen same popup if already open (won't reposition, won't reinitialize navigation)", + "qualType" : "ImGuiPopupFlags_", + "order" : 4, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_NoOpenOverExistingPopup", + "docComment" : "For OpenPopup*(), BeginPopupContext*(): don't open if there's already a popup at the same level of the popup stack", + "qualType" : "ImGuiPopupFlags_", + "order" : 5, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_NoOpenOverItems", + "docComment" : "For BeginPopupContextWindow(): don't return true when hovering items, only when hovering empty space", + "qualType" : "ImGuiPopupFlags_", + "order" : 6, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_AnyPopupId", + "docComment" : "For IsPopupOpen(): ignore the ImGuiID parameter and test for any popup.", + "qualType" : "ImGuiPopupFlags_", + "order" : 7, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_AnyPopupLevel", + "docComment" : "For IsPopupOpen(): search/test at any level of the popup stack (default test in the current level)", + "qualType" : "ImGuiPopupFlags_", + "order" : 8, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_AnyPopup", + "qualType" : "ImGuiPopupFlags_", + "order" : 9, + "value" : "ImGuiPopupFlags_AnyPopupId | ImGuiPopupFlags_AnyPopupLevel", + "evaluatedValue" : 3072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_MouseButtonShift_", + "docComment" : "[Internal]", + "qualType" : "ImGuiPopupFlags_", + "order" : 10, + "value" : "2", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_MouseButtonMask_", + "docComment" : "[Internal]", + "qualType" : "ImGuiPopupFlags_", + "order" : 11, + "value" : "0x0C", + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupFlags_InvalidMask_", + "docComment" : "[Internal] Reserve legacy bits 0-1 to detect incorrectly passing 1 or 2 to the function.", + "qualType" : "ImGuiPopupFlags_", + "order" : 12, + "value" : "0x03", + "evaluatedValue" : 3 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSelectableFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::Selectable()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_None", + "qualType" : "ImGuiSelectableFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_NoAutoClosePopups", + "docComment" : "Clicking this doesn't close parent popup window (overrides ImGuiItemFlags_AutoClosePopups)", + "qualType" : "ImGuiSelectableFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SpanAllColumns", + "docComment" : "Frame will span all columns of its container table (text will still fit in current column)", + "qualType" : "ImGuiSelectableFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_AllowDoubleClick", + "docComment" : "Generate press events on double clicks too", + "qualType" : "ImGuiSelectableFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_Disabled", + "docComment" : "Cannot be selected, display grayed out text", + "qualType" : "ImGuiSelectableFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_AllowOverlap", + "docComment" : "Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().", + "qualType" : "ImGuiSelectableFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_Highlight", + "docComment" : "Make the item be displayed as if it is hovered", + "qualType" : "ImGuiSelectableFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SelectOnNav", + "docComment" : "Auto-select when moved into, unless Ctrl is held. Automatic when in a BeginMultiSelect() block.", + "qualType" : "ImGuiSelectableFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_DontClosePopups", + "docComment" : "Renamed in 1.91.0", + "qualType" : "ImGuiSelectableFlags_", + "order" : 8, + "value" : "ImGuiSelectableFlags_NoAutoClosePopups", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiComboFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginCombo()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_None", + "qualType" : "ImGuiComboFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_PopupAlignLeft", + "docComment" : "Align the popup toward the left by default", + "qualType" : "ImGuiComboFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_HeightSmall", + "docComment" : "Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo()", + "qualType" : "ImGuiComboFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_HeightRegular", + "docComment" : "Max ~8 items visible (default)", + "qualType" : "ImGuiComboFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_HeightLarge", + "docComment" : "Max ~20 items visible", + "qualType" : "ImGuiComboFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_HeightLargest", + "docComment" : "As many fitting items as possible", + "qualType" : "ImGuiComboFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_NoArrowButton", + "docComment" : "Display on the preview box without the square arrow button", + "qualType" : "ImGuiComboFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_NoPreview", + "docComment" : "Display only a square arrow button", + "qualType" : "ImGuiComboFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_WidthFitPreview", + "docComment" : "Width dynamically calculated from preview contents", + "qualType" : "ImGuiComboFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_HeightMask_", + "qualType" : "ImGuiComboFlags_", + "order" : 9, + "value" : "ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest", + "evaluatedValue" : 30 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTabBarFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginTabBar()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_None", + "qualType" : "ImGuiTabBarFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_Reorderable", + "docComment" : "Allow manually dragging tabs to re-order them + New tabs are appended at the end of list", + "qualType" : "ImGuiTabBarFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_AutoSelectNewTabs", + "docComment" : "Automatically select new tabs when they appear", + "qualType" : "ImGuiTabBarFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_TabListPopupButton", + "docComment" : "Disable buttons to open the tab list popup", + "qualType" : "ImGuiTabBarFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_NoCloseWithMiddleMouseButton", + "docComment" : "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() & & IsMouseClicked(2)) *p_open = false.", + "qualType" : "ImGuiTabBarFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_NoTabListScrollingButtons", + "docComment" : "Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll)", + "qualType" : "ImGuiTabBarFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_NoTooltip", + "docComment" : "Disable tooltips when hovering a tab", + "qualType" : "ImGuiTabBarFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_DrawSelectedOverline", + "docComment" : "Draw selected overline markers over selected tab", + "qualType" : "ImGuiTabBarFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyMixed", + "docComment" : "Shrink down tabs when they don't fit, until width is style.TabMinWidthShrink, then enable scrolling buttons.", + "qualType" : "ImGuiTabBarFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyShrink", + "docComment" : "Shrink down tabs when they don't fit", + "qualType" : "ImGuiTabBarFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyScroll", + "docComment" : "Enable scrolling buttons when tabs don't fit", + "qualType" : "ImGuiTabBarFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyMask_", + "qualType" : "ImGuiTabBarFlags_", + "order" : 11, + "value" : "ImGuiTabBarFlags_FittingPolicyMixed | ImGuiTabBarFlags_FittingPolicyShrink | ImGuiTabBarFlags_FittingPolicyScroll", + "evaluatedValue" : 896 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyDefault_", + "qualType" : "ImGuiTabBarFlags_", + "order" : 12, + "value" : "ImGuiTabBarFlags_FittingPolicyMixed", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabBarFlags_FittingPolicyResizeDown", + "docComment" : "Renamed in 1.92.2", + "qualType" : "ImGuiTabBarFlags_", + "order" : 13, + "value" : "ImGuiTabBarFlags_FittingPolicyShrink", + "evaluatedValue" : 256 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTabItemFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginTabItem()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_None", + "qualType" : "ImGuiTabItemFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_UnsavedDocument", + "docComment" : "Display a dot next to the title + set ImGuiTabItemFlags_NoAssumedClosure.", + "qualType" : "ImGuiTabItemFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_SetSelected", + "docComment" : "Trigger flag to programmatically make the tab selected when calling BeginTabItem()", + "qualType" : "ImGuiTabItemFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_NoCloseWithMiddleMouseButton", + "docComment" : "Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You may handle this behavior manually on user's side with if (IsItemHovered() & & IsMouseClicked(2)) *p_open = false.", + "qualType" : "ImGuiTabItemFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_NoPushId", + "docComment" : "Don't call PushID()/PopID() on BeginTabItem()/EndTabItem()", + "qualType" : "ImGuiTabItemFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_NoTooltip", + "docComment" : "Disable tooltip for the given tab", + "qualType" : "ImGuiTabItemFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_NoReorder", + "docComment" : "Disable reordering this tab or having another tab cross over this tab", + "qualType" : "ImGuiTabItemFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_Leading", + "docComment" : "Enforce the tab position to the left of the tab bar (after the tab list popup button)", + "qualType" : "ImGuiTabItemFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_Trailing", + "docComment" : "Enforce the tab position to the right of the tab bar (before the scrolling buttons)", + "qualType" : "ImGuiTabItemFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTabItemFlags_NoAssumedClosure", + "docComment" : "Tab is selected when trying to close + closure is not immediately assumed (will wait for user to stop submitting the tab). Otherwise closure is assumed when pressing the X, so if you keep submitting the tab may reappear at end of tab bar.", + "qualType" : "ImGuiTabItemFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiFocusedFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::IsWindowFocused()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_None", + "qualType" : "ImGuiFocusedFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_ChildWindows", + "docComment" : "Return true if any children of the window is focused", + "qualType" : "ImGuiFocusedFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_RootWindow", + "docComment" : "Test from root window (top most parent of the current hierarchy)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_AnyWindow", + "docComment" : "Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ!", + "qualType" : "ImGuiFocusedFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_NoPopupHierarchy", + "docComment" : "Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_DockHierarchy", + "docComment" : "Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiFocusedFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusedFlags_RootAndChildWindows", + "qualType" : "ImGuiFocusedFlags_", + "order" : 6, + "value" : "ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows", + "evaluatedValue" : 3 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiHoveredFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered()" + }, { + "@type" : "AstTextComment", + "text" : " Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ!" + }, { + "@type" : "AstTextComment", + "text" : " Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_None", + "docComment" : "Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_ChildWindows", + "docComment" : "IsWindowHovered() only: Return true if any children of the window is hovered", + "qualType" : "ImGuiHoveredFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_RootWindow", + "docComment" : "IsWindowHovered() only: Test from root window (top most parent of the current hierarchy)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AnyWindow", + "docComment" : "IsWindowHovered() only: Return true if any window is hovered", + "qualType" : "ImGuiHoveredFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_NoPopupHierarchy", + "docComment" : "IsWindowHovered() only: Do not consider popup hierarchy (do not treat popup emitter as parent of popup) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_DockHierarchy", + "docComment" : "IsWindowHovered() only: Consider docking hierarchy (treat dockspace host as parent of docked window) (when used with _ChildWindows or _RootWindow)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenBlockedByPopup", + "docComment" : "Return true even if a popup window is normally blocking access to this item/window", + "qualType" : "ImGuiHoveredFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenBlockedByActiveItem", + "docComment" : "Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenOverlappedByItem", + "docComment" : "IsItemHovered() only: Return true even if the item uses AllowOverlap mode and is overlapped by another hoverable item.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 8, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenOverlappedByWindow", + "docComment" : "IsItemHovered() only: Return true even if the position is obstructed or overlapped by another window.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 9, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenDisabled", + "docComment" : "IsItemHovered() only: Return true even if the item is disabled", + "qualType" : "ImGuiHoveredFlags_", + "order" : 10, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_NoNavOverride", + "docComment" : "IsItemHovered() only: Disable using keyboard/gamepad navigation state when active, always query mouse", + "qualType" : "ImGuiHoveredFlags_", + "order" : 11, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowWhenOverlapped", + "qualType" : "ImGuiHoveredFlags_", + "order" : 12, + "value" : "ImGuiHoveredFlags_AllowWhenOverlappedByItem | ImGuiHoveredFlags_AllowWhenOverlappedByWindow", + "evaluatedValue" : 768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_RectOnly", + "qualType" : "ImGuiHoveredFlags_", + "order" : 13, + "value" : "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped", + "evaluatedValue" : 928 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_RootAndChildWindows", + "qualType" : "ImGuiHoveredFlags_", + "order" : 14, + "value" : "ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows", + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_ForTooltip", + "docComment" : "Shortcut for standard flags when using IsItemHovered() + SetTooltip() sequence.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 15, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_Stationary", + "docComment" : "Require mouse to be stationary for style.HoverStationaryDelay (~0.15 sec) _at least one time_. After this, can move on same item/window. Using the stationary test tends to reduces the need for a long delay.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 16, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_DelayNone", + "docComment" : "IsItemHovered() only: Return true immediately (default). As this is the default you generally ignore this.", + "qualType" : "ImGuiHoveredFlags_", + "order" : 17, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_DelayShort", + "docComment" : "IsItemHovered() only: Return true after style.HoverDelayShort elapsed (~0.15 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).", + "qualType" : "ImGuiHoveredFlags_", + "order" : 18, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_DelayNormal", + "docComment" : "IsItemHovered() only: Return true after style.HoverDelayNormal elapsed (~0.40 sec) (shared between items) + requires mouse to be stationary for style.HoverStationaryDelay (once per item).", + "qualType" : "ImGuiHoveredFlags_", + "order" : 19, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_NoSharedDelay", + "docComment" : "IsItemHovered() only: Disable shared delay system where moving from one item to the next keeps the previous timer for a short time (standard for tooltips with long delays)", + "qualType" : "ImGuiHoveredFlags_", + "order" : 20, + "value" : "1 << 17", + "evaluatedValue" : 131072 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDockNodeFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::DockSpace(), shared/inherited by child nodes." + }, { + "@type" : "AstTextComment", + "text" : " (Some flags can be applied to individual nodes directly)" + }, { + "@type" : "AstTextComment", + "text" : " FIXME-DOCK: Also see ImGuiDockNodeFlagsPrivate_ which may involve using the WIP and internal DockBuilder api." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_None", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_KeepAliveOnly", + "docComment" : "// Don't display the dockspace node but keep it alive. Windows docked into this dockspace node won't be undocked.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingOverCentralNode", + "docComment" : "// Disable docking over the Central Node, which will be always kept empty.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_PassthruCentralNode", + "docComment" : "// Enable passthru dockspace: 1) DockSpace() will render a ImGuiCol_WindowBg background covering everything excepted the Central Node when empty. Meaning the host window should probably use SetNextWindowBgAlpha(0.0f) prior to Begin() when using this. 2) When Central Node is empty: let inputs pass-through + won't display a DockingEmptyBg background. See demo for details.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingSplit", + "docComment" : "// Disable other windows/nodes from splitting this node.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoResize", + "docComment" : "Saved // Disable resizing node using the splitter/separators. Useful with programmatically setup dockspaces.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_AutoHideTabBar", + "docComment" : "// Tab bar will automatically hide when there is a single window in the dock node.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoUndocking", + "docComment" : "// Disable undocking this node.", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoSplit", + "docComment" : "Renamed in 1.90", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 8, + "value" : "ImGuiDockNodeFlags_NoDockingSplit", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingInCentralNode", + "docComment" : "Renamed in 1.90", + "qualType" : "ImGuiDockNodeFlags_", + "order" : 9, + "value" : "ImGuiDockNodeFlags_NoDockingOverCentralNode", + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDragDropFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_None", + "qualType" : "ImGuiDragDropFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceNoPreviewTooltip", + "docComment" : "Disable preview tooltip. By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disables this behavior.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceNoDisableHover", + "docComment" : "By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disables this behavior so you can still call IsItemHovered() on the source item.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceNoHoldToOpenOthers", + "docComment" : "Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceAllowNullID", + "docComment" : "Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceExtern", + "docComment" : "External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_PayloadAutoExpire", + "docComment" : "Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged)", + "qualType" : "ImGuiDragDropFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_PayloadNoCrossContext", + "docComment" : "Hint to specify that the payload may not be copied outside current dear imgui context.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_PayloadNoCrossProcess", + "docComment" : "Hint to specify that the payload may not be copied outside current process.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_AcceptBeforeDelivery", + "docComment" : "AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 9, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_AcceptNoDrawDefaultRect", + "docComment" : "Do not draw the default highlight rectangle when hovering over target.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 10, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_AcceptNoPreviewTooltip", + "docComment" : "Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 11, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_AcceptDrawAsHovered", + "docComment" : "Accepting item will render as if hovered. Useful for e.g. a Button() used as a drop target.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 12, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_AcceptPeekOnly", + "docComment" : "For peeking ahead and inspecting the payload before delivery.", + "qualType" : "ImGuiDragDropFlags_", + "order" : 13, + "value" : "ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect", + "evaluatedValue" : 3072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDragDropFlags_SourceAutoExpirePayload", + "docComment" : "Renamed in 1.90.9", + "qualType" : "ImGuiDragDropFlags_", + "order" : 14, + "value" : "ImGuiDragDropFlags_PayloadAutoExpire", + "evaluatedValue" : 32 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDataType_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " A primary data type" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_S8", + "docComment" : "signed char / char (with sensible compilers)", + "qualType" : "ImGuiDataType_", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_U8", + "docComment" : "unsigned char", + "qualType" : "ImGuiDataType_", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_S16", + "docComment" : "short", + "qualType" : "ImGuiDataType_", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_U16", + "docComment" : "unsigned short", + "qualType" : "ImGuiDataType_", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_S32", + "docComment" : "int", + "qualType" : "ImGuiDataType_", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_U32", + "docComment" : "unsigned int", + "qualType" : "ImGuiDataType_", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_S64", + "docComment" : "long long / __int64", + "qualType" : "ImGuiDataType_", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_U64", + "docComment" : "unsigned long long / unsigned __int64", + "qualType" : "ImGuiDataType_", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_Float", + "docComment" : "float", + "qualType" : "ImGuiDataType_", + "order" : 8, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_Double", + "docComment" : "double", + "qualType" : "ImGuiDataType_", + "order" : 9, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_Bool", + "docComment" : "bool (provided for user convenience, not supported by scalar widgets)", + "qualType" : "ImGuiDataType_", + "order" : 10, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_String", + "docComment" : "char* (provided for user convenience, not supported by scalar widgets)", + "qualType" : "ImGuiDataType_", + "order" : 11, + "evaluatedValue" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_COUNT", + "qualType" : "ImGuiDataType_", + "order" : 12, + "evaluatedValue" : 12 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDir", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " A cardinal direction" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_None", + "qualType" : "ImGuiDir", + "order" : 0, + "value" : "-1", + "evaluatedValue" : -1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_Left", + "qualType" : "ImGuiDir", + "order" : 1, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_Right", + "qualType" : "ImGuiDir", + "order" : 2, + "value" : "1", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_Up", + "qualType" : "ImGuiDir", + "order" : 3, + "value" : "2", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_Down", + "qualType" : "ImGuiDir", + "order" : 4, + "value" : "3", + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDir_COUNT", + "qualType" : "ImGuiDir", + "order" : 5, + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSortDirection", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " A sorting direction" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSortDirection_None", + "qualType" : "ImGuiSortDirection", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSortDirection_Ascending", + "docComment" : "Ascending = 0->9, A->Z etc.", + "qualType" : "ImGuiSortDirection", + "order" : 1, + "value" : "1", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSortDirection_Descending", + "docComment" : "Descending = 9->0, Z->A etc.", + "qualType" : "ImGuiSortDirection", + "order" : 2, + "value" : "2", + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiKey", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " A key identifier (ImGuiKey_XXX or ImGuiMod_XXX value): can represent Keyboard, Mouse and Gamepad values." + }, { + "@type" : "AstTextComment", + "text" : " All our named keys are >= 512. Keys value 0 to 511 are left unused and were legacy native/opaque key values (" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 1.87)." + }, { + "@type" : "AstTextComment", + "text" : " Support for legacy keys was completely removed in 1.91.5." + }, { + "@type" : "AstTextComment", + "text" : " Read details about the 1.87+ transition : https://github.com/ocornut/imgui/issues/4921" + }, { + "@type" : "AstTextComment", + "text" : " Note that \"Keys\" related to physical keys and are not the same concept as input \"Characters\", the latter are submitted via io.AddInputCharacter()." + }, { + "@type" : "AstTextComment", + "text" : " The keyboard key enum values are named after the keys on a standard US keyboard, and on other keyboard types the keys reported may not match the keycaps." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_None", + "docComment" : "Keyboard", + "qualType" : "ImGuiKey", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_NamedKey_BEGIN", + "docComment" : "First valid key value (other than 0)", + "qualType" : "ImGuiKey", + "order" : 1, + "value" : "512", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Tab", + "docComment" : "== ImGuiKey_NamedKey_BEGIN", + "qualType" : "ImGuiKey", + "order" : 2, + "value" : "512", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftArrow", + "qualType" : "ImGuiKey", + "order" : 3, + "evaluatedValue" : 513 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightArrow", + "qualType" : "ImGuiKey", + "order" : 4, + "evaluatedValue" : 514 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_UpArrow", + "qualType" : "ImGuiKey", + "order" : 5, + "evaluatedValue" : 515 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_DownArrow", + "qualType" : "ImGuiKey", + "order" : 6, + "evaluatedValue" : 516 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_PageUp", + "qualType" : "ImGuiKey", + "order" : 7, + "evaluatedValue" : 517 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_PageDown", + "qualType" : "ImGuiKey", + "order" : 8, + "evaluatedValue" : 518 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Home", + "qualType" : "ImGuiKey", + "order" : 9, + "evaluatedValue" : 519 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_End", + "qualType" : "ImGuiKey", + "order" : 10, + "evaluatedValue" : 520 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Insert", + "qualType" : "ImGuiKey", + "order" : 11, + "evaluatedValue" : 521 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Delete", + "qualType" : "ImGuiKey", + "order" : 12, + "evaluatedValue" : 522 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Backspace", + "qualType" : "ImGuiKey", + "order" : 13, + "evaluatedValue" : 523 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Space", + "qualType" : "ImGuiKey", + "order" : 14, + "evaluatedValue" : 524 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Enter", + "qualType" : "ImGuiKey", + "order" : 15, + "evaluatedValue" : 525 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Escape", + "qualType" : "ImGuiKey", + "order" : 16, + "evaluatedValue" : 526 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftCtrl", + "docComment" : "Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!", + "qualType" : "ImGuiKey", + "order" : 17, + "evaluatedValue" : 527 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftShift", + "docComment" : "Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!", + "qualType" : "ImGuiKey", + "order" : 18, + "evaluatedValue" : 528 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftAlt", + "docComment" : "Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!", + "qualType" : "ImGuiKey", + "order" : 19, + "evaluatedValue" : 529 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftSuper", + "docComment" : "Also see ImGuiMod_Ctrl, ImGuiMod_Shift, ImGuiMod_Alt, ImGuiMod_Super below!", + "qualType" : "ImGuiKey", + "order" : 20, + "evaluatedValue" : 530 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightCtrl", + "qualType" : "ImGuiKey", + "order" : 21, + "evaluatedValue" : 531 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightShift", + "qualType" : "ImGuiKey", + "order" : 22, + "evaluatedValue" : 532 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightAlt", + "qualType" : "ImGuiKey", + "order" : 23, + "evaluatedValue" : 533 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightSuper", + "qualType" : "ImGuiKey", + "order" : 24, + "evaluatedValue" : 534 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Menu", + "qualType" : "ImGuiKey", + "order" : 25, + "evaluatedValue" : 535 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_0", + "qualType" : "ImGuiKey", + "order" : 26, + "evaluatedValue" : 536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_1", + "qualType" : "ImGuiKey", + "order" : 27, + "evaluatedValue" : 537 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_2", + "qualType" : "ImGuiKey", + "order" : 28, + "evaluatedValue" : 538 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_3", + "qualType" : "ImGuiKey", + "order" : 29, + "evaluatedValue" : 539 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_4", + "qualType" : "ImGuiKey", + "order" : 30, + "evaluatedValue" : 540 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_5", + "qualType" : "ImGuiKey", + "order" : 31, + "evaluatedValue" : 541 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_6", + "qualType" : "ImGuiKey", + "order" : 32, + "evaluatedValue" : 542 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_7", + "qualType" : "ImGuiKey", + "order" : 33, + "evaluatedValue" : 543 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_8", + "qualType" : "ImGuiKey", + "order" : 34, + "evaluatedValue" : 544 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_9", + "qualType" : "ImGuiKey", + "order" : 35, + "evaluatedValue" : 545 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_A", + "qualType" : "ImGuiKey", + "order" : 36, + "evaluatedValue" : 546 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_B", + "qualType" : "ImGuiKey", + "order" : 37, + "evaluatedValue" : 547 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_C", + "qualType" : "ImGuiKey", + "order" : 38, + "evaluatedValue" : 548 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_D", + "qualType" : "ImGuiKey", + "order" : 39, + "evaluatedValue" : 549 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_E", + "qualType" : "ImGuiKey", + "order" : 40, + "evaluatedValue" : 550 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F", + "qualType" : "ImGuiKey", + "order" : 41, + "evaluatedValue" : 551 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_G", + "qualType" : "ImGuiKey", + "order" : 42, + "evaluatedValue" : 552 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_H", + "qualType" : "ImGuiKey", + "order" : 43, + "evaluatedValue" : 553 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_I", + "qualType" : "ImGuiKey", + "order" : 44, + "evaluatedValue" : 554 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_J", + "qualType" : "ImGuiKey", + "order" : 45, + "evaluatedValue" : 555 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_K", + "qualType" : "ImGuiKey", + "order" : 46, + "evaluatedValue" : 556 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_L", + "qualType" : "ImGuiKey", + "order" : 47, + "evaluatedValue" : 557 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_M", + "qualType" : "ImGuiKey", + "order" : 48, + "evaluatedValue" : 558 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_N", + "qualType" : "ImGuiKey", + "order" : 49, + "evaluatedValue" : 559 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_O", + "qualType" : "ImGuiKey", + "order" : 50, + "evaluatedValue" : 560 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_P", + "qualType" : "ImGuiKey", + "order" : 51, + "evaluatedValue" : 561 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Q", + "qualType" : "ImGuiKey", + "order" : 52, + "evaluatedValue" : 562 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_R", + "qualType" : "ImGuiKey", + "order" : 53, + "evaluatedValue" : 563 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_S", + "qualType" : "ImGuiKey", + "order" : 54, + "evaluatedValue" : 564 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_T", + "qualType" : "ImGuiKey", + "order" : 55, + "evaluatedValue" : 565 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_U", + "qualType" : "ImGuiKey", + "order" : 56, + "evaluatedValue" : 566 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_V", + "qualType" : "ImGuiKey", + "order" : 57, + "evaluatedValue" : 567 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_W", + "qualType" : "ImGuiKey", + "order" : 58, + "evaluatedValue" : 568 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_X", + "qualType" : "ImGuiKey", + "order" : 59, + "evaluatedValue" : 569 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Y", + "qualType" : "ImGuiKey", + "order" : 60, + "evaluatedValue" : 570 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Z", + "qualType" : "ImGuiKey", + "order" : 61, + "evaluatedValue" : 571 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F1", + "qualType" : "ImGuiKey", + "order" : 62, + "evaluatedValue" : 572 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F2", + "qualType" : "ImGuiKey", + "order" : 63, + "evaluatedValue" : 573 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F3", + "qualType" : "ImGuiKey", + "order" : 64, + "evaluatedValue" : 574 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F4", + "qualType" : "ImGuiKey", + "order" : 65, + "evaluatedValue" : 575 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F5", + "qualType" : "ImGuiKey", + "order" : 66, + "evaluatedValue" : 576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F6", + "qualType" : "ImGuiKey", + "order" : 67, + "evaluatedValue" : 577 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F7", + "qualType" : "ImGuiKey", + "order" : 68, + "evaluatedValue" : 578 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F8", + "qualType" : "ImGuiKey", + "order" : 69, + "evaluatedValue" : 579 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F9", + "qualType" : "ImGuiKey", + "order" : 70, + "evaluatedValue" : 580 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F10", + "qualType" : "ImGuiKey", + "order" : 71, + "evaluatedValue" : 581 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F11", + "qualType" : "ImGuiKey", + "order" : 72, + "evaluatedValue" : 582 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F12", + "qualType" : "ImGuiKey", + "order" : 73, + "evaluatedValue" : 583 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F13", + "qualType" : "ImGuiKey", + "order" : 74, + "evaluatedValue" : 584 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F14", + "qualType" : "ImGuiKey", + "order" : 75, + "evaluatedValue" : 585 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F15", + "qualType" : "ImGuiKey", + "order" : 76, + "evaluatedValue" : 586 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F16", + "qualType" : "ImGuiKey", + "order" : 77, + "evaluatedValue" : 587 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F17", + "qualType" : "ImGuiKey", + "order" : 78, + "evaluatedValue" : 588 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F18", + "qualType" : "ImGuiKey", + "order" : 79, + "evaluatedValue" : 589 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F19", + "qualType" : "ImGuiKey", + "order" : 80, + "evaluatedValue" : 590 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F20", + "qualType" : "ImGuiKey", + "order" : 81, + "evaluatedValue" : 591 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F21", + "qualType" : "ImGuiKey", + "order" : 82, + "evaluatedValue" : 592 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F22", + "qualType" : "ImGuiKey", + "order" : 83, + "evaluatedValue" : 593 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F23", + "qualType" : "ImGuiKey", + "order" : 84, + "evaluatedValue" : 594 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_F24", + "qualType" : "ImGuiKey", + "order" : 85, + "evaluatedValue" : 595 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Apostrophe", + "docComment" : "'", + "qualType" : "ImGuiKey", + "order" : 86, + "evaluatedValue" : 596 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Comma", + "docComment" : ",", + "qualType" : "ImGuiKey", + "order" : 87, + "evaluatedValue" : 597 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Minus", + "docComment" : "-", + "qualType" : "ImGuiKey", + "order" : 88, + "evaluatedValue" : 598 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Period", + "docComment" : ".", + "qualType" : "ImGuiKey", + "order" : 89, + "evaluatedValue" : 599 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Slash", + "docComment" : "/", + "qualType" : "ImGuiKey", + "order" : 90, + "evaluatedValue" : 600 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Semicolon", + "docComment" : ";", + "qualType" : "ImGuiKey", + "order" : 91, + "evaluatedValue" : 601 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Equal", + "docComment" : "=", + "qualType" : "ImGuiKey", + "order" : 92, + "evaluatedValue" : 602 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_LeftBracket", + "docComment" : "[", + "qualType" : "ImGuiKey", + "order" : 93, + "evaluatedValue" : 603 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Backslash", + "docComment" : " \\ (this text inhibit multiline comment caused by backslash)", + "qualType" : "ImGuiKey", + "order" : 94, + "evaluatedValue" : 604 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_RightBracket", + "docComment" : "]", + "qualType" : "ImGuiKey", + "order" : 95, + "evaluatedValue" : 605 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GraveAccent", + "docComment" : "`", + "qualType" : "ImGuiKey", + "order" : 96, + "evaluatedValue" : 606 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_CapsLock", + "qualType" : "ImGuiKey", + "order" : 97, + "evaluatedValue" : 607 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_ScrollLock", + "qualType" : "ImGuiKey", + "order" : 98, + "evaluatedValue" : 608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_NumLock", + "qualType" : "ImGuiKey", + "order" : 99, + "evaluatedValue" : 609 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_PrintScreen", + "qualType" : "ImGuiKey", + "order" : 100, + "evaluatedValue" : 610 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Pause", + "qualType" : "ImGuiKey", + "order" : 101, + "evaluatedValue" : 611 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad0", + "qualType" : "ImGuiKey", + "order" : 102, + "evaluatedValue" : 612 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad1", + "qualType" : "ImGuiKey", + "order" : 103, + "evaluatedValue" : 613 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad2", + "qualType" : "ImGuiKey", + "order" : 104, + "evaluatedValue" : 614 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad3", + "qualType" : "ImGuiKey", + "order" : 105, + "evaluatedValue" : 615 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad4", + "qualType" : "ImGuiKey", + "order" : 106, + "evaluatedValue" : 616 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad5", + "qualType" : "ImGuiKey", + "order" : 107, + "evaluatedValue" : 617 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad6", + "qualType" : "ImGuiKey", + "order" : 108, + "evaluatedValue" : 618 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad7", + "qualType" : "ImGuiKey", + "order" : 109, + "evaluatedValue" : 619 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad8", + "qualType" : "ImGuiKey", + "order" : 110, + "evaluatedValue" : 620 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Keypad9", + "qualType" : "ImGuiKey", + "order" : 111, + "evaluatedValue" : 621 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadDecimal", + "qualType" : "ImGuiKey", + "order" : 112, + "evaluatedValue" : 622 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadDivide", + "qualType" : "ImGuiKey", + "order" : 113, + "evaluatedValue" : 623 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadMultiply", + "qualType" : "ImGuiKey", + "order" : 114, + "evaluatedValue" : 624 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadSubtract", + "qualType" : "ImGuiKey", + "order" : 115, + "evaluatedValue" : 625 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadAdd", + "qualType" : "ImGuiKey", + "order" : 116, + "evaluatedValue" : 626 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadEnter", + "qualType" : "ImGuiKey", + "order" : 117, + "evaluatedValue" : 627 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_KeypadEqual", + "qualType" : "ImGuiKey", + "order" : 118, + "evaluatedValue" : 628 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_AppBack", + "docComment" : "Available on some keyboard/mouses. Often referred as \"Browser Back\"", + "qualType" : "ImGuiKey", + "order" : 119, + "evaluatedValue" : 629 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_AppForward", + "qualType" : "ImGuiKey", + "order" : 120, + "evaluatedValue" : 630 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_Oem102", + "docComment" : "Non-US backslash.", + "qualType" : "ImGuiKey", + "order" : 121, + "evaluatedValue" : 631 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadStart", + "docComment" : "Menu | + | Options |", + "qualType" : "ImGuiKey", + "order" : 122, + "evaluatedValue" : 632 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadBack", + "docComment" : "View | - | Share |", + "qualType" : "ImGuiKey", + "order" : 123, + "evaluatedValue" : 633 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadFaceLeft", + "docComment" : "X | Y | Square | Toggle Menu. Hold for Windowing mode (Focus/Move/Resize windows)", + "qualType" : "ImGuiKey", + "order" : 124, + "evaluatedValue" : 634 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadFaceRight", + "docComment" : "B | A | Circle | Cancel / Close / Exit", + "qualType" : "ImGuiKey", + "order" : 125, + "evaluatedValue" : 635 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadFaceUp", + "docComment" : "Y | X | Triangle | Open Context Menu", + "qualType" : "ImGuiKey", + "order" : 126, + "evaluatedValue" : 636 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadFaceDown", + "docComment" : "A | B | Cross | Activate / Open / Toggle. Hold for 0.60f to Activate in Text Input mode (e.g. wired to an on-screen keyboard).", + "qualType" : "ImGuiKey", + "order" : 127, + "evaluatedValue" : 637 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadDpadLeft", + "docComment" : "D-pad Left | \" | \" | Move / Tweak / Resize Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 128, + "evaluatedValue" : 638 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadDpadRight", + "docComment" : "D-pad Right | \" | \" | Move / Tweak / Resize Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 129, + "evaluatedValue" : 639 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadDpadUp", + "docComment" : "D-pad Up | \" | \" | Move / Tweak / Resize Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 130, + "evaluatedValue" : 640 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadDpadDown", + "docComment" : "D-pad Down | \" | \" | Move / Tweak / Resize Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 131, + "evaluatedValue" : 641 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadL1", + "docComment" : "L Bumper | L | L1 | Tweak Slower / Focus Previous (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 132, + "evaluatedValue" : 642 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadR1", + "docComment" : "R Bumper | R | R1 | Tweak Faster / Focus Next (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 133, + "evaluatedValue" : 643 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadL2", + "docComment" : "L Trigger | ZL | L2 | [Analog]", + "qualType" : "ImGuiKey", + "order" : 134, + "evaluatedValue" : 644 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadR2", + "docComment" : "R Trigger | ZR | R2 | [Analog]", + "qualType" : "ImGuiKey", + "order" : 135, + "evaluatedValue" : 645 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadL3", + "docComment" : "L Stick | L3 | L3 |", + "qualType" : "ImGuiKey", + "order" : 136, + "evaluatedValue" : 646 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadR3", + "docComment" : "R Stick | R3 | R3 |", + "qualType" : "ImGuiKey", + "order" : 137, + "evaluatedValue" : 647 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadLStickLeft", + "docComment" : "| | | [Analog] Move Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 138, + "evaluatedValue" : 648 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadLStickRight", + "docComment" : "| | | [Analog] Move Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 139, + "evaluatedValue" : 649 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadLStickUp", + "docComment" : "| | | [Analog] Move Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 140, + "evaluatedValue" : 650 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadLStickDown", + "docComment" : "| | | [Analog] Move Window (in Windowing mode)", + "qualType" : "ImGuiKey", + "order" : 141, + "evaluatedValue" : 651 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadRStickLeft", + "docComment" : "| | | [Analog]", + "qualType" : "ImGuiKey", + "order" : 142, + "evaluatedValue" : 652 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadRStickRight", + "docComment" : "| | | [Analog]", + "qualType" : "ImGuiKey", + "order" : 143, + "evaluatedValue" : 653 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadRStickUp", + "docComment" : "| | | [Analog]", + "qualType" : "ImGuiKey", + "order" : 144, + "evaluatedValue" : 654 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_GamepadRStickDown", + "docComment" : "| | | [Analog]", + "qualType" : "ImGuiKey", + "order" : 145, + "evaluatedValue" : 655 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseLeft", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 146, + "evaluatedValue" : 656 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseRight", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 147, + "evaluatedValue" : 657 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseMiddle", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 148, + "evaluatedValue" : 658 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseX1", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 149, + "evaluatedValue" : 659 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseX2", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 150, + "evaluatedValue" : 660 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseWheelX", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 151, + "evaluatedValue" : 661 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_MouseWheelY", + "docComment" : "Aliases: Mouse Buttons (auto-submitted from AddMouseButtonEvent() calls) - This is mirroring the data also written to io.MouseDown[], io.MouseWheel, in a format allowing them to be accessed via standard key API.", + "qualType" : "ImGuiKey", + "order" : 152, + "evaluatedValue" : 662 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_ReservedForModCtrl", + "docComment" : "[Internal] Reserved for mod storage", + "qualType" : "ImGuiKey", + "order" : 153, + "evaluatedValue" : 663 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_ReservedForModShift", + "docComment" : "[Internal] Reserved for mod storage", + "qualType" : "ImGuiKey", + "order" : 154, + "evaluatedValue" : 664 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_ReservedForModAlt", + "docComment" : "[Internal] Reserved for mod storage", + "qualType" : "ImGuiKey", + "order" : 155, + "evaluatedValue" : 665 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_ReservedForModSuper", + "docComment" : "[Internal] Reserved for mod storage", + "qualType" : "ImGuiKey", + "order" : 156, + "evaluatedValue" : 666 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_NamedKey_END", + "docComment" : "[Internal] If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.", + "qualType" : "ImGuiKey", + "order" : 157, + "evaluatedValue" : 667 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_NamedKey_COUNT", + "docComment" : "[Internal] If you need to iterate all keys (for e.g. an input mapper) you may use ImGuiKey_NamedKey_BEGIN..ImGuiKey_NamedKey_END.", + "qualType" : "ImGuiKey", + "order" : 158, + "value" : "ImGuiKey_NamedKey_END - ImGuiKey_NamedKey_BEGIN", + "evaluatedValue" : 155 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_None", + "docComment" : "Keyboard Modifiers (explicitly submitted by backend via AddKeyEvent() calls) - Any functions taking a ImGuiKeyChord parameter can binary-or those with regular keys, e.g. Shortcut(ImGuiMod_Ctrl | ImGuiKey_S). - Those are written back into io.KeyCtrl, io.KeyShift, io.KeyAlt, io.KeySuper for convenience, but may be accessed via standard key API such as IsKeyPressed(), IsKeyReleased(), querying duration etc. - Code polling every key (e.g. an interface to detect a key press for input mapping) might want to ignore those and prefer using the real keys (e.g. ImGuiKey_LeftCtrl, ImGuiKey_RightCtrl instead of ImGuiMod_Ctrl). - In theory the value of keyboard modifiers should be roughly equivalent to a logical or of the equivalent left/right keys. In practice: it's complicated; mods are often provided from different sources. Keyboard layout, IME, sticky keys and backends tend to interfere and break that equivalence. The safer decision is to relay that ambiguity down to the end-user... - On macOS, we swap Cmd(Super) and Ctrl keys at the time of the io.AddKeyEvent() call.", + "qualType" : "ImGuiKey", + "order" : 159, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Ctrl", + "docComment" : "Ctrl (non-macOS), Cmd (macOS)", + "qualType" : "ImGuiKey", + "order" : 160, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Shift", + "docComment" : "Shift", + "qualType" : "ImGuiKey", + "order" : 161, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Alt", + "docComment" : "Option/Menu", + "qualType" : "ImGuiKey", + "order" : 162, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Super", + "docComment" : "Windows/Super (non-macOS), Ctrl (macOS)", + "qualType" : "ImGuiKey", + "order" : 163, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Mask_", + "docComment" : "4-bits", + "qualType" : "ImGuiKey", + "order" : 164, + "value" : "0xF000", + "evaluatedValue" : 61440 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiKey_COUNT", + "docComment" : "Obsoleted in 1.91.5 because it was misleading (since named keys don't start at 0 anymore)", + "qualType" : "ImGuiKey", + "order" : 165, + "value" : "ImGuiKey_NamedKey_END", + "evaluatedValue" : 667 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMod_Shortcut", + "docComment" : "Removed in 1.90.7, you can now simply use ImGuiMod_Ctrl", + "qualType" : "ImGuiKey", + "order" : 166, + "value" : "ImGuiMod_Ctrl", + "evaluatedValue" : 4096 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for Shortcut(), SetNextItemShortcut()," + }, { + "@type" : "AstTextComment", + "text" : " (and for upcoming extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner() that are still in imgui_internal.h)" + }, { + "@type" : "AstTextComment", + "text" : " Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_None", + "qualType" : "ImGuiInputFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_Repeat", + "docComment" : "Enable repeat. Return true on successive repeats. Default for legacy IsKeyPressed(). NOT Default for legacy IsMouseClicked(). MUST BE == 1.", + "qualType" : "ImGuiInputFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteActive", + "docComment" : "Route to active item only.", + "qualType" : "ImGuiInputFlags_", + "order" : 2, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteFocused", + "docComment" : "Route to windows in the focus stack (DEFAULT). Deep-most focused window takes inputs. Active item takes inputs over deep-most focused window.", + "qualType" : "ImGuiInputFlags_", + "order" : 3, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteGlobal", + "docComment" : "Global route (unless a focused window or active item registered the route).", + "qualType" : "ImGuiInputFlags_", + "order" : 4, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteAlways", + "docComment" : "Do not register route, poll keys directly.", + "qualType" : "ImGuiInputFlags_", + "order" : 5, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteOverFocused", + "docComment" : "Option: global route: higher priority than focused route (unless active item in focused route).", + "qualType" : "ImGuiInputFlags_", + "order" : 6, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteOverActive", + "docComment" : "Option: global route: higher priority than active item. Unlikely you need to use that: will interfere with every active items, e.g. Ctrl+A registered by InputText will be overridden by this. May not be fully honored as user/internal code is likely to always assume they can access keys when active.", + "qualType" : "ImGuiInputFlags_", + "order" : 7, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteUnlessBgFocused", + "docComment" : "Option: global route: will not be applied if underlying background/void is focused (== no Dear ImGui windows are focused). Useful for overlay applications.", + "qualType" : "ImGuiInputFlags_", + "order" : 8, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteFromRootWindow", + "docComment" : "Option: route evaluated from the point of view of root window rather than current window.", + "qualType" : "ImGuiInputFlags_", + "order" : 9, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_Tooltip", + "docComment" : "Automatically display a tooltip when hovering item [BETA] Unsure of right api (opt-in/opt-out)", + "qualType" : "ImGuiInputFlags_", + "order" : 10, + "value" : "1 << 18", + "evaluatedValue" : 262144 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiConfigFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Configuration flags stored in io.ConfigFlags. Set by user/application." + }, { + "@type" : "AstTextComment", + "text" : " Note that nowadays most of our configuration options are in other ImGuiIO fields, e.g. io.ConfigWindowsMoveFromTitleBarOnly." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_None", + "qualType" : "ImGuiConfigFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NavEnableKeyboard", + "docComment" : "Master keyboard navigation enable flag. Enable full Tabbing + directional arrows + Space/Enter to activate. Note: some features such as basic Tabbing and CtrL+Tab are enabled by regardless of this flag (and may be disabled via other means, see #4828, #9218).", + "qualType" : "ImGuiConfigFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NavEnableGamepad", + "docComment" : "Master gamepad navigation enable flag. Backend also needs to set ImGuiBackendFlags_HasGamepad.", + "qualType" : "ImGuiConfigFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NoMouse", + "docComment" : "Instruct dear imgui to disable mouse inputs and interactions.", + "qualType" : "ImGuiConfigFlags_", + "order" : 3, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NoMouseCursorChange", + "docComment" : "Instruct backend to not alter mouse cursor shape and visibility. Use if the backend cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead.", + "qualType" : "ImGuiConfigFlags_", + "order" : 4, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NoKeyboard", + "docComment" : "Instruct dear imgui to disable keyboard inputs and interactions. This is done by ignoring keyboard events and clearing existing states.", + "qualType" : "ImGuiConfigFlags_", + "order" : 5, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_DockingEnable", + "docComment" : "Docking enable flags.", + "qualType" : "ImGuiConfigFlags_", + "order" : 6, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_ViewportsEnable", + "docComment" : "Viewport enable flags (require both ImGuiBackendFlags_PlatformHasViewports + ImGuiBackendFlags_RendererHasViewports set by the respective backends)", + "qualType" : "ImGuiConfigFlags_", + "order" : 7, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_IsSRGB", + "docComment" : "Application is SRGB-aware.", + "qualType" : "ImGuiConfigFlags_", + "order" : 8, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_IsTouchScreen", + "docComment" : "Application is using a touch screen instead of a mouse.", + "qualType" : "ImGuiConfigFlags_", + "order" : 9, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NavEnableSetMousePos", + "docComment" : "[moved/renamed in 1.91.4] -> use bool io.ConfigNavMoveSetMousePos", + "qualType" : "ImGuiConfigFlags_", + "order" : 10, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_NavNoCaptureKeyboard", + "docComment" : "[moved/renamed in 1.91.4] -> use bool io.ConfigNavCaptureKeyboard", + "qualType" : "ImGuiConfigFlags_", + "order" : 11, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_DpiEnableScaleFonts", + "docComment" : "[moved/renamed in 1.92.0] -> use bool io.ConfigDpiScaleFonts", + "qualType" : "ImGuiConfigFlags_", + "order" : 12, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiConfigFlags_DpiEnableScaleViewports", + "docComment" : "[moved/renamed in 1.92.0] -> use bool io.ConfigDpiScaleViewports", + "qualType" : "ImGuiConfigFlags_", + "order" : 13, + "value" : "1 << 15", + "evaluatedValue" : 32768 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiBackendFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Backend capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom backend." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_None", + "qualType" : "ImGuiBackendFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_HasGamepad", + "docComment" : "Backend Platform supports gamepad and currently has one connected.", + "qualType" : "ImGuiBackendFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_HasMouseCursors", + "docComment" : "Backend Platform supports honoring GetMouseCursor() value to change the OS cursor shape.", + "qualType" : "ImGuiBackendFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_HasSetMousePos", + "docComment" : "Backend Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if io.ConfigNavMoveSetMousePos is set).", + "qualType" : "ImGuiBackendFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_RendererHasVtxOffset", + "docComment" : "Backend Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices.", + "qualType" : "ImGuiBackendFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_RendererHasTextures", + "docComment" : "Backend Renderer supports ImTextureData requests to create/update/destroy textures. This enables incremental texture updates and texture reloads. See https://github.com/ocornut/imgui/blob/master/docs/BACKENDS.md for instructions on how to upgrade your custom backend.", + "qualType" : "ImGuiBackendFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_RendererHasViewports", + "docComment" : "Backend Renderer supports multiple viewports.", + "qualType" : "ImGuiBackendFlags_", + "order" : 6, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_PlatformHasViewports", + "docComment" : "Backend Platform supports multiple viewports.", + "qualType" : "ImGuiBackendFlags_", + "order" : 7, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_HasMouseHoveredViewport", + "docComment" : "Backend Platform supports calling io.AddMouseViewportEvent() with the viewport under the mouse. IF POSSIBLE, ignore viewports with the ImGuiViewportFlags_NoInputs flag (Win32 backend, GLFW 3.30+ backend can do this, SDL backend cannot). If this cannot be done, Dear ImGui needs to use a flawed heuristic to find the viewport under.", + "qualType" : "ImGuiBackendFlags_", + "order" : 8, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiBackendFlags_HasParentViewport", + "docComment" : "Backend Platform supports honoring viewport->ParentViewport/ParentViewportId value, by applying the corresponding parent/child relation at the Platform level.", + "qualType" : "ImGuiBackendFlags_", + "order" : 9, + "value" : "1 << 13", + "evaluatedValue" : 8192 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiCol_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumeration for PushStyleColor() / PopStyleColor()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Text", + "qualType" : "ImGuiCol_", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TextDisabled", + "qualType" : "ImGuiCol_", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_WindowBg", + "docComment" : "Background of normal windows", + "qualType" : "ImGuiCol_", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ChildBg", + "docComment" : "Background of child windows", + "qualType" : "ImGuiCol_", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_PopupBg", + "docComment" : "Background of popups, menus, tooltips windows", + "qualType" : "ImGuiCol_", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Border", + "qualType" : "ImGuiCol_", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_BorderShadow", + "qualType" : "ImGuiCol_", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_FrameBg", + "docComment" : "Background of checkbox, radio button, plot, slider, text input", + "qualType" : "ImGuiCol_", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_FrameBgHovered", + "qualType" : "ImGuiCol_", + "order" : 8, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_FrameBgActive", + "qualType" : "ImGuiCol_", + "order" : 9, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TitleBg", + "docComment" : "Title bar", + "qualType" : "ImGuiCol_", + "order" : 10, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TitleBgActive", + "docComment" : "Title bar when focused", + "qualType" : "ImGuiCol_", + "order" : 11, + "evaluatedValue" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TitleBgCollapsed", + "docComment" : "Title bar when collapsed", + "qualType" : "ImGuiCol_", + "order" : 12, + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_MenuBarBg", + "qualType" : "ImGuiCol_", + "order" : 13, + "evaluatedValue" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ScrollbarBg", + "qualType" : "ImGuiCol_", + "order" : 14, + "evaluatedValue" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ScrollbarGrab", + "qualType" : "ImGuiCol_", + "order" : 15, + "evaluatedValue" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ScrollbarGrabHovered", + "qualType" : "ImGuiCol_", + "order" : 16, + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ScrollbarGrabActive", + "qualType" : "ImGuiCol_", + "order" : 17, + "evaluatedValue" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_CheckMark", + "docComment" : "Checkbox tick and RadioButton circle", + "qualType" : "ImGuiCol_", + "order" : 18, + "evaluatedValue" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_SliderGrab", + "qualType" : "ImGuiCol_", + "order" : 19, + "evaluatedValue" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_SliderGrabActive", + "qualType" : "ImGuiCol_", + "order" : 20, + "evaluatedValue" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Button", + "qualType" : "ImGuiCol_", + "order" : 21, + "evaluatedValue" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ButtonHovered", + "qualType" : "ImGuiCol_", + "order" : 22, + "evaluatedValue" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ButtonActive", + "qualType" : "ImGuiCol_", + "order" : 23, + "evaluatedValue" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Header", + "docComment" : "Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem", + "qualType" : "ImGuiCol_", + "order" : 24, + "evaluatedValue" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_HeaderHovered", + "qualType" : "ImGuiCol_", + "order" : 25, + "evaluatedValue" : 25 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_HeaderActive", + "qualType" : "ImGuiCol_", + "order" : 26, + "evaluatedValue" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Separator", + "qualType" : "ImGuiCol_", + "order" : 27, + "evaluatedValue" : 27 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_SeparatorHovered", + "qualType" : "ImGuiCol_", + "order" : 28, + "evaluatedValue" : 28 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_SeparatorActive", + "qualType" : "ImGuiCol_", + "order" : 29, + "evaluatedValue" : 29 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ResizeGrip", + "docComment" : "Resize grip in lower-right and lower-left corners of windows.", + "qualType" : "ImGuiCol_", + "order" : 30, + "evaluatedValue" : 30 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ResizeGripHovered", + "qualType" : "ImGuiCol_", + "order" : 31, + "evaluatedValue" : 31 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ResizeGripActive", + "qualType" : "ImGuiCol_", + "order" : 32, + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_InputTextCursor", + "docComment" : "InputText cursor/caret", + "qualType" : "ImGuiCol_", + "order" : 33, + "evaluatedValue" : 33 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabHovered", + "docComment" : "Tab background, when hovered", + "qualType" : "ImGuiCol_", + "order" : 34, + "evaluatedValue" : 34 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_Tab", + "docComment" : "Tab background, when tab-bar is focused & tab is unselected", + "qualType" : "ImGuiCol_", + "order" : 35, + "evaluatedValue" : 35 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabSelected", + "docComment" : "Tab background, when tab-bar is focused & tab is selected", + "qualType" : "ImGuiCol_", + "order" : 36, + "evaluatedValue" : 36 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabSelectedOverline", + "docComment" : "Tab horizontal overline, when tab-bar is focused & tab is selected", + "qualType" : "ImGuiCol_", + "order" : 37, + "evaluatedValue" : 37 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabDimmed", + "docComment" : "Tab background, when tab-bar is unfocused & tab is unselected", + "qualType" : "ImGuiCol_", + "order" : 38, + "evaluatedValue" : 38 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabDimmedSelected", + "docComment" : "Tab background, when tab-bar is unfocused & tab is selected", + "qualType" : "ImGuiCol_", + "order" : 39, + "evaluatedValue" : 39 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabDimmedSelectedOverline", + "docComment" : "..horizontal overline, when tab-bar is unfocused & tab is selected", + "qualType" : "ImGuiCol_", + "order" : 40, + "evaluatedValue" : 40 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_DockingPreview", + "docComment" : "Preview overlay color when about to docking something", + "qualType" : "ImGuiCol_", + "order" : 41, + "evaluatedValue" : 41 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_DockingEmptyBg", + "docComment" : "Background color for empty node (e.g. CentralNode with no window docked into it)", + "qualType" : "ImGuiCol_", + "order" : 42, + "evaluatedValue" : 42 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_PlotLines", + "qualType" : "ImGuiCol_", + "order" : 43, + "evaluatedValue" : 43 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_PlotLinesHovered", + "qualType" : "ImGuiCol_", + "order" : 44, + "evaluatedValue" : 44 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_PlotHistogram", + "qualType" : "ImGuiCol_", + "order" : 45, + "evaluatedValue" : 45 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_PlotHistogramHovered", + "qualType" : "ImGuiCol_", + "order" : 46, + "evaluatedValue" : 46 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TableHeaderBg", + "docComment" : "Table header background", + "qualType" : "ImGuiCol_", + "order" : 47, + "evaluatedValue" : 47 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TableBorderStrong", + "docComment" : "Table outer and header borders (prefer using Alpha=1.0 here)", + "qualType" : "ImGuiCol_", + "order" : 48, + "evaluatedValue" : 48 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TableBorderLight", + "docComment" : "Table inner borders (prefer using Alpha=1.0 here)", + "qualType" : "ImGuiCol_", + "order" : 49, + "evaluatedValue" : 49 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TableRowBg", + "docComment" : "Table row background (even rows)", + "qualType" : "ImGuiCol_", + "order" : 50, + "evaluatedValue" : 50 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TableRowBgAlt", + "docComment" : "Table row background (odd rows)", + "qualType" : "ImGuiCol_", + "order" : 51, + "evaluatedValue" : 51 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TextLink", + "docComment" : "Hyperlink color", + "qualType" : "ImGuiCol_", + "order" : 52, + "evaluatedValue" : 52 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TextSelectedBg", + "docComment" : "Selected text inside an InputText", + "qualType" : "ImGuiCol_", + "order" : 53, + "evaluatedValue" : 53 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TreeLines", + "docComment" : "Tree node hierarchy outlines when using ImGuiTreeNodeFlags_DrawLines", + "qualType" : "ImGuiCol_", + "order" : 54, + "evaluatedValue" : 54 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_DragDropTarget", + "docComment" : "Rectangle border highlighting a drop target", + "qualType" : "ImGuiCol_", + "order" : 55, + "evaluatedValue" : 55 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_DragDropTargetBg", + "docComment" : "Rectangle background highlighting a drop target", + "qualType" : "ImGuiCol_", + "order" : 56, + "evaluatedValue" : 56 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_UnsavedMarker", + "docComment" : "Unsaved Document marker (in window title and tabs)", + "qualType" : "ImGuiCol_", + "order" : 57, + "evaluatedValue" : 57 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_NavCursor", + "docComment" : "Color of keyboard/gamepad navigation cursor/rectangle, when visible", + "qualType" : "ImGuiCol_", + "order" : 58, + "evaluatedValue" : 58 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_NavWindowingHighlight", + "docComment" : "Highlight window when using Ctrl+Tab", + "qualType" : "ImGuiCol_", + "order" : 59, + "evaluatedValue" : 59 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_NavWindowingDimBg", + "docComment" : "Darken/colorize entire screen behind the Ctrl+Tab window list, when active", + "qualType" : "ImGuiCol_", + "order" : 60, + "evaluatedValue" : 60 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_ModalWindowDimBg", + "docComment" : "Darken/colorize entire screen behind a modal window, when one is active", + "qualType" : "ImGuiCol_", + "order" : 61, + "evaluatedValue" : 61 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_COUNT", + "qualType" : "ImGuiCol_", + "order" : 62, + "evaluatedValue" : 62 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabActive", + "docComment" : "[renamed in 1.90.9]", + "qualType" : "ImGuiCol_", + "order" : 63, + "value" : "ImGuiCol_TabSelected", + "evaluatedValue" : 36 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabUnfocused", + "docComment" : "[renamed in 1.90.9]", + "qualType" : "ImGuiCol_", + "order" : 64, + "value" : "ImGuiCol_TabDimmed", + "evaluatedValue" : 38 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_TabUnfocusedActive", + "docComment" : "[renamed in 1.90.9]", + "qualType" : "ImGuiCol_", + "order" : 65, + "value" : "ImGuiCol_TabDimmedSelected", + "evaluatedValue" : 39 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCol_NavHighlight", + "docComment" : "[renamed in 1.91.4]", + "qualType" : "ImGuiCol_", + "order" : 66, + "value" : "ImGuiCol_NavCursor", + "evaluatedValue" : 58 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiStyleVar_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure." + }, { + "@type" : "AstTextComment", + "text" : " - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code." + }, { + "@type" : "AstTextComment", + "text" : " During initialization or between frames, feel free to just poke into ImGuiStyle directly." + }, { + "@type" : "AstTextComment", + "text" : " - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description." + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio: Ctrl+Comma (\"Edit.GoToAll\") can follow symbols inside comments, whereas Ctrl+F12 (\"Edit.GoToImplementation\") cannot." + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio w/ Visual Assist installed: Alt+G (\"VAssistX.GoToImplementation\") can also follow symbols inside comments." + }, { + "@type" : "AstTextComment", + "text" : " - In VS Code, CLion, etc.: Ctrl+Click can follow symbols inside comments." + }, { + "@type" : "AstTextComment", + "text" : " - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_Alpha", + "docComment" : "float Alpha", + "qualType" : "ImGuiStyleVar_", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_DisabledAlpha", + "docComment" : "float DisabledAlpha", + "qualType" : "ImGuiStyleVar_", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_WindowPadding", + "docComment" : "ImVec2 WindowPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_WindowRounding", + "docComment" : "float WindowRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_WindowBorderSize", + "docComment" : "float WindowBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_WindowMinSize", + "docComment" : "ImVec2 WindowMinSize", + "qualType" : "ImGuiStyleVar_", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_WindowTitleAlign", + "docComment" : "ImVec2 WindowTitleAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ChildRounding", + "docComment" : "float ChildRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ChildBorderSize", + "docComment" : "float ChildBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 8, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_PopupRounding", + "docComment" : "float PopupRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 9, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_PopupBorderSize", + "docComment" : "float PopupBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 10, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_FramePadding", + "docComment" : "ImVec2 FramePadding", + "qualType" : "ImGuiStyleVar_", + "order" : 11, + "evaluatedValue" : 11 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_FrameRounding", + "docComment" : "float FrameRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 12, + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_FrameBorderSize", + "docComment" : "float FrameBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 13, + "evaluatedValue" : 13 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ItemSpacing", + "docComment" : "ImVec2 ItemSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 14, + "evaluatedValue" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ItemInnerSpacing", + "docComment" : "ImVec2 ItemInnerSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 15, + "evaluatedValue" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_IndentSpacing", + "docComment" : "float IndentSpacing", + "qualType" : "ImGuiStyleVar_", + "order" : 16, + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_CellPadding", + "docComment" : "ImVec2 CellPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 17, + "evaluatedValue" : 17 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ScrollbarSize", + "docComment" : "float ScrollbarSize", + "qualType" : "ImGuiStyleVar_", + "order" : 18, + "evaluatedValue" : 18 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ScrollbarRounding", + "docComment" : "float ScrollbarRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 19, + "evaluatedValue" : 19 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ScrollbarPadding", + "docComment" : "float ScrollbarPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 20, + "evaluatedValue" : 20 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_GrabMinSize", + "docComment" : "float GrabMinSize", + "qualType" : "ImGuiStyleVar_", + "order" : 21, + "evaluatedValue" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_GrabRounding", + "docComment" : "float GrabRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 22, + "evaluatedValue" : 22 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ImageRounding", + "docComment" : "float ImageRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 23, + "evaluatedValue" : 23 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ImageBorderSize", + "docComment" : "float ImageBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 24, + "evaluatedValue" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabRounding", + "docComment" : "float TabRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 25, + "evaluatedValue" : 25 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabBorderSize", + "docComment" : "float TabBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 26, + "evaluatedValue" : 26 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabMinWidthBase", + "docComment" : "float TabMinWidthBase", + "qualType" : "ImGuiStyleVar_", + "order" : 27, + "evaluatedValue" : 27 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabMinWidthShrink", + "docComment" : "float TabMinWidthShrink", + "qualType" : "ImGuiStyleVar_", + "order" : 28, + "evaluatedValue" : 28 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabBarBorderSize", + "docComment" : "float TabBarBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 29, + "evaluatedValue" : 29 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TabBarOverlineSize", + "docComment" : "float TabBarOverlineSize", + "qualType" : "ImGuiStyleVar_", + "order" : 30, + "evaluatedValue" : 30 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TableAngledHeadersAngle", + "docComment" : "float TableAngledHeadersAngle", + "qualType" : "ImGuiStyleVar_", + "order" : 31, + "evaluatedValue" : 31 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TableAngledHeadersTextAlign", + "docComment" : "ImVec2 TableAngledHeadersTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 32, + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TreeLinesSize", + "docComment" : "float TreeLinesSize", + "qualType" : "ImGuiStyleVar_", + "order" : 33, + "evaluatedValue" : 33 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_TreeLinesRounding", + "docComment" : "float TreeLinesRounding", + "qualType" : "ImGuiStyleVar_", + "order" : 34, + "evaluatedValue" : 34 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_ButtonTextAlign", + "docComment" : "ImVec2 ButtonTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 35, + "evaluatedValue" : 35 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_SelectableTextAlign", + "docComment" : "ImVec2 SelectableTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 36, + "evaluatedValue" : 36 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_SeparatorSize", + "docComment" : "float SeparatorSize", + "qualType" : "ImGuiStyleVar_", + "order" : 37, + "evaluatedValue" : 37 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_SeparatorTextBorderSize", + "docComment" : "float SeparatorTextBorderSize", + "qualType" : "ImGuiStyleVar_", + "order" : 38, + "evaluatedValue" : 38 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_SeparatorTextAlign", + "docComment" : "ImVec2 SeparatorTextAlign", + "qualType" : "ImGuiStyleVar_", + "order" : 39, + "evaluatedValue" : 39 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_SeparatorTextPadding", + "docComment" : "ImVec2 SeparatorTextPadding", + "qualType" : "ImGuiStyleVar_", + "order" : 40, + "evaluatedValue" : 40 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_DockingSeparatorSize", + "docComment" : "float DockingSeparatorSize", + "qualType" : "ImGuiStyleVar_", + "order" : 41, + "evaluatedValue" : 41 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiStyleVar_COUNT", + "qualType" : "ImGuiStyleVar_", + "order" : 42, + "evaluatedValue" : 42 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiButtonFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for InvisibleButton() [extended in imgui_internal.h]" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_None", + "qualType" : "ImGuiButtonFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_MouseButtonLeft", + "docComment" : "React on left mouse button (default)", + "qualType" : "ImGuiButtonFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_MouseButtonRight", + "docComment" : "React on right mouse button", + "qualType" : "ImGuiButtonFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_MouseButtonMiddle", + "docComment" : "React on center mouse button", + "qualType" : "ImGuiButtonFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_MouseButtonMask_", + "docComment" : "[Internal]", + "qualType" : "ImGuiButtonFlags_", + "order" : 4, + "value" : "ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle", + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_EnableNav", + "docComment" : "InvisibleButton(): do not disable navigation/tabbing. Otherwise disabled by default.", + "qualType" : "ImGuiButtonFlags_", + "order" : 5, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_AllowOverlap", + "docComment" : "Hit testing will allow subsequent widgets to overlap this one. Require previous frame HoveredId to match before being usable. Shortcut to calling SetNextItemAllowOverlap().", + "qualType" : "ImGuiButtonFlags_", + "order" : 6, + "value" : "1 << 12", + "evaluatedValue" : 4096 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiColorEditFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_None", + "qualType" : "ImGuiColorEditFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoAlpha", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoPicker", + "docComment" : "// ColorEdit: disable picker when clicking on color square.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoOptions", + "docComment" : "// ColorEdit: disable toggling options menu when right-clicking on inputs/small preview.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoSmallPreview", + "docComment" : "// ColorEdit, ColorPicker: disable color square preview next to the inputs. (e.g. to show only the inputs)", + "qualType" : "ImGuiColorEditFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoInputs", + "docComment" : "// ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview color square).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoTooltip", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoLabel", + "docComment" : "// ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoSidePreview", + "docComment" : "// ColorPicker: disable bigger color preview on right side of the picker, use small color square preview instead.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 8, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoDragDrop", + "docComment" : "// ColorEdit: disable drag and drop target/source. ColorButton: disable drag and drop source.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 9, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoBorder", + "docComment" : "// ColorButton: disable border (which is enforced by default)", + "qualType" : "ImGuiColorEditFlags_", + "order" : 10, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_NoColorMarkers", + "docComment" : "// ColorEdit: disable rendering R/G/B/A color marker. May also be disabled globally by setting style.ColorMarkerSize = 0.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 11, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaOpaque", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: disable alpha in the preview,. Contrary to _NoAlpha it may still be edited when calling ColorEdit4()/ColorPicker4(). For ColorButton() this does the same as _NoAlpha.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 12, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaNoBg", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: disable rendering a checkerboard background behind transparent color.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 13, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaPreviewHalf", + "docComment" : "// ColorEdit, ColorPicker, ColorButton: display half opaque / half transparent preview.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 14, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaBar", + "docComment" : "// ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 15, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_HDR", + "docComment" : "// (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well).", + "qualType" : "ImGuiColorEditFlags_", + "order" : 16, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DisplayRGB", + "docComment" : "[Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 17, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DisplayHSV", + "docComment" : "[Display] // \"", + "qualType" : "ImGuiColorEditFlags_", + "order" : 18, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DisplayHex", + "docComment" : "[Display] // \"", + "qualType" : "ImGuiColorEditFlags_", + "order" : 19, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_Uint8", + "docComment" : "[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 20, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_Float", + "docComment" : "[DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 21, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_PickerHueBar", + "docComment" : "[Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 22, + "value" : "1 << 25", + "evaluatedValue" : 33554432 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_PickerHueWheel", + "docComment" : "[Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 23, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_InputRGB", + "docComment" : "[Input] // ColorEdit, ColorPicker: input and output data in RGB format.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 24, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_InputHSV", + "docComment" : "[Input] // ColorEdit, ColorPicker: input and output data in HSV format.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 25, + "value" : "1 << 28", + "evaluatedValue" : 268435456 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DefaultOptions_", + "docComment" : "Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 26, + "value" : "ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_PickerHueBar", + "evaluatedValue" : 177209344 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 27, + "value" : "ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaOpaque | ImGuiColorEditFlags_AlphaNoBg | ImGuiColorEditFlags_AlphaPreviewHalf", + "evaluatedValue" : 28674 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DisplayMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 28, + "value" : "ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_DisplayHex", + "evaluatedValue" : 7340032 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_DataTypeMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 29, + "value" : "ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_Float", + "evaluatedValue" : 25165824 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_PickerMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 30, + "value" : "ImGuiColorEditFlags_PickerHueWheel | ImGuiColorEditFlags_PickerHueBar", + "evaluatedValue" : 100663296 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_InputMask_", + "docComment" : "[Internal] Masks", + "qualType" : "ImGuiColorEditFlags_", + "order" : 31, + "value" : "ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_InputHSV", + "evaluatedValue" : 402653184 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiColorEditFlags_AlphaPreview", + "docComment" : "Removed in 1.91.8. This is the default now. Will display a checkerboard unless ImGuiColorEditFlags_AlphaNoBg is set.", + "qualType" : "ImGuiColorEditFlags_", + "order" : 32, + "value" : "0", + "evaluatedValue" : 0 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSliderFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for DragFloat(), DragInt(), SliderFloat(), SliderInt() etc." + }, { + "@type" : "AstTextComment", + "text" : " We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them." + }, { + "@type" : "AstTextComment", + "text" : " (Those are per-item flags. There is shared behavior flag too: ImGuiIO: io.ConfigDragClickToInputText)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_None", + "qualType" : "ImGuiSliderFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_Logarithmic", + "docComment" : "Make the widget logarithmic (linear otherwise). Consider using ImGuiSliderFlags_NoRoundToFormat with this if using a format-string with small amount of digits.", + "qualType" : "ImGuiSliderFlags_", + "order" : 1, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_NoRoundToFormat", + "docComment" : "Disable rounding underlying value to match precision of the display format string (e.g. %.3f values are rounded to those 3 digits).", + "qualType" : "ImGuiSliderFlags_", + "order" : 2, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_NoInput", + "docComment" : "Disable Ctrl+Click or Enter key allowing to input text directly into the widget.", + "qualType" : "ImGuiSliderFlags_", + "order" : 3, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_WrapAround", + "docComment" : "Enable wrapping around from max to min and from min to max. Only supported by DragXXX() functions for now.", + "qualType" : "ImGuiSliderFlags_", + "order" : 4, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_ClampOnInput", + "docComment" : "Clamp value to min/max bounds when input manually with Ctrl+Click. By default Ctrl+Click allows going out of bounds.", + "qualType" : "ImGuiSliderFlags_", + "order" : 5, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_ClampZeroRange", + "docComment" : "Clamp even if min==max==0.0f. Otherwise due to legacy reason DragXXX functions don't clamp with those values. When your clamping limits are dynamic you almost always want to use it.", + "qualType" : "ImGuiSliderFlags_", + "order" : 6, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_NoSpeedTweaks", + "docComment" : "Disable keyboard modifiers altering tweak speed. Useful if you want to alter tweak speed yourself based on your own logic.", + "qualType" : "ImGuiSliderFlags_", + "order" : 7, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_ColorMarkers", + "docComment" : "DragScalarN(), SliderScalarN(): Draw R/G/B/A color markers on each component.", + "qualType" : "ImGuiSliderFlags_", + "order" : 8, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_AlwaysClamp", + "qualType" : "ImGuiSliderFlags_", + "order" : 9, + "value" : "ImGuiSliderFlags_ClampOnInput | ImGuiSliderFlags_ClampZeroRange", + "evaluatedValue" : 1536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_InvalidMask_", + "docComment" : "[Internal] We treat using those bits as being potentially a 'float power' argument from legacy API (obsoleted 2020-08) that has got miscast to this enum, and will trigger an assert if needed.", + "qualType" : "ImGuiSliderFlags_", + "order" : 10, + "value" : "0x7000000F", + "evaluatedValue" : 1879048207 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiMouseButton_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Identify a mouse button." + }, { + "@type" : "AstTextComment", + "text" : " Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseButton_Left", + "qualType" : "ImGuiMouseButton_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseButton_Right", + "qualType" : "ImGuiMouseButton_", + "order" : 1, + "value" : "1", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseButton_Middle", + "qualType" : "ImGuiMouseButton_", + "order" : 2, + "value" : "2", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseButton_COUNT", + "qualType" : "ImGuiMouseButton_", + "order" : 3, + "value" : "5", + "evaluatedValue" : 5 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiMouseCursor_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumeration for GetMouseCursor()" + }, { + "@type" : "AstTextComment", + "text" : " User code may request backend to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_None", + "qualType" : "ImGuiMouseCursor_", + "order" : 0, + "value" : "-1", + "evaluatedValue" : -1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_Arrow", + "qualType" : "ImGuiMouseCursor_", + "order" : 1, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_TextInput", + "docComment" : "When hovering over InputText, etc.", + "qualType" : "ImGuiMouseCursor_", + "order" : 2, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_ResizeAll", + "docComment" : "(Unused by Dear ImGui functions)", + "qualType" : "ImGuiMouseCursor_", + "order" : 3, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_ResizeNS", + "docComment" : "When hovering over a horizontal border", + "qualType" : "ImGuiMouseCursor_", + "order" : 4, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_ResizeEW", + "docComment" : "When hovering over a vertical border or a column", + "qualType" : "ImGuiMouseCursor_", + "order" : 5, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_ResizeNESW", + "docComment" : "When hovering over the bottom-left corner of a window", + "qualType" : "ImGuiMouseCursor_", + "order" : 6, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_ResizeNWSE", + "docComment" : "When hovering over the bottom-right corner of a window", + "qualType" : "ImGuiMouseCursor_", + "order" : 7, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_Hand", + "docComment" : "(Unused by Dear ImGui functions. Use for e.g. hyperlinks)", + "qualType" : "ImGuiMouseCursor_", + "order" : 8, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_Wait", + "docComment" : "When waiting for something to process/load.", + "qualType" : "ImGuiMouseCursor_", + "order" : 9, + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_Progress", + "docComment" : "When waiting for something to process/load, but application is still interactive.", + "qualType" : "ImGuiMouseCursor_", + "order" : 10, + "evaluatedValue" : 9 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_NotAllowed", + "docComment" : "When hovering something with disallowed interaction. Usually a crossed circle.", + "qualType" : "ImGuiMouseCursor_", + "order" : 11, + "evaluatedValue" : 10 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseCursor_COUNT", + "qualType" : "ImGuiMouseCursor_", + "order" : 12, + "evaluatedValue" : 11 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiMouseSource", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumeration for AddMouseSourceEvent() actual source of Mouse Input data." + }, { + "@type" : "AstTextComment", + "text" : " Historically we use \"Mouse\" terminology everywhere to indicate pointer data, e.g. MousePos, IsMousePressed(), io.AddMousePosEvent()" + }, { + "@type" : "AstTextComment", + "text" : " But that \"Mouse\" data can come from different source which occasionally may be useful for application to know about." + }, { + "@type" : "AstTextComment", + "text" : " You can submit a change of pointer type using io.AddMouseSourceEvent()." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseSource_Mouse", + "docComment" : "Input is coming from an actual mouse.", + "qualType" : "ImGuiMouseSource", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseSource_TouchScreen", + "docComment" : "Input is coming from a touch screen (no hovering prior to initial press, less precise initial press aiming, dual-axis wheeling possible).", + "qualType" : "ImGuiMouseSource", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseSource_Pen", + "docComment" : "Input is coming from a pressure/magnetic pen (often used in conjunction with high-sampling rates).", + "qualType" : "ImGuiMouseSource", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMouseSource_COUNT", + "qualType" : "ImGuiMouseSource", + "order" : 3, + "evaluatedValue" : 3 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiCond_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumeration for ImGui::SetNextWindow***(), SetWindow***(), SetNextItem***() functions" + }, { + "@type" : "AstTextComment", + "text" : " Represent a condition." + }, { + "@type" : "AstTextComment", + "text" : " Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCond_None", + "docComment" : "No condition (always set the variable), same as _Always", + "qualType" : "ImGuiCond_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCond_Always", + "docComment" : "No condition (always set the variable), same as _None", + "qualType" : "ImGuiCond_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCond_Once", + "docComment" : "Set the variable once per runtime session (only the first call will succeed)", + "qualType" : "ImGuiCond_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCond_FirstUseEver", + "docComment" : "Set the variable if the object/window has no persistently saved data (no entry in .ini file)", + "qualType" : "ImGuiCond_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiCond_Appearing", + "docComment" : "Set the variable if the object/window is appearing after being hidden/inactive (or the first time)", + "qualType" : "ImGuiCond_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTableFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::BeginTable()" + }, { + "@type" : "AstTextComment", + "text" : " - Important! Sizing policies have complex and subtle side effects, much more so than you would expect." + }, { + "@type" : "AstTextComment", + "text" : " Read comments/demos carefully + experiment with live demos to get acquainted with them." + }, { + "@type" : "AstTextComment", + "text" : " - The DEFAULT sizing policies are:" + }, { + "@type" : "AstTextComment", + "text" : " - Default to ImGuiTableFlags_SizingFixedFit if ScrollX is on, or if host window has ImGuiWindowFlags_AlwaysAutoResize." + }, { + "@type" : "AstTextComment", + "text" : " - Default to ImGuiTableFlags_SizingStretchSame if ScrollX is off." + }, { + "@type" : "AstTextComment", + "text" : " - When ScrollX is off:" + }, { + "@type" : "AstTextComment", + "text" : " - Table defaults to ImGuiTableFlags_SizingStretchSame -> all Columns defaults to ImGuiTableColumnFlags_WidthStretch with same weight." + }, { + "@type" : "AstTextComment", + "text" : " - Columns sizing policy allowed: Stretch (default), Fixed/Auto." + }, { + "@type" : "AstTextComment", + "text" : " - Fixed Columns (if any) will generally obtain their requested width (unless the table cannot fit them all)." + }, { + "@type" : "AstTextComment", + "text" : " - Stretch Columns will share the remaining width according to their respective weight." + }, { + "@type" : "AstTextComment", + "text" : " - Mixed Fixed/Stretch columns is possible but has various side-effects on resizing behaviors." + }, { + "@type" : "AstTextComment", + "text" : " The typical use of mixing sizing policies is: any number of LEADING Fixed columns, followed by one or two TRAILING Stretch columns." + }, { + "@type" : "AstTextComment", + "text" : " (this is because the visible order of columns have subtle but necessary effects on how they react to manual resizing)." + }, { + "@type" : "AstTextComment", + "text" : " - When ScrollX is on:" + }, { + "@type" : "AstTextComment", + "text" : " - Table defaults to ImGuiTableFlags_SizingFixedFit -> all Columns defaults to ImGuiTableColumnFlags_WidthFixed" + }, { + "@type" : "AstTextComment", + "text" : " - Columns sizing policy allowed: Fixed/Auto mostly." + }, { + "@type" : "AstTextComment", + "text" : " - Fixed Columns can be enlarged as needed. Table will show a horizontal scrollbar if needed." + }, { + "@type" : "AstTextComment", + "text" : " - When using auto-resizing (non-resizable) fixed columns, querying the content width to use item right-alignment e.g. SetNextItemWidth(-FLT_MIN) doesn't make sense, would create a feedback loop." + }, { + "@type" : "AstTextComment", + "text" : " - Using Stretch columns OFTEN DOES NOT MAKE SENSE if ScrollX is on, UNLESS you have specified a value for 'inner_width' in BeginTable()." + }, { + "@type" : "AstTextComment", + "text" : " If you specify a value for 'inner_width' then effectively the scrolling space is known and Stretch or mixed Fixed/Stretch columns become meaningful again." + }, { + "@type" : "AstTextComment", + "text" : " - Read on documentation at the top of imgui_tables.cpp for details." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_None", + "docComment" : "Features", + "qualType" : "ImGuiTableFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_Resizable", + "docComment" : "Enable resizing columns.", + "qualType" : "ImGuiTableFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_Reorderable", + "docComment" : "Enable reordering columns in header row. (Need calling TableSetupColumn() + TableHeadersRow() to display headers, or using ImGuiTableFlags_ContextMenuInBody to access context-menu without headers).", + "qualType" : "ImGuiTableFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_Hideable", + "docComment" : "Enable hiding/disabling columns in context menu.", + "qualType" : "ImGuiTableFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_Sortable", + "docComment" : "Enable sorting. Call TableGetSortSpecs() to obtain sort specs. Also see ImGuiTableFlags_SortMulti and ImGuiTableFlags_SortTristate.", + "qualType" : "ImGuiTableFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoSavedSettings", + "docComment" : "Disable persisting columns order, width, visibility and sort settings in the .ini file.", + "qualType" : "ImGuiTableFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_ContextMenuInBody", + "docComment" : "Right-click on columns body/contents will also display table context menu. By default it is available in TableHeadersRow().", + "qualType" : "ImGuiTableFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_RowBg", + "docComment" : "Set each RowBg color with ImGuiCol_TableRowBg or ImGuiCol_TableRowBgAlt (equivalent of calling TableSetBgColor with ImGuiTableBgFlags_RowBg0 on each row manually)", + "qualType" : "ImGuiTableFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersInnerH", + "docComment" : "Draw horizontal borders between rows.", + "qualType" : "ImGuiTableFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersOuterH", + "docComment" : "Draw horizontal borders at the top and bottom.", + "qualType" : "ImGuiTableFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersInnerV", + "docComment" : "Draw vertical borders between columns.", + "qualType" : "ImGuiTableFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersOuterV", + "docComment" : "Draw vertical borders on the left and right sides.", + "qualType" : "ImGuiTableFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersH", + "docComment" : "Draw horizontal borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 12, + "value" : "ImGuiTableFlags_BordersInnerH | ImGuiTableFlags_BordersOuterH", + "evaluatedValue" : 384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersV", + "docComment" : "Draw vertical borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 13, + "value" : "ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersOuterV", + "evaluatedValue" : 1536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersInner", + "docComment" : "Draw inner borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 14, + "value" : "ImGuiTableFlags_BordersInnerV | ImGuiTableFlags_BordersInnerH", + "evaluatedValue" : 640 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_BordersOuter", + "docComment" : "Draw outer borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 15, + "value" : "ImGuiTableFlags_BordersOuterV | ImGuiTableFlags_BordersOuterH", + "evaluatedValue" : 1280 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_Borders", + "docComment" : "Draw all borders.", + "qualType" : "ImGuiTableFlags_", + "order" : 16, + "value" : "ImGuiTableFlags_BordersInner | ImGuiTableFlags_BordersOuter", + "evaluatedValue" : 1920 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoBordersInBody", + "docComment" : "[ALPHA] Disable vertical borders in columns Body (borders will always appear in Headers). -> May move to style", + "qualType" : "ImGuiTableFlags_", + "order" : 17, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoBordersInBodyUntilResize", + "docComment" : "[ALPHA] Disable vertical borders in columns Body until hovered for resize (borders will always appear in Headers). -> May move to style", + "qualType" : "ImGuiTableFlags_", + "order" : 18, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SizingFixedFit", + "docComment" : "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching contents width.", + "qualType" : "ImGuiTableFlags_", + "order" : 19, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SizingFixedSame", + "docComment" : "Columns default to _WidthFixed or _WidthAuto (if resizable or not resizable), matching the maximum contents width of all columns. Implicitly enable ImGuiTableFlags_NoKeepColumnsVisible.", + "qualType" : "ImGuiTableFlags_", + "order" : 20, + "value" : "2 << 13", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SizingStretchProp", + "docComment" : "Columns default to _WidthStretch with default weights proportional to each columns contents widths.", + "qualType" : "ImGuiTableFlags_", + "order" : 21, + "value" : "3 << 13", + "evaluatedValue" : 24576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SizingStretchSame", + "docComment" : "Columns default to _WidthStretch with default weights all equal, unless overridden by TableSetupColumn().", + "qualType" : "ImGuiTableFlags_", + "order" : 22, + "value" : "4 << 13", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoHostExtendX", + "docComment" : "Make outer width auto-fit to columns, overriding outer_size.x value. Only available when ScrollX/ScrollY are disabled and Stretch columns are not used.", + "qualType" : "ImGuiTableFlags_", + "order" : 23, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoHostExtendY", + "docComment" : "Make outer height stop exactly at outer_size.y (prevent auto-extending table past the limit). Only available when ScrollX/ScrollY are disabled. Data below the limit will be clipped and not visible.", + "qualType" : "ImGuiTableFlags_", + "order" : 24, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoKeepColumnsVisible", + "docComment" : "Disable keeping column always minimally visible when ScrollX is off and table gets too small. Not recommended if columns are resizable.", + "qualType" : "ImGuiTableFlags_", + "order" : 25, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_PreciseWidths", + "docComment" : "Disable distributing remainder width to stretched columns (width allocation on a 100-wide table with 3 columns: Without this flag: 33,33,34. With this flag: 33,33,33). With larger number of columns, resizing will appear to be less smooth.", + "qualType" : "ImGuiTableFlags_", + "order" : 26, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoClip", + "docComment" : "Disable clipping rectangle for every individual columns (reduce draw command count, items will be able to overflow into other columns). Generally incompatible with TableSetupScrollFreeze().", + "qualType" : "ImGuiTableFlags_", + "order" : 27, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_PadOuterX", + "docComment" : "Default if BordersOuterV is on. Enable outermost padding. Generally desirable if you have headers.", + "qualType" : "ImGuiTableFlags_", + "order" : 28, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoPadOuterX", + "docComment" : "Default if BordersOuterV is off. Disable outermost padding.", + "qualType" : "ImGuiTableFlags_", + "order" : 29, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_NoPadInnerX", + "docComment" : "Disable inner padding between columns (double inner padding if BordersOuterV is on, single inner padding if BordersOuterV is off).", + "qualType" : "ImGuiTableFlags_", + "order" : 30, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_ScrollX", + "docComment" : "Enable horizontal scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size. Changes default sizing policy. Because this creates a child window, ScrollY is currently generally recommended when using ScrollX.", + "qualType" : "ImGuiTableFlags_", + "order" : 31, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_ScrollY", + "docComment" : "Enable vertical scrolling. Require 'outer_size' parameter of BeginTable() to specify the container size.", + "qualType" : "ImGuiTableFlags_", + "order" : 32, + "value" : "1 << 25", + "evaluatedValue" : 33554432 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SortMulti", + "docComment" : "Hold shift when clicking headers to sort on multiple column. TableGetSortSpecs() may return specs where (SpecsCount > 1).", + "qualType" : "ImGuiTableFlags_", + "order" : 33, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SortTristate", + "docComment" : "Allow no sorting, disable default sorting. TableGetSortSpecs() may return specs where (SpecsCount == 0).", + "qualType" : "ImGuiTableFlags_", + "order" : 34, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_HighlightHoveredColumn", + "docComment" : "Highlight column headers when hovered (may evolve into a fuller highlight)", + "qualType" : "ImGuiTableFlags_", + "order" : 35, + "value" : "1 << 28", + "evaluatedValue" : 268435456 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableFlags_SizingMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableFlags_", + "order" : 36, + "value" : "ImGuiTableFlags_SizingFixedFit | ImGuiTableFlags_SizingFixedSame | ImGuiTableFlags_SizingStretchProp | ImGuiTableFlags_SizingStretchSame", + "evaluatedValue" : 57344 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTableColumnFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::TableSetupColumn()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_None", + "docComment" : "Input configuration flags", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_Disabled", + "docComment" : "Overriding/master disable flag: hide column, won't show in context menu (unlike calling TableSetColumnEnabled() which manipulates the user accessible state)", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_DefaultHide", + "docComment" : "Default as a hidden/disabled column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_DefaultSort", + "docComment" : "Default as a sorting column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_WidthStretch", + "docComment" : "Column will stretch. Preferable with horizontal scrolling disabled (default if table sizing policy is _SizingStretchSame or _SizingStretchProp).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_WidthFixed", + "docComment" : "Column will not stretch. Preferable with horizontal scrolling enabled (default if table sizing policy is _SizingFixedFit and table is resizable).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoResize", + "docComment" : "Disable manual resizing.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoReorder", + "docComment" : "Disable manual reordering this column, this will also prevent other columns from crossing over this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoHide", + "docComment" : "Disable ability to hide/disable this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoClip", + "docComment" : "Disable clipping for this column (all NoClip columns will render in a same draw command).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoSort", + "docComment" : "Disable ability to sort on this field (even if ImGuiTableFlags_Sortable is set on the table).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoSortAscending", + "docComment" : "Disable ability to sort in the ascending direction.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoSortDescending", + "docComment" : "Disable ability to sort in the descending direction.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoHeaderLabel", + "docComment" : "TableHeadersRow() will submit an empty label for this column. Convenient for some small columns. Name will still appear in context menu or in angled headers. You may append into this cell by calling TableSetColumnIndex() right after the TableHeadersRow() call.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoHeaderWidth", + "docComment" : "Disable header text width contribution to automatic column width.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_PreferSortAscending", + "docComment" : "Make the initial sort direction Ascending when first sorting on this column (default).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_PreferSortDescending", + "docComment" : "Make the initial sort direction Descending when first sorting on this column.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IndentEnable", + "docComment" : "Use current Indent value when entering cell (default for column 0).", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IndentDisable", + "docComment" : "Ignore current Indent value when entering cell (default for columns > 0). Indentation changes _within_ the cell will still be honored.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_AngledHeader", + "docComment" : "TableHeadersRow() will submit an angled header row for this column. Note this will add an extra row.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 19, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IsEnabled", + "docComment" : "Status: is enabled == not hidden by user/api (referred to as \"Hide\" in _DefaultHide and _NoHide) flags.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 20, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IsVisible", + "docComment" : "Status: is visible == is enabled AND not clipped by scrolling.", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 21, + "value" : "1 << 25", + "evaluatedValue" : 33554432 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IsSorted", + "docComment" : "Status: is currently part of the sort specs", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 22, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IsHovered", + "docComment" : "Status: is hovered by mouse", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 23, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_WidthMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 24, + "value" : "ImGuiTableColumnFlags_WidthStretch | ImGuiTableColumnFlags_WidthFixed", + "evaluatedValue" : 24 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_IndentMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 25, + "value" : "ImGuiTableColumnFlags_IndentEnable | ImGuiTableColumnFlags_IndentDisable", + "evaluatedValue" : 196608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_StatusMask_", + "docComment" : "[Internal] Combinations and masks", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 26, + "value" : "ImGuiTableColumnFlags_IsEnabled | ImGuiTableColumnFlags_IsVisible | ImGuiTableColumnFlags_IsSorted | ImGuiTableColumnFlags_IsHovered", + "evaluatedValue" : 251658240 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableColumnFlags_NoDirectResize_", + "docComment" : "[Internal] Disable user resizing this column directly (it may however we resized indirectly from its left edge)", + "qualType" : "ImGuiTableColumnFlags_", + "order" : 27, + "value" : "1 << 30", + "evaluatedValue" : 1073741824 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTableRowFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::TableNextRow()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableRowFlags_None", + "qualType" : "ImGuiTableRowFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableRowFlags_Headers", + "docComment" : "Identify header row (set default background color + width of its contents accounted differently for auto column width)", + "qualType" : "ImGuiTableRowFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTableBgTarget_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enum for ImGui::TableSetBgColor()" + }, { + "@type" : "AstTextComment", + "text" : " Background colors are rendering in 3 layers:" + }, { + "@type" : "AstTextComment", + "text" : " - Layer 0: draw with RowBg0 color if set, otherwise draw with ColumnBg0 if set." + }, { + "@type" : "AstTextComment", + "text" : " - Layer 1: draw with RowBg1 color if set, otherwise draw with ColumnBg1 if set." + }, { + "@type" : "AstTextComment", + "text" : " - Layer 2: draw with CellBg color if set." + }, { + "@type" : "AstTextComment", + "text" : " The purpose of the two row/columns layers is to let you decide if a background color change should override or blend with the existing color." + }, { + "@type" : "AstTextComment", + "text" : " When using ImGuiTableFlags_RowBg on the table, each row has the RowBg0 color automatically set for odd/even rows." + }, { + "@type" : "AstTextComment", + "text" : " If you set the color of RowBg0 target, your color will override the existing RowBg0 color." + }, { + "@type" : "AstTextComment", + "text" : " If you set the color of RowBg1 or ColumnBg1 target, your color will blend over the RowBg0 color." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableBgTarget_None", + "qualType" : "ImGuiTableBgTarget_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableBgTarget_RowBg0", + "docComment" : "Set row background color 0 (generally used for background, automatically set when ImGuiTableFlags_RowBg is used)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 1, + "value" : "1", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableBgTarget_RowBg1", + "docComment" : "Set row background color 1 (generally used for selection marking)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 2, + "value" : "2", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTableBgTarget_CellBg", + "docComment" : "Set cell background color (top-most color)", + "qualType" : "ImGuiTableBgTarget_", + "order" : 3, + "value" : "3", + "evaluatedValue" : 3 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTableSortSpecs", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Sorting specifications for a table (often handling sort specs for a single column, occasionally more)" + }, { + "@type" : "AstTextComment", + "text" : " Obtained by calling TableGetSortSpecs()." + }, { + "@type" : "AstTextComment", + "text" : " When 'SpecsDirty == true' you can sort your data. It will be true with sorting specs have changed since last call, or the first time." + }, { + "@type" : "AstTextComment", + "text" : " Make sure to set 'SpecsDirty = false' after sorting, else you may wastefully sort your data every frame!" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Specs", + "qualType" : "const ImGuiTableColumnSortSpecs *", + "desugaredQualType" : "const ImGuiTableColumnSortSpecs *" + }, { + "@type" : "AstFieldDecl", + "name" : "SpecsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SpecsDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTableColumnSortSpecs", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Sorting specification for one column of a table (sizeof == 12 bytes)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ColumnUserID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ColumnIndex", + "qualType" : "ImS16", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SortOrder", + "qualType" : "ImS16", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SortDirection", + "qualType" : "ImGuiSortDirection", + "desugaredQualType" : "ImGuiSortDirection" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImNewWrapper", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " IM_MALLOC(), IM_FREE(), IM_NEW(), IM_PLACEMENT_NEW(), IM_DELETE()" + }, { + "@type" : "AstTextComment", + "text" : " We call C++ constructor on own allocated memory via the placement \"new(ptr) Type()\" syntax." + }, { + "@type" : "AstTextComment", + "text" : " Defining a custom placement new() with a custom parameter allows us to bypass including " + }, { + "@type" : "AstTextComment", + "text" : " which on some platforms complains when user has disabled exceptions." + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiStyle", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] ImGuiStyle" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame()." + }, { + "@type" : "AstTextComment", + "text" : " During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values," + }, { + "@type" : "AstTextComment", + "text" : " and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors." + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "FontSizeBase", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontScaleMain", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontScaleDpi", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Alpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DisabledAlpha", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowBorderHoverPadding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowMinSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowTitleAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowMenuButtonPosition", + "qualType" : "ImGuiDir", + "desugaredQualType" : "ImGuiDir" + }, { + "@type" : "AstFieldDecl", + "name" : "ChildRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ChildBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "PopupRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "PopupBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FramePadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "FrameRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FrameBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemSpacing", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemInnerSpacing", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "CellPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "TouchExtraPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "IndentSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ColumnsMinSpacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ScrollbarSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ScrollbarRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ScrollbarPadding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GrabMinSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GrabRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "LogSliderDeadzone", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ImageRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ImageBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabMinWidthBase", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabMinWidthShrink", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabCloseButtonMinWidthSelected", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabCloseButtonMinWidthUnselected", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabBarBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TabBarOverlineSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TableAngledHeadersAngle", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TableAngledHeadersTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "TreeLinesFlags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TreeLinesSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "TreeLinesRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DragDropTargetRounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DragDropTargetBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DragDropTargetPadding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ColorMarkerSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ColorButtonPosition", + "qualType" : "ImGuiDir", + "desugaredQualType" : "ImGuiDir" + }, { + "@type" : "AstFieldDecl", + "name" : "ButtonTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectableTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SeparatorSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "SeparatorTextBorderSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "SeparatorTextAlign", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SeparatorTextPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayWindowPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplaySafeAreaPadding", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DockingNodeHasCloseButton", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "DockingSeparatorSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseCursorScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "AntiAliasedLines", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "AntiAliasedLinesUseTex", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "AntiAliasedFill", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "CurveTessellationTol", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CircleTessellationMaxError", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Colors", + "qualType" : "ImVec4[62]", + "desugaredQualType" : "ImVec4[62]" + }, { + "@type" : "AstFieldDecl", + "name" : "HoverStationaryDelay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HoverDelayShort", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HoverDelayNormal", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HoverFlagsForTooltipMouse", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "HoverFlagsForTooltipNav", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ScaleAllSizes", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scale_factor", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiKeyData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] Storage used by IsKeyDown(), IsKeyPressed() etc functions." + }, { + "@type" : "AstTextComment", + "text" : " If prior to 1.87 you used io.KeysDownDuration[] (which was marked as internal), you should use GetKeyData(key)->DownDuration and *NOT* io.KeysData[key]->DownDuration." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Down", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "DownDuration", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DownDurationPrev", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "AnalogValue", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiIO", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "ConfigFlags", + "qualType" : "ImGuiConfigFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendFlags", + "qualType" : "ImGuiBackendFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplaySize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayFramebufferScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DeltaTime", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "IniSavingRate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "IniFilename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "LogFilename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Fonts", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontDefault", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontAllowUserScaling", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavSwapGamepadButtons", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavMoveSetMousePos", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavCaptureKeyboard", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavEscapeClearFocusItem", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavEscapeClearFocusWindow", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavCursorVisibleAuto", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigNavCursorVisibleAlways", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDockingNoSplit", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDockingNoDockingOver", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDockingWithShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDockingAlwaysTabBar", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDockingTransparentPayload", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigViewportsNoAutoMerge", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigViewportsNoTaskBarIcon", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigViewportsNoDecoration", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigViewportsNoDefaultParent", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigViewportsPlatformFocusSetsImGuiFocus", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDpiScaleFonts", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDpiScaleViewports", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDrawCursor", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigMacOSXBehaviors", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigInputTrickleEventQueue", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigInputTextCursorBlink", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigInputTextEnterKeepActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDragClickToInputText", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigWindowsResizeFromEdges", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigWindowsMoveFromTitleBarOnly", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigWindowsCopyContentsWithCtrlC", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigScrollbarScrollByPage", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigMemoryCompactTimer", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDoubleClickTime", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDoubleClickMaxDist", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDragThreshold", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyRepeatDelay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyRepeatRate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigErrorRecovery", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigErrorRecoveryEnableAssert", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigErrorRecoveryEnableDebugLog", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigErrorRecoveryEnableTooltip", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugIsDebuggerPresent", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugHighlightIdConflicts", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugHighlightIdConflictsShowItemPicker", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugBeginReturnValueOnce", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugBeginReturnValueLoop", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugIgnoreFocusLoss", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ConfigDebugIniSettings", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendPlatformName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendRendererName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendPlatformUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendRendererUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendLanguageUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "name" : "AddKeyEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "down", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Input Functions" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddKeyAnalogEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "down", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddMousePosEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddMouseButtonEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "down", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddMouseWheelEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "wheel_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "wheel_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddMouseSourceEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "source", + "qualType" : "ImGuiMouseSource", + "desugaredQualType" : "ImGuiMouseSource" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddMouseViewportEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFocusEvent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "focused", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddInputCharacter", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddInputCharacterUTF16", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar16", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddInputCharactersUTF8", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetKeyEventNativeData", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "native_keycode", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "native_scancode", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "native_legacy_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "-1" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAppAcceptingEvents", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "accepting_events", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearEventsQueue", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearInputKeys", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearInputMouse", + "resultType" : "void" + }, { + "@type" : "AstFieldDecl", + "name" : "WantCaptureMouse", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantCaptureKeyboard", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantTextInput", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantSetMousePos", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantSaveIniSettings", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "NavActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "NavVisible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "Framerate", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MetricsRenderVertices", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "MetricsRenderIndices", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "MetricsRenderWindows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "MetricsActiveWindows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDelta", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "MousePos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDown", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseWheel", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseWheelH", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseSource", + "qualType" : "ImGuiMouseSource", + "desugaredQualType" : "ImGuiMouseSource" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseHoveredViewport", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyCtrl", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyShift", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyAlt", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "KeySuper", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyMods", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "KeysData", + "qualType" : "ImGuiKeyData[155]", + "desugaredQualType" : "ImGuiKeyData[155]" + }, { + "@type" : "AstFieldDecl", + "name" : "WantCaptureMouseUnlessPopupClose", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MousePosPrev", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseClickedPos", + "qualType" : "ImVec2[5]", + "desugaredQualType" : "ImVec2[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseClickedTime", + "qualType" : "double[5]", + "desugaredQualType" : "double[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseClicked", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDoubleClicked", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseClickedCount", + "qualType" : "ImU16[5]", + "desugaredQualType" : "ImU16[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseClickedLastCount", + "qualType" : "ImU16[5]", + "desugaredQualType" : "ImU16[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseReleased", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseReleasedTime", + "qualType" : "double[5]", + "desugaredQualType" : "double[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDownOwned", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDownOwnedUnlessPopupClose", + "qualType" : "bool[5]", + "desugaredQualType" : "bool[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseWheelRequestAxisSwap", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseCtrlLeftAsRightClick", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDownDuration", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDownDurationPrev", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDragMaxDistanceAbs", + "qualType" : "ImVec2[5]", + "desugaredQualType" : "ImVec2[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseDragMaxDistanceSqr", + "qualType" : "float[5]", + "desugaredQualType" : "float[5]" + }, { + "@type" : "AstFieldDecl", + "name" : "PenPressure", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "AppFocusLost", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "AppAcceptingEvents", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "InputQueueSurrogate", + "qualType" : "ImWchar16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "InputQueueCharacters", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "FontGlobalScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GetClipboardTextFn", + "qualType" : "const char *(*)(void *)", + "desugaredQualType" : "const char *(*)(void *)" + }, { + "@type" : "AstFieldDecl", + "name" : "SetClipboardTextFn", + "qualType" : "void (*)(void *, const char *)", + "desugaredQualType" : "void (*)(void *, const char *)" + }, { + "@type" : "AstFieldDecl", + "name" : "ClipboardUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputTextCallbackData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used." + }, { + "@type" : "AstTextComment", + "text" : " The callback function should return 0 by default." + }, { + "@type" : "AstTextComment", + "text" : " Callbacks (follow a flag name and see comments in ImGuiInputTextFlags_ declarations for more details)" + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackEdit: Callback on buffer edit. Note that InputText() already returns true on edit + you can always use IsItemEdited(). The callback is useful to manipulate the underlying buffer while focus is active." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackAlways: Callback on each iteration" + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackCompletion: Callback on pressing TAB" + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows" + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "EventFlag", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "EventKey", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFieldDecl", + "name" : "EventChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "EventActivated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "BufDirty", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "Buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstFieldDecl", + "name" : "BufTextLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "BufSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "CursorPos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectionStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectionEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "DeleteChars", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "bytes_count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InsertChars", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "e", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "HasSelection", + "resultType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiSizeCallbackData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin()." + }, { + "@type" : "AstTextComment", + "text" : " NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "CurrentSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DesiredSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiWindowClass", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [ALPHA] Rarely used / very advanced uses only. Use with SetNextWindowClass() and DockSpace() functions." + }, { + "@type" : "AstTextComment", + "text" : " Important: the content of this class is still highly WIP and likely to change and be refactored" + }, { + "@type" : "AstTextComment", + "text" : " before we stabilize Docking features. Please be mindful if using this." + }, { + "@type" : "AstTextComment", + "text" : " Provide hints:" + }, { + "@type" : "AstTextComment", + "text" : " - To the platform backend via altered viewport flags (enable/disable OS decoration, OS task bar icons, etc.)" + }, { + "@type" : "AstTextComment", + "text" : " - To the platform backend for OS level parent/child relationships of viewport." + }, { + "@type" : "AstTextComment", + "text" : " - To the docking system for various options and filtering." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ClassId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "FocusRouteParentWindowId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ViewportFlagsOverrideSet", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ViewportFlagsOverrideClear", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TabItemFlagsOverrideSet", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DockNodeFlagsOverrideSet", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DockingAlwaysTabBar", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "DockingAllowUnclassed", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPayload", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "DataSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SourceId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "SourceParentId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "DataFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DataType", + "qualType" : "char[33]", + "desugaredQualType" : "char[33]" + }, { + "@type" : "AstFieldDecl", + "name" : "Preview", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "Delivery", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsDataType", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsPreview", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsDelivery", + "resultType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiOnceUponAFrame", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: Execute a block of code at maximum once a frame. Convenient if you want to quickly create a UI within deep-nested code that runs multiple times every frame." + }, { + "@type" : "AstTextComment", + "text" : " Usage: static ImGuiOnceUponAFrame oaf; if (oaf) ImGui::Text(\"This will be called only once per frame\");" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "RefFrame", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTextFilter", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: Parse and apply text filters. In format \"aaaaa[,bbbb][,ccccc]\"" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Draw", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\"Filter (inc,-exc)\"" + }, { + "@type" : "AstParmVarDecl", + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PassFilter", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Build", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsActive", + "resultType" : "bool" + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTextRange", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "b", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "e", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "split", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "separator", + "qualType" : "char", + "desugaredQualType" : "char" + }, { + "@type" : "AstParmVarDecl", + "name" : "out", + "qualType" : "ImVector *", + "desugaredQualType" : "ImVector *" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "InputBuf", + "qualType" : "char[256]", + "desugaredQualType" : "char[256]" + }, { + "@type" : "AstFieldDecl", + "name" : "Filters", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "CountGrep", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTextBuffer", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: Growable text buffer for logging/accumulating text" + }, { + "@type" : "AstTextComment", + "text" : " (this could be called 'ImGuiTextBuilder' / 'ImGuiStringBuilder')" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Buf", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "begin", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "end", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "size", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "empty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "resize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "reserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "capacity", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "c_str", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "append", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "appendf", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "appendfv", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiStoragePair", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] Key+Value for ImGuiStorage" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiStorage", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: Key->Value storage" + }, { + "@type" : "AstTextComment", + "text" : " Typically you don't have to worry about this since a storage is held within each Window." + }, { + "@type" : "AstTextComment", + "text" : " We use it to e.g. store collapse state for a tree (Int 0/1)" + }, { + "@type" : "AstTextComment", + "text" : " This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame)" + }, { + "@type" : "AstTextComment", + "text" : " You can use it as custom user storage for temporary values. Declare your own storage if, for example:" + }, { + "@type" : "AstTextComment", + "text" : " - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state)." + }, { + "@type" : "AstTextComment", + "text" : " - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient)" + }, { + "@type" : "AstTextComment", + "text" : " Types are NOT stored, so it is up to you to make sure your Key don't collide with different types." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Data", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N)" + }, { + "@type" : "AstTextComment", + "text" : " - Set***() functions find pair, insertion on demand if missing." + }, { + "@type" : "AstTextComment", + "text" : " - Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetInt", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetInt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBool", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetBool", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFloat", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFloat", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetVoidPtr", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetVoidPtr", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetIntRef", + "resultType" : "int *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set." + }, { + "@type" : "AstTextComment", + "text" : " - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer." + }, { + "@type" : "AstTextComment", + "text" : " - A typical use case where this is convenient for quick hacking (e.g. add storage during a live Edit" + }, { + "@type" : "AstTextComment", + "text" : "&Continue" + }, { + "@type" : "AstTextComment", + "text" : " session if you can't modify existing struct)" + }, { + "@type" : "AstTextComment", + "text" : " float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat(\"var\", pvar, 0, 100.0f); some_var += *pvar;" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBoolRef", + "resultType" : "bool *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFloatRef", + "resultType" : "float *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetVoidPtrRef", + "resultType" : "void **", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_val", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BuildSortByKey", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Advanced: for quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAllInt", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Obsolete: use on your own storage if you know only integer are being stored (open/close all tree nodes)" + } ] + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiListClipperFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGuiListClipper (currently not fully exposed in function calls: a future refactor will likely add this to ImGuiListClipper::Begin function equivalent)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiListClipperFlags_None", + "qualType" : "ImGuiListClipperFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiListClipperFlags_NoSetTableRowCounters", + "docComment" : "[Internal] Disabled modifying table row counters. Avoid assumption that 1 clipper item == 1 table row.", + "qualType" : "ImGuiListClipperFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiListClipper", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: Manually clip large list of items." + }, { + "@type" : "AstTextComment", + "text" : " If you have lots evenly spaced items and you have random access to the list, you can perform coarse" + }, { + "@type" : "AstTextComment", + "text" : " clipping based on visibility to only submit items that are in view." + }, { + "@type" : "AstTextComment", + "text" : " The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped." + }, { + "@type" : "AstTextComment", + "text" : " (Dear ImGui already clip items based on their bounds but: it needs to first layout the item to do so, and generally" + }, { + "@type" : "AstTextComment", + "text" : " fetching/submitting your own data incurs additional cost. Coarse clipping using ImGuiListClipper allows you to easily" + }, { + "@type" : "AstTextComment", + "text" : " scale using lists with tens of thousands of items without a problem)" + }, { + "@type" : "AstTextComment", + "text" : " Usage:" + }, { + "@type" : "AstTextComment", + "text" : " ImGuiListClipper clipper;" + }, { + "@type" : "AstTextComment", + "text" : " clipper.Begin(1000); // We have 1000 elements, evenly spaced." + }, { + "@type" : "AstTextComment", + "text" : " while (clipper.Step())" + }, { + "@type" : "AstTextComment", + "text" : " for (int i = clipper.DisplayStart; i " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " clipper.DisplayEnd; i++)" + }, { + "@type" : "AstTextComment", + "text" : " ImGui::Text(\"line number %d\", i);" + }, { + "@type" : "AstTextComment", + "text" : " Generally what happens is:" + }, { + "@type" : "AstTextComment", + "text" : " - Clipper lets you process the first element (DisplayStart = 0, DisplayEnd = 1) regardless of it being visible or not." + }, { + "@type" : "AstTextComment", + "text" : " - User code submit that one element." + }, { + "@type" : "AstTextComment", + "text" : " - Clipper can measure the height of the first element" + }, { + "@type" : "AstTextComment", + "text" : " - Clipper calculate the actual range of elements to display based on the current clipping rectangle, position the cursor before the first visible element." + }, { + "@type" : "AstTextComment", + "text" : " - User code submit visible elements." + }, { + "@type" : "AstTextComment", + "text" : " - The clipper also handles various subtleties related to keyboard/gamepad navigation, wrapping etc." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "UserIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemsHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiListClipperFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "StartPosY", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFieldDecl", + "name" : "StartSeekOffsetY", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstFieldDecl", + "name" : "Ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "TempData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "name" : "Begin", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_height", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Step", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IncludeItemByIndex", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Call IncludeItemByIndex() or IncludeItemsByIndex() *BEFORE* first call to Step() if you need a range of items to not be clipped, regardless of their visibility." + }, { + "@type" : "AstTextComment", + "text" : " (Due to alignment / padding of certain items it is possible that an extra item may be included on either end of the display range)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IncludeItemsByIndex", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_begin", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "item_end", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SeekCursorForItem", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Seek cursor toward given item. This is automatically called while stepping." + }, { + "@type" : "AstTextComment", + "text" : " - The only reason to call this is: you can use ImGuiListClipper::Begin(INT_MAX) if you don't know item count ahead of time." + }, { + "@type" : "AstTextComment", + "text" : " - In this case, after all steps are done, you'll want to call SeekCursorForItem(item_count)." + } ] + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImColor", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImColor() implicitly converts colors to either ImU32 (packed 4x1 byte) or ImVec4 (4x1 float)" + }, { + "@type" : "AstTextComment", + "text" : " Prefer using IM_COL32() macros if you want a guaranteed compile-time ImU32 for usage with ImDrawList API." + }, { + "@type" : "AstTextComment", + "text" : " **Avoid storing ImColor! Store either u32 of ImVec4. This is not a full-featured color class. MAY OBSOLETE." + }, { + "@type" : "AstTextComment", + "text" : " **None of the ImGui API are using ImColor directly but you can use it as a convenience to pass colors in either ImU32 or ImVec4 formats. Explicitly cast to ImU32 or ImVec4 if needed." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Value", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetHSV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " FIXME-OBSOLETE: May need to obsolete/cleanup those helpers." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "HSV", + "resultType" : "ImColor", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiMultiSelectFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for BeginMultiSelect()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_None", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SingleSelect", + "docComment" : "Disable selecting more than one item. This is available to allow single-selection code to share same code/logic if desired. It essentially disables the main purpose of BeginMultiSelect() tho!", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoSelectAll", + "docComment" : "Disable Ctrl+A shortcut to select all.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoRangeSelect", + "docComment" : "Disable Shift+selection mouse/keyboard support (useful for unordered 2D selection). With BoxSelect is also ensure contiguous SetRange requests are not combined into one. This allows not handling interpolation in SetRange requests.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoAutoSelect", + "docComment" : "Disable selecting items when navigating (useful for e.g. supporting range-select in a list of checkboxes).", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoAutoClear", + "docComment" : "Disable clearing selection when navigating or selecting another one (generally used with ImGuiMultiSelectFlags_NoAutoSelect. useful for e.g. supporting range-select in a list of checkboxes).", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoAutoClearOnReselect", + "docComment" : "Disable clearing selection when clicking/selecting an already selected item.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_BoxSelect1d", + "docComment" : "Enable box-selection with same width and same x pos items (e.g. full row Selectable()). Box-selection works better with little bit of spacing between items hit-box in order to be able to aim at empty space.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_BoxSelect2d", + "docComment" : "Enable box-selection with varying width or varying x pos items support (e.g. different width labels, or 2D layout/grid). This is slower: alters clipping logic so that e.g. horizontal movements will update selection of normally clipped items.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_BoxSelectNoScroll", + "docComment" : "Disable scrolling when box-selecting and moving mouse near edges of scope.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_ClearOnEscape", + "docComment" : "Clear selection when pressing Escape while scope is focused.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_ClearOnClickVoid", + "docComment" : "Clear selection when clicking on empty location within scope.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_ScopeWindow", + "docComment" : "Scope for _BoxSelect and _ClearOnClickVoid is whole window (Default). Use if BeginMultiSelect() covers a whole window or used a single time in same window.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_ScopeRect", + "docComment" : "Scope for _BoxSelect and _ClearOnClickVoid is rectangle encompassing BeginMultiSelect()/EndMultiSelect(). Use if BeginMultiSelect() is called multiple times in same window.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SelectOnAuto", + "docComment" : "Apply selection on mouse down when clicking on unselected item, on mouse up when clicking on selected item. (Default)", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SelectOnClickAlways", + "docComment" : "Apply selection on mouse down when clicking on any items. Prevents Drag and Drop from being used on multiple-selection, but allows e.g. BoxSelect to always reselect even when clicking inside an existing selection. (Excel style behavior)", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 15, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SelectOnClickRelease", + "docComment" : "Apply selection on mouse release when clicking an unselected item. Allow dragging an unselected item without altering selection.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 16, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NavWrapX", + "docComment" : "[Temporary] Enable navigation wrapping on X axis. Provided as a convenience because we don't have a design for the general Nav API for this yet. When the more general feature be public we may obsolete this flag in favor of new one.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 17, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_NoSelectOnRightClick", + "docComment" : "Disable default right-click processing, which selects item on mouse down, and is designed for context-menus.", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 18, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SelectOnMask_", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 19, + "value" : "ImGuiMultiSelectFlags_SelectOnAuto | ImGuiMultiSelectFlags_SelectOnClickAlways | ImGuiMultiSelectFlags_SelectOnClickRelease", + "evaluatedValue" : 57344 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiMultiSelectFlags_SelectOnClick", + "docComment" : "RENAMED in 1.92.6", + "qualType" : "ImGuiMultiSelectFlags_", + "order" : 20, + "value" : "ImGuiMultiSelectFlags_SelectOnAuto", + "evaluatedValue" : 8192 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiMultiSelectIO", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Main IO structure returned by BeginMultiSelect()/EndMultiSelect()." + }, { + "@type" : "AstTextComment", + "text" : " This mainly contains a list of selection requests." + }, { + "@type" : "AstTextComment", + "text" : " - Use 'Demo->Tools->Debug Log->Selection' to see requests as they happen." + }, { + "@type" : "AstTextComment", + "text" : " - Some fields are only useful if your list is dynamic and allows deletion (getting post-deletion focus/state right is shown in the demo)" + }, { + "@type" : "AstTextComment", + "text" : " - Below: who reads/writes each fields? 'r'=read, 'w'=write, 'ms'=multi-select code, 'app'=application/user code." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Requests", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeSrcItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "NavIdItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "NavIdSelected", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeSrcReset", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemsCount", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSelectionRequestType", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Selection request type" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectionRequestType_None", + "qualType" : "ImGuiSelectionRequestType", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectionRequestType_SetAll", + "docComment" : "Request app to clear selection (if Selected==false) or select all items (if Selected==true). We cannot set RangeFirstItem/RangeLastItem as its contents is entirely up to user (not necessarily an index)", + "qualType" : "ImGuiSelectionRequestType", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectionRequestType_SetRange", + "docComment" : "Request app to select/unselect [RangeFirstItem..RangeLastItem] items (inclusive) based on value of Selected. Only EndMultiSelect() request this, app code can read after BeginMultiSelect() and it will always be false.", + "qualType" : "ImGuiSelectionRequestType", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiSelectionRequest", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Selection request item" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Type", + "qualType" : "ImGuiSelectionRequestType", + "desugaredQualType" : "ImGuiSelectionRequestType" + }, { + "@type" : "AstFieldDecl", + "name" : "Selected", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeDirection", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeFirstItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeLastItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiSelectionBasicStorage", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Optional helper to store multi-selection state + apply multi-selection requests." + }, { + "@type" : "AstTextComment", + "text" : " - Used by our demos and provided as a convenience to easily implement basic multi-selection." + }, { + "@type" : "AstTextComment", + "text" : " - Iterate selection with 'void* it = NULL; ImGuiID id; while (selection.GetNextSelectedItem(" + }, { + "@type" : "AstTextComment", + "text" : "&it" + }, { + "@type" : "AstTextComment", + "text" : ", " + }, { + "@type" : "AstTextComment", + "text" : "&id" + }, { + "@type" : "AstTextComment", + "text" : ")) { ... }'" + }, { + "@type" : "AstTextComment", + "text" : " Or you can check 'if (Contains(id)) { ... }' for each possible object if their number is not too high to iterate." + }, { + "@type" : "AstTextComment", + "text" : " - USING THIS IS NOT MANDATORY. This is only a helper and not a required API." + }, { + "@type" : "AstTextComment", + "text" : " To store a multi-selection, in your application you could:" + }, { + "@type" : "AstTextComment", + "text" : " - Use this helper as a convenience. We use our simple key->value ImGuiStorage as a std::set" + }, { + "@type" : "AstTextComment", + "text" : " replacement." + }, { + "@type" : "AstTextComment", + "text" : " - Use your own external storage: e.g. std::set" + }, { + "@type" : "AstTextComment", + "text" : ", std::vector" + }, { + "@type" : "AstTextComment", + "text" : ", interval trees, intrusively stored selection etc." + }, { + "@type" : "AstTextComment", + "text" : " In ImGuiSelectionBasicStorage we:" + }, { + "@type" : "AstTextComment", + "text" : " - always use indices in the multi-selection API (passed to SetNextItemSelectionUserData(), retrieved in ImGuiMultiSelectIO)" + }, { + "@type" : "AstTextComment", + "text" : " - use the AdapterIndexToStorageId() indirection layer to abstract how persistent selection data is derived from an index." + }, { + "@type" : "AstTextComment", + "text" : " - use decently optimized logic to allow queries and insertion of very large selection sets." + }, { + "@type" : "AstTextComment", + "text" : " - do not preserve selection order." + }, { + "@type" : "AstTextComment", + "text" : " Many combinations are possible depending on how you prefer to store your items and how you prefer to store your selection." + }, { + "@type" : "AstTextComment", + "text" : " Large applications are likely to eventually want to get rid of this indirection layer and do their own thing." + }, { + "@type" : "AstTextComment", + "text" : " See https://github.com/ocornut/imgui/wiki/Multi-Select for details and pseudo-code using this helper." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "PreserveOrder", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "AdapterIndexToStorageId", + "qualType" : "ImGuiID (*)(ImGuiSelectionBasicStorage *, int)", + "desugaredQualType" : "ImGuiID (*)(ImGuiSelectionBasicStorage *, int)" + }, { + "@type" : "AstFunctionDecl", + "name" : "ApplyRequests", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ms_io", + "qualType" : "ImGuiMultiSelectIO *", + "desugaredQualType" : "ImGuiMultiSelectIO *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Swap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "ImGuiSelectionBasicStorage &", + "desugaredQualType" : "ImGuiSelectionBasicStorage &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemSelected", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetNextSelectedItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "opaque_it", + "qualType" : "void **", + "desugaredQualType" : "void **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_id", + "qualType" : "ImGuiID *", + "desugaredQualType" : "ImGuiID *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStorageIdFromIndex", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiSelectionExternalStorage", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Optional helper to apply multi-selection requests to existing randomly accessible storage." + }, { + "@type" : "AstTextComment", + "text" : " Convenient if you want to quickly wire multi-select API on e.g. an array of bool or items storing their own selection state." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "AdapterSetItemSelected", + "qualType" : "void (*)(ImGuiSelectionExternalStorage *, int, bool)", + "desugaredQualType" : "void (*)(ImGuiSelectionExternalStorage *, int, bool)" + }, { + "@type" : "AstFunctionDecl", + "name" : "ApplyRequests", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ms_io", + "qualType" : "ImGuiMultiSelectIO *", + "desugaredQualType" : "ImGuiMultiSelectIO *" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawCmd", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Typically, 1 command = 1 GPU draw call (unless command is a callback)" + }, { + "@type" : "AstTextComment", + "text" : " - VtxOffset: When 'io.BackendFlags " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " ImGuiBackendFlags_RendererHasVtxOffset' is enabled," + }, { + "@type" : "AstTextComment", + "text" : " this fields allow us to render meshes larger than 64K vertices while keeping 16-bit indices." + }, { + "@type" : "AstTextComment", + "text" : " Backends made for " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : "1.71. will typically ignore the VtxOffset fields." + }, { + "@type" : "AstTextComment", + "text" : " - The ClipRect/TexRef/VtxOffset fields must be contiguous as we memcmp() them together (this is asserted for)." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ClipRect", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFieldDecl", + "name" : "TexRef", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstFieldDecl", + "name" : "VtxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "IdxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ElemCount", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "UserCallback", + "qualType" : "ImDrawCallback", + "desugaredQualType" : "void (*)(const ImDrawList *, const ImDrawCmd *)" + }, { + "@type" : "AstFieldDecl", + "name" : "UserCallbackData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "UserCallbackDataSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "UserCallbackDataOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Since 1.83: returns ImTextureID associated with this draw call. Warning: DO NOT assume this is always same as 'TextureId' (we will change this function for an upcoming feature)" + }, { + "@type" : "AstTextComment", + "text" : " Since 1.92: removed ImDrawCmd::TextureId field, the getter function must be used!" + } ] + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawVert", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "uv", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawCmdHeader", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] For use by ImDrawList" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ClipRect", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFieldDecl", + "name" : "TexRef", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstFieldDecl", + "name" : "VtxOffset", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawChannel", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] For use by ImDrawListSplitter" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawListSplitter", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Split/Merge functions are used to split the draw list into different layers which can be drawn into out of order." + }, { + "@type" : "AstTextComment", + "text" : " This is used by the Columns/Tables API, so items of each column can be batched together in a same draw call." + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFreeMemory", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Split", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Merge", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCurrentChannel", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "name" : "channel_idx", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImDrawFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImDrawList functions" + }, { + "@type" : "AstTextComment", + "text" : " (Legacy: bit 0 must always correspond to ImDrawFlags_Closed to be backward compatible with old API using a bool. Bits 1..3 must be unused)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_None", + "qualType" : "ImDrawFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_Closed", + "docComment" : "PathStroke(), AddPolyline(): specify that shape should be closed (Important: this is always == 1 for legacy reason)", + "qualType" : "ImDrawFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersTopLeft", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding top-left corner only (when rounding > 0.0f, we default to all corners). Was 0x01.", + "qualType" : "ImDrawFlags_", + "order" : 2, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersTopRight", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding top-right corner only (when rounding > 0.0f, we default to all corners). Was 0x02.", + "qualType" : "ImDrawFlags_", + "order" : 3, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersBottomLeft", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-left corner only (when rounding > 0.0f, we default to all corners). Was 0x04.", + "qualType" : "ImDrawFlags_", + "order" : 4, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersBottomRight", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): enable rounding bottom-right corner only (when rounding > 0.0f, we default to all corners). Wax 0x08.", + "qualType" : "ImDrawFlags_", + "order" : 5, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersNone", + "docComment" : "AddRect(), AddRectFilled(), PathRect(): disable rounding on all corners (when rounding > 0.0f). This is NOT zero, NOT an implicit flag!", + "qualType" : "ImDrawFlags_", + "order" : 6, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersTop", + "qualType" : "ImDrawFlags_", + "order" : 7, + "value" : "ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight", + "evaluatedValue" : 48 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersBottom", + "qualType" : "ImDrawFlags_", + "order" : 8, + "value" : "ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight", + "evaluatedValue" : 192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersLeft", + "qualType" : "ImDrawFlags_", + "order" : 9, + "value" : "ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersTopLeft", + "evaluatedValue" : 80 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersRight", + "qualType" : "ImDrawFlags_", + "order" : 10, + "value" : "ImDrawFlags_RoundCornersBottomRight | ImDrawFlags_RoundCornersTopRight", + "evaluatedValue" : 160 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersAll", + "qualType" : "ImDrawFlags_", + "order" : 11, + "value" : "ImDrawFlags_RoundCornersTopLeft | ImDrawFlags_RoundCornersTopRight | ImDrawFlags_RoundCornersBottomLeft | ImDrawFlags_RoundCornersBottomRight", + "evaluatedValue" : 240 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersDefault_", + "docComment" : "Default to ALL corners if none of the _RoundCornersXX flags are specified.", + "qualType" : "ImDrawFlags_", + "order" : 12, + "value" : "ImDrawFlags_RoundCornersAll", + "evaluatedValue" : 240 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawFlags_RoundCornersMask_", + "qualType" : "ImDrawFlags_", + "order" : 13, + "value" : "ImDrawFlags_RoundCornersAll | ImDrawFlags_RoundCornersNone", + "evaluatedValue" : 496 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImDrawListFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly." + }, { + "@type" : "AstTextComment", + "text" : " It is however possible to temporarily alter flags between calls to ImDrawList:: functions." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawListFlags_None", + "qualType" : "ImDrawListFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawListFlags_AntiAliasedLines", + "docComment" : "Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles)", + "qualType" : "ImDrawListFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawListFlags_AntiAliasedLinesUseTex", + "docComment" : "Enable anti-aliased lines/borders using textures when possible. Require backend to render with bilinear filtering (NOT point/nearest filtering).", + "qualType" : "ImDrawListFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawListFlags_AntiAliasedFill", + "docComment" : "Enable anti-aliased edge around filled shapes (rounded rectangles, circles).", + "qualType" : "ImDrawListFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawListFlags_AllowVtxOffset", + "docComment" : "Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.", + "qualType" : "ImDrawListFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawList", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Draw command list" + }, { + "@type" : "AstTextComment", + "text" : " This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame," + }, { + "@type" : "AstTextComment", + "text" : " all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering." + }, { + "@type" : "AstTextComment", + "text" : " Each dear imgui window contains its own ImDrawList. You can use ImGui::GetWindowDrawList() to" + }, { + "@type" : "AstTextComment", + "text" : " access the current window draw list and draw custom primitives." + }, { + "@type" : "AstTextComment", + "text" : " You can interleave normal ImGui:: calls and adding primitives to the current draw list." + }, { + "@type" : "AstTextComment", + "text" : " In single viewport mode, top-left is == GetMainViewport()->Pos (generally 0,0), bottom-right is == GetMainViewport()->Pos+Size (generally io.DisplaySize)." + }, { + "@type" : "AstTextComment", + "text" : " You are totally free to apply whatever transformation matrix you want to the data (depending on the use of the transformation you may want to apply it to ClipRect as well!)" + }, { + "@type" : "AstTextComment", + "text" : " Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "CmdBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "IdxBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "VtxBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImDrawListFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "intersect_with_current_clip_rect", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "false" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushClipRectFullScreen", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PopClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushTexture", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopTexture", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetClipRectMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetClipRectMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "AddLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Primitives" + }, { + "@type" : "AstTextComment", + "text" : " - Filled shapes must always use clockwise winding order. The anti-aliasing fringe depends on it. Counter-clockwise shapes will have \"inward\" anti-aliasing." + }, { + "@type" : "AstTextComment", + "text" : " - For rectangular primitives, \"p_min\" and \"p_max\" represent the upper-left and lower-right corners." + }, { + "@type" : "AstTextComment", + "text" : " - For circle primitives, use \"num_segments == 0\" to automatically calculate tessellation (preferred)." + }, { + "@type" : "AstTextComment", + "text" : " In older versions (until Dear ImGui 1.77) the AddCircle functions defaulted to num_segments == 12." + }, { + "@type" : "AstTextComment", + "text" : " In future versions we will use textures to provide cheaper and higher-quality circles." + }, { + "@type" : "AstTextComment", + "text" : " Use AddNgon() and AddNgonFilled() functions if you need to guarantee a specific number of sides." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddRectFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddRectFilledMultiColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col_upr_left", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col_upr_right", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col_bot_right", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col_bot_left", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddQuad", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddQuadFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddTriangle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddTriangleFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCircle", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCircleFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddNgon", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddNgonFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddEllipse", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rot", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddEllipseFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rot", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "cpu_fine_clip_rect", + "qualType" : "const ImVec4 *", + "desugaredQualType" : "const ImVec4 *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddBezierCubic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddBezierQuadratic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddPolyline", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "points", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_points", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " General polygon" + }, { + "@type" : "AstTextComment", + "text" : " - Only simple polygons are supported by filling functions (no self-intersections, no holes)." + }, { + "@type" : "AstTextComment", + "text" : " - Concave polygon fill is more expensive than convex one: it has O(N^2) complexity. Provided as a convenience for the user but not used by the main library." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddConvexPolyFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "points", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_points", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddConcavePolyFilled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "points", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_points", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddImage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int", + "defaultValue" : "IM_COL32_WHITE" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Image primitives" + }, { + "@type" : "AstTextComment", + "text" : " - Read FAQ to understand what ImTextureID/ImTextureRef are." + }, { + "@type" : "AstTextComment", + "text" : " - \"p_min\" and \"p_max\" represent the upper-left and lower-right corners of the rectangle." + }, { + "@type" : "AstTextComment", + "text" : " - \"uv_min\" and \"uv_max\" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddImageQuad", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 0)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(1, 1)" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 1)" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int", + "defaultValue" : "IM_COL32_WHITE" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddImageRounded", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathClear", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Stateful path API, add points then finish with PathFillConvex() or PathStroke()" + }, { + "@type" : "AstTextComment", + "text" : " - Important: filled shapes must always use clockwise winding order! The anti-aliasing fringe depends on it. Counter-clockwise shapes will have \"inward\" anti-aliasing." + }, { + "@type" : "AstTextComment", + "text" : " so e.g. 'PathArcTo(center, radius, PI * -0.5f, PI)' is ok, whereas 'PathArcTo(center, radius, PI, PI * -0.5f)' won't have correct anti-aliasing when followed by PathFillConvex()." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathLineTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathLineToMergeDuplicate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathFillConvex", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathFillConcave", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathStroke", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "thickness", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1.0f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathArcTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathArcToFast", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_min_of_12", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_max_of_12", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathEllipticalArcTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "radius", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rot", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "a_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathBezierCubicCurveTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathBezierQuadraticCurveTo", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PathRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rounding", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCallback", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImDrawCallback", + "desugaredQualType" : "void (*)(const ImDrawList *, const ImDrawCmd *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "userdata", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "userdata_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Advanced: Draw Callbacks" + }, { + "@type" : "AstTextComment", + "text" : " - May be used to alter render state (change sampler, blending, current shader). May be used to emit custom rendering commands (difficult to do correctly, but possible)." + }, { + "@type" : "AstTextComment", + "text" : " - Use special ImDrawCallback_ResetRenderState callback to instruct backend to reset its render state to the default." + }, { + "@type" : "AstTextComment", + "text" : " - Your rendering loop must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. All standard backends are honoring this." + }, { + "@type" : "AstTextComment", + "text" : " - For some backends, the callback may access selected render-states exposed by the backend in a ImGui_ImplXXXX_RenderState structure pointed to by platform_io.Renderer_RenderState." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: please be mindful of the different level of indirection between using size==0 (copying argument) and using size>0 (copying pointed data into a buffer)." + }, { + "@type" : "AstTextComment", + "text" : " - If userdata_size == 0: we copy/store the 'userdata' argument as-is. It will be available unmodified in ImDrawCmd::UserCallbackData during render." + }, { + "@type" : "AstTextComment", + "text" : " - If userdata_size > 0, we copy/store 'userdata_size' bytes pointed to by 'userdata'. We store them in a buffer stored inside the drawlist. ImDrawCmd::UserCallbackData will point inside that buffer so you have to retrieve data from there. Your callback may need to use ImDrawCmd::UserCallbackDataSize if you expect dynamically-sized data." + }, { + "@type" : "AstTextComment", + "text" : " - Support for userdata_size > 0 was added in v1.91.4, October 2024. So earlier code always only allowed to copy/store a simple void*." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddDrawCmd", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Advanced: Miscellaneous" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CloneOutput", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "name" : "ChannelsSplit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Advanced: Channels" + }, { + "@type" : "AstTextComment", + "text" : " - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives)" + }, { + "@type" : "AstTextComment", + "text" : " - Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end)" + }, { + "@type" : "AstTextComment", + "text" : " - This API shouldn't have been in ImDrawList in the first place!" + }, { + "@type" : "AstTextComment", + "text" : " Prefer using your own persistent instance of ImDrawListSplitter as you can stack them." + }, { + "@type" : "AstTextComment", + "text" : " Using the ImDrawList::ChannelsXXXX you cannot stack a split over another." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ChannelsMerge", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ChannelsSetCurrent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimReserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "vtx_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Advanced: Primitives allocations" + }, { + "@type" : "AstTextComment", + "text" : " - We render triangles (three vertices)" + }, { + "@type" : "AstTextComment", + "text" : " - All primitives needs to be reserved via PrimReserve() beforehand." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimUnreserve", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "vtx_count", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimRectUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimQuadUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "d", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv_d", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimWriteVtx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimWriteIdx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImDrawIdx", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PrimVtx", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushTextureID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopTextureID", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " All draw data to render a Dear ImGui frame" + }, { + "@type" : "AstTextComment", + "text" : " (NB: the style and the naming convention here is a little inconsistent, we currently preserve them for backward compatibility purpose," + }, { + "@type" : "AstTextComment", + "text" : " as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Valid", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "CmdListsCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TotalIdxCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TotalVtxCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "CmdLists", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplaySize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "FramebufferScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerViewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *" + }, { + "@type" : "AstFieldDecl", + "name" : "Textures", + "qualType" : "ImVector *", + "desugaredQualType" : "ImVector *" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "AddDrawList", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DeIndexAllBuffers", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ScaleClipRects", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fb_scale", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImTextureFormat", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " We intentionally support a limited amount of texture formats to limit burden on CPU-side code and extension." + }, { + "@type" : "AstTextComment", + "text" : " Most standard backends only support RGBA32 but we provide a single channel option for low-resource/embedded systems." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureFormat_RGBA32", + "docComment" : "4 components per pixel, each is unsigned 8-bit. Total size = TexWidth * TexHeight * 4", + "qualType" : "ImTextureFormat", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureFormat_Alpha8", + "docComment" : "1 component per pixel, each is unsigned 8-bit. Total size = TexWidth * TexHeight", + "qualType" : "ImTextureFormat", + "order" : 1, + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImTextureStatus", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Status of a texture to communicate with Renderer Backend." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureStatus_OK", + "qualType" : "ImTextureStatus", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureStatus_Destroyed", + "docComment" : "Backend destroyed the texture.", + "qualType" : "ImTextureStatus", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureStatus_WantCreate", + "docComment" : "Requesting backend to create the texture. Set status OK when done.", + "qualType" : "ImTextureStatus", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureStatus_WantUpdates", + "docComment" : "Requesting backend to update specific blocks of pixels (write to texture portions which have never been used before). Set status OK when done.", + "qualType" : "ImTextureStatus", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImTextureStatus_WantDestroy", + "docComment" : "Requesting backend to destroy the texture. Set status to Destroyed when done.", + "qualType" : "ImTextureStatus", + "order" : 4, + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImTextureRect", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Coordinates of a rectangle within a texture." + }, { + "@type" : "AstTextComment", + "text" : " When a texture is in ImTextureStatus_WantUpdates state, we provide a list of individual rectangles to copy to the graphics system." + }, { + "@type" : "AstTextComment", + "text" : " You may use ImTextureData::Updates[] for the list, or ImTextureData::UpdateBox for a single bounding box." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "w", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "h", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImTextureData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Specs and pixel storage for a texture used by Dear ImGui." + }, { + "@type" : "AstTextComment", + "text" : " This is only useful for (1) core library and (2) backends. End-user/applications do not need to care about this." + }, { + "@type" : "AstTextComment", + "text" : " Renderer Backends will create a GPU-side version of this." + }, { + "@type" : "AstTextComment", + "text" : " Why does we store two identifiers: TexID and BackendUserData?" + }, { + "@type" : "AstTextComment", + "text" : " - ImTextureID TexID = lower-level identifier stored in ImDrawCmd. ImDrawCmd can refer to textures not created by the backend, and for which there's no ImTextureData." + }, { + "@type" : "AstTextComment", + "text" : " - void* BackendUserData = higher-level opaque storage for backend own book-keeping. Some backends may have enough with TexID and not need both." + }, { + "@type" : "AstTextComment", + "text" : " In columns below: who reads/writes each fields? 'r'=read, 'w'=write, 'core'=main library, 'backend'=renderer backend" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "UniqueID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Status", + "qualType" : "ImTextureStatus", + "desugaredQualType" : "ImTextureStatus" + }, { + "@type" : "AstFieldDecl", + "name" : "BackendUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "TexID", + "qualType" : "ImTextureID", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstFieldDecl", + "name" : "Format", + "qualType" : "ImTextureFormat", + "desugaredQualType" : "ImTextureFormat" + }, { + "@type" : "AstFieldDecl", + "name" : "Width", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Height", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "BytesPerPixel", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Pixels", + "qualType" : "unsigned char *", + "desugaredQualType" : "unsigned char *" + }, { + "@type" : "AstFieldDecl", + "name" : "UsedRect", + "qualType" : "ImTextureRect", + "desugaredQualType" : "ImTextureRect" + }, { + "@type" : "AstFieldDecl", + "name" : "UpdateRect", + "qualType" : "ImTextureRect", + "desugaredQualType" : "ImTextureRect" + }, { + "@type" : "AstFieldDecl", + "name" : "Updates", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "UnusedFrames", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "RefCount", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "UseColors", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantDestroyNextFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Create", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "ImTextureFormat", + "desugaredQualType" : "ImTextureFormat" + }, { + "@type" : "AstParmVarDecl", + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DestroyPixels", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPixels", + "resultType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPixelsAt", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSizeInBytes", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPitch", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexRef", + "resultType" : "ImTextureRef" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTexID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_id", + "qualType" : "ImTextureID", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Called by Renderer backend" + }, { + "@type" : "AstTextComment", + "text" : " - Call SetTexID() and SetStatus() after honoring texture requests. Never modify TexID and Status directly!" + }, { + "@type" : "AstTextComment", + "text" : " - A backend may decide to destroy a texture that we did not request to destroy, which is fine (e.g. freeing resources), but we immediately set the texture back in _WantCreate mode." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetStatus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "status", + "qualType" : "ImTextureStatus", + "desugaredQualType" : "ImTextureStatus" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontConfig", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " A font input/source (we may rename this to ImFontSource in the future)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Name", + "qualType" : "char[40]", + "desugaredQualType" : "char[40]" + }, { + "@type" : "AstFieldDecl", + "name" : "FontData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontDataSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "FontDataOwnedByAtlas", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MergeMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "PixelSnapH", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "OversampleH", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "OversampleV", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "EllipsisChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizePixels", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphRanges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphExcludeRanges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphOffset", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphMinAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphMaxAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "GlyphExtraAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontNo", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderFlags", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "RasterizerMultiply", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "RasterizerDensity", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ExtraSizeScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImFontFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DstFont", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoader", + "qualType" : "const ImFontLoader *", + "desugaredQualType" : "const ImFontLoader *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "PixelSnapV", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontGlyph", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Hold rendering data for one glyph." + }, { + "@type" : "AstTextComment", + "text" : " (Note: some language parsers may fail to convert the bitfield members, in this case maybe drop store a single u32 or we can rework this)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Colored", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Visible", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "SourceIdx", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Codepoint", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "AdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "X0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Y0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "X1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Y1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "U0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "V0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "U1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "V1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "PackId", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontGlyphRangesBuilder", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper to build glyph ranges from text/string data. Feed your application strings/characters to it then call BuildRanges()." + }, { + "@type" : "AstTextComment", + "text" : " This is essentially a tightly packed of vector of 64k booleans = 8KB storage." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "UsedChars", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBit", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddRanges", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BuildRanges", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_ranges", + "qualType" : "ImVector *", + "desugaredQualType" : "ImVector *" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontAtlasRect", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Output of ImFontAtlas::GetCustomRect() when using custom rectangles." + }, { + "@type" : "AstTextComment", + "text" : " Those values may not be cached/stored as they are only valid for the current value of atlas->TexRef" + }, { + "@type" : "AstTextComment", + "text" : " (this is in theory derived from ImTextureRect but we use separate structures for reasons)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "w", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "h", + "qualType" : "unsigned short", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "uv0", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "uv1", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImFontAtlasFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImFontAtlas build" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontAtlasFlags_None", + "qualType" : "ImFontAtlasFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontAtlasFlags_NoPowerOfTwoHeight", + "docComment" : "Don't round the height to next power of two", + "qualType" : "ImFontAtlasFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontAtlasFlags_NoMouseCursors", + "docComment" : "Don't build software mouse cursors into the atlas (save a little texture memory)", + "qualType" : "ImFontAtlasFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontAtlasFlags_NoBakedLines", + "docComment" : "Don't build thick line textures into the atlas (save a little texture memory, allow support for point/nearest filtering). The AntiAliasedLinesUseTex features uses them, otherwise they will be rendered using polygons (more expensive for CPU/GPU).", + "qualType" : "ImFontAtlasFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontAtlas", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding:" + }, { + "@type" : "AstTextComment", + "text" : " - One or more fonts." + }, { + "@type" : "AstTextComment", + "text" : " - Custom graphics data needed to render the shapes needed by Dear ImGui." + }, { + "@type" : "AstTextComment", + "text" : " - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas)." + }, { + "@type" : "AstTextComment", + "text" : " - If you don't call any AddFont*** functions, the default font embedded in the code will be loaded for you." + }, { + "@type" : "AstTextComment", + "text" : " It is the rendering backend responsibility to upload texture into your graphics API:" + }, { + "@type" : "AstTextComment", + "text" : " - ImGui_ImplXXXX_RenderDrawData() functions generally iterate platform_io->Textures[] to create/update/destroy each ImTextureData instance." + }, { + "@type" : "AstTextComment", + "text" : " - Backend then set ImTextureData's TexID and BackendUserData." + }, { + "@type" : "AstTextComment", + "text" : " - Texture id are passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID/ImTextureRef for more details." + }, { + "@type" : "AstTextComment", + "text" : " Legacy path:" + }, { + "@type" : "AstTextComment", + "text" : " - Call Build() + GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data." + }, { + "@type" : "AstTextComment", + "text" : " - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API." + }, { + "@type" : "AstTextComment", + "text" : " Common pitfalls:" + }, { + "@type" : "AstTextComment", + "text" : " - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persists up until the" + }, { + "@type" : "AstTextComment", + "text" : " atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data." + }, { + "@type" : "AstTextComment", + "text" : " - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction." + }, { + "@type" : "AstTextComment", + "text" : " You can set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed," + }, { + "@type" : "AstTextComment", + "text" : " - Even though many functions are suffixed with \"TTF\", OTF data is supported just as well." + }, { + "@type" : "AstTextComment", + "text" : " - This is an old API and it is currently awkward for those and various other reasons! We will address them in the future!" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFont", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontDefault", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontDefaultVector", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontDefaultBitmap", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontFromFileTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontFromMemoryTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_data_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontFromMemoryCompressedTTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "compressed_font_data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "compressed_font_data_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddFontFromMemoryCompressedBase85TTF", + "resultType" : "ImFont *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "compressed_font_data_base85", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_pixels", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_cfg", + "qualType" : "const ImFontConfig *", + "desugaredQualType" : "const ImFontConfig *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "glyph_ranges", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RemoveFont", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "CompactCache", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetFontLoader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_loader", + "qualType" : "const ImFontLoader *", + "desugaredQualType" : "const ImFontLoader *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearInputData", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " As we are transitioning toward a new font system, we expect to obsolete those soon:" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFonts", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearTexData", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Build", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Legacy path for build atlas + retrieving pixel data." + }, { + "@type" : "AstTextComment", + "text" : " - User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID()." + }, { + "@type" : "AstTextComment", + "text" : " - The pitch is always = Width * BytesPerPixels (1 or 4)" + }, { + "@type" : "AstTextComment", + "text" : " - Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into" + }, { + "@type" : "AstTextComment", + "text" : " the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75% of memory/bandwidth waste)." + }, { + "@type" : "AstTextComment", + "text" : " - From 1.92 with backends supporting ImGuiBackendFlags_RendererHasTextures:" + }, { + "@type" : "AstTextComment", + "text" : " - Calling Build(), GetTexDataAsAlpha8(), GetTexDataAsRGBA32() is not needed." + }, { + "@type" : "AstTextComment", + "text" : " - In backend: replace calls to ImFontAtlas::SetTexID() with calls to ImTextureData::SetTexID() after honoring texture creation." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexDataAsAlpha8", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_pixels", + "qualType" : "unsigned char **", + "desugaredQualType" : "unsigned char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_width", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_height", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_bytes_per_pixel", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexDataAsRGBA32", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_pixels", + "qualType" : "unsigned char **", + "desugaredQualType" : "unsigned char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_width", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_height", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_bytes_per_pixel", + "qualType" : "int *", + "desugaredQualType" : "int *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTexID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImTextureID", + "desugaredQualType" : "unsigned long long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTexID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsBuilt", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesDefault", + "resultType" : "const ImWchar *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Since 1.92: specifying glyph ranges is only useful/necessary if your backend doesn't support ImGuiBackendFlags_RendererHasTextures!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesGreek", + "resultType" : "const ImWchar *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list)" + }, { + "@type" : "AstTextComment", + "text" : " NB: Make sure that your string are UTF-8 and NOT in your local code page." + }, { + "@type" : "AstTextComment", + "text" : " Read https://github.com/ocornut/imgui/blob/master/docs/FONTS.md/#about-utf-8-encoding for details." + }, { + "@type" : "AstTextComment", + "text" : " NB: Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesKorean", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesJapanese", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesChineseFull", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesChineseSimplifiedCommon", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesCyrillic", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesThai", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetGlyphRangesVietnamese", + "resultType" : "const ImWchar *" + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCustomRect", + "resultType" : "ImFontAtlasRectId", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "width", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "height", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_r", + "qualType" : "ImFontAtlasRect *", + "desugaredQualType" : "ImFontAtlasRect *", + "defaultValue" : "NULL" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Register and retrieve custom rectangles" + }, { + "@type" : "AstTextComment", + "text" : " - You can request arbitrary rectangles to be packed into the atlas, for your own purpose." + }, { + "@type" : "AstTextComment", + "text" : " - Since 1.92.0, packing is done immediately in the function call (previously packing was done during the Build call)" + }, { + "@type" : "AstTextComment", + "text" : " - You can render your pixels into the texture right after calling the AddCustomRect() functions." + }, { + "@type" : "AstTextComment", + "text" : " - VERY IMPORTANT:" + }, { + "@type" : "AstTextComment", + "text" : " - Texture may be created/resized at any time when calling ImGui or ImFontAtlas functions." + }, { + "@type" : "AstTextComment", + "text" : " - IT WILL INVALIDATE RECTANGLE DATA SUCH AS UV COORDINATES. Always use latest values from GetCustomRect()." + }, { + "@type" : "AstTextComment", + "text" : " - UV coordinates are associated to the current texture identifier aka 'atlas->TexRef'. Both TexRef and UV coordinates are typically changed at the same time." + }, { + "@type" : "AstTextComment", + "text" : " - If you render colored output into your custom rectangles: set 'atlas->TexPixelsUseColors = true' as this may help some backends decide of preferred texture format." + }, { + "@type" : "AstTextComment", + "text" : " - Read docs/FONTS.md for more details about using colorful icons." + }, { + "@type" : "AstTextComment", + "text" : " - Note: this API may be reworked further in order to facilitate supporting e.g. multi-monitor, varying DPI settings." + }, { + "@type" : "AstTextComment", + "text" : " - (Pre-1.92 names) ------------> (1.92 names)" + }, { + "@type" : "AstTextComment", + "text" : " - GetCustomRectByIndex() --> Use GetCustomRect()" + }, { + "@type" : "AstTextComment", + "text" : " - CalcCustomRectUV() --> Use GetCustomRect() and read uv0, uv1 fields." + }, { + "@type" : "AstTextComment", + "text" : " - AddCustomRectRegular() --> Renamed to AddCustomRect()" + }, { + "@type" : "AstTextComment", + "text" : " - AddCustomRectFontGlyph() --> Prefer using custom ImFontLoader inside ImFontConfig" + }, { + "@type" : "AstTextComment", + "text" : " - ImFontAtlasCustomRect --> Renamed to ImFontAtlasRect" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RemoveCustomRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImFontAtlasRectId", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCustomRect", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImFontAtlasRectId", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_r", + "qualType" : "ImFontAtlasRect *", + "desugaredQualType" : "ImFontAtlasRect *" + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImFontAtlasFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TexDesiredFormat", + "qualType" : "ImTextureFormat", + "desugaredQualType" : "ImTextureFormat" + }, { + "@type" : "AstFieldDecl", + "name" : "TexGlyphPadding", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TexMinWidth", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TexMinHeight", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TexMaxWidth", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TexMaxHeight", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "UserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "TexData", + "qualType" : "ImTextureData *", + "desugaredQualType" : "ImTextureData *" + }, { + "@type" : "AstFieldDecl", + "name" : "TexList", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Locked", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RendererHasTextures", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "TexIsBuilt", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "TexPixelsUseColors", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "TexUvScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "TexUvWhitePixel", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Fonts", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Sources", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "TexUvLines", + "qualType" : "ImVec4[33]", + "desugaredQualType" : "ImVec4[33]" + }, { + "@type" : "AstFieldDecl", + "name" : "TexNextUniqueID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "FontNextUniqueID", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawListSharedDatas", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Builder", + "qualType" : "ImFontAtlasBuilder *", + "desugaredQualType" : "ImFontAtlasBuilder *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoader", + "qualType" : "const ImFontLoader *", + "desugaredQualType" : "const ImFontLoader *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderName", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderFlags", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "RefCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerContext", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "TempRect", + "qualType" : "ImFontAtlasRect", + "desugaredQualType" : "ImFontAtlasRect" + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCustomRectRegular", + "resultType" : "ImFontAtlasRectId", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCustomRectByIndex", + "resultType" : "const ImFontAtlasRect *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImFontAtlasRectId", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcCustomRectUV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImFontAtlasRect *", + "desugaredQualType" : "const ImFontAtlasRect *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_uv_min", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_uv_max", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCustomRectFontGlyph", + "resultType" : "ImFontAtlasRectId", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "advance_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "offset", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddCustomRectFontGlyphForSize", + "resultType" : "ImFontAtlasRectId", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "name" : "w", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "advance_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "offset", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "ImVec2(0, 0)" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontBaked", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Font runtime data for a given size" + }, { + "@type" : "AstTextComment", + "text" : " Important: pointers to ImFontBaked are only valid for the current frame." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "IndexAdvanceX", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "FallbackAdvanceX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "RasterizerDensity", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "IndexLookup", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Glyphs", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "FallbackGlyphIndex", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Ascent", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Descent", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MetricsTotalSurface", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "WantDestroy", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LoadNoFallback", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LoadNoRenderOnLayout", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastUsedFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "BakedId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerFont", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontLoaderDatas", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearOutputData", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "FindGlyph", + "resultType" : "ImFontGlyph *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindGlyphNoFallback", + "resultType" : "ImFontGlyph *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCharAdvance", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsGlyphLoaded", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImFontFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Font flags" + }, { + "@type" : "AstTextComment", + "text" : " (in future versions as we redesign font loading API, this will become more important and better documented. for now please consider this as internal/advanced use)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontFlags_None", + "qualType" : "ImFontFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontFlags_NoLoadError", + "docComment" : "Disable throwing an error/assert when calling AddFontXXX() with missing file/data. Calling code is expected to check AddFontXXX() return value.", + "qualType" : "ImFontFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontFlags_NoLoadGlyphs", + "docComment" : "[Internal] Disable loading new glyphs.", + "qualType" : "ImFontFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImFontFlags_LockBakedSizes", + "docComment" : "[Internal] Disable loading new baked sizes, disable garbage collecting current ones. e.g. if you want to lock a font to a single size. Important: if you use this to preload given sizes, consider the possibility of multiple font density used on Retina display.", + "qualType" : "ImFontFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFont", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Font runtime data and rendering" + }, { + "@type" : "AstTextComment", + "text" : " - ImFontAtlas automatically loads a default embedded font for you if you didn't load one manually." + }, { + "@type" : "AstTextComment", + "text" : " - Since 1.92.0 a font may be rendered as any size! Therefore a font doesn't have one specific size." + }, { + "@type" : "AstTextComment", + "text" : " - Use 'font->GetFontBaked(size)' to retrieve the ImFontBaked* corresponding to a given size." + }, { + "@type" : "AstTextComment", + "text" : " - If you used g.Font + g.FontSize (which is frequent from the ImGui layer), you can use g.FontBaked as a shortcut, as g.FontBaked == g.Font->GetFontBaked(g.FontSize)." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "LastBaked", + "qualType" : "ImFontBaked *", + "desugaredQualType" : "ImFontBaked *" + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerAtlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImFontFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "CurrentRasterizerDensity", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LegacySize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Sources", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "EllipsisChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "FallbackChar", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "Used8kPagesMap", + "qualType" : "ImU8[1]", + "desugaredQualType" : "ImU8[1]" + }, { + "@type" : "AstFieldDecl", + "name" : "EllipsisAutoBake", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RemapPairs", + "qualType" : "ImGuiStorage", + "desugaredQualType" : "ImGuiStorage" + }, { + "@type" : "AstFieldDecl", + "name" : "Scale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsGlyphInFont", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsLoaded", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDebugName", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontBaked", + "resultType" : "ImFontBaked *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font_size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "density", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-1.0f" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] Don't use!" + }, { + "@type" : "AstTextComment", + "text" : " 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable." + }, { + "@type" : "AstTextComment", + "text" : " 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcTextSizeA", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "max_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_remaining", + "qualType" : "const char **", + "desugaredQualType" : "const char **", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcWordWrapPosition", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RenderChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "name" : "cpu_fine_clip", + "qualType" : "const ImVec4 *", + "desugaredQualType" : "const ImVec4 *", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RenderText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "draw_list", + "qualType" : "ImDrawList *", + "desugaredQualType" : "ImDrawList *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip_rect", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "0.0f" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcWordWrapPositionA", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearOutputData", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " [Internal] Don't use!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "AddRemapChar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "from_codepoint", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstParmVarDecl", + "name" : "to_codepoint", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsGlyphRangeUnused", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c_begin", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "c_last", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " This is provided for consistency (but we don't actually use this)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Using an indirection to avoid patching ImDrawCmd after a SetTexID() call (but this could be an alternative solution too)" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiViewportFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags stored in ImGuiViewport::Flags, giving indications to the platform backends." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_None", + "qualType" : "ImGuiViewportFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_IsPlatformWindow", + "docComment" : "Represent a Platform Window", + "qualType" : "ImGuiViewportFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_IsPlatformMonitor", + "docComment" : "Represent a Platform Monitor (unused yet)", + "qualType" : "ImGuiViewportFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_OwnedByApp", + "docComment" : "Platform Window: Is created/managed by the user application? (rather than our backend)", + "qualType" : "ImGuiViewportFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoDecoration", + "docComment" : "Platform Window: Disable platform decorations: title bar, borders, etc. (generally set all windows, but if ImGuiConfigFlags_ViewportsDecoration is set we only set this on popups/tooltips)", + "qualType" : "ImGuiViewportFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoTaskBarIcon", + "docComment" : "Platform Window: Disable platform task bar icon (generally set on popups/tooltips, or all windows if ImGuiConfigFlags_ViewportsNoTaskBarIcon is set)", + "qualType" : "ImGuiViewportFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoFocusOnAppearing", + "docComment" : "Platform Window: Don't take focus when created.", + "qualType" : "ImGuiViewportFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoFocusOnClick", + "docComment" : "Platform Window: Don't take focus when clicked on.", + "qualType" : "ImGuiViewportFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoInputs", + "docComment" : "Platform Window: Make mouse pass through so we can drag this window while peaking behind it.", + "qualType" : "ImGuiViewportFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoRendererClear", + "docComment" : "Platform Window: Renderer doesn't need to clear the framebuffer ahead (because we will fill it entirely).", + "qualType" : "ImGuiViewportFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_NoAutoMerge", + "docComment" : "Platform Window: Avoid merging this window into another host window. This can only be set via ImGuiWindowClass viewport flags override (because we need to now ahead if we are going to create a viewport in the first place!).", + "qualType" : "ImGuiViewportFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_TopMost", + "docComment" : "Platform Window: Display on top (for tooltips only).", + "qualType" : "ImGuiViewportFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_CanHostOtherWindows", + "docComment" : "Viewport can host multiple imgui windows (secondary viewports are associated to a single window). // FIXME: In practice there's still probably code making the assumption that this is always and only on the MainViewport. Will fix once we add support for \"no main viewport\".", + "qualType" : "ImGuiViewportFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_IsMinimized", + "docComment" : "Platform Window: Window is minimized, can skip render. When minimized we tend to avoid using the viewport pos/size for clipping window or testing if they are contained in the viewport.", + "qualType" : "ImGuiViewportFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiViewportFlags_IsFocused", + "docComment" : "Platform Window: Window is focused (last call to Platform_GetWindowFocus() returned true)", + "qualType" : "ImGuiViewportFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiViewport", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows." + }, { + "@type" : "AstTextComment", + "text" : " - With multi-viewport enabled, we extend this concept to have multiple active viewports." + }, { + "@type" : "AstTextComment", + "text" : " - In the future we will extend this concept further to also represent Platform Monitor and support a \"no main platform window\" operation mode." + }, { + "@type" : "AstTextComment", + "text" : " - About Main Area vs Work Area:" + }, { + "@type" : "AstTextComment", + "text" : " - Main Area = entire viewport." + }, { + "@type" : "AstTextComment", + "text" : " - Work Area = entire viewport minus sections used by main menu bars (for platform windows), or by task bar (for platform monitor)." + }, { + "@type" : "AstTextComment", + "text" : " - Windows are generally trying to stay within the Work Area of their host viewport." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiViewportFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "FramebufferScale", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WorkPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WorkSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DpiScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentViewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawData", + "qualType" : "ImDrawData *", + "desugaredQualType" : "ImDrawData *" + }, { + "@type" : "AstFieldDecl", + "name" : "RendererUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformHandle", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformHandleRaw", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformWindowCreated", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformRequestMove", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformRequestResize", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformRequestClose", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCenter", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWorkCenter", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDebugName", + "resultType" : "const char *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPlatformIO", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Access via ImGui::GetPlatformIO()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetClipboardTextFn", + "qualType" : "const char *(*)(ImGuiContext *)", + "desugaredQualType" : "const char *(*)(ImGuiContext *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetClipboardTextFn", + "qualType" : "void (*)(ImGuiContext *, const char *)", + "desugaredQualType" : "void (*)(ImGuiContext *, const char *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_ClipboardUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_OpenInShellFn", + "qualType" : "bool (*)(ImGuiContext *, const char *)", + "desugaredQualType" : "bool (*)(ImGuiContext *, const char *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_OpenInShellUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetImeDataFn", + "qualType" : "void (*)(ImGuiContext *, ImGuiViewport *, ImGuiPlatformImeData *)", + "desugaredQualType" : "void (*)(ImGuiContext *, ImGuiViewport *, ImGuiPlatformImeData *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_ImeUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_LocaleDecimalPoint", + "qualType" : "ImWchar", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_TextureMaxWidth", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_TextureMaxHeight", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_RenderState", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_CreateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_DestroyWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_ShowWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetWindowPos", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowPos", + "qualType" : "ImVec2 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec2 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetWindowSize", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowSize", + "qualType" : "ImVec2 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec2 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowFramebufferScale", + "qualType" : "ImVec2 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec2 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetWindowFocus", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowFocus", + "qualType" : "bool (*)(ImGuiViewport *)", + "desugaredQualType" : "bool (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowMinimized", + "qualType" : "bool (*)(ImGuiViewport *)", + "desugaredQualType" : "bool (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetWindowTitle", + "qualType" : "void (*)(ImGuiViewport *, const char *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, const char *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SetWindowAlpha", + "qualType" : "void (*)(ImGuiViewport *, float)", + "desugaredQualType" : "void (*)(ImGuiViewport *, float)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_UpdateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_RenderWindow", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_SwapBuffers", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowDpiScale", + "qualType" : "float (*)(ImGuiViewport *)", + "desugaredQualType" : "float (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_OnChangedViewport", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_GetWindowWorkAreaInsets", + "qualType" : "ImVec4 (*)(ImGuiViewport *)", + "desugaredQualType" : "ImVec4 (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Platform_CreateVkSurface", + "qualType" : "int (*)(ImGuiViewport *, ImU64, const void *, ImU64 *)", + "desugaredQualType" : "int (*)(ImGuiViewport *, ImU64, const void *, ImU64 *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_CreateWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_DestroyWindow", + "qualType" : "void (*)(ImGuiViewport *)", + "desugaredQualType" : "void (*)(ImGuiViewport *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_SetWindowSize", + "qualType" : "void (*)(ImGuiViewport *, ImVec2)", + "desugaredQualType" : "void (*)(ImGuiViewport *, ImVec2)" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_RenderWindow", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Renderer_SwapBuffers", + "qualType" : "void (*)(ImGuiViewport *, void *)", + "desugaredQualType" : "void (*)(ImGuiViewport *, void *)" + }, { + "@type" : "AstFieldDecl", + "name" : "Monitors", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Textures", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Viewports", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearPlatformHandlers", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " Functions" + }, { + "@type" : "AstTextComment", + "text" : "------------------------------------------------------------------" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearRendererHandlers", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPlatformMonitor", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " (Optional) This is required when enabling multi-viewport. Represent the bounds of each connected monitor/display and their DPI." + }, { + "@type" : "AstTextComment", + "text" : " We use this information for multiple DPI support + clamping the position of popups and tooltips so they don't straddle multiple monitors." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "MainPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "MainSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WorkPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WorkSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "DpiScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "PlatformHandle", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPlatformImeData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " (Optional) Support for IME (Input Method Editor) via the platform_io.Platform_SetImeDataFn() function. Handler is called during EndFrame()." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "WantVisible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantTextInput", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "InputPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "InputLineHeight", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "PushFont", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " OBSOLETED in 1.92.0 (from June 2025)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowFontScale", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scale", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Image", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "border_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " OBSOLETED in 1.91.9 (from February 2025)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushButtonRepeat", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " OBSOLETED in 1.91.0 (from July 2024)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopButtonRepeat", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushTabStop", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tab_stop", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopTabStop", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetContentRegionMax", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " You do not need those functions! See #7838 on GitHub for more info." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowContentRegionMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowContentRegionMax", + "resultType" : "ImVec2" + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui_freetype.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_freetype.json new file mode 100644 index 00000000..be747243 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_freetype.json @@ -0,0 +1,232 @@ +{ + "info" : { + "source" : "include/imgui/misc/freetype/imgui_freetype.h", + "hash" : "fda5fd9d652f6c2e7809442df117a02e", + "url" : "https://github.com/ocornut/imgui", + "revision" : "b1bcb12a624af7509894c8e77dd47416997777fa" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "ImFontAtlas", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Forward declarations" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiFreeTypeLoaderFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_NoHinting", + "docComment" : "Disable hinting. This generally generates 'blurrier' bitmap glyphs when the glyph are rendered in any of the anti-aliased modes.", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 0, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_NoAutoHint", + "docComment" : "Disable auto-hinter.", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_ForceAutoHint", + "docComment" : "Indicates that the auto-hinter is preferred over the font's native hinter.", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_LightHinting", + "docComment" : "A lighter hinting algorithm for gray-level modes. Many generated glyphs are fuzzier but better resemble their original shape. This is achieved by snapping glyphs to the pixel grid only vertically (Y-axis), as is done by Microsoft's ClearType and Adobe's proprietary font renderer. This preserves inter-glyph spacing in horizontal text.", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_MonoHinting", + "docComment" : "Strong hinting algorithm that should only be used for monochrome output.", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 4, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_Bold", + "docComment" : "Styling: Should we artificially embolden the font?", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 5, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_Oblique", + "docComment" : "Styling: Should we slant the font, emulating italic style?", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 6, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_Monochrome", + "docComment" : "Disable anti-aliasing. Combine this with MonoHinting for best results!", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 7, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_LoadColor", + "docComment" : "Enable FreeType color-layered glyphs", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 8, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeLoaderFlags_Bitmap", + "docComment" : "Enable FreeType bitmap glyphs", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 9, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_NoHinting", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 10, + "value" : "ImGuiFreeTypeLoaderFlags_NoHinting", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_NoAutoHint", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 11, + "value" : "ImGuiFreeTypeLoaderFlags_NoAutoHint", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_ForceAutoHint", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 12, + "value" : "ImGuiFreeTypeLoaderFlags_ForceAutoHint", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_LightHinting", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 13, + "value" : "ImGuiFreeTypeLoaderFlags_LightHinting", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_MonoHinting", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 14, + "value" : "ImGuiFreeTypeLoaderFlags_MonoHinting", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_Bold", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 15, + "value" : "ImGuiFreeTypeLoaderFlags_Bold", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_Oblique", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 16, + "value" : "ImGuiFreeTypeLoaderFlags_Oblique", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_Monochrome", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 17, + "value" : "ImGuiFreeTypeLoaderFlags_Monochrome", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_LoadColor", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 18, + "value" : "ImGuiFreeTypeLoaderFlags_LoadColor", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFreeTypeBuilderFlags_Bitmap", + "qualType" : "ImGuiFreeTypeLoaderFlags_", + "order" : 19, + "value" : "ImGuiFreeTypeLoaderFlags_Bitmap", + "evaluatedValue" : 512 + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImGuiFreeType", + "decls" : [ { + "@type" : "AstFunctionDecl", + "name" : "SetAllocatorFunctions", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "alloc_func", + "qualType" : "void *(*)(int, void *)", + "desugaredQualType" : "void *(*)(int, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "free_func", + "qualType" : "void (*)(void *, void *)", + "desugaredQualType" : "void (*)(void *, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "nullptr" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Override allocators. By default ImGuiFreeType will use IM_ALLOC()/IM_FREE()" + }, { + "@type" : "AstTextComment", + "text" : " However, as FreeType does lots of allocations we provide a way for the user to redirect it to a separate memory heap if desired." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugEditFontLoaderFlags", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_font_loader_flags", + "qualType" : "ImGuiFreeTypeLoaderFlags *", + "desugaredQualType" : "ImGuiFreeTypeLoaderFlags *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Display UI to edit ImFontAtlas::FontLoaderFlags (shared) or ImFontConfig::FontLoaderFlags (single source)" + } ] + } ] + } ] + } ] + } ] +} \ No newline at end of file diff --git a/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json new file mode 100644 index 00000000..526ba4e0 --- /dev/null +++ b/buildSrc/src/main/resources/generator/api/ast/ast-imgui_internal.json @@ -0,0 +1,43407 @@ +{ + "info" : { + "source" : "include/imgui/imgui_internal.h", + "hash" : "dd8d55051ed68fa81f5c11657334247d", + "url" : "https://github.com/ocornut/imgui", + "revision" : "b1bcb12a624af7509894c8e77dd47416997777fa" + }, + "decls" : [ { + "@type" : "AstRecordDecl", + "name" : "ImBitVector", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Utilities" + }, { + "@type" : "AstTextComment", + "text" : " (other types which are not forwarded declared are: ImBitArray" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">, ImSpan" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">, ImSpanAllocator" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">, ImStableVector" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">, ImPool" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">, ImChunkStream" + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : ">)" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawDataBuilder", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImDrawList/ImFontAtlas" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiBoxSelectState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImGui" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawChannel", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Forward declarations: ImDrawList, ImFontAtlas layer" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiLocKey", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumerations" + }, { + "@type" : "AstTextComment", + "text" : " Use your programming IDE \"Go to definition\" facility on the names of the center columns to find the actual flags/enum lists." + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiContext", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Forward declarations: ImGui layer" + } ] + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDir", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Enumerations" + }, { + "@type" : "AstTextComment", + "text" : " - We don't use strongly typed enums much because they add constraints (can't extend in private code, can't store typed in bit fields, extra casting on iteration)" + }, { + "@type" : "AstTextComment", + "text" : " - Tip: Use your programming IDE navigation facilities on the names in the _central column_ below to find the actual flags/enum lists!" + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio: Ctrl+Comma (\"Edit.GoToAll\") can follow symbols inside comments, whereas Ctrl+F12 (\"Edit.GoToImplementation\") cannot." + }, { + "@type" : "AstTextComment", + "text" : " - In Visual Studio w/ Visual Assist installed: Alt+G (\"VAssistX.GoToImplementation\") can also follow symbols inside comments." + }, { + "@type" : "AstTextComment", + "text" : " - In VS Code, CLion, etc.: Ctrl+Click can follow symbols inside comments." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImHashData", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "seed", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "0" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: Hashing" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImHashStr", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long", + "defaultValue" : "0" + }, { + "@type" : "AstParmVarDecl", + "name" : "seed", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImHashSkipUncontributingPrefix", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImQsort", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "base", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_of_element", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "compare_func", + "qualType" : "int (*)(const void *, const void *)", + "desugaredQualType" : "int (*)(const void *, const void *)" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImAlphaBlendColors", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col_a", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col_b", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: Color Blending" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImIsPowerOfTwo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: Bit manipulation" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImIsPowerOfTwo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "ImU64", + "desugaredQualType" : "unsigned long long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImUpperPowerOfTwo", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImCountSetBits", + "resultType" : "unsigned int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStricmp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str1", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str2", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrnicmp", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str1", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str2", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrncpy", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "src", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImVec2: 2D vector used to store positions, sizes etc. [Compile-time configurable type]" + }, { + "@type" : "AstTextComment", + "text" : " - This is a frequently used type in the API. Consider using IM_VEC2_CLASS_EXTRA to create implicit cast from/to our preferred type." + }, { + "@type" : "AstTextComment", + "text" : " - Add '#define IMGUI_DEFINE_MATH_OPERATORS' before including this file (or in imconfig.h) to access courtesy maths operators for ImVec2 and ImVec4." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrdup", + "resultType" : "char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImMemdup", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "src", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrdupcpy", + "resultType" : "char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_dst_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrchrRange", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStreolRange", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStristr", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "haystack", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "haystack_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "needle", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "needle_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec4", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImVec4: 4D vector used to store clipping rectangles, colors etc. [Compile-time configurable type]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "z", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "w", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrTrimBlanks", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "char *", + "desugaredQualType" : "char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrSkipBlank", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrlenW", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImStrbol", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "buf_mid_line", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImToUpper", + "resultType" : "char", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImCharIsBlankA", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImCharIsBlankW", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImCharIsXdigitA", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "char", + "desugaredQualType" : "char" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFormatString", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: Formatting" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFormatStringV", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFormatStringToTempBuffer", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_buf", + "qualType" : "const char **", + "desugaredQualType" : "const char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_buf_end", + "qualType" : "const char **", + "desugaredQualType" : "const char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFormatStringToTempBufferV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_buf", + "qualType" : "const char **", + "desugaredQualType" : "const char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_buf_end", + "qualType" : "const char **", + "desugaredQualType" : "const char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatFindStart", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatFindEnd", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatTrimDecorations", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatSanitizeForPrinting", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt_in", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt_out", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt_out_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatSanitizeForScanning", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt_in", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt_out", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt_out_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImParseFormatPrecision", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "default_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCharToUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: UTF-8 " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : "> wchar conversions" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextStrToUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCharFromUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_char", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextStrFromUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_buf", + "qualType" : "ImWchar *", + "desugaredQualType" : "ImWchar *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_buf_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_remaining", + "qualType" : "const char **", + "desugaredQualType" : "const char **", + "defaultValue" : "NULL" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCountCharsFromUtf8", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCountUtf8BytesFromChar", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCountUtf8BytesFromStr", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const ImWchar *", + "desugaredQualType" : "const ImWchar *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextFindPreviousUtf8Codepoint", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text_start", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_p", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextFindValidUtf8CodepointEnd", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text_start", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_p", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCountLines", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImDrawTextFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: High-level text functions (DO NOT USE!!! THIS IS A MINIMAL SUBSET OF LARGER UPCOMING CHANGES)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawTextFlags_None", + "qualType" : "ImDrawTextFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawTextFlags_CpuFineClip", + "docComment" : "Must be == 1/true for legacy with 'bool cpu_fine_clip' arg to RenderText()", + "qualType" : "ImDrawTextFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawTextFlags_WrapKeepBlanks", + "qualType" : "ImDrawTextFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImDrawTextFlags_StopOnNewLine", + "qualType" : "ImDrawTextFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFontCalcTextSizeEx", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "max_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end_display", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_remaining", + "qualType" : "const char **", + "desugaredQualType" : "const char **" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_offset", + "qualType" : "ImVec2 *", + "desugaredQualType" : "ImVec2 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawTextFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFontCalcWordWrapPositionEx", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImTextureRef", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ImTextureRef = higher-level identifier for a texture. Store a ImTextureID _or_ a ImTextureData*." + }, { + "@type" : "AstTextComment", + "text" : " The identifier is valid even before the texture has been uploaded to the GPU/graphics system." + }, { + "@type" : "AstTextComment", + "text" : " This is what gets passed to functions such as `ImGui::Image()`, `ImDrawList::AddImage()`." + }, { + "@type" : "AstTextComment", + "text" : " This is what gets stored in draw commands (`ImDrawCmd`) to identify a texture during rendering." + }, { + "@type" : "AstTextComment", + "text" : " - When a texture is created by user code (e.g. custom images), we directly store the low-level ImTextureID." + }, { + "@type" : "AstTextComment", + "text" : " Because of this, when displaying your own texture you are likely to ever only manage ImTextureID values on your side." + }, { + "@type" : "AstTextComment", + "text" : " - When a texture is created by the backend, we stores a ImTextureData* which becomes an indirection" + }, { + "@type" : "AstTextComment", + "text" : " to extract the ImTextureID value during rendering, after texture upload has happened." + }, { + "@type" : "AstTextComment", + "text" : " - To create a ImTextureRef from a ImTextureData you can use ImTextureData::GetTexRef()." + }, { + "@type" : "AstTextComment", + "text" : " We intentionally do not provide an ImTextureRef constructor for this: we don't expect this" + }, { + "@type" : "AstTextComment", + "text" : " to be frequently useful to the end-user, and it would be erroneously called by many legacy code." + }, { + "@type" : "AstTextComment", + "text" : " - If you want to bind the current atlas when using custom rectangle, you can use io.Fonts->TexRef." + }, { + "@type" : "AstTextComment", + "text" : " - Binding generators for languages such as C (which don't have constructors), should provide a helper, e.g." + }, { + "@type" : "AstTextComment", + "text" : " inline ImTextureRef ImTextureRefFromID(ImTextureID tex_id) { ImTextureRef tex_ref = { ._TexData = NULL, .TexID = tex_id }; return tex_ref; }" + }, { + "@type" : "AstTextComment", + "text" : " In 1.92 we changed most drawing functions using ImTextureID to use ImTextureRef." + }, { + "@type" : "AstTextComment", + "text" : " We intentionally do not provide an implicit ImTextureRef -> ImTextureID cast operator because it is technically lossy to convert ImTextureRef to ImTextureID before rendering." + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTexID", + "resultType" : "ImTextureID" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextCalcWordWrapNextLineStart", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImDrawTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImWcharClass", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Character classification for word-wrapping logic" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImWcharClass_Blank", + "qualType" : "ImWcharClass", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImWcharClass_Punct", + "qualType" : "ImWcharClass", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImWcharClass_Other", + "qualType" : "ImWcharClass", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextInitClassifiers", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextClassifierClear", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "bits", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_min", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_end", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "char_class", + "qualType" : "ImWcharClass", + "desugaredQualType" : "ImWcharClass" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextClassifierSetCharClass", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "bits", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_min", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_end", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "char_class", + "qualType" : "ImWcharClass", + "desugaredQualType" : "ImWcharClass" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTextClassifierSetCharClassFromStr", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "bits", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_min", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "codepoint_end", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "char_class", + "qualType" : "ImWcharClass", + "desugaredQualType" : "ImWcharClass" + }, { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImGui", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Dear ImGui end-user API functions" + }, { + "@type" : "AstTextComment", + "text" : " (Note that ImGui:: being a namespace, you can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!)" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CreateContext", + "resultType" : "ImGuiContext *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "shared_font_atlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *", + "defaultValue" : "andl" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Context creation and access" + }, { + "@type" : "AstTextComment", + "text" : " - Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between contexts." + }, { + "@type" : "AstTextComment", + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DestroyContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *", + "defaultValue" : " ImU" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCurrentContext", + "resultType" : "ImGuiContext *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCurrentContext", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetIO", + "resultType" : "ImGuiIO &", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Main" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPlatformIO", + "resultType" : "ImGuiPlatformIO &" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyle", + "resultType" : "ImGuiStyle &" + }, { + "@type" : "AstFunctionDecl", + "name" : "NewFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndFrame", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Render", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrawData", + "resultType" : "ImDrawData *" + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowDemoWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : ".0) " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Demo, Debug, Information" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowMetricsWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "nlin" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowDebugLogWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "ng f" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowIDStackToolWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowAboutWindow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "> T " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowStyleEditor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ref", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowStyleSelector", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowFontSelector", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ShowUserGuide", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetVersion", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsDark", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : ".y :" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Styles" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsLight", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "retu" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "StyleColorsClassic", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dst", + "qualType" : "ImGuiStyle *", + "desugaredQualType" : "ImGuiStyle *", + "defaultValue" : "ec2&" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Begin", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "r(v." + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows" + }, { + "@type" : "AstTextComment", + "text" : " - Begin() = push window to the stack and start appending to it. End() = pop window from the stack." + }, { + "@type" : "AstTextComment", + "text" : " - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window," + }, { + "@type" : "AstTextComment", + "text" : " which clicking will set the boolean to false when clicked." + }, { + "@type" : "AstTextComment", + "text" : " - You may append multiple times to the same window during the same frame by calling Begin()/End() pairs multiple times." + }, { + "@type" : "AstTextComment", + "text" : " Some information such as 'flags' or 'p_open' will only be considered by the first call to Begin()." + }, { + "@type" : "AstTextComment", + "text" : " - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting" + }, { + "@type" : "AstTextComment", + "text" : " anything to the window. Always call a matching End() for each Begin() call, regardless of its return value!" + }, { + "@type" : "AstTextComment", + "text" : " [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions" + }, { + "@type" : "AstTextComment", + "text" : " such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding" + }, { + "@type" : "AstTextComment", + "text" : " BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + }, { + "@type" : "AstTextComment", + "text" : " - Note that the bottom of window stack always contains a window called \"Debug\"." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "End", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "1, const ImV" + }, { + "@type" : "AstParmVarDecl", + "name" : "child_flags", + "qualType" : "ImGuiChildFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "window_flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "s" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Child Windows" + }, { + "@type" : "AstTextComment", + "text" : " - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child." + }, { + "@type" : "AstTextComment", + "text" : " - Before 1.90 (November 2023), the \"ImGuiChildFlags child_flags = 0\" parameter was \"bool border = false\"." + }, { + "@type" : "AstTextComment", + "text" : " This API is backward compatible with old code, as we guarantee that ImGuiChildFlags_Borders == true." + }, { + "@type" : "AstTextComment", + "text" : " Consider updating your old code:" + }, { + "@type" : "AstTextComment", + "text" : " BeginChild(\"Name\", size, false) -> Begin(\"Name\", size, 0); or Begin(\"Name\", size, ImGuiChildFlags_None);" + }, { + "@type" : "AstTextComment", + "text" : " BeginChild(\"Name\", size, true) -> Begin(\"Name\", size, ImGuiChildFlags_Borders);" + }, { + "@type" : "AstTextComment", + "text" : " - Manual sizing (each axis can use a different setting e.g. ImVec2(0.0f, 400.0f)):" + }, { + "@type" : "AstTextComment", + "text" : " == 0.0f: use remaining parent window size for this axis." + }, { + "@type" : "AstTextComment", + "text" : " > 0.0f: use specified size for this axis." + }, { + "@type" : "AstTextComment", + "text" : " " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f: right/bottom-align to specified distance from available content boundaries." + }, { + "@type" : "AstTextComment", + "text" : " - Specifying ImGuiChildFlags_AutoResizeX or ImGuiChildFlags_AutoResizeY makes the sizing automatic based on child contents." + }, { + "@type" : "AstTextComment", + "text" : " Combining both ImGuiChildFlags_AutoResizeX _and_ ImGuiChildFlags_AutoResizeY defeats purpose of a scrolling region and is NOT recommended." + }, { + "@type" : "AstTextComment", + "text" : " - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting" + }, { + "@type" : "AstTextComment", + "text" : " anything to the window. Always call a matching EndChild() for each BeginChild() call, regardless of its return value." + }, { + "@type" : "AstTextComment", + "text" : " [Important: due to legacy reason, Begin/End and BeginChild/EndChild are inconsistent with all other functions" + }, { + "@type" : "AstTextComment", + "text" : " such as BeginMenu/EndMenu, BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding" + }, { + "@type" : "AstTextComment", + "text" : " BeginXXX function returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.]" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginChild", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : " ImTri" + }, { + "@type" : "AstParmVarDecl", + "name" : "child_flags", + "qualType" : "ImGuiChildFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "window_flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "c" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndChild", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowAppearing", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowCollapsed", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowFocused", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiFocusedFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : "I" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDrawList", + "resultType" : "ImDrawList *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDpiScale", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowViewport", + "resultType" : "ImGuiViewport *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "\n" + }, { + "@type" : "AstParmVarDecl", + "name" : "pivot", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "t() const " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Window manipulation" + }, { + "@type" : "AstTextComment", + "text" : " - Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowSizeConstraints", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "custom_callback", + "qualType" : "ImGuiSizeCallback", + "desugaredQualType" : "void (*)(ImGuiSizeCallbackData *)", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "custom_callback_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowContentSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "A" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowScroll", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowBgAlpha", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "alpha", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowViewport", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "=" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowFocus", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "T" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowSize", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "s" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowCollapsed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "collapsed", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "s" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetWindowFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollX", + "resultType" : "float", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Windows Scrolling" + }, { + "@type" : "AstTextComment", + "text" : " - Any change of Scroll will be applied at the beginning of next frame in the first call to Begin()." + }, { + "@type" : "AstTextComment", + "text" : " - You may instead use SetNextWindowScroll() prior to calling Begin() to avoid this delay, as an alternative to using SetScrollX()/SetScrollY()." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "scroll_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollMaxX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetScrollMaxY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollHereX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "}\n " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollHereY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "+= O" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollFromPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "center_x_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "it p" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetScrollFromPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "center_y_ratio", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ata[" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushFont", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstParmVarDecl", + "name" : "font_size_base_unscaled", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (font)" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, 0.0f) // Change font and keep current size" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(NULL, 20.0f) // Keep font and change current size" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, 20.0f) // Change font and set size to 20.0f" + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, style.FontSizeBase * 2.0f) // Change font and set size to be twice bigger than current size." + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font, font->LegacySize) // Change font and set size to size passed to AddFontXXX() function. Same as pre-1.92 behavior." + }, { + "@type" : "AstTextComment", + "text" : " *IMPORTANT* before 1.92, fonts had a single size. They can now be dynamically be adjusted." + }, { + "@type" : "AstTextComment", + "text" : " - In 1.92 we have REMOVED the single parameter version of PushFont() because it seems like the easiest way to provide an error-proof transition." + }, { + "@type" : "AstTextComment", + "text" : " - PushFont(font) before 1.92 = PushFont(font, font->LegacySize) after 1.92 // Use default font size as passed to AddFontXXX() function." + }, { + "@type" : "AstTextComment", + "text" : " *IMPORTANT* global scale factors are applied over the provided size." + }, { + "@type" : "AstTextComment", + "text" : " - Global scale factors are: 'style.FontScaleMain', 'style.FontScaleDpi' and maybe more." + }, { + "@type" : "AstTextComment", + "text" : " - If you want to apply a factor to the _current_ font size:" + }, { + "@type" : "AstTextComment", + "text" : " - CORRECT: PushFont(NULL, style.FontSizeBase) // use current unscaled size == does nothing" + }, { + "@type" : "AstTextComment", + "text" : " - CORRECT: PushFont(NULL, style.FontSizeBase * 2.0f) // use current unscaled size x2 == make text twice bigger" + }, { + "@type" : "AstTextComment", + "text" : " - INCORRECT: PushFont(NULL, GetFontSize()) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!" + }, { + "@type" : "AstTextComment", + "text" : " - INCORRECT: PushFont(NULL, GetFontSize() * 2.0f) // INCORRECT! using size after global factors already applied == GLOBAL SCALING FACTORS WILL APPLY TWICE!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopFont", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFont", + "resultType" : "ImFont *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontSize", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontBaked", + "resultType" : "ImFontBaked *" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (shared)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVarX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushStyleVarY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "val_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopStyleVar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushItemFlag", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "option", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopItemFlag", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Parameters stacks (current window)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopItemWidth", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "item_width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcItemWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushTextWrapPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "wrap_local_pos_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "(i >" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopTextWrapPos", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFontTexUvWhitePixel", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Style read access" + }, { + "@type" : "AstTextComment", + "text" : " - Use the ShowStyleEditor() function to interactively see/edit the colors." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "alpha_mul", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ndex" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColorU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "alpha_mul", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyleColorVec4", + "resultType" : "const ImVec4 &", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorScreenPos", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Layout cursor positioning" + }, { + "@type" : "AstTextComment", + "text" : " - By \"cursor\" we mean the current output position." + }, { + "@type" : "AstTextComment", + "text" : " - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down." + }, { + "@type" : "AstTextComment", + "text" : " - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceding widget." + }, { + "@type" : "AstTextComment", + "text" : " - YOU CAN DO 99% OF WHAT YOU NEED WITH ONLY GetCursorScreenPos() and GetContentRegionAvail()." + }, { + "@type" : "AstTextComment", + "text" : " - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API:" + }, { + "@type" : "AstTextComment", + "text" : " - Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. -> this is the preferred way forward." + }, { + "@type" : "AstTextComment", + "text" : " - Window-local coordinates: SameLine(offset), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), PushTextWrapPos()" + }, { + "@type" : "AstTextComment", + "text" : " - Window-local coordinates: GetContentRegionMax(), GetWindowContentRegionMin(), GetWindowContentRegionMax() --> all obsoleted. YOU DON'T NEED THEM." + }, { + "@type" : "AstTextComment", + "text" : " - GetCursorScreenPos() = GetCursorPos() + GetWindowPos(). GetWindowPos() is almost only ever useful to convert from window-local to absolute coordinates. Try not to use it." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorScreenPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetContentRegionAvail", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPosX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPosY", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPos", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_pos", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPosX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCursorPosY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "local_y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorStartPos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "Separator", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Other layout functions" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SameLine", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "offset_from_start_x", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "etur" + }, { + "@type" : "AstParmVarDecl", + "name" : "spacing", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " T* " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "NewLine", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Spacing", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Dummy", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Indent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Unindent", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "indent_w", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "cons" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndGroup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "AlignTextToFramePadding", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTextLineHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTextLineHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameHeightWithSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " ID stack/scopes" + }, { + "@type" : "AstTextComment", + "text" : " Read the FAQ (docs/FAQ.md or http://dearimgui.com/faq) for more details about how ID are handled in dear imgui." + }, { + "@type" : "AstTextComment", + "text" : " - Those questions are answered and impacted by understanding of the ID stack system:" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: Why is my widget not reacting when I click on it?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have widgets with an empty label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - \"Q: How can I have multiple widgets with the same label?\"" + }, { + "@type" : "AstTextComment", + "text" : " - Short version: ID are hashes of the entire ID stack. If you are creating widgets in a loop you most likely" + }, { + "@type" : "AstTextComment", + "text" : " want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them." + }, { + "@type" : "AstTextComment", + "text" : " - You can also use the \"Label##foobar\" syntax within widget label to distinguish them from each others." + }, { + "@type" : "AstTextComment", + "text" : " - In this header file we use the \"label\"/\"name\" terminology to denote a string that will be displayed + used as an ID," + }, { + "@type" : "AstTextComment", + "text" : " whereas \"str_id\" denote a string that is only used as an ID and not normally displayed." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PushID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopID", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id_begin", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "str_id_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetID", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "int_id", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextUnformatted", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Text" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Text", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextColored", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextColoredV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextDisabledV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextWrapped", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextWrappedV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LabelText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LabelTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BulletText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BulletTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SeparatorText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Button", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "struct ImGui" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Main" + }, { + "@type" : "AstTextComment", + "text" : " - Most widgets return true when the value has been changed or when pressed/selected" + }, { + "@type" : "AstTextComment", + "text" : " - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SmallButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InvisibleButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiButtonFlags", + "desugaredQualType" : "int", + "defaultValue" : "u" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ArrowButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "dir", + "qualType" : "ImGuiDir", + "desugaredQualType" : "ImGuiDir" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Checkbox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags_value", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CheckboxFlags", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "unsigned int *", + "desugaredQualType" : "unsigned int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags_value", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "active", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RadioButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_button", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ProgressBar", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fraction", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "size_arg", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "-------------------" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "----" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Bullet", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TextLink", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TextLinkOpenURL", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "url", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "fals" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Image", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "_NoMarkEdite" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "6, // false " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Images" + }, { + "@type" : "AstTextComment", + "text" : " - Read about ImTextureID/ImTextureRef here: https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples" + }, { + "@type" : "AstTextComment", + "text" : " - 'uv0' and 'uv1' are texture coordinates. Read about them from the same link above." + }, { + "@type" : "AstTextComment", + "text" : " - Image() pads adds style.ImageBorderSize on each side, ImageButton() adds style.FramePadding on each side." + }, { + "@type" : "AstTextComment", + "text" : " - ImageButton() draws a background based on regular Button() color + optionally an inner background if specified." + }, { + "@type" : "AstTextComment", + "text" : " - An obsolete version of Image(), before 1.91.9 (March 2025), had a 'tint_col' parameter which is now supported by the ImageWithBg() function." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImageWithBg", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "PERIMENTAL: " + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : " Clicking do" + }, { + "@type" : "AstParmVarDecl", + "name" : "bg_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "ically sets ImGuiB" + }, { + "@type" : "AstParmVarDecl", + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : "uttonFlags_NoNavFo" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImageButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "tex_ref", + "qualType" : "ImTextureRef", + "desugaredQualType" : "ImTextureRef" + }, { + "@type" : "AstParmVarDecl", + "name" : "image_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv0", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "WIP] Auto-ac" + }, { + "@type" : "AstParmVarDecl", + "name" : "uv1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : " tab focused" + }, { + "@type" : "AstParmVarDecl", + "name" : "bg_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : " supported by a fe" + }, { + "@type" : "AstParmVarDecl", + "name" : "tint_col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &", + "defaultValue" : " generic feature.\n" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginCombo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "preview_value", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiComboFlags", + "desugaredQualType" : "int", + "defaultValue" : "r" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Combo Box (Dropdown)" + }, { + "@type" : "AstTextComment", + "text" : " - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items." + }, { + "@type" : "AstTextComment", + "text" : " - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. This is analogous to how ListBox are created." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndCombo", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_separated_by_zeros", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "nl" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Combo", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "getter", + "qualType" : "const char *(*)(void *, int)", + "desugaredQualType" : "const char *(*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_max_height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "va" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "XX)\n" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "tend" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "gs_\n" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "rivate" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Drag Sliders" + }, { + "@type" : "AstTextComment", + "text" : " - Ctrl+Click on any drag box to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "text" : " - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every function, note that a 'float v[X]' function argument is the same as 'float* v'," + }, { + "@type" : "AstTextComment", + "text" : " the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. " + }, { + "@type" : "AstTextComment", + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "text" : ".x" + }, { + "@type" : "AstTextComment", + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "text" : " - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For keyboard/gamepad navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision)." + }, { + "@type" : "AstTextComment", + "text" : " - Use v_min " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " v_max to clamp edits to given limits. Note that Ctrl+Click manual input can override those limits if ImGuiSliderFlags_AlwaysClamp is not used." + }, { + "@type" : "AstTextComment", + "text" : " - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum." + }, { + "@type" : "AstTextComment", + "text" : " - We use the same sets of flags for DragXXX() and SliderXXX() functions as the features are the same and it makes it easier to swap them." + }, { + "@type" : "AstTextComment", + "text" : " - Legacy: Pre-1.78 there are DragXXX() function signatures that take a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ered" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "lay," + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "dFla" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "owHove" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "l" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "_NoP" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ImGu" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ckHi" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "lags_A" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "G" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "Flag" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " Im" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "Allo" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " = I" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "l" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragFloatRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_min", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_max", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "wWhe" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "iHov" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "verr" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "_ForTo" + }, { + "@type" : "AstParmVarDecl", + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "tati" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " //" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " =" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "u" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ill " + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "r" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "tly " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "Scal" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "n" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "Flag" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "F" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " Im" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "_" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "R" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "[Def" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "+" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragIntRange2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_min", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_current_max", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "re =" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "i" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "e re" + }, { + "@type" : "AstParmVarDecl", + "name" : "format_max", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "le h" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "u" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "26/0" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "iBut" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "veId" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "now." + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DragScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_speed", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ld " + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "true" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "we a" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "othe" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "o" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "iveId " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "G" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Regular Sliders" + }, { + "@type" : "AstTextComment", + "text" : " - Ctrl+Click on any slider to turn them into an input box. Manually input values aren't clamped by default and can go off-bounds. Use ImGuiSliderFlags_AlwaysClamp to always clamp." + }, { + "@type" : "AstTextComment", + "text" : " - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. \"%.3f\" -> 1.234; \"%5.2f secs\" -> 01.23 secs; \"Biscuit: %.0f\" -> Biscuit: 1; etc." + }, { + "@type" : "AstTextComment", + "text" : " - Format string may also be set to NULL or use the default format (\"%f\" or \"%d\")." + }, { + "@type" : "AstTextComment", + "text" : " - Legacy: Pre-1.78 there are SliderXXX() function signatures that take a final `float power=1.0f' argument instead of the `ImGuiSliderFlags flags=0' argument." + }, { + "@type" : "AstTextComment", + "text" : " If you get a warning converting a float to ImGuiSliderFlags, read https://github.com/ocornut/imgui/issues/3361" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "se leg" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "s" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "= 1 <<" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "v" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "n the " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "b" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderAngle", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_rad", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_degrees_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "stKeyOw" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_degrees_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "// don'" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "when polli" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "t" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " =" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : ":" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "GuiB" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "OnRe" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "tonF" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "\n" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\n{\n " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SliderScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "/ Sh" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "t" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " inste" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "c" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v_max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "ctab" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "VSliderScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_min", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_max", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "leas" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSliderFlags", + "desugaredQualType" : "int", + "defaultValue" : "r" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputText", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "S" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "ing " + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "paci" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Input with Keyboard" + }, { + "@type" : "AstTextComment", + "text" : " - If you want to use InputText() with std::string or any custom dynamic string type, use the wrapper in misc/cpp/imgui_stdlib.h/.cpp!" + }, { + "@type" : "AstTextComment", + "text" : " - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputTextMultiline", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "k (note: mou" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "useL" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "ImGu" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputTextWithHint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "hint", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf", + "qualType" : "char *", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "buf_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "callback", + "qualType" : "ImGuiInputTextCallback", + "desugaredQualType" : "int (*)(ImGuiInputTextCallbackData *)", + "defaultValue" : "ImGu" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "abel" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "iTre" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "nArr" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : ",// FI" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "iTreeN" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "m" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "Flags_" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "l" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputFloat4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "GuiSep" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "d" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "lay" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "t" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt2", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "p" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "l" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputInt4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "w" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputDouble", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "double *", + "desugaredQualType" : "double *" + }, { + "@type" : "AstParmVarDecl", + "name" : "step", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : " Ge" + }, { + "@type" : "AstParmVarDecl", + "name" : "step_fast", + "qualType" : "double", + "desugaredQualType" : "double", + "defaultValue" : "IsW" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "()\n// " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "h" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputScalar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "ags_" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : " Im" + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "stor" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : "F" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "InputScalarN", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data_type", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "components", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "e wi" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_step_fast", + "qualType" : "const void *", + "desugaredQualType" : "const void *", + "defaultValue" : "num " + }, { + "@type" : "AstParmVarDecl", + "name" : "format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "mGui" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorEdit3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "i" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little color square that can be left-clicked to open a picker, and right-clicked to open an option menu.)" + }, { + "@type" : "AstTextComment", + "text" : " - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible." + }, { + "@type" : "AstTextComment", + "text" : " - You can pass the address of a first float element out of a contiguous structure, e.g. " + }, { + "@type" : "AstTextComment", + "text" : "&myvector" + }, { + "@type" : "AstTextComment", + "text" : ".x" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorEdit4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "<" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorPicker3", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "i" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorPicker4", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "float *", + "desugaredQualType" : "float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "i" + }, { + "@type" : "AstParmVarDecl", + "name" : "ref_col", + "qualType" : "const float *", + "desugaredQualType" : "const float *", + "defaultValue" : "uiLo" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "desc_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "col", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int", + "defaultValue" : "n" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "is\n{\n ImG" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColorEditOptions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiColorEditFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Trees" + }, { + "@type" : "AstTextComment", + "text" : " - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNode", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "o" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeEx", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeExV", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePush", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr_id", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreePop", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTreeNodeToLabelSpacing", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "G" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CollapsingHeader", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_visible", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "e" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemOpen", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "is_open", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemStorageID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TreeNodeGetOpen", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "A; " + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "f" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "fer size! Sh" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Selectables" + }, { + "@type" : "AstTextComment", + "text" : " - A selectable highlights when hovered, and can display another color when selected." + }, { + "@type" : "AstTextComment", + "text" : " - Neighbors selectable extend their highlight bounds in order to leave no gap between them. This is so a series of selected Selectable appear contiguous." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Selectable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiSelectableFlags", + "desugaredQualType" : "int", + "defaultValue" : "s" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : " Bu" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMultiSelect", + "resultType" : "ImGuiMultiSelectIO *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiMultiSelectFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "selection_size", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "el" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "fo" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Multi-selection system for Selectable(), Checkbox(), TreeNode() functions [BETA]" + }, { + "@type" : "AstTextComment", + "text" : " - This enables standard multi-selection/range-selection idioms (Ctrl+Mouse/Keyboard, Shift+Mouse/Keyboard, etc.) in a way that also allow a clipper to be used." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiSelectionUserData is often used to store your item index within the current view (but may store something else)." + }, { + "@type" : "AstTextComment", + "text" : " - Read comments near ImGuiMultiSelectIO for instructions/details and see 'Demo->Widgets->Selection State " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Multi-Select' for demo." + }, { + "@type" : "AstTextComment", + "text" : " - TreeNode() is technically supported but... using this correctly is more complicated. You need some sort of linear/random access to your tree," + }, { + "@type" : "AstTextComment", + "text" : " which is suited to advanced trees setups already implementing filters and clipper. We will work simplifying the current demo." + }, { + "@type" : "AstTextComment", + "text" : " - 'selection_size' and 'items_count' parameters are optional and used by a few features. If they are costly for you to compute, you may avoid them." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMultiSelect", + "resultType" : "ImGuiMultiSelectIO *" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemSelectionUserData", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "selection_user_data", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemToggledSelection", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "o\");\n // " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: List Boxes" + }, { + "@type" : "AstTextComment", + "text" : " - This is essentially a thin wrapper to using BeginChild/EndChild with the ImGuiChildFlags_FrameStyle flag for stylistic changes + displaying a label." + }, { + "@type" : "AstTextComment", + "text" : " - If you don't need a label you can probably simply use BeginChild() with the ImGuiChildFlags_FrameStyle flag for the same result." + }, { + "@type" : "AstTextComment", + "text" : " - You can submit contents and manage your selection state however you want it, by creating e.g. Selectable() or any other items." + }, { + "@type" : "AstTextComment", + "text" : " - The simplified/old ListBox() api are helpers over BeginListBox()/EndListBox() which are kept available for convenience purpose. This is analogous to how Combos are created." + }, { + "@type" : "AstTextComment", + "text" : " - Choose frame width: size.x > 0.0f: custom / size.x " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f or -FLT_MIN: right-align / size.x = 0.0f (default): use current ItemWidth" + }, { + "@type" : "AstTextComment", + "text" : " - Choose frame height: size.y > 0.0f: custom / size.y " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 0.0f or -FLT_MIN: bottom-align / size.y = 0.0f (default): arbitrary default height which can fit ~7 items" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndListBox", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items", + "qualType" : "const char *const *", + "desugaredQualType" : "const char *const *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "{\n" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ListBox", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "current_item", + "qualType" : "int *", + "desugaredQualType" : "int *" + }, { + "@type" : "AstParmVarDecl", + "name" : "getter", + "qualType" : "const char *(*)(void *, int)", + "desugaredQualType" : "const char *(*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "items_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "height_in_items", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "BE" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "u" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "ency" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : ".\n};\n\ne" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "ckFlags" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "gClickFlags_No" + }, { + "@type" : "AstParmVarDecl", + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " = 0,\n I" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Data Plotting" + }, { + "@type" : "AstTextComment", + "text" : " - Consider using ImPlot (https://github.com/epezent/implot) which is much better!" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotLines", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "Wind" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "mGuiNex" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "e " + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "GuiNextWindowD" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values", + "qualType" : "const float *", + "desugaredQualType" : "const float *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "s" + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "\n " + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "Flags_H" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "1 << 3," + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "DataFlags_HasS" + }, { + "@type" : "AstParmVarDecl", + "name" : "stride", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "= 1 << 4,\n " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PlotHistogram", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_getter", + "qualType" : "float (*)(void *, int)", + "desugaredQualType" : "float (*)(void *, int)" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "values_offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "overlay_text", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "wDat" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_min", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "s =" + }, { + "@type" : "AstParmVarDecl", + "name" : "scale_max", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "xtWindo" + }, { + "@type" : "AstParmVarDecl", + "name" : "graph_size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2", + "defaultValue" : "lags = 1 " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Value() Helpers." + }, { + "@type" : "AstTextComment", + "text" : " - Those are merely shortcut to calling Text() with a format string. Output single value in \"name: value\" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Value", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "prefix", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "float_format", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : ";\n " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMenuBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Widgets: Menus" + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar." + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it." + }, { + "@type" : "AstTextComment", + "text" : " - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it." + }, { + "@type" : "AstTextComment", + "text" : " - Not that MenuItem() keyboardshortcuts are displayed as a convenience but _not processed_ by Dear ImGui at the moment." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMainMenuBar", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMainMenuBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginMenu", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "mGui" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndMenu", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " = 1" + }, { + "@type" : "AstParmVarDecl", + "name" : "selected", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "xtIte" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "rage" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MenuItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "shortcut", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_selected", + "qualType" : "bool *", + "desugaredQualType" : "bool *" + }, { + "@type" : "AstParmVarDecl", + "name" : "enabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTooltip", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tooltips" + }, { + "@type" : "AstTextComment", + "text" : " - Tooltips are windows following the mouse. They do not take focus away." + }, { + "@type" : "AstTextComment", + "text" : " - A tooltip window can contain items of any types." + }, { + "@type" : "AstTextComment", + "text" : " - SetTooltip() is more or less a shortcut for the 'if (BeginTooltip()) { Text(...); EndTooltip(); }' idiom (with a subtlety that it discard any previously submitted tooltip)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTooltip", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTooltipV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginItemTooltip", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tooltips: helpers for showing a tooltip when hovering an item" + }, { + "@type" : "AstTextComment", + "text" : " - BeginItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip) " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " BeginTooltip())' idiom." + }, { + "@type" : "AstTextComment", + "text" : " - SetItemTooltip() is a shortcut for the 'if (IsItemHovered(ImGuiHoveredFlags_ForTooltip)) { SetTooltip(...); }' idiom." + }, { + "@type" : "AstTextComment", + "text" : " - Where 'ImGuiHoveredFlags_ForTooltip' itself is a shortcut to use 'style.HoverFlagsForTooltipMouse' or 'style.HoverFlagsForTooltipNav' depending on active input type. For mouse it defaults to 'ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayShort'." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemTooltip", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemTooltipV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopup", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "t" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups, Modals" + }, { + "@type" : "AstTextComment", + "text" : " - They block normal mouse hovering detection (and therefore most mouse interactions) behind them." + }, { + "@type" : "AstTextComment", + "text" : " - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE." + }, { + "@type" : "AstTextComment", + "text" : " - Their visibility state (~bool) is held internally instead of being held by the programmer as we are used to with regular Begin*() calls." + }, { + "@type" : "AstTextComment", + "text" : " - The 3 properties above are related: we need to retain popup visibility state in the library because popups may be closed as any time." + }, { + "@type" : "AstTextComment", + "text" : " - You can bypass the hovering restriction by using ImGuiHoveredFlags_AllowWhenBlockedByPopup when calling IsItemHovered() or IsWindowHovered()." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Popup identifiers are relative to the current ID stack, so OpenPopup and BeginPopup generally needs to be at the same level of the stack." + }, { + "@type" : "AstTextComment", + "text" : " This is sometimes leading to confusing mistakes. May rework this in the future." + }, { + "@type" : "AstTextComment", + "text" : " - BeginPopup(): query popup state, if open start appending into the window. Call EndPopup() afterwards if returned true. ImGuiWindowFlags are forwarded to the window." + }, { + "@type" : "AstTextComment", + "text" : " - BeginPopupModal(): block every interaction behind the window, cannot be closed by user, add a dimming background, has a title bar." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupModal", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "rRec" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int", + "defaultValue" : "z" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: open/close functions" + }, { + "@type" : "AstTextComment", + "text" : " - OpenPopup(): set popup state to open. ImGuiPopupFlags are available for opening options." + }, { + "@type" : "AstTextComment", + "text" : " - If not modal: they can be closed by clicking anywhere outside them, or by pressing ESCAPE." + }, { + "@type" : "AstTextComment", + "text" : " - CloseCurrentPopup(): use inside the BeginPopup()/EndPopup() scope to close manually." + }, { + "@type" : "AstTextComment", + "text" : " - CloseCurrentPopup() is called by default by Selectable()/MenuItem() when activated (FIXME: need some options)." + }, { + "@type" : "AstTextComment", + "text" : " - Use ImGuiPopupFlags_NoOpenOverExistingPopup to avoid opening a popup if there's already one at the same level. This is equivalent to e.g. testing for !IsAnyPopupOpen() prior to OpenPopup()." + }, { + "@type" : "AstTextComment", + "text" : " - Use IsWindowAppearing() after BeginPopup() to tell if a window just opened." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopup", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OpenPopupOnItemClick", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "tion" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CloseCurrentPopup", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "/ Bi" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "m" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: Open+Begin popup combined functions helpers to create context menus." + }, { + "@type" : "AstTextComment", + "text" : " - Helpers to do OpenPopup+BeginPopup where the Open action is triggered by e.g. hovering an item and right-clicking." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Notice that BeginPopupContextXXX takes ImGuiPopupFlags just like OpenPopup() and unlike BeginPopup(). For full consistency, we may add ImGuiWindowFlags to the BeginPopupContextXXX functions in the future." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: If you ever used the left mouse button with BeginPopupContextXXX() helpers before 1.92.6:" + }, { + "@type" : "AstTextComment", + "text" : " - Before this version, OpenPopupOnItemClick(), BeginPopupContextItem(), BeginPopupContextWindow(), BeginPopupContextVoid() had 'a ImGuiPopupFlags popup_flags = 1' default value in their function signature." + }, { + "@type" : "AstTextComment", + "text" : " - Before: Explicitly passing a literal 0 meant ImGuiPopupFlags_MouseButtonLeft. The default = 1 meant ImGuiPopupFlags_MouseButtonRight." + }, { + "@type" : "AstTextComment", + "text" : " - After: The default = 0 means ImGuiPopupFlags_MouseButtonRight. Explicitly passing a literal 1 also means ImGuiPopupFlags_MouseButtonRight (if legacy behavior are enabled) or will assert (if legacy behavior are disabled)." + }, { + "@type" : "AstTextComment", + "text" : " - TL;DR: if you don't want to use right mouse button for popups, always specify it explicitly using a named ImGuiPopupFlags_MouseButtonXXXX value." + }, { + "@type" : "AstTextComment", + "text" : " - Read \"API BREAKING CHANGES\" 2026/01/07 (1.92.6) entry in imgui.cpp or GitHub topic #9157 for all details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextWindow", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "Key_" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginPopupContextVoid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : " ImG" + }, { + "@type" : "AstParmVarDecl", + "name" : "popup_flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "G" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsPopupOpen", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiPopupFlags", + "desugaredQualType" : "int", + "defaultValue" : "p" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Popups: query functions" + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen(): return true if the popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId: return true if any popup is open at the current BeginPopup() level of the popup stack." + }, { + "@type" : "AstTextComment", + "text" : " - IsPopupOpen() with ImGuiPopupFlags_AnyPopupId + ImGuiPopupFlags_AnyPopupLevel: return true if any popup is open." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTable", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "columns", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTableFlags", + "desugaredQualType" : "int", + "defaultValue" : "T" + }, { + "@type" : "AstParmVarDecl", + "name" : "outer_size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "usePos\n ImG" + }, { + "@type" : "AstParmVarDecl", + "name" : "inner_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " M" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables" + }, { + "@type" : "AstTextComment", + "text" : " - Full-featured replacement for old Columns API." + }, { + "@type" : "AstTextComment", + "text" : " - See Demo->Tables for demo code. See top of imgui_tables.cpp for general commentary." + }, { + "@type" : "AstTextComment", + "text" : " - See ImGuiTableFlags_ and ImGuiTableColumnFlags_ enums for a description of available flags." + }, { + "@type" : "AstTextComment", + "text" : " The typical call flow is:" + }, { + "@type" : "AstTextComment", + "text" : " - 1. Call BeginTable(), early out if returning false." + }, { + "@type" : "AstTextComment", + "text" : " - 2. Optionally call TableSetupColumn() to submit column name/flags/defaults." + }, { + "@type" : "AstTextComment", + "text" : " - 3. Optionally call TableSetupScrollFreeze() to request scroll freezing of columns/rows." + }, { + "@type" : "AstTextComment", + "text" : " - 4. Optionally call TableHeadersRow() to submit a header row. Names are pulled from TableSetupColumn() data." + }, { + "@type" : "AstTextComment", + "text" : " - 5. Populate contents:" + }, { + "@type" : "AstTextComment", + "text" : " - In most situations you can use TableNextRow() + TableSetColumnIndex(N) to start appending into a column." + }, { + "@type" : "AstTextComment", + "text" : " - If you are using tables as a sort of grid, where every column is holding the same type of contents," + }, { + "@type" : "AstTextComment", + "text" : " you may prefer using TableNextColumn() instead of TableNextRow() + TableSetColumnIndex()." + }, { + "@type" : "AstTextComment", + "text" : " TableNextColumn() will automatically wrap-around into the next row if needed." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Comparatively to the old Columns() API, we need to call TableNextColumn() for the first column!" + }, { + "@type" : "AstTextComment", + "text" : " - Summary of possible call flow:" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> TableSetColumnIndex(0) -> Text(\"Hello 0\") -> TableSetColumnIndex(1) -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextColumn() -> Text(\"Hello 0\") -> TableNextColumn() -> Text(\"Hello 1\") // OK: TableNextColumn() automatically gets to next row!" + }, { + "@type" : "AstTextComment", + "text" : " - TableNextRow() -> Text(\"Hello 0\") // Not OK! Missing TableSetColumnIndex() or TableNextColumn()! Text will not appear!" + }, { + "@type" : "AstTextComment", + "text" : " - 5. Call EndTable()" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTable", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableNextRow", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "row_flags", + "qualType" : "ImGuiTableRowFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "min_row_height", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "vent" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableNextColumn", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetColumnIndex", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetupColumn", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTableColumnFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "init_width_or_weight", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " Rou" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "[" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables: Headers " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Columns declaration" + }, { + "@type" : "AstTextComment", + "text" : " - Use TableSetupColumn() to specify label, resizing policy, default width/weight, id, various other flags etc." + }, { + "@type" : "AstTextComment", + "text" : " - Use TableHeadersRow() to create a header row and automatically submit a TableHeader() for each column." + }, { + "@type" : "AstTextComment", + "text" : " Headers are required to perform: reordering, sorting, and opening the context menu." + }, { + "@type" : "AstTextComment", + "text" : " The context menu can also be made available in columns body using ImGuiTableFlags_ContextMenuInBody." + }, { + "@type" : "AstTextComment", + "text" : " - You may manually submit headers using TableNextRow() + TableHeader() calls, but this is only useful in" + }, { + "@type" : "AstTextComment", + "text" : " some advanced use cases (e.g. adding custom widgets in header row)." + }, { + "@type" : "AstTextComment", + "text" : " - Use TableSetupScrollFreeze() to lock columns/rows so they stay visible when scrolled. When freezing columns you would usually also use ImGuiTableColumnFlags_NoHide on them." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetupScrollFreeze", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "cols", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "rows", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableHeader", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableHeadersRow", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableAngledHeadersRow", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetSortSpecs", + "resultType" : "ImGuiTableSortSpecs *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tables: Sorting " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Miscellaneous functions" + }, { + "@type" : "AstTextComment", + "text" : " - Sorting: call TableGetSortSpecs() to retrieve latest sort specs for the table. NULL when not sorting." + }, { + "@type" : "AstTextComment", + "text" : " When 'sort_specs->SpecsDirty == true' you should sort your data. It will be true when sorting specs have" + }, { + "@type" : "AstTextComment", + "text" : " changed since last call, or the first time. Make sure to set 'SpecsDirty = false' after sorting," + }, { + "@type" : "AstTextComment", + "text" : " else you may wastefully sort your data every frame!" + }, { + "@type" : "AstTextComment", + "text" : " - Functions args 'int column_n' treat the default value of -1 as the same as passing the current column index." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetRowIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "()" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetColumnFlags", + "resultType" : "ImGuiTableColumnFlags", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "ey" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetColumnEnabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TableGetHoveredColumn", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "TableSetBgColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "target", + "qualType" : "ImGuiTableBgTarget", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "color", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "column_n", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "wh" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Columns", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "id", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "epea" + }, { + "@type" : "AstParmVarDecl", + "name" : "borders", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "ss " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Legacy Columns API (prefer using Tables!)" + }, { + "@type" : "AstTextComment", + "text" : " - You can also use SameLine(pos_x) to mimic simplified columns." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "NextColumn", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnIndex", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnWidth", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColumnWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "width", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnOffset", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "r " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetColumnOffset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "column_index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "offset_x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetColumnsCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTabBar", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "str_id", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabBarFlags", + "desugaredQualType" : "int", + "defaultValue" : "m" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Tab Bars, Tabs" + }, { + "@type" : "AstTextComment", + "text" : " - Note: Tabs are automatically created by the docking system (when in 'docking' branch). Use this to create tab bars/tabs yourself." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTabBar", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginTabItem", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_open", + "qualType" : "bool *", + "desugaredQualType" : "bool *", + "defaultValue" : "Inpu" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "a" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndTabItem", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TabItemButton", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiTabItemFlags", + "desugaredQualType" : "int", + "defaultValue" : "b" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetTabItemClosed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "tab_or_docked_window_label", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DockSpace", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dockspace_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &", + "defaultValue" : "------------" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "-" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : "----" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Docking" + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Docking for details." + }, { + "@type" : "AstTextComment", + "text" : " - Enable with io.ConfigFlags |= ImGuiConfigFlags_DockingEnable." + }, { + "@type" : "AstTextComment", + "text" : " - You can use many Docking facilities without calling any API." + }, { + "@type" : "AstTextComment", + "text" : " - Drag from window title bar or their tab to dock/undock. Hold SHIFT to disable docking." + }, { + "@type" : "AstTextComment", + "text" : " - Drag from window menu button (upper-left button) to undock an entire node (all windows)." + }, { + "@type" : "AstTextComment", + "text" : " - When io.ConfigDockingWithShift == true, you instead need to hold SHIFT to enable docking." + }, { + "@type" : "AstTextComment", + "text" : " - DockSpaceOverViewport:" + }, { + "@type" : "AstTextComment", + "text" : " - This is a helper to create an invisible window covering a viewport, then submit a DockSpace() into it." + }, { + "@type" : "AstTextComment", + "text" : " - Most applications can simply call DockSpaceOverViewport() once to allow docking windows into e.g. the edge of your screen." + }, { + "@type" : "AstTextComment", + "text" : " e.g. ImGui::NewFrame(); ImGui::DockSpaceOverViewport(); // Create a dockspace in main viewport." + }, { + "@type" : "AstTextComment", + "text" : " or: ImGui::NewFrame(); ImGui::DockSpaceOverViewport(0, nullptr, ImGuiDockNodeFlags_PassthruCentralNode); // Create a dockspace in main viewport, central node is transparent." + }, { + "@type" : "AstTextComment", + "text" : " - Dockspaces:" + }, { + "@type" : "AstTextComment", + "text" : " - A dockspace is an explicit dock node within an existing window." + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Dockspaces need to be submitted _before_ any window they can host. Submit them early in your frame!" + }, { + "@type" : "AstTextComment", + "text" : " - IMPORTANT: Dockspaces need to be kept alive if hidden, otherwise windows docked into it will be undocked." + }, { + "@type" : "AstTextComment", + "text" : " If you have e.g. multiple tabs with a dockspace inside each tab: submit the non-visible dockspaces with ImGuiDockNodeFlags_KeepAliveOnly." + }, { + "@type" : "AstTextComment", + "text" : " - See 'Demo->Examples->Dockspace' or 'Demo->Examples->Documents' for more detailed demos." + }, { + "@type" : "AstTextComment", + "text" : " - Programmatic docking:" + }, { + "@type" : "AstTextComment", + "text" : " - There is no public API yet other than the very limited SetNextWindowDockID() function. Sorry for that!" + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Docking for examples of how to use current internal API." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DockSpaceOverViewport", + "resultType" : "ImGuiID", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dockspace_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int", + "defaultValue" : "m" + }, { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "const ImGuiViewport *", + "desugaredQualType" : "const ImGuiViewport *", + "defaultValue" : "tiva" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int", + "defaultValue" : "=" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowDockID", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dock_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "i" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextWindowClass", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "window_class", + "qualType" : "const ImGuiWindowClass *", + "desugaredQualType" : "const ImGuiWindowClass *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWindowDockID", + "resultType" : "ImGuiID" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsWindowDocked", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToTTY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "en" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Logging/Capture" + }, { + "@type" : "AstTextComment", + "text" : " - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToFile", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstParmVarDecl", + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "le: " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogToClipboard", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "auto_open_depth", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "Gu" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogFinish", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogButtons", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "LogText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LogTextV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDragDropSource", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "F" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Drag and Drop" + }, { + "@type" : "AstTextComment", + "text" : " - On source items, call BeginDragDropSource(), if it returns true also call SetDragDropPayload() + EndDragDropSource()." + }, { + "@type" : "AstTextComment", + "text" : " - On target candidates, call BeginDragDropTarget(), if it returns true also call AcceptDragDropPayload() + EndDragDropTarget()." + }, { + "@type" : "AstTextComment", + "text" : " - If you stop calling BeginDragDropSource() the payload is preserved however it won't have a preview tooltip (we currently display a fallback \"...\" tooltip, see #1725)" + }, { + "@type" : "AstTextComment", + "text" : " - An item can be both drag source and drop target." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetDragDropPayload", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "cond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int", + "defaultValue" : "r" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDragDropSource", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDragDropTarget", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "AcceptDragDropPayload", + "resultType" : "const ImGuiPayload *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "type", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDragDropFlags", + "desugaredQualType" : "int", + "defaultValue" : "R" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDragDropTarget", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDragDropPayload", + "resultType" : "const ImGuiPayload *" + }, { + "@type" : "AstFunctionDecl", + "name" : "BeginDisabled", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "disabled", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "ummy" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Disabling [BETA API]" + }, { + "@type" : "AstTextComment", + "text" : " - Disable all user interactions and dim items visuals (applying style.DisabledAlpha over current colors)" + }, { + "@type" : "AstTextComment", + "text" : " - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled)" + }, { + "@type" : "AstTextComment", + "text" : " - Tooltips windows are automatically opted out of disabling. Note that IsItemHovered() by default returns false on disabled items, unless using ImGuiHoveredFlags_AllowWhenDisabled." + }, { + "@type" : "AstTextComment", + "text" : " - BeginDisabled(false)/EndDisabled() essentially does nothing but is provided to facilitate use of boolean expressions (as a micro-optimization: if you have tens of thousands of BeginDisabled(false)/EndDisabled() pairs, you might want to reformulate your code to avoid making those calls)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "EndDisabled", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "PushClipRect", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip_rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "intersect_with_current_clip_rect", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Clipping" + }, { + "@type" : "AstTextComment", + "text" : " - Mouse hovering is affected by ImGui::PushClipRect() calls, unlike direct calls to ImDrawList::PushClipRect() which are render only." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "PopClipRect", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemDefaultFocus", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Focus, Activation" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetKeyboardFocusHere", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "offset", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNavCursorVisible", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "visible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Keyboard/Gamepad Navigation" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemAllowOverlap", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Overlapping mode" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemHovered", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiHoveredFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Item/Widgets Utilities and Query Functions" + }, { + "@type" : "AstTextComment", + "text" : " - Most of the functions are referring to the previous Item that has been submitted." + }, { + "@type" : "AstTextComment", + "text" : " - See Demo Window under \"Widgets->Querying Status\" for an interactive visualization of most of those functions." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "mouse_button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemVisible", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemEdited", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemActivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemDeactivated", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemDeactivatedAfterEdit", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsItemToggledOpen", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemHovered", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemActive", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyItemFocused", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemID", + "resultType" : "ImGuiID" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectMin", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectMax", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemRectSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetItemFlags", + "resultType" : "ImGuiItemFlags" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMainViewport", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Viewports" + }, { + "@type" : "AstTextComment", + "text" : " - Currently represents the Platform Window created by the application which is hosting our Dear ImGui windows." + }, { + "@type" : "AstTextComment", + "text" : " - In 'docking' branch with multi-viewport enabled, we extend this concept to have multiple active viewports." + }, { + "@type" : "AstTextComment", + "text" : " - In the future we will extend this concept further to also represent Platform Monitor and support a \"no main platform window\" operation mode." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBackgroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *", + "defaultValue" : "colu" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Background/Foreground Draw Lists" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetForegroundDrawList", + "resultType" : "ImDrawList *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport", + "qualType" : "ImGuiViewport *", + "desugaredQualType" : "ImGuiViewport *", + "defaultValue" : "lags" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Miscellaneous Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsRectVisible", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "rect_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rect_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTime", + "resultType" : "double" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetFrameCount", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetDrawListSharedData", + "resultType" : "ImDrawListSharedData *" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStyleColorName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetStateStorage", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "storage", + "qualType" : "ImGuiStorage *", + "desugaredQualType" : "ImGuiStorage *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetStateStorage", + "resultType" : "ImGuiStorage *" + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcTextSize", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "text_end", + "qualType" : "const char *", + "desugaredQualType" : "const char *", + "defaultValue" : "Colu" + }, { + "@type" : "AstParmVarDecl", + "name" : "hide_text_after_double_hash", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "of(*t" + }, { + "@type" : "AstParmVarDecl", + "name" : "wrap_width", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "-----" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Text Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertU32ToFloat4", + "resultType" : "ImVec4", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Color Utilities" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertFloat4ToU32", + "resultType" : "ImU32", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertRGBtoHSV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "g", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_h", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_s", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_v", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ColorConvertHSVtoRGB", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "h", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "s", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_r", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_g", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_b", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Raw Keyboard/Mouse/Gamepad Access" + }, { + "@type" : "AstTextComment", + "text" : " - Consider using the Shortcut() function instead of IsKeyPressed()/IsKeyChordPressed()! Shortcut() is easier to use and better featured (can do focus routing check)." + }, { + "@type" : "AstTextComment", + "text" : " - the ImGuiKey enum contains all possible keyboard, mouse and gamepad inputs (e.g. ImGuiKey_A, ImGuiKey_MouseLeft, ImGuiKey_GamepadDpadUp...)." + }, { + "@type" : "AstTextComment", + "text" : " - (legacy: before v1.87 (2022-02), we used ImGuiKey " + }, { + "@type" : "AstTextComment", + "text" : "<" + }, { + "@type" : "AstTextComment", + "text" : " 512 values to carry native/user indices as defined by each backends. This was obsoleted in 1.87 (2022-02) and completely removed in 1.91.5 (2024-11). See https://github.com/ocornut/imgui/issues/4921)" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyPressed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsKeyChordPressed", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetKeyPressedAmount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat_delay", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "rate", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetKeyName", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextFrameWantCaptureKeyboard", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "want_capture_keyboard", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Shortcut", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputFlags", + "desugaredQualType" : "int", + "defaultValue" : " " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Shortcut Testing " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Routing" + }, { + "@type" : "AstTextComment", + "text" : " - Typical use is e.g.: 'if (ImGui::Shortcut(ImGuiMod_Ctrl | ImGuiKey_S)) { ... }'." + }, { + "@type" : "AstTextComment", + "text" : " - Flags: Default route use ImGuiInputFlags_RouteFocused, but see ImGuiInputFlags_RouteGlobal and other options in ImGuiInputFlags_!" + }, { + "@type" : "AstTextComment", + "text" : " - Flags: Use ImGuiInputFlags_Repeat to support repeat." + }, { + "@type" : "AstTextComment", + "text" : " - ImGuiKeyChord = a ImGuiKey + optional ImGuiMod_Alt/ImGuiMod_Ctrl/ImGuiMod_Shift/ImGuiMod_Super." + }, { + "@type" : "AstTextComment", + "text" : " ImGuiKey_C // Accepted by functions taking ImGuiKey or ImGuiKeyChord arguments" + }, { + "@type" : "AstTextComment", + "text" : " ImGuiMod_Ctrl | ImGuiKey_C // Accepted by functions taking ImGuiKeyChord arguments" + }, { + "@type" : "AstTextComment", + "text" : " only ImGuiMod_XXX values are legal to combine with an ImGuiKey. You CANNOT combine two ImGuiKey values." + }, { + "@type" : "AstTextComment", + "text" : " - The general idea is that several callers may register interest in a shortcut, and only one owner gets it." + }, { + "@type" : "AstTextComment", + "text" : " Parent -> call Shortcut(Ctrl+S) // When Parent is focused, Parent gets the shortcut." + }, { + "@type" : "AstTextComment", + "text" : " Child1 -> call Shortcut(Ctrl+S) // When Child1 is focused, Child1 gets the shortcut (Child1 overrides Parent shortcuts)" + }, { + "@type" : "AstTextComment", + "text" : " Child2 -> no call // When Child2 is focused, Parent gets the shortcut." + }, { + "@type" : "AstTextComment", + "text" : " The whole system is order independent, so if Child1 makes its calls before Parent, results will be identical." + }, { + "@type" : "AstTextComment", + "text" : " This is an important property as it facilitate working with foreign code or larger codebase." + }, { + "@type" : "AstTextComment", + "text" : " - To understand the difference:" + }, { + "@type" : "AstTextComment", + "text" : " - IsKeyChordPressed() compares mods and call IsKeyPressed()" + }, { + "@type" : "AstTextComment", + "text" : " -> the function has no side-effect." + }, { + "@type" : "AstTextComment", + "text" : " - Shortcut() submits a route, routes are resolved, if it currently can be routed it calls IsKeyChordPressed()" + }, { + "@type" : "AstTextComment", + "text" : " -> the function has (desirable) side-effects as it can prevents another call from getting the route." + }, { + "@type" : "AstTextComment", + "text" : " - Visualize registered routes in 'Metrics/Debugger->Inputs'." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextItemShortcut", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key_chord", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiInputFlags", + "desugaredQualType" : "int", + "defaultValue" : "S" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetItemKeyOwner", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Key/Input Ownership [BETA]" + }, { + "@type" : "AstTextComment", + "text" : " - One common use case would be to allow your items to disable standard inputs behaviors such" + }, { + "@type" : "AstTextComment", + "text" : " as Tab or Alt key handling, Mouse Wheel scrolling, etc." + }, { + "@type" : "AstTextComment", + "text" : " e.g. Button(...); SetItemKeyOwner(ImGuiKey_MouseWheelY); to make hovering/activating a button disable wheel for scrolling." + }, { + "@type" : "AstTextComment", + "text" : " - Reminder ImGuiKey enum include access to mouse buttons and gamepad, so key ownership can apply to them." + }, { + "@type" : "AstTextComment", + "text" : " - Many related features are still in imgui_internal.h. For instance, most IsKeyXXX()/IsMouseXXX() functions have an owner-id-aware version." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDown", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Inputs Utilities: Mouse" + }, { + "@type" : "AstTextComment", + "text" : " - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right." + }, { + "@type" : "AstTextComment", + "text" : " - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle." + }, { + "@type" : "AstTextComment", + "text" : " - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold')" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "repeat", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : " appe" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseReleased", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDoubleClicked", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseReleasedWithDelay", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "delay", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseClickedCount", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseHoveringRect", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r_min", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "r_max", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "clip", + "qualType" : "bool", + "desugaredQualType" : "bool", + "defaultValue" : "ws/n" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMousePosValid", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "mouse_pos", + "qualType" : "const ImVec2 *", + "desugaredQualType" : "const ImVec2 *", + "defaultValue" : " " + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsAnyMouseDown", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMousePos", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMousePosOnOpeningCurrentPopup", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsMouseDragging", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : " | Im" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseDragDelta", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "m" + }, { + "@type" : "AstParmVarDecl", + "name" : "lock_threshold", + "qualType" : "float", + "desugaredQualType" : "float", + "defaultValue" : "e | I" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ResetMouseDragDelta", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "button", + "qualType" : "ImGuiMouseButton", + "desugaredQualType" : "int", + "defaultValue" : "t" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetMouseCursor", + "resultType" : "ImGuiMouseCursor" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetMouseCursor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "cursor_type", + "qualType" : "ImGuiMouseCursor", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetNextFrameWantCaptureMouse", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "want_capture_mouse", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetClipboardText", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Clipboard Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetClipboardText", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LoadIniSettingsFromDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Settings/.Ini Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - The disk functions are automatically called if io.IniFilename != NULL (default is \"imgui.ini\")." + }, { + "@type" : "AstTextComment", + "text" : " - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually." + }, { + "@type" : "AstTextComment", + "text" : " - Important: default value \"imgui.ini\" is relative to current working dir! Most apps will want to lock this to an absolute path (e.g. same path as executables)." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "LoadIniSettingsFromMemory", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_data", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "ini_size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long", + "defaultValue" : "G" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SaveIniSettingsToDisk", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ini_filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SaveIniSettingsToMemory", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "out_ini_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "ive;" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugTextEncoding", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "text", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Debug Utilities" + }, { + "@type" : "AstTextComment", + "text" : " - Your main debugging friend is the ShowMetricsWindow() function." + }, { + "@type" : "AstTextComment", + "text" : " - Interactive tools are all accessible from the 'Dear ImGui Demo->Tools' menu." + }, { + "@type" : "AstTextComment", + "text" : " - Read https://github.com/ocornut/imgui/wiki/Debug-Tools for a description of all available debug tools." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugFlashStyleColor", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "idx", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugStartItemPicker", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugCheckVersionAndDataLayout", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "version_str", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_io", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_style", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_vec2", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_vec4", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_drawvert", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstParmVarDecl", + "name" : "sz_drawidx", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugLog", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DebugLogV", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "fmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "args", + "qualType" : "va_list", + "desugaredQualType" : "char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "#FORMAT_ATTR_MARKER#", + "qualType" : "#FORMAT_ATTR_MARKER#", + "desugaredQualType" : "#FORMAT_ATTR_MARKER#" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "alloc_func", + "qualType" : "ImGuiMemAllocFunc", + "desugaredQualType" : "void *(*)(size_t, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "free_func", + "qualType" : "ImGuiMemFreeFunc", + "desugaredQualType" : "void (*)(void *, void *)" + }, { + "@type" : "AstParmVarDecl", + "name" : "user_data", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : " " + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Memory Allocators" + }, { + "@type" : "AstTextComment", + "text" : " - Those functions are not reliant on the current context." + }, { + "@type" : "AstTextComment", + "text" : " - DLL users: heaps and globals are not shared across DLL boundaries! You will need to call SetCurrentContext() + SetAllocatorFunctions()" + }, { + "@type" : "AstTextComment", + "text" : " for each static/DLL boundary you are calling from. Read \"Context and Memory Allocators\" section of imgui.cpp for more details." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetAllocatorFunctions", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p_alloc_func", + "qualType" : "ImGuiMemAllocFunc *", + "desugaredQualType" : "ImGuiMemAllocFunc *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_free_func", + "qualType" : "ImGuiMemFreeFunc *", + "desugaredQualType" : "ImGuiMemFreeFunc *" + }, { + "@type" : "AstParmVarDecl", + "name" : "p_user_data", + "qualType" : "void **", + "desugaredQualType" : "void **" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MemAlloc", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "MemFree", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "ptr", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "UpdatePlatformWindows", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " (Optional) Platform/OS interface for multi-viewport support" + }, { + "@type" : "AstTextComment", + "text" : " Read comments around the ImGuiPlatformIO structure for more details." + }, { + "@type" : "AstTextComment", + "text" : " Note: You may use GetWindowViewport() to get the current viewport of the current window." + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "RenderPlatformWindowsDefault", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "platform_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "dden" + }, { + "@type" : "AstParmVarDecl", + "name" : "renderer_render_arg", + "qualType" : "void *", + "desugaredQualType" : "void *", + "defaultValue" : "edFl" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DestroyPlatformWindows", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "FindViewportByID", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "viewport_id", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FindViewportByPlatformHandle", + "resultType" : "ImGuiViewport *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "platform_handle", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileOpen", + "resultType" : "ImFileHandle", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "mode", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileClose", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "file", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileGetSize", + "resultType" : "ImU64", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "file", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileRead", + "resultType" : "ImU64", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "ImU64", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "ImU64", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstParmVarDecl", + "name" : "file", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileWrite", + "resultType" : "ImU64", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "data", + "qualType" : "const void *", + "desugaredQualType" : "const void *" + }, { + "@type" : "AstParmVarDecl", + "name" : "size", + "qualType" : "ImU64", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstParmVarDecl", + "name" : "count", + "qualType" : "ImU64", + "desugaredQualType" : "unsigned long long" + }, { + "@type" : "AstParmVarDecl", + "name" : "file", + "qualType" : "ImFileHandle", + "desugaredQualType" : "FILE *" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFileLoadToMemory", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "filename", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "mode", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_file_size", + "qualType" : "size_t *", + "desugaredQualType" : "size_t *", + "defaultValue" : "NULL" + }, { + "@type" : "AstParmVarDecl", + "name" : "padding_bytes", + "qualType" : "int", + "desugaredQualType" : "int", + "defaultValue" : "0" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImPow", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImPow", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + }, { + "@type" : "AstParmVarDecl", + "name" : "y", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLog", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLog", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImAbs", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImAbs", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImAbs", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImSign", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImSign", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImRsqrt", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImRsqrt", + "resultType" : "double", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "double", + "desugaredQualType" : "double" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImMin", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " - Misc maths helpers" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImMax", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImClamp", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "mn", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "mx", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLerp", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLerp", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "t", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLerp", + "resultType" : "ImVec4", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImSaturate", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLengthSqr", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLengthSqr", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec4 &", + "desugaredQualType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImInvLength", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "fail_value", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTrunc", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTrunc", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFloor", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImFloor", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTrunc64", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImRound64", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImModPositive", + "resultType" : "int", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImDot", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImRotate", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "v", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "cos_a", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "sin_a", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLinearSweep", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "current", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "target", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "speed", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLinearRemapClamp", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "s0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "s1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "d0", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "d1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImMul", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "lhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "rhs", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImIsFloatAboveGuaranteedIntegerPrecision", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "f", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImExponentialMovingAverage", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "avg", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "sample", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBezierCubicCalc", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helpers: Geometry" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBezierCubicClosestPoint", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "num_segments", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBezierCubicClosestPointCasteljau", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p4", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "tess_tol", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBezierQuadraticCalc", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p1", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p2", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p3", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "t", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLineClosestPoint", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTriangleContainsPoint", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTriangleClosestPoint", + "resultType" : "ImVec2", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTriangleBarycentricCoords", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_u", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_v", + "qualType" : "float &", + "desugaredQualType" : "float &" + }, { + "@type" : "AstParmVarDecl", + "name" : "out_w", + "qualType" : "float &", + "desugaredQualType" : "float &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTriangleArea", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImTriangleIsClockwise", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "a", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "b", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec1", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImVec1 (1D vector)" + }, { + "@type" : "AstTextComment", + "text" : " (this odd construct is used to facilitate the transition between 1D and 2D, and the maintenance of some branches/patches)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec2i", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImVec2i (2D vector, integer)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImVec2ih", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImVec2ih (2D vector, half-size integer, for long-term packed storage)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "x", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "y", + "qualType" : "short", + "desugaredQualType" : "short" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImRect", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImRect (2D axis aligned bounding-box)" + }, { + "@type" : "AstTextComment", + "text" : " NB: we can't rely on ImVec2 math operators being available here!" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Min", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Max", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCenter", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSize", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetWidth", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetHeight", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetArea", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTL", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetTR", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBL", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetBR", + "resultType" : "ImVec2" + }, { + "@type" : "AstFunctionDecl", + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Contains", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ContainsWithPad", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + }, { + "@type" : "AstParmVarDecl", + "name" : "pad", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Overlaps", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Add", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "p", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Add", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Expand", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "amount", + "qualType" : "const float", + "desugaredQualType" : "const float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Expand", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "amount", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Translate", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "d", + "qualType" : "const ImVec2 &", + "desugaredQualType" : "const ImVec2 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TranslateX", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dx", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "TranslateY", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "dy", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClipWith", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClipWithFull", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "r", + "qualType" : "const ImRect &", + "desugaredQualType" : "const ImRect &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "IsInverted", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "ToVec4", + "resultType" : "ImVec4" + }, { + "@type" : "AstFunctionDecl", + "name" : "AsVec4", + "resultType" : "const ImVec4 &" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArrayGetStorageSizeInBytes", + "resultType" : "size_t", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "bitcount", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArrayClearAllBits", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "arr", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "bitcount", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArrayTestBit", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "arr", + "qualType" : "const ImU32 *", + "desugaredQualType" : "const ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArrayClearBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "arr", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArraySetBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "arr", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImBitArraySetBitRange", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "arr", + "qualType" : "ImU32 *", + "desugaredQualType" : "ImU32 *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "n2", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImBitVector", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImBitVector" + }, { + "@type" : "AstTextComment", + "text" : " Store 1-bit per value." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Storage", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "Create", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "sz", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "TestBit", + "resultType" : "bool", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SetBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearBit", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTextIndex", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImGuiTextIndex" + }, { + "@type" : "AstTextComment", + "text" : " Maintain a line index for a text buffer. This is a strong candidate to be moved into the public API." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Offsets", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "EndOffset", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "size", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "get_line_begin", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "base", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "get_line_end", + "resultType" : "const char *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "base", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "n", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "append", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "base", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstParmVarDecl", + "name" : "old_size", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "new_size", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ImLowerBound", + "resultType" : "ImGuiStoragePair *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "in_begin", + "qualType" : "ImGuiStoragePair *", + "desugaredQualType" : "ImGuiStoragePair *" + }, { + "@type" : "AstParmVarDecl", + "name" : "in_end", + "qualType" : "ImGuiStoragePair *", + "desugaredQualType" : "ImGuiStoragePair *" + }, { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Helper: ImGuiStorage" + } ] + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawListSharedData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Data shared between all ImDrawList instances" + }, { + "@type" : "AstTextComment", + "text" : " Conceptually this could have been called e.g. ImDrawListSharedContext" + }, { + "@type" : "AstTextComment", + "text" : " Typically one ImGui context would create and maintain one of this." + }, { + "@type" : "AstTextComment", + "text" : " You may want to create your own instance of you try to ImDrawList completely without ImGui. In that case, watch out for future changes to this structure." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "TexUvWhitePixel", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "TexUvLines", + "qualType" : "const ImVec4 *", + "desugaredQualType" : "const ImVec4 *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontAtlas", + "qualType" : "ImFontAtlas *", + "desugaredQualType" : "ImFontAtlas *" + }, { + "@type" : "AstFieldDecl", + "name" : "Font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontSize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CurveTessellationTol", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CircleSegmentMaxError", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "InitialFringeScale", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "InitialFlags", + "qualType" : "ImDrawListFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ClipRectFullscreen", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + }, { + "@type" : "AstFieldDecl", + "name" : "TempBuffer", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawLists", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Context", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "ArcFastVtx", + "qualType" : "ImVec2[48]", + "desugaredQualType" : "ImVec2[48]" + }, { + "@type" : "AstFieldDecl", + "name" : "ArcFastRadiusCutoff", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CircleSegmentCounts", + "qualType" : "ImU8[64]", + "desugaredQualType" : "ImU8[64]" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetCircleTessellationMaxError", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "max_error", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImDrawDataBuilder", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Layers", + "qualType" : "ImVector *[2]", + "desugaredQualType" : "ImVector *[2]" + }, { + "@type" : "AstFieldDecl", + "name" : "LayerData1", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImFontStackData", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Font", + "qualType" : "ImFont *", + "desugaredQualType" : "ImFont *" + }, { + "@type" : "AstFieldDecl", + "name" : "FontSizeBeforeScaling", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "FontSizeAfterScaling", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiStyleVarInfo", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Style support" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Count", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "DataType", + "qualType" : "ImGuiDataType", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Offset", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetVarPtr", + "resultType" : "void *", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "parent", + "qualType" : "void *", + "desugaredQualType" : "void *" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiColorMod", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Stacked color modifier, backup of modified data so we can restore it" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Col", + "qualType" : "ImGuiCol", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupValue", + "qualType" : "ImVec4", + "desugaredQualType" : "ImVec4" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiStyleMod", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "VarIdx", + "qualType" : "ImGuiStyleVar", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiDataTypeStorage", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Data types support" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Data", + "qualType" : "ImU8[8]", + "desugaredQualType" : "ImU8[8]" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiDataTypeInfo", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo()." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Size", + "qualType" : "size_t", + "desugaredQualType" : "unsigned long" + }, { + "@type" : "AstFieldDecl", + "name" : "Name", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "PrintFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "ScanFmt", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDataTypePrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiDataType_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_Pointer", + "qualType" : "ImGuiDataTypePrivate_", + "order" : 0, + "value" : "ImGuiDataType_COUNT", + "evaluatedValue" : 12 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataType_ID", + "qualType" : "ImGuiDataTypePrivate_", + "order" : 1, + "evaluatedValue" : 13 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiItemFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiItemFlags" + }, { + "@type" : "AstTextComment", + "text" : " - input: PushItemFlag() manipulates g.CurrentItemFlags, g.NextItemData.ItemFlags, ItemAdd() calls may add extra flags too." + }, { + "@type" : "AstTextComment", + "text" : " - output: stored in g.LastItemData.ItemFlags" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_ReadOnly", + "docComment" : "false // [ALPHA] Allow hovering interactions but underlying value is not changed.", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 0, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_MixedValue", + "docComment" : "false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets)", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 1, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoWindowHoverableCheck", + "docComment" : "false // Disable hoverable check in ItemHoverable()", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 2, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_AllowOverlap", + "docComment" : "false // Allow being overlapped by another widget. Not-hovered to Hovered transition deferred by a frame.", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 3, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoNavDisableMouseHover", + "docComment" : "false // Nav keyboard/gamepad mode doesn't disable hover highlight (behave as if NavHighlightItemUnderNav==false).", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 4, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoMarkEdited", + "docComment" : "false // Skip calling MarkItemEdited()", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 5, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_NoFocus", + "docComment" : "false // [EXPERIMENTAL: Not very well specced] Clicking doesn't take focus. Automatically sets ImGuiButtonFlags_NoFocus + ImGuiButtonFlags_NoNavFocus in ButtonBehavior().", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 6, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_Inputable", + "docComment" : "false // [WIP] Auto-activate input mode when tab focused. Currently only used and supported by a few items before it becomes a generic feature.", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 7, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_HasSelectionUserData", + "docComment" : "false // Set by SetNextItemSelectionUserData()", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 8, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_IsMultiSelect", + "docComment" : "false // Set by SetNextItemSelectionUserData()", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 9, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemFlags_Default_", + "docComment" : "Please don't change, use PushItemFlag() instead.", + "qualType" : "ImGuiItemFlagsPrivate_", + "order" : 10, + "value" : "ImGuiItemFlags_AutoClosePopups", + "evaluatedValue" : 16 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiItemStatusFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Status flags for an already submitted item" + }, { + "@type" : "AstTextComment", + "text" : " - output: stored in g.LastItemData.StatusFlags" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_None", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HoveredRect", + "docComment" : "Mouse position is within item rectangle (does NOT mean that the window is in correct z-order and can be hovered!, this is only one part of the most-common IsItemHovered test)", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HasDisplayRect", + "docComment" : "g.LastItemData.DisplayRect is valid", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_Edited", + "docComment" : "Value exposed by item was edited in the current frame (should match the bool return value of most widgets)", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_ToggledSelection", + "docComment" : "Set when Selectable(), TreeNode() reports toggling a selection. We can't report \"Selected\", only state changes, in order to easily handle clipping with less issues.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_ToggledOpen", + "docComment" : "Set when TreeNode() reports toggling their open state.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HasDeactivated", + "docComment" : "Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_Deactivated", + "docComment" : "Only valid if ImGuiItemStatusFlags_HasDeactivated is set.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HoveredWindow", + "docComment" : "Override the HoveredWindow test to allow cross-window hover testing.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_Visible", + "docComment" : "[WIP] Set when item is overlapping the current clipping rectangle (Used internally. Please don't use yet: API/system will change as we refactor Itemadd()).", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HasClipRect", + "docComment" : "g.LastItemData.ClipRect is valid.", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiItemStatusFlags_HasShortcut", + "docComment" : "g.LastItemData.Shortcut valid. Set by SetNextItemShortcut() -> ItemAdd().", + "qualType" : "ImGuiItemStatusFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiHoveredFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiHoveredFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_DelayMask_", + "qualType" : "ImGuiHoveredFlagsPrivate_", + "order" : 0, + "value" : "ImGuiHoveredFlags_DelayNone | ImGuiHoveredFlags_DelayShort | ImGuiHoveredFlags_DelayNormal | ImGuiHoveredFlags_NoSharedDelay", + "evaluatedValue" : 245760 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowedMaskForIsWindowHovered", + "qualType" : "ImGuiHoveredFlagsPrivate_", + "order" : 1, + "value" : "ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_AnyWindow | ImGuiHoveredFlags_NoPopupHierarchy | ImGuiHoveredFlags_DockHierarchy | ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_ForTooltip | ImGuiHoveredFlags_Stationary", + "evaluatedValue" : 12479 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiHoveredFlags_AllowedMaskForIsItemHovered", + "qualType" : "ImGuiHoveredFlagsPrivate_", + "order" : 2, + "value" : "ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped | ImGuiHoveredFlags_AllowWhenDisabled | ImGuiHoveredFlags_NoNavOverride | ImGuiHoveredFlags_ForTooltip | ImGuiHoveredFlags_Stationary | ImGuiHoveredFlags_DelayMask_", + "evaluatedValue" : 262048 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputTextFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiInputTextFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_Multiline", + "docComment" : "For internal use by InputTextMultiline()", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 0, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_TempInput", + "docComment" : "For internal use by TempInputText(), will skip calling ItemAdd(). Require bounding-box to strictly match.", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 1, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputTextFlags_LocalizeDecimalPoint", + "docComment" : "For internal use by InputScalar() and TempInputScalar()", + "qualType" : "ImGuiInputTextFlagsPrivate_", + "order" : 2, + "value" : "1 << 28", + "evaluatedValue" : 268435456 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiButtonFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiButtonFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnClick", + "docComment" : "return true on click (mouse down event)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 0, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnClickRelease", + "docComment" : "[Default] return true on click + release on same item < -- this is what the majority of Button are using", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 1, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnClickReleaseAnywhere", + "docComment" : "return true on click + release even if the release event is not done while hovering the item", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 2, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnRelease", + "docComment" : "return true on release (default requires click+release). Prior to 2026/03/20 this implied ImGuiButtonFlags_NoHoldingActiveId but they are separate now.", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 3, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnDoubleClick", + "docComment" : "return true on double-click (default requires click+release)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 4, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnDragDropHold", + "docComment" : "return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 5, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_FlattenChildren", + "docComment" : "allow interactions even if a child window is overlapping", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 6, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_AlignTextBaseLine", + "docComment" : "vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 7, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoKeyModsAllowed", + "docComment" : "disable mouse interaction if a key modifier is held", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 8, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoHoldingActiveId", + "docComment" : "don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 9, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoNavFocus", + "docComment" : "don't override navigation focus when activated (FIXME: this is essentially used every time an item uses ImGuiItemFlags_NoNav, but because legacy specs don't requires LastItemData to be set ButtonBehavior(), we can't poll g.LastItemData.ItemFlags)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 10, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoHoveredOnFocus", + "docComment" : "don't report as hovered when nav focus is on this item", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 11, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoSetKeyOwner", + "docComment" : "don't set key/input owner on the initial click (note: mouse buttons are keys! often, the key in question will be ImGuiKey_MouseLeft!)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 12, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoTestKeyOwner", + "docComment" : "don't test key/input owner when polling the key (note: mouse buttons are keys! often, the key in question will be ImGuiKey_MouseLeft!)", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 13, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_NoFocus", + "docComment" : "[EXPERIMENTAL: Not very well specced]. Don't focus parent window when clicking.", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 14, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnMask_", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 15, + "value" : "ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold", + "evaluatedValue" : 1008 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiButtonFlags_PressedOnDefault_", + "qualType" : "ImGuiButtonFlagsPrivate_", + "order" : 16, + "value" : "ImGuiButtonFlags_PressedOnClickRelease", + "evaluatedValue" : 32 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiComboFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiComboFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiComboFlags_CustomPreview", + "docComment" : "enable BeginComboPreview()", + "qualType" : "ImGuiComboFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSliderFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiSliderFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_Vertical", + "docComment" : "Should this slider be orientated vertically?", + "qualType" : "ImGuiSliderFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSliderFlags_ReadOnly", + "docComment" : "Consider using g.NextItemData.ItemFlags |= ImGuiItemFlags_ReadOnly instead.", + "qualType" : "ImGuiSliderFlagsPrivate_", + "order" : 1, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSelectableFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiSelectableFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_NoHoldingActiveID", + "docComment" : "NB: need to be in sync with last value of ImGuiSelectableFlags_", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 0, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SelectOnClick", + "docComment" : "Override button behavior to react on Click (default is Click+Release)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 1, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SelectOnRelease", + "docComment" : "Override button behavior to react on Release (default is Click+Release)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 2, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SpanAvailWidth", + "docComment" : "Span all avail width even if we declared less for layout purpose. FIXME: We may be able to remove this (added in 6251d379, 2bcafc86 for menus)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 3, + "value" : "1 << 24", + "evaluatedValue" : 16777216 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_SetNavIdOnHover", + "docComment" : "Set Nav/Focus ID on mouse hover (used by MenuItem)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 4, + "value" : "1 << 25", + "evaluatedValue" : 33554432 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_NoPadWithHalfSpacing", + "docComment" : "Disable padding each side with ItemSpacing * 0.5f", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 5, + "value" : "1 << 26", + "evaluatedValue" : 67108864 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSelectableFlags_NoSetKeyOwner", + "docComment" : "Don't set key/input owner on the initial click (note: mouse buttons are keys! often, the key in question will be ImGuiKey_MouseLeft!)", + "qualType" : "ImGuiSelectableFlagsPrivate_", + "order" : 6, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTreeNodeFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiTreeNodeFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_NoNavFocus", + "docComment" : "Don't claim nav focus when interacting with this item (#8551)", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 0, + "value" : "1 << 27", + "evaluatedValue" : 134217728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_ClipLabelForTrailingButton", + "docComment" : "FIXME-WIP: Hard-coded for CollapsingHeader()", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 1, + "value" : "1 << 28", + "evaluatedValue" : 268435456 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_UpsideDownArrow", + "docComment" : "FIXME-WIP: Turn Down arrow into an Up arrow, for reversed trees (#6517)", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 2, + "value" : "1 << 29", + "evaluatedValue" : 536870912 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_OpenOnMask_", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 3, + "value" : "ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_OpenOnArrow", + "evaluatedValue" : 192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTreeNodeFlags_DrawLinesMask_", + "qualType" : "ImGuiTreeNodeFlagsPrivate_", + "order" : 4, + "value" : "ImGuiTreeNodeFlags_DrawLinesNone | ImGuiTreeNodeFlags_DrawLinesFull | ImGuiTreeNodeFlags_DrawLinesToNodes", + "evaluatedValue" : 1835008 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiSeparatorFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSeparatorFlags_None", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSeparatorFlags_Horizontal", + "docComment" : "Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSeparatorFlags_Vertical", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiSeparatorFlags_SpanAllColumns", + "docComment" : "Make separator cover all columns of a legacy Columns() set.", + "qualType" : "ImGuiSeparatorFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiFocusRequestFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for FocusWindow(). This is not called ImGuiFocusFlags to avoid confusion with public-facing ImGuiFocusedFlags." + }, { + "@type" : "AstTextComment", + "text" : " FIXME: Once we finishing replacing more uses of GetTopMostPopupModal()+IsWindowWithinBeginStackOf()" + }, { + "@type" : "AstTextComment", + "text" : " and FindBlockingModal() with this, we may want to change the flag to be opt-out instead of opt-in." + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusRequestFlags_None", + "qualType" : "ImGuiFocusRequestFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusRequestFlags_RestoreFocusedChild", + "docComment" : "Find last focused child (if any) and focus it instead.", + "qualType" : "ImGuiFocusRequestFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiFocusRequestFlags_UnlessBelowModal", + "docComment" : "Do not set focus if the window is below a modal.", + "qualType" : "ImGuiFocusRequestFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTextFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTextFlags_None", + "qualType" : "ImGuiTextFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTextFlags_NoWidthForLargeClippedText", + "qualType" : "ImGuiTextFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTooltipFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTooltipFlags_None", + "qualType" : "ImGuiTooltipFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTooltipFlags_OverridePrevious", + "docComment" : "Clear/ignore previously submitted tooltip (defaults to append)", + "qualType" : "ImGuiTooltipFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiLayoutType_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " FIXME: this is in development, not exposed/functional as a generic feature yet." + }, { + "@type" : "AstTextComment", + "text" : " Horizontal/Vertical enums are fixed to 0/1 so they may be used to index ImVec2" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLayoutType_Horizontal", + "qualType" : "ImGuiLayoutType_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLayoutType_Vertical", + "qualType" : "ImGuiLayoutType_", + "order" : 1, + "value" : "1", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiLogFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for LogBegin() text capturing function" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_None", + "qualType" : "ImGuiLogFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_OutputTTY", + "qualType" : "ImGuiLogFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_OutputFile", + "qualType" : "ImGuiLogFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_OutputBuffer", + "qualType" : "ImGuiLogFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_OutputClipboard", + "qualType" : "ImGuiLogFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiLogFlags_OutputMask_", + "qualType" : "ImGuiLogFlags_", + "order" : 5, + "value" : "ImGuiLogFlags_OutputTTY | ImGuiLogFlags_OutputFile | ImGuiLogFlags_OutputBuffer | ImGuiLogFlags_OutputClipboard", + "evaluatedValue" : 15 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiAxis", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " X/Y enums are fixed to 0/1 so they may be used to index ImVec2" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiAxis_None", + "qualType" : "ImGuiAxis", + "order" : 0, + "value" : "-1", + "evaluatedValue" : -1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiAxis_X", + "qualType" : "ImGuiAxis", + "order" : 1, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiAxis_Y", + "qualType" : "ImGuiAxis", + "order" : 2, + "value" : "1", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiPlotType", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPlotType_Lines", + "qualType" : "ImGuiPlotType", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPlotType_Histogram", + "qualType" : "ImGuiPlotType", + "order" : 1, + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiComboPreviewData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage data for BeginComboPreview()/EndComboPreview()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "PreviewRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorMaxPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorPosPrevLine", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupPrevLineTextBaseOffset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupLayout", + "qualType" : "ImGuiLayoutType", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiGroupData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Stacked storage data for BeginGroup()/EndGroup()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "WindowID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorMaxPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorPosPrevLine", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupIndent", + "qualType" : "ImVec1", + "desugaredQualType" : "ImVec1" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupGroupOffset", + "qualType" : "ImVec1", + "desugaredQualType" : "ImVec1" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCurrLineSize", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCurrLineTextBaseOffset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupActiveIdIsAlive", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupActiveIdHasBeenEditedThisFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupDeactivatedIdIsAlive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupHoveredIdIsAlive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupIsSameLine", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "EmitItem", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiMenuColumns", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "TotalWidth", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "NextTotalWidth", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Spacing", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "OffsetIcon", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "OffsetLabel", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "OffsetShortcut", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "OffsetMark", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "Widths", + "qualType" : "ImU16[4]", + "desugaredQualType" : "ImU16[4]" + }, { + "@type" : "AstFunctionDecl", + "name" : "Update", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "spacing", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "window_reappearing", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "DeclColumns", + "resultType" : "float", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "w_icon", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "w_label", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "w_shortcut", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "w_mark", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CalcNextTotalWidth", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "update_offsets", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputTextDeactivatedState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Internal temporary state for deactivating InputText() instances." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "TextA", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFreeMemory", + "resultType" : "void" + } ] + }, { + "@type" : "AstNamespaceDecl", + "name" : "ImStb" + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputTextState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Internal state of the currently focused/edited text input box" + }, { + "@type" : "AstTextComment", + "text" : " For a given item ID, access with ImGui::GetInputTextState()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Ctx", + "qualType" : "ImGuiContext *", + "desugaredQualType" : "ImGuiContext *" + }, { + "@type" : "AstFieldDecl", + "name" : "Stb", + "qualType" : "ImStbTexteditState *", + "desugaredQualType" : "ImStbTexteditState *" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiInputTextFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "TextLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "TextSrc", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "TextA", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "TextToRevertTo", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "CallbackTextBackup", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "BufCapacity", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Scroll", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "LineCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "WrapWidth", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CursorAnim", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "CursorFollow", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "CursorCenterY", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectedAllMouseLock", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "EditedBefore", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "EditedThisFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantReloadUserBuf", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "LastMoveDirectionLR", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "ReloadSelectionStart", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ReloadSelectionEnd", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearText", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFreeMemory", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "OnKeyPressed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "key", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "OnCharPressed", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "c", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "GetPreferredOffsetX", + "resultType" : "float" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetText", + "resultType" : "const char *" + }, { + "@type" : "AstFunctionDecl", + "name" : "CursorAnimReset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Cursor " + }, { + "@type" : "AstTextComment", + "text" : "&" + }, { + "@type" : "AstTextComment", + "text" : " Selection" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "CursorClamp", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "HasSelection", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetCursorPos", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSelectionStart", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "GetSelectionEnd", + "resultType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetSelection", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "start", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "end", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "SelectAll", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ReloadUserBufAndSelectAll", + "resultType" : "void", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Reload user buf (WIP #2890)" + }, { + "@type" : "AstTextComment", + "text" : " If you modify underlying user-passed const char* while active you need to call this (InputText V2 may lift this)" + }, { + "@type" : "AstTextComment", + "text" : " strcpy(my_buf, \"hello\");" + }, { + "@type" : "AstTextComment", + "text" : " if (ImGuiInputTextState* state = ImGui::GetInputTextState(id)) // id may be ImGui::GetItemID() is last item" + }, { + "@type" : "AstTextComment", + "text" : " state->ReloadUserBufAndSelectAll();" + } ] + } ] + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "ReloadUserBufAndKeepSelection", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ReloadUserBufAndMoveToEnd", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiWindowRefreshFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowRefreshFlags_None", + "qualType" : "ImGuiWindowRefreshFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowRefreshFlags_TryToAvoidRefresh", + "docComment" : "[EXPERIMENTAL] Try to keep existing contents, USER MUST NOT HONOR BEGIN() RETURNING FALSE AND NOT APPEND.", + "qualType" : "ImGuiWindowRefreshFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowRefreshFlags_RefreshOnHover", + "docComment" : "[EXPERIMENTAL] Always refresh on hover", + "qualType" : "ImGuiWindowRefreshFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowRefreshFlags_RefreshOnFocus", + "docComment" : "[EXPERIMENTAL] Always refresh on focus", + "qualType" : "ImGuiWindowRefreshFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiWindowBgClickFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowBgClickFlags_None", + "qualType" : "ImGuiWindowBgClickFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowBgClickFlags_Move", + "docComment" : "Click on bg/void + drag to move window. Cleared by default when using io.ConfigWindowsMoveFromTitleBarOnly.", + "qualType" : "ImGuiWindowBgClickFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiNextWindowDataFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_None", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasPos", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasSize", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasContentSize", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasCollapsed", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasSizeConstraint", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasFocus", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasBgAlpha", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasScroll", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 8, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasWindowFlags", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 9, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasChildFlags", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 10, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasRefreshPolicy", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 11, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasViewport", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 12, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasDock", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 13, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextWindowDataFlags_HasWindowClass", + "qualType" : "ImGuiNextWindowDataFlags_", + "order" : 14, + "value" : "1 << 13", + "evaluatedValue" : 8192 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiNextWindowData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage for SetNexWindow** functions" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "HasFlags", + "qualType" : "ImGuiNextWindowDataFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "PosCond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeCond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "CollapsedCond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DockCond", + "qualType" : "ImGuiCond", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "PosVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "PosPivotVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "ContentSizeVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "ScrollVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowFlags", + "qualType" : "ImGuiWindowFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ChildFlags", + "qualType" : "ImGuiChildFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "PosUndock", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "CollapsedVal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeConstraintRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeCallback", + "qualType" : "ImGuiSizeCallback", + "desugaredQualType" : "void (*)(ImGuiSizeCallbackData *)" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeCallbackUserData", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "BgAlphaVal", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "ViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "DockId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowClass", + "qualType" : "ImGuiWindowClass", + "desugaredQualType" : "ImGuiWindowClass" + }, { + "@type" : "AstFieldDecl", + "name" : "MenuBarOffsetMinVal", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "RefreshFlagsVal", + "qualType" : "ImGuiWindowRefreshFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFlags", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiNextItemDataFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_None", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasWidth", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasOpen", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasShortcut", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasRefVal", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasStorageID", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNextItemDataFlags_HasColorMarker", + "qualType" : "ImGuiNextItemDataFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiNextItemData", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "HasFlags", + "qualType" : "ImGuiNextItemDataFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "FocusScopeId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectionUserData", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "Width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Shortcut", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ShortcutFlags", + "qualType" : "ImGuiInputFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenVal", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenCond", + "qualType" : "ImU8", + "desugaredQualType" : "unsigned char" + }, { + "@type" : "AstFieldDecl", + "name" : "RefVal", + "qualType" : "ImGuiDataTypeStorage", + "desugaredQualType" : "ImGuiDataTypeStorage" + }, { + "@type" : "AstFieldDecl", + "name" : "StorageId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ColorMarker", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearFlags", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiLastItemData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Status storage for the last submitted item" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "StatusFlags", + "qualType" : "ImGuiItemStatusFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Rect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "NavRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "DisplayRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "ClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "Shortcut", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTreeNodeStackData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Store data emitted by TreeNode() for usage by TreePop()" + }, { + "@type" : "AstTextComment", + "text" : " - To implement ImGuiTreeNodeFlags_NavLeftJumpsToParent: store the minimum amount of data" + }, { + "@type" : "AstTextComment", + "text" : " which we can't infer in TreePop(), to perform the equivalent of NavApplyItemToResult()." + }, { + "@type" : "AstTextComment", + "text" : " Only stored when the node is a potential candidate for landing on a Left arrow jump." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "TreeFlags", + "qualType" : "ImGuiTreeNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "NavRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawLinesX1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawLinesToNodesY2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DrawLinesTableColumn", + "qualType" : "ImGuiTableColumnIdx", + "desugaredQualType" : "short" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiErrorRecoveryState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " sizeof() = 20" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfWindowStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfIDStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfTreeStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfColorStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfStyleVarStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfFontStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfFocusScopeStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfGroupStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfItemFlagsStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfBeginPopupStack", + "qualType" : "short", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeOfDisabledStack", + "qualType" : "short", + "desugaredQualType" : "short" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiWindowStackData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Data saved for each window pushed into the stack" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentLastItemDataBackup", + "qualType" : "ImGuiLastItemData", + "desugaredQualType" : "ImGuiLastItemData" + }, { + "@type" : "AstFieldDecl", + "name" : "StackSizesInBegin", + "qualType" : "ImGuiErrorRecoveryState", + "desugaredQualType" : "ImGuiErrorRecoveryState" + }, { + "@type" : "AstFieldDecl", + "name" : "DisabledOverrideReenable", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "DisabledOverrideReenableAlphaBackup", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiShrinkWidthItem", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Index", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Width", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "InitialWidth", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPtrOrIndex", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Ptr", + "qualType" : "void *", + "desugaredQualType" : "void *" + }, { + "@type" : "AstFieldDecl", + "name" : "Index", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiDeactivatedItemData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Data used by IsItemDeactivated()/IsItemDeactivatedAfterEdit() functions" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "ElapseFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "HasBeenEditedBefore", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsAlive", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiPopupPositionPolicy", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Popup support" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupPositionPolicy_Default", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupPositionPolicy_ComboBox", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiPopupPositionPolicy_Tooltip", + "qualType" : "ImGuiPopupPositionPolicy", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiPopupData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage for popup stacks (g.OpenPopupStack and g.BeginPopupStack)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "PopupId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "RestoreNavWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentNavLayer", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenFrameCount", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenParentId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenPopupPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "OpenMousePos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputEventType", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_None", + "qualType" : "ImGuiInputEventType", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_MousePos", + "qualType" : "ImGuiInputEventType", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_MouseWheel", + "qualType" : "ImGuiInputEventType", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_MouseButton", + "qualType" : "ImGuiInputEventType", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_MouseViewport", + "qualType" : "ImGuiInputEventType", + "order" : 4, + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_Key", + "qualType" : "ImGuiInputEventType", + "order" : 5, + "evaluatedValue" : 5 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_Text", + "qualType" : "ImGuiInputEventType", + "order" : 6, + "evaluatedValue" : 6 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_Focus", + "qualType" : "ImGuiInputEventType", + "order" : 7, + "evaluatedValue" : 7 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputEventType_COUNT", + "qualType" : "ImGuiInputEventType", + "order" : 8, + "evaluatedValue" : 8 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputSource", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputSource_None", + "qualType" : "ImGuiInputSource", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputSource_Mouse", + "docComment" : "Note: may be Mouse or TouchScreen or Pen. See io.MouseSource to distinguish them.", + "qualType" : "ImGuiInputSource", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputSource_Keyboard", + "qualType" : "ImGuiInputSource", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputSource_Gamepad", + "qualType" : "ImGuiInputSource", + "order" : 3, + "evaluatedValue" : 3 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputSource_COUNT", + "qualType" : "ImGuiInputSource", + "order" : 4, + "evaluatedValue" : 4 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventMousePos", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " FIXME: Structures in the union below need to be declared as anonymous unions appears to be an extension?" + }, { + "@type" : "AstTextComment", + "text" : " Using ImVec2() would fail on Clang 'union member 'MousePos' has a non-trivial default constructor'" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "PosX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "PosY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseSource", + "qualType" : "ImGuiMouseSource", + "desugaredQualType" : "ImGuiMouseSource" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventMouseWheel", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "WheelX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "WheelY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseSource", + "qualType" : "ImGuiMouseSource", + "desugaredQualType" : "ImGuiMouseSource" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventMouseButton", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Button", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Down", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "MouseSource", + "qualType" : "ImGuiMouseSource", + "desugaredQualType" : "ImGuiMouseSource" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventMouseViewport", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "HoveredViewportID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventKey", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Key", + "qualType" : "ImGuiKey", + "desugaredQualType" : "ImGuiKey" + }, { + "@type" : "AstFieldDecl", + "name" : "Down", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "AnalogValue", + "qualType" : "float", + "desugaredQualType" : "float" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventText", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Char", + "qualType" : "unsigned int", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEventAppFocused", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Focused", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiInputEvent", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "Type", + "qualType" : "ImGuiInputEventType", + "desugaredQualType" : "ImGuiInputEventType" + }, { + "@type" : "AstFieldDecl", + "name" : "Source", + "qualType" : "ImGuiInputSource", + "desugaredQualType" : "ImGuiInputSource" + }, { + "@type" : "AstFieldDecl", + "name" : "EventId", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "AddedByTestEngine", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiKeyRoutingData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Routing table entry (sizeof() == 16 bytes)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "NextEntryIndex", + "qualType" : "ImGuiKeyRoutingIndex", + "desugaredQualType" : "short" + }, { + "@type" : "AstFieldDecl", + "name" : "Mods", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "RoutingCurrScore", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "RoutingNextScore", + "qualType" : "ImU16", + "desugaredQualType" : "unsigned short" + }, { + "@type" : "AstFieldDecl", + "name" : "RoutingCurr", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "RoutingNext", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiKeyRoutingTable", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Routing table: maintain a desired owner for each possible key-chord (key + mods), and setup owner in NewFrame() when mods are matching." + }, { + "@type" : "AstTextComment", + "text" : " Stored in main context (1 instance)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Index", + "qualType" : "ImGuiKeyRoutingIndex[155]", + "desugaredQualType" : "ImGuiKeyRoutingIndex[155]" + }, { + "@type" : "AstFieldDecl", + "name" : "Entries", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "EntriesNext", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiKeyOwnerData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " This extends ImGuiKeyData but only for named keys (legacy keys don't support the new features)" + }, { + "@type" : "AstTextComment", + "text" : " Stored in main context (1 per named key). In the future it might be merged into ImGuiKeyData." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerCurr", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "OwnerNext", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LockThisFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "LockUntilRelease", + "qualType" : "bool", + "desugaredQualType" : "bool" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiInputFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiInputFlags_" + }, { + "@type" : "AstTextComment", + "text" : " Flags for extended versions of IsKeyPressed(), IsMouseClicked(), Shortcut(), SetKeyOwner(), SetItemKeyOwner()" + }, { + "@type" : "AstTextComment", + "text" : " Don't mistake with ImGuiInputTextFlags! (which is for ImGui::InputText() function)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatRateDefault", + "docComment" : "Repeat rate: Regular (default)", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 0, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatRateNavMove", + "docComment" : "Repeat rate: Fast", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 1, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatRateNavTweak", + "docComment" : "Repeat rate: Faster", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 2, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatUntilRelease", + "docComment" : "Stop repeating when released (default for all functions except Shortcut). This only exists to allow overriding Shortcut() default behavior.", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 3, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatUntilKeyModsChange", + "docComment" : "Stop repeating when released OR if keyboard mods are changed (default for Shortcut)", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 4, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone", + "docComment" : "Stop repeating when released OR if keyboard mods are leaving the None state. Allows going from Mod+Key to Key by releasing Mod.", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 5, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatUntilOtherKeyPress", + "docComment" : "Stop repeating when released OR if any other keyboard key is pressed during the repeat", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 6, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_LockThisFrame", + "docComment" : "Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared at end of frame.", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 7, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_LockUntilRelease", + "docComment" : "Further accesses to key data will require EXPLICIT owner ID (ImGuiKeyOwner_Any/0 will NOT accepted for polling). Cleared when the key is released or at end of each frame if key is released.", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 8, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_CondHovered", + "docComment" : "Only set if item is hovered (default to both)", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 9, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_CondActive", + "docComment" : "Only set if item is active (default to both)", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 10, + "value" : "1 << 23", + "evaluatedValue" : 8388608 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_CondDefault_", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 11, + "value" : "ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive", + "evaluatedValue" : 12582912 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatRateMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 12, + "value" : "ImGuiInputFlags_RepeatRateDefault | ImGuiInputFlags_RepeatRateNavMove | ImGuiInputFlags_RepeatRateNavTweak", + "evaluatedValue" : 14 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatUntilMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 13, + "value" : "ImGuiInputFlags_RepeatUntilRelease | ImGuiInputFlags_RepeatUntilKeyModsChange | ImGuiInputFlags_RepeatUntilKeyModsChangeFromNone | ImGuiInputFlags_RepeatUntilOtherKeyPress", + "evaluatedValue" : 240 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RepeatMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 14, + "value" : "ImGuiInputFlags_Repeat | ImGuiInputFlags_RepeatRateMask_ | ImGuiInputFlags_RepeatUntilMask_", + "evaluatedValue" : 255 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_CondMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 15, + "value" : "ImGuiInputFlags_CondHovered | ImGuiInputFlags_CondActive", + "evaluatedValue" : 12582912 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteTypeMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 16, + "value" : "ImGuiInputFlags_RouteActive | ImGuiInputFlags_RouteFocused | ImGuiInputFlags_RouteGlobal | ImGuiInputFlags_RouteAlways", + "evaluatedValue" : 15360 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_RouteOptionsMask_", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 17, + "value" : "ImGuiInputFlags_RouteOverFocused | ImGuiInputFlags_RouteOverActive | ImGuiInputFlags_RouteUnlessBgFocused | ImGuiInputFlags_RouteFromRootWindow", + "evaluatedValue" : 245760 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedByIsKeyPressed", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 18, + "value" : "ImGuiInputFlags_RepeatMask_", + "evaluatedValue" : 255 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedByIsMouseClicked", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 19, + "value" : "ImGuiInputFlags_Repeat", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedByShortcut", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 20, + "value" : "ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_", + "evaluatedValue" : 261375 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedBySetNextItemShortcut", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 21, + "value" : "ImGuiInputFlags_RepeatMask_ | ImGuiInputFlags_RouteTypeMask_ | ImGuiInputFlags_RouteOptionsMask_ | ImGuiInputFlags_Tooltip", + "evaluatedValue" : 523519 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedBySetKeyOwner", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 22, + "value" : "ImGuiInputFlags_LockThisFrame | ImGuiInputFlags_LockUntilRelease", + "evaluatedValue" : 3145728 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiInputFlags_SupportedBySetItemKeyOwner", + "docComment" : "[Internal] Mask of which function support which flags", + "qualType" : "ImGuiInputFlagsPrivate_", + "order" : 23, + "value" : "ImGuiInputFlags_SupportedBySetKeyOwner | ImGuiInputFlags_CondMask_", + "evaluatedValue" : 15728640 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Note that Max is exclusive, so perhaps should be using a Begin/End convention." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Max", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "PosToIndexConvert", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "PosToIndexOffsetMin", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "PosToIndexOffsetMax", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFunctionDecl", + "name" : "FromIndices", + "resultType" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "max", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "FromPositions", + "resultType" : "ImGuiListClipperRange", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "y1", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "y2", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstParmVarDecl", + "name" : "off_min", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstParmVarDecl", + "name" : "off_max", + "qualType" : "int", + "desugaredQualType" : "int" + } ] + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiListClipperData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Temporary clipper data, buffers shared/reused between instances" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ListClipper", + "qualType" : "ImGuiListClipper *", + "desugaredQualType" : "ImGuiListClipper *" + }, { + "@type" : "AstFieldDecl", + "name" : "LossynessOffset", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "StepNo", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemsFrozen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Ranges", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFunctionDecl", + "name" : "Reset", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "clipper", + "qualType" : "ImGuiListClipper *", + "desugaredQualType" : "ImGuiListClipper *" + } ] + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiActivateFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Navigation support" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_None", + "qualType" : "ImGuiActivateFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_PreferInput", + "docComment" : "Favor activation that requires keyboard text input (e.g. for Slider/Drag). Default for Enter key.", + "qualType" : "ImGuiActivateFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_PreferTweak", + "docComment" : "Favor activation for tweaking with arrows or gamepad (e.g. for Slider/Drag). Default for Space key and if keyboard is not used.", + "qualType" : "ImGuiActivateFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_TryToPreserveState", + "docComment" : "Request widget to preserve state if it can (e.g. InputText will try to preserve cursor/selection)", + "qualType" : "ImGuiActivateFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_FromTabbing", + "docComment" : "Activation requested by a tabbing request (ImGuiNavMoveFlags_IsTabbing)", + "qualType" : "ImGuiActivateFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_FromShortcut", + "docComment" : "Activation requested by an item shortcut via SetNextItemShortcut() function.", + "qualType" : "ImGuiActivateFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiActivateFlags_FromFocusApi", + "docComment" : "Activation requested by an api request (ImGuiNavMoveFlags_FocusApi)", + "qualType" : "ImGuiActivateFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiScrollFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Early work-in-progress API for ScrollToItem()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_None", + "qualType" : "ImGuiScrollFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_KeepVisibleEdgeX", + "docComment" : "If item is not visible: scroll as little as possible on X axis to bring item back into view [default for X axis]", + "qualType" : "ImGuiScrollFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_KeepVisibleEdgeY", + "docComment" : "If item is not visible: scroll as little as possible on Y axis to bring item back into view [default for Y axis for windows that are already visible]", + "qualType" : "ImGuiScrollFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_KeepVisibleCenterX", + "docComment" : "If item is not visible: scroll to make the item centered on X axis [rarely used]", + "qualType" : "ImGuiScrollFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_KeepVisibleCenterY", + "docComment" : "If item is not visible: scroll to make the item centered on Y axis", + "qualType" : "ImGuiScrollFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_AlwaysCenterX", + "docComment" : "Always center the result item on X axis [rarely used]", + "qualType" : "ImGuiScrollFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_AlwaysCenterY", + "docComment" : "Always center the result item on Y axis [default for Y axis for appearing window)", + "qualType" : "ImGuiScrollFlags_", + "order" : 6, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_NoScrollParent", + "docComment" : "Disable forwarding scrolling to parent window if required to keep item/rect visible (only scroll window the function was applied to).", + "qualType" : "ImGuiScrollFlags_", + "order" : 7, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_MaskX_", + "qualType" : "ImGuiScrollFlags_", + "order" : 8, + "value" : "ImGuiScrollFlags_KeepVisibleEdgeX | ImGuiScrollFlags_KeepVisibleCenterX | ImGuiScrollFlags_AlwaysCenterX", + "evaluatedValue" : 21 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiScrollFlags_MaskY_", + "qualType" : "ImGuiScrollFlags_", + "order" : 9, + "value" : "ImGuiScrollFlags_KeepVisibleEdgeY | ImGuiScrollFlags_KeepVisibleCenterY | ImGuiScrollFlags_AlwaysCenterY", + "evaluatedValue" : 42 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiNavRenderCursorFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavRenderCursorFlags_None", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavRenderCursorFlags_Compact", + "docComment" : "Compact highlight, no padding/distance from focused item", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 1, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavRenderCursorFlags_AlwaysDraw", + "docComment" : "Draw rectangular highlight if (g.NavId == id) even when g.NavCursorVisible == false, aka even when using the mouse.", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 2, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavRenderCursorFlags_NoRounding", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 3, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavHighlightFlags_None", + "docComment" : "Renamed in 1.91.4", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 4, + "value" : "ImGuiNavRenderCursorFlags_None", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavHighlightFlags_Compact", + "docComment" : "Renamed in 1.91.4", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 5, + "value" : "ImGuiNavRenderCursorFlags_Compact", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavHighlightFlags_AlwaysDraw", + "docComment" : "Renamed in 1.91.4", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 6, + "value" : "ImGuiNavRenderCursorFlags_AlwaysDraw", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavHighlightFlags_NoRounding", + "docComment" : "Renamed in 1.91.4", + "qualType" : "ImGuiNavRenderCursorFlags_", + "order" : 7, + "value" : "ImGuiNavRenderCursorFlags_NoRounding", + "evaluatedValue" : 8 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiNavMoveFlags_", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_None", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_LoopX", + "docComment" : "On failed request, restart from opposite side", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_LoopY", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_WrapX", + "docComment" : "On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_WrapY", + "docComment" : "This is not super useful but provided for completeness", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_WrapMask_", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 5, + "value" : "ImGuiNavMoveFlags_LoopX | ImGuiNavMoveFlags_LoopY | ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_WrapY", + "evaluatedValue" : 15 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_AllowCurrentNavId", + "docComment" : "Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 6, + "value" : "1 << 4", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_AlsoScoreVisibleSet", + "docComment" : "Store alternate result in NavMoveResultLocalVisible that only comprise elements that are already fully visible (used by PageUp/PageDown)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 7, + "value" : "1 << 5", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_ScrollToEdgeY", + "docComment" : "Force scrolling to min/max (used by Home/End) // FIXME-NAV: Aim to remove or reword as ImGuiScrollFlags", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 8, + "value" : "1 << 6", + "evaluatedValue" : 64 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_Forwarded", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 9, + "value" : "1 << 7", + "evaluatedValue" : 128 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_DebugNoResult", + "docComment" : "Dummy scoring for debug purpose, don't apply result", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 10, + "value" : "1 << 8", + "evaluatedValue" : 256 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_FocusApi", + "docComment" : "Requests from focus API can land/focus/activate items even if they are marked with _NoTabStop (see NavProcessItemForTabbingRequest() for details)", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 11, + "value" : "1 << 9", + "evaluatedValue" : 512 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_IsTabbing", + "docComment" : "== Focus + Activate if item is Inputable + DontChangeNavHighlight", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 12, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_IsPageMove", + "docComment" : "Identify a PageDown/PageUp request.", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 13, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_Activate", + "docComment" : "Activate/select target item.", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 14, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_NoSelect", + "docComment" : "Don't trigger selection by not setting g.NavJustMovedTo", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 15, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_NoSetNavCursorVisible", + "docComment" : "Do not alter the nav cursor visible state", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 16, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavMoveFlags_NoClearActiveId", + "docComment" : "(Experimental) Do not clear active id when applying move result", + "qualType" : "ImGuiNavMoveFlags_", + "order" : 17, + "value" : "1 << 15", + "evaluatedValue" : 32768 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiNavLayer", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavLayer_Main", + "docComment" : "Main scrolling layer", + "qualType" : "ImGuiNavLayer", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavLayer_Menu", + "docComment" : "Menu layer (access with Alt)", + "qualType" : "ImGuiNavLayer", + "order" : 1, + "value" : "1", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiNavLayer_COUNT", + "qualType" : "ImGuiNavLayer", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiNavItemData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage for navigation query/results" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "FocusScopeId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "RectRel", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "ItemFlags", + "qualType" : "ImGuiItemFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "DistBox", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DistCenter", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "DistAxial", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectionUserData", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiFocusScopeData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage for PushFocusScope(), g.FocusScopeStack[], g.NavFocusRoute[]" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiTypingSelectFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for GetTypingSelectRequest()" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTypingSelectFlags_None", + "qualType" : "ImGuiTypingSelectFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTypingSelectFlags_AllowBackspace", + "docComment" : "Backspace to delete character inputs. If using: ensure GetTypingSelectRequest() is not called more than once per frame (filter by e.g. focus state)", + "qualType" : "ImGuiTypingSelectFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiTypingSelectFlags_AllowSingleCharMode", + "docComment" : "Allow \"single char\" search mode which is activated when pressing the same character multiple times.", + "qualType" : "ImGuiTypingSelectFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTypingSelectRequest", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Returned by GetTypingSelectRequest(), designed to eventually be public." + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiTypingSelectFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SearchBufferLen", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "SearchBuffer", + "qualType" : "const char *", + "desugaredQualType" : "const char *" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectRequest", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "SingleCharMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "SingleCharSize", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiTypingSelectState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Storage for GetTypingSelectRequest()" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Request", + "qualType" : "ImGuiTypingSelectRequest", + "desugaredQualType" : "ImGuiTypingSelectRequest" + }, { + "@type" : "AstFieldDecl", + "name" : "SearchBuffer", + "qualType" : "char[64]", + "desugaredQualType" : "char[64]" + }, { + "@type" : "AstFieldDecl", + "name" : "FocusScope", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastRequestFrame", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastRequestTime", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "SingleCharModeLock", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiOldColumnFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for internal's BeginColumns(). This is an obsolete API. Prefer using BeginTable() nowadays!" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_None", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 0, + "value" : "0", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_NoBorder", + "docComment" : "Disable column dividers", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 1, + "value" : "1 << 0", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_NoResize", + "docComment" : "Disable resizing columns when clicking on the dividers", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 2, + "value" : "1 << 1", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_NoPreserveWidths", + "docComment" : "Disable column width preservation when adjusting columns", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 3, + "value" : "1 << 2", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_NoForceWithinWindow", + "docComment" : "Disable forcing columns to fit within window", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 4, + "value" : "1 << 3", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiOldColumnFlags_GrowParentContentsSize", + "docComment" : "Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove.", + "qualType" : "ImGuiOldColumnFlags_", + "order" : 5, + "value" : "1 << 4", + "evaluatedValue" : 16 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiOldColumnData", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "OffsetNorm", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "OffsetNormBeforeResize", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiOldColumnFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiOldColumns", + "decls" : [ { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiOldColumnFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "IsFirstFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsBeingResized", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "Current", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "Count", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "OffMinX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "OffMaxX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "LineMinY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "LineMaxY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HostCursorPosY", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HostCursorMaxPosX", + "qualType" : "float", + "desugaredQualType" : "float" + }, { + "@type" : "AstFieldDecl", + "name" : "HostInitialClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "HostBackupClipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "HostBackupParentWorkRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "Columns", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "Splitter", + "qualType" : "ImDrawListSplitter", + "desugaredQualType" : "ImDrawListSplitter" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiBoxSelectState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + }, { + "@type" : "AstTextComment", + "text" : " [SECTION] Box-select support" + }, { + "@type" : "AstTextComment", + "text" : "-----------------------------------------------------------------------------" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "IsActive", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsStarting", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsStartedFromVoid", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsStartedSetNavIdOnce", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RequestClear", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyMods", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "StartPosRel", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "EndPosRel", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "ScrollAccum", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "UnclipMode", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "UnclipRect", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "BoxSelectRectPrev", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + }, { + "@type" : "AstFieldDecl", + "name" : "BoxSelectRectCurr", + "qualType" : "ImRect", + "desugaredQualType" : "ImRect" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiMultiSelectTempData", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Temporary storage for multi-select" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "IO", + "qualType" : "ImGuiMultiSelectIO", + "desugaredQualType" : "ImGuiMultiSelectIO" + }, { + "@type" : "AstFieldDecl", + "name" : "Storage", + "qualType" : "ImGuiMultiSelectState *", + "desugaredQualType" : "ImGuiMultiSelectState *" + }, { + "@type" : "AstFieldDecl", + "name" : "FocusScopeId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "Flags", + "qualType" : "ImGuiMultiSelectFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "ScopeRectMin", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "BackupCursorMaxPos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "LastSubmittedItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "BoxSelectId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "KeyMods", + "qualType" : "ImGuiKeyChord", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LoopRequestSetAll", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "IsEndIO", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsFocused", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsKeyboardSetRange", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "NavIdPassedBy", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeSrcPassedBy", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeDstPassedBy", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Clear", + "resultType" : "void" + }, { + "@type" : "AstFunctionDecl", + "name" : "ClearIO", + "resultType" : "void" + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiMultiSelectState", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Persistent storage for multi-select (as long as selection is alive)" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "Window", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastFrameActive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastSelectionSize", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeSelected", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "NavIdSelected", + "qualType" : "ImS8", + "desugaredQualType" : "signed char" + }, { + "@type" : "AstFieldDecl", + "name" : "RangeSrcItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + }, { + "@type" : "AstFieldDecl", + "name" : "NavIdItem", + "qualType" : "ImGuiSelectionUserData", + "desugaredQualType" : "long long" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDockNodeFlagsPrivate_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Extend ImGuiDockNodeFlags_" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_DockSpace", + "docComment" : "Saved // A dockspace is a node that occupy space within an existing user window. Otherwise the node is floating and create its own window.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 0, + "value" : "1 << 10", + "evaluatedValue" : 1024 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_CentralNode", + "docComment" : "Saved // The central node has 2 main properties: stay visible when empty, only use \"remaining\" spaces from its neighbor.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 1, + "value" : "1 << 11", + "evaluatedValue" : 2048 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoTabBar", + "docComment" : "Saved // Tab bar is completely unavailable. No triangle in the corner to enable it back.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 2, + "value" : "1 << 12", + "evaluatedValue" : 4096 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_HiddenTabBar", + "docComment" : "Saved // Tab bar is hidden, with a triangle in the corner to show it again (NB: actual tab-bar instance may be destroyed as this is only used for single-window tab bar)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 3, + "value" : "1 << 13", + "evaluatedValue" : 8192 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoWindowMenuButton", + "docComment" : "Saved // Disable window/docking menu (that one that appears instead of the collapse button)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 4, + "value" : "1 << 14", + "evaluatedValue" : 16384 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoCloseButton", + "docComment" : "Saved // Disable close button", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 5, + "value" : "1 << 15", + "evaluatedValue" : 32768 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoResizeX", + "docComment" : "//", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 6, + "value" : "1 << 16", + "evaluatedValue" : 65536 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoResizeY", + "docComment" : "//", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 7, + "value" : "1 << 17", + "evaluatedValue" : 131072 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_DockedWindowsInFocusRoute", + "docComment" : "// Any docked window will be automatically be focus-route chained (window->ParentWindowForFocusRoute set to this) so Shortcut() in this window can run when any docked window is focused.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 8, + "value" : "1 << 18", + "evaluatedValue" : 262144 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingSplitOther", + "docComment" : "// Disable this node from splitting other windows/nodes.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 9, + "value" : "1 << 19", + "evaluatedValue" : 524288 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingOverMe", + "docComment" : "// Disable other windows/nodes from being docked over this node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 10, + "value" : "1 << 20", + "evaluatedValue" : 1048576 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingOverOther", + "docComment" : "// Disable this node from being docked over another window or non-empty node.", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 11, + "value" : "1 << 21", + "evaluatedValue" : 2097152 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDockingOverEmpty", + "docComment" : "// Disable this node from being docked over an empty node (e.g. DockSpace with no other windows)", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 12, + "value" : "1 << 22", + "evaluatedValue" : 4194304 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoDocking", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 13, + "value" : "ImGuiDockNodeFlags_NoDockingOverMe | ImGuiDockNodeFlags_NoDockingOverOther | ImGuiDockNodeFlags_NoDockingOverEmpty | ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoDockingSplitOther", + "evaluatedValue" : 7864336 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_SharedFlagsInheritMask_", + "docComment" : "Masks", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 14, + "value" : "~0", + "evaluatedValue" : -1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_NoResizeFlagsMask_", + "docComment" : "Masks", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 15, + "value" : "(int)ImGuiDockNodeFlags_NoResize | ImGuiDockNodeFlags_NoResizeX | ImGuiDockNodeFlags_NoResizeY", + "evaluatedValue" : 196640 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_LocalFlagsTransferMask_", + "docComment" : "When splitting, those local flags are moved to the inheriting child, never duplicated", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 16, + "value" : "(int)ImGuiDockNodeFlags_NoDockingSplit | ImGuiDockNodeFlags_NoResizeFlagsMask_ | (int)ImGuiDockNodeFlags_AutoHideTabBar | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton", + "evaluatedValue" : 260208 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeFlags_SavedFlagsMask_", + "docComment" : "When splitting, those local flags are moved to the inheriting child, never duplicated", + "qualType" : "ImGuiDockNodeFlagsPrivate_", + "order" : 17, + "value" : "ImGuiDockNodeFlags_NoResizeFlagsMask_ | ImGuiDockNodeFlags_DockSpace | ImGuiDockNodeFlags_CentralNode | ImGuiDockNodeFlags_NoTabBar | ImGuiDockNodeFlags_HiddenTabBar | ImGuiDockNodeFlags_NoWindowMenuButton | ImGuiDockNodeFlags_NoCloseButton", + "evaluatedValue" : 261152 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDataAuthority_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Store the source authority (dock node vs window) of a field" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataAuthority_Auto", + "qualType" : "ImGuiDataAuthority_", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataAuthority_DockNode", + "qualType" : "ImGuiDataAuthority_", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDataAuthority_Window", + "qualType" : "ImGuiDataAuthority_", + "order" : 2, + "evaluatedValue" : 2 + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiDockNodeState", + "decls" : [ { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeState_Unknown", + "qualType" : "ImGuiDockNodeState", + "order" : 0, + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeState_HostWindowHiddenBecauseSingleWindow", + "qualType" : "ImGuiDockNodeState", + "order" : 1, + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeState_HostWindowHiddenBecauseWindowsAreResizing", + "qualType" : "ImGuiDockNodeState", + "order" : 2, + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiDockNodeState_HostWindowVisible", + "qualType" : "ImGuiDockNodeState", + "order" : 3, + "evaluatedValue" : 3 + } ] + }, { + "@type" : "AstRecordDecl", + "name" : "ImGuiDockNode", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " sizeof() 156~192" + } ] + } ] + }, { + "@type" : "AstFieldDecl", + "name" : "ID", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "SharedFlags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LocalFlags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LocalFlagsInWindows", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "MergedFlags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "State", + "qualType" : "ImGuiDockNodeState", + "desugaredQualType" : "ImGuiDockNodeState" + }, { + "@type" : "AstFieldDecl", + "name" : "ParentNode", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstFieldDecl", + "name" : "ChildNodes", + "qualType" : "ImGuiDockNode *[2]", + "desugaredQualType" : "ImGuiDockNode *[2]" + }, { + "@type" : "AstFieldDecl", + "name" : "Windows", + "qualType" : "ImVector", + "desugaredQualType" : "ImVector" + }, { + "@type" : "AstFieldDecl", + "name" : "TabBar", + "qualType" : "ImGuiTabBar *", + "desugaredQualType" : "ImGuiTabBar *" + }, { + "@type" : "AstFieldDecl", + "name" : "Pos", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "Size", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SizeRef", + "qualType" : "ImVec2", + "desugaredQualType" : "ImVec2" + }, { + "@type" : "AstFieldDecl", + "name" : "SplitAxis", + "qualType" : "ImGuiAxis", + "desugaredQualType" : "ImGuiAxis" + }, { + "@type" : "AstFieldDecl", + "name" : "WindowClass", + "qualType" : "ImGuiWindowClass", + "desugaredQualType" : "ImGuiWindowClass" + }, { + "@type" : "AstFieldDecl", + "name" : "LastBgColor", + "qualType" : "ImU32", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "HostWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "VisibleWindow", + "qualType" : "ImGuiWindow *", + "desugaredQualType" : "ImGuiWindow *" + }, { + "@type" : "AstFieldDecl", + "name" : "CentralNode", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstFieldDecl", + "name" : "OnlyNodeWithWindows", + "qualType" : "ImGuiDockNode *", + "desugaredQualType" : "ImGuiDockNode *" + }, { + "@type" : "AstFieldDecl", + "name" : "CountNodeWithWindows", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastFrameAlive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastFrameActive", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastFrameFocused", + "qualType" : "int", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "LastFocusedNodeId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "SelectedTabId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "WantCloseTabId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "RefViewportId", + "qualType" : "ImGuiID", + "desugaredQualType" : "unsigned int" + }, { + "@type" : "AstFieldDecl", + "name" : "AuthorityForPos", + "qualType" : "ImGuiDataAuthority", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "AuthorityForSize", + "qualType" : "ImGuiDataAuthority", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "AuthorityForViewport", + "qualType" : "ImGuiDataAuthority", + "desugaredQualType" : "int" + }, { + "@type" : "AstFieldDecl", + "name" : "IsVisible", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsFocused", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "IsBgDrawnThisFrame", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "HasCloseButton", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "HasWindowMenuButton", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "HasCentralNodeChild", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantCloseAll", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantLockSizeOnce", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantMouseMove", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantHiddenTabBarUpdate", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFieldDecl", + "name" : "WantHiddenTabBarToggle", + "qualType" : "bool", + "desugaredQualType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsRootNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsDockSpace", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsFloatingNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsCentralNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsHiddenTabBar", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsNoTabBar", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsSplitNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsLeafNode", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "IsEmpty", + "resultType" : "bool" + }, { + "@type" : "AstFunctionDecl", + "name" : "Rect", + "resultType" : "ImRect" + }, { + "@type" : "AstFunctionDecl", + "name" : "SetLocalFlags", + "resultType" : "void", + "decls" : [ { + "@type" : "AstParmVarDecl", + "name" : "flags", + "qualType" : "ImGuiDockNodeFlags", + "desugaredQualType" : "int" + } ] + }, { + "@type" : "AstFunctionDecl", + "name" : "UpdateMergedFlags", + "resultType" : "void" + } ] + }, { + "@type" : "AstEnumDecl", + "name" : "ImGuiWindowFlags_", + "decls" : [ { + "@type" : "AstFullComment", + "decls" : [ { + "@type" : "AstParagraphComment", + "decls" : [ { + "@type" : "AstTextComment", + "text" : " Flags for ImGui::Begin()" + }, { + "@type" : "AstTextComment", + "text" : " (Those are per-window flags. There are shared flags in ImGuiIO: io.ConfigWindowsResizeFromEdges and io.ConfigWindowsMoveFromTitleBarOnly)" + } ] + } ] + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_None", + "qualType" : "ImGuiWindowFlags_", + "order" : 0, + "value" : " ", + "evaluatedValue" : 0 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoTitleBar", + "docComment" : "Disable title-bar", + "qualType" : "ImGuiWindowFlags_", + "order" : 1, + "value" : "mGuiWi", + "evaluatedValue" : 1 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoResize", + "docComment" : "Disable user resizing with the lower-right grip", + "qualType" : "ImGuiWindowFlags_", + "order" : 2, + "value" : "iWindo", + "evaluatedValue" : 2 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoMove", + "docComment" : "Disable user moving the window", + "qualType" : "ImGuiWindowFlags_", + "order" : 3, + "value" : "ectedO", + "evaluatedValue" : 4 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoScrollbar", + "docComment" : "Disable scrollbars (window can still scroll with mouse or programmatically)", + "qualType" : "ImGuiWindowFlags_", + "order" : 4, + "value" : "dSelec", + "evaluatedValue" : 8 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoScrollWithMouse", + "docComment" : "Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set.", + "qualType" : "ImGuiWindowFlags_", + "order" : 5, + "value" : "l_COUN", + "evaluatedValue" : 16 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_NoCollapse", + "docComment" : "Disable user collapsing window by double-clicking on it. Also referred to as Window Menu Button (e.g. within a docking node).", + "qualType" : "ImGuiWindowFlags_", + "order" : 6, + "value" : "{\n ", + "evaluatedValue" : 32 + }, { + "@type" : "AstEnumConstantDecl", + "name" : "ImGuiWindowFlags_AlwaysAutoResize", + "docComment" : "Resize every window to its content every frame", + "qualType" : "ImGuiWindowFlags_", + "order" : 7, + "value" : "or

+ + + +