|
|
@ -0,0 +1,271 @@ |
|
|
|
/******************************************************************************************* |
|
|
|
* |
|
|
|
* raygui - raylib IMGUI system (Immedite Mode GUI) |
|
|
|
* |
|
|
|
* Copyright (c) 2015 Kevin Gato, Daniel Nicolás, Sergio Martinez and Ramon Santamaria |
|
|
|
* |
|
|
|
* This software is provided "as-is", without any express or implied warranty. In no event |
|
|
|
* will the authors be held liable for any damages arising from the use of this software. |
|
|
|
* |
|
|
|
* Permission is granted to anyone to use this software for any purpose, including commercial |
|
|
|
* applications, and to alter it and redistribute it freely, subject to the following restrictions: |
|
|
|
* |
|
|
|
* 1. The origin of this software must not be misrepresented; you must not claim that you |
|
|
|
* wrote the original software. If you use this software in a product, an acknowledgment |
|
|
|
* in the product documentation would be appreciated but is not required. |
|
|
|
* |
|
|
|
* 2. Altered source versions must be plainly marked as such, and must not be misrepresented |
|
|
|
* as being the original software. |
|
|
|
* |
|
|
|
* 3. This notice may not be removed or altered from any source distribution. |
|
|
|
* |
|
|
|
**********************************************************************************************/ |
|
|
|
#ifndef RAYGUI_H |
|
|
|
#define RAYGUI_H |
|
|
|
|
|
|
|
#include "raylib.h" |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Defines and Macros |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
#define NUM_PROPERTIES 98 |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Types and Structures Definition |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
typedef enum GuiProperty { |
|
|
|
GLOBAL_BASE_COLOR = 0, |
|
|
|
GLOBAL_BORDER_COLOR, |
|
|
|
GLOBAL_TEXT_COLOR, |
|
|
|
GLOBAL_TEXT_FONTSIZE, |
|
|
|
GLOBAL_BORDER_WIDTH, |
|
|
|
BACKGROUND_COLOR, |
|
|
|
LABEL_BORDER_WIDTH, |
|
|
|
LABEL_TEXT_COLOR, |
|
|
|
LABEL_TEXT_PADDING, |
|
|
|
BUTTON_BORDER_WIDTH, |
|
|
|
BUTTON_TEXT_PADDING, |
|
|
|
BUTTON_DEFAULT_BORDER_COLOR, |
|
|
|
BUTTON_DEFAULT_INSIDE_COLOR, |
|
|
|
BUTTON_DEFAULT_TEXT_COLOR, |
|
|
|
BUTTON_HOVER_BORDER_COLOR, |
|
|
|
BUTTON_HOVER_INSIDE_COLOR, |
|
|
|
BUTTON_HOVER_TEXT_COLOR, |
|
|
|
BUTTON_PRESSED_BORDER_COLOR, |
|
|
|
BUTTON_PRESSED_INSIDE_COLOR, |
|
|
|
BUTTON_PRESSED_TEXT_COLOR, |
|
|
|
TOGGLE_TEXT_PADDING, |
|
|
|
TOGGLE_BORDER_WIDTH, |
|
|
|
TOGGLE_DEFAULT_BORDER_COLOR, |
|
|
|
TOGGLE_DEFAULT_INSIDE_COLOR, |
|
|
|
TOGGLE_DEFAULT_TEXT_COLOR, |
|
|
|
TOGGLE_HOVER_BORDER_COLOR, |
|
|
|
TOGGLE_HOVER_INSIDE_COLOR, |
|
|
|
TOGGLE_HOVER_TEXT_COLOR, |
|
|
|
TOGGLE_PRESSED_BORDER_COLOR, |
|
|
|
TOGGLE_PRESSED_INSIDE_COLOR, |
|
|
|
TOGGLE_PRESSED_TEXT_COLOR, |
|
|
|
TOGGLE_ACTIVE_BORDER_COLOR, |
|
|
|
TOGGLE_ACTIVE_INSIDE_COLOR, |
|
|
|
TOGGLE_ACTIVE_TEXT_COLOR, |
|
|
|
TOGGLEGROUP_PADDING, |
|
|
|
SLIDER_BORDER_WIDTH, |
|
|
|
SLIDER_BUTTON_BORDER_WIDTH, |
|
|
|
SLIDER_BORDER_COLOR, |
|
|
|
SLIDER_INSIDE_COLOR, |
|
|
|
SLIDER_DEFAULT_COLOR, |
|
|
|
SLIDER_HOVER_COLOR, |
|
|
|
SLIDER_ACTIVE_COLOR, |
|
|
|
SLIDERBAR_BORDER_COLOR, |
|
|
|
SLIDERBAR_INSIDE_COLOR, |
|
|
|
SLIDERBAR_DEFAULT_COLOR, |
|
|
|
SLIDERBAR_HOVER_COLOR, |
|
|
|
SLIDERBAR_ACTIVE_COLOR, |
|
|
|
SLIDERBAR_ZERO_LINE_COLOR, |
|
|
|
PROGRESSBAR_BORDER_COLOR, |
|
|
|
PROGRESSBAR_INSIDE_COLOR, |
|
|
|
PROGRESSBAR_PROGRESS_COLOR, |
|
|
|
PROGRESSBAR_BORDER_WIDTH, |
|
|
|
SPINNER_LABEL_BORDER_COLOR, |
|
|
|
SPINNER_LABEL_INSIDE_COLOR, |
|
|
|
SPINNER_DEFAULT_BUTTON_BORDER_COLOR, |
|
|
|
SPINNER_DEFAULT_BUTTON_INSIDE_COLOR, |
|
|
|
SPINNER_DEFAULT_SYMBOL_COLOR, |
|
|
|
SPINNER_DEFAULT_TEXT_COLOR, |
|
|
|
SPINNER_HOVER_BUTTON_BORDER_COLOR, |
|
|
|
SPINNER_HOVER_BUTTON_INSIDE_COLOR, |
|
|
|
SPINNER_HOVER_SYMBOL_COLOR, |
|
|
|
SPINNER_HOVER_TEXT_COLOR, |
|
|
|
SPINNER_PRESSED_BUTTON_BORDER_COLOR, |
|
|
|
SPINNER_PRESSED_BUTTON_INSIDE_COLOR, |
|
|
|
SPINNER_PRESSED_SYMBOL_COLOR, |
|
|
|
SPINNER_PRESSED_TEXT_COLOR, |
|
|
|
COMBOBOX_PADDING, |
|
|
|
COMBOBOX_BUTTON_WIDTH, |
|
|
|
COMBOBOX_BUTTON_HEIGHT, |
|
|
|
COMBOBOX_BORDER_WIDTH, |
|
|
|
COMBOBOX_DEFAULT_BORDER_COLOR, |
|
|
|
COMBOBOX_DEFAULT_INSIDE_COLOR, |
|
|
|
COMBOBOX_DEFAULT_TEXT_COLOR, |
|
|
|
COMBOBOX_DEFAULT_LIST_TEXT_COLOR, |
|
|
|
COMBOBOX_HOVER_BORDER_COLOR, |
|
|
|
COMBOBOX_HOVER_INSIDE_COLOR, |
|
|
|
COMBOBOX_HOVER_TEXT_COLOR, |
|
|
|
COMBOBOX_HOVER_LIST_TEXT_COLOR, |
|
|
|
COMBOBOX_PRESSED_BORDER_COLOR, |
|
|
|
COMBOBOX_PRESSED_INSIDE_COLOR, |
|
|
|
COMBOBOX_PRESSED_TEXT_COLOR, |
|
|
|
COMBOBOX_PRESSED_LIST_BORDER_COLOR, |
|
|
|
COMBOBOX_PRESSED_LIST_INSIDE_COLOR, |
|
|
|
COMBOBOX_PRESSED_LIST_TEXT_COLOR, |
|
|
|
CHECKBOX_DEFAULT_BORDER_COLOR, |
|
|
|
CHECKBOX_DEFAULT_INSIDE_COLOR, |
|
|
|
CHECKBOX_HOVER_BORDER_COLOR, |
|
|
|
CHECKBOX_HOVER_INSIDE_COLOR, |
|
|
|
CHECKBOX_CLICK_BORDER_COLOR, |
|
|
|
CHECKBOX_CLICK_INSIDE_COLOR, |
|
|
|
CHECKBOX_STATUS_ACTIVE_COLOR, |
|
|
|
CHECKBOX_INSIDE_WIDTH, |
|
|
|
TEXTBOX_BORDER_WIDTH, |
|
|
|
TEXTBOX_BORDER_COLOR, |
|
|
|
TEXTBOX_INSIDE_COLOR, |
|
|
|
TEXTBOX_TEXT_COLOR, |
|
|
|
TEXTBOX_LINE_COLOR, |
|
|
|
TEXTBOX_TEXT_FONTSIZE |
|
|
|
} GuiProperty; |
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
extern "C" { // Prevents name mangling of functions |
|
|
|
#endif |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Global Variables Definition |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
static const char *guiPropertyName[] = { |
|
|
|
"GLOBAL_BASE_COLOR", |
|
|
|
"GLOBAL_BORDER_COLOR", |
|
|
|
"GLOBAL_TEXT_COLOR", |
|
|
|
"GLOBAL_TEXT_FONTSIZE", |
|
|
|
"GLOBAL_BORDER_WIDTH", |
|
|
|
"BACKGROUND_COLOR", |
|
|
|
"LABEL_BORDER_WIDTH", |
|
|
|
"LABEL_TEXT_COLOR", |
|
|
|
"LABEL_TEXT_PADDING", |
|
|
|
"BUTTON_BORDER_WIDTH", |
|
|
|
"BUTTON_TEXT_PADDING", |
|
|
|
"BUTTON_DEFAULT_BORDER_COLOR", |
|
|
|
"BUTTON_DEFAULT_INSIDE_COLOR", |
|
|
|
"BUTTON_DEFAULT_TEXT_COLOR", |
|
|
|
"BUTTON_HOVER_BORDER_COLOR", |
|
|
|
"BUTTON_HOVER_INSIDE_COLOR", |
|
|
|
"BUTTON_HOVER_TEXT_COLOR", |
|
|
|
"BUTTON_PRESSED_BORDER_COLOR", |
|
|
|
"BUTTON_PRESSED_INSIDE_COLOR", |
|
|
|
"BUTTON_PRESSED_TEXT_COLOR", |
|
|
|
"TOGGLE_TEXT_PADDING", |
|
|
|
"TOGGLE_BORDER_WIDTH", |
|
|
|
"TOGGLE_DEFAULT_BORDER_COLOR", |
|
|
|
"TOGGLE_DEFAULT_INSIDE_COLOR", |
|
|
|
"TOGGLE_DEFAULT_TEXT_COLOR", |
|
|
|
"TOGGLE_HOVER_BORDER_COLOR", |
|
|
|
"TOGGLE_HOVER_INSIDE_COLOR", |
|
|
|
"TOGGLE_HOVER_TEXT_COLOR", |
|
|
|
"TOGGLE_PRESSED_BORDER_COLOR", |
|
|
|
"TOGGLE_PRESSED_INSIDE_COLOR", |
|
|
|
"TOGGLE_PRESSED_TEXT_COLOR", |
|
|
|
"TOGGLE_ACTIVE_BORDER_COLOR", |
|
|
|
"TOGGLE_ACTIVE_INSIDE_COLOR", |
|
|
|
"TOGGLE_ACTIVE_TEXT_COLOR", |
|
|
|
"TOGGLEGROUP_PADDING", |
|
|
|
"SLIDER_BORDER_WIDTH", |
|
|
|
"SLIDER_BUTTON_BORDER_WIDTH", |
|
|
|
"SLIDER_BORDER_COLOR", |
|
|
|
"SLIDER_INSIDE_COLOR", |
|
|
|
"SLIDER_DEFAULT_COLOR", |
|
|
|
"SLIDER_HOVER_COLOR", |
|
|
|
"SLIDER_ACTIVE_COLOR", |
|
|
|
"SLIDERBAR_BORDER_COLOR", |
|
|
|
"SLIDERBAR_INSIDE_COLOR", |
|
|
|
"SLIDERBAR_DEFAULT_COLOR", |
|
|
|
"SLIDERBAR_HOVER_COLOR", |
|
|
|
"SLIDERBAR_ACTIVE_COLOR", |
|
|
|
"SLIDERBAR_ZERO_LINE_COLOR", |
|
|
|
"PROGRESSBAR_BORDER_COLOR", |
|
|
|
"PROGRESSBAR_INSIDE_COLOR", |
|
|
|
"PROGRESSBAR_PROGRESS_COLOR", |
|
|
|
"PROGRESSBAR_BORDER_WIDTH", |
|
|
|
"SPINNER_LABEL_BORDER_COLOR", |
|
|
|
"SPINNER_LABEL_INSIDE_COLOR", |
|
|
|
"SPINNER_DEFAULT_BUTTON_BORDER_COLOR", |
|
|
|
"SPINNER_DEFAULT_BUTTON_INSIDE_COLOR", |
|
|
|
"SPINNER_DEFAULT_SYMBOL_COLOR", |
|
|
|
"SPINNER_DEFAULT_TEXT_COLOR", |
|
|
|
"SPINNER_HOVER_BUTTON_BORDER_COLOR", |
|
|
|
"SPINNER_HOVER_BUTTON_INSIDE_COLOR", |
|
|
|
"SPINNER_HOVER_SYMBOL_COLOR", |
|
|
|
"SPINNER_HOVER_TEXT_COLOR", |
|
|
|
"SPINNER_PRESSED_BUTTON_BORDER_COLOR", |
|
|
|
"SPINNER_PRESSED_BUTTON_INSIDE_COLOR", |
|
|
|
"SPINNER_PRESSED_SYMBOL_COLOR", |
|
|
|
"SPINNER_PRESSED_TEXT_COLOR", |
|
|
|
"COMBOBOX_PADDING", |
|
|
|
"COMBOBOX_BUTTON_WIDTH", |
|
|
|
"COMBOBOX_BUTTON_HEIGHT", |
|
|
|
"COMBOBOX_BORDER_WIDTH", |
|
|
|
"COMBOBOX_DEFAULT_BORDER_COLOR", |
|
|
|
"COMBOBOX_DEFAULT_INSIDE_COLOR", |
|
|
|
"COMBOBOX_DEFAULT_TEXT_COLOR", |
|
|
|
"COMBOBOX_DEFAULT_LIST_TEXT_COLOR", |
|
|
|
"COMBOBOX_HOVER_BORDER_COLOR", |
|
|
|
"COMBOBOX_HOVER_INSIDE_COLOR", |
|
|
|
"COMBOBOX_HOVER_TEXT_COLOR", |
|
|
|
"COMBOBOX_HOVER_LIST_TEXT_COLOR", |
|
|
|
"COMBOBOX_PRESSED_BORDER_COLOR", |
|
|
|
"COMBOBOX_PRESSED_INSIDE_COLOR", |
|
|
|
"COMBOBOX_PRESSED_TEXT_COLOR", |
|
|
|
"COMBOBOX_PRESSED_LIST_BORDER_COLOR", |
|
|
|
"COMBOBOX_PRESSED_LIST_INSIDE_COLOR", |
|
|
|
"COMBOBOX_PRESSED_LIST_TEXT_COLOR", |
|
|
|
"CHECKBOX_DEFAULT_BORDER_COLOR", |
|
|
|
"CHECKBOX_DEFAULT_INSIDE_COLOR", |
|
|
|
"CHECKBOX_HOVER_BORDER_COLOR", |
|
|
|
"CHECKBOX_HOVER_INSIDE_COLOR", |
|
|
|
"CHECKBOX_CLICK_BORDER_COLOR", |
|
|
|
"CHECKBOX_CLICK_INSIDE_COLOR", |
|
|
|
"CHECKBOX_STATUS_ACTIVE_COLOR", |
|
|
|
"CHECKBOX_INSIDE_WIDTH", |
|
|
|
"TEXTBOX_BORDER_WIDTH", |
|
|
|
"TEXTBOX_BORDER_COLOR", |
|
|
|
"TEXTBOX_INSIDE_COLOR", |
|
|
|
"TEXTBOX_TEXT_COLOR", |
|
|
|
"TEXTBOX_LINE_COLOR", |
|
|
|
"TEXTBOX_TEXT_FONTSIZE" |
|
|
|
}; |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
// Module Functions Declaration |
|
|
|
//---------------------------------------------------------------------------------- |
|
|
|
void GuiLabel(Rectangle bounds, const char *text); // Label element, show text |
|
|
|
void GuiLabelEx(Rectangle bounds, const char *text, Color textColor, Color border, Color inner); // Label element extended, configurable colors |
|
|
|
bool GuiButton(Rectangle bounds, const char *text); // Button element, returns true when clicked |
|
|
|
bool GuiToggleButton(Rectangle bounds, const char *text, bool toggle); // Toggle Button element, returns true when active |
|
|
|
int GuiToggleGroup(Rectangle bounds, int toggleNum, char **toggleText, int toggleActive); // Toggle Group element, returns toggled button index |
|
|
|
int GuiComboBox(Rectangle bounds, int comboNum, char **comboText, int comboActive); // Combo Box element, returns selected item index |
|
|
|
bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box element, returns true when active |
|
|
|
float GuiSlider(Rectangle bounds, float value, float minValue, float maxValue); // Slider element, returns selected value |
|
|
|
float GuiSliderBar(Rectangle bounds, float value, float minValue, float maxValue); // Slider Bar element, returns selected value |
|
|
|
void GuiProgressBar(Rectangle bounds, float value); // Progress Bar element, shows current progress value |
|
|
|
int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue); // Spinner element, returns selected value |
|
|
|
char *GuiTextBox(Rectangle bounds, char *text); // Text Box element, returns input text |
|
|
|
|
|
|
|
void SaveGuiStyle(const char *fileName); // Save GUI style file |
|
|
|
void LoadGuiStyle(const char *fileName); // Load GUI style file |
|
|
|
|
|
|
|
void SetStyleProperty(int guiProperty, int value); // Set one style property |
|
|
|
int GetStyleProperty(int guiProperty); // Get one style property |
|
|
|
|
|
|
|
#ifdef __cplusplus |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // RAYGUI_H |