raygui is a simple and easy-to-use immediate-mode-gui library.

Related tags

GUI tools imgui raylib
Overview

raygui is a simple and easy-to-use immediate-mode-gui library.

raygui was initially inspired by Unity IMGUI (immediate mode GUI API).

raygui was originated as an auxiliar module for raylib to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...).

raygui is intended for tools development; it has already been used to develop multiple published tools.


features

  • Immediate-mode gui, no retained data
  • +28 basic and advance controls provided
  • Powerful styling system for colors, font and metrics
  • Standalone usage mode supported (for other graphic libs)
  • Icons support, embedding a complete 1-bit icons pack
  • Multiple tools provided for raygui development

raygui controls

basic controls

Label       |  Button      |  LabelButton |  Toggle       |  ToggleGroup |  CheckBox
ComboBox    |  DropdownBox |  TextBox     |  TextBoxMulti |  ValueBox    |  Spinner     |  Slider
SliderBar   |  ProgressBar |  StatusBar   |  ScrollBar    |  ScrollPanel |  DummyRec    |  Grid

advance controls

ListView    |  ColorPicker |  MessageBox  |  TextInputBox

container/separator controls

WindowBox   |  GroupBox    |  Line        |  Panel

raygui styles

raygui comes with a default style automatically loaded at runtime:

raygui default style

Some additional styles are also provided for convenience, just check styles directory for details:

raygui additional styles

Custom styles can also be created very easily using rGuiStyler tool.

Styles can be loaded at runtime using raygui GuiLoadStyle() function. Simple and easy-to-use.

raygui icons

raygui supports custom icons, by default, a predefined set of icons is provided inside raygui as an array of binary data; it contains 256 possible icons defined as 16x16 pixels each; each pixel is codified using 1-bit. The total size of the array is 2048 bytes.

To use any of those icons just prefix the #iconId# number to any text written within raygui controls:

if (GuiButton(rec, "#05#Open Image")) { /* ACTION */ }

It's also possible to use the provided GuiIconText() function to prefix it automatically, using a clearer identifier (defined in raygui.h).

if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ }

Provided set of icons can be reviewed and customized using rGuiIcons tool.

raygui support tools

  • rGuiStyler - A simple and easy-to-use raygui styles editor.

    rGuiStyler v3.1

  • rGuiIcons - A simple and easy-to-use raygui icons editor.

    rGuiIcons v1.0

  • rGuiLayout - A simple and easy-to-use raygui layouts editor.

    rGuiLayout v2.2

building

raygui is intended to be used as a portable single-file header-only library, to be directly integrated into any C/C++ codebase but some users could require a shared/dynamic version of the library, for example, to create bindings:

  • Windows (MinGW, GCC)
copy src/raylib.h src/raylib.c
gcc -o src/raygui.dll src/raygui.c -shared -DRAYGUI_IMPLEMENTATION -DBUILD_LIBTYPE_SHARED -static-libgcc -lopengl32 -lgdi32 -lwinmm -Wl,--out-implib,src/librayguidll.a
  • Linux (GCC)
mv src/raygui.h src/raygui.c
gcc -o raygui.so src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11

license

raygui is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check LICENSE for further details.

