|
@@ -429,9 +429,9 @@ RAYGUIDEF bool GuiSpinner(Rectangle bounds, int *value, int minValue, int maxVal
|
|
|
RAYGUIDEF bool GuiValueBox(Rectangle bounds, 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
|
|
|
RAYGUIDEF bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool editMode); // Text Box control with multiple lines
|
|
|
-RAYGUIDEF float GuiSlider(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue); // Slider control, returns selected value
|
|
|
-RAYGUIDEF float GuiSliderBar(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue); // Slider Bar control, returns selected value
|
|
|
-RAYGUIDEF float GuiProgressBar(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue); // Progress Bar control, shows current progress value
|
|
|
+RAYGUIDEF 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
|
|
|
+RAYGUIDEF 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
|
|
|
RAYGUIDEF 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
|
|
@@ -2965,7 +2965,7 @@ RAYGUIDEF bool GuiTextBoxMulti(Rectangle bounds, char *text, int textSize, bool
|
|
|
|
|
|
// Slider control with pro parameters
|
|
|
// NOTE: Other GuiSlider*() controls use this one
|
|
|
-RAYGUIDEF float GuiSliderPro(Rectangle bounds, const char *text, float value, float minValue, float maxValue, int sliderWidth, bool showValue)
|
|
|
+RAYGUIDEF float GuiSliderPro(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue, int sliderWidth)
|
|
|
{
|
|
|
GuiControlState state = guiState;
|
|
|
|
|
@@ -2985,12 +2985,6 @@ RAYGUIDEF float GuiSliderPro(Rectangle bounds, const char *text, float value, fl
|
|
|
slider.width = sliderValue;
|
|
|
}
|
|
|
|
|
|
- Rectangle textBounds = { 0 };
|
|
|
- textBounds.width = GetTextWidth(text); // TODO: Consider text icon
|
|
|
- textBounds.height = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
|
- textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING);
|
|
|
- textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
|
|
-
|
|
|
// Update control
|
|
|
//--------------------------------------------------------------------
|
|
|
if ((state != GUI_STATE_DISABLED) && !guiLocked)
|
|
@@ -3037,32 +3031,47 @@ RAYGUIDEF float GuiSliderPro(Rectangle bounds, const char *text, float value, fl
|
|
|
if ((state == GUI_STATE_NORMAL) || (state == GUI_STATE_PRESSED)) DrawRectangleRec(slider, Fade(GetColor(GuiGetStyle(SLIDER, BASE_COLOR_PRESSED)), guiAlpha));
|
|
|
else if (state == GUI_STATE_FOCUSED) DrawRectangleRec(slider, Fade(GetColor(GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED)), guiAlpha));
|
|
|
|
|
|
- GuiDrawText(text, textBounds, GuiGetStyle(SLIDER, TEXT_ALIGNMENT), Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
|
|
-
|
|
|
- // TODO: Review showValue parameter, really ugly...
|
|
|
- if (showValue) GuiDrawText(TextFormat("%.02f", value), RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING),
|
|
|
- (float)bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2 + GuiGetStyle(SLIDER, INNER_PADDING),
|
|
|
- (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, GUI_TEXT_ALIGN_LEFT,
|
|
|
- Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
|
|
+ // Draw left/right text if provided
|
|
|
+ if (textLeft != NULL)
|
|
|
+ {
|
|
|
+ Rectangle textBounds = { 0 };
|
|
|
+ textBounds.width = GetTextWidth(textLeft); // TODO: Consider text icon
|
|
|
+ textBounds.height = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
|
+ textBounds.x = bounds.x - textBounds.width - GuiGetStyle(SLIDER, TEXT_PADDING);
|
|
|
+ textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
|
|
+
|
|
|
+ GuiDrawText(textLeft, textBounds, GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (textRight != NULL)
|
|
|
+ {
|
|
|
+ Rectangle textBounds = { 0 };
|
|
|
+ textBounds.width = GetTextWidth(textRight); // TODO: Consider text icon
|
|
|
+ textBounds.height = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
|
+ textBounds.x = bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING);
|
|
|
+ textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
|
|
+
|
|
|
+ GuiDrawText(textRight, textBounds, GUI_TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(SLIDER, TEXT + (state*3))), guiAlpha));
|
|
|
+ }
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
return value;
|
|
|
}
|
|
|
|
|
|
// Slider control extended, returns selected value and has text
|
|
|
-RAYGUIDEF float GuiSlider(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue)
|
|
|
+RAYGUIDEF float GuiSlider(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
|
|
|
{
|
|
|
- return GuiSliderPro(bounds, text, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH), showValue);
|
|
|
+ return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH));
|
|
|
}
|
|
|
|
|
|
// Slider Bar control extended, returns selected value
|
|
|
-RAYGUIDEF float GuiSliderBar(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue)
|
|
|
+RAYGUIDEF float GuiSliderBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
|
|
|
{
|
|
|
- return GuiSliderPro(bounds, text, value, minValue, maxValue, 0, showValue);
|
|
|
+ return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, 0);
|
|
|
}
|
|
|
|
|
|
// Progress Bar control extended, shows current progress value
|
|
|
-RAYGUIDEF float GuiProgressBar(Rectangle bounds, const char *text, float value, float minValue, float maxValue, bool showValue)
|
|
|
+RAYGUIDEF float GuiProgressBar(Rectangle bounds, const char *textLeft, const char *textRight, float value, float minValue, float maxValue)
|
|
|
{
|
|
|
GuiControlState state = guiState;
|
|
|
|
|
@@ -3077,13 +3086,34 @@ RAYGUIDEF float GuiProgressBar(Rectangle bounds, const char *text, float value,
|
|
|
|
|
|
// Draw control
|
|
|
//--------------------------------------------------------------------
|
|
|
- if (showValue) GuiLabel(RAYGUI_CLITERAL(Rectangle){ (float)bounds.x + bounds.width + GuiGetStyle(SLIDER, TEXT_PADDING), (float)bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2 + GuiGetStyle(SLIDER, INNER_PADDING), (float)GuiGetStyle(DEFAULT, TEXT_SIZE), (float)GuiGetStyle(DEFAULT, TEXT_SIZE) }, TextFormat("%.02f", value));
|
|
|
-
|
|
|
DrawRectangleLinesEx(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), Fade(GetColor(GuiGetStyle(PROGRESSBAR, BORDER + (state*3))), guiAlpha));
|
|
|
|
|
|
// Draw slider internal progress bar (depends on state)
|
|
|
if ((state == GUI_STATE_NORMAL) || (state == GUI_STATE_PRESSED)) DrawRectangleRec(progress, Fade(GetColor(GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED)), guiAlpha));
|
|
|
else if (state == GUI_STATE_FOCUSED) DrawRectangleRec(progress, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT_COLOR_FOCUSED)), guiAlpha));
|
|
|
+
|
|
|
+ // Draw left/right text if provided
|
|
|
+ if (textLeft != NULL)
|
|
|
+ {
|
|
|
+ Rectangle textBounds = { 0 };
|
|
|
+ textBounds.width = GetTextWidth(textLeft); // TODO: Consider text icon
|
|
|
+ textBounds.height = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
|
+ textBounds.x = bounds.x - textBounds.width - GuiGetStyle(PROGRESSBAR, TEXT_PADDING);
|
|
|
+ textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
|
|
+
|
|
|
+ GuiDrawText(textLeft, textBounds, GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (textRight != NULL)
|
|
|
+ {
|
|
|
+ Rectangle textBounds = { 0 };
|
|
|
+ textBounds.width = GetTextWidth(textRight); // TODO: Consider text icon
|
|
|
+ textBounds.height = GuiGetStyle(DEFAULT, TEXT_SIZE);
|
|
|
+ textBounds.x = bounds.x + bounds.width + GuiGetStyle(PROGRESSBAR, TEXT_PADDING);
|
|
|
+ textBounds.y = bounds.y + bounds.height/2 - GuiGetStyle(DEFAULT, TEXT_SIZE)/2;
|
|
|
+
|
|
|
+ GuiDrawText(textRight, textBounds, GUI_TEXT_ALIGN_LEFT, Fade(GetColor(GuiGetStyle(PROGRESSBAR, TEXT + (state*3))), guiAlpha));
|
|
|
+ }
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
return value;
|