2021-10-05 18:33:02 +02:00
2019-08-27 13:19:06 +02:00
2021-10-05 12:48:18 +02:00
2019-08-21 12:50:57 +02:00
2021-10-05 11:23:05 +02:00
2021-10-05 18:33:02 +02:00
2019-10-21 17:59:47 +02:00
2016-09-15 12:20:40 +02:00
2020-04-16 13:24:03 +02:00
2019-08-24 21:08:56 +02:00
2021-05-23 10:51:03 +02:00
2021-10-05 13:45:17 +02:00

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 publised 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 |  ImageButton  |  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 provided as an external array of data. To support icons just define RAYGUI_SUPPORT_RICONS before including raygui.

A set of custom handcrafted icons is provided in ricons. This set of icons can be created and customized using rGuiIcons tool.

#define RAYGUI_IMPLEMENTATION
#define RAYGUI_SUPPORT_RICONS
#include "raygui.h"

To use any of those icons in your gui, just preprend iconId to any text written within raygui controls:

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

or use the provided GuiIconText() function to prepend it automatically, using a clearer identifier.

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

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++ codebas but some users could require a shared/dynamic version of the library, for example, to create bindings. raygui can be built as a (Linux) shared library using:

  • 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.

Description
A simple and easy-to-use immediate-mode gui library
Readme
Languages
C 99.7%
CMake 0.3%