From 8f2f3e9ac28f3f3380166f94fa297d23463770d6 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 23 Jul 2006 09:48:51 +0200 Subject: Menu items derived from cMenuEditIntItem now loop though their values if they have a dedicated minimum or maximum limit --- menuitems.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'menuitems.c') diff --git a/menuitems.c b/menuitems.c index 517664c7..cbfcf053 100644 --- a/menuitems.c +++ b/menuitems.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: menuitems.c 1.45 2006/06/03 13:20:01 kls Exp $ + * $Id: menuitems.c 1.46 2006/07/23 09:42:17 kls Exp $ */ #include "menuitems.h" @@ -75,6 +75,7 @@ eOSState cMenuEditIntItem::ProcessKey(eKeys Key) if (state == osUnknown) { int newValue = *value; + bool IsRepeat = Key & k_Repeat; Key = NORMALKEY(Key); switch (Key) { case kNone: break; @@ -88,10 +89,14 @@ eOSState cMenuEditIntItem::ProcessKey(eKeys Key) case kLeft: // TODO might want to increase the delta if repeated quickly? newValue = *value - 1; fresh = true; + if (!IsRepeat && newValue < min && max != INT_MAX) + newValue = max; break; case kRight: newValue = *value + 1; fresh = true; + if (!IsRepeat && newValue > max && min != INT_MIN) + newValue = min; break; default: if (*value < min) { *value = min; Set(); } -- cgit v1.2.3