Comments
  • raygui unusable for C++ projects

    raygui unusable for C++ projects

    Hi,

    I'm attempting to use raygui with my raylib project, but after generating the project files for VS2019 or Make on OSX, a ton of errors are generated when trying to compile the raygui header.

    It looks like there's an issue related to both casting and just the general C vs C++ syntax.

    (copied from Visual Studio) Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 681 Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C3861 'DrawIcon': identifier not found raylib-proj C:\raylib-proj\include\libs\raygui.h 717 Error C2065 'RICONS_SIZE': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 721 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 865 Error C2065 'RICON_CROSS_SMALL': undeclared identifier raylib-proj C:\raylib-proj\include\libs\raygui.h 883 Error C2660 'GuiButton': function does not take 1 arguments raylib-proj C:\raylib-proj\include\libs\raygui.h 883 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 909 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 979 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 980 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1156 Error C2397 conversion from 'int' to 'float' requires a narrowing conversion raylib-proj C:\raylib-proj\include\libs\raygui.h 1156 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1187 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1287 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1440 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1444 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1448 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1453 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1460 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1466 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1481 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1488 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1489 Error C4576 a parenthesized type followed by an initializer list is a non-standard explicit type conversion syntax raylib-proj C:\raylib-proj\include\libs\raygui.h 1490

    opened by sduman 10
  • How to build?

    How to build?

    There appears to be no build system here unlike raylib which I've already compiled into a SHARED library on my Raspberry Pi 3B.

    How does one build this library or even just one of the provided examples?

    I've tried a very basic gcc -I/home/pi/raylib/src controls_review.c (so it can find raylib.h) and just get a ton of errors. What else do I need to -Define?

    opened by JamesDunne 9
  • Push/Pop style variables

    Push/Pop style variables

    I have not seen if there is a way to push/pop style variables.

    Therefore I would like to propose for this to be added since it makes code much simpler when you want to make sure the previous state is kept once you finish what you are doing.

    For example:

    auto lastStyle = GuiGetStyle(LABEL, TEXT_ALIGNMENT);
    GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
    GuiLabel(...);
    GuiSetStyle(LABEL, TEXT_ALIGNMENT, lastStyle);
    

    would become

    GuiPushStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
    GuiLabel(...);
    GuiPopStyle(LABEL, TEXT_ALIGNMENT);
    
    opened by muit 8
  • Scroll behavior

    Scroll behavior

    Hi,

    If you press the scrollbar and drag/slide the mouse outside the scrollbar bounds it didn't scroll anymore (it's a little frustrating :sweat_smile:), if I'm right is probably somewhere by there:

    https://github.com/raysan5/raygui/blob/d4b9d1fb32f1536f651ef4bfb69c9012001bfb9d/src/raygui.h#L1589

    opened by n67094 7
  • Used, But Not Defined

    Used, But Not Defined

    Just found this wonderful library (both raylib and this one) and while I'm doing OK within raylib, I seem to be having a problem with getting gui elements to work. They all appear to have a "used, but not defined" issue.

    Using stable releases for raylib and raygui (tried latest, but was actually having other issues, made further progress with stable, so been sticking with that).

    I had started with: #include "include/raylib.h" #define RAYGUI_IMPLEMENTATION #include "include/raygui.h" #undef RAYGUI_IMPLEMENTATION

    But that didn't work with getting anything to show up in my IDE, so tried this: #include "include/raylib.h" #define RAYGUI_STATIC #include "include/raygui.h" #undef RAYGUI_STATIC

    And that seemed to have satisfied my IDE and as long as I don't use any raygui specifics, the compiler is happy as well. However, if I use anything that is specific to raygui, the compiler starts to get angry with me.

    I'm sure that it's something that I am not doing, but I am at a lost and I haven't seen anything else in the samples, unless I just missed it (which is quite possible).

    Any thoughts? Thanks!

    Loving raylib. It's taking me awhile (having come from Godot as far as games go), but would like to be able to use this for applications as well.

    opened by wwderw 7
  • Provide additional controls

    Provide additional controls

    Right now raygui implements following controls:

    • [x] Label
    • [x] Button
    • [x] ImageButton
    • [x] ToggleButton
    • [x] ToggleGroup
    • [x] CheckBox
    • [x] ComboBox
    • [x] GroupBox
    • [x] TextBox
    • [x] Slider
    • [x] SliderBar
    • [x] ProgressBar
    • [x] Spinner
    • [x] ColorPicker (requires some review)

    Here it is a possible list of additional controls:

    • [x] LabelButton
    • [x] ListView
    • [ ] TreeView
    • [x] ImageBox
    • [x] ScrollPanel
    • [ ] Dialog
    • [x] MessageDialog
    • [ ] DatePicker

    What do you think?

    enhancement question 
    opened by raysan5 7
  • latest version has problems

    latest version has problems

    Hi, i downloaded repo as .zip but there is no raycons.h file in src folder and when i include and use raygui.h i get these errors: (but replacing raygui.h with latest release (2019) works)

    C:\Users\arman\Documents\vsCode\test\req/raygui.h:2398:21: error: 'glyphInfo' was not declared in this scope 2398 | if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:2431:17: error: 'glyphInfo' was not declared in this scope 2431 | if (glyphInfo.advanceX != 0) glyphWidth += glyphInfo.advanceX; | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h: In function 'void GuiLoadStyle(const char*)': C:\Users\arman\Documents\vsCode\test\req/raygui.h:3420:60: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3420 | if ((font.texture.id > 0) && (font.glyphCount > 0)) GuiSetFont(font); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3490:29: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3490 | fread(&font.glyphCount, 1, sizeof(int), rgsFile); | ^~~~~~~~~~ In file included from C:\Users\arman\Documents\vsCode\test\main.cpp:5: C:\Users\arman\Documents\vsCode\test\req/raygui.h:3517:61: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3517 | font.recs = (Rectangle *)RAYGUI_CALLOC(font.glyphCount, sizeof(Rectangle)); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:213:44: note: in definition of macro 'RAYGUI_CALLOC' 213 | #define RAYGUI_CALLOC(n,sz) calloc(n,sz) | ^ In file included from C:\Users\arman\Documents\vsCode\test\main.cpp:5: C:\Users\arman\Documents\vsCode\test\req/raygui.h:3518:42: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3518 | for (int i = 0; i < font.glyphCount; i++) fread(&font.recs[i], 1, sizeof(Rectangle), rgsFile); | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:22: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:32: error: 'GlyphInfo' was not declared in this scope 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3521:43: error: expected primary-expression before ')' token 3521 | font.glyphs = (GlyphInfo *)RAYGUI_CALLOC(font.glyphCount, sizeof(GlyphInfo)); | ^ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3522:42: error: 'Font' {aka 'struct Font'} has no member named 'glyphCount' 3522 | for (int i = 0; i < font.glyphCount; i++) | ^~~~~~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3524:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3524 | fread(&font.glyphs[i].value, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3525:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3525 | fread(&font.glyphs[i].offsetX, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3526:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3526 | fread(&font.glyphs[i].offsetY, 1, sizeof(int), rgsFile); | ^~~~~~ C:\Users\arman\Documents\vsCode\test\req/raygui.h:3527:33: error: 'Font' {aka 'struct Font'} has no member named 'glyphs' 3527 | fread(&font.glyphs[i].advanceX, 1, sizeof(int), rgsFile);

    opened by ejamshidiasl 6
  • Compilation warning

    Compilation warning

    Hi,

    ../../../../../../src/raygui.h: In function 'GetTextIcon':
    ../../../../../../src/raygui.h:646:55: warning: unused parameter 'iconId' [-Wunused-parameter]
     static const char *GetTextIcon(const char *text, int *iconId)
                                                      ~~~~~^~~~~~
    ../../../../../../src/raygui.h: In function 'GuiIconText':
    ../../../../../../src/raygui.h:4137:39: warning: unused parameter 'iconId' [-Wunused-parameter]
     RAYGUIDEF const char *GuiIconText(int iconId, const char *text)
                                       ~~~~^~~~~~
    ../../../../../../src/raygui.h:4137:59: warning: unused parameter 'text' [-Wunused-parameter]
     RAYGUIDEF const char *GuiIconText(int iconId, const char *text)
                                                   ~~~~~~~~~~~~^~~~
    ../../../../../../src/raygui.h: In function 'ConvertRGBtoHSV':
    ../../../../../../src/raygui.h:4217:5: warning: missing initializer for field 'y' of 'Vector3' {aka 'struct Vector3'} [-Wmissing-field-initializers]
         Vector3 hsv = { 0.0f };
    
    c:/RAYLIB/include/raylib.h:181:11: note: 'y' declared here float y;
    
    ../../../../../../src/raygui.h: In function 'ConvertHSVtoRGB':
    ../../../../../../src/raygui.h:4270:5: warning: missing initializer for field 'y' of 'Vector3' {aka 'struct Vector3'} [-Wmissing-field-initializers]
         Vector3 rgb = { 0.0f };
    
    c:/RAYLIB/include/raylib.h:181:11: note: 'y' declared here float y;
    
    

    If I correct these warnings, the compilation goes fine. What is your opinion on this.

    opened by rjopek 6
  • C++ Header Design

    C++ Header Design

    Posting here for clarification, and for anyone else that is trying to overcome this hurdle.

    I have a C++ application where the GUI window is launched in main() and then manipulated via other C++ objects via raygui.

    Originally, I was getting duplicate definition errors due to the way I was including raygui in all of my code, as seen below:

    extern "C" {
    #include "raylib.h"
    
    #define RAYGUI_IMPLEMENTATION
    #include "raygui.h"
    }
    

    The "correct" implementation for this should be to use the above within main(), and then use the following everywhere else:

    extern "C" {
    #include "raylib.h"
    
    #define RAYGUI_STATIC
    #include "raygui.h"
    }
    

    Is this "correct" ?

    opened by smalls12 6
  • Made MessageBox and WindowBox close buttons optional

    Made MessageBox and WindowBox close buttons optional

    Just proposing a small change that made my life a bit easier. Ideally, this would be done using flags, but that's a much bigger change than just this.

    This change also keeps the API intact.

    What a message box looks like without the close button: image

    opened by muit 5
  • How to create a VS Project? (preferably using premake)

    How to create a VS Project? (preferably using premake)

    I am new to building projects so I don't know understand how to build this. I saw that you have a repo for raylib where you setup the project using premake and that worked. Is there one like that for raygui? If not, could you explain step by step how to set it up using VS2022?

    opened by AyushKoul00 5
  • GetTextBounds - Incorrect text bounds calculation for comboboxes

    GetTextBounds - Incorrect text bounds calculation for comboboxes

    In function GetTextBounds, COMBOBOX case modifies variable bounds, which is never used after that point. It should be modifying textBounds.

    From raygui.h:

    
        // Consider TEXT_PADDING properly, depends on control type and TEXT_ALIGNMENT
        switch (control)
        {
            case COMBOBOX: bounds.width -= (GuiGetStyle(control, COMBO_BUTTON_WIDTH) + GuiGetStyle(control, COMBO_BUTTON_SPACING)); break;
    
    opened by JCalHij 0
  • Dear ImGui's `io.WantCaptureMouse` and `io.io.WantCaptureKeyboard` equivalents

    Dear ImGui's `io.WantCaptureMouse` and `io.io.WantCaptureKeyboard` equivalents

    Hi,

    Are there Dear ImGui's equivalents for io.WantCaptureMouse and io.WantCaptureKeyboard flags?

    Is there any API in raygui for checking whether an input should be "consumed/handled" by UI and not propagated further? Any plans for adding it?

    Thanks 😀

    opened by KyrietS 0
Releases(3.2)
  • 3.2(Aug 7, 2022)

    Updated for next raylib version: raylib v4.2 and for updated raylibtech tools.

    Highlight changes:

    • RENAMED: Some enum values, for unification, avoiding prefixes
    • REMOVED: GuiScrollBar(), only internal
    • REDESIGNED: GuiPanel() to support text parameter
    • REDESIGNED: GuiScrollPanel() to support text parameter
    • REDESIGNED: GuiColorPicker() to support text parameter
    • REDESIGNED: GuiColorPanel() to support text parameter
    • REDESIGNED: GuiColorBarAlpha() to support text parameter
    • REDESIGNED: GuiColorBarHue() to support text parameter
    • REDESIGNED: GuiTextInputBox() to support password

    Full Changelog: https://github.com/raysan5/raygui/compare/3.1...3.2

    Source code(tar.gz)
    Source code(zip)
  • 3.1(Jan 12, 2022)

    New version improvements:

    • REVIEWED: Default style for consistency (aligned with rGuiLayout v2.5 tool)
    • REVIEWED: GuiLoadStyle() to support compressed font atlas image data and unload previous textures
    • REVIEWED: External icons usage logic, required macros changed
    • REVIEWED: GuiLine() for centered alignment when including text
    • RENAMED: Multiple controls properties definitions to prepend RAYGUI_
    • RENAMED: RICON_ references to RAYGUI_ICON_ for library consistency
    • UPDATED: VS2022 projects and CMake build option
    • REVIEWED: Minor tweaks and fixes

    Note this is a release before introducing some breaking changes to the library, this release is intended to work with:

    • rGuiStyler 3.5
    • rGuiLayout 2.5
    • rGuiIcons 1.5

    Hope you enjoy this new release! :)

    Source code(tar.gz)
    Source code(zip)
  • 3.0(Nov 3, 2021)

  • 2.8(Dec 28, 2020)

  • 2.6(Sep 9, 2019)

    Just a stable release used for the my latest tools updates.

    I'm quite happy with the current implementation of the library: the API, the controls available and the styling possibilities.

    Source code(tar.gz)
    Source code(zip)
