aboutsummaryrefslogtreecommitdiff
path: root/src/raygui.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/raygui.h')
-rw-r--r--src/raygui.h271
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