diff options
Diffstat (limited to 'src/raygui.h')
| -rw-r--r-- | src/raygui.h | 271 |
1 files changed, 271 insertions, 0 deletions
diff --git a/src/raygui.h b/src/raygui.h new file mode 100644 index 00000000..6906eca7 --- /dev/null +++ b/src/raygui.h @@ -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 |