Owner
Ray
I make videogames and tools to make videogames. I teach videogames dev. Always available for talks, conferences and master classes.
Ray
The HorusUI library allows you to quickly develop GUIs for your applications by leveraging the ease of use provided by immediate mode GUI concepts.

Immediate Mode Graphical User Interface for Tools OVERVIEW The HorusUI library allows you to quickly develop GUIs for your applications by leveraging

null 133 Dec 12, 2022
FlatUI is a immediate mode C++ GUI library for games and graphical applications.

FlatUI is a immediate mode C++ GUI library for games and graphical applications. Go to our landing page to browse our documentation.

Google 610 Dec 23, 2022
A single-header ANSI C immediate mode cross-platform GUI library

Nuklear This is a minimal-state, immediate-mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed a

Immediate Mode UIs, Nuklear, etc. 6.7k Dec 24, 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

Victor Bombi 22 Jul 5, 2021
ImTui: Immediate Mode Text-based User Interface C++ Library

ImTui is an immediate mode text-based user interface library. Supports 256 ANSI colors and mouse/keyboard input.

Georgi Gerganov 2.1k Jan 1, 2023
A tiny, portable, immediate-mode UI library written in ANSI C

A tiny, portable, immediate-mode UI library written in ANSI C Features Tiny: around 1100 sloc of ANSI C Works within a fixed-sized memory region: no a

