On Sonntag 31 Juli 2005 16:56, Klaus Schmidinger wrote: > Stefan Lucke wrote: > > Isn't it more suitable to make Skins.Message() usable for plugins ? > > Klaus ? > > A plugin may well call Skins.Message(), but only from the _main_ > thread. > > I'm thinking about a function like > > cOsdObject *cPlugin::Popup(void); > > which would be called in every turn of the main loop (i.e. from the > foreground thread) whenever there is no OSD display open. A plugin > could either return a cOsdObject that will be presented to the user, > or could directly display a message (even with user interaction, if > necessary) and retrun NULL. Of course, if a plugin's thread wants to > issue a message, it will have to store the message inside the plugin > and wait until asked through a call to its Popup() function. > > Would that be a useful solution? Sounds good to me. How long would the cOsdObject be displayed? Could this be definable by a parameter like in cSkins::Message()? Does vdr have a way to notice if a background thread accesses the OSD? If so, and if this happens thru cSkins::Message() or cInterface::Confirm(), could vdr automatically handle this? Or just issue a warning like "You should use ::Popup()" -- Wolfgang