diff --git a/README.md b/README.md index 07e800c..82e8fc0 100644 --- a/README.md +++ b/README.md @@ -1,35 +1,45 @@ -**raygui** is a simple and easy-to-use immediate-mode-gui library. +**raygui is a simple and easy-to-use immediate-mode-gui library.** -raygui was initially inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API). +`raygui` was initially inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API). -raygui was originated as an auxiliar module for [raylib](https://github.com/raysan5/raylib) to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...). +`raygui` was originated as an auxiliar module for [raylib](https://github.com/raysan5/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 the following tools: [rFXGen](https://github.com/raysan5/rfxgen), [rTexViewer](https://raylibtech.itch.io/rtexviewer), [rTexPacker](https://raylibtech.itch.io/rtexpacker) [rGuiStyler](https://raylibtech.itch.io/rguistyler), [rGuiLayout](https://raylibtech.itch.io/rguilayout) and [rGuiIcons](https://raylibtech.itch.io/rguiicons) +`raygui` is intended for **tools development**; it has already been used to develop [multiple publised tools](https://raylibtech.itch.io/rguiicons). +

-## raygui provided controls +## features -#### Container/separator controls -``` -WindowBox | GroupBox | Line | Panel -``` -#### Basic controls + - 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 +### advance controls ``` ListView | ColorPicker | MessageBox | TextInputBox ``` +### container/separator controls +``` +WindowBox | GroupBox | Line | Panel +``` ## raygui styles -raygui comes with a [default](styles/default) style automatically loaded at runtime: +`raygui` comes with a [default](styles/default) style automatically loaded at runtime: ![raygui default style](styles/default/style_table.png) @@ -41,10 +51,6 @@ Custom styles can also be created very easily using [rGuiStyler](https://raylibt Styles can be loaded at runtime using raygui `GuiLoadStyle()` function. Simple and easy-to-use. -![rGuiStyler v3.1](images/rguistyler_v300.png) - -*rGuiStyler v3.1 - raygui styles editor, useful to create custom styles* - ## raygui icons `raygui` supports custom icons provided as an external array of data. To support icons just define `RAYGUI_SUPPORT_RICONS` before including `raygui`. @@ -67,14 +73,33 @@ or use the provided `GuiIconText()` function to prepend it automatically, using if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ } ``` -## building as shared library +## raygui support tools -`raygui` is intended to be used as a portable library to be integrated in code form into the target project but some users could require a shared/dynamic version of the library, for example, to create bindings. In that case, `raygui` can be built as a shared library using: +### [rGuiStyler](https://raylibtech.itch.io/rguistyler) + +A simple and easy-to-use raygui styles editor. + +![rGuiStyler v3.1](images/rguistyler_v300.png) + +### [rGuiIcons](https://raylibtech.itch.io/rguiicons) + +A simple and easy-to-use raygui icons editor. + +![rGuiIcons v1.0](images/rguiicons_v100.png) + +### [rGuiLayout](https://raylibtech.itch.io/rguilayout) + +A simple and easy-to-use raygui layouts editor. + +![rGuiLayout v2.2](images/rguilayout_v220.png) + +## 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. In that case, `raygui` can be built as a (Linux) shared library using: ``` mv src/raygui.h src/raygui.c && gcc -shared -fpic -DRAYGUI_SUPPORT_RICONS -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 src/raygui.c -o raygui.so ``` -license -------- +## 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](LICENSE) for further details.