mirror of
				https://github.com/vdr-projects/vdr.git
				synced 2025-03-01 10:50:46 +00:00 
			
		
		
		
	Fixed setting current menu item if the first one is non-selectable; cOsdItem::cOsdItem() now has a 'Selectable' parameter
This commit is contained in:
		
							
								
								
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								HISTORY
									
									
									
									
									
								
							| @@ -3866,3 +3866,5 @@ Video Disk Recorder Revision History | ||||
|   Schl<68><6C>ler). | ||||
| - Added a check against MAXOSDAREAS in cOsd::CanHandleAreas() (reported by Udo | ||||
|   Richter). | ||||
| - Fixed setting current menu item if the first one is non-selectable. | ||||
| - cOsdItem::cOsdItem() now has a 'Selectable' parameter. | ||||
|   | ||||
							
								
								
									
										11
									
								
								osdbase.c
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								osdbase.c
									
									
									
									
									
								
							| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: osdbase.c 1.20 2005/06/18 10:30:51 kls Exp $ | ||||
|  * $Id: osdbase.c 1.21 2005/10/02 09:23:10 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #include "osdbase.h" | ||||
| @@ -25,12 +25,12 @@ cOsdItem::cOsdItem(eOSState State) | ||||
|   fresh = true; | ||||
| } | ||||
|  | ||||
| cOsdItem::cOsdItem(const char *Text, eOSState State) | ||||
| cOsdItem::cOsdItem(const char *Text, eOSState State, bool Selectable) | ||||
| { | ||||
|   text = NULL; | ||||
|   offset = -1; | ||||
|   state = State; | ||||
|   selectable = true; | ||||
|   selectable = Selectable; | ||||
|   fresh = true; | ||||
|   SetText(Text); | ||||
| } | ||||
| @@ -196,8 +196,11 @@ void cOsdMenu::Display(void) | ||||
|   int count = Count(); | ||||
|   if (count > 0) { | ||||
|      int ni = 0; | ||||
|      for (cOsdItem *item = First(); item; item = Next(item)) | ||||
|      for (cOsdItem *item = First(); item; item = Next(item)) { | ||||
|          cStatus::MsgOsdItem(item->Text(), ni++); | ||||
|          if (current < 0 && item->Selectable()) | ||||
|             current = item->Index(); | ||||
|          } | ||||
|      if (current < 0) | ||||
|         current = 0; // just for safety - there HAS to be a current item! | ||||
|      if (current - first >= displayMenuItems || current < first) { | ||||
|   | ||||
| @@ -4,7 +4,7 @@ | ||||
|  * See the main source file 'vdr.c' for copyright information and | ||||
|  * how to reach the author. | ||||
|  * | ||||
|  * $Id: osdbase.h 1.11 2005/06/12 10:46:34 kls Exp $ | ||||
|  * $Id: osdbase.h 1.12 2005/10/02 09:18:20 kls Exp $ | ||||
|  */ | ||||
|  | ||||
| #ifndef __OSDBASE_H | ||||
| @@ -56,7 +56,7 @@ protected: | ||||
|   bool fresh; | ||||
| public: | ||||
|   cOsdItem(eOSState State = osUnknown); | ||||
|   cOsdItem(const char *Text, eOSState State = osUnknown); | ||||
|   cOsdItem(const char *Text, eOSState State = osUnknown, bool Selectable = true); | ||||
|   virtual ~cOsdItem(); | ||||
|   bool Selectable(void) { return selectable; } | ||||
|   void SetText(const char *Text, bool Copy = true); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user