Some tweaks and comments
This commit is contained in:
parent
213f74148d
commit
26b7709f86
43
src/raygui.h
43
src/raygui.h
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user