raygui includes RICONS by default
- REAMED: RAYUIDEF -> RAYGUIAPI
This commit is contained in:
parent
b0dfa6dcbf
commit
0ed765cd8b
@ -55,31 +55,31 @@ extern "C" { // Prevents name mangling of functions
|
|||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Module Functions Declaration
|
// Module Functions Declaration
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
RAYGUIDEF void GuiTextBoxSetActive(Rectangle bounds); // Sets the active textbox
|
RAYGUIAPI void GuiTextBoxSetActive(Rectangle bounds); // Sets the active textbox
|
||||||
RAYGUIDEF Rectangle GuiTextBoxGetActive(void); // Get bounds of active textbox
|
RAYGUIAPI Rectangle GuiTextBoxGetActive(void); // Get bounds of active textbox
|
||||||
|
|
||||||
RAYGUIDEF void GuiTextBoxSetCursor(int cursor); // Set cursor position of active textbox
|
RAYGUIAPI void GuiTextBoxSetCursor(int cursor); // Set cursor position of active textbox
|
||||||
RAYGUIDEF int GuiTextBoxGetCursor(void); // Get cursor position of active textbox
|
RAYGUIAPI int GuiTextBoxGetCursor(void); // Get cursor position of active textbox
|
||||||
|
|
||||||
RAYGUIDEF void GuiTextBoxSetSelection(int start, int length); // Set selection of active textbox
|
RAYGUIAPI 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)
|
RAYGUIAPI 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
|
RAYGUIAPI bool GuiTextBoxIsActive(Rectangle bounds); // Returns true if a textbox control with specified `bounds` is the active textbox
|
||||||
RAYGUIDEF GuiTextBoxState GuiTextBoxGetState(void); // Get state for the active textbox
|
RAYGUIAPI GuiTextBoxState 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)
|
RAYGUIAPI void GuiTextBoxSetState(GuiTextBoxState 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`)
|
RAYGUIAPI 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`)
|
RAYGUIAPI 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`)
|
RAYGUIAPI void GuiTextBoxPaste(char *text, int textSize); // Paste text from clipboard into the textbox (same as pressing `CTRL` + `V`)
|
||||||
RAYGUIDEF void GuiTextBoxCut(char *text); // Cut selected text in the active textbox and copy it to clipboard (same as pressing `CTRL` + `X`)
|
RAYGUIAPI void GuiTextBoxCut(char *text); // Cut selected text in the active textbox and copy it to clipboard (same as pressing `CTRL` + `X`)
|
||||||
RAYGUIDEF int GuiTextBoxDelete(char *text, int length, bool before); // Deletes a character or selection before from the active textbox (depending on `before`). Returns bytes deleted.
|
RAYGUIAPI int GuiTextBoxDelete(char *text, int length, bool before); // Deletes a character or selection before from the active textbox (depending on `before`). Returns bytes deleted.
|
||||||
RAYGUIDEF int GuiTextBoxGetByteIndex(const char *text, int start, int from, int to); // Get the byte index for a character starting at position `from` with index `start` until position `to`.
|
RAYGUIAPI int GuiTextBoxGetByteIndex(const char *text, int start, int from, int to); // Get the byte index for a character starting at position `from` with index `start` until position `to`.
|
||||||
|
|
||||||
RAYGUIDEF bool GuiTextBoxEx(Rectangle bounds, char *text, int textSize, bool editMode);
|
RAYGUIAPI bool GuiTextBoxEx(Rectangle bounds, char *text, int textSize, bool editMode);
|
||||||
|
|
||||||
RAYGUIDEF static void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); // Draw text using font inside rectangle limits
|
RAYGUIAPI static void DrawTextRec(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint); // Draw text using font inside rectangle limits
|
||||||
RAYGUIDEF static void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint); // Draw text using font inside rectangle limits with support for text selection
|
RAYGUIAPI static void DrawTextRecEx(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint); // Draw text using font inside rectangle limits with support for text selection
|
||||||
RAYGUIDEF static void DrawTextBoxedSelectable(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint); // Alias for above
|
RAYGUIAPI static void DrawTextBoxedSelectable(Font font, const char *text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color tint, int selectStart, int selectLength, Color selectTint, Color selectBackTint); // Alias for above
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
@ -288,27 +288,27 @@ static int EncodeCodepoint(unsigned int c, char out[5]);
|
|||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Sets the active textbox (reseting state of the previous active textbox)
|
// Sets the active textbox (reseting state of the previous active textbox)
|
||||||
RAYGUIDEF void GuiTextBoxSetActive(Rectangle bounds)
|
RAYGUIAPI void GuiTextBoxSetActive(Rectangle bounds)
|
||||||
{
|
{
|
||||||
guiTextBoxActive = bounds;
|
guiTextBoxActive = bounds;
|
||||||
guiTextBoxState = (GuiTextBoxState){ .cursor = -1, .start = 0, .index = 0, .select = -1 };
|
guiTextBoxState = (GuiTextBoxState){ .cursor = -1, .start = 0, .index = 0, .select = -1 };
|
||||||
}
|
}
|
||||||
|
|
||||||
// Gets bounds of active textbox
|
// Gets bounds of active textbox
|
||||||
RAYGUIDEF Rectangle GuiTextBoxGetActive(void) { return guiTextBoxActive; }
|
RAYGUIAPI Rectangle GuiTextBoxGetActive(void) { return guiTextBoxActive; }
|
||||||
|
|
||||||
// Set cursor position of active textbox
|
// Set cursor position of active textbox
|
||||||
RAYGUIDEF void GuiTextBoxSetCursor(int cursor)
|
RAYGUIAPI void GuiTextBoxSetCursor(int cursor)
|
||||||
{
|
{
|
||||||
guiTextBoxState.cursor = (cursor < 0) ? -1 : cursor;
|
guiTextBoxState.cursor = (cursor < 0) ? -1 : cursor;
|
||||||
guiTextBoxState.start = -1; // Mark this to be recalculated
|
guiTextBoxState.start = -1; // Mark this to be recalculated
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get cursor position of active textbox
|
// Get cursor position of active textbox
|
||||||
RAYGUIDEF int GuiTextBoxGetCursor(void) { return guiTextBoxState.cursor; }
|
RAYGUIAPI int GuiTextBoxGetCursor(void) { return guiTextBoxState.cursor; }
|
||||||
|
|
||||||
// Set selection of active textbox
|
// Set selection of active textbox
|
||||||
RAYGUIDEF void GuiTextBoxSetSelection(int start, int length)
|
RAYGUIAPI void GuiTextBoxSetSelection(int start, int length)
|
||||||
{
|
{
|
||||||
if (start < 0) start = 0;
|
if (start < 0) start = 0;
|
||||||
if (length < 0) length = 0;
|
if (length < 0) length = 0;
|
||||||
@ -318,7 +318,7 @@ RAYGUIDEF void GuiTextBoxSetSelection(int start, int length)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Get selection of active textbox
|
// Get selection of active textbox
|
||||||
RAYGUIDEF Vector2 GuiTextBoxGetSelection(void)
|
RAYGUIAPI Vector2 GuiTextBoxGetSelection(void)
|
||||||
{
|
{
|
||||||
if (guiTextBoxState.select == -1 || guiTextBoxState.select == guiTextBoxState.cursor) return RAYGUI_CLITERAL(Vector2){ 0 };
|
if (guiTextBoxState.select == -1 || guiTextBoxState.select == guiTextBoxState.cursor) return RAYGUI_CLITERAL(Vector2){ 0 };
|
||||||
else if (guiTextBoxState.cursor > guiTextBoxState.select) return RAYGUI_CLITERAL(Vector2){ (float)guiTextBoxState.select, (float)guiTextBoxState.cursor - guiTextBoxState.select };
|
else if (guiTextBoxState.cursor > guiTextBoxState.select) return RAYGUI_CLITERAL(Vector2){ (float)guiTextBoxState.select, (float)guiTextBoxState.cursor - guiTextBoxState.select };
|
||||||
@ -327,20 +327,20 @@ RAYGUIDEF Vector2 GuiTextBoxGetSelection(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Returns true if a textbox control with specified `bounds` is the active textbox
|
// Returns true if a textbox control with specified `bounds` is the active textbox
|
||||||
RAYGUIDEF bool GuiTextBoxIsActive(Rectangle bounds)
|
RAYGUIAPI 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; }
|
RAYGUIAPI GuiTextBoxState GuiTextBoxGetState(void) { return guiTextBoxState; }
|
||||||
RAYGUIDEF void GuiTextBoxSetState(GuiTextBoxState state)
|
RAYGUIAPI void GuiTextBoxSetState(GuiTextBoxState state)
|
||||||
{
|
{
|
||||||
// NOTE: should we check if state values are valid ?!?
|
// NOTE: should we check if state values are valid ?!?
|
||||||
guiTextBoxState = state;
|
guiTextBoxState = state;
|
||||||
}
|
}
|
||||||
|
|
||||||
RAYGUIDEF int GuiTextBoxGetByteIndex(const char *text, int start, int from, int to)
|
RAYGUIAPI int GuiTextBoxGetByteIndex(const char *text, int start, int from, int to)
|
||||||
{
|
{
|
||||||
int i = start, k = from;
|
int i = start, k = from;
|
||||||
|
|
||||||
@ -357,7 +357,7 @@ RAYGUIDEF int GuiTextBoxGetByteIndex(const char *text, int start, int from, int
|
|||||||
return i;
|
return i;
|
||||||
}
|
}
|
||||||
|
|
||||||
RAYGUIDEF int GuiTextBoxDelete(char *text, int length, bool before)
|
RAYGUIAPI int GuiTextBoxDelete(char *text, int length, bool before)
|
||||||
{
|
{
|
||||||
if ((guiTextBoxState.cursor != -1) && (text != NULL))
|
if ((guiTextBoxState.cursor != -1) && (text != NULL))
|
||||||
{
|
{
|
||||||
@ -417,7 +417,7 @@ RAYGUIDEF int GuiTextBoxDelete(char *text, int length, bool before)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
RAYGUIDEF void GuiTextBoxSelectAll(const char *text)
|
RAYGUIAPI void GuiTextBoxSelectAll(const char *text)
|
||||||
{
|
{
|
||||||
guiTextBoxState.cursor = GuiCountCodepointsUntilNewline(text);
|
guiTextBoxState.cursor = GuiCountCodepointsUntilNewline(text);
|
||||||
|
|
||||||
@ -429,7 +429,7 @@ RAYGUIDEF void GuiTextBoxSelectAll(const char *text)
|
|||||||
else guiTextBoxState.select = -1;
|
else guiTextBoxState.select = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
RAYGUIDEF void GuiTextBoxCopy(const char *text)
|
RAYGUIAPI void GuiTextBoxCopy(const char *text)
|
||||||
{
|
{
|
||||||
if ((text != NULL) &&
|
if ((text != NULL) &&
|
||||||
(guiTextBoxState.select != -1) &&
|
(guiTextBoxState.select != -1) &&
|
||||||
@ -459,7 +459,7 @@ RAYGUIDEF void GuiTextBoxCopy(const char *text)
|
|||||||
|
|
||||||
// Paste text from clipboard into the active textbox.
|
// Paste text from clipboard into the active textbox.
|
||||||
// `text` is the pointer to the buffer used by the textbox while `textSize` is the text buffer max size
|
// `text` is the pointer to the buffer used by the textbox while `textSize` is the text buffer max size
|
||||||
RAYGUIDEF void GuiTextBoxPaste(char *text, int textSize)
|
RAYGUIAPI void GuiTextBoxPaste(char *text, int textSize)
|
||||||
{
|
{
|
||||||
const char *clipText = GetClipboardText(); // GLFW guaratees this should be UTF8 encoded!
|
const char *clipText = GetClipboardText(); // GLFW guaratees this should be UTF8 encoded!
|
||||||
int length = strlen(text);
|
int length = strlen(text);
|
||||||
@ -501,7 +501,7 @@ RAYGUIDEF void GuiTextBoxPaste(char *text, int textSize)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
RAYGUIDEF void GuiTextBoxCut(char* text)
|
RAYGUIAPI void GuiTextBoxCut(char* text)
|
||||||
{
|
{
|
||||||
if ((text != NULL) &&
|
if ((text != NULL) &&
|
||||||
(guiTextBoxState.select != -1) &&
|
(guiTextBoxState.select != -1) &&
|
||||||
@ -541,7 +541,7 @@ RAYGUIDEF void GuiTextBoxCut(char* text)
|
|||||||
// A text box control supporting text selection, cursor positioning and commonly used keyboard shortcuts.
|
// A text box control supporting text selection, cursor positioning and commonly used keyboard shortcuts.
|
||||||
// NOTE 1: Requires static variables: framesCounter
|
// NOTE 1: Requires static variables: framesCounter
|
||||||
// NOTE 2: Returns if KEY_ENTER pressed (useful for data validation)
|
// NOTE 2: Returns if KEY_ENTER pressed (useful for data validation)
|
||||||
RAYGUIDEF bool GuiTextBoxEx(Rectangle bounds, char *text, int textSize, bool editMode)
|
RAYGUIAPI bool GuiTextBoxEx(Rectangle bounds, char *text, int textSize, bool editMode)
|
||||||
{
|
{
|
||||||
// Define the cursor movement/selection speed when movement keys are held/pressed
|
// Define the cursor movement/selection speed when movement keys are held/pressed
|
||||||
#define TEXTBOX_CURSOR_COOLDOWN 5
|
#define TEXTBOX_CURSOR_COOLDOWN 5
|
||||||
|
173
src/raygui.h
173
src/raygui.h
@ -105,10 +105,10 @@
|
|||||||
* internally in the library and input management and drawing functions must be provided by
|
* internally in the library and input management and drawing functions must be provided by
|
||||||
* the user (check library implementation for further details).
|
* the user (check library implementation for further details).
|
||||||
*
|
*
|
||||||
* #define RAYGUI_SUPPORT_RICONS
|
* #define RAYGUI_NO_RICONS
|
||||||
* Includes embedded ricons data (binary format) and definitions (by default 256 16x16 pixels, 2KB)
|
* Avoid including embedded ricons data (256 icons, 16x16 pixels, 1-bit per pixel, 2KB)
|
||||||
*
|
*
|
||||||
* #define RAYGUI_SUPPORT_CUSTOM_RICONS
|
* #define RAYGUI_CUSTOM_RICONS
|
||||||
* Includes custom ricons.h header defining a set of custom icons,
|
* Includes custom ricons.h header defining a set of custom icons,
|
||||||
* this file can be generated using rGuiIcons tool
|
* this file can be generated using rGuiIcons tool
|
||||||
*
|
*
|
||||||
@ -187,17 +187,18 @@
|
|||||||
#include "raylib.h"
|
#include "raylib.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef RAYGUIDEF
|
// Functions qualifiers/attributes definition
|
||||||
#define RAYGUIDEF // We are building or using rlgl as a static library (or Linux shared library)
|
#ifndef RAYGUIAPI
|
||||||
|
#define RAYGUIAPI // We are defining our functions as 'extern' by default (implicit attribute)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Define functions scope to be used internally (static) or externally (extern) to the module including this file
|
// Function qualifiers in case library is build/used as a shared library
|
||||||
#if defined(_WIN32)
|
#if defined(_WIN32)
|
||||||
// Microsoft attibutes to tell compiler that symbols are imported/exported from a .dll
|
// Microsoft attributes to tell compiler that symbols are imported/exported from a .dll
|
||||||
#if defined(BUILD_LIBTYPE_SHARED)
|
#if defined(BUILD_LIBTYPE_SHARED)
|
||||||
#define RAYGUIDEF __declspec(dllexport) // We are building raygui as a Win32 shared library (.dll)
|
#define RAYGUIAPI __declspec(dllexport) // We are building this library as a Win32 shared library (.dll)
|
||||||
#elif defined(USE_LIBTYPE_SHARED)
|
#elif defined(USE_LIBTYPE_SHARED)
|
||||||
#define RAYGUIDEF __declspec(dllimport) // We are using raygui as a Win32 shared library (.dll)
|
#define RAYGUIAPI __declspec(dllimport) // We are using this library as a Win32 shared library (.dll)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -463,87 +464,87 @@ extern "C" { // Prevents name mangling of functions
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Global gui state control functions
|
// Global gui state control functions
|
||||||
RAYGUIDEF void GuiEnable(void); // Enable gui controls (global state)
|
RAYGUIAPI void GuiEnable(void); // Enable gui controls (global state)
|
||||||
RAYGUIDEF void GuiDisable(void); // Disable gui controls (global state)
|
RAYGUIAPI void GuiDisable(void); // Disable gui controls (global state)
|
||||||
RAYGUIDEF void GuiLock(void); // Lock gui controls (global state)
|
RAYGUIAPI void GuiLock(void); // Lock gui controls (global state)
|
||||||
RAYGUIDEF void GuiUnlock(void); // Unlock gui controls (global state)
|
RAYGUIAPI void GuiUnlock(void); // Unlock gui controls (global state)
|
||||||
RAYGUIDEF bool GuiIsLocked(void); // Check if gui is locked (global state)
|
RAYGUIAPI bool GuiIsLocked(void); // Check if gui is locked (global state)
|
||||||
RAYGUIDEF void GuiFade(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
|
RAYGUIAPI void GuiFade(float alpha); // Set gui controls alpha (global state), alpha goes from 0.0f to 1.0f
|
||||||
RAYGUIDEF void GuiSetState(int state); // Set gui state (global state)
|
RAYGUIAPI void GuiSetState(int state); // Set gui state (global state)
|
||||||
RAYGUIDEF int GuiGetState(void); // Get gui state (global state)
|
RAYGUIAPI int GuiGetState(void); // Get gui state (global state)
|
||||||
|
|
||||||
// Font set/get functions
|
// Font set/get functions
|
||||||
RAYGUIDEF void GuiSetFont(Font font); // Set gui custom font (global state)
|
RAYGUIAPI void GuiSetFont(Font font); // Set gui custom font (global state)
|
||||||
RAYGUIDEF Font GuiGetFont(void); // Get gui custom font (global state)
|
RAYGUIAPI Font GuiGetFont(void); // Get gui custom font (global state)
|
||||||
|
|
||||||
// Style set/get functions
|
// Style set/get functions
|
||||||
RAYGUIDEF void GuiSetStyle(int control, int property, int value); // Set one style property
|
RAYGUIAPI void GuiSetStyle(int control, int property, int value); // Set one style property
|
||||||
RAYGUIDEF int GuiGetStyle(int control, int property); // Get one style property
|
RAYGUIAPI int GuiGetStyle(int control, int property); // Get one style property
|
||||||
|
|
||||||
// Container/separator controls, useful for controls organization
|
// Container/separator controls, useful for controls organization
|
||||||
RAYGUIDEF bool GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed
|
RAYGUIAPI bool GuiWindowBox(Rectangle bounds, const char *title); // Window Box control, shows a window that can be closed
|
||||||
RAYGUIDEF void GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name
|
RAYGUIAPI void GuiGroupBox(Rectangle bounds, const char *text); // Group Box control with text name
|
||||||
RAYGUIDEF void GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text
|
RAYGUIAPI void GuiLine(Rectangle bounds, const char *text); // Line separator control, could contain text
|
||||||
RAYGUIDEF void GuiPanel(Rectangle bounds); // Panel control, useful to group controls
|
RAYGUIAPI void GuiPanel(Rectangle bounds); // Panel control, useful to group controls
|
||||||
RAYGUIDEF Rectangle GuiScrollPanel(Rectangle bounds, Rectangle content, Vector2 *scroll); // Scroll Panel control
|
RAYGUIAPI Rectangle GuiScrollPanel(Rectangle bounds, Rectangle content, Vector2 *scroll); // Scroll Panel control
|
||||||
|
|
||||||
// Basic controls set
|
// Basic controls set
|
||||||
RAYGUIDEF void GuiLabel(Rectangle bounds, const char *text); // Label control, shows text
|
RAYGUIAPI void GuiLabel(Rectangle bounds, const char *text); // Label control, shows text
|
||||||
RAYGUIDEF bool GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked
|
RAYGUIAPI bool GuiButton(Rectangle bounds, const char *text); // Button control, returns true when clicked
|
||||||
RAYGUIDEF bool GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked
|
RAYGUIAPI bool GuiLabelButton(Rectangle bounds, const char *text); // Label button control, show true when clicked
|
||||||
RAYGUIDEF bool GuiImageButton(Rectangle bounds, const char *text, Texture2D texture); // Image button control, returns true when clicked
|
RAYGUIAPI bool GuiImageButton(Rectangle bounds, const char *text, Texture2D texture); // Image button control, returns true when clicked
|
||||||
RAYGUIDEF bool GuiImageButtonEx(Rectangle bounds, const char *text, Texture2D texture, Rectangle texSource); // Image button extended control, returns true when clicked
|
RAYGUIAPI bool GuiImageButtonEx(Rectangle bounds, const char *text, Texture2D texture, Rectangle texSource); // Image button extended control, returns true when clicked
|
||||||
RAYGUIDEF bool GuiToggle(Rectangle bounds, const char *text, bool active); // Toggle Button control, returns true when active
|
RAYGUIAPI bool GuiToggle(Rectangle bounds, const char *text, bool active); // Toggle Button control, returns true when active
|
||||||
RAYGUIDEF int GuiToggleGroup(Rectangle bounds, const char *text, int active); // Toggle Group control, returns active toggle index
|
RAYGUIAPI int GuiToggleGroup(Rectangle bounds, const char *text, int active); // Toggle Group control, returns active toggle index
|
||||||
RAYGUIDEF bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box control, returns true when active
|
RAYGUIAPI bool GuiCheckBox(Rectangle bounds, const char *text, bool checked); // Check Box control, returns true when active
|
||||||
RAYGUIDEF int GuiComboBox(Rectangle bounds, const char *text, int active); // Combo Box control, returns selected item index
|
RAYGUIAPI int GuiComboBox(Rectangle bounds, const char *text, int active); // Combo Box control, returns selected item index
|
||||||
RAYGUIDEF bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item
|
RAYGUIAPI bool GuiDropdownBox(Rectangle bounds, const char *text, int *active, bool editMode); // Dropdown Box control, returns selected item
|
||||||
RAYGUIDEF bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value
|
RAYGUIAPI bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Spinner control, returns selected value
|
||||||
RAYGUIDEF bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers
|
RAYGUIAPI bool GuiValueBox(Rectangle bounds, const char *text, int *value, int minValue, int maxValue, bool editMode); // Value Box control, updates input text with numbers
|
||||||
RAYGUIDEF bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
|
RAYGUIAPI bool GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control, updates input text
|
||||||
RAYGUIDEF bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control with multiple lines
|
RAYGUIAPI bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control with multiple lines
|
||||||
RAYGUIDEF float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider control, returns selected value
|
RAYGUIAPI float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider control, returns selected value
|
||||||
RAYGUIDEF float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider Bar control, returns selected value
|
RAYGUIAPI float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Slider Bar control, returns selected value
|
||||||
RAYGUIDEF float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Progress Bar control, shows current progress value
|
RAYGUIAPI float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue); // Progress Bar control, shows current progress value
|
||||||
RAYGUIDEF void GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
|
RAYGUIAPI void GuiStatusBar(Rectangle bounds, const char *text); // Status Bar control, shows info text
|
||||||
RAYGUIDEF void GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders
|
RAYGUIAPI void GuiDummyRec(Rectangle bounds, const char *text); // Dummy control for placeholders
|
||||||
RAYGUIDEF int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll Bar control
|
RAYGUIAPI int GuiScrollBar(Rectangle bounds, int value, int minValue, int maxValue); // Scroll Bar control
|
||||||
RAYGUIDEF Vector2 GuiGrid(Rectangle bounds, float spacing, int subdivs); // Grid control
|
RAYGUIAPI Vector2 GuiGrid(Rectangle bounds, float spacing, int subdivs); // Grid control
|
||||||
|
|
||||||
|
|
||||||
// Advance controls set
|
// Advance controls set
|
||||||
RAYGUIDEF int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active); // List View control, returns selected list item index
|
RAYGUIAPI int GuiListView(Rectangle bounds, const char *text, int *scrollIndex, int active); // List View control, returns selected list item index
|
||||||
RAYGUIDEF int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active); // List View with extended parameters
|
RAYGUIAPI int GuiListViewEx(Rectangle bounds, const char **text, int count, int *focus, int *scrollIndex, int active); // List View with extended parameters
|
||||||
RAYGUIDEF int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message
|
RAYGUIAPI int GuiMessageBox(Rectangle bounds, const char *title, const char *message, const char *buttons); // Message Box control, displays a message
|
||||||
RAYGUIDEF int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text); // Text Input Box control, ask for text
|
RAYGUIAPI int GuiTextInputBox(Rectangle bounds, const char *title, const char *message, const char *buttons, char *text); // Text Input Box control, ask for text
|
||||||
RAYGUIDEF Color GuiColorPicker(Rectangle bounds, Color color); // Color Picker control (multiple color controls)
|
RAYGUIAPI Color GuiColorPicker(Rectangle bounds, Color color); // Color Picker control (multiple color controls)
|
||||||
RAYGUIDEF Color GuiColorPanel(Rectangle bounds, Color color); // Color Panel control
|
RAYGUIAPI Color GuiColorPanel(Rectangle bounds, Color color); // Color Panel control
|
||||||
RAYGUIDEF float GuiColorBarAlpha(Rectangle bounds, float alpha); // Color Bar Alpha control
|
RAYGUIAPI float GuiColorBarAlpha(Rectangle bounds, float alpha); // Color Bar Alpha control
|
||||||
RAYGUIDEF float GuiColorBarHue(Rectangle bounds, float value); // Color Bar Hue control
|
RAYGUIAPI float GuiColorBarHue(Rectangle bounds, float value); // Color Bar Hue control
|
||||||
|
|
||||||
// Styles loading functions
|
// Styles loading functions
|
||||||
RAYGUIDEF void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs)
|
RAYGUIAPI void GuiLoadStyle(const char *fileName); // Load style file over global style variable (.rgs)
|
||||||
RAYGUIDEF void GuiLoadStyleDefault(void); // Load style default over global style
|
RAYGUIAPI void GuiLoadStyleDefault(void); // Load style default over global style
|
||||||
|
|
||||||
/*
|
/*
|
||||||
typedef GuiStyle (unsigned int *)
|
typedef GuiStyle (unsigned int *)
|
||||||
RAYGUIDEF GuiStyle LoadGuiStyle(const char *fileName); // Load style from file (.rgs)
|
RAYGUIAPI GuiStyle LoadGuiStyle(const char *fileName); // Load style from file (.rgs)
|
||||||
RAYGUIDEF void UnloadGuiStyle(GuiStyle style); // Unload style
|
RAYGUIAPI void UnloadGuiStyle(GuiStyle style); // Unload style
|
||||||
*/
|
*/
|
||||||
|
|
||||||
RAYGUIDEF const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported)
|
RAYGUIAPI const char *GuiIconText(int iconId, const char *text); // Get text with icon id prepended (if supported)
|
||||||
|
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if !defined(RAYGUI_NO_RICONS)
|
||||||
// Gui icons functionality
|
// Gui icons functionality
|
||||||
RAYGUIDEF void GuiDrawIcon(int iconId, Vector2 position, int pixelSize, Color color);
|
RAYGUIAPI void GuiDrawIcon(int iconId, Vector2 position, int pixelSize, Color color);
|
||||||
|
|
||||||
RAYGUIDEF unsigned int *GuiGetIcons(void); // Get full icons data pointer
|
RAYGUIAPI unsigned int *GuiGetIcons(void); // Get full icons data pointer
|
||||||
RAYGUIDEF unsigned int *GuiGetIconData(int iconId); // Get icon bit data
|
RAYGUIAPI unsigned int *GuiGetIconData(int iconId); // Get icon bit data
|
||||||
RAYGUIDEF void GuiSetIconData(int iconId, unsigned int *data); // Set icon bit data
|
RAYGUIAPI void GuiSetIconData(int iconId, unsigned int *data); // Set icon bit data
|
||||||
|
|
||||||
RAYGUIDEF void GuiSetIconPixel(int iconId, int x, int y); // Set icon pixel value
|
RAYGUIAPI void GuiSetIconPixel(int iconId, int x, int y); // Set icon pixel value
|
||||||
RAYGUIDEF void GuiClearIconPixel(int iconId, int x, int y); // Clear icon pixel value
|
RAYGUIAPI void GuiClearIconPixel(int iconId, int x, int y); // Clear icon pixel value
|
||||||
RAYGUIDEF bool GuiCheckIconPixel(int iconId, int x, int y); // Check icon pixel value
|
RAYGUIAPI bool GuiCheckIconPixel(int iconId, int x, int y); // Check icon pixel value
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
#if defined(__cplusplus)
|
||||||
@ -574,9 +575,9 @@ RAYGUIDEF bool GuiCheckIconPixel(int iconId, int x, int y); // Check icon pi
|
|||||||
#define RAYGUI_CLITERAL(name) (name)
|
#define RAYGUI_CLITERAL(name) (name)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if !defined(RAYGUI_NO_RICONS)
|
||||||
|
|
||||||
#if defined(RAYGUI_SUPPORT_CUSTOM_RICONS)
|
#if defined(RAYGUI_CUSTOM_RICONS)
|
||||||
|
|
||||||
#define RICONS_IMPLEMENTATION
|
#define RICONS_IMPLEMENTATION
|
||||||
#include "ricons.h" // External icons data provided, it can be generated with rGuiIcons tool
|
#include "ricons.h" // External icons data provided, it can be generated with rGuiIcons tool
|
||||||
@ -1125,9 +1126,9 @@ static unsigned int guiIcons[RICON_MAX_ICONS*RICON_DATA_ELEMENTS] = {
|
|||||||
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // RICON_255
|
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, // RICON_255
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // RAYGUI_SUPPORT_CUSTOM_RICONS
|
#endif // RAYGUI_CUSTOM_RICONS
|
||||||
|
|
||||||
#endif // RAYGUI_SUPPORT_RICONS
|
#endif // !RAYGUI_NO_RICONS
|
||||||
|
|
||||||
#ifndef RICON_SIZE
|
#ifndef RICON_SIZE
|
||||||
#define RICON_SIZE 0
|
#define RICON_SIZE 0
|
||||||
@ -1369,10 +1370,10 @@ bool GuiWindowBox(Rectangle bounds, const char *title)
|
|||||||
int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT);
|
int tempTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT);
|
||||||
GuiSetStyle(BUTTON, BORDER_WIDTH, 1);
|
GuiSetStyle(BUTTON, BORDER_WIDTH, 1);
|
||||||
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if defined(RAYGUI_NO_RICONS)
|
||||||
clicked = GuiButton(closeButtonRec, GuiIconText(RICON_CROSS_SMALL, NULL));
|
|
||||||
#else
|
|
||||||
clicked = GuiButton(closeButtonRec, "x");
|
clicked = GuiButton(closeButtonRec, "x");
|
||||||
|
#else
|
||||||
|
clicked = GuiButton(closeButtonRec, GuiIconText(RICON_CROSS_SMALL, NULL));
|
||||||
#endif
|
#endif
|
||||||
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
|
GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth);
|
||||||
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment);
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment);
|
||||||
@ -2145,12 +2146,12 @@ bool GuiSpinner(Rectangle bounds, const char *text, int *value, int minValue, in
|
|||||||
GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(SPINNER, BORDER_WIDTH));
|
GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(SPINNER, BORDER_WIDTH));
|
||||||
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER);
|
||||||
|
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if defined(RAYGUI_NO_RICONS)
|
||||||
if (GuiButton(leftButtonBound, GuiIconText(RICON_ARROW_LEFT_FILL, NULL))) tempValue--;
|
|
||||||
if (GuiButton(rightButtonBound, GuiIconText(RICON_ARROW_RIGHT_FILL, NULL))) tempValue++;
|
|
||||||
#else
|
|
||||||
if (GuiButton(leftButtonBound, "<")) tempValue--;
|
if (GuiButton(leftButtonBound, "<")) tempValue--;
|
||||||
if (GuiButton(rightButtonBound, ">")) tempValue++;
|
if (GuiButton(rightButtonBound, ">")) tempValue++;
|
||||||
|
#else
|
||||||
|
if (GuiButton(leftButtonBound, GuiIconText(RICON_ARROW_LEFT_FILL, NULL))) tempValue--;
|
||||||
|
if (GuiButton(rightButtonBound, GuiIconText(RICON_ARROW_RIGHT_FILL, NULL))) tempValue++;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign);
|
GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign);
|
||||||
@ -3626,7 +3627,9 @@ void GuiLoadStyleDefault(void)
|
|||||||
// a number that can change between ricon versions
|
// a number that can change between ricon versions
|
||||||
const char *GuiIconText(int iconId, const char *text)
|
const char *GuiIconText(int iconId, const char *text)
|
||||||
{
|
{
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if defined(RAYGUI_NO_RICONS)
|
||||||
|
return NULL;
|
||||||
|
#else
|
||||||
static char buffer[1024] = { 0 };
|
static char buffer[1024] = { 0 };
|
||||||
memset(buffer, 0, 1024);
|
memset(buffer, 0, 1024);
|
||||||
|
|
||||||
@ -3642,12 +3645,10 @@ const char *GuiIconText(int iconId, const char *text)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return buffer;
|
return buffer;
|
||||||
#else
|
|
||||||
return NULL;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if !defined(RAYGUI_NO_RICONS)
|
||||||
|
|
||||||
// Get full icons data pointer
|
// Get full icons data pointer
|
||||||
unsigned int *GuiGetIcons(void) { return guiIcons; }
|
unsigned int *GuiGetIcons(void) { return guiIcons; }
|
||||||
@ -3793,7 +3794,7 @@ bool GuiCheckIconPixel(int iconId, int x, int y)
|
|||||||
|
|
||||||
return (BIT_CHECK(guiIcons[iconId*8 + y/2], x + (y%2*16)));
|
return (BIT_CHECK(guiIcons[iconId*8 + y/2], x + (y%2*16)));
|
||||||
}
|
}
|
||||||
#endif // RAYGUI_SUPPORT_RICONS
|
#endif // !RAYGUI_NO_RICONS
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------
|
||||||
// Module specific Functions Definition
|
// Module specific Functions Definition
|
||||||
@ -3842,7 +3843,7 @@ static Rectangle GetTextBounds(int control, Rectangle bounds)
|
|||||||
// NOTE: We support up to 999 values for iconId
|
// NOTE: We support up to 999 values for iconId
|
||||||
static const char *GetTextIcon(const char *text, int *iconId)
|
static const char *GetTextIcon(const char *text, int *iconId)
|
||||||
{
|
{
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if !defined(RAYGUI_NO_RICONS)
|
||||||
*iconId = -1;
|
*iconId = -1;
|
||||||
if (text[0] == '#') // Maybe we have an icon!
|
if (text[0] == '#') // Maybe we have an icon!
|
||||||
{
|
{
|
||||||
@ -3927,7 +3928,7 @@ static void GuiDrawText(const char *text, Rectangle bounds, int alignment, Color
|
|||||||
|
|
||||||
// Draw text (with icon if available)
|
// Draw text (with icon if available)
|
||||||
//---------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------
|
||||||
#if defined(RAYGUI_SUPPORT_RICONS)
|
#if !defined(RAYGUI_NO_RICONS)
|
||||||
if (iconId >= 0)
|
if (iconId >= 0)
|
||||||
{
|
{
|
||||||
// NOTE: We consider icon height, probably different than text size
|
// NOTE: We consider icon height, probably different than text size
|
||||||
|
Loading…
x
Reference in New Issue
Block a user