* $Id$
*
* Authors: Cyril Deguet <asmax@via.ecp.fr>
- * Olivier Teulière <ipkiss@via.ecp.fr>
+ * Olivier Teulière <ipkiss@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "dialogs.hpp"
#include "../commands/cmd_quit.hpp"
#include "../commands/cmd_playlist.hpp"
#include "../commands/cmd_playtree.hpp"
-
+#include <vlc_playlist.h>
/// Callback called when a new skin is chosen
void Dialogs::showChangeSkinCB( intf_dialog_args_t *pArg )
{
// Create a change skin command
CmdChangeSkin *pCmd =
- new CmdChangeSkin( pIntf, pArg->psz_results[0] );
+ new CmdChangeSkin( pIntf, sFromLocale( pArg->psz_results[0] ) );
// Push the command in the asynchronous command queue
AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
}
}
-
void Dialogs::showPlaylistLoadCB( intf_dialog_args_t *pArg )
{
intf_thread_t *pIntf = (intf_thread_t *)pArg->p_arg;
{
// Create a Playlist Load command
CmdPlaylistLoad *pCmd =
- new CmdPlaylistLoad( pIntf, pArg->psz_results[0] );
+ new CmdPlaylistLoad( pIntf, sFromLocale( pArg->psz_results[0] ) );
// Push the command in the asynchronous command queue
AsyncQueue *pQueue = AsyncQueue::instance( pIntf );
vlc_value_t old_val, vlc_value_t new_val, void *param )
{
Dialogs *p_dialogs = (Dialogs *)param;
- p_dialogs->showPopupMenu( new_val.b_bool != 0 );
+ p_dialogs->showPopupMenu( new_val.b_bool != 0, INTF_DIALOG_POPUPMENU );
return VLC_SUCCESS;
}
// Detach the dialogs provider from its parent interface
vlc_object_detach( m_pProvider );
- module_Unneed( m_pProvider, m_pModule );
- vlc_object_destroy( m_pProvider );
+ module_unneed( m_pProvider, m_pModule );
+ vlc_object_release( m_pProvider );
}
/* Unregister callbacks */
{
// Allocate descriptor
m_pProvider = (intf_thread_t *)vlc_object_create( getIntf(),
- VLC_OBJECT_DIALOGS );
+ sizeof( intf_thread_t ) );
if( m_pProvider == NULL )
- {
- msg_Err( getIntf(), "out of memory" );
return false;
- }
- m_pModule = module_Need( m_pProvider, "dialogs provider", NULL, 0 );
+ m_pModule = module_need( m_pProvider, "dialogs provider", NULL, false );
if( m_pModule == NULL )
{
- msg_Err( getIntf(), "No suitable dialogs provider found (hint: compile the wxWidgets plugin, and make sure it is loaded properly)" );
- vlc_object_destroy( m_pProvider );
+ msg_Err( getIntf(), "no suitable dialogs provider found (hint: compile the qt4 plugin, and make sure it is loaded properly)" );
+ vlc_object_release( m_pProvider );
m_pProvider = NULL;
return false;
}
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- intf_dialog_args_t *p_arg =
- (intf_dialog_args_t *)malloc( sizeof(intf_dialog_args_t) );
- memset( p_arg, 0, sizeof(intf_dialog_args_t) );
+ intf_dialog_args_t *p_arg = (intf_dialog_args_t*)
+ calloc( 1, sizeof( intf_dialog_args_t ) );
p_arg->psz_title = strdup( rTitle.c_str() );
p_arg->psz_extensions = strdup( rExtensions.c_str() );
void Dialogs::showChangeSkin()
{
showFileGeneric( _("Open a skin file"),
- _("Skin files (*.vlt;*.wsz)|*.vlt;*.wsz|Skin files (*.xml)|*.xml"),
+ _("Skin files |*.vlt;*.wsz;*.xml"),
showChangeSkinCB, kOPEN );
}
void Dialogs::showPlaylistLoad()
{
showFileGeneric( _("Open playlist"),
- _("All playlists|*.pls;*.m3u;*.asx;*.b4s|M3U files|*.m3u"),
+ _("Playlist Files|"EXTENSIONS_PLAYLIST"|"
+ "All Files|*"),
showPlaylistLoadCB, kOPEN );
}
void Dialogs::showPlaylistSave()
{
- showFileGeneric( _("Save playlist"), _("M3U file|*.m3u"),
+ showFileGeneric( _("Save playlist"), _("XSPF playlist|*.xspf|"
+ "M3U file|*.m3u|"
+ "HTML playlist|*.html"),
showPlaylistSaveCB, kSAVE );
}
+void Dialogs::showPlaylist()
+{
+ if( m_pProvider && m_pProvider->pf_show_dialog )
+ {
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_PLAYLIST,
+ 0, NULL );
+ }
+}
void Dialogs::showFileSimple( bool play )
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_FILE_SIMPLE,
- (int)play, 0 );
+ (int)play, NULL );
}
}
if( m_pProvider && m_pProvider->pf_show_dialog )
{
m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_FILE,
- (int)play, 0 );
+ (int)play, NULL );
}
}
if( m_pProvider && m_pProvider->pf_show_dialog )
{
m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_DIRECTORY,
- (int)play, 0 );
+ (int)play, NULL );
}
}
if( m_pProvider && m_pProvider->pf_show_dialog )
{
m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_DISC,
- (int)play, 0 );
+ (int)play, NULL );
}
}
if( m_pProvider && m_pProvider->pf_show_dialog )
{
m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_NET,
- (int)play, 0 );
+ (int)play, NULL );
}
}
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_MESSAGES, 0, 0 );
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_MESSAGES, 0, NULL );
}
}
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_PREFS, 0, 0 );
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_PREFS, 0, NULL );
}
}
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_FILEINFO, 0, 0 );
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_FILEINFO, 0, NULL );
}
}
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_WIZARD, 0, 0 );
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_WIZARD, 0, NULL );
}
}
-void Dialogs::showPopupMenu( bool bShow )
+void Dialogs::showPopupMenu( bool bShow, int popupType = INTF_DIALOG_POPUPMENU )
{
if( m_pProvider && m_pProvider->pf_show_dialog )
{
- m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_POPUPMENU,
- (int)bShow, 0 );
+ m_pProvider->pf_show_dialog( m_pProvider, popupType,
+ (int)bShow, NULL );
}
}
+void Dialogs::showInteraction( interaction_dialog_t *p_dialog )
+{
+ intf_dialog_args_t *p_arg = (intf_dialog_args_t *)
+ calloc( 1, sizeof(intf_dialog_args_t) );
+
+ p_arg->p_dialog = p_dialog;
+ p_arg->p_intf = getIntf();
+
+ if( m_pProvider && m_pProvider->pf_show_dialog )
+ {
+ m_pProvider->pf_show_dialog( m_pProvider, INTF_DIALOG_INTERACTION,
+ 0, p_arg );
+ }
+}