Some tweaks and comments

This commit is contained in:
Ray 2019-06-25 12:46:20 +02:00
parent 213f74148d
commit 26b7709f86

View File

@ -103,7 +103,7 @@
* *
* LICENSE: zlib/libpng * LICENSE: zlib/libpng
* *
* Copyright (c) 2014-2018 Ramon Santamaria (@raysan5) * Copyright (c) 2014-2019 Ramon Santamaria (@raysan5)
* *
* This software is provided "as-is", without any express or implied warranty. In no event * 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. * will the authors be held liable for any damages arising from the use of this software.
@ -125,7 +125,7 @@
#ifndef RAYGUI_H #ifndef RAYGUI_H
#define RAYGUI_H #define RAYGUI_H
#define RAYGUI_VERSION "2.0-dev" #define RAYGUI_VERSION "2.5-dev"
#define RAYGUI_RICONS_SUPPORT #define RAYGUI_RICONS_SUPPORT
#if !defined(RAYGUI_STANDALONE) #if !defined(RAYGUI_STANDALONE)
@ -219,7 +219,7 @@ typedef struct {
} GuiTextBoxState; } GuiTextBoxState;
#endif #endif
// Gui global state enum // Gui control state
typedef enum { typedef enum {
GUI_STATE_NORMAL = 0, GUI_STATE_NORMAL = 0,
GUI_STATE_FOCUSED, GUI_STATE_FOCUSED,
@ -227,14 +227,14 @@ typedef enum {
GUI_STATE_DISABLED, GUI_STATE_DISABLED,
} GuiControlState; } GuiControlState;
// Gui global text alignment // Gui control text alignment
typedef enum { typedef enum {
GUI_TEXT_ALIGN_LEFT = 0, GUI_TEXT_ALIGN_LEFT = 0,
GUI_TEXT_ALIGN_CENTER, GUI_TEXT_ALIGN_CENTER,
GUI_TEXT_ALIGN_RIGHT, GUI_TEXT_ALIGN_RIGHT,
} GuiTextAlignment; } GuiTextAlignment;
// Gui standard controls // Gui controls
typedef enum { typedef enum {
DEFAULT = 0, DEFAULT = 0,
LABEL, // LABELBUTTON LABEL, // LABELBUTTON
@ -252,9 +252,9 @@ typedef enum {
COLORPICKER, COLORPICKER,
SCROLLBAR, SCROLLBAR,
RESERVED RESERVED
} GuiControlStandard; } GuiControl;
// Gui default properties for every control // Gui base properties for every control
typedef enum { typedef enum {
BORDER_COLOR_NORMAL = 0, BORDER_COLOR_NORMAL = 0,
BASE_COLOR_NORMAL, BASE_COLOR_NORMAL,
@ -274,15 +274,14 @@ typedef enum {
RESERVED02 RESERVED02
} GuiControlProperty; } GuiControlProperty;
// Gui extended properties depending on control type // Gui extended properties depend on control
// NOTE: We reserve a fixed size of additional properties per control (8) // NOTE: We reserve a fixed size of additional properties per control
// Default properties // DEFAULT properties
typedef enum { typedef enum {
TEXT_SIZE = 16, TEXT_SIZE = 16,
TEXT_SPACING, TEXT_SPACING,
LINE_COLOR, LINE_COLOR,
//LINE_THICK,
BACKGROUND_COLOR, BACKGROUND_COLOR,
} GuiDefaultProperty; } GuiDefaultProperty;
@ -390,7 +389,7 @@ RAYGUIDEF void GuiSetStyle(int control, int property, int value); // Set o
RAYGUIDEF int GuiGetStyle(int control, int property); // Get one style property RAYGUIDEF int GuiGetStyle(int control, int property); // Get one style property
#if defined(RAYGUI_TEXTBOX_EXTENDED) #if defined(RAYGUI_TEXTBOX_EXTENDED)
// Global functions for interacting with the active textbox control // GuiTextBox() extended functions
RAYGUIDEF void GuiTextBoxSetActive(Rectangle bounds); // Sets the active textbox RAYGUIDEF void GuiTextBoxSetActive(Rectangle bounds); // Sets the active textbox
RAYGUIDEF Rectangle GuiTextBoxGetActive(void); // Get bounds of active textbox RAYGUIDEF Rectangle GuiTextBoxGetActive(void); // Get bounds of active textbox
RAYGUIDEF void GuiTextBoxSetCursor(int cursor); // Set cursor position of active textbox RAYGUIDEF void GuiTextBoxSetCursor(int cursor); // Set cursor position of active textbox
@ -398,8 +397,8 @@ RAYGUIDEF int GuiTextBoxGetCursor(void); // Get c
RAYGUIDEF void GuiTextBoxSetSelection(int start, int length); // Set selection of active textbox RAYGUIDEF void GuiTextBoxSetSelection(int start, int length); // Set selection of active textbox
RAYGUIDEF Vector2 GuiTextBoxGetSelection(void); // Get selection of active textbox (x - selection start y - selection length) RAYGUIDEF Vector2 GuiTextBoxGetSelection(void); // Get selection of active textbox (x - selection start y - selection length)
RAYGUIDEF bool GuiTextBoxIsActive(Rectangle bounds); // Returns true if a textbox control with specified `bounds` is the active textbox RAYGUIDEF bool GuiTextBoxIsActive(Rectangle bounds); // Returns true if a textbox control with specified `bounds` is the active textbox
RAYGUIDEF GuiTextBoxState GuiTextBoxGetState(); // Get state for the active textbox RAYGUIDEF int GuiTextBoxGetState(void); // Get state for the active textbox
RAYGUIDEF void GuiTextBoxSetState(GuiTextBoxState state); // Set state for the active textbox (state must be valid else things will break) RAYGUIDEF void GuiTextBoxSetState(int state); // Set state for the active textbox (state must be valid else things will break)
RAYGUIDEF void GuiTextBoxSelectAll(const char *text); // Select all characters in the active textbox (same as pressing `CTRL` + `A`) RAYGUIDEF void GuiTextBoxSelectAll(const char *text); // Select all characters in the active textbox (same as pressing `CTRL` + `A`)
RAYGUIDEF void GuiTextBoxCopy(const char *text); // Copy selected text to clipboard from the active textbox (same as pressing `CTRL` + `C`) RAYGUIDEF void GuiTextBoxCopy(const char *text); // Copy selected text to clipboard from the active textbox (same as pressing `CTRL` + `C`)
RAYGUIDEF void GuiTextBoxPaste(char *text, int textSize); // Paste text from clipboard into the textbox (same as pressing `CTRL` + `V`) RAYGUIDEF void GuiTextBoxPaste(char *text, int textSize); // Paste text from clipboard into the textbox (same as pressing `CTRL` + `V`)
@ -545,7 +544,7 @@ static GuiTextBoxState guiTextBoxState = { .cursor = -1, .start = 0, .index = 0,
#define RAYWHITE CLITERAL{ 245, 245, 245, 255 } // My own White (raylib logo) #define RAYWHITE CLITERAL{ 245, 245, 245, 255 } // My own White (raylib logo)
#define GRAY CLITERAL{ 130, 130, 130, 255 } // Gray -- GuiColorBarAlpha() #define GRAY CLITERAL{ 130, 130, 130, 255 } // Gray -- GuiColorBarAlpha()
// raylib functions are already implemented in raygui // raylib functions already implemented in raygui
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value static Color GetColor(int hexValue); // Returns a Color struct from hexadecimal value
static int ColorToInt(Color color); // Returns hexadecimal value for a Color static int ColorToInt(Color color); // Returns hexadecimal value for a Color
@ -564,7 +563,7 @@ static bool IsMouseButtonReleased(int button) { return false; }
static bool IsKeyDown(int key) { return false; } static bool IsKeyDown(int key) { return false; }
static bool IsKeyPressed(int key) { return false; } static bool IsKeyPressed(int key) { return false; }
static int GetKeyPressed(void) { return 0; } // -- GuiTextBox() static int GetKeyPressed(void) { return 0; } // -- GuiTextBox()
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
// Drawing required functions // Drawing required functions
@ -589,8 +588,8 @@ static void DrawTextureRec(Texture2D texture, Rectangle sourceRec, Vector2 posit
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
static Font GetFontDefault(void); // -- GetTextWidth() static Font GetFontDefault(void); // -- GetTextWidth()
static Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing) { return (Vector2){ 0.0f }; } // Measure text size depending on font static Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing) { return (Vector2){ 0.0f }; } // -- GetTextWidth(), GuiTextBoxMulti()
static void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) { } // Draw text using font and additional parameters static void DrawTextEx(Font font, const char *text, Vector2 position, float fontSize, float spacing, Color tint) { } // -- GuiDrawText()
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
#endif // RAYGUI_STANDALONE #endif // RAYGUI_STANDALONE
@ -836,8 +835,8 @@ RAYGUIDEF bool GuiTextBoxIsActive(Rectangle bounds)
return (bounds.x == guiTextBoxActive.x && bounds.y == guiTextBoxActive.y && return (bounds.x == guiTextBoxActive.x && bounds.y == guiTextBoxActive.y &&
bounds.width == guiTextBoxActive.width && bounds.height == guiTextBoxActive.height); bounds.width == guiTextBoxActive.width && bounds.height == guiTextBoxActive.height);
} }
RAYGUIDEF GuiTextBoxState GuiTextBoxGetState(void) { return guiTextBoxState; } RAYGUIDEF int GuiTextBoxGetState(void) { return guiTextBoxState; }
RAYGUIDEF void GuiTextBoxSetState(GuiTextBoxState state) RAYGUIDEF void GuiTextBoxSetState(int state)
{ {
// NOTE: should we check if state values are valid ?!? // NOTE: should we check if state values are valid ?!?
guiTextBoxState = state; guiTextBoxState = state;
@ -1492,10 +1491,14 @@ RAYGUIDEF bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, b
GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, tempTextAlign); GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, tempTextAlign);
// TODO: Avoid this function, use icon instead or 'v'
DrawTriangle((Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING), bounds.y + bounds.height/2 - 2 }, DrawTriangle((Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING), bounds.y + bounds.height/2 - 2 },
(Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING) + 5, bounds.y + bounds.height/2 - 2 + 5 }, (Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING) + 5, bounds.y + bounds.height/2 - 2 + 5 },
(Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING) + 10, bounds.y + bounds.height/2 - 2 }, (Vector2){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING) + 10, bounds.y + bounds.height/2 - 2 },
Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha)); Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha));
//GuiDrawText("v", (Rectangle){ bounds.x + bounds.width - GuiGetStyle(DROPDOWNBOX, ARROW_RIGHT_PADDING), bounds.y + bounds.height/2 - 2, 10, 10 },
// GUI_TEXT_ALIGN_CENTER, Fade(GetColor(GuiGetStyle(DROPDOWNBOX, TEXT + (state*3))), guiAlpha));
//-------------------------------------------------------------------- //--------------------------------------------------------------------
*active = auxActive; *active = auxActive;