├── .gitattributes
├── .github
└── FUNDING.yml
├── .gitignore
├── HISTORY.md
├── LICENSE
├── README.md
├── examples
├── Makefile
├── animation_curve
│ ├── animation_curve.c
│ └── gui_curve_editor.h
├── controls_test_suite
│ ├── controls_test_suite.c
│ ├── controls_test_suite.png
│ └── gui_value_box_float.c
├── custom_file_dialog
│ ├── cat.png
│ ├── custom_file_dialog.c
│ └── gui_window_file_dialog.h
├── custom_input_box
│ └── custom_input_box.c
├── custom_sliders
│ └── custom_sliders.c
├── floating_window
│ └── floating_window.c
├── image_exporter
│ ├── image_exporter.c
│ └── resources
│ │ ├── cat.png
│ │ ├── fudesumi.png
│ │ ├── parrots.png
│ │ └── scarfy.png
├── image_importer_raw
│ ├── design
│ │ ├── raw_importer_REF.png
│ │ ├── raw_importer_REV0.png
│ │ ├── raw_importer_REV1.png
│ │ ├── raw_importer_REV2.png
│ │ ├── raw_importer_REV3.png
│ │ ├── raw_importer_REV4.png
│ │ └── raw_importer_REV5.png
│ ├── image_2x2_RGBA.raw
│ └── image_importer_raw.c
├── portable_window
│ └── portable_window.c
├── property_list
│ ├── dm_property_list.h
│ ├── property_list.c
│ └── test.props
├── raygui.ico
├── raygui.rc
├── scroll_panel
│ └── scroll_panel.c
├── standalone
│ ├── raygui_custom_backend.h
│ └── raygui_standalone.c
├── style_selector
│ └── style_selector.c
└── styles
│ ├── style_amber.h
│ ├── style_ashes.h
│ ├── style_bluish.h
│ ├── style_candy.h
│ ├── style_cherry.h
│ ├── style_cyber.h
│ ├── style_dark.h
│ ├── style_enefete.h
│ ├── style_jungle.h
│ ├── style_lavanda.h
│ ├── style_sunny.h
│ └── style_terminal.h
├── icons
├── raygui_icons.h
├── raygui_icons.png
└── raygui_icons.rgi
├── images
├── raygui_controls_panel.png
├── raygui_ricons.png
├── raygui_style_table_multi.png
├── rguiicons_v100.png
├── rguilayout_v220.png
├── rguistyler_v210.png
└── rguistyler_v300.png
├── logo
├── raygui.ico
├── raygui_128x128.png
├── raygui_16x16.png
├── raygui_24x24.png
├── raygui_256x256.png
├── raygui_32x32.png
├── raygui_48x48.png
├── raygui_512x512.png
├── raygui_64x64.png
└── raygui_96x96.png
├── projects
├── CMake
│ ├── CMakeLists.txt
│ ├── README.md
│ └── cmake
│ │ └── FindRaylib.cmake
└── VS2022
│ ├── examples
│ ├── animation_curve.vcxproj
│ ├── controls_test_suite.vcxproj
│ ├── custom_file_dialog.vcxproj
│ ├── image_exporter.vcxproj
│ ├── image_importer_raw.vcxproj
│ ├── portable_window.vcxproj
│ ├── property_list.vcxproj
│ ├── scroll_panel.vcxproj
│ ├── style_selector.vcxproj
│ └── test.props
│ ├── raygui.sln
│ └── raylib
│ └── raylib.vcxproj
├── src
└── raygui.h
└── styles
├── README.md
├── amber
├── README.md
├── hello-world.ttf
├── screenshot.old.png
├── screenshot.png
├── style_amber.h
├── style_amber.png
└── style_amber.rgs
├── ashes
├── README.md
├── charset.txt
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_ashes.h
├── style_ashes.png
├── style_ashes.rgs
├── style_ashes.txt.rgs
└── v5loxical.ttf
├── bluish
├── README.md
├── charset.txt
├── font_readme.txt
├── homespun.ttf
├── screenshot.old.png
├── screenshot.png
├── style_bluish.h
├── style_bluish.png
├── style_bluish.rgs
└── style_bluish.txt.rgs
├── candy
├── README.md
├── charset.txt
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_candy.h
├── style_candy.png
├── style_candy.rgs
├── style_candy.txt.rgs
└── v5easter.ttf
├── cherry
├── README.md
├── Westington.ttf
├── charset.txt
├── screenshot.old.png
├── screenshot.png
├── style_cherry.h
├── style_cherry.png
├── style_cherry.rgs
└── style_cherry.txt.rgs
├── cyber
├── Kyrou7Wide.ttf
├── README.md
├── charset.txt
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_cyber.h
├── style_cyber.png
├── style_cyber.rgs
└── style_cyber.txt.rgs
├── dark
├── PixelOperator.ttf
├── README.md
├── charset.txt
├── font_LICENSE.txt
├── screenshot.old.png
├── screenshot.png
├── style_dark.h
├── style_dark.png
├── style_dark.rgs
└── style_dark.txt.rgs
├── default
├── README.md
├── charset.txt
├── screenshot.old.png
├── screenshot.png
├── style_default.png
└── style_default.txt.rgs
├── enefete
├── GenericMobileSystemNuevo.ttf
├── README.md
├── charset.txt
├── font_LICENSE.txt
├── screenshot.old.png
├── screenshot.png
├── style_enefete.h
├── style_enefete.png
├── style_enefete.rgs
└── style_enefete.txt.rgs
├── genesis
├── PixelOperator.ttf
├── font_LICENSE.txt
├── screenshot.png
├── style_genesis.h
├── style_genesis.png
└── style_genesis.rgs
├── jungle
├── PixelIntv.otf
├── README.md
├── charset.txt
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_jungle.h
├── style_jungle.png
├── style_jungle.rgs
└── style_jungle.txt.rgs
├── lavanda
├── Cartridge.ttf
├── README.md
├── charset.txt
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_lavanda.h
├── style_lavanda.png
├── style_lavanda.rgs
└── style_lavanda.txt.rgs
├── rltech
├── 2a03_memesbruh03.ttf
├── font_readme.txt
├── screenshot.old.png
├── screenshot.png
├── style_rltech.h
├── style_rltech.png
└── style_rltech.rgs
├── sunny
├── GenericMobileSystemNuevo.ttf
├── README.md
├── charset.txt
├── font_LICENSE.txt
├── screenshot.old.png
├── screenshot.png
├── style_sunny.h
├── style_sunny.png
├── style_sunny.rgs
└── style_sunny.txt.rgs
└── terminal
├── Mecha.ttf
├── README.md
├── charset.txt
├── screenshot.old.png
├── screenshot.png
├── style_terminal.h
├── style_terminal.png
├── style_terminal.rgs
└── style_terminal.txt.rgs
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.h linguist-language=C
2 |
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | # These are supported funding model platforms
2 |
3 | github: raysan5
4 | patreon: # Replace with a single Patreon username
5 | open_collective: # Replace with a single Open Collective username
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
9 | liberapay: # Replace with a single Liberapay username
10 | issuehunt: # Replace with a single IssueHunt username
11 | otechie: # Replace with a single Otechie username
12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
13 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Object files
2 | *.o
3 | *.ko
4 | *.obj
5 | *.elf
6 |
7 | # Precompiled Headers
8 | *.gch
9 | *.pch
10 |
11 | # Libraries
12 | *.lib
13 | *.a
14 | *.la
15 | *.lo
16 |
17 | # Shared objects (inc. Windows DLLs)
18 | *.dll
19 | *.so
20 | *.so.*
21 | *.dylib
22 |
23 | # Executables
24 | *.exe
25 | *.out
26 | *.app
27 | *.i*86
28 | *.x86_64
29 | *.hex
30 |
31 | # Debug files
32 | *.dSYM/
33 | *.su
34 |
35 | # VSCode files
36 | .vscode/
37 |
38 |
39 | # Ignore files build by Visual Studio
40 | [Dd]ebug
41 | [Rr]elease
42 | *.vs
43 | *.obj
44 | *.pdb
45 | *.aps
46 | *.user
47 | # *.vcproj
48 | # *.vcxproj*
49 | # *.sln
50 | *.vspscc
51 | *_i.c
52 | *.i
53 | *.icf
54 | *_p.c
55 | *.ncb
56 | *.suo
57 | *.tlb
58 | *.tlh
59 | *.bak
60 | *.cache
61 | *.ilk
62 | *.log
63 |
64 | build
--------------------------------------------------------------------------------
/HISTORY.md:
--------------------------------------------------------------------------------
1 | ## raygui history
2 |
3 | raygui development started on December 2014 by two internship students (Kevin and Daniel) guided by me, objective was creating a simple and easy-to-use immediate-mode-gui module for raylib, intended for tools development. On June 2015, library was mostly functional (including basic controls) and we started working in the styling posibilities for the library, focusing on an easy way to style controls properties. Consequently, development of [rGuiStyler](https://raylibtech.itch.io/rguistyler) also started at that point... but resources were quite limited and project was stopped for several months, most of the time was invested in [raylib](https://github.com/raysan5/raylib) development.
4 |
5 | On June 2016, project was picked up again and raygui 1.0 was released by the end of that month. During August 2016, raygui was used to develop [rFXGen](https://github.com/raysan5/rfxgen) and also an early protoype of [rGuiLayout](https://raylibtech.itch.io/rguilayout), those tools were a testbed for the library. By the end of 2016, raygui project development was stopped again for several months.
6 |
7 | On June 2017, a complete redesign of the library started, almost from scratch, all functions were reviewed and mostly rewritten and a brand new styling system was developed. The objective was using raygui professionally in several tools. It was the beginning of raygui 2.0.
8 |
9 | On January 2018, two students (Adria and Jordi) started working on raygui and related tools; library evolved considerably in the following months. [rGuiStyler](https://raylibtech.itch.io/rguistyler) was completely redesigned and rewritten from scratch (rGuiStyler v2.0). [rGuiLayout](https://raylibtech.itch.io/rguilayout) turned from a protoype into a professional software and raygui reached version 2.0 with plenty of new controls and features.
10 |
11 | On July 2018, I started working full time on raygui and its tools, improving the library considerably. On October 2018 [Sergio](https://github.com/anidealgift) joined the project and focused efforts on [rGuiLayout](https://raylibtech.itch.io/rguilayout) tool redesign. We reached 2019 with continuous improvement and redesigns of mostly all raygui functions along rGuiLayout 2.0 and rGuiStyler 3.0.
12 |
13 | On March 2019, the first set of new raygui tools was published: [rFXGen 2.0](https://raylibtech.itch.io/rfxgen), [rTexViewer 1.0](https://raylibtech.itch.io/rtexviewer) and [rIconPacker 1.0](https://raylibtech.itch.io/riconpacker).
14 |
15 | From March 2019 to June 2019 raygui development decelerated, Sergio left the project and efforts were focused on raylib 2.5, during this time one external contributor, [Vlad Adrian](https://github.com/Demizdor), completely redesigned `GuiTextBox()` and related controls and version was bumped to raygui 2.5.
16 |
17 | During summer 2019 lots of raygui functions were reviewed, breaking compatibility to any previous version and pointing to a **raygui 2.6** update.
18 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | zlib License
2 |
3 | Copyright (c) 2014-2025 Ramon Santamaria (@raysan5)
4 |
5 | This software is provided "as-is", without any express or implied warranty. In no event
6 | will the authors be held liable for any damages arising from the use of this software.
7 |
8 | Permission is granted to anyone to use this software for any purpose, including commercial
9 | applications, and to alter it and redistribute it freely, subject to the following restrictions:
10 |
11 | 1. The origin of this software must not be misrepresented; you must not claim that you
12 | wrote the original software. If you use this software in a product, an acknowledgment
13 | in the product documentation would be appreciated but is not required.
14 |
15 | 2. Altered source versions must be plainly marked as such, and must not be misrepresented
16 | as being the original software.
17 |
18 | 3. This notice may not be removed or altered from any source distribution.
19 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | **raygui is a simple and easy-to-use immediate-mode-gui library.**
4 |
5 | `raygui` was originally inspired by [Unity IMGUI](https://docs.unity3d.com/Manual/GUIScriptingGuide.html) (immediate mode GUI API).
6 |
7 | `raygui` was designed as an auxiliary module for [raylib](https://github.com/raysan5/raylib) to create simple GUI interfaces using raylib graphic style (simple colors, plain rectangular shapes, wide borders...) but it can be adapted to other engines/frameworks.
8 |
9 | `raygui` is intended for **tools development**; it has already been used to develop [multiple published tools](https://raylibtech.itch.io).
10 |
11 |
12 |
13 | **WARNING: Latest `raygui` from master branch is always aligned with latest `raylib` from master branch. Make sure to use the appropriate versions.**
14 |
15 | **WARNING: Latest `raygui 4.0` is an API-BREAKING redesign from previous versions (3.x), now all functions are more consistent and coherent, you can read the details about this breaking change in issue [283](https://github.com/raysan5/raygui/issues/283)**
16 |
17 | *NOTE: raygui is a single-file header-only library (despite its internal dependency on raylib), so, functions definition AND implementation reside in the same file `raygui.h`, when including `raygui.h` in a module, `RAYGUI_IMPLEMENTATION` must be previously defined to include the implementation part of `raygui.h` BUT only in one compilation unit, other modules could also include `raygui.h` but `RAYGUI_IMPLEMENTATION` must not be defined again.*
18 |
19 | ## features
20 |
21 | - **Immediate-mode gui, no retained data**
22 | - **+25** controls provided (basic and advanced)
23 | - Powerful **styling system** for colors, font and metrics
24 | - Standalone usage mode supported (for other graphic libs)
25 | - **Icons support**, embedding a complete 1-bit icons pack
26 | - Multiple **tools** provided for raygui development
27 |
28 | ## code sample
29 | ```c
30 | #include "raylib.h"
31 |
32 | #define RAYGUI_IMPLEMENTATION
33 | #include "raygui.h"
34 |
35 | int main()
36 | {
37 | InitWindow(400, 200, "raygui - controls test suite");
38 | SetTargetFPS(60);
39 |
40 | bool showMessageBox = false;
41 |
42 | while (!WindowShouldClose())
43 | {
44 | // Draw
45 | //----------------------------------------------------------------------------------
46 | BeginDrawing();
47 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
48 |
49 | if (GuiButton((Rectangle){ 24, 24, 120, 30 }, "#191#Show Message")) showMessageBox = true;
50 |
51 | if (showMessageBox)
52 | {
53 | int result = GuiMessageBox((Rectangle){ 85, 70, 250, 100 },
54 | "#191#Message Box", "Hi! This is a message!", "Nice;Cool");
55 |
56 | if (result >= 0) showMessageBox = false;
57 | }
58 |
59 | EndDrawing();
60 | }
61 |
62 | CloseWindow();
63 | return 0;
64 | }
65 | ```
66 | 
67 |
68 | ## raygui controls
69 |
70 | ### basic controls
71 | ```
72 | Label | Button | LabelButton | Toggle | ToggleGroup | ToggleSlider
73 | CheckBox | ComboBox | DropdownBox | TextBox | ValueBox | Spinner
74 | Slider | SliderBar | ProgressBar | StatusBar | DummyRec | Grid
75 | ```
76 | ### container/separator controls
77 | ```
78 | WindowBox | GroupBox | Line | Panel | ScrollPanel | TabBar
79 | ```
80 | ### advanced controls
81 | ```
82 | ListView | ColorPicker | MessageBox | TextInputBox
83 | ```
84 |
85 |
86 | ## raygui styles
87 |
88 | `raygui` comes with a [default](styles/default) style automatically loaded at runtime:
89 |
90 | 
91 |
92 | Some additional styles are also provided for convenience, just check [styles directory](styles) for details:
93 |
94 | 
95 |
96 | Custom styles can also be created very easily using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool.
97 |
98 | Styles can be loaded at runtime using raygui `GuiLoadStyle()` function. Simple and easy-to-use.
99 |
100 | ## raygui icons
101 |
102 | `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`.
103 |
104 |
105 |
106 | To use any of those icons just prefix the *#iconId#* number to **any text** written within `raygui` controls:
107 | ```c
108 | if (GuiButton(rec, "#05#Open Image")) { /* ACTION */ }
109 | ```
110 | It's also possible to use the provided `GuiIconText()` function to prefix it automatically, using a clearer identifier (defined in `raygui.h`).
111 | ```c
112 | if (GuiButton(rec, GuiIconText(RICON_FILE_OPEN, "Open Image"))) { /* ACTION */ }
113 | ```
114 | Provided set of icons can be reviewed and customized using [rGuiIcons](https://raylibtech.itch.io/rguiicons) tool.
115 |
116 | ## raygui support tools
117 |
118 | - [**rGuiStyler**](https://raylibtech.itch.io/rguistyler) - A simple and easy-to-use raygui styles editor.
119 |
120 | 
121 |
122 | - [**rGuiIcons**](https://raylibtech.itch.io/rguiicons) - A simple and easy-to-use raygui icons editor.
123 |
124 | 
125 |
126 | - [**rGuiLayout**](https://raylibtech.itch.io/rguilayout) - A simple and easy-to-use raygui layouts editor.
127 |
128 | 
129 |
130 | ## building
131 |
132 | `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:
133 |
134 | - **Windows (MinGW, GCC)**
135 | ```
136 | copy src/raygui.h src/raygui.c
137 | 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
138 | ```
139 |
140 | - **Windows (MSVC)**
141 | ```
142 | copy src\raygui.h src\raygui.c
143 | cl /O2 /I../raylib/src/ /D_USRDLL /D_WINDLL /DRAYGUI_IMPLEMENTATION /DBUILD_LIBTYPE_SHARED src/raygui.c /LD /Feraygui.dll /link /LIBPATH ../raylib/build/raylib/Release/raylib.lib /subsystem:windows /machine:x64
144 | ```
145 |
146 | - **Linux (GCC)**
147 | ```
148 | mv src/raygui.h src/raygui.c
149 | gcc -o raygui.so src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -lraylib -lGL -lm -lpthread -ldl -lrt -lX11
150 | mv src/raygui.c src/raygui.h
151 | ```
152 |
153 | - **Mac (clang, homebrew installed raylib)**
154 | ```
155 | cp src/raygui.h src/raygui.c
156 | brew install raylib
157 | gcc -o raygui.dynlib src/raygui.c -shared -fpic -DRAYGUI_IMPLEMENTATION -framework OpenGL -lm -lpthread -ldl $(pkg-config --libs --cflags raylib)
158 | ```
159 |
160 |
161 | ## license
162 |
163 | 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.
164 |
--------------------------------------------------------------------------------
/examples/controls_test_suite/controls_test_suite.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - controls test suite
4 | *
5 | * TEST CONTROLS:
6 | * - GuiDropdownBox()
7 | * - GuiCheckBox()
8 | * - GuiSpinner()
9 | * - GuiValueBox()
10 | * - GuiTextBox()
11 | * - GuiButton()
12 | * - GuiComboBox()
13 | * - GuiListView()
14 | * - GuiToggleGroup()
15 | * - GuiColorPicker()
16 | * - GuiSlider()
17 | * - GuiSliderBar()
18 | * - GuiProgressBar()
19 | * - GuiColorBarAlpha()
20 | * - GuiScrollPanel()
21 | *
22 | *
23 | * DEPENDENCIES:
24 | * raylib 4.5 - Windowing/input management and drawing
25 | * raygui 3.5 - Immediate-mode GUI controls with custom styling and icons
26 | *
27 | * COMPILATION (Windows - MinGW):
28 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
29 | *
30 | * LICENSE: zlib/libpng
31 | *
32 | * Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
33 | *
34 | **********************************************************************************************/
35 |
36 | #include "raylib.h"
37 |
38 | //#define RAYGUI_DEBUG_RECS_BOUNDS
39 | //#define RAYGUI_DEBUG_TEXT_BOUNDS
40 |
41 | #define RAYGUI_IMPLEMENTATION
42 | //#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory
43 | //#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool
44 | #include "../../src/raygui.h"
45 |
46 | // raygui embedded styles
47 | #include "../styles/style_cyber.h" // raygui style: cyber
48 | #include "../styles/style_jungle.h" // raygui style: jungle
49 | #include "../styles/style_lavanda.h" // raygui style: lavanda
50 | #include "../styles/style_dark.h" // raygui style: dark
51 | #include "../styles/style_bluish.h" // raygui style: bluish
52 | #include "../styles/style_terminal.h" // raygui style: terminal
53 | #include "../styles/style_candy.h"
54 | #include "../styles/style_cherry.h"
55 | #include "../styles/style_ashes.h"
56 | #include "../styles/style_enefete.h"
57 | #include "../styles/style_sunny.h"
58 | #include "../styles/style_amber.h"
59 |
60 | //------------------------------------------------------------------------------------
61 | // Program main entry point
62 | //------------------------------------------------------------------------------------
63 | int main()
64 | {
65 | // Initialization
66 | //---------------------------------------------------------------------------------------
67 | const int screenWidth = 960;
68 | const int screenHeight = 560;
69 |
70 | InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
71 | SetExitKey(0);
72 |
73 | // GUI controls initialization
74 | //----------------------------------------------------------------------------------
75 | int dropdownBox000Active = 0;
76 | bool dropDown000EditMode = false;
77 |
78 | int dropdownBox001Active = 0;
79 | bool dropDown001EditMode = false;
80 |
81 | int spinner001Value = 0;
82 | bool spinnerEditMode = false;
83 |
84 | int valueBox002Value = 0;
85 | bool valueBoxEditMode = false;
86 |
87 | char textBoxText[64] = "Text box";
88 | bool textBoxEditMode = false;
89 |
90 | char textBoxMultiText[1024] = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.\n\nDuis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.\n\nThisisastringlongerthanexpectedwithoutspacestotestcharbreaksforthosecases,checkingifworkingasexpected.\n\nExcepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.";
91 | bool textBoxMultiEditMode = false;
92 |
93 | int listViewScrollIndex = 0;
94 | int listViewActive = -1;
95 |
96 | int listViewExScrollIndex = 0;
97 | int listViewExActive = 2;
98 | int listViewExFocus = -1;
99 | const char *listViewExList[8] = { "This", "is", "a", "list view", "with", "disable", "elements", "amazing!" };
100 |
101 | Color colorPickerValue = RED;
102 |
103 | float sliderValue = 50.0f;
104 | float sliderBarValue = 60;
105 | float progressValue = 0.1f;
106 |
107 | bool forceSquaredChecked = false;
108 |
109 | float alphaValue = 0.5f;
110 |
111 | //int comboBoxActive = 1;
112 | int visualStyleActive = 0;
113 | int prevVisualStyleActive = 0;
114 |
115 | int toggleGroupActive = 0;
116 | int toggleSliderActive = 0;
117 |
118 | Vector2 viewScroll = { 0, 0 };
119 | //----------------------------------------------------------------------------------
120 |
121 | // Custom GUI font loading
122 | //Font font = LoadFontEx("fonts/rainyhearts16.ttf", 12, 0, 0);
123 | //GuiSetFont(font);
124 |
125 | bool exitWindow = false;
126 | bool showMessageBox = false;
127 |
128 | char textInput[256] = { 0 };
129 | char textInputFileName[256] = { 0 };
130 | bool showTextInputBox = false;
131 |
132 | float alpha = 1.0f;
133 |
134 | // DEBUG: Testing how those two properties affect all controls!
135 | //GuiSetStyle(DEFAULT, TEXT_PADDING, 0);
136 | //GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
137 |
138 | SetTargetFPS(60);
139 | //--------------------------------------------------------------------------------------
140 |
141 | // Main game loop
142 | while (!exitWindow) // Detect window close button or ESC key
143 | {
144 | // Update
145 | //----------------------------------------------------------------------------------
146 | exitWindow = WindowShouldClose();
147 |
148 | if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
149 |
150 | if (IsKeyDown(KEY_LEFT_CONTROL) && IsKeyPressed(KEY_S)) showTextInputBox = true;
151 |
152 | if (IsFileDropped())
153 | {
154 | FilePathList droppedFiles = LoadDroppedFiles();
155 |
156 | if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]);
157 |
158 | UnloadDroppedFiles(droppedFiles); // Clear internal buffers
159 | }
160 |
161 | //alpha -= 0.002f;
162 | if (alpha < 0.0f) alpha = 0.0f;
163 | if (IsKeyPressed(KEY_SPACE)) alpha = 1.0f;
164 |
165 | GuiSetAlpha(alpha);
166 |
167 | //progressValue += 0.002f;
168 | if (IsKeyPressed(KEY_LEFT)) progressValue -= 0.1f;
169 | else if (IsKeyPressed(KEY_RIGHT)) progressValue += 0.1f;
170 | if (progressValue > 1.0f) progressValue = 1.0f;
171 | else if (progressValue < 0.0f) progressValue = 0.0f;
172 |
173 | if (visualStyleActive != prevVisualStyleActive)
174 | {
175 | GuiLoadStyleDefault();
176 |
177 | switch (visualStyleActive)
178 | {
179 | case 0: break; // Default style
180 | case 1: GuiLoadStyleJungle(); break;
181 | case 2: GuiLoadStyleLavanda(); break;
182 | case 3: GuiLoadStyleDark(); break;
183 | case 4: GuiLoadStyleBluish(); break;
184 | case 5: GuiLoadStyleCyber(); break;
185 | case 6: GuiLoadStyleTerminal(); break;
186 | case 7: GuiLoadStyleCandy(); break;
187 | case 8: GuiLoadStyleCherry(); break;
188 | case 9: GuiLoadStyleAshes(); break;
189 | case 10: GuiLoadStyleEnefete(); break;
190 | case 11: GuiLoadStyleSunny(); break;
191 | case 12: GuiLoadStyleAmber(); break;
192 | default: break;
193 | }
194 |
195 | GuiSetStyle(LABEL, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
196 |
197 | prevVisualStyleActive = visualStyleActive;
198 | }
199 | //----------------------------------------------------------------------------------
200 |
201 | // Draw
202 | //----------------------------------------------------------------------------------
203 | BeginDrawing();
204 |
205 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
206 |
207 | // raygui: controls drawing
208 | //----------------------------------------------------------------------------------
209 | // Check all possible events that require GuiLock
210 | if (dropDown000EditMode || dropDown001EditMode) GuiLock();
211 |
212 | // First GUI column
213 | //GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
214 | GuiCheckBox((Rectangle){ 25, 108, 15, 15 }, "FORCE CHECK!", &forceSquaredChecked);
215 |
216 | GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
217 | //GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
218 | if (GuiSpinner((Rectangle){ 25, 135, 125, 30 }, NULL, &spinner001Value, 0, 100, spinnerEditMode)) spinnerEditMode = !spinnerEditMode;
219 | if (GuiValueBox((Rectangle){ 25, 175, 125, 30 }, NULL, &valueBox002Value, 0, 100, valueBoxEditMode)) valueBoxEditMode = !valueBoxEditMode;
220 | GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
221 | if (GuiTextBox((Rectangle){ 25, 215, 125, 30 }, textBoxText, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
222 |
223 | GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
224 |
225 | if (GuiButton((Rectangle){ 25, 255, 125, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"))) showTextInputBox = true;
226 |
227 | GuiGroupBox((Rectangle){ 25, 310, 125, 150 }, "STATES");
228 | //GuiLock();
229 | GuiSetState(STATE_NORMAL); if (GuiButton((Rectangle){ 30, 320, 115, 30 }, "NORMAL")) { }
230 | GuiSetState(STATE_FOCUSED); if (GuiButton((Rectangle){ 30, 355, 115, 30 }, "FOCUSED")) { }
231 | GuiSetState(STATE_PRESSED); if (GuiButton((Rectangle){ 30, 390, 115, 30 }, "#15#PRESSED")) { }
232 | GuiSetState(STATE_DISABLED); if (GuiButton((Rectangle){ 30, 425, 115, 30 }, "DISABLED")) { }
233 | GuiSetState(STATE_NORMAL);
234 | //GuiUnlock();
235 |
236 | GuiComboBox((Rectangle){ 25, 480, 125, 30 }, "default;Jungle;Lavanda;Dark;Bluish;Cyber;Terminal;Candy;Cherry;Ashes;Enefete;Sunny;Amber", &visualStyleActive);
237 |
238 | // NOTE: GuiDropdownBox must draw after any other control that can be covered on unfolding
239 | GuiUnlock();
240 | GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 4);
241 | GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
242 | if (GuiDropdownBox((Rectangle){ 25, 65, 125, 30 }, "#01#ONE;#02#TWO;#03#THREE;#04#FOUR", &dropdownBox001Active, dropDown001EditMode)) dropDown001EditMode = !dropDown001EditMode;
243 | GuiSetStyle(DROPDOWNBOX, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
244 | GuiSetStyle(DROPDOWNBOX, TEXT_PADDING, 0);
245 |
246 | if (GuiDropdownBox((Rectangle){ 25, 25, 125, 30 }, "ONE;TWO;THREE", &dropdownBox000Active, dropDown000EditMode)) dropDown000EditMode = !dropDown000EditMode;
247 |
248 | // Second GUI column
249 | //GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 1);
250 | GuiListView((Rectangle){ 165, 25, 140, 124 }, "Charmander;Bulbasaur;#18#Squirtel;Pikachu;Eevee;Pidgey", &listViewScrollIndex, &listViewActive);
251 | GuiListViewEx((Rectangle){ 165, 162, 140, 184 }, listViewExList, 8, &listViewExScrollIndex, &listViewExActive, &listViewExFocus);
252 | GuiSetStyle(LISTVIEW, LIST_ITEMS_BORDER_NORMAL, 0);
253 |
254 | //GuiToggle((Rectangle){ 165, 400, 140, 25 }, "#1#ONE", &toggleGroupActive);
255 | GuiToggleGroup((Rectangle){ 165, 360, 140, 24 }, "#1#ONE\n#3#TWO\n#8#THREE\n#23#", &toggleGroupActive);
256 | //GuiDisable();
257 | GuiSetStyle(SLIDER, SLIDER_PADDING, 2);
258 | GuiToggleSlider((Rectangle){ 165, 480, 140, 30 }, "ON;OFF", &toggleSliderActive);
259 | GuiSetStyle(SLIDER, SLIDER_PADDING, 0);
260 |
261 | // Third GUI column
262 | GuiPanel((Rectangle){ 320, 25, 225, 140 }, "Panel Info");
263 | GuiColorPicker((Rectangle){ 320, 185, 196, 192 }, NULL, &colorPickerValue);
264 |
265 | //GuiDisable();
266 | GuiSlider((Rectangle){ 355, 400, 165, 20 }, "TEST", TextFormat("%2.2f", sliderValue), &sliderValue, -50, 100);
267 | GuiSliderBar((Rectangle){ 320, 430, 200, 20 }, NULL, TextFormat("%i", (int)sliderBarValue), &sliderBarValue, 0, 100);
268 |
269 | GuiProgressBar((Rectangle){ 320, 460, 200, 20 }, NULL, TextFormat("%i%%", (int)(progressValue*100)), &progressValue, 0.0f, 1.0f);
270 | GuiEnable();
271 |
272 | // NOTE: View rectangle could be used to perform some scissor test
273 | Rectangle view = { 0 };
274 | GuiScrollPanel((Rectangle){ 560, 25, 102, 354 }, NULL, (Rectangle){ 560, 25, 300, 1200 }, &viewScroll, &view);
275 |
276 | Vector2 mouseCell = { 0 };
277 | GuiGrid((Rectangle) { 560, 25 + 180 + 195, 100, 120 }, NULL, 20, 3, &mouseCell);
278 |
279 | GuiColorBarAlpha((Rectangle){ 320, 490, 200, 30 }, NULL, &alphaValue);
280 |
281 | GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_TOP); // WARNING: Word-wrap does not work as expected in case of no-top alignment
282 | GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_WORD); // WARNING: If wrap mode enabled, text editing is not supported
283 | if (GuiTextBox((Rectangle){ 678, 25, 258, 492 }, textBoxMultiText, 1024, textBoxMultiEditMode)) textBoxMultiEditMode = !textBoxMultiEditMode;
284 | GuiSetStyle(DEFAULT, TEXT_WRAP_MODE, TEXT_WRAP_NONE);
285 | GuiSetStyle(DEFAULT, TEXT_ALIGNMENT_VERTICAL, TEXT_ALIGN_MIDDLE);
286 |
287 | GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_LEFT);
288 | GuiStatusBar((Rectangle){ 0, (float)GetScreenHeight() - 20, (float)GetScreenWidth(), 20 }, "This is a status bar");
289 | GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
290 | //GuiSetStyle(STATUSBAR, TEXT_INDENTATION, 20);
291 |
292 | if (showMessageBox)
293 | {
294 | DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
295 | int result = GuiMessageBox((Rectangle){ (float)GetScreenWidth()/2 - 125, (float)GetScreenHeight()/2 - 50, 250, 100 }, GuiIconText(ICON_EXIT, "Close Window"), "Do you really want to exit?", "Yes;No");
296 |
297 | if ((result == 0) || (result == 2)) showMessageBox = false;
298 | else if (result == 1) exitWindow = true;
299 | }
300 |
301 | if (showTextInputBox)
302 | {
303 | DrawRectangle(0, 0, GetScreenWidth(), GetScreenHeight(), Fade(RAYWHITE, 0.8f));
304 | int result = GuiTextInputBox((Rectangle){ (float)GetScreenWidth()/2 - 120, (float)GetScreenHeight()/2 - 60, 240, 140 }, GuiIconText(ICON_FILE_SAVE, "Save file as..."), "Introduce output file name:", "Ok;Cancel", textInput, 255, NULL);
305 |
306 | if (result == 1)
307 | {
308 | // TODO: Validate textInput value and save
309 |
310 | TextCopy(textInputFileName, textInput);
311 | }
312 |
313 | if ((result == 0) || (result == 1) || (result == 2))
314 | {
315 | showTextInputBox = false;
316 | TextCopy(textInput, "\0");
317 | }
318 | }
319 | //----------------------------------------------------------------------------------
320 |
321 | EndDrawing();
322 | //----------------------------------------------------------------------------------
323 | }
324 |
325 | // De-Initialization
326 | //--------------------------------------------------------------------------------------
327 | CloseWindow(); // Close window and OpenGL context
328 | //--------------------------------------------------------------------------------------
329 |
330 | return 0;
331 | }
332 |
--------------------------------------------------------------------------------
/examples/controls_test_suite/controls_test_suite.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/controls_test_suite/controls_test_suite.png
--------------------------------------------------------------------------------
/examples/controls_test_suite/gui_value_box_float.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - controls test suite
4 | *
5 | * COMPILATION (Windows - MinGW):
6 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
7 | *
8 | * LICENSE: zlib/libpng
9 | *
10 | * Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
11 | *
12 | **********************************************************************************************/
13 |
14 | #include "raylib.h"
15 |
16 | #define RAYGUI_IMPLEMENTATION
17 | #include "../../src/raygui.h"
18 |
19 | #include
20 |
21 | //------------------------------------------------------------------------------------
22 | // Program main entry point
23 | //------------------------------------------------------------------------------------
24 | int main()
25 | {
26 | // Initialization
27 | //---------------------------------------------------------------------------------------
28 | const int screenWidth = 800;
29 | const int screenHeight = 450;
30 |
31 | InitWindow(screenWidth, screenHeight, "raygui - controls test suite");
32 |
33 | float valueBoxValue = 0.0f;
34 | bool valueBoxEditMode = false;
35 | char valueBoxTextValue[32] = { 0 };
36 |
37 | SetTargetFPS(60);
38 | //--------------------------------------------------------------------------------------
39 |
40 | // Main game loop
41 | while (!WindowShouldClose()) // Detect window close button or ESC key
42 | {
43 | // Update
44 | //----------------------------------------------------------------------------------
45 |
46 | //----------------------------------------------------------------------------------
47 |
48 | // Draw
49 | //----------------------------------------------------------------------------------
50 | BeginDrawing();
51 |
52 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
53 |
54 | if (GuiValueBoxFloat((Rectangle){ 25, 175, 125, 30 }, NULL, valueBoxTextValue, &valueBoxValue, valueBoxEditMode))
55 | {
56 | valueBoxEditMode = !valueBoxEditMode;
57 |
58 | printf("Value: %2.2f\n", valueBoxValue);
59 | }
60 |
61 | EndDrawing();
62 | //----------------------------------------------------------------------------------
63 | }
64 |
65 | // De-Initialization
66 | //--------------------------------------------------------------------------------------
67 | CloseWindow(); // Close window and OpenGL context
68 | //--------------------------------------------------------------------------------------
69 |
70 | return 0;
71 | }
72 |
--------------------------------------------------------------------------------
/examples/custom_file_dialog/cat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/custom_file_dialog/cat.png
--------------------------------------------------------------------------------
/examples/custom_file_dialog/custom_file_dialog.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - custom file dialog to load image
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.0 - Windowing/input management and drawing.
7 | * raygui 3.0 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
15 | *
16 | **********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | #include "../../src/raygui.h"
22 |
23 | #undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
24 |
25 | #define GUI_WINDOW_FILE_DIALOG_IMPLEMENTATION
26 | #include "gui_window_file_dialog.h"
27 |
28 | //------------------------------------------------------------------------------------
29 | // Program main entry point
30 | //------------------------------------------------------------------------------------
31 | int main()
32 | {
33 | // Initialization
34 | //---------------------------------------------------------------------------------------
35 | int screenWidth = 800;
36 | int screenHeight = 560;
37 |
38 | InitWindow(screenWidth, screenHeight, "raygui - custom modal dialog");
39 | SetExitKey(0);
40 |
41 | // Custom file dialog
42 | GuiWindowFileDialogState fileDialogState = InitGuiWindowFileDialog(GetWorkingDirectory());
43 |
44 | bool exitWindow = false;
45 |
46 | char fileNameToLoad[512] = { 0 };
47 |
48 | Texture texture = { 0 };
49 |
50 | SetTargetFPS(60);
51 | //--------------------------------------------------------------------------------------
52 |
53 | // Main game loop
54 | while (!exitWindow) // Detect window close button or ESC key
55 | {
56 | // Update
57 | //----------------------------------------------------------------------------------
58 | exitWindow = WindowShouldClose();
59 |
60 | if (fileDialogState.SelectFilePressed)
61 | {
62 | // Load image file (if supported extension)
63 | if (IsFileExtension(fileDialogState.fileNameText, ".png"))
64 | {
65 | strcpy(fileNameToLoad, TextFormat("%s" PATH_SEPERATOR "%s", fileDialogState.dirPathText, fileDialogState.fileNameText));
66 | UnloadTexture(texture);
67 | texture = LoadTexture(fileNameToLoad);
68 | }
69 |
70 | fileDialogState.SelectFilePressed = false;
71 | }
72 | //----------------------------------------------------------------------------------
73 |
74 | // Draw
75 | //----------------------------------------------------------------------------------
76 | BeginDrawing();
77 |
78 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
79 |
80 | DrawTexture(texture, GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, WHITE);
81 | DrawRectangleLines(GetScreenWidth()/2 - texture.width/2, GetScreenHeight()/2 - texture.height/2 - 5, texture.width, texture.height, BLACK);
82 |
83 | DrawText(fileNameToLoad, 208, GetScreenHeight() - 20, 10, GRAY);
84 |
85 | // raygui: controls drawing
86 | //----------------------------------------------------------------------------------
87 | if (fileDialogState.windowActive) GuiLock();
88 |
89 | if (GuiButton((Rectangle){ 20, 20, 140, 30 }, GuiIconText(ICON_FILE_OPEN, "Open Image"))) fileDialogState.windowActive = true;
90 |
91 | GuiUnlock();
92 |
93 | // GUI: Dialog Window
94 | //--------------------------------------------------------------------------------
95 | GuiWindowFileDialog(&fileDialogState);
96 | //--------------------------------------------------------------------------------
97 |
98 | //----------------------------------------------------------------------------------
99 |
100 | EndDrawing();
101 | //----------------------------------------------------------------------------------
102 | }
103 |
104 | // De-Initialization
105 | //--------------------------------------------------------------------------------------
106 | UnloadTexture(texture); // Unload texture
107 |
108 | CloseWindow(); // Close window and OpenGL context
109 | //--------------------------------------------------------------------------------------
110 |
111 | return 0;
112 | }
113 |
--------------------------------------------------------------------------------
/examples/custom_input_box/custom_input_box.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - basic calculator app with custom input box for float values
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.5 - Windowing/input management and drawing.
7 | * raygui 3.5 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | **********************************************************************************************/
13 |
14 | #include "raylib.h"
15 |
16 | #define RAYGUI_IMPLEMENTATION
17 | #include "../../src/raygui.h"
18 |
19 | int guiFloatingPointIndex = 0; // Global variable shared by all GuiFloatBox()
20 |
21 | int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode); // Custom input box that works with float values. Basicly GuiValueBox(), but with some changes
22 |
23 | int main()
24 | {
25 | InitWindow(250, 100, "Basic calculator");
26 |
27 | // General variables
28 | SetTargetFPS(60);
29 |
30 | float variableA = 0.0f;
31 | float variableB = 0.0f;
32 | float result = 0.0f;
33 | char operation[2];
34 | operation[0] = '+';
35 | operation[1] = '\0';
36 |
37 | bool variableAMode = false;
38 | bool variableBMode = false;
39 | //--------------------------------------------------------------------------------------
40 |
41 | // Main game loop
42 | while (!WindowShouldClose())
43 | {
44 | // Draw
45 | //----------------------------------------------------------------------------------
46 | BeginDrawing();
47 |
48 | ClearBackground(RAYWHITE);
49 |
50 | if (GuiFloatBox((Rectangle){ 10, 10, 100, 20 }, NULL, &variableA, -1000000.0, 1000000.0, variableAMode)) variableAMode = !variableAMode;
51 | if (GuiFloatBox((Rectangle){ 140, 10, 100, 20 }, NULL, &variableB, -1000000.0, 1000000.0, variableBMode)) variableBMode = !variableBMode;
52 |
53 | if (GuiButton((Rectangle){ 10, 70, 50, 20 }, "+"))
54 | {
55 | result = variableA + variableB;
56 | operation[0] = '+';
57 | }
58 | if (GuiButton((Rectangle){ 70, 70, 50, 20 }, "-"))
59 | {
60 | result = variableA - variableB;
61 | operation[0] = '-';
62 | }
63 | if (GuiButton((Rectangle){ 130, 70, 50, 20 }, "*"))
64 | {
65 | result = variableA * variableB;
66 | operation[0] = '*';
67 | }
68 | if (GuiButton((Rectangle){ 190, 70, 50, 20 }, "/"))
69 | {
70 | result = variableA / variableB;
71 | operation[0] = '/';
72 | }
73 |
74 | DrawText(operation, 123, 15, 10, DARKGRAY);
75 |
76 | GuiFloatBox((Rectangle){ 55, 40, 135, 20 }, "= ", &result, -2000000.0, 2000000.0, false);
77 |
78 | EndDrawing();
79 | //----------------------------------------------------------------------------------
80 | }
81 |
82 | CloseWindow();
83 | }
84 |
85 | // Float Box control, updates input text with numbers
86 | int GuiFloatBox(Rectangle bounds, const char* text, float* value, int minValue, int maxValue, bool editMode)
87 | {
88 | #if !defined(RAYGUI_VALUEBOX_MAX_CHARS)
89 | #define RAYGUI_VALUEBOX_MAX_CHARS 32
90 | #endif
91 |
92 | int result = 0;
93 | GuiState state = guiState;
94 |
95 | char textValue[RAYGUI_VALUEBOX_MAX_CHARS + 1] = "\0";
96 |
97 | Rectangle textBounds = { 0 };
98 | if (text != NULL)
99 | {
100 | textBounds.width = (float)GetTextWidth(text) + 2;
101 | textBounds.height = (float)GuiGetStyle(DEFAULT, TEXT_SIZE);
102 | textBounds.x = bounds.x + bounds.width + GuiGetStyle(VALUEBOX, TEXT_PADDING);
103 | textBounds.y = bounds.y + bounds.height / 2.0f - GuiGetStyle(DEFAULT, TEXT_SIZE) / 2.0f;
104 | if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_LEFT) textBounds.x = bounds.x - textBounds.width - GuiGetStyle(VALUEBOX, TEXT_PADDING);
105 | }
106 |
107 | // Update control
108 | //--------------------------------------------------------------------
109 | if ((state != STATE_DISABLED) && !guiLocked && !guiControlExclusiveMode)
110 | {
111 | Vector2 mousePoint = GetMousePosition();
112 |
113 | if (*value >= 0) sprintf(textValue, "+%.3f", *value);
114 | else sprintf(textValue, "%.3f", *value);
115 |
116 | bool valueHasChanged = false;
117 |
118 | int keyCount = (int)strlen(textValue) - guiFloatingPointIndex;
119 |
120 | if (editMode)
121 | {
122 | state = STATE_PRESSED;
123 |
124 | // Only allow keys in range [48..57]
125 | if (keyCount < RAYGUI_VALUEBOX_MAX_CHARS)
126 | {
127 | if (GetTextWidth(textValue) < bounds.width)
128 | {
129 | int key = GetCharPressed();
130 | if ((key >= 48) && (key <= 57) && guiFloatingPointIndex)
131 | {
132 | if (guiFloatingPointIndex && guiFloatingPointIndex != 4) guiFloatingPointIndex--;
133 |
134 | textValue[keyCount] = (char)key;
135 | textValue[++keyCount] = '\0';
136 | valueHasChanged = true;
137 | }
138 | }
139 | }
140 |
141 | // Delete text
142 | if (keyCount > 0)
143 | {
144 | if (IsKeyPressed(KEY_BACKSPACE))
145 | {
146 | if (guiFloatingPointIndex < 4) guiFloatingPointIndex++;
147 |
148 | keyCount--;
149 | textValue[keyCount] = '\0';
150 | valueHasChanged = true;
151 | }
152 | }
153 |
154 | // Change sign
155 | if (IsKeyPressed(KEY_MINUS))
156 | {
157 | if (textValue[0] == '+') textValue[0] = '-';
158 | else if (textValue[0] == '-') textValue[0] = '+';
159 | valueHasChanged = true;
160 | }
161 |
162 | // Add decimal separator
163 | if ((IsKeyPressed(KEY_COMMA) || IsKeyPressed(KEY_PERIOD)) && guiFloatingPointIndex == 4)
164 | {
165 | guiFloatingPointIndex--;
166 | valueHasChanged = true;
167 | }
168 |
169 | if (valueHasChanged)
170 | {
171 | *value = atof(textValue);
172 | }
173 |
174 | if (IsKeyPressed(KEY_ENTER) || (!CheckCollisionPointRec(mousePoint, bounds) && IsMouseButtonPressed(MOUSE_LEFT_BUTTON)))
175 | {
176 | guiFloatingPointIndex = 0;
177 | result = 1;
178 | }
179 | }
180 | else
181 | {
182 | if (*value > maxValue) *value = maxValue;
183 | else if (*value < minValue) *value = minValue;
184 |
185 | if (CheckCollisionPointRec(mousePoint, bounds))
186 | {
187 | state = STATE_FOCUSED;
188 | if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON)) result = 1;
189 | }
190 | }
191 | }
192 | //--------------------------------------------------------------------
193 |
194 | // Draw control
195 | //--------------------------------------------------------------------
196 | Color baseColor = BLANK;
197 | sprintf(textValue, "%.3f", *value);
198 |
199 | if (state == STATE_PRESSED)
200 | {
201 | baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED));
202 | textValue[(int)strlen(textValue) - guiFloatingPointIndex] = '\0';
203 | }
204 | else if (state == STATE_DISABLED) baseColor = GetColor(GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED));
205 |
206 | // WARNING: BLANK color does not work properly with Fade()
207 | GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER + (state * 3))), guiAlpha), baseColor);
208 | GuiDrawText(textValue, GetTextBounds(VALUEBOX, bounds), TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(VALUEBOX, TEXT + (state * 3))), guiAlpha));
209 |
210 | // Draw cursor
211 | if (editMode)
212 | {
213 | // NOTE: ValueBox internal text is always centered
214 | Rectangle cursor = { bounds.x + GetTextWidth(textValue) / 2.0f + bounds.width / 2.0f + 1, bounds.y + 2.0f * GuiGetStyle(VALUEBOX, BORDER_WIDTH), 4, bounds.height - 4 * GuiGetStyle(VALUEBOX, BORDER_WIDTH) };
215 | GuiDrawRectangle(cursor, 0, BLANK, Fade(GetColor(GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED)), guiAlpha));
216 | }
217 |
218 | // Draw text label if provided
219 | GuiDrawText(text, textBounds, (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == TEXT_ALIGN_RIGHT) ? TEXT_ALIGN_LEFT : TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(LABEL, TEXT + (state * 3))), guiAlpha));
220 | //--------------------------------------------------------------------
221 |
222 | return result;
223 | }
224 |
--------------------------------------------------------------------------------
/examples/floating_window/floating_window.c:
--------------------------------------------------------------------------------
1 | #include "raylib.h"
2 |
3 | #define RAYGUI_IMPLEMENTATION
4 | #include "../../src/raygui.h"
5 |
6 | #include "../../styles/dark/style_dark.h"
7 |
8 | static Vector2 window_position = { 10, 10 };
9 | static Vector2 window_size = { 200, 400 };
10 | static bool minimized = false;
11 | static bool moving = false;
12 | static bool resizing = false;
13 | static Vector2 scroll;
14 |
15 | static Vector2 window2_position = { 250, 10 };
16 | static Vector2 window2_size = { 200, 400 };
17 | static bool minimized2 = false;
18 | static bool moving2 = false;
19 | static bool resizing2 = false;
20 | static Vector2 scroll2;
21 |
22 | void GuiWindowFloating(Vector2 *position, Vector2 *size, bool *minimized, bool *moving, bool *resizing, void (*draw_content)(Vector2, Vector2), Vector2 content_size, Vector2 *scroll, const char* title) {
23 | #if !defined(RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT)
24 | #define RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT 24
25 | #endif
26 |
27 | #if !defined(RAYGUI_WINDOW_CLOSEBUTTON_SIZE)
28 | #define RAYGUI_WINDOW_CLOSEBUTTON_SIZE 18
29 | #endif
30 |
31 | int close_title_size_delta_half = (RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - RAYGUI_WINDOW_CLOSEBUTTON_SIZE) / 2;
32 |
33 | // window movement and resize input and collision check
34 | if(IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !*moving && !*resizing) {
35 | Vector2 mouse_position = GetMousePosition();
36 |
37 | Rectangle title_collision_rect = { position->x, position->y, size->x - (RAYGUI_WINDOW_CLOSEBUTTON_SIZE + close_title_size_delta_half), RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT };
38 | Rectangle resize_collision_rect = { position->x + size->x - 20, position->y + size->y - 20, 20, 20 };
39 |
40 | if(CheckCollisionPointRec(mouse_position, title_collision_rect)) {
41 | *moving = true;
42 | } else if(!*minimized && CheckCollisionPointRec(mouse_position, resize_collision_rect)) {
43 | *resizing = true;
44 | }
45 | }
46 |
47 | // window movement and resize update
48 | if(*moving) {
49 | Vector2 mouse_delta = GetMouseDelta();
50 | position->x += mouse_delta.x;
51 | position->y += mouse_delta.y;
52 |
53 | if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
54 | *moving = false;
55 |
56 | // clamp window position keep it inside the application area
57 | if(position->x < 0) position->x = 0;
58 | else if(position->x > GetScreenWidth() - size->x) position->x = GetScreenWidth() - size->x;
59 | if(position->y < 0) position->y = 0;
60 | else if(position->y > GetScreenHeight()) position->y = GetScreenHeight() - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT;
61 | }
62 |
63 | } else if(*resizing) {
64 | Vector2 mouse = GetMousePosition();
65 | if (mouse.x > position->x)
66 | size->x = mouse.x - position->x;
67 | if (mouse.y > position->y)
68 | size->y = mouse.y - position->y;
69 |
70 | // clamp window size to an arbitrary minimum value and the window size as the maximum
71 | if(size->x < 100) size->x = 100;
72 | else if(size->x > GetScreenWidth()) size->x = GetScreenWidth();
73 | if(size->y < 100) size->y = 100;
74 | else if(size->y > GetScreenHeight()) size->y = GetScreenHeight();
75 |
76 | if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) {
77 | *resizing = false;
78 | }
79 | }
80 |
81 | // window and content drawing with scissor and scroll area
82 | if(*minimized) {
83 | GuiStatusBar((Rectangle){ position->x, position->y, size->x, RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT }, title);
84 |
85 | if (GuiButton((Rectangle){ position->x + size->x - RAYGUI_WINDOW_CLOSEBUTTON_SIZE - close_title_size_delta_half,
86 | position->y + close_title_size_delta_half,
87 | RAYGUI_WINDOW_CLOSEBUTTON_SIZE,
88 | RAYGUI_WINDOW_CLOSEBUTTON_SIZE },
89 | "#120#")) {
90 | *minimized = false;
91 | }
92 |
93 | } else {
94 | *minimized = GuiWindowBox((Rectangle) { position->x, position->y, size->x, size->y }, title);
95 |
96 | // scissor and draw content within a scroll panel
97 | if(draw_content != NULL) {
98 | Rectangle scissor = { 0 };
99 | GuiScrollPanel((Rectangle) { position->x, position->y + RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT, size->x, size->y - RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT },
100 | NULL,
101 | (Rectangle) { position->x, position->y, content_size.x, content_size.y },
102 | scroll,
103 | &scissor);
104 |
105 | bool require_scissor = size->x < content_size.x || size->y < content_size.y;
106 |
107 | if(require_scissor) {
108 | BeginScissorMode(scissor.x, scissor.y, scissor.width, scissor.height);
109 | }
110 |
111 | draw_content(*position, *scroll);
112 |
113 | if(require_scissor) {
114 | EndScissorMode();
115 | }
116 | }
117 |
118 | // draw the resize button/icon
119 | GuiDrawIcon(71, position->x + size->x - 20, position->y + size->y - 20, 1, WHITE);
120 | }
121 | }
122 |
123 | static void DrawContent(Vector2 position, Vector2 scroll) {
124 | GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 50 + scroll.y, 100, 25 }, "Button 1");
125 | GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 100 + scroll.y, 100, 25 }, "Button 2");
126 | GuiButton((Rectangle) { position.x + 20 + scroll.x, position.y + 150 + scroll.y, 100, 25 }, "Button 3");
127 | GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 200 + scroll.y, 250, 25 }, "A Label");
128 | GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 250 + scroll.y, 250, 25 }, "Another Label");
129 | GuiLabel((Rectangle) { position.x + 20 + scroll.x, position.y + 300 + scroll.y, 250, 25 }, "Yet Another Label");
130 | }
131 |
132 | int main(void) {
133 | InitWindow(960, 560, "raygui - floating window example");
134 | SetTargetFPS(60);
135 | GuiLoadStyleDark();
136 |
137 | while(!WindowShouldClose()) {
138 | BeginDrawing();
139 | ClearBackground(DARKGREEN);
140 | GuiWindowFloating(&window_position, &window_size, &minimized, &moving, &resizing, &DrawContent, (Vector2) { 140, 320 }, &scroll, "Movable & Scalable Window");
141 | GuiWindowFloating(&window2_position, &window2_size, &minimized2, &moving2, &resizing2, &DrawContent, (Vector2) { 140, 320 }, &scroll2, "Another window");
142 | EndDrawing();
143 | }
144 |
145 | CloseWindow();
146 |
147 | return 0;
148 | }
149 |
--------------------------------------------------------------------------------
/examples/image_exporter/image_exporter.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - image exporter
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.0 - Windowing/input management and drawing.
7 | * raygui 3.0 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2015-2024 Ramon Santamaria (@raysan5)
15 | *
16 | ********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | #include "../../src/raygui.h"
22 |
23 | //------------------------------------------------------------------------------------
24 | // Program main entry point
25 | //------------------------------------------------------------------------------------
26 | int main(int argc, char *argv[])
27 | {
28 | // Initialization
29 | //--------------------------------------------------------------------------------------
30 | const int screenWidth = 800;
31 | const int screenHeight = 450;
32 |
33 | InitWindow(screenWidth, screenHeight, "raygui - image exporter");
34 |
35 | // GUI controls initialization
36 | //----------------------------------------------------------------------------------
37 | Rectangle windowBoxRec = { screenWidth/2 - 110, screenHeight/2 - 100, 220, 190 };
38 | bool windowBoxActive = false;
39 |
40 | int fileFormatActive = 0;
41 | char *fileFormatTextList[3] = { "IMAGE (.png)", "DATA (.raw)", "CODE (.h)" };
42 |
43 | int pixelFormatActive = 0;
44 | char *pixelFormatTextList[7] = { "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
45 |
46 | bool textBoxEditMode = false;
47 | char fileName[64] = "untitled";
48 | //--------------------------------------------------------------------------------------
49 |
50 | Image image = { 0 };
51 | Texture2D texture = { 0 };
52 |
53 | bool imageLoaded = false;
54 | float imageScale = 1.0f;
55 | Rectangle imageRec = { 0 };
56 |
57 | bool btnExportPressed = false;
58 |
59 | SetTargetFPS(60);
60 | //--------------------------------------------------------------------------------------
61 |
62 | // Main game loop
63 | while (!WindowShouldClose()) // Detect window close button or ESC key
64 | {
65 | // Update
66 | //----------------------------------------------------------------------------------
67 | if (IsFileDropped())
68 | {
69 | FilePathList droppedFiles = LoadDroppedFiles();
70 |
71 | if (droppedFiles.count == 1)
72 | {
73 | Image imTemp = LoadImage(droppedFiles.paths[0]);
74 |
75 | if (imTemp.data != NULL)
76 | {
77 | UnloadImage(image);
78 | image = imTemp;
79 |
80 | UnloadTexture(texture);
81 | texture = LoadTextureFromImage(image);
82 |
83 | imageLoaded = true;
84 | pixelFormatActive = image.format - 1;
85 |
86 | if (texture.height > texture.width) imageScale = (float)(screenHeight - 100)/(float)texture.height;
87 | else imageScale = (float)(screenWidth - 100)/(float)texture.width;
88 | }
89 | }
90 |
91 | UnloadDroppedFiles(droppedFiles);
92 | }
93 |
94 | if (btnExportPressed)
95 | {
96 | if (imageLoaded)
97 | {
98 | ImageFormat(&image, pixelFormatActive + 1);
99 |
100 | if (fileFormatActive == 0) // PNG
101 | {
102 | if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".png"))) strcat(fileName, ".png\0"); // No extension provided
103 | ExportImage(image, fileName);
104 | }
105 | else if (fileFormatActive == 1) // RAW
106 | {
107 | if ((GetFileExtension(fileName) == NULL) || (!IsFileExtension(fileName, ".raw"))) strcat(fileName, ".raw\0"); // No extension provided
108 |
109 | int dataSize = GetPixelDataSize(image.width, image.height, image.format);
110 |
111 | FILE *rawFile = fopen(fileName, "wb");
112 | fwrite(image.data, 1, dataSize, rawFile);
113 | fclose(rawFile);
114 | }
115 | else if (fileFormatActive == 2) // CODE
116 | {
117 | ExportImageAsCode(image, fileName);
118 | }
119 | }
120 |
121 | windowBoxActive = false;
122 | }
123 |
124 | if (imageLoaded)
125 | {
126 | imageScale += (float)GetMouseWheelMove()*0.05f; // Image scale control
127 | if (imageScale <= 0.1f) imageScale = 0.1f;
128 | else if (imageScale >= 5) imageScale = 5;
129 |
130 | imageRec = (Rectangle){ screenWidth/2 - (float)image.width*imageScale/2,
131 | screenHeight/2 - (float)image.height*imageScale/2,
132 | (float)image.width*imageScale, (float)image.height*imageScale };
133 | }
134 | //----------------------------------------------------------------------------------
135 |
136 | // Draw
137 | //----------------------------------------------------------------------------------
138 | BeginDrawing();
139 |
140 | ClearBackground(RAYWHITE);
141 |
142 | if (texture.id > 0)
143 | {
144 | DrawTextureEx(texture, (Vector2){ screenWidth/2 - (float)texture.width*imageScale/2, screenHeight/2 - (float)texture.height*imageScale/2 }, 0.0f, imageScale, WHITE);
145 |
146 | DrawRectangleLinesEx(imageRec, 1, CheckCollisionPointRec(GetMousePosition(), imageRec) ? RED : DARKGRAY);
147 | DrawText(TextFormat("SCALE: %.2f%%", imageScale*100.0f), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
148 | }
149 | else
150 | {
151 | DrawText("DRAG & DROP YOUR IMAGE!", 350, 200, 10, DARKGRAY);
152 | GuiDisable();
153 | }
154 |
155 | if (GuiButton((Rectangle){ screenWidth - 170, screenHeight - 50, 150, 30 }, "Image Export")) windowBoxActive = true;
156 | GuiEnable();
157 |
158 | // Draw window box: windowBoxName
159 | //-----------------------------------------------------------------------------
160 | if (windowBoxActive)
161 | {
162 | DrawRectangle(0, 0, screenWidth, screenHeight, Fade(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)), 0.7f));
163 | windowBoxActive = !GuiWindowBox((Rectangle){ windowBoxRec.x, windowBoxRec.y, 220, 190 }, "Image Export Options");
164 |
165 | GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 35, 60, 25 }, "File format:");
166 | GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 35, 130, 25 }, TextJoin(fileFormatTextList, 3, ";"), &fileFormatActive);
167 | GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 70, 63, 25 }, "Pixel format:");
168 | GuiComboBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 70, 130, 25 }, TextJoin(pixelFormatTextList, 7, ";"), &pixelFormatActive);
169 | GuiLabel((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 105, 50, 25 }, "File name:");
170 | if (GuiTextBox((Rectangle){ windowBoxRec.x + 80, windowBoxRec.y + 105, 130, 25 }, fileName, 64, textBoxEditMode)) textBoxEditMode = !textBoxEditMode;
171 |
172 | btnExportPressed = GuiButton((Rectangle){ windowBoxRec.x + 10, windowBoxRec.y + 145, 200, 30 }, "Export Image");
173 | }
174 | else btnExportPressed = false;
175 |
176 | if (btnExportPressed) DrawText("Image exported!", 20, screenHeight - 20, 20, RED);
177 | //-----------------------------------------------------------------------------
178 |
179 | EndDrawing();
180 | //----------------------------------------------------------------------------------
181 | }
182 |
183 | // De-Initialization
184 | //--------------------------------------------------------------------------------------
185 | UnloadImage(image);
186 | UnloadTexture(texture);
187 |
188 | CloseWindow(); // Close window and OpenGL context
189 | //--------------------------------------------------------------------------------------
190 |
191 | return 0;
192 | }
193 |
--------------------------------------------------------------------------------
/examples/image_exporter/resources/cat.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_exporter/resources/cat.png
--------------------------------------------------------------------------------
/examples/image_exporter/resources/fudesumi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_exporter/resources/fudesumi.png
--------------------------------------------------------------------------------
/examples/image_exporter/resources/parrots.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_exporter/resources/parrots.png
--------------------------------------------------------------------------------
/examples/image_exporter/resources/scarfy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_exporter/resources/scarfy.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REF.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REF.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV0.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV1.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV2.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV3.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV4.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/design/raw_importer_REV5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/design/raw_importer_REV5.png
--------------------------------------------------------------------------------
/examples/image_importer_raw/image_2x2_RGBA.raw:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/image_importer_raw/image_2x2_RGBA.raw
--------------------------------------------------------------------------------
/examples/image_importer_raw/image_importer_raw.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - image raw importer
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.0 - Windowing/input management and drawing.
7 | * raygui 3.0 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2015-2024 Ramon Santamaria (@raysan5)
15 | *
16 | **********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | #include "../../src/raygui.h"
22 |
23 | #include // Required for: strcpy()
24 | #include // Required for: atoi()
25 | #include // Required for: round()
26 |
27 | //------------------------------------------------------------------------------------
28 | // Program main entry point
29 | //------------------------------------------------------------------------------------
30 | int main()
31 | {
32 | // Initialization
33 | //---------------------------------------------------------------------------------------
34 | const int screenWidth = 800;
35 | const int screenHeight = 600;
36 |
37 | InitWindow(screenWidth, screenHeight, "raygui - image raw importer");
38 |
39 | Texture2D texture = { 0 };
40 |
41 | // GUI controls initialization
42 | //----------------------------------------------------------------------------------
43 | Vector2 windowOffset = { screenWidth/2 - 200/2, screenHeight/2 - 465/2 };
44 |
45 | bool importWindowActive = false;
46 |
47 | int widthValue = 0;
48 | bool widthEditMode = false;
49 | int heightValue = 0;
50 | bool heightEditMode = false;
51 |
52 | int pixelFormatActive = 0;
53 | char *pixelFormatTextList[8] = { "CUSTOM", "GRAYSCALE", "GRAY ALPHA", "R5G6B5", "R8G8B8", "R5G5B5A1", "R4G4B4A4", "R8G8B8A8" };
54 |
55 | int channelsActive = 3;
56 | char *channelsTextList[4] = { "1", "2", "3", "4" };
57 | int bitDepthActive = 0;
58 | char *bitDepthTextList[3] = { "8", "16", "32" };
59 |
60 | int headerSizeValue = 0;
61 | bool headerSizeEditMode = false;
62 | //----------------------------------------------------------------------------------
63 |
64 | // Image file info
65 | int dataSize = 0;
66 | char fileNamePath[256] = "\0";
67 | char fileName[64] = "\0";
68 |
69 | bool btnLoadPressed = false;
70 |
71 | bool imageLoaded = false;
72 | float imageScale = 1.0f;
73 |
74 | SetTargetFPS(60);
75 | //--------------------------------------------------------------------------------------
76 |
77 | // Main game loop
78 | while (!WindowShouldClose()) // Detect window close button or ESC key
79 | {
80 | // Update
81 | //----------------------------------------------------------------------------------
82 | // Check if a file is dropped
83 | if (IsFileDropped())
84 | {
85 | FilePathList droppedFiles = LoadDroppedFiles();
86 |
87 | // Check file extensions for drag-and-drop
88 | if ((droppedFiles.count == 1) && IsFileExtension(droppedFiles.paths[0], ".raw"))
89 | {
90 | FILE *imageFile = fopen(droppedFiles.paths[0], "rb");
91 | fseek(imageFile, 0L, SEEK_END);
92 | dataSize = ftell(imageFile);
93 | fclose(imageFile);
94 |
95 | // NOTE: Returned string is just a pointer to droppedFiles[0],
96 | // we need to make a copy of that data somewhere else: fileName
97 | strcpy(fileNamePath, droppedFiles.paths[0]);
98 | strcpy(fileName, GetFileName(droppedFiles.paths[0]));
99 |
100 | // Try to guess possible raw values
101 | // Let's assume image is square, RGBA, 8 bit per channel
102 | widthValue = round(sqrt(dataSize/4));
103 | heightValue = widthValue;
104 | headerSizeValue = dataSize - widthValue*heightValue*4;
105 | if (headerSizeValue < 0) headerSizeValue = 0;
106 |
107 | importWindowActive = true;
108 | }
109 |
110 | UnloadDroppedFiles(droppedFiles);
111 | }
112 |
113 | // Check if load button has been pressed
114 | if (btnLoadPressed)
115 | {
116 | // Depending on channels and bit depth, select correct pixel format
117 | if ((widthValue != 0) && (heightValue != 0))
118 | {
119 | int format = -1;
120 |
121 | if (pixelFormatActive == 0)
122 | {
123 | int channels = atoi(channelsTextList[channelsActive]);
124 | int bpp = atoi(bitDepthTextList[bitDepthActive]);
125 |
126 | // Select correct format depending on channels and bpp
127 | if (bpp == 8)
128 | {
129 | if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_GRAYSCALE;
130 | else if (channels == 2) format = PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA;
131 | else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8;
132 | else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R8G8B8A8;
133 | }
134 | else if (bpp == 32)
135 | {
136 | if (channels == 1) format = PIXELFORMAT_UNCOMPRESSED_R32;
137 | else if (channels == 2) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
138 | else if (channels == 3) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32;
139 | else if (channels == 4) format = PIXELFORMAT_UNCOMPRESSED_R32G32B32A32;
140 | }
141 | else if (bpp == 16) TraceLog(LOG_WARNING, "Channel bit-depth not supported!");
142 | }
143 | else format = pixelFormatActive;
144 |
145 | if (format != -1)
146 | {
147 | Image image = LoadImageRaw(fileNamePath, widthValue, heightValue, format, headerSizeValue);
148 | texture = LoadTextureFromImage(image);
149 | UnloadImage(image);
150 |
151 | importWindowActive = false;
152 | btnLoadPressed = false;
153 |
154 | if (texture.id > 0)
155 | {
156 | imageLoaded = true;
157 | imageScale = (float)(screenHeight - 100)/texture.height;
158 | }
159 | }
160 | }
161 | }
162 |
163 | if (imageLoaded) imageScale += (float)GetMouseWheelMove(); // Image scale control
164 | //----------------------------------------------------------------------------------
165 |
166 | // Draw
167 | //----------------------------------------------------------------------------------
168 | BeginDrawing();
169 |
170 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
171 |
172 | if (texture.id != 0)
173 | {
174 | DrawTextureEx(texture, (Vector2){ screenWidth/2 - texture.width*imageScale/2, screenHeight/2 - texture.height*imageScale/2 }, 0, imageScale, WHITE);
175 | DrawText(TextFormat("SCALE x%.0f", imageScale), 20, screenHeight - 40, 20, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
176 | }
177 | else DrawText("drag & drop RAW image file", 320, 180, 10, GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
178 |
179 | // raygui: controls drawing
180 | //----------------------------------------------------------------------------------
181 | if (importWindowActive)
182 | {
183 | importWindowActive = !GuiWindowBox((Rectangle){ windowOffset.x + 0, windowOffset.y + 0, 200, 465 }, "Image RAW Import Options");
184 |
185 | GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 30, 65, 20 }, "Import file:");
186 | GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 30, 75, 20 }, fileName);
187 | GuiLabel((Rectangle){ windowOffset.x + 10, windowOffset.y + 50, 65, 20 }, "File size:");
188 | GuiLabel((Rectangle){ windowOffset.x + 85, windowOffset.y + 50, 75, 20 }, TextFormat("%i bytes", dataSize));
189 | GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 85, 180, 80 }, "Resolution");
190 | GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 100, 33, 25 }, "Width:");
191 | if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 100, 80, 25 }, NULL, &widthValue, 0, 8192, widthEditMode)) widthEditMode = !widthEditMode;
192 | GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 100, 30, 25 }, "pixels");
193 | GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 130, 33, 25 }, "Height:");
194 | if (GuiValueBox((Rectangle){ windowOffset.x + 60, windowOffset.y + 130, 80, 25 }, NULL, &heightValue, 0, 8192, heightEditMode)) heightEditMode = !heightEditMode;
195 | GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 130, 30, 25 }, "pixels");
196 | GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 180, 180, 160 }, "Pixel Format");
197 | GuiComboBox((Rectangle){ windowOffset.x + 20, windowOffset.y + 195, 160, 25 }, TextJoin(pixelFormatTextList, 8, ";"), &pixelFormatActive);
198 | GuiLine((Rectangle){ windowOffset.x + 20, windowOffset.y + 220, 160, 20 }, NULL);
199 |
200 | if (pixelFormatActive != 0) GuiDisable();
201 | GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 235, 50, 20 }, "Channels:");
202 | GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 255, 156/4, 25 }, TextJoin(channelsTextList, 4, ";"), &channelsActive);
203 | GuiLabel((Rectangle){ windowOffset.x + 20, windowOffset.y + 285, 50, 20 }, "Bit Depth:");
204 | GuiToggleGroup((Rectangle){ windowOffset.x + 20, windowOffset.y + 305, 160/3, 25 }, TextJoin(bitDepthTextList, 3, ";"), &bitDepthActive);
205 | GuiEnable();
206 |
207 | GuiGroupBox((Rectangle){ windowOffset.x + 10, windowOffset.y + 355, 180, 50 }, "Header");
208 | GuiLabel((Rectangle){ windowOffset.x + 25, windowOffset.y + 370, 27, 25 }, "Size:");
209 | if (GuiValueBox((Rectangle){ windowOffset.x + 55, windowOffset.y + 370, 85, 25 }, NULL, &headerSizeValue, 0, 10000, headerSizeEditMode)) headerSizeEditMode = !headerSizeEditMode;
210 | GuiLabel((Rectangle){ windowOffset.x + 145, windowOffset.y + 370, 30, 25 }, "bytes");
211 |
212 | btnLoadPressed = GuiButton((Rectangle){ windowOffset.x + 10, windowOffset.y + 420, 180, 30 }, "Import RAW");
213 | }
214 | //----------------------------------------------------------------------------------
215 |
216 | EndDrawing();
217 | //----------------------------------------------------------------------------------
218 | }
219 |
220 | // De-Initialization
221 | //--------------------------------------------------------------------------------------
222 | if (texture.id != 0) UnloadTexture(texture);
223 |
224 | CloseWindow(); // Close window and OpenGL context
225 | //--------------------------------------------------------------------------------------
226 |
227 | return 0;
228 | }
229 |
--------------------------------------------------------------------------------
/examples/portable_window/portable_window.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - portable window
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.0 - Windowing/input management and drawing.
7 | * raygui 3.0 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
15 | *
16 | **********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | #include "../../src/raygui.h"
22 |
23 | //------------------------------------------------------------------------------------
24 | // Program main entry point
25 | //------------------------------------------------------------------------------------
26 | int main()
27 | {
28 | // Initialization
29 | //---------------------------------------------------------------------------------------
30 | const int screenWidth = 800;
31 | const int screenHeight = 600;
32 |
33 | SetConfigFlags(FLAG_WINDOW_UNDECORATED);
34 | InitWindow(screenWidth, screenHeight, "raygui - portable window");
35 |
36 | // General variables
37 | Vector2 mousePosition = { 0 };
38 | Vector2 windowPosition = { 500, 200 };
39 | Vector2 panOffset = mousePosition;
40 | bool dragWindow = false;
41 |
42 | SetWindowPosition(windowPosition.x, windowPosition.y);
43 |
44 | bool exitWindow = false;
45 |
46 | SetTargetFPS(60);
47 | //--------------------------------------------------------------------------------------
48 |
49 | // Main game loop
50 | while (!exitWindow && !WindowShouldClose()) // Detect window close button or ESC key
51 | {
52 | // Update
53 | //----------------------------------------------------------------------------------
54 | mousePosition = GetMousePosition();
55 |
56 | if (IsMouseButtonPressed(MOUSE_LEFT_BUTTON) && !dragWindow)
57 | {
58 | if (CheckCollisionPointRec(mousePosition, (Rectangle){ 0, 0, screenWidth, 20 }))
59 | {
60 | windowPosition = GetWindowPosition();
61 | dragWindow = true;
62 | panOffset = mousePosition;
63 | }
64 | }
65 |
66 | if (dragWindow)
67 | {
68 | windowPosition.x += (mousePosition.x - panOffset.x);
69 | windowPosition.y += (mousePosition.y - panOffset.y);
70 |
71 | SetWindowPosition((int)windowPosition.x, (int)windowPosition.y);
72 |
73 | if (IsMouseButtonReleased(MOUSE_LEFT_BUTTON)) dragWindow = false;
74 | }
75 | //----------------------------------------------------------------------------------
76 |
77 | // Draw
78 | //----------------------------------------------------------------------------------
79 | BeginDrawing();
80 |
81 | ClearBackground(RAYWHITE);
82 |
83 | exitWindow = GuiWindowBox((Rectangle){ 0, 0, screenWidth, screenHeight }, "#198# PORTABLE WINDOW");
84 |
85 | DrawText(TextFormat("Mouse Position: [ %.0f, %.0f ]", mousePosition.x, mousePosition.y), 10, 40, 10, DARKGRAY);
86 | DrawText(TextFormat("Window Position: [ %.0f, %.0f ]", windowPosition.x, windowPosition.y), 10, 60, 10, DARKGRAY);
87 |
88 | EndDrawing();
89 | //----------------------------------------------------------------------------------
90 | }
91 |
92 | // De-Initialization
93 | //--------------------------------------------------------------------------------------
94 | CloseWindow(); // Close window and OpenGL context
95 | //--------------------------------------------------------------------------------------
96 |
97 | return 0;
98 | }
99 |
--------------------------------------------------------------------------------
/examples/property_list/property_list.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - custom property list control
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.0 - Windowing/input management and drawing.
7 | * raygui 3.0 - Immediate-mode GUI controls.
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2020-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
15 | *
16 | **********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | #include "../../src/raygui.h"
22 |
23 | #undef RAYGUI_IMPLEMENTATION // Avoid including raygui implementation again
24 |
25 | #define GUI_PROPERTY_LIST_IMPLEMENTATION
26 | #include "dm_property_list.h"
27 |
28 | #define SIZEOF(A) (sizeof(A)/sizeof(A[0]))
29 |
30 | //------------------------------------------------------------------------------------
31 | // Program main entry point
32 | //------------------------------------------------------------------------------------
33 | int main()
34 | {
35 | // Initialization
36 | //---------------------------------------------------------------------------------------
37 | const int screenWidth = 800;
38 | const int screenHeight = 450;
39 |
40 | InitWindow(screenWidth, screenHeight, "raygui - property list");
41 |
42 | GuiDMProperty prop[] = {
43 | PBOOL("Bool", 0, true),
44 | PSECTION("#102#SECTION", 0, 2),
45 | PINT("Int", 0, 123),
46 | PFLOAT("Float", 0, 0.99f),
47 | PTEXT("Text", 0, (char*)&(char[30]){"Hello!"}, 30),
48 | PSELECT("Select", 0, "ONE;TWO;THREE;FOUR", 0),
49 | PINT_RANGE("Int Range", 0, 32, 1, 0, 100),
50 | PRECT("Rect", 0, 0, 0, 100, 200),
51 | PVEC2("Vec2", 0, 20, 20),
52 | PVEC3("Vec3", 0, 12, 13, 14),
53 | PVEC4("Vec4", 0, 12, 13, 14, 15),
54 | PCOLOR("Color", 0, 0, 255, 0, 255),
55 | };
56 |
57 | int focus = 0, scroll = 0; // Needed by GuiDMPropertyList()
58 |
59 | GuiLoadStyleDefault();
60 |
61 | // Tweak the default raygui style a bit
62 | GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, 24);
63 | GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, 12);
64 |
65 | Vector2 gridMouseCell = { 0 };
66 |
67 | SetTargetFPS(60);
68 | //--------------------------------------------------------------------------------------
69 |
70 | // Main game loop
71 | while (!WindowShouldClose()) // Detect window close button or ESC key
72 | {
73 | // Draw
74 | //----------------------------------------------------------------------------------
75 | BeginDrawing();
76 |
77 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
78 |
79 | GuiGrid((Rectangle){0, 0, screenWidth, screenHeight}, "Property List", 20.0f, 2, &gridMouseCell); // Draw a fancy grid
80 |
81 | GuiDMPropertyList((Rectangle){(screenWidth - 180)/2, (screenHeight - 280)/2, 180, 280}, prop, SIZEOF(prop), &focus, &scroll);
82 |
83 | if (prop[0].value.vbool >= 1)
84 | {
85 | DrawText(TextFormat("FOCUS:%i | SCROLL:%i | FPS:%i", focus, scroll, GetFPS()), prop[8].value.v2.x, prop[8].value.v2.y, 20, prop[11].value.vcolor);
86 | }
87 |
88 | EndDrawing();
89 | //----------------------------------------------------------------------------------
90 | }
91 |
92 | // De-Initialization
93 | //--------------------------------------------------------------------------------------
94 | GuiDMSaveProperties("test.props", prop, SIZEOF(prop)); // Save properties to `test.props` file at exit
95 |
96 | CloseWindow(); // Close window and OpenGL context
97 | //--------------------------------------------------------------------------------------
98 |
99 | return 0;
100 | }
101 |
102 |
--------------------------------------------------------------------------------
/examples/property_list/test.props:
--------------------------------------------------------------------------------
1 | #
2 | # Property types:
3 | # b // Bool
4 | # i // Int
5 | # f // Float
6 | # t // Text
7 | # l // Select
8 | # g // Section (Group)
9 | # v2 // Vector 2D
10 | # v3 // Vector 3D
11 | # v4 // Vector 4D
12 | # r // Rectangle
13 | # c // Color
14 | #
15 |
16 | b Bool 0 1
17 | g #102#SECTION 0 2
18 | i Int 0 123 0 0 1
19 | f Float 0 0.990000 0.000000 0.000000 1.000000 3
20 | t Text 1 Hello! 30
21 | l Select 0 ONE;TWO;THREE;FOUR 3
22 | i Int Range 0 32 0 100 1
23 | r Rect 1 0 0 100 200
24 | v2 Vec2 1 20.000000 20.000000
25 | v3 Vec3 1 12.000000 13.000000 14.000000
26 | v4 Vec4 1 12.000000 13.000000 14.000000 15.000000
27 | c Color 1 94 68 197 160
28 |
--------------------------------------------------------------------------------
/examples/raygui.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/examples/raygui.ico
--------------------------------------------------------------------------------
/examples/raygui.rc:
--------------------------------------------------------------------------------
1 | GLFW_ICON ICON "raygui.ico"
2 |
3 | 1 VERSIONINFO
4 | FILEVERSION 4,0,0,0
5 | PRODUCTVERSION 4,0,0,0
6 | BEGIN
7 | BLOCK "StringFileInfo"
8 | BEGIN
9 | //BLOCK "080904E4" // English UK
10 | BLOCK "040904E4" // English US
11 | BEGIN
12 | //VALUE "CompanyName", "raylib technologies"
13 | VALUE "FileDescription", "raygui application (www.raylib.com)"
14 | VALUE "FileVersion", "4.0.0"
15 | VALUE "InternalName", "raygui app"
16 | VALUE "LegalCopyright", "(c) 2023 Ramon Santamaria (@raysan5)"
17 | //VALUE "OriginalFilename", "raygui_app.exe"
18 | VALUE "ProductName", "raygui app"
19 | VALUE "ProductVersion", "4.0.0"
20 | END
21 | END
22 | BLOCK "VarFileInfo"
23 | BEGIN
24 | //VALUE "Translation", 0x809, 1252 // English UK
25 | VALUE "Translation", 0x409, 1252 // English US
26 | END
27 | END
28 |
--------------------------------------------------------------------------------
/examples/scroll_panel/scroll_panel.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - Controls test
4 | *
5 | * TEST CONTROLS:
6 | * - GuiScrollPanel()
7 | *
8 | * DEPENDENCIES:
9 | * raylib 4.0 - Windowing/input management and drawing.
10 | * raygui 3.0 - Immediate-mode GUI controls.
11 | *
12 | * COMPILATION (Windows - MinGW):
13 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
14 | *
15 | * COMPILATION (Linux - gcc):
16 | * gcc -o $(NAME_PART) $(FILE_NAME) -I../../src -lraylib -lGL -lm -lpthread -ldl -lrt -lX11 -std=c99
17 | *
18 | * LICENSE: zlib/libpng
19 | *
20 | * Copyright (c) 2019-2024 Vlad Adrian (@Demizdor) and Ramon Santamaria (@raysan5)
21 | *
22 | **********************************************************************************************/
23 |
24 | #include "raylib.h"
25 |
26 | #define RAYGUI_IMPLEMENTATION
27 | #include "../../src/raygui.h"
28 |
29 |
30 | static void DrawStyleEditControls(void); // Draw and process scroll bar style edition controls
31 |
32 | //------------------------------------------------------------------------------------
33 | // Program main entry point
34 | //------------------------------------------------------------------------------------
35 | int main()
36 | {
37 | // Initialization
38 | //---------------------------------------------------------------------------------------
39 | const int screenWidth = 800;
40 | const int screenHeight = 450;
41 |
42 | InitWindow(screenWidth, screenHeight, "raygui - GuiScrollPanel()");
43 |
44 | Rectangle panelRec = { 20, 40, 200, 150 };
45 | Rectangle panelContentRec = {0, 0, 340, 340 };
46 | Rectangle panelView = { 0 };
47 | Vector2 panelScroll = { 99, -20 };
48 |
49 | bool showContentArea = true;
50 |
51 | SetTargetFPS(60);
52 | //---------------------------------------------------------------------------------------
53 |
54 | // Main game loop
55 | while (!WindowShouldClose()) // Detect window close button or ESC key
56 | {
57 | // Update
58 | //----------------------------------------------------------------------------------
59 | // TODO: Implement required update logic
60 | //----------------------------------------------------------------------------------
61 |
62 | // Draw
63 | //----------------------------------------------------------------------------------
64 | BeginDrawing();
65 |
66 | ClearBackground(RAYWHITE);
67 |
68 | DrawText(TextFormat("[%f, %f]", panelScroll.x, panelScroll.y), 4, 4, 20, RED);
69 |
70 | GuiScrollPanel(panelRec, NULL, panelContentRec, &panelScroll, &panelView);
71 |
72 | BeginScissorMode(panelView.x, panelView.y, panelView.width, panelView.height);
73 | GuiGrid((Rectangle){panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height}, NULL, 16, 3, NULL);
74 | EndScissorMode();
75 |
76 | if (showContentArea) DrawRectangle(panelRec.x + panelScroll.x, panelRec.y + panelScroll.y, panelContentRec.width, panelContentRec.height, Fade(RED, 0.1));
77 |
78 | DrawStyleEditControls();
79 |
80 | GuiCheckBox((Rectangle){ 565, 80, 20, 20 }, "SHOW CONTENT AREA", &showContentArea);
81 |
82 | GuiSliderBar((Rectangle){ 590, 385, 145, 15}, "WIDTH", TextFormat("%i", (int)panelContentRec.width), &panelContentRec.width, 1, 600);
83 | GuiSliderBar((Rectangle){ 590, 410, 145, 15 }, "HEIGHT", TextFormat("%i", (int)panelContentRec.height), &panelContentRec.height, 1, 400);
84 |
85 | EndDrawing();
86 | //----------------------------------------------------------------------------------
87 | }
88 |
89 | // De-Initialization
90 | //--------------------------------------------------------------------------------------
91 | CloseWindow(); // Close window and OpenGL context
92 | //--------------------------------------------------------------------------------------
93 |
94 | return 0;
95 | }
96 |
97 | // Draw and process scroll bar style edition controls
98 | static void DrawStyleEditControls(void)
99 | {
100 | // ScrollPanel style controls
101 | //----------------------------------------------------------
102 | GuiGroupBox((Rectangle){ 550, 170, 220, 205 }, "SCROLLBAR STYLE");
103 |
104 | int style = GuiGetStyle(SCROLLBAR, BORDER_WIDTH);
105 | GuiLabel((Rectangle){ 555, 195, 110, 10 }, "BORDER_WIDTH");
106 | GuiSpinner((Rectangle){ 670, 190, 90, 20 }, NULL, &style, 0, 6, false);
107 | GuiSetStyle(SCROLLBAR, BORDER_WIDTH, style);
108 |
109 | style = GuiGetStyle(SCROLLBAR, ARROWS_SIZE);
110 | GuiLabel((Rectangle){ 555, 220, 110, 10 }, "ARROWS_SIZE");
111 | GuiSpinner((Rectangle){ 670, 215, 90, 20 }, NULL, &style, 4, 14, false);
112 | GuiSetStyle(SCROLLBAR, ARROWS_SIZE, style);
113 |
114 | style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
115 | GuiLabel((Rectangle){ 555, 245, 110, 10 }, "SLIDER_PADDING");
116 | GuiSpinner((Rectangle){ 670, 240, 90, 20 }, NULL, &style, 0, 14, false);
117 | GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
118 |
119 | bool scrollBarArrows = GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE);
120 | GuiCheckBox((Rectangle){ 565, 280, 20, 20 }, "ARROWS_VISIBLE", &scrollBarArrows);
121 | GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, scrollBarArrows);
122 |
123 | style = GuiGetStyle(SCROLLBAR, SLIDER_PADDING);
124 | GuiLabel((Rectangle){ 555, 325, 110, 10 }, "SLIDER_PADDING");
125 | GuiSpinner((Rectangle){ 670, 320, 90, 20 }, NULL, &style, 0, 14, false);
126 | GuiSetStyle(SCROLLBAR, SLIDER_PADDING, style);
127 |
128 | style = GuiGetStyle(SCROLLBAR, SLIDER_WIDTH);
129 | GuiLabel((Rectangle){ 555, 350, 110, 10 }, "SLIDER_WIDTH");
130 | GuiSpinner((Rectangle){ 670, 345, 90, 20 }, NULL, &style, 2, 100, false);
131 | GuiSetStyle(SCROLLBAR, SLIDER_WIDTH, style);
132 |
133 | const char *text = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE? "SCROLLBAR: LEFT" : "SCROLLBAR: RIGHT";
134 | bool toggleScrollBarSide = GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE);
135 | GuiToggle((Rectangle){ 560, 110, 200, 35 }, text, &toggleScrollBarSide);
136 | GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, toggleScrollBarSide);
137 | //----------------------------------------------------------
138 |
139 | // ScrollBar style controls
140 | //----------------------------------------------------------
141 | GuiGroupBox((Rectangle){ 550, 20, 220, 135 }, "SCROLLPANEL STYLE");
142 |
143 | style = GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH);
144 | GuiLabel((Rectangle){ 555, 35, 110, 10 }, "SCROLLBAR_WIDTH");
145 | GuiSpinner((Rectangle){ 670, 30, 90, 20 }, NULL, &style, 6, 30, false);
146 | GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, style);
147 |
148 | style = GuiGetStyle(DEFAULT, BORDER_WIDTH);
149 | GuiLabel((Rectangle){ 555, 60, 110, 10 }, "BORDER_WIDTH");
150 | GuiSpinner((Rectangle){ 670, 55, 90, 20 }, NULL, &style, 0, 20, false);
151 | GuiSetStyle(DEFAULT, BORDER_WIDTH, style);
152 | //----------------------------------------------------------
153 | }
154 |
--------------------------------------------------------------------------------
/examples/standalone/raygui_custom_backend.h:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - Standalone mode custom backend
4 | *
5 | * Just edit this file to include your custom implementation to your graphic API
6 | *
7 | * LICENSE:
8 | *
9 | * Copyright (c)
10 | *
11 | **********************************************************************************************/
12 |
13 | //#include "my_cool_graphic_api.h"
14 |
15 | //----------------------------------------------------------------------------------
16 | // Defines and Macros
17 | // TODO: Define input keys required by raygui
18 | //----------------------------------------------------------------------------------
19 | #define KEY_RIGHT 262
20 | #define KEY_LEFT 263
21 | #define KEY_DOWN 264
22 | #define KEY_UP 265
23 | #define KEY_BACKSPACE 259
24 | #define KEY_ENTER 257
25 | #define MOUSE_LEFT_BUTTON 0
26 |
27 | //----------------------------------------------------------------------------------
28 | // Types and Structures Definition
29 | // TODO: Define required structures, maybe Font/Texture2D should be defined here?
30 | //----------------------------------------------------------------------------------
31 | // ...
32 |
33 | //----------------------------------------------------------------------------------
34 | // Global Variables Definition
35 | //----------------------------------------------------------------------------------
36 | // ...
37 |
38 | //----------------------------------------------------------------------------------
39 | // Module Functions Definition
40 | // TODO: Define all raygui required functions (previously provided by raylib)
41 | //----------------------------------------------------------------------------------
42 |
43 | //-------------------------------------------------------------------------------
44 | // Input required functions
45 | //-------------------------------------------------------------------------------
46 | static Vector2 GetMousePosition(void)
47 | {
48 | Vector2 position = { 0 };
49 |
50 | // TODO: Mouse position
51 |
52 | return position;
53 | }
54 |
55 | static int GetMouseWheelMove(void)
56 | {
57 | // TODO: Mouse wheel movement variation, reseted every frame
58 |
59 | return 0;
60 | }
61 |
62 | static bool IsMouseButtonDown(int button)
63 | {
64 | // TODO: Return true while mouse button [0..2] is being down
65 |
66 | return false;
67 | }
68 |
69 | static bool IsMouseButtonPressed(int button)
70 | {
71 | // TODO: Return true when mouse button [0..2] has been pressed: up->down
72 |
73 | return false;
74 | }
75 |
76 | static bool IsMouseButtonReleased(int button)
77 | {
78 | // TODO: Return true when mouse button [0..2] has been released: down->up
79 |
80 | return false;
81 | }
82 |
83 | static bool IsKeyDown(int key)
84 | {
85 | // TODO: Return true while key is being down
86 |
87 | return false;
88 | }
89 |
90 | static bool IsKeyPressed(int key)
91 | {
92 | // TODO: Return true when key has been pressed: up->down
93 |
94 | return false;
95 | }
96 |
97 | // USED IN: GuiTextBox(), GuiValueBox()
98 | static int GetKeyPressed(void)
99 | {
100 | // TODO: Return last key pressed (up->down) in the frame
101 |
102 | return 0;
103 | }
104 |
105 | //-------------------------------------------------------------------------------
106 | // Drawing required functions
107 | //-------------------------------------------------------------------------------
108 | static void DrawRectangle(int x, int y, int width, int height, Color color)
109 | {
110 | // TODO: Draw rectangle on the screen
111 | }
112 |
113 | // USED IN: GuiColorPicker()
114 | static void DrawRectangleGradientEx(Rectangle rec, Color col1, Color col2, Color col3, Color col4)
115 | {
116 | // TODO: Draw rectangle with gradients (4 vertex colors) on the screen
117 | }
118 |
119 | // USED IN: GuiDropdownBox(), GuiScrollBar()
120 | static void DrawTriangle(Vector2 v1, Vector2 v2, Vector2 v3, Color color)
121 | {
122 | // TODO: Draw triangle on the screen, required for arrows
123 | }
124 |
125 | //-------------------------------------------------------------------------------
126 | // Text required functions
127 | //-------------------------------------------------------------------------------
128 | // USED IN: GuiLoadStyleDefault()
129 | static Font GetFontDefault(void)
130 | {
131 | Font font = { 0 };
132 |
133 | // TODO: Return default rendering Font for the UI
134 |
135 | return font;
136 | }
137 |
138 | // USED IN: GetTextWidth()
139 | static Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing)
140 | {
141 | Vector2 size = { 0 };
142 |
143 | // TODO: Return text size (width, height) on screen depending on the Font, text, fontSize and spacing
144 |
145 | return size;
146 | }
147 |
148 | // USED IN: GuiDrawText()
149 | static void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint)
150 | {
151 | // TODO: Draw text on the screen
152 | }
153 |
154 | //-------------------------------------------------------------------------------
155 | // GuiLoadStyle() required functions
156 | //-------------------------------------------------------------------------------
157 | static Font LoadFontEx(const char *fileName, int fontSize, int *fontChars, int glyphCount)
158 | {
159 | Font font = { 0 };
160 |
161 | // TODO: Load a new font from a file
162 |
163 | return font;
164 | }
165 |
166 | static char *LoadText(const char *fileName)
167 | {
168 | // TODO: Load text file data, used by GuiLoadStyle() to load characters list required on Font generation,
169 | // this is a .rgs feature, probably this function is not required in most cases
170 |
171 | return NULL;
172 | }
173 |
174 | static const char *GetDirectoryPath(const char *filePath)
175 | {
176 | // TODO: Get directory path for .rgs file, required to look for a possible .ttf/.otf font file referenced,
177 | // this is a .rgs feature, probably this function is not required in most cases
178 |
179 | return NULL;
180 | }
181 |
182 |
--------------------------------------------------------------------------------
/examples/standalone/raygui_standalone.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - Standalone mode usage template
4 | *
5 | * DEPENDENCIES:
6 | * raygui 2.6 - Immediate-mode GUI controls.
7 | *
8 | *
9 | * LICENSE: zlib/libpng
10 | *
11 | * Copyright (c) 2020 Ramon Santamaria (@raysan5)
12 | *
13 | **********************************************************************************************/
14 |
15 | #define RAYGUI_IMPLEMENTATION
16 | #define RAYGUI_STANDALONE
17 | #include "../../src/raygui.h"
18 |
19 | #include "custom_backend.h"
20 |
21 | //------------------------------------------------------------------------------------
22 | // Program main entry point
23 | //------------------------------------------------------------------------------------
24 | int main()
25 | {
26 | // TODO: Initialize your systems (window, graphics, inputs)
27 |
28 | // TODO: Create your game loop
29 | {
30 | // TODO: Use raygui API
31 | }
32 |
33 | // TODO: De-initialize all resources
34 |
35 | return 0;
36 | }
37 |
--------------------------------------------------------------------------------
/examples/style_selector/style_selector.c:
--------------------------------------------------------------------------------
1 | /*******************************************************************************************
2 | *
3 | * raygui - style selector
4 | *
5 | * DEPENDENCIES:
6 | * raylib 4.5 - Windowing/input management and drawing
7 | * raygui 3.5 - Immediate-mode GUI controls with custom styling and icons
8 | *
9 | * COMPILATION (Windows - MinGW):
10 | * gcc -o $(NAME_PART).exe $(FILE_NAME) -I../../src -lraylib -lopengl32 -lgdi32 -std=c99
11 | *
12 | * LICENSE: zlib/libpng
13 | *
14 | * Copyright (c) 2016-2024 Ramon Santamaria (@raysan5)
15 | *
16 | **********************************************************************************************/
17 |
18 | #include "raylib.h"
19 |
20 | #define RAYGUI_IMPLEMENTATION
21 | //#define RAYGUI_CUSTOM_ICONS // It requires providing gui_icons.h in the same directory
22 | //#include "gui_icons.h" // External icons data provided, it can be generated with rGuiIcons tool
23 | #include "../../src/raygui.h"
24 |
25 | // raygui embedded styles
26 | // NOTE: Included in the same order as selector
27 | #define MAX_GUI_STYLES_AVAILABLE 12 // NOTE: Included light style
28 | #include "../styles/style_jungle.h" // raygui style: jungle
29 | #include "../styles/style_candy.h" // raygui style: candy
30 | #include "../styles/style_lavanda.h" // raygui style: lavanda
31 | #include "../styles/style_cyber.h" // raygui style: cyber
32 | #include "../styles/style_terminal.h" // raygui style: terminal
33 | #include "../styles/style_ashes.h" // raygui style: ashes
34 | #include "../styles/style_bluish.h" // raygui style: bluish
35 | #include "../styles/style_dark.h" // raygui style: dark
36 | #include "../styles/style_cherry.h" // raygui style: cherry
37 | #include "../styles/style_sunny.h" // raygui style: sunny
38 | #include "../styles/style_enefete.h" // raygui style: enefete
39 |
40 | #include // Required for: strcpy()
41 |
42 | //------------------------------------------------------------------------------------
43 | // Program main entry point
44 | //------------------------------------------------------------------------------------
45 | int main()
46 | {
47 | // Initialization
48 | //---------------------------------------------------------------------------------------
49 | const int screenWidth = 800;
50 | const int screenHeight = 480;
51 |
52 | InitWindow(screenWidth, screenHeight, "raygui - styles selector");
53 | SetExitKey(0);
54 |
55 | // Custom GUI font loading
56 | //Font font = LoadFontEx("fonts/custom_font.ttf", 12, 0, 0);
57 | //GuiSetFont(font);
58 |
59 | bool exitWindow = false;
60 | bool showMessageBox = false;
61 |
62 | // Load default style
63 | GuiLoadStyleBluish();
64 | int visualStyleActive = 4;
65 | int prevVisualStyleActive = 4;
66 |
67 | SetTargetFPS(60);
68 | //--------------------------------------------------------------------------------------
69 |
70 | // Main game loop
71 | while (!exitWindow) // Detect window close button or ESC key
72 | {
73 | // Update
74 | //----------------------------------------------------------------------------------
75 | exitWindow = WindowShouldClose();
76 |
77 | if (IsKeyPressed(KEY_ESCAPE)) showMessageBox = !showMessageBox;
78 |
79 | if (IsFileDropped())
80 | {
81 | FilePathList droppedFiles = LoadDroppedFiles();
82 |
83 | if ((droppedFiles.count > 0) && IsFileExtension(droppedFiles.paths[0], ".rgs")) GuiLoadStyle(droppedFiles.paths[0]);
84 |
85 | UnloadDroppedFiles(droppedFiles); // Clear internal buffers
86 | }
87 |
88 | if (visualStyleActive != prevVisualStyleActive)
89 | {
90 | // Reset to default internal style
91 | // NOTE: Required to unload any previously loaded font texture
92 | GuiLoadStyleDefault();
93 |
94 | switch (visualStyleActive)
95 | {
96 | case 1: GuiLoadStyleJungle(); break;
97 | case 2: GuiLoadStyleCandy(); break;
98 | case 3: GuiLoadStyleLavanda(); break;
99 | case 4: GuiLoadStyleCyber(); break;
100 | case 5: GuiLoadStyleTerminal(); break;
101 | case 6: GuiLoadStyleAshes(); break;
102 | case 7: GuiLoadStyleBluish(); break;
103 | case 8: GuiLoadStyleDark(); break;
104 | case 9: GuiLoadStyleCherry(); break;
105 | case 10: GuiLoadStyleSunny(); break;
106 | case 11: GuiLoadStyleEnefete(); break;
107 | default: break;
108 | }
109 |
110 | prevVisualStyleActive = visualStyleActive;
111 | }
112 | //----------------------------------------------------------------------------------
113 |
114 | // Draw
115 | //----------------------------------------------------------------------------------
116 | BeginDrawing();
117 |
118 | ClearBackground(GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR)));
119 |
120 | // Visuals options
121 | GuiLabel((Rectangle){ 10, 10, 60, 24 }, "Style:");
122 | GuiComboBox((Rectangle){ 60,10, 120, 24 }, "default;Jungle;Candy;Lavanda;Cyber;Terminal;Ashes;Bluish;Dark;Cherry;Sunny;Enefete", &visualStyleActive);
123 |
124 | DrawRectangle(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height, BLACK);
125 | DrawTexture(GuiGetFont().texture, 10, 44, WHITE);
126 | DrawRectangleLines(10, 44, GuiGetFont().texture.width, GuiGetFont().texture.height,
127 | GetColor(GuiGetStyle(DEFAULT, LINE_COLOR)));
128 |
129 | //GuiSetIconScale(2);
130 | //GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_RIGHT);
131 | //GuiButton((Rectangle){ 25, 255, 300, 30 }, GuiIconText(ICON_FILE_SAVE, "Save File"));
132 | //GuiSetStyle(BUTTON, TEXT_ALIGNMENT, TEXT_ALIGN_CENTER);
133 | //----------------------------------------------------------------------------------
134 |
135 | EndDrawing();
136 | //----------------------------------------------------------------------------------
137 | }
138 |
139 | // De-Initialization
140 | //--------------------------------------------------------------------------------------
141 | CloseWindow(); // Close window and OpenGL context
142 | //--------------------------------------------------------------------------------------
143 |
144 | return 0;
145 | }
146 |
--------------------------------------------------------------------------------
/icons/raygui_icons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/icons/raygui_icons.png
--------------------------------------------------------------------------------
/icons/raygui_icons.rgi:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/icons/raygui_icons.rgi
--------------------------------------------------------------------------------
/images/raygui_controls_panel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/raygui_controls_panel.png
--------------------------------------------------------------------------------
/images/raygui_ricons.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/raygui_ricons.png
--------------------------------------------------------------------------------
/images/raygui_style_table_multi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/raygui_style_table_multi.png
--------------------------------------------------------------------------------
/images/rguiicons_v100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/rguiicons_v100.png
--------------------------------------------------------------------------------
/images/rguilayout_v220.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/rguilayout_v220.png
--------------------------------------------------------------------------------
/images/rguistyler_v210.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/rguistyler_v210.png
--------------------------------------------------------------------------------
/images/rguistyler_v300.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/images/rguistyler_v300.png
--------------------------------------------------------------------------------
/logo/raygui.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui.ico
--------------------------------------------------------------------------------
/logo/raygui_128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_128x128.png
--------------------------------------------------------------------------------
/logo/raygui_16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_16x16.png
--------------------------------------------------------------------------------
/logo/raygui_24x24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_24x24.png
--------------------------------------------------------------------------------
/logo/raygui_256x256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_256x256.png
--------------------------------------------------------------------------------
/logo/raygui_32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_32x32.png
--------------------------------------------------------------------------------
/logo/raygui_48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_48x48.png
--------------------------------------------------------------------------------
/logo/raygui_512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_512x512.png
--------------------------------------------------------------------------------
/logo/raygui_64x64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_64x64.png
--------------------------------------------------------------------------------
/logo/raygui_96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/logo/raygui_96x96.png
--------------------------------------------------------------------------------
/projects/CMake/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.11)
2 | set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
3 |
4 | project(raygui C)
5 |
6 | # Config options
7 | option(BUILD_RAYGUI_EXAMPLES "Build the examples." OFF)
8 |
9 | # Force building examples if building in the root as standalone.
10 | if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
11 | set(BUILD_RAYGUI_EXAMPLES TRUE)
12 | endif()
13 |
14 | # Directory Variables
15 | set(RAYGUI_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/../..)
16 | set(RAYGUI_SRC ${RAYGUI_ROOT}/src)
17 | set(RAYGUI_EXAMPLES ${RAYGUI_ROOT}/examples)
18 |
19 | # raygui
20 | add_library(raygui INTERFACE)
21 | file(GLOB sources ${RAYGUI_SRC}/*.h)
22 | set(RAYGUI_HEADERS ${sources})
23 | install(FILES
24 | ${RAYGUI_HEADERS} DESTINATION include
25 | )
26 | target_include_directories(raygui INTERFACE ${RAYGUI_SRC})
27 |
28 | # Examples
29 | if(${BUILD_RAYGUI_EXAMPLES})
30 | find_package(Raylib)
31 |
32 | # Get the sources together
33 | set(example_dirs
34 | animation_curve
35 | controls_test_suite
36 | custom_file_dialog
37 | custom_sliders
38 | image_exporter
39 | image_importer_raw
40 | portable_window
41 | property_list
42 | scroll_panel
43 | style_selector
44 | )
45 |
46 | set(example_sources)
47 | set(example_resources)
48 |
49 | foreach(example_dir ${example_dirs})
50 | # Get the .c files
51 | file(GLOB sources ${RAYGUI_EXAMPLES}/${example_dir}/*.c)
52 | list(APPEND example_sources ${sources})
53 |
54 | # Any any resources
55 | file(GLOB resources ${RAYGUI_EXAMPLES}/${example_dir}/resources/*)
56 | list(APPEND example_resources ${resources})
57 | endforeach()
58 |
59 | # Do each example
60 | foreach(example_source ${example_sources})
61 | # Create the basename for the example
62 | get_filename_component(example_name ${example_source} NAME)
63 | string(REPLACE ".c" "${OUTPUT_EXT}" example_name ${example_name})
64 |
65 | # Setup the example
66 | add_executable(${example_name} ${example_source})
67 |
68 | target_link_libraries(${example_name} PUBLIC raylib raygui)
69 |
70 | string(REGEX MATCH ".*/.*/" resources_dir ${example_source})
71 | string(APPEND resources_dir "resources")
72 | endforeach()
73 |
74 | # Copy all of the resource files to the destination
75 | file(COPY ${example_resources} DESTINATION "resources/")
76 | endif()
77 |
--------------------------------------------------------------------------------
/projects/CMake/README.md:
--------------------------------------------------------------------------------
1 | # raygui CMake Definitions
2 |
3 | This provides CMake definition files for raygui.
4 |
5 | ## Usage
6 |
7 | ```
8 | cd projects/CMake
9 | mkdir build
10 | cd build
11 | cmake ..
12 | make
13 | ```
--------------------------------------------------------------------------------
/projects/CMake/cmake/FindRaylib.cmake:
--------------------------------------------------------------------------------
1 | find_package(raylib 4.5.0 QUIET CONFIG)
2 | if (NOT raylib_FOUND)
3 | include(FetchContent)
4 | FetchContent_Declare(
5 | raylib
6 | GIT_REPOSITORY https://github.com/raysan5/raylib.git
7 | GIT_TAG 4.5.0
8 | )
9 | FetchContent_GetProperties(raylib)
10 | if (NOT raylib_POPULATED) # Have we downloaded raylib yet?
11 | set(FETCHCONTENT_QUIET NO)
12 | FetchContent_Populate(raylib)
13 | set(BUILD_EXAMPLES OFF CACHE BOOL "" FORCE) # don't build the supplied examples
14 | set(BUILD_GAMES OFF CACHE BOOL "" FORCE) # or games
15 | add_subdirectory(${raylib_SOURCE_DIR} ${raylib_BINARY_DIR})
16 | endif()
17 | endif()
18 |
--------------------------------------------------------------------------------
/projects/VS2022/examples/test.props:
--------------------------------------------------------------------------------
1 | #
2 | # Property types:
3 | # b // Bool
4 | # i // Int
5 | # f // Float
6 | # t // Text
7 | # l // Select
8 | # g // Section (Group)
9 | # v2 // Vector 2D
10 | # v3 // Vector 3D
11 | # v4 // Vector 4D
12 | # r // Rectangle
13 | # c // Color
14 | #
15 |
16 | b Bool 0 1
17 | g #102#SECTION 0 2
18 | i Int 0 123 0 0 1
19 | f Float 0 0.990000 0.000000 0.000000 1.000000 3
20 | t Text 0 Hello! 30
21 | l Select 0 ONE;TWO;THREE;FOUR 0
22 | i Int Range 0 32 0 100 1
23 | r Rect 0 0 0 100 200
24 | v2 Vec2 0 20.000000 20.000000
25 | v3 Vec3 0 12.000000 13.000000 14.000000
26 | v4 Vec4 0 12.000000 13.000000 14.000000 15.000000
27 | c Color 0 0 255 0 255
28 |
--------------------------------------------------------------------------------
/styles/README.md:
--------------------------------------------------------------------------------
1 | # raygui styles
2 |
3 | `raygui` comes with **several custom UI styles** carefully designed for the best visual experience. Those styles have been created using [rGuiStyler](https://raylibtech.itch.io/rguistyler) tool and they complement internal [default style](default), always available by `raygui`.
4 |
5 | ## styles usage
6 |
7 | To use those styles with your `raygui` development, you need to call `GuiLoadStyle()` function at initialization, passing the `.rgs` file to load. Note that `.rgs` is by default a binary file containing the style required font data (glyphs data + glyph atlas image data).
8 |
9 | Styles can also be embedded in the code if desired, `.h` files are provided with every style containing all the required style data, including the font data. To embed those fonts just add the `.h` to your project and call the required function as specified in the header info.
10 |
11 | Here it is a quick overview of those styles, you can navigate to each directory for additional information.
12 |
13 | #### 1. style: [default](default)
14 | 
15 |
16 | #### 2. style: [dark](dark)
17 | 
18 |
19 | #### 3. style: [bluish](bluish)
20 | 
21 |
22 | #### 4. style: [candy](candy)
23 | 
24 |
25 | #### 5. style: [cherry](cherry)
26 | 
27 |
28 | #### 6. style: [cyber](cyber)
29 | 
30 |
31 | #### 7. style: [jungle](jungle)
32 | 
33 |
34 | #### 8. style: [lavanda](lavanda)
35 | 
36 |
37 | #### 9. style: [terminal](terminal)
38 | 
39 |
40 | #### 10. style: [sunny](sunny)
41 | 
42 |
43 | #### 11. style: [ashes](ashes)
44 | 
45 |
46 | #### 12. enefete: [enefete](enefete)
47 | 
48 |
49 | #### 13. amber: [amber](amber)
50 | 
51 |
52 |
53 | *NOTE: Those styles require raylib 5.5 and raygui 4.5*
54 |
--------------------------------------------------------------------------------
/styles/amber/README.md:
--------------------------------------------------------------------------------
1 | ## style: amber
2 |
3 | Amber accenture and charcoal tones with a light font for nice visuals.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_amber.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_amber.h` | Embeddable style as code file, self-contained, includes font data |
15 | | `style_amber.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
16 |
17 | ## screenshot
18 |
19 | 
20 |
21 | ## about font
22 |
23 | "Hello World" font by Anthony Gross
24 | ```
25 | CATEGORY: Monospace
26 | LANGUAGE SUPPORT: Latin Extended
27 | FORMAT: TTF
28 | LICENSE: Free for personal and commercial use, SIL Open Font License
29 | ```
30 |
31 | This font is licensed under the Open Font License. More info: https://www.dafont.com/es/hello-world.font
32 |
33 | _The style font is optimized to look best at 16px, if you require different sizing please open the style in rGuiStyler and edit it._
34 |
--------------------------------------------------------------------------------
/styles/amber/hello-world.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/amber/hello-world.ttf
--------------------------------------------------------------------------------
/styles/amber/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/amber/screenshot.old.png
--------------------------------------------------------------------------------
/styles/amber/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/amber/screenshot.png
--------------------------------------------------------------------------------
/styles/amber/style_amber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/amber/style_amber.png
--------------------------------------------------------------------------------
/styles/amber/style_amber.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/amber/style_amber.rgs
--------------------------------------------------------------------------------
/styles/ashes/README.md:
--------------------------------------------------------------------------------
1 | ## style: ashes
2 |
3 | What once was life now is ashes, just as slight reminiscense covers the ground, a gray sequence of tones that reminds to a distant past.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_ashes.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_ashes.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_ashes.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_ashes.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_ashes.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "V5 Loxica Lixera" font by vFive Digital (Roberto Christen).
26 |
27 | 100% free font, downloaded from dafont.com: [v5loxica-lixera](https://www.dafont.com/v5loxica-lixera.font)
28 |
--------------------------------------------------------------------------------
/styles/ashes/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/ashes/font_readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/font_readme.txt
--------------------------------------------------------------------------------
/styles/ashes/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/screenshot.old.png
--------------------------------------------------------------------------------
/styles/ashes/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/screenshot.png
--------------------------------------------------------------------------------
/styles/ashes/style_ashes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/style_ashes.png
--------------------------------------------------------------------------------
/styles/ashes/style_ashes.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/style_ashes.rgs
--------------------------------------------------------------------------------
/styles/ashes/style_ashes.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt v5loxical.ttf
11 | p 00 00 0xf0f0f0ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x868686ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xe6e6e6ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0x929999ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xeaeaeaff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0x98a1a8ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0x3f3f3fff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xf6f6f6ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x414141ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x8b8b8bff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x777777ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x959595ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 18 0x9dadb1ff LINE_COLOR
25 | p 00 19 0x6b6b6bff BACKGROUND_COLOR
26 | p 00 20 0x00000018 TEXT_LINE_SPACING
27 |
--------------------------------------------------------------------------------
/styles/ashes/v5loxical.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/ashes/v5loxical.ttf
--------------------------------------------------------------------------------
/styles/bluish/README.md:
--------------------------------------------------------------------------------
1 | ## style: bluish
2 |
3 | Like a breeze, a slight touch of color cover the clear sky, a spacious and relaxing feeling.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_bluish.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_bluish.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_bluish.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_bluish.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_bluish.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Homespun BRK" font by AEnigma (Brian Kent).
26 |
27 | 100% free font, downloaded from dafont.com: [homespun-brk](https://www.dafont.com/homespun-brk.font)
28 |
--------------------------------------------------------------------------------
/styles/bluish/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/bluish/font_readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/font_readme.txt
--------------------------------------------------------------------------------
/styles/bluish/homespun.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/homespun.ttf
--------------------------------------------------------------------------------
/styles/bluish/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/screenshot.old.png
--------------------------------------------------------------------------------
/styles/bluish/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/screenshot.png
--------------------------------------------------------------------------------
/styles/bluish/style_bluish.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/style_bluish.png
--------------------------------------------------------------------------------
/styles/bluish/style_bluish.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/bluish/style_bluish.rgs
--------------------------------------------------------------------------------
/styles/bluish/style_bluish.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 10 charset.txt homespun.ttf
11 | p 00 00 0x5ca6a6ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0xb4e8f3ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0x447e77ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0x5f8792ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xcdeff7ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0x4c6c74ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0x3b5b5fff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xeaffffff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x275057ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x96aaacff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0xc8d7d9ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x8c9c9eff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 18 0x84adb7ff LINE_COLOR
24 | p 00 19 0xe8eef1ff BACKGROUND_COLOR
25 |
--------------------------------------------------------------------------------
/styles/candy/README.md:
--------------------------------------------------------------------------------
1 | ## style: candy
2 |
3 | Sweet, colorful, tasty! Enjoy this funfair ride and be careful with the witch of the candy house!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_candy.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_candy.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_candy.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_candy.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_candy.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "V5 Eastergothic" font by vFive Digital (Roberto Christen).
26 |
27 | 100% free font, downloaded from dafont.com: [v5eastergothic](https://www.dafont.com/v5eastergothic.font)
28 |
--------------------------------------------------------------------------------
/styles/candy/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/candy/font_readme.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/font_readme.txt
--------------------------------------------------------------------------------
/styles/candy/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/screenshot.old.png
--------------------------------------------------------------------------------
/styles/candy/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/screenshot.png
--------------------------------------------------------------------------------
/styles/candy/style_candy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/style_candy.png
--------------------------------------------------------------------------------
/styles/candy/style_candy.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/style_candy.rgs
--------------------------------------------------------------------------------
/styles/candy/style_candy.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 15 charset.txt v5easter.ttf
11 | p 00 00 0xe58b68ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0xfeda96ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xe59b5fff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xee813fff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xfcd85bff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xfc6955ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xb34848ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xeb7272ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0xbd4a4aff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x94795dff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0xc2a37aff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x9c8369ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x0000000f TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0xd77575ff LINE_COLOR
26 | p 00 19 0xfff5e1ff BACKGROUND_COLOR
27 | p 00 20 0x00000016 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------
/styles/candy/v5easter.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/candy/v5easter.ttf
--------------------------------------------------------------------------------
/styles/cherry/README.md:
--------------------------------------------------------------------------------
1 | ## style: cherry
2 |
3 | Sweet with a touch of liquour, covered in chocolate, just give it a try! Not suitable for every palate, only the most demanding.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_cherry.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_cherry.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_cherry.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_cherry.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_cherry.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Westington" font by Hazel Abbiati.
26 |
27 | 100% free font, downloaded from dafont.com: [westington](https://www.dafont.com/westington.font)
28 |
--------------------------------------------------------------------------------
/styles/cherry/Westington.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cherry/Westington.ttf
--------------------------------------------------------------------------------
/styles/cherry/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/cherry/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cherry/screenshot.old.png
--------------------------------------------------------------------------------
/styles/cherry/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cherry/screenshot.png
--------------------------------------------------------------------------------
/styles/cherry/style_cherry.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cherry/style_cherry.png
--------------------------------------------------------------------------------
/styles/cherry/style_cherry.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cherry/style_cherry.rgs
--------------------------------------------------------------------------------
/styles/cherry/style_cherry.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 15 charset.txt Westington.ttf
11 | p 00 00 0xda5757ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x753233ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xe17373ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xfaaa97ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xe06262ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xfdb4aaff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xe03c46ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0x5b1e20ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0xc2474fff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0xa19292ff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x706060ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x9e8585ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x0000000f TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0xfb8170ff LINE_COLOR
26 | p 00 19 0x3a1720ff BACKGROUND_COLOR
27 | p 00 20 0x00000016 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------
/styles/cyber/Kyrou7Wide.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cyber/Kyrou7Wide.ttf
--------------------------------------------------------------------------------
/styles/cyber/README.md:
--------------------------------------------------------------------------------
1 | ## style: cyber
2 |
3 | Future is now! Neons and shadows, city never sleeps! Robots waiting in the corners and expensive vending machines! You got the style!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_cyber.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_cyber.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_cyber.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_cyber.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_cyber.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Grixel Kyrou 7 Wide" font by [Nikos Giannakopoulos](http://www.grixel.gr/).
26 |
27 | 100% free font, downloaded from dafont.com: [grixel-kyrou-7-wide](https://www.dafont.com/grixel-kyrou-7-wide.font)
28 |
--------------------------------------------------------------------------------
/styles/cyber/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/cyber/font_readme.txt:
--------------------------------------------------------------------------------
1 | Thank you for downloading the free Grixel fonts. You can use them in your personal and commercial projects too. They include Western European, Central European, Turkish and Greek characters. They are Unicode TrueType fonts and are optimized to work in both Windows XP and Mac OS X platforms using Adobe Photoshop CS2 and Macromedia Flash 8.
2 |
3 |
4 | Grixel fonts are under Creative Commons Attribution-NoDerivs 2.5 License which can be found here:
5 |
6 | http://creativecommons.org/licenses/by-nd/2.5/
7 |
8 | ===============================================================
9 | Attribution-NoDerivs 2.5
10 |
11 | You are free:
12 |
13 | * to copy, distribute, display, and perform the work
14 | * to make commercial use of the work
15 |
16 | Under the following conditions:
17 |
18 | by
19 | Attribution. You must attribute the work in the manner specified by the author or licensor.
20 |
21 | nd
22 | No Derivative Works. You may not alter, transform, or build upon this work.
23 |
24 | * For any reuse or distribution, you must make clear to others the license terms of this work.
25 | * Any of these conditions can be waived if you get permission from the copyright holder.
26 |
27 | Your fair use and other rights are in no way affected by the above.
28 | ===============================================================
29 |
30 |
31 | In no event shall Nikos Giannakopoulos be held liable to you for any consequential or incidental damages, including any lost revenue, profits, goodwill or savings, or for any claim by any third party caused by using these fonts.
32 |
33 | Please read the UsageGuides.pdf before you use them.
34 |
35 |
36 | Grixel - Greek pixel fonts | Nikos Giannakopoulos | www.grixel.gr
--------------------------------------------------------------------------------
/styles/cyber/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cyber/screenshot.old.png
--------------------------------------------------------------------------------
/styles/cyber/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cyber/screenshot.png
--------------------------------------------------------------------------------
/styles/cyber/style_cyber.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cyber/style_cyber.png
--------------------------------------------------------------------------------
/styles/cyber/style_cyber.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/cyber/style_cyber.rgs
--------------------------------------------------------------------------------
/styles/cyber/style_cyber.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 14 charset.txt Kyrou 7 Wide.ttf
11 | p 00 00 0x2f7486ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x024658ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0x51bfd3ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0x82cde0ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0x3299b4ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xb6e1eaff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xeb7630ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xffbc51ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0xd86f36ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x134b5aff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x02313dff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x17505fff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x0000000e TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0x81c0d0ff LINE_COLOR
26 | p 00 19 0x00222bff BACKGROUND_COLOR
27 | p 00 20 0x00000015 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------
/styles/dark/PixelOperator.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/dark/PixelOperator.ttf
--------------------------------------------------------------------------------
/styles/dark/README.md:
--------------------------------------------------------------------------------
1 | ## style: dark
2 |
3 | Classical dark style with an extra high-def colour touch! Elegant and professional, perfect for the expensive tools!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_dark.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_dark.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_dark.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_dark.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_dark.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Pixel Operator" font by de Jayvee Enaguas.
26 |
27 | CC0 1.0 Universal, downloaded from dafont.com: [pixel-operator](https://www.dafont.com/pixel-operator.font)
28 |
--------------------------------------------------------------------------------
/styles/dark/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/dark/font_LICENSE.txt:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/styles/dark/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/dark/screenshot.old.png
--------------------------------------------------------------------------------
/styles/dark/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/dark/screenshot.png
--------------------------------------------------------------------------------
/styles/dark/style_dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/dark/style_dark.png
--------------------------------------------------------------------------------
/styles/dark/style_dark.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/dark/style_dark.rgs
--------------------------------------------------------------------------------
/styles/dark/style_dark.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt PixelOperator.ttf
11 | p 00 00 0x878787ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x2c2c2cff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xc3c3c3ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xe1e1e1ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0x848484ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0x181818ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0x000000ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xefefefff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x202020ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x6a6a6aff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x818181ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x606060ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0x9d9d9dff LINE_COLOR
26 | p 00 19 0x3c3c3cff BACKGROUND_COLOR
27 | p 00 20 0x00000018 TEXT_LINE_SPACING
28 | p 01 05 0xf7f7f7ff LABEL_TEXT_COLOR_FOCUSED
29 | p 01 08 0x898989ff LABEL_TEXT_COLOR_PRESSED
30 | p 04 05 0xb0b0b0ff SLIDER_TEXT_COLOR_FOCUSED
31 | p 05 05 0x848484ff PROGRESSBAR_TEXT_COLOR_FOCUSED
32 | p 09 05 0xf5f5f5ff TEXTBOX_TEXT_COLOR_FOCUSED
33 | p 10 05 0xf6f6f6ff VALUEBOX_TEXT_COLOR_FOCUSED
34 |
--------------------------------------------------------------------------------
/styles/default/README.md:
--------------------------------------------------------------------------------
1 | ## style: default
2 |
3 | raylib style, simple and easy-to-use. Light colors, wide borders, a sophisticated touch.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_default.txt.rgs` | Text style file, no font data, uses raylib default font |
14 | | `style_default.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
15 |
16 | ## screenshot
17 |
18 | 
19 |
20 | ## about font
21 |
22 | raylib font by Ramon Santamaria ([@raysan5](https://twitter.com/raysan5)).
23 |
--------------------------------------------------------------------------------
/styles/default/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/default/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/default/screenshot.old.png
--------------------------------------------------------------------------------
/styles/default/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/default/screenshot.png
--------------------------------------------------------------------------------
/styles/default/style_default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/default/style_default.png
--------------------------------------------------------------------------------
/styles/default/style_default.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 10 charset.txt PixelOperator.ttf
11 |
--------------------------------------------------------------------------------
/styles/enefete/GenericMobileSystemNuevo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/enefete/GenericMobileSystemNuevo.ttf
--------------------------------------------------------------------------------
/styles/enefete/README.md:
--------------------------------------------------------------------------------
1 | ## style: enefete
2 |
3 | Inspired by money and pain, a desperate jump into the trendings train, a train to nowhere. Don't stare at it for too long!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_enefete.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_enefete.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_enefete.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_enefete.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_enefete.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Generic Mobile System" font by de Jayvee Enaguas.
26 |
27 | CC0 1.0 Universal, downloaded from dafont.com: [generic-mobile-system](https://www.dafont.com/generic-mobile-system.font)
28 |
--------------------------------------------------------------------------------
/styles/enefete/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/enefete/font_LICENSE.txt:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/styles/enefete/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/enefete/screenshot.old.png
--------------------------------------------------------------------------------
/styles/enefete/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/enefete/screenshot.png
--------------------------------------------------------------------------------
/styles/enefete/style_enefete.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/enefete/style_enefete.png
--------------------------------------------------------------------------------
/styles/enefete/style_enefete.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/enefete/style_enefete.rgs
--------------------------------------------------------------------------------
/styles/enefete/style_enefete.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt GenericMobileSystemNuevo.ttf
11 | p 00 00 0x1980d5ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x4df3ebff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0x103e60ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xe7e2f7ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0x23d4ddff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xf1f1f1ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0x6413a6ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xea66d9ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x9f00bbff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x4b909eff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x73c7d0ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x448894ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0x1d3f6cff LINE_COLOR
26 | p 00 19 0x29c9e5ff BACKGROUND_COLOR
27 | p 00 20 0x00000018 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------
/styles/genesis/PixelOperator.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/genesis/PixelOperator.ttf
--------------------------------------------------------------------------------
/styles/genesis/font_LICENSE.txt:
--------------------------------------------------------------------------------
1 | Creative Commons Legal Code
2 |
3 | CC0 1.0 Universal
4 |
5 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12 | HEREUNDER.
13 |
14 | Statement of Purpose
15 |
16 | The laws of most jurisdictions throughout the world automatically confer
17 | exclusive Copyright and Related Rights (defined below) upon the creator
18 | and subsequent owner(s) (each and all, an "owner") of an original work of
19 | authorship and/or a database (each, a "Work").
20 |
21 | Certain owners wish to permanently relinquish those rights to a Work for
22 | the purpose of contributing to a commons of creative, cultural and
23 | scientific works ("Commons") that the public can reliably and without fear
24 | of later claims of infringement build upon, modify, incorporate in other
25 | works, reuse and redistribute as freely as possible in any form whatsoever
26 | and for any purposes, including without limitation commercial purposes.
27 | These owners may contribute to the Commons to promote the ideal of a free
28 | culture and the further production of creative, cultural and scientific
29 | works, or to gain reputation or greater distribution for their Work in
30 | part through the use and efforts of others.
31 |
32 | For these and/or other purposes and motivations, and without any
33 | expectation of additional consideration or compensation, the person
34 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35 | is an owner of Copyright and Related Rights in the Work, voluntarily
36 | elects to apply CC0 to the Work and publicly distribute the Work under its
37 | terms, with knowledge of his or her Copyright and Related Rights in the
38 | Work and the meaning and intended legal effect of CC0 on those rights.
39 |
40 | 1. Copyright and Related Rights. A Work made available under CC0 may be
41 | protected by copyright and related or neighboring rights ("Copyright and
42 | Related Rights"). Copyright and Related Rights include, but are not
43 | limited to, the following:
44 |
45 | i. the right to reproduce, adapt, distribute, perform, display,
46 | communicate, and translate a Work;
47 | ii. moral rights retained by the original author(s) and/or performer(s);
48 | iii. publicity and privacy rights pertaining to a person's image or
49 | likeness depicted in a Work;
50 | iv. rights protecting against unfair competition in regards to a Work,
51 | subject to the limitations in paragraph 4(a), below;
52 | v. rights protecting the extraction, dissemination, use and reuse of data
53 | in a Work;
54 | vi. database rights (such as those arising under Directive 96/9/EC of the
55 | European Parliament and of the Council of 11 March 1996 on the legal
56 | protection of databases, and under any national implementation
57 | thereof, including any amended or successor version of such
58 | directive); and
59 | vii. other similar, equivalent or corresponding rights throughout the
60 | world based on applicable law or treaty, and any national
61 | implementations thereof.
62 |
63 | 2. Waiver. To the greatest extent permitted by, but not in contravention
64 | of, applicable law, Affirmer hereby overtly, fully, permanently,
65 | irrevocably and unconditionally waives, abandons, and surrenders all of
66 | Affirmer's Copyright and Related Rights and associated claims and causes
67 | of action, whether now known or unknown (including existing as well as
68 | future claims and causes of action), in the Work (i) in all territories
69 | worldwide, (ii) for the maximum duration provided by applicable law or
70 | treaty (including future time extensions), (iii) in any current or future
71 | medium and for any number of copies, and (iv) for any purpose whatsoever,
72 | including without limitation commercial, advertising or promotional
73 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74 | member of the public at large and to the detriment of Affirmer's heirs and
75 | successors, fully intending that such Waiver shall not be subject to
76 | revocation, rescission, cancellation, termination, or any other legal or
77 | equitable action to disrupt the quiet enjoyment of the Work by the public
78 | as contemplated by Affirmer's express Statement of Purpose.
79 |
80 | 3. Public License Fallback. Should any part of the Waiver for any reason
81 | be judged legally invalid or ineffective under applicable law, then the
82 | Waiver shall be preserved to the maximum extent permitted taking into
83 | account Affirmer's express Statement of Purpose. In addition, to the
84 | extent the Waiver is so judged Affirmer hereby grants to each affected
85 | person a royalty-free, non transferable, non sublicensable, non exclusive,
86 | irrevocable and unconditional license to exercise Affirmer's Copyright and
87 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
88 | maximum duration provided by applicable law or treaty (including future
89 | time extensions), (iii) in any current or future medium and for any number
90 | of copies, and (iv) for any purpose whatsoever, including without
91 | limitation commercial, advertising or promotional purposes (the
92 | "License"). The License shall be deemed effective as of the date CC0 was
93 | applied by Affirmer to the Work. Should any part of the License for any
94 | reason be judged legally invalid or ineffective under applicable law, such
95 | partial invalidity or ineffectiveness shall not invalidate the remainder
96 | of the License, and in such case Affirmer hereby affirms that he or she
97 | will not (i) exercise any of his or her remaining Copyright and Related
98 | Rights in the Work or (ii) assert any associated claims and causes of
99 | action with respect to the Work, in either case contrary to Affirmer's
100 | express Statement of Purpose.
101 |
102 | 4. Limitations and Disclaimers.
103 |
104 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
105 | surrendered, licensed or otherwise affected by this document.
106 | b. Affirmer offers the Work as-is and makes no representations or
107 | warranties of any kind concerning the Work, express, implied,
108 | statutory or otherwise, including without limitation warranties of
109 | title, merchantability, fitness for a particular purpose, non
110 | infringement, or the absence of latent or other defects, accuracy, or
111 | the present or absence of errors, whether or not discoverable, all to
112 | the greatest extent permissible under applicable law.
113 | c. Affirmer disclaims responsibility for clearing rights of other persons
114 | that may apply to the Work or any use thereof, including without
115 | limitation any person's Copyright and Related Rights in the Work.
116 | Further, Affirmer disclaims responsibility for obtaining any necessary
117 | consents, permissions or other rights required for any use of the
118 | Work.
119 | d. Affirmer understands and acknowledges that Creative Commons is not a
120 | party to this document and has no duty or obligation with respect to
121 | this CC0 or use of the Work.
122 |
--------------------------------------------------------------------------------
/styles/genesis/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/genesis/screenshot.png
--------------------------------------------------------------------------------
/styles/genesis/style_genesis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/genesis/style_genesis.png
--------------------------------------------------------------------------------
/styles/genesis/style_genesis.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/genesis/style_genesis.rgs
--------------------------------------------------------------------------------
/styles/jungle/PixelIntv.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/jungle/PixelIntv.otf
--------------------------------------------------------------------------------
/styles/jungle/README.md:
--------------------------------------------------------------------------------
1 | ## style: jungle
2 |
3 | Sunset in the jungle, trees do not let to see the last rays of sun on the horizon, small creek in the path, mug on the shoes, a touch of danger and the adventure feeling, get into your jeep and drive with this style.
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_jungle.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_jungle.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_jungle.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_jungle.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_jungle.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Pixel Intv" font by [Pixel Sagas](http://www.pixelsagas.com) (Neale and Shayna Davidson).
26 |
27 | 100% free font, downloaded from dafont.com: [pixel-intv](https://www.dafont.com/pixel-intv.font)
28 |
--------------------------------------------------------------------------------
/styles/jungle/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/jungle/font_readme.txt:
--------------------------------------------------------------------------------
1 | Shareware/ Font License
2 |
3 | Pixel Sagas Freeware Fonts EULA (End User License Agreement) and Software Inclusion Agreement
4 |
5 | "Purchaser" and "User" may be used interchangeably in this agreement.
6 |
7 | "Pixel Sagas" and "Neale Davidson" may be used interchangeably in this agreement. These all refer to the intellectual and legal property of Neale Davidson.
8 |
9 | Usage
10 |
11 | Pixel Saga's Shareware Fonts are free to use for personal, non-commercial purposes. No payment is necessary to use Pixel Saga's Freeware Fonts for personal use, and there is no limit to the amount of prints, pages, or other medium to be produced using them. However, you cannot offer the font for commercial sale, or offer for direct download. The inclusion othe font name and/or site URL in the credits or documentation when it is used is appreciated, but this is not mandatory.
12 |
13 | Payment
14 |
15 | Payment is not required for the use of Pixel Saga's Shareware Fonts. Commercial use requires a modest fee which can be paid through the pixelsagas.com web site through Paypal.com's services. The transaction receipt for any shareware "commercial license" purchase will suffice as proof of license.
16 |
17 | Support
18 |
19 | Font installation help is available at http://www.pixelsagas.com. If you experience problems with any Pixel Saga's Freeware font (such as spacing issues or missing characters), please verify that you have the correct and current version of the fonts. In the case of Freeware fonts, downloading the font directly from the Pixel Sagas site will ensure that the font files have not been altered.
20 |
21 | Software Inclusion Agreement
22 |
23 | Pixel Saga's software products are protected by copyright laws and International copyright treaties, as well as other intellectual property laws and treaties. All Pixel Saga's software products are licensed, not sold.
24 |
25 | 1) GRANT OF LICENSE
26 |
27 | This document grants the user the following rights:
28 |
29 | Installation and Use. The user may install and use an unlimited number of copies of the software product. The user may not offer Pixel Sagas freeware fonts for direct download unless the user has received explicit, written permission from Neale Davidson. Otherwise please direct users to the http://www.pixelsagas.com website. Pixel Sagas freeware fonts may, however, be embedded for web, publication, or general software use.
30 |
31 | 2) WARRANTIES
32 |
33 | None
34 |
35 | Pixel Sagas expressly disclaims any warranty for the software product. The software product and any related documentation is provided "as is" without warranty of any kind, either express or implied, including, without limitation, the implied warranties or merchantability, fitness for a particular purpose, or non-infringement. The entire risk arising out of use or performance of the software product remains with the user.
36 |
37 | No Liability For Consequential Damages.
38 |
39 | In no event shall Neale Davidson or Pixel Sagas be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or any other pecuniary loss) arising out of the use of or inability to use this product, even if Pixel Sagas has been advised of the possibility of such damages.
40 |
41 | 3) MISCELLANEOUS
42 |
43 | Should the user have any questions concerning this document or you desire to contact Neale Davidson for any reason, please email jaynz@pixelsagas.com .
44 |
45 | Governing Law
46 |
47 | This agreement is governed by and subject to the laws of the United States of America.
48 |
--------------------------------------------------------------------------------
/styles/jungle/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/jungle/screenshot.old.png
--------------------------------------------------------------------------------
/styles/jungle/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/jungle/screenshot.png
--------------------------------------------------------------------------------
/styles/jungle/style_jungle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/jungle/style_jungle.png
--------------------------------------------------------------------------------
/styles/jungle/style_jungle.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/jungle/style_jungle.rgs
--------------------------------------------------------------------------------
/styles/jungle/style_jungle.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 12 charset.txt Pixel Intv.otf
11 | p 00 00 0x60827dff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x2c3334ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0x82a29fff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0x5f9aa8ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0x334e57ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0x6aa9b8ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xa9cb8dff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0x3b6357ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x97af81ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x5b6462ff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x2c3334ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x666b69ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x0000000c TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0x638465ff LINE_COLOR
26 | p 00 19 0x2b3a3aff BACKGROUND_COLOR
27 | p 00 20 0x00000012 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------
/styles/lavanda/Cartridge.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/lavanda/Cartridge.ttf
--------------------------------------------------------------------------------
/styles/lavanda/README.md:
--------------------------------------------------------------------------------
1 | ## style: lavanda
2 |
3 | Walk thought the fields full of lavanda, feels like a dream, a touch of fantasy, just relax and close your eyes, could you feel it?
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_lavanda.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_lavanda.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_lavanda.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_lavanda.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_lavanda.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Cartridge" font by [jeti](https://fontenddev.com/)
26 |
27 | Licensed under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), downloaded from dafont.com: [cartridge](https://www.dafont.com/cartridge.font)
28 |
--------------------------------------------------------------------------------
/styles/lavanda/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/lavanda/font_readme.txt:
--------------------------------------------------------------------------------
1 | Cartridge by jeti: A decorative, Art Nouveau-inspired font with a dainty, fantastical hand-lettered feel.
2 |
3 | You are free to use this font for personal or commercial projects, all I ask is that you include credit.
4 |
5 | Licensed under CC BY 4.0: https://creativecommons.org/licenses/by/4.0/
6 | More info: https://fontenddev.com/fonts/cartridge/
7 |
--------------------------------------------------------------------------------
/styles/lavanda/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/lavanda/screenshot.old.png
--------------------------------------------------------------------------------
/styles/lavanda/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/lavanda/screenshot.png
--------------------------------------------------------------------------------
/styles/lavanda/style_lavanda.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/lavanda/style_lavanda.png
--------------------------------------------------------------------------------
/styles/lavanda/style_lavanda.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/lavanda/style_lavanda.rgs
--------------------------------------------------------------------------------
/styles/lavanda/style_lavanda.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt Cartridge.ttf
11 | p 00 00 0xab9bd3ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x3e4350ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xdadaf4ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xee84a0ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xf4b7c7ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xb7657bff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xd5c8dbff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0x966ec0ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0xd7ccf7ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x8fa2bdff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x6b798dff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x8292a9ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 18 0x84adb7ff LINE_COLOR
25 | p 00 19 0x5b5b81ff BACKGROUND_COLOR
26 | p 00 20 0x00000018 TEXT_LINE_SPACING
27 |
--------------------------------------------------------------------------------
/styles/rltech/2a03_memesbruh03.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/rltech/2a03_memesbruh03.ttf
--------------------------------------------------------------------------------
/styles/rltech/font_readme.txt:
--------------------------------------------------------------------------------
1 |
2 | Every font made by MB03 is 100% free for personal & commercial use.
3 | Including the font(s) in this archive.
4 |
5 |
6 |
7 | ~ memesbruh03~
8 |
9 | For more cool things, go to...:
10 | https://memesbruh03.neocities.org/
--------------------------------------------------------------------------------
/styles/rltech/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/rltech/screenshot.old.png
--------------------------------------------------------------------------------
/styles/rltech/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/rltech/screenshot.png
--------------------------------------------------------------------------------
/styles/rltech/style_rltech.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/rltech/style_rltech.png
--------------------------------------------------------------------------------
/styles/rltech/style_rltech.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/rltech/style_rltech.rgs
--------------------------------------------------------------------------------
/styles/sunny/GenericMobileSystemNuevo.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/sunny/GenericMobileSystemNuevo.ttf
--------------------------------------------------------------------------------
/styles/sunny/README.md:
--------------------------------------------------------------------------------
1 | ## style: sunny
2 |
3 | Sweet, colorful, sunny! Inspired by the [Playdate](https://play.date/) console and its [pulp](https://play.date/pulp/) editor!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_sunny.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_sunny.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_sunny.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_sunny.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_sunny.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Generic Mobile System" font by Jayvee Enaguas (HarvettFox96).
26 |
27 | CC0 free font, downloaded from dafont.com: [generic-mobile-system](https://www.dafont.com/es/generic-mobile-system.font)
28 |
--------------------------------------------------------------------------------
/styles/sunny/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/sunny/font_LICENSE.txt:
--------------------------------------------------------------------------------
1 | ===| Description |===
2 |
3 | Generic Mobile System is a raster proportional sans serif typeface, extracted from various generic/knockoff mobile devices, created with libre/free font editor software FontForge.
4 |
5 | Source files: https://notabug.org/HarvettFox96/ttf-genericmobile/
6 |
7 | ===| Update log |===
8 |
9 | Version 20190323.02:
10 |
11 | - OS/2 and TeX metric fixes.
12 | - Updated Panose.
13 |
14 | Version 20190323.01:
15 |
16 | - Added outline variant.
17 | - Minor fixes.
18 |
19 | Version 20190103.03:
20 |
21 | - Minor bearing tweaks. (Clásico only)
22 | - Minor fixes.
23 |
24 | Version 20190103.02:
25 |
26 | - Bearing tweaks from the different generic mobile phone as Cherry Mobile S5. (Clásico only)
27 | - Minor fixes.
28 |
29 | Version 20190103.01:
30 |
31 | - Initial public release.
32 |
33 | ===| Copyright/attribution notice |===
34 |
35 | © 2009-2019 Jayvee Enaguas (HarvettFox96). Released under a libre/free public domain licence as Creative Commons Zero (CC0) 1.0. Applies worldwide countries including the Philippines, Spain, etc.
36 |
37 |
38 | -------------------------------------------------------------------------------
39 |
40 | Creative Commons Legal Code
41 |
42 | CC0 1.0 Universal
43 |
44 | CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
45 | LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
46 | ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
47 | INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
48 | REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
49 | PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
50 | THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
51 | HEREUNDER.
52 |
53 | Statement of Purpose
54 |
55 | The laws of most jurisdictions throughout the world automatically confer
56 | exclusive Copyright and Related Rights (defined below) upon the creator
57 | and subsequent owner(s) (each and all, an "owner") of an original work of
58 | authorship and/or a database (each, a "Work").
59 |
60 | Certain owners wish to permanently relinquish those rights to a Work for
61 | the purpose of contributing to a commons of creative, cultural and
62 | scientific works ("Commons") that the public can reliably and without fear
63 | of later claims of infringement build upon, modify, incorporate in other
64 | works, reuse and redistribute as freely as possible in any form whatsoever
65 | and for any purposes, including without limitation commercial purposes.
66 | These owners may contribute to the Commons to promote the ideal of a free
67 | culture and the further production of creative, cultural and scientific
68 | works, or to gain reputation or greater distribution for their Work in
69 | part through the use and efforts of others.
70 |
71 | For these and/or other purposes and motivations, and without any
72 | expectation of additional consideration or compensation, the person
73 | associating CC0 with a Work (the "Affirmer"), to the extent that he or she
74 | is an owner of Copyright and Related Rights in the Work, voluntarily
75 | elects to apply CC0 to the Work and publicly distribute the Work under its
76 | terms, with knowledge of his or her Copyright and Related Rights in the
77 | Work and the meaning and intended legal effect of CC0 on those rights.
78 |
79 | 1. Copyright and Related Rights. A Work made available under CC0 may be
80 | protected by copyright and related or neighboring rights ("Copyright and
81 | Related Rights"). Copyright and Related Rights include, but are not
82 | limited to, the following:
83 |
84 | i. the right to reproduce, adapt, distribute, perform, display,
85 | communicate, and translate a Work;
86 | ii. moral rights retained by the original author(s) and/or performer(s);
87 | iii. publicity and privacy rights pertaining to a person's image or
88 | likeness depicted in a Work;
89 | iv. rights protecting against unfair competition in regards to a Work,
90 | subject to the limitations in paragraph 4(a), below;
91 | v. rights protecting the extraction, dissemination, use and reuse of data
92 | in a Work;
93 | vi. database rights (such as those arising under Directive 96/9/EC of the
94 | European Parliament and of the Council of 11 March 1996 on the legal
95 | protection of databases, and under any national implementation
96 | thereof, including any amended or successor version of such
97 | directive); and
98 | vii. other similar, equivalent or corresponding rights throughout the
99 | world based on applicable law or treaty, and any national
100 | implementations thereof.
101 |
102 | 2. Waiver. To the greatest extent permitted by, but not in contravention
103 | of, applicable law, Affirmer hereby overtly, fully, permanently,
104 | irrevocably and unconditionally waives, abandons, and surrenders all of
105 | Affirmer's Copyright and Related Rights and associated claims and causes
106 | of action, whether now known or unknown (including existing as well as
107 | future claims and causes of action), in the Work (i) in all territories
108 | worldwide, (ii) for the maximum duration provided by applicable law or
109 | treaty (including future time extensions), (iii) in any current or future
110 | medium and for any number of copies, and (iv) for any purpose whatsoever,
111 | including without limitation commercial, advertising or promotional
112 | purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
113 | member of the public at large and to the detriment of Affirmer's heirs and
114 | successors, fully intending that such Waiver shall not be subject to
115 | revocation, rescission, cancellation, termination, or any other legal or
116 | equitable action to disrupt the quiet enjoyment of the Work by the public
117 | as contemplated by Affirmer's express Statement of Purpose.
118 |
119 | 3. Public License Fallback. Should any part of the Waiver for any reason
120 | be judged legally invalid or ineffective under applicable law, then the
121 | Waiver shall be preserved to the maximum extent permitted taking into
122 | account Affirmer's express Statement of Purpose. In addition, to the
123 | extent the Waiver is so judged Affirmer hereby grants to each affected
124 | person a royalty-free, non transferable, non sublicensable, non exclusive,
125 | irrevocable and unconditional license to exercise Affirmer's Copyright and
126 | Related Rights in the Work (i) in all territories worldwide, (ii) for the
127 | maximum duration provided by applicable law or treaty (including future
128 | time extensions), (iii) in any current or future medium and for any number
129 | of copies, and (iv) for any purpose whatsoever, including without
130 | limitation commercial, advertising or promotional purposes (the
131 | "License"). The License shall be deemed effective as of the date CC0 was
132 | applied by Affirmer to the Work. Should any part of the License for any
133 | reason be judged legally invalid or ineffective under applicable law, such
134 | partial invalidity or ineffectiveness shall not invalidate the remainder
135 | of the License, and in such case Affirmer hereby affirms that he or she
136 | will not (i) exercise any of his or her remaining Copyright and Related
137 | Rights in the Work or (ii) assert any associated claims and causes of
138 | action with respect to the Work, in either case contrary to Affirmer's
139 | express Statement of Purpose.
140 |
141 | 4. Limitations and Disclaimers.
142 |
143 | a. No trademark or patent rights held by Affirmer are waived, abandoned,
144 | surrendered, licensed or otherwise affected by this document.
145 | b. Affirmer offers the Work as-is and makes no representations or
146 | warranties of any kind concerning the Work, express, implied,
147 | statutory or otherwise, including without limitation warranties of
148 | title, merchantability, fitness for a particular purpose, non
149 | infringement, or the absence of latent or other defects, accuracy, or
150 | the present or absence of errors, whether or not discoverable, all to
151 | the greatest extent permissible under applicable law.
152 | c. Affirmer disclaims responsibility for clearing rights of other persons
153 | that may apply to the Work or any use thereof, including without
154 | limitation any person's Copyright and Related Rights in the Work.
155 | Further, Affirmer disclaims responsibility for obtaining any necessary
156 | consents, permissions or other rights required for any use of the
157 | Work.
158 | d. Affirmer understands and acknowledges that Creative Commons is not a
159 | party to this document and has no duty or obligation with respect to
160 | this CC0 or use of the Work.
161 |
--------------------------------------------------------------------------------
/styles/sunny/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/sunny/screenshot.old.png
--------------------------------------------------------------------------------
/styles/sunny/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/sunny/screenshot.png
--------------------------------------------------------------------------------
/styles/sunny/style_sunny.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/sunny/style_sunny.png
--------------------------------------------------------------------------------
/styles/sunny/style_sunny.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/sunny/style_sunny.rgs
--------------------------------------------------------------------------------
/styles/sunny/style_sunny.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt GenericMobileSystemNuevo.ttf
11 | p 00 00 0x9c760aff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x594006ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0xf6d519ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xf6ee89ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0xf5f3d1ff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xf4cd19ff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0xf7e580ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0xf7f2c1ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x52470aff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0xc0be92ff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0xd3d3a1ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0xbcbc89ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0x725706ff LINE_COLOR
26 | p 00 19 0xf0be4bff BACKGROUND_COLOR
27 | p 00 20 0x00000018 TEXT_LINE_SPACING
28 | p 01 02 0x504506ff LABEL_TEXT_COLOR_NORMAL
29 | p 01 05 0xfdeb9bff LABEL_TEXT_COLOR_FOCUSED
30 | p 01 08 0xf5e8a4ff LABEL_TEXT_COLOR_PRESSED
31 | p 02 02 0xebc21fff BUTTON_TEXT_COLOR_NORMAL
32 | p 03 02 0xebc21fff TOGGLE_TEXT_COLOR_NORMAL
33 | p 04 02 0x81700fff SLIDER_TEXT_COLOR_NORMAL
34 | p 04 05 0xf4e49aff SLIDER_TEXT_COLOR_FOCUSED
35 | p 07 02 0xebc21fff COMBOBOX_TEXT_COLOR_NORMAL
36 | p 08 02 0xefd87bff DROPDOWNBOX_TEXT_COLOR_NORMAL
37 | p 08 05 0xd4b219ff DROPDOWNBOX_TEXT_COLOR_FOCUSED
38 | p 09 02 0x7a680bff TEXTBOX_TEXT_COLOR_NORMAL
39 | p 09 05 0xad931fff TEXTBOX_TEXT_COLOR_FOCUSED
40 | p 10 02 0x62570eff VALUEBOX_TEXT_COLOR_NORMAL
41 | p 10 05 0xf2df88ff VALUEBOX_TEXT_COLOR_FOCUSED
42 | p 12 02 0xf4e798ff LISTVIEW_TEXT_COLOR_NORMAL
43 | p 15 02 0xebc21fff STATUSBAR_TEXT_COLOR_NORMAL
44 |
--------------------------------------------------------------------------------
/styles/terminal/Mecha.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/terminal/Mecha.ttf
--------------------------------------------------------------------------------
/styles/terminal/README.md:
--------------------------------------------------------------------------------
1 | ## style: terminal
2 |
3 | Start your terminal and type your commands! Feel the connection the data flow, that's your style!
4 |
5 | 
6 |
7 | ## style: provided files
8 |
9 | Several options are provided to add the style to a `raygui` application, choose the one that better fits the project.
10 |
11 | | file name | description |
12 | | :-------- | :---------- |
13 | | `style_terminal.rgs` | Binary style file (raygui 4.0), font data compressed (recs, glyphs) |
14 | | `style_terminal.txt.rgs` | Text style file, no font data, requires external font provided |
15 | | `style_terminal.old.rgs` | Binary style file (raygui 3.x), font data uncompressed (recs, glyphs) |
16 | | `style_terminal.h` | Embeddable style as code file, self-contained, includes font data |
17 | | `style_terminal.png` | Style table image, contains `rGSf` chunk with binary `rgs` file data |
18 |
19 | ## screenshot
20 |
21 | 
22 |
23 | ## about font
24 |
25 | "Mecha" font by Captain Falcon.
26 |
27 | 100% free font, downloaded from dafont.com: [mecha-cf](https://www.dafont.com/mecha-cf.font)
28 |
--------------------------------------------------------------------------------
/styles/terminal/charset.txt:
--------------------------------------------------------------------------------
1 | !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~¡¢£€¥Š§š©ª«¬®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ
--------------------------------------------------------------------------------
/styles/terminal/screenshot.old.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/terminal/screenshot.old.png
--------------------------------------------------------------------------------
/styles/terminal/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/terminal/screenshot.png
--------------------------------------------------------------------------------
/styles/terminal/style_terminal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/terminal/style_terminal.png
--------------------------------------------------------------------------------
/styles/terminal/style_terminal.rgs:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/raysan5/raygui/40b8c25ec1b3237a564c2518a46fed94f53f9e41/styles/terminal/style_terminal.rgs
--------------------------------------------------------------------------------
/styles/terminal/style_terminal.txt.rgs:
--------------------------------------------------------------------------------
1 | #
2 | # rgs style text file (v4.0) - raygui style file generated using rGuiStyler
3 | #
4 | # Provided info:
5 | # f fontGenSize charsetFileName fontFileName
6 | # p Property description
7 | #
8 | # WARNING: This style uses a custom font, must be provided with style file
9 | #
10 | f 16 charset.txt Mecha.ttf
11 | p 00 00 0x1c8d00ff DEFAULT_BORDER_COLOR_NORMAL
12 | p 00 01 0x161313ff DEFAULT_BASE_COLOR_NORMAL
13 | p 00 02 0x38f620ff DEFAULT_TEXT_COLOR_NORMAL
14 | p 00 03 0xc3fbc6ff DEFAULT_BORDER_COLOR_FOCUSED
15 | p 00 04 0x43bf2eff DEFAULT_BASE_COLOR_FOCUSED
16 | p 00 05 0xdcfadcff DEFAULT_TEXT_COLOR_FOCUSED
17 | p 00 06 0x1f5b19ff DEFAULT_BORDER_COLOR_PRESSED
18 | p 00 07 0x43ff28ff DEFAULT_BASE_COLOR_PRESSED
19 | p 00 08 0x1e6f15ff DEFAULT_TEXT_COLOR_PRESSED
20 | p 00 09 0x223b22ff DEFAULT_BORDER_COLOR_DISABLED
21 | p 00 10 0x182c18ff DEFAULT_BASE_COLOR_DISABLED
22 | p 00 11 0x244125ff DEFAULT_TEXT_COLOR_DISABLED
23 | p 00 16 0x00000010 TEXT_SIZE
24 | p 00 17 0x00000000 TEXT_SPACING
25 | p 00 18 0xe6fce3ff LINE_COLOR
26 | p 00 19 0x0c1505ff BACKGROUND_COLOR
27 | p 00 20 0x00000018 TEXT_LINE_SPACING
28 |
--------------------------------------------------------------------------------