About this project

ktsu.ImGui.App is a suite of .NET libraries for building desktop applications with Dear ImGui. It provides application scaffolding, custom widgets, modal dialogs, theming, node graph editing, markdown rendering, and syntax highlighting. Built on Hexa.NET.ImGui bindings and Silk.NET for cross-platform windowing, it supports .NET 10, 9, and 8. Key libraries include: - **ImGui.App**: Application foundation with windowing, OpenGL rendering, font management, texture caching, image decoding (PNG/JPEG/BMP/TGA), DPI awareness, and PID-controlled frame limiting. - **ImGui.Widgets**: Around sixty UI components including controls (Switch, SegmentedControl, Stepper, RangeSlider, XYPad, ColorWheels, Knob, Rating, Chip, PinInput, SearchBox), layout (DividerContainer, Grid, TabPanel, Card, Tree, ImageCanvas, AssetBrowser, PropertyGrid, Toolbar), feedback (RadialProgressBar, spinners, badges), signal views (Histogram, FlameGraph, DbMeter, oscilloscope, waveform, spectrum analyzer), image adjustment (LevelsControl, GradientEditor, SwatchPalette, ImageCompare, CropOverlay, PixelLoupe), code review (DiffView), motion (tweens, springs, inertial scrolling), and callback-driven editors (Sequencer, CurveEditor, BezierEditor). - **ImGui.Popups**: Modal dialogs including MessageOK, Prompt, InputString/Int/Float, FilesystemBrowser, and SearchableList. - **ImGui.Styler**: Theming system with 50+ built-in themes (Catppuccin, Tokyo Night, Gruvbox, Dracula), scoped styling, semantic text colors, and an interactive theme browser. - **NodeGraph**: UI-agnostic attribute-based node metadata declaration. - **ImGui.NodeEditor**: Visual node editor built on ImNodes with physics-based layout. - **ImGui.Markdown**: CommonMark markdown rendering built on Markdig. - **SyntaxHighlighting**: UI-agnostic tokenizer for 15 languages with embedded language detection. - **ImGui.SyntaxHighlighting**: Themed code rendering with line numbers. - **ForceDirectedLayout**: Renderer-agnostic force-directed graph layout. - **ImGui.Probes**: Item recording for tests. - **ImGui.App.Testing**: Headless test harness with CPU rasterizer. Installation via NuGet packages. Usage examples show basic app startup, overlay mode for HUDs, widget usage, popups, theming, node graph declaration, and markdown rendering.