# HG changeset patch # User ib # Date 1396524653 0 # Node ID b6ff1451035d62468378868391d7821d061d7ed3 # Parent df052000865cbbba5ccac2d8d023caab3030ed82 Constrain an item's value to be in the range of 0 to 100. Add function contrain() and replace checking the bounds by it. Add it for mouse wheeling, too, where it has been missing so far. diff -r df052000865c -r b6ff1451035d gui/app/app.c --- a/gui/app/app.c Thu Apr 03 10:16:01 2014 +0000 +++ b/gui/app/app.c Thu Apr 03 11:30:53 2014 +0000 @@ -24,6 +24,7 @@ #include "app.h" #include "gui.h" #include "gui/skin/font.h" +#include "gui/util/misc.h" #include "libavutil/common.h" @@ -190,25 +191,13 @@ for (i = 0; i <= guiApp.IndexOfMainItems; i++) if (guiApp.mainItems[i].message == event) - if (hasValue(guiApp.mainItems[i])) { - if (value < 0.0f) - value = 0.0f; - if (value > 100.0f) - value = 100.0f; - - guiApp.mainItems[i].value = value; - } + if (hasValue(guiApp.mainItems[i])) + guiApp.mainItems[i].value = constrain(value); for (i = 0; i <= guiApp.IndexOfPlaybarItems; i++) if (guiApp.playbarItems[i].message == event) - if (hasValue(guiApp.playbarItems[i])) { - if (value < 0.0f) - value = 0.0f; - if (value > 100.0f) - value = 100.0f; - - guiApp.playbarItems[i].value = value; - } + if (hasValue(guiApp.playbarItems[i])) + guiApp.playbarItems[i].value = constrain(value); } /** diff -r df052000865c -r b6ff1451035d gui/ui/main.c --- a/gui/ui/main.c Thu Apr 03 10:16:01 2014 +0000 +++ b/gui/ui/main.c Thu Apr 03 11:30:53 2014 +0000 @@ -32,6 +32,7 @@ #include "gui/skin/skin.h" #include "gui/util/list.h" #include "gui/util/mem.h" +#include "gui/util/misc.h" #include "gui/util/string.h" #include "gui/wm/ws.h" #include "gui/wm/wsxdnd.h" @@ -171,7 +172,7 @@ item=&guiApp.mainItems[currentselected]; if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter ) ) { - item->value+=value; + item->value=constrain(item->value + value); uiEvent( item->message,item->value ); } } @@ -189,13 +190,12 @@ if (guiApp.menuIsPresent) guiApp.menuWindow.MouseHandler( 0,RX,RY,0,0 ); break; case itVPotmeter: - item->value=100.0 - 100.0 * ( Y - item->y ) / item->height; + value=100.0 - 100.0 * ( Y - item->y ) / item->height; goto potihandled; case itHPotmeter: - item->value=100.0 * ( X - item->x ) / item->width; + value=100.0 * ( X - item->x ) / item->width; potihandled: - if ( item->value > 100.0f ) item->value=100.0f; - if ( item->value < 0.0f ) item->value=0.0f; + item->value=constrain(value); uiEvent( item->message,item->value ); break; } diff -r df052000865c -r b6ff1451035d gui/ui/playbar.c --- a/gui/ui/playbar.c Thu Apr 03 10:16:01 2014 +0000 +++ b/gui/ui/playbar.c Thu Apr 03 11:30:53 2014 +0000 @@ -30,6 +30,7 @@ #include "gui/skin/font.h" #include "gui/skin/skin.h" #include "gui/util/mem.h" +#include "gui/util/misc.h" #include "gui/wm/ws.h" #include "help_mp.h" @@ -196,7 +197,7 @@ item=&guiApp.playbarItems[currentselected]; if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter ) ) { - item->value+=value; + item->value=constrain(item->value + value); uiEvent( item->message,item->value ); } } @@ -210,13 +211,12 @@ if (guiApp.menuIsPresent) guiApp.menuWindow.MouseHandler( 0,RX,RY,0,0 ); break; case itVPotmeter: - item->value=100.0 - 100.0 * ( Y - item->y ) / item->height; + value=100.0 - 100.0 * ( Y - item->y ) / item->height; goto potihandled; case itHPotmeter: - item->value=100.0 * ( X - item->x ) / item->width; + value=100.0 * ( X - item->x ) / item->width; potihandled: - if ( item->value > 100.0f ) item->value=100.0f; - if ( item->value < 0.0f ) item->value=0.0f; + item->value=constrain(value); uiEvent( item->message,item->value ); break; } diff -r df052000865c -r b6ff1451035d gui/util/misc.c --- a/gui/util/misc.c Thu Apr 03 10:16:01 2014 +0000 +++ b/gui/util/misc.c Thu Apr 03 11:30:53 2014 +0000 @@ -47,3 +47,20 @@ return s; } + +/** + * @brief Constrain a @a value to be in the range of 0 to 100. + * + * @param value value to be checked + * + * @return a value in the range of 0 to 100 + */ +float constrain(float value) +{ + if (value < 0.0f) + return 0.0f; + if (value > 100.0f) + return 100.0f; + + return value; +} diff -r df052000865c -r b6ff1451035d gui/util/misc.h --- a/gui/util/misc.h Thu Apr 03 10:16:01 2014 +0000 +++ b/gui/util/misc.h Thu Apr 03 11:30:53 2014 +0000 @@ -21,6 +21,7 @@ #include +float constrain(float value); char *fgetstr(char *str, int size, FILE *file); #endif /* MPLAYER_GUI_MISC_H */