From 66a1084acc21ae3eb75c6345331bcbf8ac05e20b Mon Sep 17 00:00:00 2001 From: Ray Date: Sun, 5 Nov 2017 16:50:01 +0100 Subject: [PATCH] Redesigning style loading system --- src/raygui.h | 557 ++++++++++--------- tools/rGuiStyler/rguistyle_default.psd | Bin 0 -> 34790 bytes tools/rGuiStyler/rguistyle_default_dark.png | Bin 0 -> 1241 bytes tools/rGuiStyler/rguistyle_default_light.png | Bin 0 -> 1249 bytes tools/rGuiStyler/rguistyler.c | 10 +- tools/rGuiStyler/rguistyler_REV1.png | Bin 0 -> 67811 bytes 6 files changed, 312 insertions(+), 255 deletions(-) create mode 100644 tools/rGuiStyler/rguistyle_default.psd create mode 100644 tools/rGuiStyler/rguistyle_default_dark.png create mode 100644 tools/rGuiStyler/rguistyle_default_light.png create mode 100644 tools/rGuiStyler/rguistyler_REV1.png diff --git a/src/raygui.h b/src/raygui.h index 27843ad..795c3ae 100644 --- a/src/raygui.h +++ b/src/raygui.h @@ -145,6 +145,27 @@ } Rectangle; #endif +typedef enum GuiPropertyGeneric { + DEFAULT_BACKGROUND_COLOR, + DEFAULT_LINES_COLOR, + DEFAULT_TEXT_FONT, + DEFAULT_TEXT_SIZE, + DEFAULT_BORDER_WIDTH, + // Generic controls color style + DEFAULT_BORDER_COLOR_NORMAL, + DEFAULT_BASE_COLOR_NORMAL, + DEFAULT_TEXT_COLOR_NORMAL, + DEFAULT_BORDER_COLOR_FOCUSED, + DEFAULT_BASE_COLOR_FOCUSED, + DEFAULT_TEXT_COLOR_FOCUSED, + DEFAULT_BORDER_COLOR_PRESSED, + DEFAULT_BASE_COLOR_PRESSED, + DEFAULT_TEXT_COLOR_PRESSED, + DEFAULT_BORDER_COLOR_DISABLED, + DEFAULT_BASE_COLOR_DISABLED, + DEFAULT_TEXT_COLOR_DISABLED, +} GuiPropertyGeneric; + // Gui properties enumeration typedef enum GuiProperty { // Label @@ -267,6 +288,9 @@ RAYGUIDEF void GuiTextBox(Rectangle bounds, char *text, int textSize); RAYGUIDEF void GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with title name RAYGUIDEF Color GuiColorPicker(Rectangle bounds, Color color); // Color Picker control +RAYGUIDEF void LoadGuiStyleImage(const char *fileName); // Load GUI style from a text file +RAYGUIDEF void UpdateStyleComplete(void); // Updates full style property set with generic values + #if defined RAYGUI_STANDALONE // NOTE: raygui depend on some raylib input and drawing functions // TODO: To use raygui as standalone library, those functions must be called per frame @@ -335,227 +359,134 @@ typedef enum { DISABLED, NORMAL, FOCUSED, PRESSED } ControlState; //---------------------------------------------------------------------------------- // Global Variables Definition //---------------------------------------------------------------------------------- -//static Vector2 panelOffset = { 0, 0 }; -//static ControlState state = NORMAL; - +static int styleGeneric[20] = { #if defined(RAYGUI_STYLE_DEFAULT_LIGHT) - - #define DEFAULT_BACKGROUND_COLOR 0xf5f5f5ff - #define DEFAULT_LINES_COLOR 0x90abb5ff - #define DEFAULT_TEXT_FONT 0 - #define DEFAULT_TEXT_SIZE 10 - #define DEFAULT_BORDER_WIDTH 1 - - #define DEFAULT_BORDER_COLOR_NORMAL 0x828282ff - #define DEFAULT_BASE_COLOR_NORMAL 0xc8c8c8ff - #define DEFAULT_TEXT_COLOR_NORMAL 0x686868ff - #define DEFAULT_BORDER_COLOR_FOCUSED 0x7bb0d6ff - #define DEFAULT_BASE_COLOR_FOCUSED 0xc9effeff - #define DEFAULT_TEXT_COLOR_FOCUSED 0x6c9bbcff - #define DEFAULT_BORDER_COLOR_PRESSED 0x048cc7ff - #define DEFAULT_BASE_COLOR_PRESSED 0x7ceafeff - #define DEFAULT_TEXT_COLOR_PRESSED 0x0480b5ff - #define DEFAULT_BORDER_COLOR_DISABLED 0xb1b1b1ff - #define DEFAULT_BASE_COLOR_DISABLED 0xfafafaff - #define DEFAULT_TEXT_COLOR_DISABLED 0xc8c8c8ff - + 0xf5f5f5ff, // DEFAULT_BACKGROUND_COLOR + 0x90abb5ff, // DEFAULT_LINES_COLOR + 0, // DEFAULT_TEXT_FONT + 10, // styleGeneric[DEFAULT_TEXT_SIZE] + 1, // DEFAULT_BORDER_WIDTH + // Generic controls color style + 0x828282ff, // DEFAULT_BORDER_COLOR_NORMAL + 0xc8c8c8ff, // DEFAULT_BASE_COLOR_NORMAL + 0x686868ff, // DEFAULT_TEXT_COLOR_NORMAL + 0x7bb0d6ff, // DEFAULT_BORDER_COLOR_FOCUSED + 0xc9effeff, // DEFAULT_BASE_COLOR_FOCUSED + 0x6c9bbcff, // DEFAULT_TEXT_COLOR_FOCUSED + 0x048cc7ff, // DEFAULT_BORDER_COLOR_PRESSED + 0x7ceafeff, // DEFAULT_BASE_COLOR_PRESSED + 0x0480b5ff, // DEFAULT_TEXT_COLOR_PRESSED + 0xb1b1b1ff, // DEFAULT_BORDER_COLOR_DISABLED + 0xfafafaff, // DEFAULT_BASE_COLOR_DISABLED + 0xc8c8c8ff // DEFAULT_TEXT_COLOR_DISABLED #elif defined(RAYGUI_STYLE_DEFAULT_DARK) - - #define DEFAULT_BACKGROUND_COLOR 0xf5f5f5ff - #define DEFAULT_LINES_COLOR 0x90abb5ff - #define DEFAULT_TEXT_FONT 0 - #define DEFAULT_TEXT_SIZE 10 - #define DEFAULT_BORDER_WIDTH 1 - - #define DEFAULT_BORDER_COLOR_NORMAL 0x828282ff - #define DEFAULT_BASE_COLOR_NORMAL 0xc8c8c8ff - #define DEFAULT_TEXT_COLOR_NORMAL 0x686868ff - #define DEFAULT_BORDER_COLOR_FOCUSED 0x7bb0d6ff - #define DEFAULT_BASE_COLOR_FOCUSED 0xc9effeff - #define DEFAULT_TEXT_COLOR_FOCUSED 0x6c9bbcff - #define DEFAULT_BORDER_COLOR_PRESSED 0x048cc7ff - #define DEFAULT_BASE_COLOR_PRESSED 0x7ceafeff - #define DEFAULT_TEXT_COLOR_PRESSED 0x0480b5ff - #define DEFAULT_BORDER_COLOR_DISABLED 0xb1b1b1ff - #define DEFAULT_BASE_COLOR_DISABLED 0xfafafaff - #define DEFAULT_TEXT_COLOR_DISABLED 0xc8c8c8ff - + 0xf5f5f5ff, // DEFAULT_BACKGROUND_COLOR + 0x90abb5ff, // DEFAULT_LINES_COLOR + 0, // DEFAULT_TEXT_FONT + 10, // styleGeneric[DEFAULT_TEXT_SIZE] + 1, // DEFAULT_BORDER_WIDTH + // Generic controls color style + 0x828282ff, // DEFAULT_BORDER_COLOR_NORMAL + 0xc8c8c8ff, // DEFAULT_BASE_COLOR_NORMAL + 0x686868ff, // DEFAULT_TEXT_COLOR_NORMAL + 0x7bb0d6ff, // DEFAULT_BORDER_COLOR_FOCUSED + 0xc9effeff, // DEFAULT_BASE_COLOR_FOCUSED + 0x6c9bbcff, // DEFAULT_TEXT_COLOR_FOCUSED + 0x048cc7ff, // DEFAULT_BORDER_COLOR_PRESSED + 0x7ceafeff, // DEFAULT_BASE_COLOR_PRESSED + 0x0480b5ff, // DEFAULT_TEXT_COLOR_PRESSED + 0xb1b1b1ff, // DEFAULT_BORDER_COLOR_DISABLED + 0xfafafaff, // DEFAULT_BASE_COLOR_DISABLED + 0xc8c8c8ff // DEFAULT_TEXT_COLOR_DISABLED #endif +}; // Current GUI style (default light) static int style[NUM_PROPERTIES] = { - DEFAULT_TEXT_COLOR_NORMAL, // LABEL_TEXT_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_FOCUSED, // LABEL_TEXT_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_PRESSED, // LABEL_TEXT_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH*2, // BUTTON_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // BUTTON_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // BUTTON_BASE_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_NORMAL, // BUTTON_TEXT_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // BUTTON_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // BUTTON_BASE_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // BUTTON_TEXT_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // BUTTON_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // BUTTON_BASE_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // BUTTON_TEXT_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // TOGGLE_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // TOGGLE_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // TOGGLE_BASE_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_NORMAL, // TOGGLE_TEXT_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // TOGGLE_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // TOGGLE_BASE_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // TOGGLE_TEXT_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // TOGGLE_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // TOGGLE_BASE_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // TOGGLE_TEXT_COLOR_PRESSED, - 2, // TOGGLEGROUP_PADDING, - DEFAULT_BORDER_WIDTH, // SLIDER_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // SLIDER_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // SLIDER_BASE_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // SLIDER_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // SLIDER_BASE_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // SLIDER_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // SLIDER_BASE_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // SLIDERBAR_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // SLIDERBAR_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // SLIDERBAR_BASE_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // SLIDERBAR_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // SLIDERBAR_BASE_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // SLIDERBAR_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // SLIDERBAR_BASE_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // PROGRESSBAR_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // PROGRESSBAR_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_FOCUSED, // PROGRESSBAR_BASE_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // PROGRESSBAR_BORDER_COLOR_FOCUSED - DEFAULT_BASE_COLOR_PRESSED, // PROGRESSBAR_BASE_COLOR_FOCUSED, - 2, // SPINNER_BUTTON_PADDING - DEFAULT_BORDER_COLOR_NORMAL, // SPINNER_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // SPINNER_BASE_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_NORMAL, // SPINNER_TEXT_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // SPINNER_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // SPINNER_BASE_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // SPINNER_TEXT_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // SPINNER_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // SPINNER_BASE_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // SPINNER_TEXT_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // COMBOBOX_BORDER_WIDTH, - 2, // COMBOBOX_BUTTON_PADDING, - DEFAULT_BORDER_COLOR_NORMAL, // COMBOBOX_BORDER_COLOR_NORMAL, - DEFAULT_BASE_COLOR_NORMAL, // COMBOBOX_BASE_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_NORMAL, // COMBOBOX_TEXT_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // COMBOBOX_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // COMBOBOX_BASE_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // COMBOBOX_TEXT_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // COMBOBOX_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // COMBOBOX_BASE_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // COMBOBOX_TEXT_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // CHECKBOX_BORDER_WIDTH, - 1, // CHECKBOX_INNER_PADDING, - DEFAULT_BORDER_COLOR_NORMAL, // CHECKBOX_BORDER_COLOR_NORMAL, - DEFAULT_BACKGROUND_COLOR, // CHECKBOX_BASE_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // CHECKBOX_BORDER_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // CHECKBOX_BASE_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // CHECKBOX_BORDER_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // CHECKBOX_BASE_COLOR_PRESSED, - DEFAULT_BORDER_WIDTH, // TEXTBOX_BORDER_WIDTH, - DEFAULT_BORDER_COLOR_NORMAL, // TEXTBOX_BORDER_COLOR_NORMAL, - DEFAULT_BACKGROUND_COLOR, // TEXTBOX_BASE_COLOR_NORMAL, - DEFAULT_TEXT_COLOR_NORMAL, // TEXTBOX_TEXT_COLOR_NORMAL, - DEFAULT_BORDER_COLOR_FOCUSED, // TEXTBOX_BORDER_COLOR_FOCUSED, - DEFAULT_BASE_COLOR_FOCUSED, // TEXTBOX_BASE_COLOR_FOCUSED, - DEFAULT_TEXT_COLOR_FOCUSED, // TEXTBOX_TEXT_COLOR_FOCUSED, - DEFAULT_BORDER_COLOR_PRESSED, // TEXTBOX_BORDER_COLOR_PRESSED, - DEFAULT_BASE_COLOR_PRESSED, // TEXTBOX_BASE_COLOR_PRESSED, - DEFAULT_TEXT_COLOR_PRESSED, // TEXTBOX_TEXT_COLOR_PRESSED, + 0x686868ff, // LABEL_TEXT_COLOR_NORMAL -----> DEFAULT_TEXT_COLOR_NORMAL + 0x6c9bbcff, // LABEL_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x0480b5ff, // LABEL_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 2, // BUTTON_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // BUTTON_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // BUTTON_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // BUTTON_TEXT_COLOR_NORMAL ----> DEFAULT_TEXT_COLOR_NORMAL + 0x000000ff, // BUTTON_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // BUTTON_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // BUTTON_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // BUTTON_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // BUTTON_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // BUTTON_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 0x000000ff, // TOGGLE_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // TOGGLE_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // TOGGLE_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // TOGGLE_TEXT_COLOR_NORMAL ----> DEFAULT_TEXT_COLOR_NORMAL + 0x000000ff, // TOGGLE_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // TOGGLE_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // TOGGLE_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // TOGGLE_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // TOGGLE_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // TOGGLE_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 2, // TOGGLEGROUP_PADDING + 0x000000ff, // SLIDER_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // SLIDER_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // SLIDER_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // SLIDER_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // SLIDER_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // SLIDER_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // SLIDER_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // SLIDERBAR_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // SLIDERBAR_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // SLIDERBAR_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // SLIDERBAR_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // SLIDERBAR_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // SLIDERBAR_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // SLIDERBAR_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // PROGRESSBAR_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // PROGRESSBAR_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // PROGRESSBAR_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // PROGRESSBAR_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // PROGRESSBAR_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_PRESSED + 2, // SPINNER_BUTTON_PADDING + 0x000000ff, // SPINNER_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // SPINNER_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // SPINNER_TEXT_COLOR_NORMAL ----> DEFAULT_TEXT_COLOR_NORMAL + 0x000000ff, // SPINNER_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // SPINNER_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // SPINNER_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // SPINNER_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // SPINNER_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // SPINNER_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 0x000000ff, // COMBOBOX_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 2, // COMBOBOX_BUTTON_PADDING + 0x000000ff, // COMBOBOX_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // COMBOBOX_BASE_COLOR_NORMAL ----> DEFAULT_BASE_COLOR_NORMAL + 0x000000ff, // COMBOBOX_TEXT_COLOR_NORMAL ----> DEFAULT_TEXT_COLOR_NORMAL + 0x000000ff, // COMBOBOX_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // COMBOBOX_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // COMBOBOX_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // COMBOBOX_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // COMBOBOX_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // COMBOBOX_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 0x000000ff, // CHECKBOX_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 1, // CHECKBOX_INNER_PADDING + 0x000000ff, // CHECKBOX_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // CHECKBOX_BASE_COLOR_NORMAL ----> DEFAULT_BACKGROUND_COLOR + 0x000000ff, // CHECKBOX_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // CHECKBOX_BASE_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // CHECKBOX_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // CHECKBOX_BASE_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED + 0x000000ff, // TEXTBOX_BORDER_WIDTH ----> DEFAULT_BORDER_WIDTH + 0x000000ff, // TEXTBOX_BORDER_COLOR_NORMAL ----> DEFAULT_BORDER_COLOR_NORMAL + 0x000000ff, // TEXTBOX_BASE_COLOR_NORMAL ----> DEFAULT_BACKGROUND_COLOR + 0x000000ff, // TEXTBOX_TEXT_COLOR_NORMAL ----> DEFAULT_TEXT_COLOR_NORMAL + 0x000000ff, // TEXTBOX_BORDER_COLOR_FOCUSED ----> DEFAULT_BORDER_COLOR_FOCUSED + 0x000000ff, // TEXTBOX_BASE_COLOR_FOCUSED ----> DEFAULT_BASE_COLOR_FOCUSED + 0x000000ff, // TEXTBOX_TEXT_COLOR_FOCUSED ----> DEFAULT_TEXT_COLOR_FOCUSED + 0x000000ff, // TEXTBOX_BORDER_COLOR_PRESSED ----> DEFAULT_BORDER_COLOR_PRESSED + 0x000000ff, // TEXTBOX_BASE_COLOR_PRESSED ----> DEFAULT_BASE_COLOR_PRESSED + 0x000000ff, // TEXTBOX_TEXT_COLOR_PRESSED ----> DEFAULT_TEXT_COLOR_PRESSED }; -#if defined(RAYGUI_STYLE_SAVE_LOAD) -// GUI property names (to read/write style text files) -static const char *guiPropertyName[] = { - "LABEL_TEXT_COLOR_NORMAL", - "LABEL_TEXT_COLOR_FOCUSED", - "LABEL_TEXT_COLOR_PRESSED", - "BUTTON_BORDER_WIDTH", - "BUTTON_BORDER_COLOR_NORMAL", - "BUTTON_BASE_COLOR_NORMAL", - "BUTTON_TEXT_COLOR_NORMAL", - "BUTTON_BORDER_COLOR_FOCUSED", - "BUTTON_BASE_COLOR_FOCUSED", - "BUTTON_TEXT_COLOR_FOCUSED", - "BUTTON_BORDER_COLOR_PRESSED", - "BUTTON_BASE_COLOR_PRESSED", - "BUTTON_TEXT_COLOR_PRESSED", - "TOGGLE_BORDER_WIDTH", - "TOGGLE_BORDER_COLOR_NORMAL", - "TOGGLE_BASE_COLOR_NORMAL", - "TOGGLE_TEXT_COLOR_NORMAL", - "TOGGLE_BORDER_COLOR_FOCUSED", - "TOGGLE_BASE_COLOR_FOCUSED", - "TOGGLE_TEXT_COLOR_FOCUSED", - "TOGGLE_BORDER_COLOR_PRESSED", - "TOGGLE_BASE_COLOR_PRESSED", - "TOGGLE_TEXT_COLOR_PRESSED", - "TOGGLEGROUP_PADDING", - "SLIDER_BORDER_WIDTH", - "SLIDER_BORDER_COLOR_NORMAL", - "SLIDER_BASE_COLOR_NORMAL", - "SLIDER_BORDER_COLOR_FOCUSED", - "SLIDER_BASE_COLOR_FOCUSED", - "SLIDER_BORDER_COLOR_PRESSED", - "SLIDER_BASE_COLOR_PRESSED", - "SLIDERBAR_BORDER_WIDTH", - "SLIDERBAR_BORDER_COLOR_NORMAL", - "SLIDERBAR_BASE_COLOR_NORMAL", - "SLIDERBAR_BORDER_COLOR_FOCUSED", - "SLIDERBAR_BASE_COLOR_FOCUSED", - "SLIDERBAR_BORDER_COLOR_PRESSED", - "SLIDERBAR_BASE_COLOR_PRESSED", - "PROGRESSBAR_BORDER_WIDTH", - "PROGRESSBAR_BORDER_COLOR_NORMAL", - "PROGRESSBAR_BASE_COLOR_NORMAL", - "PROGRESSBAR_BORDER_COLOR_FOCUSED", - "PROGRESSBAR_BASE_COLOR_FOCUSED", - "SPINNER_BUTTON_PADDING", - "SPINNER_BORDER_COLOR_NORMAL", - "SPINNER_BASE_COLOR_NORMAL", - "SPINNER_TEXT_COLOR_NORMAL", - "SPINNER_BORDER_COLOR_FOCUSED", - "SPINNER_BASE_COLOR_FOCUSED", - "SPINNER_TEXT_COLOR_FOCUSED", - "SPINNER_BORDER_COLOR_PRESSED", - "SPINNER_BASE_COLOR_PRESSED", - "SPINNER_TEXT_COLOR_PRESSED", - "COMBOBOX_BORDER_WIDTH", - "COMBOBOX_BUTTON_PADDING", - "COMBOBOX_BORDER_COLOR_NORMAL", - "COMBOBOX_BASE_COLOR_NORMAL", - "COMBOBOX_TEXT_COLOR_NORMAL", - "COMBOBOX_BORDER_COLOR_FOCUSED", - "COMBOBOX_BASE_COLOR_FOCUSED", - "COMBOBOX_TEXT_COLOR_FOCUSED", - "COMBOBOX_BORDER_COLOR_PRESSED", - "COMBOBOX_BASE_COLOR_PRESSED", - "COMBOBOX_TEXT_COLOR_PRESSED", - "CHECKBOX_BORDER_WIDTH", - "CHECKBOX_INNER_PADDING", - "CHECKBOX_BORDER_COLOR_NORMAL", - "CHECKBOX_BASE_COLOR_NORMAL", - "CHECKBOX_BORDER_COLOR_FOCUSED", - "CHECKBOX_BASE_COLOR_FOCUSED", - "CHECKBOX_BORDER_COLOR_PRESSED", - "CHECKBOX_BASE_COLOR_PRESSED", - "TEXTBOX_BORDER_WIDTH", - "TEXTBOX_BORDER_COLOR_NORMAL", - "TEXTBOX_BASE_COLOR_NORMAL", - "TEXTBOX_TEXT_COLOR_NORMAL", - "TEXTBOX_BORDER_COLOR_FOCUSED", - "TEXTBOX_BASE_COLOR_FOCUSED", - "TEXTBOX_TEXT_COLOR_FOCUSED", - "TEXTBOX_BORDER_COLOR_PRESSED", - "TEXTBOX_BASE_COLOR_PRESSED", - "TEXTBOX_TEXT_COLOR_PRESSED" -}; -#endif - //---------------------------------------------------------------------------------- // Module specific Functions Declaration //---------------------------------------------------------------------------------- @@ -582,13 +513,13 @@ static Vector3 ConvertRGBtoHSV(Vector3 rgb); // Convert color data from R //---------------------------------------------------------------------------------- // Get background color -RAYGUIDEF Color GuiBackgroundColor(void) { return GetColor(DEFAULT_BACKGROUND_COLOR); } +RAYGUIDEF Color GuiBackgroundColor(void) { return GetColor(styleGeneric[DEFAULT_BACKGROUND_COLOR]); } // Get lines color -RAYGUIDEF Color GuiLinesColor(void) { return GetColor(DEFAULT_LINES_COLOR); } +RAYGUIDEF Color GuiLinesColor(void) { return GetColor(styleGeneric[DEFAULT_LINES_COLOR]); } // Get text color for normal state -RAYGUIDEF Color GuiTextColor(void) { return GetColor(DEFAULT_TEXT_COLOR_NORMAL); } +RAYGUIDEF Color GuiTextColor(void) { return GetColor(styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]); } // Label control RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text) @@ -599,8 +530,8 @@ RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text) // Update control //-------------------------------------------------------------------- - int textWidth = MeasureText(text, DEFAULT_TEXT_SIZE); - int textHeight = DEFAULT_TEXT_SIZE; + int textWidth = MeasureText(text, styleGeneric[DEFAULT_TEXT_SIZE]); + int textHeight = styleGeneric[DEFAULT_TEXT_SIZE]; if (bounds.width < textWidth) bounds.width = textWidth; if (bounds.height < textHeight) bounds.height = textHeight; @@ -617,9 +548,9 @@ RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text) //-------------------------------------------------------------------- switch (state) { - case NORMAL: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[LABEL_TEXT_COLOR_NORMAL])); break; - case FOCUSED: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[LABEL_TEXT_COLOR_FOCUSED])); break; - case PRESSED: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[LABEL_TEXT_COLOR_PRESSED])); break; + case NORMAL: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[LABEL_TEXT_COLOR_NORMAL])); break; + case FOCUSED: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[LABEL_TEXT_COLOR_FOCUSED])); break; + case PRESSED: DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[LABEL_TEXT_COLOR_PRESSED])); break; default: break; } //-------------------------------------------------------------------- @@ -635,8 +566,8 @@ RAYGUIDEF bool GuiButton(Rectangle bounds, const char *text) // Update control //-------------------------------------------------------------------- - int textWidth = MeasureText(text, DEFAULT_TEXT_SIZE); - int textHeight = DEFAULT_TEXT_SIZE; + int textWidth = MeasureText(text, styleGeneric[DEFAULT_TEXT_SIZE]); + int textHeight = styleGeneric[DEFAULT_TEXT_SIZE]; if (bounds.width < textWidth) bounds.width = textWidth; if (bounds.height < textHeight) bounds.height = textHeight; @@ -658,19 +589,19 @@ RAYGUIDEF bool GuiButton(Rectangle bounds, const char *text) { DrawRectangleRecT(bounds, GetColor(style[BUTTON_BORDER_COLOR_NORMAL])); DrawRectangleT(bounds.x + style[BUTTON_BORDER_WIDTH], bounds.y + style[BUTTON_BORDER_WIDTH], bounds.width - 2*style[BUTTON_BORDER_WIDTH], bounds.height - 2*style[BUTTON_BORDER_WIDTH], GetColor(style[BUTTON_BASE_COLOR_NORMAL])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_NORMAL])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_NORMAL])); } break; case FOCUSED: { DrawRectangleRecT(bounds, GetColor(style[BUTTON_BORDER_COLOR_FOCUSED])); DrawRectangleT(bounds.x + style[BUTTON_BORDER_WIDTH], bounds.y + style[BUTTON_BORDER_WIDTH], bounds.width - 2*style[BUTTON_BORDER_WIDTH], bounds.height - 2*style[BUTTON_BORDER_WIDTH], GetColor(style[BUTTON_BASE_COLOR_FOCUSED])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_FOCUSED])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_FOCUSED])); } break; case PRESSED: { DrawRectangleRecT(bounds, GetColor(style[BUTTON_BORDER_COLOR_PRESSED])); DrawRectangleT(bounds.x + style[BUTTON_BORDER_WIDTH], bounds.y + style[BUTTON_BORDER_WIDTH], bounds.width - 2*style[BUTTON_BORDER_WIDTH], bounds.height - 2*style[BUTTON_BORDER_WIDTH], GetColor(style[BUTTON_BASE_COLOR_PRESSED])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_PRESSED])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_PRESSED])); } break; default: break; } @@ -689,8 +620,8 @@ RAYGUIDEF bool GuiToggleButton(Rectangle bounds, const char *text, bool active) // Update control //-------------------------------------------------------------------- - int textWidth = MeasureText(text, DEFAULT_TEXT_SIZE); - int textHeight = DEFAULT_TEXT_SIZE; + int textWidth = MeasureText(text, styleGeneric[DEFAULT_TEXT_SIZE]); + int textHeight = styleGeneric[DEFAULT_TEXT_SIZE]; if (bounds.width < textWidth) bounds.width = textWidth; if (bounds.height < textHeight) bounds.height = textHeight; @@ -718,26 +649,26 @@ RAYGUIDEF bool GuiToggleButton(Rectangle bounds, const char *text, bool active) { DrawRectangleRecT(bounds, GetColor(style[TOGGLE_BORDER_COLOR_PRESSED])); DrawRectangleT(bounds.x + style[TOGGLE_BORDER_WIDTH], bounds.y + style[TOGGLE_BORDER_WIDTH], bounds.width - 2*style[TOGGLE_BORDER_WIDTH], bounds.height - 2*style[TOGGLE_BORDER_WIDTH], GetColor(style[TOGGLE_BASE_COLOR_PRESSED])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[TOGGLE_TEXT_COLOR_PRESSED])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TOGGLE_TEXT_COLOR_PRESSED])); } else { DrawRectangleRecT(bounds, GetColor(style[TOGGLE_BORDER_COLOR_NORMAL])); DrawRectangleT(bounds.x + style[TOGGLE_BORDER_WIDTH], bounds.y + style[TOGGLE_BORDER_WIDTH], bounds.width - 2*style[TOGGLE_BORDER_WIDTH], bounds.height - 2*style[TOGGLE_BORDER_WIDTH], GetColor(style[TOGGLE_BASE_COLOR_NORMAL])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[TOGGLE_TEXT_COLOR_NORMAL])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TOGGLE_TEXT_COLOR_NORMAL])); } } break; case FOCUSED: { DrawRectangleRecT(bounds, GetColor(style[TOGGLE_BORDER_COLOR_FOCUSED])); DrawRectangleT(bounds.x + style[TOGGLE_BORDER_WIDTH], bounds.y + style[TOGGLE_BORDER_WIDTH], bounds.width - 2*style[TOGGLE_BORDER_WIDTH], bounds.height - 2*style[TOGGLE_BORDER_WIDTH], GetColor(style[TOGGLE_BASE_COLOR_FOCUSED])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[TOGGLE_TEXT_COLOR_FOCUSED])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TOGGLE_TEXT_COLOR_FOCUSED])); } break; case PRESSED: { DrawRectangleRecT(bounds, GetColor(style[TOGGLE_BORDER_COLOR_PRESSED])); DrawRectangleT(bounds.x + style[TOGGLE_BORDER_WIDTH], bounds.y + style[TOGGLE_BORDER_WIDTH], bounds.width - 2*style[TOGGLE_BORDER_WIDTH], bounds.height - 2*style[TOGGLE_BORDER_WIDTH], GetColor(style[TOGGLE_BASE_COLOR_PRESSED])); - DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, DEFAULT_TEXT_SIZE, GetColor(style[TOGGLE_TEXT_COLOR_PRESSED])); + DrawText(text, bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - textHeight/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TOGGLE_TEXT_COLOR_PRESSED])); } break; default: break; } @@ -835,8 +766,8 @@ RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboCount, char **comboText, in if (active < 0) active = 0; else if (active > comboCount - 1) active = comboCount - 1; - int textWidth = MeasureText(comboText[active], DEFAULT_TEXT_SIZE); - int textHeight = DEFAULT_TEXT_SIZE; + int textWidth = MeasureText(comboText[active], styleGeneric[DEFAULT_TEXT_SIZE]); + int textHeight = styleGeneric[DEFAULT_TEXT_SIZE]; if (bounds.width < textWidth) bounds.width = textWidth; if (bounds.height < textHeight) bounds.height = textHeight; @@ -866,11 +797,11 @@ RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboCount, char **comboText, in DrawRectangleRecT(selector, GetColor(style[COMBOBOX_BORDER_COLOR_NORMAL])); DrawRectangleT(selector.x + style[COMBOBOX_BORDER_WIDTH], selector.y + style[COMBOBOX_BORDER_WIDTH], selector.width - 2*style[COMBOBOX_BORDER_WIDTH], selector.height - 2*style[COMBOBOX_BORDER_WIDTH], GetColor(style[COMBOBOX_BASE_COLOR_NORMAL])); - DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - DEFAULT_TEXT_SIZE/2, DEFAULT_TEXT_SIZE, GetColor(style[COMBOBOX_TEXT_COLOR_NORMAL])); + DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[COMBOBOX_TEXT_COLOR_NORMAL])); DrawText(FormatText("%i/%i", active + 1, comboCount), selector.x + selector.width/2 - (MeasureText(FormatText("%i/%i", active + 1, comboCount), - DEFAULT_TEXT_SIZE)/2), selector.y + selector.height/2 - DEFAULT_TEXT_SIZE/2, - DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_NORMAL])); + styleGeneric[DEFAULT_TEXT_SIZE])/2), selector.y + selector.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, + styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_NORMAL])); } break; case FOCUSED: { @@ -880,11 +811,11 @@ RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboCount, char **comboText, in DrawRectangleRecT(selector, GetColor(style[COMBOBOX_BORDER_COLOR_FOCUSED])); DrawRectangleT(selector.x + style[COMBOBOX_BORDER_WIDTH], selector.y + style[COMBOBOX_BORDER_WIDTH], selector.width - 2*style[COMBOBOX_BORDER_WIDTH], selector.height - 2*style[COMBOBOX_BORDER_WIDTH], GetColor(style[COMBOBOX_BASE_COLOR_FOCUSED])); - DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - DEFAULT_TEXT_SIZE/2, DEFAULT_TEXT_SIZE, GetColor(style[COMBOBOX_TEXT_COLOR_FOCUSED])); + DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[COMBOBOX_TEXT_COLOR_FOCUSED])); DrawText(FormatText("%i/%i", active + 1, comboCount), selector.x + selector.width/2 - (MeasureText(FormatText("%i/%i", active + 1, comboCount), - DEFAULT_TEXT_SIZE)/2), selector.y + selector.height/2 - DEFAULT_TEXT_SIZE/2, - DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_FOCUSED])); + styleGeneric[DEFAULT_TEXT_SIZE])/2), selector.y + selector.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, + styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_FOCUSED])); } break; case PRESSED: { @@ -894,11 +825,11 @@ RAYGUIDEF int GuiComboBox(Rectangle bounds, int comboCount, char **comboText, in DrawRectangleRecT(selector, GetColor(style[COMBOBOX_BORDER_COLOR_PRESSED])); DrawRectangleT(selector.x + style[COMBOBOX_BORDER_WIDTH], selector.y + style[COMBOBOX_BORDER_WIDTH], selector.width - 2*style[COMBOBOX_BORDER_WIDTH], selector.height - 2*style[COMBOBOX_BORDER_WIDTH], GetColor(style[COMBOBOX_BASE_COLOR_PRESSED])); - DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - DEFAULT_TEXT_SIZE/2, DEFAULT_TEXT_SIZE, GetColor(style[COMBOBOX_TEXT_COLOR_PRESSED])); + DrawText(comboText[active], bounds.x + bounds.width/2 - textWidth/2, bounds.y + bounds.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[COMBOBOX_TEXT_COLOR_PRESSED])); DrawText(FormatText("%i/%i", active + 1, comboCount), selector.x + selector.width/2 - (MeasureText(FormatText("%i/%i", active + 1, comboCount), - DEFAULT_TEXT_SIZE)/2), selector.y + selector.height/2 - DEFAULT_TEXT_SIZE/2, - DEFAULT_TEXT_SIZE, GetColor(style[BUTTON_TEXT_COLOR_PRESSED])); + styleGeneric[DEFAULT_TEXT_SIZE])/2), selector.y + selector.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, + styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[BUTTON_TEXT_COLOR_PRESSED])); } break; default: break; } @@ -1101,8 +1032,8 @@ RAYGUIDEF int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue Rectangle leftButtonBound = { bounds.x, bounds.y, SPINNER_BUTTON_WIDTH, bounds.height }; Rectangle rightButtonBound = { bounds.x + bounds.width - SPINNER_BUTTON_WIDTH, bounds.y, SPINNER_BUTTON_WIDTH, bounds.height }; - int textWidth = MeasureText(FormatText("%i", value), DEFAULT_TEXT_SIZE); - int textHeight = DEFAULT_TEXT_SIZE; + int textWidth = MeasureText(FormatText("%i", value), styleGeneric[DEFAULT_TEXT_SIZE]); + int textHeight = styleGeneric[DEFAULT_TEXT_SIZE]; if (bounds.width < textWidth) bounds.width = textWidth; if (bounds.height < textHeight) bounds.height = textHeight; @@ -1208,21 +1139,21 @@ RAYGUIDEF int GuiSpinner(Rectangle bounds, int value, int minValue, int maxValue DrawRectangleRecT(spinner, GetColor(style[SPINNER_BORDER_COLOR_NORMAL])); DrawRectangleT(spinner.x + 1, spinner.y + 1, spinner.width - 2, spinner.height - 2, GetColor(style[SPINNER_BASE_COLOR_NORMAL])); - DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (DEFAULT_TEXT_SIZE/2)), DEFAULT_TEXT_SIZE, GetColor(style[SPINNER_TEXT_COLOR_NORMAL])); + DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (styleGeneric[DEFAULT_TEXT_SIZE]/2)), styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[SPINNER_TEXT_COLOR_NORMAL])); } break; case FOCUSED: { DrawRectangleRecT(spinner, GetColor(style[SPINNER_BORDER_COLOR_FOCUSED])); DrawRectangleT(spinner.x + 1, spinner.y + 1, spinner.width - 2, spinner.height - 2, GetColor(style[SPINNER_BASE_COLOR_FOCUSED])); - DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (DEFAULT_TEXT_SIZE/2)), DEFAULT_TEXT_SIZE, GetColor(style[SPINNER_TEXT_COLOR_FOCUSED])); + DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (styleGeneric[DEFAULT_TEXT_SIZE]/2)), styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[SPINNER_TEXT_COLOR_FOCUSED])); } break; case PRESSED: { DrawRectangleRecT(spinner, GetColor(style[SPINNER_BORDER_COLOR_PRESSED])); DrawRectangleT(spinner.x + 1, spinner.y + 1, spinner.width - 2, spinner.height - 2, GetColor(style[SPINNER_BASE_COLOR_PRESSED])); - DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (DEFAULT_TEXT_SIZE/2)), DEFAULT_TEXT_SIZE, GetColor(style[SPINNER_TEXT_COLOR_PRESSED])); + DrawText(FormatText("%i", value), spinner.x + (spinner.width/2 - textWidth/2), spinner.y + (spinner.height/2 - (styleGeneric[DEFAULT_TEXT_SIZE]/2)), styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[SPINNER_TEXT_COLOR_PRESSED])); } break; default: break; } @@ -1294,16 +1225,16 @@ RAYGUIDEF void GuiTextBox(Rectangle bounds, char *text, int textSize) { DrawRectangleRecT(bounds, GetColor(style[TEXTBOX_BORDER_COLOR_NORMAL])); DrawRectangleT(bounds.x + style[TEXTBOX_BORDER_WIDTH], bounds.y + style[TEXTBOX_BORDER_WIDTH], bounds.width - 2*style[TEXTBOX_BORDER_WIDTH], bounds.height - 2*style[TEXTBOX_BORDER_WIDTH], GetColor(style[TEXTBOX_BASE_COLOR_NORMAL])); - DrawText(text, bounds.x + 4, bounds.y + style[TEXTBOX_BORDER_WIDTH] + bounds.height/2 - DEFAULT_TEXT_SIZE/2, DEFAULT_TEXT_SIZE, GetColor(style[TEXTBOX_TEXT_COLOR_NORMAL])); + DrawText(text, bounds.x + 4, bounds.y + style[TEXTBOX_BORDER_WIDTH] + bounds.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TEXTBOX_TEXT_COLOR_NORMAL])); } break; case FOCUSED: { DrawRectangleRecT(bounds, GetColor(style[TOGGLE_BORDER_COLOR_FOCUSED])); DrawRectangleT(bounds.x + style[TEXTBOX_BORDER_WIDTH], bounds.y + style[TEXTBOX_BORDER_WIDTH], bounds.width - 2*style[TEXTBOX_BORDER_WIDTH], bounds.height - 2*style[TEXTBOX_BORDER_WIDTH], GetColor(style[TEXTBOX_BASE_COLOR_FOCUSED])); - DrawText(text, bounds.x + 4, bounds.y + style[TEXTBOX_BORDER_WIDTH] + bounds.height/2 - DEFAULT_TEXT_SIZE/2, DEFAULT_TEXT_SIZE, GetColor(style[TEXTBOX_TEXT_COLOR_PRESSED])); + DrawText(text, bounds.x + 4, bounds.y + style[TEXTBOX_BORDER_WIDTH] + bounds.height/2 - styleGeneric[DEFAULT_TEXT_SIZE]/2, styleGeneric[DEFAULT_TEXT_SIZE], GetColor(style[TEXTBOX_TEXT_COLOR_PRESSED])); - if ((framesCounter/20)%2 == 0) DrawRectangleT(bounds.x + 4 + MeasureText(text, DEFAULT_TEXT_SIZE), bounds.y + 2, 1, bounds.height - 4, GetColor(style[TEXTBOX_BORDER_COLOR_FOCUSED])); + if ((framesCounter/20)%2 == 0) DrawRectangleT(bounds.x + 4 + MeasureText(text, styleGeneric[DEFAULT_TEXT_SIZE]), bounds.y + 2, 1, bounds.height - 4, GetColor(style[TEXTBOX_BORDER_COLOR_FOCUSED])); } break; case PRESSED: break; // NOTE: PRESSED state is not used on this control @@ -1548,20 +1479,143 @@ RAYGUIDEF void GuiEndPanel() //offset = (Vector2){ 0.0f, 0.0f }; } +// Load GUI style from an image file +RAYGUIDEF void LoadGuiStyleImage(const char *fileName) +{ + // NOTE: Image data only defines color properties + Image imStyle = LoadImage(fileName); + Color *pixels = GetImageData(imStyle); + + styleGeneric[DEFAULT_BACKGROUND_COLOR] = GetHexValue(pixels[1 + imStyle.width*1]); + styleGeneric[DEFAULT_LINES_COLOR] = GetHexValue(pixels[0 + imStyle.width*0]); + + styleGeneric[DEFAULT_TEXT_FONT] = 0; // Info not included in image data + styleGeneric[styleGeneric[DEFAULT_TEXT_SIZE]] = 20; // Info not included in image data + styleGeneric[DEFAULT_BORDER_WIDTH] = 1; // Info not included in image data + + styleGeneric[DEFAULT_BORDER_COLOR_NORMAL] = GetHexValue(pixels[2 + imStyle.width*2]); + styleGeneric[DEFAULT_BASE_COLOR_NORMAL] = GetHexValue(pixels[3 + imStyle.width*3]); + styleGeneric[DEFAULT_TEXT_COLOR_NORMAL] = GetHexValue(pixels[9 + imStyle.width*4]); + styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED] = GetHexValue(pixels[17 + imStyle.width*2]); + styleGeneric[DEFAULT_BASE_COLOR_FOCUSED] = GetHexValue(pixels[18 + imStyle.width*3]); + styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED] = GetHexValue(pixels[24 + imStyle.width*4]); + styleGeneric[DEFAULT_BORDER_COLOR_PRESSED] = GetHexValue(pixels[32 + imStyle.width*2]); + styleGeneric[DEFAULT_BASE_COLOR_PRESSED] = GetHexValue(pixels[33 + imStyle.width*3]); + styleGeneric[DEFAULT_TEXT_COLOR_PRESSED] = GetHexValue(pixels[39 + imStyle.width*4]); + styleGeneric[DEFAULT_BORDER_COLOR_DISABLED] = GetHexValue(pixels[47 + imStyle.width*2]); + styleGeneric[DEFAULT_BASE_COLOR_DISABLED] = GetHexValue(pixels[48 + imStyle.width*3]); + styleGeneric[DEFAULT_TEXT_COLOR_DISABLED] = GetHexValue(pixels[54 + imStyle.width*4]); + + UpdateStyleComplete(); + + UnloadImage(imStyle); +} + +// Updates full style property set with generic values +// NOTE: Requires globals styleGeneric[] and style[] +RAYGUIDEF void UpdateStyleComplete(void) +{ + style[LABEL_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[LABEL_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[LABEL_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[BUTTON_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]*2; + style[BUTTON_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[BUTTON_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[BUTTON_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[BUTTON_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[BUTTON_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[BUTTON_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[BUTTON_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[BUTTON_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[BUTTON_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[TOGGLE_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[TOGGLE_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[TOGGLE_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[TOGGLE_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[TOGGLE_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[TOGGLE_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[TOGGLE_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[TOGGLE_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[TOGGLE_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[TOGGLE_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[TOGGLEGROUP_PADDING] = 2; + style[SLIDER_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[SLIDER_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[SLIDER_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[SLIDER_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[SLIDER_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[SLIDER_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[SLIDER_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[SLIDERBAR_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[SLIDERBAR_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[SLIDERBAR_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[SLIDERBAR_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[SLIDERBAR_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[SLIDERBAR_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[SLIDERBAR_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[PROGRESSBAR_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[PROGRESSBAR_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[PROGRESSBAR_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[PROGRESSBAR_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[PROGRESSBAR_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[SPINNER_BUTTON_PADDING] = 2; + style[SPINNER_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[SPINNER_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[SPINNER_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[SPINNER_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[SPINNER_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[SPINNER_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[SPINNER_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[SPINNER_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[SPINNER_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[COMBOBOX_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[COMBOBOX_BUTTON_PADDING] = 2; // + style[COMBOBOX_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[COMBOBOX_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BASE_COLOR_NORMAL]; + style[COMBOBOX_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[COMBOBOX_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[COMBOBOX_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[COMBOBOX_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[COMBOBOX_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[COMBOBOX_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[COMBOBOX_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[CHECKBOX_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[CHECKBOX_INNER_PADDING] = 1; + style[CHECKBOX_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[CHECKBOX_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BACKGROUND_COLOR]; + style[CHECKBOX_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[CHECKBOX_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[CHECKBOX_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[CHECKBOX_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; + style[TEXTBOX_BORDER_WIDTH] = styleGeneric[DEFAULT_BORDER_WIDTH]; + style[TEXTBOX_BORDER_COLOR_NORMAL] = styleGeneric[DEFAULT_BORDER_COLOR_NORMAL]; + style[TEXTBOX_BASE_COLOR_NORMAL] = styleGeneric[DEFAULT_BACKGROUND_COLOR]; + style[TEXTBOX_TEXT_COLOR_NORMAL] = styleGeneric[DEFAULT_TEXT_COLOR_NORMAL]; + style[TEXTBOX_BORDER_COLOR_FOCUSED] = styleGeneric[DEFAULT_BORDER_COLOR_FOCUSED]; + style[TEXTBOX_BASE_COLOR_FOCUSED] = styleGeneric[DEFAULT_BASE_COLOR_FOCUSED]; + style[TEXTBOX_TEXT_COLOR_FOCUSED] = styleGeneric[DEFAULT_TEXT_COLOR_FOCUSED]; + style[TEXTBOX_BORDER_COLOR_PRESSED] = styleGeneric[DEFAULT_BORDER_COLOR_PRESSED]; + style[TEXTBOX_BASE_COLOR_PRESSED] = styleGeneric[DEFAULT_BASE_COLOR_PRESSED]; + style[TEXTBOX_TEXT_COLOR_PRESSED] = styleGeneric[DEFAULT_TEXT_COLOR_PRESSED]; +} + #if defined(RAYGUI_STYLE_SAVE_LOAD) // Save current GUI style into a text file RAYGUIDEF void SaveGuiStyle(const char *fileName) { + /* FILE *styleFile = fopen(fileName, "wt"); for (int i = 0; i < NUM_PROPERTIES; i++) fprintf(styleFile, "%-40s0x%x\n", guiPropertyName[i], GetStyleProperty(i)); fclose(styleFile); + */ } // Load GUI style from a text file RAYGUIDEF void LoadGuiStyle(const char *fileName) { +/* #define MAX_STYLE_PROPERTIES 128 typedef struct { @@ -1598,6 +1652,7 @@ RAYGUIDEF void LoadGuiStyle(const char *fileName) } RAYGUI_FREE(styleProp); +*/ } // Set one style property value diff --git a/tools/rGuiStyler/rguistyle_default.psd b/tools/rGuiStyler/rguistyle_default.psd new file mode 100644 index 0000000000000000000000000000000000000000..be93a3a428d3c4cf2401745b012e6ca1ff49017a GIT binary patch literal 34790 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 literal 0 HcmV?d00001 diff --git a/tools/rGuiStyler/rguistyler.c b/tools/rGuiStyler/rguistyler.c index a979bdf..6afe9f0 100644 --- a/tools/rGuiStyler/rguistyler.c +++ b/tools/rGuiStyler/rguistyler.c @@ -239,6 +239,8 @@ int main() GetCurrentDir(currentPath, sizeof(currentPath)); currentPath[strlen(currentPath)] = '\\'; currentPath[strlen(currentPath) + 1] = '\0'; // Not really required + + LoadGuiStyleImage("rguistyle_default_dark.png"); SetTargetFPS(60); //-------------------------------------------------------------------------------------- @@ -389,8 +391,8 @@ int main() ClearBackground(RAYWHITE); // Show selected properties - if (guiPropertySelected >= 0) DrawText(FormatText("SELECTED PROPERTY: <%s>", guiPropertyName[guiPropertySelected]), 5, screenHeight - STATUS_BAR_HEIGHT + 8, FONT_SIZE , BLACK); - else DrawText("SELECTED PROPERTY: