An integrated information center created with dear ImGui using modern C++ design / coding style.

ImGui info-center

Introduction

An integrated notification and information center created with dear ImGui.

Interfaces and variables are designed under the maximum standard of C++ 14. Following google coding style.

We do use STL libraries and C++ defined data structures.

We don't use static variables.

Core features

Most features shown below could be used individually. For example, ImInfoCenter provided management and parameter forwarding of ImInfoCard, but info card itself could be used and managed directly by users.

Info Card -- ImInfoCard

Provides small suspending information card when something worth notifying happens. User can define title, content, progress bar, buttons and maybe some other stuffs on their own, as well as lifetime of each card. It behaves intuitively with interactions.

GIF to be added

Info Center -- ImInfoCenter

A singleton allowing users to add, delete or manage info cards, mainpulate notification window and style control.

Notification Window -- ImNotice

WIP

Usage

You might familiar with ImGuiIO - using info center is as simple, although it might not be the same as ImGui itself, since we are trying to avoid using non-POD static variables in our library code. A typical example is shown below.

auto& info_center = ImInfo::ImInfoCenter::Get();

// Some behavior that will be called once when triggered
// We use a button here
if (ImGui::Button("Add a new info card")) {
  info_center.AddCardBasic("This is title", "This is content", 3000 /* This is lifetime */);
}

// We record index of the card here so that to do something later.
static int32_t index = 0;
if (ImGui::Button("Add a new info card with progress")) {
  index = info_center.AddCardProgressBar(10.0f /* This is initial progress */, "New title", "New content", 3000); // All parameters optional
}

// In our main loop
info_center.Show();

// Add some progress!
info_center.IncreaseCardProgress(index, 0.5f);

Build example

The example here is using opengl (glfw + glew). We build the example with bazel, and that's the only thing you need to install by yourself to run the example (yes, you don't even need ImGui).

1.Install bazel

Please follow this tutorial to install bazel. We suggest to use bazel version > 4.0.0.

2. Build and run

cd imgui-info-center
source run.sh
run_example

About this projects

I'm rather a C++ developer than an ImGui developer, so it's not providing C style interfaces, my apologies.

Some works are inspired by imgui-notify.

Pull requests and issue discussions are welcome. Please contact me at [email protected] if you have any other concerns. Thanks!

Owner
Feej
Computer graphics learner
Feej
Similar Resources

A permissively licensed markdown single-header library for Dear ImGui.

A permissively licensed markdown single-header library for Dear ImGui.

Support development of imgui_markdown through GitHub Sponsors or Patreon imgui_markdown Markdown For Dear ImGui A permissively licensed markdown singl

Jan 8, 2023

Sample Unreal Engine 5.0.1 C++ Project That Incorporates Dear ImGui

UE5 With Dear ImGui A sample Unreal Engine 5.0.1 C++ project that incorporates the Dear ImGui graphical user interface library. YouTube Tutorial This

Dec 25, 2022

Simple ImGui external base. Uses ImGui DX9.

Simple ImGui external base. Uses ImGui DX9.

ImGui External Base 🖥️ What is this? ⚡ Hello all! I used to use noteffex's loader base for all my external ImGui projects. I got bored of using this

Jun 29, 2022

An addon of imgui for supporting docks in the imgui's window

An addon of imgui for supporting docks in the imgui's window

An addon of imgui for support dock in the window

Nov 29, 2022

U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

U++ is a C++ cross-platform rapid application development framework focused on programmer's productivity. It includes a set of libraries (GUI, SQL, Network etc.), and integrated development environment (TheIDE).

Ultimate++ Ultimate++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of librar

Jan 8, 2023

AxeraVision / Simple yet customizable UI using ImGui Framework

AxeraVision / Simple yet customizable UI using ImGui Framework

[ AxeraVision UI ] This repository features a base UI using the ImGui Framework. Features Simple UI Design Easy Code to Customize Good Starting Base U

Jun 28, 2022

AnUI is a powerful Graphical User Interface framework made for people that actually care about design!

What's AuUI ** Project is not finished ** AuUI, an abbreviation for "Actual Understandable User Interface" is a graphical user interface framework to

Jun 17, 2022

Material Design GUI Toolkit

GUI toolkit in Material Design style

Sep 28, 2022

C, C++ headers and C# classes for icon fonts: Font Awesome, Fork Awesome, Material Design, Kenney game icons and Fontaudio

C, C++ headers and C# classes for icon fonts: Font Awesome, Fork Awesome, Material Design, Kenney game icons and Fontaudio

Jan 5, 2023
Comments
  • add web imgui support

    add web imgui support

    source ./run.sh
    build_example_web
    

    use "Live Server" plugin to open example/test.html

    add web imgui support Add emsdk to build js & wasm files

Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies

Dear ImGui (This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addit

Jan 7, 2023
Advanced 2D Plotting for Dear ImGui
Advanced 2D Plotting for Dear ImGui

ImPlot ImPlot is an immediate mode, GPU accelerated plotting library for Dear ImGui. It aims to provide a first-class API that ImGui fans will love. I

Jan 9, 2023
Real-time GUI layout creator/editor for Dear ImGui
Real-time GUI layout creator/editor for Dear ImGui

ImStudio Real-time GUI layout creator/editor for Dear ImGui Inspired by Code-Building/ImGuiBuilder Features Drag edit Property edit Covers most of the

Jan 9, 2023
Dear ImGui prototyping wrapper.

LabImGui Prototyping framework LabImGui wraps up creating a window, GL bindings, and a full screen docking set up with ImGui so that all of the boiler

Dec 5, 2022
Addon widgets for GUI library Dear ImGui.
Addon widgets for GUI library Dear ImGui.

ImGui-Addons Addon widgets for GUI library Dear ImGui. File Dialog A simple cross-platform file dialog that uses dirent interface for reading director

Jan 7, 2023
This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun
This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun

Dear ImGui software renderer This is a software renderer for Dear ImGui. I built it not out of a specific need, but because it was fun. The goal was t

Dec 22, 2022
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui
Immediate mode 3D gizmo for scene editing and other controls based on Dear Imgui

ImGuizmo Latest stable tagged version is 1.83. Current master version is 1.84 WIP. What started with the gizmo is now a collection of dear imgui widge

Dec 27, 2022
This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui.

cimgui This is a thin c-api wrapper programmatically generated for the excellent C++ immediate mode gui Dear ImGui. All imgui.h functions are programm

Jul 5, 2021
Nice things to use along dear imgui
Nice things to use along dear imgui

Mini hexadecimal editor! Right-click for option menu. Features: Keyboard controls. Read-only mode. Optional Ascii display. Optional HexII display. Goto address. Highlight range/function. Read/Write handlers.

Jan 1, 2023
Window and GUI system based on Dear ImGui from OCornut
Window and GUI system based on Dear ImGui from OCornut

ImWindow Window and GUI system based on ImGui from OCornut. Include docking/floating window, multi window and multi render support. Platform Actually

Dec 20, 2022