|
@@ -731,7 +731,10 @@ RAYGUIDEF void GuiPanel(Rectangle bounds)
|
|
|
RAYGUIDEF Vector2 GuiScrollPanel(Rectangle bounds, Rectangle content, Vector2 viewScroll)
|
|
|
{
|
|
|
GuiControlState state = guiState;
|
|
|
-
|
|
|
+
|
|
|
+ bool useScrollBar = false;
|
|
|
+ if (content.height > bounds.height) useScrollBar = true;
|
|
|
+
|
|
|
// Update control
|
|
|
//--------------------------------------------------------------------
|
|
|
if ((state != GUI_STATE_DISABLED) && !guiLocked)
|
|
@@ -753,38 +756,28 @@ RAYGUIDEF Vector2 GuiScrollPanel(Rectangle bounds, Rectangle content, Vector2 vi
|
|
|
|
|
|
// Draw control
|
|
|
//--------------------------------------------------------------------
|
|
|
- DrawRectangleRec(bounds, RAYWHITE);
|
|
|
+ // TODO: Draw scroll panel content --> This functionally should be outside function!
|
|
|
+ //BeginScissorMode(bounds.x + 1, bounds.y + 1, bounds.width - 2 - 10, bounds.height - 2);
|
|
|
+ //DrawRectangle(content.x, content.y + viewScroll.y, content.width, content.height, Fade(RED, 0.4f));
|
|
|
+ //EndScissorMode();
|
|
|
+
|
|
|
+ DrawRectangleRec(bounds, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
|
|
|
+
|
|
|
+ // Draw scroll bars if required
|
|
|
+ if (useScrollBar)
|
|
|
+ {
|
|
|
+ DrawRectangle(bounds.x, bounds.y, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), bounds.height, Fade(GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
|
+ if (state != GUI_STATE_DISABLED) DrawRectangle(bounds.x, bounds.y - (bounds.height/content.height)*viewScroll.y, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), (bounds.height/content.height)*bounds.height, Fade(GetColor(GuiGetStyle(SLIDER, BORDER_COLOR_NORMAL)), guiAlpha));
|
|
|
+ }
|
|
|
|
|
|
switch (state)
|
|
|
{
|
|
|
- case GUI_STATE_NORMAL:
|
|
|
- {
|
|
|
- DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_NORMAL)), guiAlpha));
|
|
|
-
|
|
|
- } break;
|
|
|
- case GUI_STATE_FOCUSED:
|
|
|
- {
|
|
|
- DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha));
|
|
|
-
|
|
|
- } break;
|
|
|
- case GUI_STATE_PRESSED:
|
|
|
- {
|
|
|
- DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha));
|
|
|
-
|
|
|
- } break;
|
|
|
- case GUI_STATE_DISABLED:
|
|
|
- {
|
|
|
- DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
|
-
|
|
|
- } break;
|
|
|
+ case GUI_STATE_NORMAL: DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_NORMAL)), guiAlpha)); break;
|
|
|
+ case GUI_STATE_FOCUSED: DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha)); break;
|
|
|
+ case GUI_STATE_PRESSED: DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha)); break;
|
|
|
+ case GUI_STATE_DISABLED: DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha)); break;
|
|
|
default: break;
|
|
|
}
|
|
|
-
|
|
|
- DrawRectangle(content.x, content.y + viewScroll.y, content.width, content.height, Fade(RED, 0.4f));
|
|
|
-
|
|
|
- // Draw scroll bar
|
|
|
- DrawRectangle(bounds.x + bounds.width - 11, bounds.y + 1, 10, bounds.height - 2, LIGHTGRAY);
|
|
|
- DrawRectangle(bounds.x + bounds.width - 11, bounds.y - (bounds.height/content.height)*viewScroll.y, 10, (bounds.height/content.height)*bounds.height, DARKGRAY);
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
return viewScroll;
|
|
@@ -2321,7 +2314,7 @@ RAYGUIDEF bool GuiListViewEx(Rectangle bounds, const char **text, int *enabledEl
|
|
|
}
|
|
|
|
|
|
// Calculate position X and width to draw each element.
|
|
|
- int posX = bounds.x + GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING);
|
|
|
+ int posX = bounds.x + GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) + GuiGetStyle(LISTVIEW, ELEMENTS_PADDING);
|
|
|
int elementWidth = bounds.width - GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) - 2*GuiGetStyle(LISTVIEW, ELEMENTS_PADDING) - GuiGetStyle(DEFAULT, BORDER_WIDTH);
|
|
|
|
|
|
if (!useScrollBar)
|
|
@@ -2439,15 +2432,18 @@ RAYGUIDEF bool GuiListViewEx(Rectangle bounds, const char **text, int *enabledEl
|
|
|
//--------------------------------------------------------------------
|
|
|
DrawRectangleRec(bounds, GetColor(GuiGetStyle(DEFAULT, BACKGROUND_COLOR))); // Draw background
|
|
|
|
|
|
- // Draw scrollBar background
|
|
|
- if (useScrollBar) DrawRectangle(bounds.x, bounds.y, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), bounds.height, Fade(GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
|
+ // Draw scrollBar
|
|
|
+ if (useScrollBar)
|
|
|
+ {
|
|
|
+ DrawRectangle(bounds.x, bounds.y, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), bounds.height, Fade(GetColor(GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
|
+ if (state != GUI_STATE_DISABLED) DrawRectangle(bounds.x, barPosY, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), barHeight, Fade(GetColor(GuiGetStyle(SLIDER, BORDER_COLOR_NORMAL)), guiAlpha));
|
|
|
+ }
|
|
|
|
|
|
// Draw ListView states
|
|
|
switch (state)
|
|
|
{
|
|
|
case GUI_STATE_NORMAL:
|
|
|
{
|
|
|
- if (useScrollBar) DrawRectangle(bounds.x, barPosY, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), barHeight, Fade(GetColor(GuiGetStyle(SLIDER, BORDER_COLOR_NORMAL)), guiAlpha));
|
|
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_NORMAL)), guiAlpha));
|
|
|
|
|
|
for (int i = startIndex; i < endIndex; i++)
|
|
@@ -2469,7 +2465,6 @@ RAYGUIDEF bool GuiListViewEx(Rectangle bounds, const char **text, int *enabledEl
|
|
|
} break;
|
|
|
case GUI_STATE_FOCUSED:
|
|
|
{
|
|
|
- if (useScrollBar) DrawRectangle(bounds.x, barPosY, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), barHeight, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_FOCUSED)), guiAlpha));
|
|
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED)), guiAlpha));
|
|
|
|
|
|
for (int i = startIndex; i < endIndex; i++)
|
|
@@ -2486,7 +2481,6 @@ RAYGUIDEF bool GuiListViewEx(Rectangle bounds, const char **text, int *enabledEl
|
|
|
} break;
|
|
|
case GUI_STATE_PRESSED:
|
|
|
{
|
|
|
- if (useScrollBar) DrawRectangle(bounds.x, barPosY, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), barHeight, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
|
|
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED)), guiAlpha));
|
|
|
|
|
|
for (int i = startIndex; i < endIndex; i++)
|
|
@@ -2509,8 +2503,6 @@ RAYGUIDEF bool GuiListViewEx(Rectangle bounds, const char **text, int *enabledEl
|
|
|
} break;
|
|
|
case GUI_STATE_DISABLED:
|
|
|
{
|
|
|
- if (useScrollBar) DrawRectangle(bounds.x, barPosY, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH), barHeight, Fade(GetColor(GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED)), guiAlpha));
|
|
|
-
|
|
|
DrawRectangleLinesEx(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED)), guiAlpha));
|
|
|
|
|
|
for (int i = startIndex; i < endIndex; i++)
|