6 Commits

Author SHA1 Message Date
Ray
9cb5cfa732 Update raygui.h 2026-10-06 19:13:00 +02:00
Ray
45a40cd0a6 Update raygui.h 2026-10-06 18:35:43 +02:00
Ray
c2d948f565 Update raygui.h 2026-10-05 09:39:13 +02:00
Ray
04bf996730 Update raygui.h 2026-10-01 21:50:26 +02:00
386297a48d Fix paste (Ctrl+V) in GuiTextBox (#577) 2026-10-01 21:46:40 +02:00
6fcd57bfe5 TAB_LINE_SIDE can put line on top side (#576)
* TAB_LINE_SIDE can put line on top side

* float boundary offset
2026-10-01 21:46:06 +02:00

View File

@ -723,11 +723,13 @@ typedef enum {
} GuiComboBoxProperty;
// DropdownBox
// TODO: Support dropdown with scrollbar
typedef enum {
ARROW_PADDING = 16, // DropdownBox arrow separation from border and items
DROPDOWN_ITEMS_SPACING, // DropdownBox items separation
DROPDOWN_ARROW_HIDDEN, // DropdownBox arrow hidden
DROPDOWN_ROLL_UP // DropdownBox roll up flag: 0-Roll down, 1-Roll up
DROPDOWN_ROLL_UP, // DropdownBox roll up flag: 0-Roll down, 1-Roll up
DROPDOWN_MAX_HEIGHT // DropdownBox max height, using scrollbar if required, 0-No limit
} GuiDropdownBoxProperty;
// TextBox/TextBoxMulti/ValueBox/Spinner
@ -1877,7 +1879,7 @@ int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector
{
// Move panel bounds after the header bar
bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1;
bounds.height -= (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT + 1;
bounds.height -= ((float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1);
}
bool hasHorizontalScrollBar = (content.width > bounds.width - 2*GuiGetStyle(DEFAULT, BORDER_WIDTH))? true : false;
@ -1967,9 +1969,9 @@ int GuiScrollPanel(Rectangle bounds, const char *text, Rectangle content, Vector
// Draw control
//--------------------------------------------------------------------
if (text != NULL) result = GuiStatusBar(statusBar, text); // Draw panel header as status bar
if (text != NULL) result = GuiStatusBar(statusBar, text); // Draw panel header as status bar
GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
GuiDrawRectangle(bounds, 0, BLANK, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
// Save size of the scrollbar slider
const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE);
@ -2697,7 +2699,7 @@ int GuiTextBox(Rectangle bounds, char *text, int textSize, bool editMode)
if (pasteLength > 0)
{
// Move forward data from cursor position
for (int i = textLength + pasteLength; i > textBoxCursorIndex; i--) text[i] = text[i - pasteLength];
for (int i = textLength + pasteLength; (i > textBoxCursorIndex) && (i < pasteLength); i--) text[i] = text[i - pasteLength];
// Paste data in at cursor
for (int i = 0; i < pasteLength; i++) text[textBoxCursorIndex + i] = pasteText[i];
@ -3958,8 +3960,9 @@ int GuiTabBarEx(Rectangle bounds, char **text, int count, int *hscroll, int *act
}
}
// Draw tab-bar bottom line
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + bounds.height - 1, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TABBAR, BORDER_COLOR_NORMAL)));
// Draw tab-bar border line
float tabBorderOffset = (GuiGetStyle(TABBAR, TAB_LINE_SIDE) == 1)? 0 : (bounds.height - 1);
GuiDrawRectangle(RAYGUI_CLITERAL(Rectangle){ bounds.x, bounds.y + tabBorderOffset, bounds.width, 1 }, 0, BLANK, GetColor(GuiGetStyle(TABBAR, BORDER_COLOR_NORMAL)));
//--------------------------------------------------------------------
// NOTE: In case of tab close result, consider focused tab
@ -5401,7 +5404,7 @@ static int GetLineWidth(const char *text)
text += textIconOffset;
// WARNING: Make sure guiFont is set,
// WARNING: Make sure guiFont is set,
// GuiGetStyle() does a lazy initialization
GuiGetStyle(DEFAULT, TEXT_SIZE);
@ -5783,8 +5786,8 @@ static void GuiDrawRectangle(Rectangle rec, int borderWidth, Color borderColor,
// TODO: Consider multiline text
static Vector2 GuiMeasureText(const char *text)
{
Vector2 size = { 0 };
Vector2 textSize = { 0 };
if ((guiFont.texture.id > 0) && (text != NULL))
{
// Get size in bytes of the line, considering end of line and line break
@ -5810,8 +5813,8 @@ static Vector2 GuiMeasureText(const char *text)
textSize.x += (glyphWidth + (float)GuiGetStyle(DEFAULT, TEXT_SPACING));
}
}
return size;
return textSize;
}
// Draw tooltip using control bounds