A header-only file browser implementation for dear-imgui, enabling native file dialogs in C++ applications.
imgui-filebrowser is a header-only file browser implementation for dear-imgui, a C++ immediate-mode GUI library. It provides a customizable file dialog component that allows developers to add native file selection, opening, saving, and directory browsing capabilities to their applications. It solves the problem of integrating file system interactions within dear-imgui-based interfaces without relying on platform-specific dialogs.
C++ developers using dear-imgui to build applications with graphical user interfaces, such as game tools, editors, or desktop software requiring file system access.
Developers choose imgui-filebrowser for its seamless integration with dear-imgui, header-only design with no dependencies, and extensive customization options through flags and filters, offering a consistent cross-platform file browsing experience.
File browser implementation for dear-imgui. C++17 is required.
Single include file with no external dependencies, making integration straightforward and reducing build complexity, as highlighted in the README's header-only design.
Supports various flags like directory selection, multiple selection, and modal windows, allowing fine-tuned behavior for different use cases, with examples provided in the README.
Designed to work across platforms with specific adjustments like case-insensitive filtering on Windows, ensuring consistent behavior as noted in the platform support section.
Follows dear-imgui's immediate-mode approach, requiring explicit Display() calls each frame, making it integrate naturally with the rendering loop, per the philosophy section.
Lacks advanced capabilities such as file previews, custom sorting, or support for virtual file systems, which are not mentioned in the README and might be needed in complex applications.
Requires explicit state handling and Display() calls every frame, adding complexity and potential for errors compared to more automated or callback-based solutions, as per the immediate-mode design.
Browsing large directories might cause performance issues due to the immediate-mode nature, requiring careful optimization in the host application, with no built-in caching or lazy loading mentioned.
Protocol Buffers - Google's data interchange format
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
JSON for Modern C++
ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.