4 Commits

Author SHA1 Message Date
Ray
1abccb3a53 Update raygui.h 2026-10-20 22:46:54 +02:00
Ray
ca17a68d1a Update raygui.h 2026-10-14 19:04:22 +02:00
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

View File

@ -287,7 +287,7 @@
* 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria * 0.8 (27-Aug-2015) Initial release. Implemented by Kevin Gato, Daniel Nicolás and Ramon Santamaria
* *
* DEPENDENCIES: * DEPENDENCIES:
* raylib 6.1-dev - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing * raylib 6.2 - Inputs reading (keyboard/mouse), shapes drawing, font loading and text drawing
* *
* STANDALONE MODE: * STANDALONE MODE:
* By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled * By default raygui depends on raylib mostly for the inputs and the drawing functionality but that dependency can be disabled
@ -723,11 +723,13 @@ typedef enum {
} GuiComboBoxProperty; } GuiComboBoxProperty;
// DropdownBox // DropdownBox
// TODO: Support dropdown with scrollbar
typedef enum { typedef enum {
ARROW_PADDING = 16, // DropdownBox arrow separation from border and items ARROW_PADDING = 16, // DropdownBox arrow separation from border and items
DROPDOWN_ITEMS_SPACING, // DropdownBox items separation DROPDOWN_ITEMS_SPACING, // DropdownBox items separation
DROPDOWN_ARROW_HIDDEN, // DropdownBox arrow hidden 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; } GuiDropdownBoxProperty;
// TextBox/TextBoxMulti/ValueBox/Spinner // 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 // Move panel bounds after the header bar
bounds.y += (float)RAYGUI_WINDOWBOX_STATUSBAR_HEIGHT - 1; 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; 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 // 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 // Save size of the scrollbar slider
const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); const int slider = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE);
@ -3892,13 +3894,17 @@ int GuiTabBarEx(Rectangle bounds, char **text, int count, int *hscroll, int *act
int tabItemsWidth = GuiGetStyle(TABBAR, TAB_ITEMS_WIDTH); int tabItemsWidth = GuiGetStyle(TABBAR, TAB_ITEMS_WIDTH);
Rectangle tabBounds = { bounds.x, bounds.y, (float)tabItemsWidth, bounds.height }; Rectangle tabBounds = { bounds.x, bounds.y, (float)tabItemsWidth, bounds.height };
int prevActive = 0;
if (active != NULL)
{
if (*active < 0) *active = 0;
else if (*active > count - 1) *active = count - 1;
prevActive = *active;
}
if (*active < 0) *active = 0; int offsetX = 0; // Required in case tabs go out of screen
else if (*active > count - 1) *active = count - 1;
int prevActive = (active == NULL)? 0 : *active;
int offsetX = 0; // Required in case tabs go out of screen
offsetX = (*active*tabItemsWidth) - GetScreenWidth(); offsetX = (*active*tabItemsWidth) - GetScreenWidth();
if (offsetX < 0) offsetX = 0; if (offsetX < 0) offsetX = 0;