[vdr] cSkinSTTNGDisplayMenu::SetButtons overwrites the message set via SetMessage

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Sun Aug 7 18:20:27 CEST 2005


Luca Olivetti wrote:
> Klaus Schmidinger wrote:
> 
>> Well, since it's me who writes the specs <g> I'll specify it so
>> that "a skin shall not call SetButtons() while a message is being 
>> displayed".
>> That's because while there is a message on the screen, the user shall
>> not be distracted by anything else wobbling around on the screen.
> 
> 
> So this will "fix" st:tng and break every other skin :-(
> (since In every other skin the message area and the buttons area are 
> separate and independent).

This won't "break" anything! All skins will work just as they did
before. It may only "break" some plugins that use a cSkinDisplayMenu
and call SetButtons() while a message is displayed.

Besides, it says in skins.h:

   virtual void SetMessage(eMessageType Type, const char *Text) = 0;
        ///< Sets a one line message Text, with the given Type. Type can be used
        ///< to determine, e.g., the colors for displaying the Text.
        ///< If Text is NULL, any previously displayed message must be removed, and
        ///< any previous contents overwritten by the message must be restored.

The last sentence should have indicated that the skin is free to display
the message wherever it wants, maybe even within a framed box in the middle
of the screen. Maybe I should have added (and I guess I actually will) that
while a message is being displayed, no other changes to the menu should be
made.

Klaus



More information about the vdr mailing list