null 2.5k Jan 6, 2023
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

Cedric Guillemet 2.3k Dec 27, 2022
This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain

This is a minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. It was designed as a simple embeddable user interface for application and does not have any dependencies, a default render backend or OS window and input handling but instead provides a very modular library approach by using simple input state for input and draw commands describing primitive shapes as output.

Micha Mettke 13.5k Jan 8, 2023
Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

libui: a portable GUI library for C This README is being written. Status It has come to my attention that I have not been particularly clear about how

Pietro Gagliardi 10.4k Jan 2, 2023
super duper simple gui for C, wrapping imgui and stb

super duper simle gui for C, wrapping imgui and stb You can use it as a static library with cmake. See the example directory for a complete example. E

Rasmus 11 May 19, 2022
Fast, flexible and simple GUI.

MyGUI is a cross-platform library for creating graphical user interfaces (GUIs) for games and 3D applications. Website: http://mygui.info/ There you c

null 629 Dec 29, 2022
It's a simple Canvas GUI for Unreal Engine 4 with mouse operation

ue4-canvas-gui It's a simple Canvas GUI for Unreal Engine 4 with mouse operation. Included elements: Rendering Text (left/center); Rendering Rects; Re

Superior. 56 Dec 26, 2022
rCalc is a Simple GUI Calculator

