/* In skins interface, append some items */
if( !mi )
{
- objects.clear(); varnames.clear();
vlc_object_t *p_object = ( vlc_object_t* )
vlc_object_find_name( p_intf, "skins2", FIND_PARENT );
if( p_object )
{
+ objects.clear(); varnames.clear();
objects.push_back( p_object );
varnames.push_back( "intf-skins" );
Populate( p_intf, submenu, varnames, objects );
+
+ objects.clear(); varnames.clear();
+ objects.push_back( p_object );
+ varnames.push_back( "intf-skins-interactive" );
+ Populate( p_intf, submenu, varnames, objects );
+
vlc_object_release( p_object );
}
else
#endif
-const char *ThemeRepository::kOpenDialog = "{openSkin}";
-
ThemeRepository *ThemeRepository::instance( intf_thread_t *pIntf )
{
parseDirectory( *it );
}
- // Add an entry for the "open skin" dialog
- val.psz_string = (char*)kOpenDialog;
- text.psz_string = _("Open skin...");
- var_Change( getIntf(), "intf-skins", VLC_VAR_ADDCHOICE, &val,
- &text );
-
// Set the callback
var_AddCallback( pIntf, "intf-skins", changeSkin, this );
+
+
+ // variable for opening a dialog box to change skins
+ var_Create( pIntf, "intf-skins-interactive", VLC_VAR_VOID |
+ VLC_VAR_ISCOMMAND );
+ text.psz_string = _("Open skin ...");
+ var_Change( pIntf, "intf-skins-interactive", VLC_VAR_SETTEXT, &text, NULL );
+
+ // Set the callback
+ var_AddCallback( pIntf, "intf-skins-interactive", changeSkin, this );
+
}
-int ThemeRepository::changeSkin( vlc_object_t *pIntf, char const *pCmd,
+int ThemeRepository::changeSkin( vlc_object_t *pIntf, char const *pVariable,
vlc_value_t oldval, vlc_value_t newval,
void *pData )
{
ThemeRepository *pThis = (ThemeRepository*)(pData);
- // Special menu entry for the open skin dialog
- if( !strcmp( newval.psz_string, kOpenDialog ) )
+ if( !strcmp( pVariable, "intf-skins-interactive" ) )
{
CmdDlgChangeSkin cmd( pThis->getIntf() );
cmd.execute();
}
- else
+ else if( !strcmp( pVariable, "intf-skins" ) )
{
// Try to load the new skin
CmdChangeSkin *pCmd = new CmdChangeSkin( pThis->getIntf(),
virtual ~ThemeRepository();
private:
- /// Identifier for the special menu entry
- static const char *kOpenDialog;
- /// Look for themes in a directory
+ /// Look for themes in a directory
void parseDirectory( const string &rDir );
/// Callback for menu item selection
- static int changeSkin( vlc_object_t *pThis, char const *pCmd,
+ static int changeSkin( vlc_object_t *pThis, char const *pVariable,
vlc_value_t oldval, vlc_value_t newval,
void *pData );
};