Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[vdr] Re: Small OSD menu example?



Jan Ekholm wrote:
> 
> On Wed, 4 Jun 2003, Klaus Schmidinger wrote:
> 
> >Jan Ekholm wrote:
> >>
> >> On Wed, 4 Jun 2003, Klaus Schmidinger wrote:
> >>
> >> >Jan Ekholm wrote:
> >> >>
> >> >> ...
> >> >> Nobody interested in a free shipped CD/DVD in response to some example
> >> >> code? :) I've given up on trying to get my brain to craft up the menus. I
> >> >> can do a huge "flat" menu, but I'd prefer nested menus as they'd make the
> >> >> system just so much more useful.
> >> >
> >> >Why don't you just take a look at how, for instance, cMenuSetup is implemented?
> >>
> >> I've done that in the past. One thing that didn't really get clear to me,
> >> and which is pretty fundamental is wether the whole menu structure is
> >> defined at once, or in parts as needed? Ie. when the OSD is first
> >> activated, are all the deepest down menus and items already created, or do
> >> they get created when the user enters a particular submenu? The former
> >> would let VDR take care of all the navigation etc, while the latter forces
> >> the plugin to keep track of where in the hierarchy the user currently is.
> >
> >Menus are created as necessary. See  cMenuSetup::ProcessKey().
> 
> I *finally* got it all working. I scrapped my old code and started again
> with a bare implementation picked from menu.c. After some heavy
> comparisons between the old code and the new thing that works, I noticed
> that one thing that did not work at all was giving cOsdItem:s custom
> colors. My menu is basially a directory representation, with "files" and
> "directories". I show the "files" together with the "directories", but
> wanted to use another color for them, so I had code like this:
> 
> class MenuItem : public cOsdItem {...}
> 
> MenuItem::MenuItem () {
>     if ( item_is_directory )
>         SetColor ( clrCyan, clrBackground );
>     else
>         SetColor ( clrWhite, clrBackground );
> 
>     SetText ( item_text );
> }
> 
> That however never really worked out, the first menu item was always
> missing (blank) and the selection bar never was shown. All example of
> SetColor() in the VDR sources seem to do the same, as does the MP3 plugin,
> so I'm a bit confused. But I can live without colors, just have to postfix
> each "dir" with a "/" and the "files" with something else to make it
> visible to the user what is what.

The central area of the OSD has only 2bpp, resulting in a maximum of 4 colors.
Maybe you tried to use more than 4 colors...

Klaus
--  
_______________________________________________________________

Klaus Schmidinger                       Phone: +49-8635-6989-10
CadSoft Computer GmbH                   Fax:   +49-8635-6989-40
Hofmark 2                               Email:   kls@cadsoft.de
D-84568 Pleiskirchen, Germany           URL:     www.cadsoft.de
_______________________________________________________________


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe vdr" as subject.



Home | Main Index | Thread Index