rCalc is a simple calculator created as a hobby project to improve my C programming language knowledge and GUI creation skills. GTK3 toolkit is used to create the GUI.

null 3 Aug 1, 2022
Minimalistic C++/Python GUI library for OpenGL, GLES2/3, Metal, and WebAssembly/WebGL

NanoGUI NanoGUI is a minimalistic cross-platform widget library for OpenGL 3+, GLES 2/3, and Metal. It supports automatic layout generation, stateful

Mitsuba Physically Based Renderer 1.2k Dec 28, 2022
A barebones single-header GUI library for Win32 and X11.

luigi A barebones single-header GUI library for Win32 and X11. Building example Windows Update luigi_example.c to #define UI_WINDOWS at the top of the

Nakst 235 Dec 30, 2022
Examples, tutorials and applications for the LVGL embedded GUI library

Examples, tutorials and applications for the LVGL embedded GUI library

LVGL 441 Nov 11, 2022
HastyBadger is a branch of the excellent widget and GUI library Turbo Badger.

Branch Notice - HastyBadger Hasty is not Turbo. HastyBadger is a branch of the excellent widget and GUI library Turbo Badger. Notabe additions are c++

Michael Tesch 38 Nov 17, 2022
Elements C++ GUI library

Elements C++ GUI library Introduction Elements is a lightweight, fine-grained, resolution independent, modular GUI library. Elements is designed with

Cycfi Research 2.5k Dec 30, 2022
A library for creating native cross-platform GUI apps

Yue A library for creating native cross-platform GUI apps. Getting started Documentations FAQ Development Examples Sample apps (with screenshots) Muba

Yue 2.8k Jan 7, 2023