From 681264553565add5192868a451fa892e87f3d39c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Cl=C3=A9ment=20Stenac?= Date: Fri, 12 Aug 2005 21:49:28 +0000 Subject: [PATCH] Remove gtk, gtk2, qt and kde plugins If you want them, take them back from the svn attic, fix them and reintroduce them. I didn't remove the configure.ac snippets, they are still in but commented --- configure.ac | 4 - modules/gui/gtk/Modules.am | 46 - modules/gui/gtk/common.h | 109 - modules/gui/gtk/control.c | 157 - modules/gui/gtk/control.h | 31 - modules/gui/gtk/display.c | 290 -- modules/gui/gtk/display.h | 35 - modules/gui/gtk/gnome.c | 541 ---- modules/gui/gtk/gnome.glade | 4305 -------------------------- modules/gui/gtk/gnome_callbacks.c | 11 - modules/gui/gtk/gnome_callbacks.h | 8 - modules/gui/gtk/gnome_interface.c | 3052 ------------------- modules/gui/gtk/gnome_interface.h | 14 - modules/gui/gtk/gnome_support.c | 148 - modules/gui/gtk/gnome_support.h | 34 - modules/gui/gtk/gtk.c | 562 ---- modules/gui/gtk/gtk.glade | 4395 --------------------------- modules/gui/gtk/gtk_callbacks.c | 598 ---- modules/gui/gtk/gtk_callbacks.h | 206 -- modules/gui/gtk/gtk_interface.c | 3312 -------------------- modules/gui/gtk/gtk_interface.h | 13 - modules/gui/gtk/gtk_support.c | 162 - modules/gui/gtk/gtk_support.h | 61 - modules/gui/gtk/menu.c | 1545 ---------- modules/gui/gtk/menu.h | 39 - modules/gui/gtk/modules.c | 72 - modules/gui/gtk/modules.h | 27 - modules/gui/gtk/open.c | 731 ----- modules/gui/gtk/open.h | 41 - modules/gui/gtk/playlist.c | 752 ----- modules/gui/gtk/playlist.h | 52 - modules/gui/gtk/preferences.c | 1085 ------- modules/gui/gtk/preferences.h | 25 - modules/gui/gtk/sout.c | 211 -- modules/gui/gtk2/Modules.am | 27 - modules/gui/gtk2/gnome2.c | 200 -- modules/gui/gtk2/gnome2.glade | 315 -- modules/gui/gtk2/gnome2.gladep | 16 - modules/gui/gtk2/gnome2_callbacks.c | 106 - modules/gui/gtk2/gnome2_callbacks.h | 50 - modules/gui/gtk2/gnome2_interface.c | 28 - modules/gui/gtk2/gnome2_interface.h | 4 - modules/gui/gtk2/gnome2_support.c | 144 - modules/gui/gtk2/gnome2_support.h | 67 - modules/gui/gtk2/gtk2.c | 199 -- modules/gui/gtk2/gtk2.glade | 263 -- modules/gui/gtk2/gtk2.gladep | 17 - modules/gui/gtk2/gtk2_callbacks.c | 90 - modules/gui/gtk2/gtk2_callbacks.h | 42 - modules/gui/gtk2/gtk2_interface.c | 263 -- modules/gui/gtk2/gtk2_interface.h | 5 - modules/gui/gtk2/gtk2_support.c | 144 - modules/gui/gtk2/gtk2_support.h | 67 - modules/gui/kde/Modules.am | 70 - modules/gui/kde/QConfigItem.cpp | 106 - modules/gui/kde/QConfigItem.h | 60 - modules/gui/kde/common.h | 20 - modules/gui/kde/disc.cpp | 80 - modules/gui/kde/disc.h | 48 - modules/gui/kde/info.cpp | 71 - modules/gui/kde/info.h | 34 - modules/gui/kde/interface.cpp | 674 ---- modules/gui/kde/interface.h | 168 - modules/gui/kde/kde.cpp | 134 - modules/gui/kde/languagemenu.cpp | 42 - modules/gui/kde/languagemenu.h | 39 - modules/gui/kde/menu.cpp | 84 - modules/gui/kde/menu.h | 44 - modules/gui/kde/messages.cpp | 100 - modules/gui/kde/messages.h | 42 - modules/gui/kde/net.cpp | 77 - modules/gui/kde/net.h | 46 - modules/gui/kde/pluginsbox.cpp | 79 - modules/gui/kde/pluginsbox.h | 54 - modules/gui/kde/preferences.cpp | 409 --- modules/gui/kde/preferences.h | 46 - modules/gui/kde/slider.cpp | 52 - modules/gui/kde/slider.h | 45 - modules/gui/kde/ui.rc | 55 - modules/gui/qt/Modules.am | 13 - modules/gui/qt/intf.cpp | 508 ---- modules/gui/qt/intf.h | 113 - modules/gui/qt/qt.cpp | 54 - 83 files changed, 28088 deletions(-) delete mode 100644 modules/gui/gtk/Modules.am delete mode 100644 modules/gui/gtk/common.h delete mode 100644 modules/gui/gtk/control.c delete mode 100644 modules/gui/gtk/control.h delete mode 100644 modules/gui/gtk/display.c delete mode 100644 modules/gui/gtk/display.h delete mode 100644 modules/gui/gtk/gnome.c delete mode 100644 modules/gui/gtk/gnome.glade delete mode 100644 modules/gui/gtk/gnome_callbacks.c delete mode 100644 modules/gui/gtk/gnome_callbacks.h delete mode 100644 modules/gui/gtk/gnome_interface.c delete mode 100644 modules/gui/gtk/gnome_interface.h delete mode 100644 modules/gui/gtk/gnome_support.c delete mode 100644 modules/gui/gtk/gnome_support.h delete mode 100644 modules/gui/gtk/gtk.c delete mode 100644 modules/gui/gtk/gtk.glade delete mode 100644 modules/gui/gtk/gtk_callbacks.c delete mode 100644 modules/gui/gtk/gtk_callbacks.h delete mode 100644 modules/gui/gtk/gtk_interface.c delete mode 100644 modules/gui/gtk/gtk_interface.h delete mode 100644 modules/gui/gtk/gtk_support.c delete mode 100644 modules/gui/gtk/gtk_support.h delete mode 100644 modules/gui/gtk/menu.c delete mode 100644 modules/gui/gtk/menu.h delete mode 100644 modules/gui/gtk/modules.c delete mode 100644 modules/gui/gtk/modules.h delete mode 100644 modules/gui/gtk/open.c delete mode 100644 modules/gui/gtk/open.h delete mode 100644 modules/gui/gtk/playlist.c delete mode 100644 modules/gui/gtk/playlist.h delete mode 100644 modules/gui/gtk/preferences.c delete mode 100644 modules/gui/gtk/preferences.h delete mode 100644 modules/gui/gtk/sout.c delete mode 100644 modules/gui/gtk2/Modules.am delete mode 100644 modules/gui/gtk2/gnome2.c delete mode 100644 modules/gui/gtk2/gnome2.glade delete mode 100644 modules/gui/gtk2/gnome2.gladep delete mode 100644 modules/gui/gtk2/gnome2_callbacks.c delete mode 100644 modules/gui/gtk2/gnome2_callbacks.h delete mode 100644 modules/gui/gtk2/gnome2_interface.c delete mode 100644 modules/gui/gtk2/gnome2_interface.h delete mode 100644 modules/gui/gtk2/gnome2_support.c delete mode 100644 modules/gui/gtk2/gnome2_support.h delete mode 100644 modules/gui/gtk2/gtk2.c delete mode 100644 modules/gui/gtk2/gtk2.glade delete mode 100644 modules/gui/gtk2/gtk2.gladep delete mode 100644 modules/gui/gtk2/gtk2_callbacks.c delete mode 100644 modules/gui/gtk2/gtk2_callbacks.h delete mode 100644 modules/gui/gtk2/gtk2_interface.c delete mode 100644 modules/gui/gtk2/gtk2_interface.h delete mode 100644 modules/gui/gtk2/gtk2_support.c delete mode 100644 modules/gui/gtk2/gtk2_support.h delete mode 100644 modules/gui/kde/Modules.am delete mode 100644 modules/gui/kde/QConfigItem.cpp delete mode 100644 modules/gui/kde/QConfigItem.h delete mode 100644 modules/gui/kde/common.h delete mode 100644 modules/gui/kde/disc.cpp delete mode 100644 modules/gui/kde/disc.h delete mode 100644 modules/gui/kde/info.cpp delete mode 100644 modules/gui/kde/info.h delete mode 100644 modules/gui/kde/interface.cpp delete mode 100644 modules/gui/kde/interface.h delete mode 100644 modules/gui/kde/kde.cpp delete mode 100644 modules/gui/kde/languagemenu.cpp delete mode 100644 modules/gui/kde/languagemenu.h delete mode 100644 modules/gui/kde/menu.cpp delete mode 100644 modules/gui/kde/menu.h delete mode 100644 modules/gui/kde/messages.cpp delete mode 100644 modules/gui/kde/messages.h delete mode 100644 modules/gui/kde/net.cpp delete mode 100644 modules/gui/kde/net.h delete mode 100644 modules/gui/kde/pluginsbox.cpp delete mode 100644 modules/gui/kde/pluginsbox.h delete mode 100644 modules/gui/kde/preferences.cpp delete mode 100644 modules/gui/kde/preferences.h delete mode 100644 modules/gui/kde/slider.cpp delete mode 100644 modules/gui/kde/slider.h delete mode 100644 modules/gui/kde/ui.rc delete mode 100644 modules/gui/qt/Modules.am delete mode 100644 modules/gui/qt/intf.cpp delete mode 100644 modules/gui/qt/intf.h delete mode 100644 modules/gui/qt/qt.cpp diff --git a/configure.ac b/configure.ac index e0c3b3c274..b285b2cf8e 100644 --- a/configure.ac +++ b/configure.ac @@ -4568,12 +4568,8 @@ AC_CONFIG_FILES([ modules/gui/Makefile modules/gui/beos/Makefile modules/gui/pda/Makefile - modules/gui/gtk/Makefile - modules/gui/gtk2/Makefile - modules/gui/kde/Makefile modules/gui/macosx/Makefile modules/gui/qnx/Makefile - modules/gui/qt/Makefile modules/gui/skins2/Makefile modules/gui/wxwidgets/Makefile modules/gui/wince/Makefile diff --git a/modules/gui/gtk/Modules.am b/modules/gui/gtk/Modules.am deleted file mode 100644 index e7cefbe800..0000000000 --- a/modules/gui/gtk/Modules.am +++ /dev/null @@ -1,46 +0,0 @@ -COMMON_gtk = \ - display.c \ - open.c \ - sout.c \ - control.c \ - menu.c \ - playlist.c \ - modules.c \ - preferences.c \ - gtk_callbacks.c \ - $(NULL) - -SOURCES_gtk = \ - gtk.c \ - gtk_interface.c \ - gtk_support.c \ - $(COMMON_gtk) - -SOURCES_gnome = \ - gnome.c \ - gnome_interface.c \ - gnome_support.c \ - $(COMMON_gtk) - -noinst_HEADERS += \ - common.h \ - control.h \ - gnome_callbacks.h \ - gnome_interface.h \ - gnome_support.h \ - gtk_callbacks.h \ - display.h \ - menu.h \ - modules.h \ - open.h \ - gtk_interface.h \ - playlist.h \ - preferences.h \ - gtk_support.h \ - $(NULL) - -EXTRA_DIST += \ - gtk.glade \ - gnome.glade \ - gnome_callbacks.c \ - $(NULL) diff --git a/modules/gui/gtk/common.h b/modules/gui/gtk/common.h deleted file mode 100644 index f12530113d..0000000000 --- a/modules/gui/gtk/common.h +++ /dev/null @@ -1,109 +0,0 @@ -/***************************************************************************** - * gtk_common.h: private Gtk+ interface description - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Drag'n'drop stuff - *****************************************************************************/ -#define DROP_ACCEPT_TEXT_URI_LIST 0 -#define DROP_ACCEPT_TEXT_PLAIN 1 -#define DROP_ACCEPT_STRING 2 - -#define DROP_ACCEPT_END 3 - -/***************************************************************************** - * intf_sys_t: description and status of Gtk+ interface - *****************************************************************************/ -struct intf_sys_t -{ - /* the gtk_main module */ - module_t * p_gtk_main; - - /* special actions */ - vlc_bool_t b_playing; - vlc_bool_t b_popup_changed; /* display menu ? */ - vlc_bool_t b_window_changed; /* window display toggled ? */ - vlc_bool_t b_playlist_changed; /* playlist display toggled ? */ - vlc_bool_t b_slider_free; /* slider status */ - vlc_bool_t b_deinterlace_update; - - /* menus handlers */ - vlc_bool_t b_aout_update; - vlc_bool_t b_vout_update; - - vlc_bool_t b_program_update; /* do we need to update programs - menu */ - vlc_bool_t b_title_update; /* do we need to update title menus */ - vlc_bool_t b_chapter_update; /* do we need to update - chapter menus */ - vlc_bool_t b_audio_update; /* do we need to update audio menus */ - vlc_bool_t b_spu_update; /* do we need to update spu menus */ - - /* windows and widgets */ - GtkWidget * p_window; /* main window */ - GtkWidget * p_popup; /* popup menu */ - GtkWidget * p_playwin; /* playlist */ - GtkWidget * p_modules; /* module manager */ - GtkWidget * p_about; /* about window */ - GtkWidget * p_open; /* multiopen window */ - GtkWidget * p_jump; /* jump window */ - GtkWidget * p_sout; /* stream output */ - - GtkTooltips * p_tooltips; /* tooltips */ - - /* The input thread */ - input_thread_t * p_input; - - /* The slider */ - GtkFrame * p_slider_frame; - GtkAdjustment * p_adj; /* slider adjustment object */ - float f_adj_oldvalue; /* previous value */ - - /* The messages window */ - GtkWidget * p_messages; /* messages window */ - GtkText * p_messages_text; /* messages frame */ - msg_subscription_t* p_sub; /* message bank subscription */ - - /* Playlist management */ - int i_playing; /* playlist selected item */ - - /* The window labels for DVD mode */ - GtkLabel * p_label_title; - GtkLabel * p_label_chapter; - guint i_part; /* current chapter */ - - /* audio part */ - vlc_bool_t b_mute; -}; - -/***************************************************************************** - * Prototypes - *****************************************************************************/ -gint E_(GtkModeManage) ( intf_thread_t * p_intf ); -void E_(GtkDisplayDate) ( GtkAdjustment *p_adj ); - -/***************************************************************************** - * Useful macro - ****************************************************************************/ -#define GtkGetIntf( widget ) E_(__GtkGetIntf)( GTK_WIDGET( widget ) ) -void * E_(__GtkGetIntf)( GtkWidget * ); - diff --git a/modules/gui/gtk/control.c b/modules/gui/gtk/control.c deleted file mode 100644 index dec4f52dbe..0000000000 --- a/modules/gui/gtk/control.c +++ /dev/null @@ -1,157 +0,0 @@ -/***************************************************************************** - * control.c : functions to handle stream control buttons. - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -/**************************************************************************** - * Control functions: this is where the functions are defined - **************************************************************************** - * These functions are button-items callbacks, and are used - * by other callbacks - ****************************************************************************/ -gboolean GtkControlBack( GtkWidget *widget, - gpointer user_data ) -{ - return FALSE; -} - - -gboolean GtkControlStop( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - playlist_Stop( p_playlist ); - vlc_object_release( p_playlist ); - - return TRUE; -} - - -gboolean GtkControlPlay( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - GtkFileOpenShow( widget, user_data ); - return TRUE; - } - - /* If the playlist is empty, open a file requester instead */ - vlc_mutex_lock( &p_playlist->object_lock ); - if( p_playlist->i_size ) - { - vlc_mutex_unlock( &p_playlist->object_lock ); - playlist_Play( p_playlist ); - vlc_object_release( p_playlist ); - } - else - { - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - GtkFileOpenShow( widget, user_data ); - } - - return TRUE; -} - - -gboolean GtkControlPause( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - - if( p_intf->p_sys->p_input == NULL ) - { - return FALSE; - } - - var_SetInteger( p_intf->p_sys->p_input, "state", PAUSE_S ); - - return TRUE; -} - - -gboolean GtkControlSlow( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - - if( p_intf->p_sys->p_input == NULL ) - { - return FALSE; - } - - var_SetVoid( p_intf->p_sys->p_input, "rate-slower" ); - - return TRUE; -} - - -gboolean GtkControlFast( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - - if( p_intf->p_sys->p_input == NULL ) - { - return FALSE; - } - - var_SetVoid( p_intf->p_sys->p_input, "rate-faster" ); - - return TRUE; -} - diff --git a/modules/gui/gtk/control.h b/modules/gui/gtk/control.h deleted file mode 100644 index 75bc763705..0000000000 --- a/modules/gui/gtk/control.h +++ /dev/null @@ -1,31 +0,0 @@ -/***************************************************************************** - * gtk_control.h: prototypes for control functions - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -gboolean GtkControlBack ( GtkWidget *, gpointer ); -gboolean GtkControlStop ( GtkWidget *, gpointer ); -gboolean GtkControlPlay ( GtkWidget *, gpointer ); -gboolean GtkControlPause( GtkWidget *, gpointer ); -gboolean GtkControlSlow ( GtkWidget *, gpointer ); -gboolean GtkControlFast ( GtkWidget *, gpointer ); - diff --git a/modules/gui/gtk/display.c b/modules/gui/gtk/display.c deleted file mode 100644 index f40574ac31..0000000000 --- a/modules/gui/gtk/display.c +++ /dev/null @@ -1,290 +0,0 @@ -/***************************************************************************** - * display.c: Gtk+ tools for main interface - ***************************************************************************** - * Copyright (C) 1999, 2000, 2003 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* ENOMEM */ -#include /* free() */ -#include /* strerror() */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "menu.h" -#include "display.h" -#include "common.h" - -/***************************************************************************** - * GtkDisplayDate: display stream date - ***************************************************************************** - * This function displays the current date related to the position in - * the stream. It is called whenever the slider changes its value. - * The lock has to be taken before you call the function. - *****************************************************************************/ -void E_(GtkDisplayDate)( GtkAdjustment *p_adj ) -{ - intf_thread_t *p_intf; - - p_intf = gtk_object_get_data( GTK_OBJECT( p_adj ), "p_intf" ); - - if( p_intf->p_sys->p_input ) - { - char psz_time[ MSTRTIME_MAX_SIZE ]; - int64_t i_seconds; - - i_seconds = var_GetTime( p_intf->p_sys->p_input, "time" ) / I64C(1000000 ); - secstotimestr( psz_time, i_seconds ); - - gtk_frame_set_label( GTK_FRAME( p_intf->p_sys->p_slider_frame ), - psz_time ); - } -} - - -/***************************************************************************** - * GtkModeManage: actualize the aspect of the interface whenever the input - * changes. - ***************************************************************************** - * The lock has to be taken before you call the function. - *****************************************************************************/ -gint E_(GtkModeManage)( intf_thread_t * p_intf ) -{ - GtkWidget * p_dvd_box; - GtkWidget * p_file_box; - GtkWidget * p_network_box; - GtkWidget * p_slider; - GtkWidget * p_label; - vlc_bool_t b_control; - -#define GETWIDGET( ptr, name ) GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( \ - p_intf->p_sys->ptr ) , ( name ) ) ) - /* hide all boxes except default file box */ - p_file_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "file_box" ) ); - gtk_widget_hide( GTK_WIDGET( p_file_box ) ); - - p_network_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "network_box" ) ); - gtk_widget_hide( GTK_WIDGET( p_network_box ) ); - - p_dvd_box = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "dvd_box" ) ); - gtk_widget_hide( GTK_WIDGET( p_dvd_box ) ); - - /* hide slider */ - p_slider = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "slider_frame" ) ); - gtk_widget_hide( GTK_WIDGET( p_slider ) ); - - /* controls unavailable */ - b_control = 0; - - /* show the box related to current input mode */ - if( p_intf->p_sys->p_input ) - { - switch( p_intf->p_sys->p_input->stream.i_method & 0xf0 ) - { - case INPUT_METHOD_FILE: - gtk_widget_show( GTK_WIDGET( p_file_box ) ); - p_label = gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), - "label_status" ); - gtk_label_set_text( GTK_LABEL( p_label ), - p_intf->p_sys->p_input->psz_source ); - break; - case INPUT_METHOD_DISC: - gtk_widget_show( GTK_WIDGET( p_dvd_box ) ); - break; - case INPUT_METHOD_NETWORK: - gtk_widget_show( GTK_WIDGET( p_network_box ) ); - p_label = gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), - "network_address_label" ); - gtk_label_set_text( GTK_LABEL( p_label ), - p_intf->p_sys->p_input->psz_source ); - break; - default: - msg_Warn( p_intf, "cannot determine input method" ); - gtk_widget_show( GTK_WIDGET( p_file_box ) ); - p_label = gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), - "label_status" ); - gtk_label_set_text( GTK_LABEL( p_label ), - p_intf->p_sys->p_input->psz_source ); - break; - } - - /* initialize and show slider for seekable streams */ - if( p_intf->p_sys->p_input->stream.b_seekable ) - { - p_intf->p_sys->p_adj->value = p_intf->p_sys->f_adj_oldvalue = 0; - gtk_signal_emit_by_name( GTK_OBJECT( p_intf->p_sys->p_adj ), - "value_changed" ); - gtk_widget_show( GTK_WIDGET( p_slider ) ); - } - - /* control buttons for free pace streams */ - b_control = p_intf->p_sys->p_input->stream.b_pace_control; - - /* get ready for menu regeneration */ - p_intf->p_sys->b_program_update = 1; - p_intf->p_sys->b_title_update = 1; - p_intf->p_sys->b_chapter_update = 1; - p_intf->p_sys->b_audio_update = 1; - p_intf->p_sys->b_spu_update = 1; - p_intf->p_sys->i_part = 0; -#if 0 - p_intf->p_sys->b_aout_update = 1; - p_intf->p_sys->b_vout_update = 1; -#endif - p_intf->p_sys->p_input->stream.b_changed = 0; - msg_Dbg( p_intf, "stream has changed, refreshing interface" ); - } - else - { - /* default mode */ - p_label = gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_window ), "label_status" ); - gtk_label_set_text( GTK_LABEL( p_label ), "" ); - gtk_widget_show( GTK_WIDGET( p_file_box ) ); - - /* unsensitize menus */ - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_program"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_title"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_chapter"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_audio"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window,"menubar_subpictures"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_navigation"), - FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_language"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup,"popup_subpictures"), - FALSE ); - } - - /* set control items */ - gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_back"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_eject"), !b_control); - gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_pause"), b_control ); - gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_slow"), b_control ); - gtk_widget_set_sensitive( GETWIDGET(p_window, "toolbar_fast"), b_control ); - gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_back"), FALSE ); - gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_pause"), b_control ); - gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_slow"), b_control ); - gtk_widget_set_sensitive( GETWIDGET(p_popup, "popup_fast"), b_control ); - -#undef GETWIDGET - return TRUE; -} - -/***************************************************************************** - * GtkHideTooltips: show or hide the tooltips depending on the configuration - * option gnome-tooltips - *****************************************************************************/ -int E_(GtkHideTooltips)( vlc_object_t *p_this, const char *psz_name, - vlc_value_t oldval, vlc_value_t val, void *p_data ) -{ - intf_thread_t *p_intf; - int i_index; - vlc_list_t *p_list = vlc_list_find( p_this, VLC_OBJECT_INTF, - FIND_ANYWHERE ); - - vlc_bool_t b_enable = config_GetInt( p_this, "gnome-tooltips" ); - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_intf = (intf_thread_t *)p_list->p_values[i_index].p_object ; - - if( strcmp( MODULE_STRING, p_intf->p_module->psz_object_name ) ) - { - continue; - } - - if( b_enable ) - { - gtk_tooltips_enable( p_intf->p_sys->p_tooltips ); - } - else - { - gtk_tooltips_disable( p_intf->p_sys->p_tooltips ); - } - } - - vlc_list_release( p_list ); - return VLC_SUCCESS; -} - -#ifdef MODULE_NAME_IS_gnome -/***************************************************************************** - * GtkHideToolbartext: show or hide the tooltips depending on the - * configuration option gnome-toolbartext - ***************************************************************************** - * FIXME: GNOME only because of missing icons in gtk interface - *****************************************************************************/ -int GtkHideToolbarText( vlc_object_t *p_this, const char *psz_name, - vlc_value_t oldval, vlc_value_t val, void *p_data ) -{ - GtkToolbarStyle style; - GtkToolbar * p_toolbar; - intf_thread_t *p_intf; - int i_index; - vlc_list_t *p_list = vlc_list_find( p_this, VLC_OBJECT_INTF, - FIND_ANYWHERE ); - - style = config_GetInt( p_this, "gnome-toolbartext" ) - ? GTK_TOOLBAR_BOTH - : GTK_TOOLBAR_ICONS; - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_intf = (intf_thread_t *)p_list->p_values[i_index].p_object ; - - if( strcmp( MODULE_STRING, p_intf->p_module->psz_object_name ) ) - { - continue; - } - - p_toolbar = GTK_TOOLBAR(lookup_widget( p_intf->p_sys->p_window, - "toolbar" )); - gtk_toolbar_set_style( p_toolbar, style ); - } - - vlc_list_release( p_list ); - return VLC_SUCCESS; -} -#endif diff --git a/modules/gui/gtk/display.h b/modules/gui/gtk/display.h deleted file mode 100644 index 4040ec6498..0000000000 --- a/modules/gui/gtk/display.h +++ /dev/null @@ -1,35 +0,0 @@ -/***************************************************************************** - * display.h: Gtk+ tools for main interface. - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Prototypes - *****************************************************************************/ - -gint E_(GtkModeManage) ( intf_thread_t * p_intf ); -void E_(GtkDisplayDate) ( GtkAdjustment *p_adj ); -int E_(GtkHideTooltips) ( vlc_object_t *, const char *, - vlc_value_t, vlc_value_t, void * ); -int GtkHideToolbarText ( vlc_object_t *, const char *, - vlc_value_t, vlc_value_t, void * ); - diff --git a/modules/gui/gtk/gnome.c b/modules/gui/gtk/gnome.c deleted file mode 100644 index 93e410fb4e..0000000000 --- a/modules/gui/gtk/gnome.c +++ /dev/null @@ -1,541 +0,0 @@ -/***************************************************************************** - * gnome.c : Gnome plugin for vlc - ***************************************************************************** - * Copyright (C) 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* malloc(), free() */ -#include /* ENOMEM */ -#include /* strerror() */ -#include - -#include -#include - -#include - -#include "gnome_callbacks.h" -#include "gnome_interface.h" -#include "gnome_support.h" -#include "display.h" -#include "common.h" - -/***************************************************************************** - * Local prototypes. - *****************************************************************************/ -static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); - -static void Run ( intf_thread_t * ); -static void Manage ( intf_thread_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -#define TOOLTIPS_TEXT N_("Show tooltips") -#define TOOLTIPS_LONGTEXT N_("Show tooltips for configuration options.") - -#define TOOLBAR_TEXT N_("Show text on toolbar buttons") -#define TOOLBAR_LONGTEXT N_("Show the text below icons on the toolbar.") - -#define PREFS_MAXH_TEXT N_("Maximum height for the configuration windows") -#define PREFS_MAXH_LONGTEXT N_( \ - "You can set the maximum height that the configuration windows in the " \ - "preferences menu will occupy.") - -#define PATH_TEXT N_("Interface default search path") -#define PATH_LONGTEXT N_( \ - "This option allows you to set the default path that the interface will " \ - "open when looking for a file.") - -vlc_module_begin(); -#ifdef WIN32 - int i = 90; -#else - int i = getenv( "DISPLAY" ) == NULL ? 15 : 100; -#endif - set_description( _("GNOME interface") ); - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - - add_bool( "gnome-tooltips", 1, E_(GtkHideTooltips), - TOOLTIPS_TEXT, TOOLTIPS_LONGTEXT, VLC_FALSE ); - add_bool( "gnome-toolbartext", 1, GtkHideToolbarText, TOOLBAR_TEXT, - TOOLBAR_LONGTEXT, VLC_FALSE ); - add_integer( "gnome-prefs-maxh", 480, NULL, - PREFS_MAXH_TEXT, PREFS_MAXH_LONGTEXT, VLC_TRUE ); - add_directory( "gnome-search-path", NULL, NULL, PATH_TEXT, - PATH_LONGTEXT, VLC_TRUE ); - - set_capability( "interface", i ); - set_callbacks( Open, Close ); - set_program( "gnome-vlc" ); -vlc_module_end(); - -/***************************************************************************** - * Open: initialize and create window - *****************************************************************************/ -static int Open( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return VLC_ENOMEM; - } - - p_intf->p_sys->p_gtk_main = - module_Need( p_this, "gui-helper", "gnome", VLC_TRUE ); - if( p_intf->p_sys->p_gtk_main == NULL ) - { - free( p_intf->p_sys ); - return VLC_ENOMOD; - } - - p_intf->pf_run = Run; - - p_intf->p_sys->p_sub = msg_Subscribe( p_intf ); - - /* Initialize Gnome thread */ - p_intf->p_sys->b_playing = VLC_FALSE; - p_intf->p_sys->b_deinterlace_update = VLC_FALSE; - - p_intf->p_sys->b_aout_update = VLC_FALSE; - p_intf->p_sys->b_vout_update = VLC_FALSE; - - p_intf->p_sys->b_popup_changed = VLC_FALSE; - p_intf->p_sys->b_window_changed = VLC_FALSE; - p_intf->p_sys->b_playlist_changed = VLC_FALSE; - p_intf->p_sys->b_program_update = VLC_FALSE; - p_intf->p_sys->b_title_update = VLC_FALSE; - p_intf->p_sys->b_chapter_update = VLC_FALSE; - p_intf->p_sys->b_spu_update = VLC_FALSE; - p_intf->p_sys->b_audio_update = VLC_FALSE; - - p_intf->p_sys->p_input = NULL; - p_intf->p_sys->i_playing = -1; - p_intf->p_sys->b_slider_free = VLC_TRUE; - - p_intf->p_sys->i_part = 0; - p_intf->p_sys->b_mute = VLC_FALSE; - - return VLC_SUCCESS; -} - -/***************************************************************************** - * Close: destroy interface window - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - if( p_intf->p_sys->p_input ) - { - vlc_object_release( p_intf->p_sys->p_input ); - } - - msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub ); - - module_Unneed( p_intf, p_intf->p_sys->p_gtk_main ); - - /* Destroy structure */ - free( p_intf->p_sys ); -} - -/***************************************************************************** - * Run: Gnome thread - ***************************************************************************** - * this part of the interface is in a separate thread so that we can call - * gtk_main() from within it without annoying the rest of the program. - * XXX: the approach may look kludgy, and probably is, but I could not find - * a better way to dynamically load a Gnome interface at runtime. - *****************************************************************************/ -static void Run( intf_thread_t *p_intf ) -{ - /* The data types we are allowed to receive */ - static GtkTargetEntry target_table[] = - { - { "STRING", 0, DROP_ACCEPT_STRING }, - { "text/uri-list", 0, DROP_ACCEPT_TEXT_URI_LIST }, - { "text/plain", 0, DROP_ACCEPT_TEXT_PLAIN } - }; - char *psz_sout; - GString * p_target; - - gdk_threads_enter(); - - /* Create some useful widgets that will certainly be used */ - p_intf->p_sys->p_window = create_intf_window( ); - p_intf->p_sys->p_popup = create_intf_popup( ); - p_intf->p_sys->p_playwin = create_intf_playlist(); - p_intf->p_sys->p_messages = create_intf_messages(); - p_intf->p_sys->p_tooltips = gtk_tooltips_new(); - p_intf->p_sys->p_sout = create_intf_sout(); - - /* Set the title of the main window */ - gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window), - VOUT_TITLE " (Gnome interface)"); - - /* Accept file drops on the main window */ - gtk_drag_dest_set( GTK_WIDGET( p_intf->p_sys->p_window ), - GTK_DEST_DEFAULT_ALL, target_table, - DROP_ACCEPT_END, GDK_ACTION_COPY ); - /* Accept file drops on the playlist window */ - gtk_drag_dest_set( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist") ), - GTK_DEST_DEFAULT_ALL, target_table, - DROP_ACCEPT_END, GDK_ACTION_COPY ); - - /* Get the slider object */ - p_intf->p_sys->p_slider_frame = gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_window ), "slider_frame" ); - - /* Configure the log window */ - p_intf->p_sys->p_messages_text = GTK_TEXT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_messages ), "messages_textbox" ) ); - gtk_text_set_line_wrap( p_intf->p_sys->p_messages_text, TRUE); - gtk_text_set_word_wrap( p_intf->p_sys->p_messages_text, FALSE); - - /* Get the interface labels */ - #define P_LABEL( name ) GTK_LABEL( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->p_window ), name ) ) - p_intf->p_sys->p_label_title = P_LABEL( "title_label" ); - p_intf->p_sys->p_label_chapter = P_LABEL( "chapter_label" ); - #undef P_LABEL - - /* Connect the date display to the slider */ - #define P_SLIDER GTK_RANGE( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->p_window ), "slider" ) ) - p_intf->p_sys->p_adj = gtk_range_get_adjustment( P_SLIDER ); - - gtk_signal_connect ( GTK_OBJECT( p_intf->p_sys->p_adj ), "value_changed", - GTK_SIGNAL_FUNC( E_(GtkDisplayDate) ), NULL ); - p_intf->p_sys->f_adj_oldvalue = 0; - #undef P_SLIDER - - /* We don't create these ones yet because we perhaps won't need them */ - p_intf->p_sys->p_about = NULL; - p_intf->p_sys->p_modules = NULL; - p_intf->p_sys->p_open = NULL; - p_intf->p_sys->p_jump = NULL; - - /* Hide tooltips if the option is set */ - if( !config_GetInt( p_intf, "gnome-tooltips" ) ) - { - gtk_tooltips_disable( p_intf->p_sys->p_tooltips ); - } - - /* Hide toolbar text of the option is set */ - if( !config_GetInt( p_intf, "gnome-toolbartext" ) ) - { - gtk_toolbar_set_style( - GTK_TOOLBAR(lookup_widget( p_intf->p_sys->p_window, "toolbar" )), - GTK_TOOLBAR_ICONS ); - } - - /* Store p_intf to keep an eye on it */ - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_popup), - "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_popup), - "popup_audio" ) ), "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_popup), - "popup_video" ) ), "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playwin ), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_messages ), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_adj), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "p_intf", p_intf ); - - psz_sout = config_GetPsz( p_intf, "sout" ); - p_target = g_string_new( psz_sout ? psz_sout : "" ); - if( psz_sout ) free( psz_sout ); - - gtk_entry_set_text( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), "sout_entry_target" ), p_target->str ); - g_string_free( p_target, TRUE ); - - /* FIXME it's to be sure that only file entry is selected */ - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "sout_access_udp" ), TRUE ); - - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "sout_access_file" ), TRUE ); - - /* Show the control window */ - gtk_widget_show( p_intf->p_sys->p_window ); - - while( !p_intf->b_die ) - { - Manage( p_intf ); - - /* Sleep to avoid using all CPU - since some interfaces need to - * access keyboard events, a 100ms delay is a good compromise */ - gdk_threads_leave(); - msleep( INTF_IDLE_SLEEP ); - gdk_threads_enter(); - } - - /* Destroy the Tooltips structure */ - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_tooltips) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_messages) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_playwin) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_popup) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_window) ); - - gdk_threads_leave(); -} - -/* following functions are local */ - -/***************************************************************************** - * Manage: manage main thread messages - ***************************************************************************** - * In this function, called approx. 10 times a second, we check what the - * main program wanted to tell us. - *****************************************************************************/ -static void Manage( intf_thread_t *p_intf ) -{ - int i_start, i_stop; - - vlc_mutex_lock( &p_intf->change_lock ); - - /* If the "display popup" flag has changed */ - if( p_intf->b_menu_change ) - { - if( !GTK_IS_WIDGET( p_intf->p_sys->p_popup ) ) - { - p_intf->p_sys->p_popup = create_intf_popup(); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_popup ), - "p_popup", p_intf ); - } - - gnome_popup_menu_do_popup( p_intf->p_sys->p_popup, - NULL, NULL, NULL, NULL, NULL ); - p_intf->b_menu_change = 0; - } - - /* Update the log window */ - vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock ); - i_stop = *p_intf->p_sys->p_sub->pi_stop; - vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock ); - - if( p_intf->p_sys->p_sub->i_start != i_stop ) - { - static GdkColor white = { 0, 0xffff, 0xffff, 0xffff }; - static GdkColor gray = { 0, 0xaaaa, 0xaaaa, 0xaaaa }; - static GdkColor yellow = { 0, 0xffff, 0xffff, 0x6666 }; - static GdkColor red = { 0, 0xffff, 0x6666, 0x6666 }; - - static const char * ppsz_type[4] = { ": ", " error: ", " warning: ", - " debug: " }; - static GdkColor * pp_color[4] = { &white, &red, &yellow, &gray }; - - for( i_start = p_intf->p_sys->p_sub->i_start; - i_start != i_stop; - i_start = (i_start+1) % VLC_MSG_QSIZE ) - { - /* Append all messages to log window */ - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, p_intf->p_sys->p_sub->p_msg[i_start].psz_module, -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, ppsz_type[p_intf->p_sys->p_sub->p_msg[i_start].i_type], - -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, - pp_color[p_intf->p_sys->p_sub->p_msg[i_start].i_type], NULL, - p_intf->p_sys->p_sub->p_msg[i_start].psz_msg, -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, "\n", -1 ); - } - - vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock ); - p_intf->p_sys->p_sub->i_start = i_start; - vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock ); - - /* If the messages list becomes too big, just clean half of it. */ - if( gtk_text_get_length( p_intf->p_sys->p_messages_text ) > - VLC_MSG_QSIZE * 1000 ) - { - gtk_text_set_point( p_intf->p_sys->p_messages_text, 0 ); - gtk_text_forward_delete( p_intf->p_sys->p_messages_text, - gtk_text_get_length( p_intf->p_sys->p_messages_text ) / 2 ); - } - - gtk_text_set_point( p_intf->p_sys->p_messages_text, - gtk_text_get_length( p_intf->p_sys->p_messages_text ) ); - } - - /* Update the playlist */ - GtkPlayListManage( p_intf ); - - /* Update the input */ - if( p_intf->p_sys->p_input != NULL ) - { - if( p_intf->p_sys->p_input->b_dead ) - { - vlc_object_release( p_intf->p_sys->p_input ); - p_intf->p_sys->p_input = NULL; - } - } - - if( p_intf->p_sys->p_input == NULL ) - { - p_intf->p_sys->p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT, - FIND_ANYWHERE ); - } - - if( p_intf->p_sys->p_input ) - { - input_thread_t *p_input = p_intf->p_sys->p_input; - aout_instance_t *p_aout = NULL; - vout_thread_t *p_vout = NULL; - vlc_bool_t b_need_menus = VLC_FALSE; - - vlc_mutex_lock( &p_input->stream.stream_lock ); - - if( !p_input->b_die ) - { - /* New input or stream map change */ - if( p_input->stream.b_changed ) - { - E_(GtkModeManage)( p_intf ); - GtkSetupMenus( p_intf ); - p_intf->p_sys->b_playing = 1; - } - - /* Manage the slider */ - if( p_input->stream.b_seekable && p_intf->p_sys->b_playing ) - { - float newvalue = p_intf->p_sys->p_adj->value; - -#define p_area p_input->stream.p_selected_area - /* If the user hasn't touched the slider since the last time, - * then the input can safely change it */ - if( newvalue == p_intf->p_sys->f_adj_oldvalue ) - { - /* Update the value */ - p_intf->p_sys->p_adj->value = - p_intf->p_sys->f_adj_oldvalue = - ( 100. * p_area->i_tell ) / p_area->i_size; - - gtk_signal_emit_by_name( GTK_OBJECT( p_intf->p_sys->p_adj ), - "value_changed" ); - } - /* Otherwise, send message to the input if the user has - * finished dragging the slider. - * Beware, the hack below is needed by the dvdplay plugin! */ - else if( p_intf->p_sys->b_slider_free - /* hack -> */ && (p_intf->p_sys->f_adj_oldvalue < 100.) ) - { - if( newvalue >= 0. && newvalue < 100. ) - { - double f_fpos = (double)newvalue / 100.0; - - /* release the lock to be able to seek */ - vlc_mutex_unlock( &p_input->stream.stream_lock ); - var_SetFloat( p_input, "position", f_fpos ); - vlc_mutex_lock( &p_input->stream.stream_lock ); - - } - - /* Update the old value */ - p_intf->p_sys->f_adj_oldvalue = newvalue; - } -#undef p_area - } - - if( p_intf->p_sys->i_part != - p_input->stream.p_selected_area->i_part ) - { - p_intf->p_sys->b_chapter_update = 1; - b_need_menus = VLC_TRUE; - } - - /* Does the audio output require to update the menus ? */ - p_aout = (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); - if( p_aout != NULL ) - { - vlc_value_t val; - if( var_Get( (vlc_object_t *)p_aout, "intf-change", &val ) >= 0 - && val.b_bool ) - { - p_intf->p_sys->b_aout_update = 1; - b_need_menus = 1; - } - - vlc_object_release( (vlc_object_t *)p_aout ); - } - - - /* Does the video output require to update the menus ? */ - p_vout = (vout_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_VOUT, - FIND_ANYWHERE ); - if( p_vout != NULL ) - { - vlc_value_t val; - if( var_Get( (vlc_object_t *)p_vout, "intf-change", &val ) >= 0 - && val.b_bool ) - { - p_intf->p_sys->b_vout_update = 1; - b_need_menus = 1; - } - - vlc_object_release( (vlc_object_t *)p_vout ); - } - - if( b_need_menus ) - { - GtkSetupMenus( p_intf ); - } - } - - vlc_mutex_unlock( &p_input->stream.stream_lock ); - } - else if( p_intf->p_sys->b_playing && !p_intf->b_die ) - { - E_(GtkModeManage)( p_intf ); - p_intf->p_sys->b_playing = 0; - } - - vlc_mutex_unlock( &p_intf->change_lock ); - - return; -} - diff --git a/modules/gui/gtk/gnome.glade b/modules/gui/gtk/gnome.glade deleted file mode 100644 index c4bd32b9bb..0000000000 --- a/modules/gui/gtk/gnome.glade +++ /dev/null @@ -1,4305 +0,0 @@ - - - - - VLC media player - vlc - - - pixmaps - C - True - True - False - False - False - gnome_interface.c - gnome_interface.h - gnome_callbacks.c - gnome_callbacks.h - gnome_support.c - gnome_support.h - - - - GnomeApp - intf_window - - delete_event - GtkWindowDelete - Sat, 19 May 2001 03:20:57 GMT - - - drag_data_received - GtkWindowDrag - Sat, 19 May 2001 02:30:24 GMT - - VLC media player - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - False - True - True - True - - - GnomeDock - GnomeApp:dock - dockitem - True - - 0 - True - True - - - - GnomeDockItem - dockitem_menubar - 2 - GNOME_DOCK_TOP - 0 - 0 - 0 - False - True - False - True - False - GTK_SHADOW_OUT - - - GtkMenuBar - menubar - 2 - GTK_SHADOW_NONE - - - GtkMenuItem - menubar_file - GNOMEUIINFO_MENU_FILE_TREE - - - GtkMenu - menubar_file_menu - - - GtkPixmapMenuItem - menubar_open - Open a file - - activate - GtkFileOpenShow - Sat, 19 May 2001 16:27:02 GMT - - - False - GNOME_STOCK_MENU_OPEN - - - - GtkPixmapMenuItem - menubar_disc - Open Disc Media - - activate - GtkDiscOpenShow - Sat, 19 May 2001 16:27:10 GMT - - - False - GNOME_STOCK_MENU_CDROM - - - - GtkPixmapMenuItem - menubar_network - Select a network stream - - activate - GtkNetworkOpenShow - Fri, 21 Dec 2001 13:11:28 GMT - - - False - GNOME_STOCK_MENU_REFRESH - - - - GtkMenuItem - separator1 - False - - - - GtkPixmapMenuItem - menubar_eject - Eject disc - - activate - GtkDiscEject - Fri, 21 Dec 2001 13:11:28 GMT - - - False - GNOME_STOCK_MENU_TOP - - - - GtkMenuItem - separator15 - False - - - - GtkPixmapMenuItem - menubar_close - - activate - GtkClose - Mon, 15 Jul 2002 09:14:55 GMT - - GNOMEUIINFO_MENU_CLOSE_ITEM - - - - GtkPixmapMenuItem - menubar_exit - - activate - GnomeExit - Sat, 19 May 2001 16:27:52 GMT - - GNOMEUIINFO_MENU_EXIT_ITEM - - - - - - GtkMenuItem - menubar_view - GNOMEUIINFO_MENU_VIEW_TREE - - - GtkMenu - menubar_view_menu - - - GtkMenuItem - menubar_hide_interface - - activate - GtkWindowToggle - Sat, 19 May 2001 16:28:06 GMT - - - False - - - - GtkMenuItem - separator9 - False - - - - GtkMenuItem - menubar_program - False - Choose the program - - False - - - - GtkMenuItem - menubar_title - False - Choose title - - False - - - - GtkMenuItem - menubar_chapter - False - Choose chapter - - False - - - - GtkMenuItem - separator7 - False - - - - GtkPixmapMenuItem - menubar_playlist - Open the playlist window - - activate - GtkPlaylistShow - Sat, 19 May 2001 16:28:41 GMT - - - False - GNOME_STOCK_MENU_INDEX - - - - GtkPixmapMenuItem - menubar_modules - False - Open the module manager - - activate - GtkModulesShow - Sat, 19 May 2001 16:28:53 GMT - - - False - GNOME_STOCK_MENU_ATTACH - - - - GtkMenuItem - menubar_messages - Open the messages window - - activate - GtkMessagesShow - Wed, 20 Feb 2002 05:43:55 GMT - - - False - - - - - - GtkMenuItem - menubar_settings - GNOMEUIINFO_MENU_SETTINGS_TREE - - - GtkMenu - menubar_settings_menu - - - GtkPixmapMenuItem - menubar_preferences - - activate - GtkPreferencesShow - Sat, 19 May 2001 16:29:03 GMT - - GNOMEUIINFO_MENU_PREFERENCES_ITEM - - - - - - GtkMenuItem - menubar_config_audio - - False - - - GtkMenu - menubar_config_audio_menu - - - GtkMenuItem - menubar_audio - False - Select audio channel - - False - - - - GtkMenuItem - separator25 - False - - - - GtkMenuItem - menubar_volume_up - - activate - GtkVolumeUp - Mon, 20 Jan 2003 16:30:55 GMT - - - False - - - - GtkMenuItem - menubar_volume_down - - activate - GtkVolumeDown - Mon, 20 Jan 2003 16:30:55 GMT - - - False - - - - GtkMenuItem - menubar_volume_mute - - activate - GtkVolumeMute - Mon, 20 Jan 2003 16:30:55 GMT - - - False - - - - GtkMenuItem - separator16 - False - - - - GtkMenuItem - menubar_audio_channels - - False - - - - GtkMenuItem - menubar_audio_device - - False - - - - - - GtkMenuItem - menubar_config_video_menu - - False - - - GtkMenu - menubar_config_video_menu_menu - - - GtkMenuItem - menubar_subpictures - False - Select subtitles channel - - False - - - - GtkMenuItem - separator23 - False - - - - GtkMenuItem - menubar_fullscreen - - activate - GtkFullscreen - Sat, 19 May 2001 16:28:15 GMT - - - False - - - - GtkMenuItem - separator24 - False - - - - GtkMenuItem - menubar_deinterlace - - False - - - - GtkMenuItem - menubar_video_device - - False - - - - - - GtkMenuItem - menubar_help - GNOMEUIINFO_MENU_HELP_TREE - - - GtkMenu - menubar_help_menu - - - GtkPixmapMenuItem - menubar_about - - activate - GtkAboutShow - Sat, 19 May 2001 16:29:19 GMT - - GNOMEUIINFO_MENU_ABOUT_ITEM - - - - - - - - GnomeDockItem - dockitem_toolbar - 2 - GNOME_DOCK_TOP - 1 - 0 - 2 - False - True - False - False - False - GTK_SHADOW_OUT - - - GtkToolbar - toolbar - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH - 16 - GTK_TOOLBAR_SPACE_LINE - GTK_RELIEF_NONE - True - - - GtkButton - Toolbar:button - toolbar_file - Open a file - - clicked - GtkFileOpenShow - Sat, 19 May 2001 03:14:43 GMT - - - GNOME_STOCK_PIXMAP_OPEN - - - - GtkButton - Toolbar:button - toolbar_disc - Open Disc Media - - clicked - GtkDiscOpenShow - Sat, 19 May 2001 03:14:38 GMT - - - GNOME_STOCK_PIXMAP_CDROM - - - - GtkButton - Toolbar:button - toolbar_network - Select a network stream - - clicked - GtkNetworkOpenShow - Sat, 19 May 2001 03:14:33 GMT - - - GNOME_STOCK_PIXMAP_REFRESH - - - - GtkButton - Toolbar:button - toolbar_sat - Open a Satellite Card - - clicked - GtkSatOpenShow - Mon, 25 Mar 2002 01:02:49 GMT - - - GNOME_STOCK_PIXMAP_MIC - - - - GtkButton - Toolbar:button - toolbar_back - False - Go Backward - - clicked - GtkControlBack - Sat, 19 May 2001 03:14:27 GMT - - - GNOME_STOCK_PIXMAP_BACK - - True - - - - - GtkButton - Toolbar:button - toolbar_stop - Stop Stream - - clicked - GtkControlStop - Sat, 19 May 2001 03:14:22 GMT - - - GNOME_STOCK_PIXMAP_STOP - - - - GtkButton - Toolbar:button - toolbar_eject - Eject disc - - clicked - GtkDiscEject - Fri, 21 Dec 2001 15:24:18 GMT - - - GNOME_STOCK_PIXMAP_TOP - - - - GtkButton - Toolbar:button - toolbar_play - Play Stream - - clicked - GtkControlPlay - Wed, 05 Jun 2002 15:10:19 GMT - - - GNOME_STOCK_PIXMAP_FORWARD - - - - GtkButton - Toolbar:button - toolbar_pause - False - Pause Stream - - clicked - GtkControlPause - Sat, 19 May 2001 03:14:05 GMT - - - GNOME_STOCK_PIXMAP_BOTTOM - - - - GtkButton - Toolbar:button - toolbar_slow - False - Play Slower - - clicked - GtkControlSlow - Sat, 19 May 2001 03:13:58 GMT - - - GNOME_STOCK_PIXMAP_TIMER_STOP - - True - - - - - GtkButton - Toolbar:button - toolbar_fast - False - Play Faster - - clicked - GtkControlFast - Sat, 19 May 2001 03:13:53 GMT - - - GNOME_STOCK_PIXMAP_TIMER - - - - GtkButton - Toolbar:button - toolbar_playlist - Open Playlist - - clicked - GtkPlaylistShow - Sat, 19 May 2001 03:13:48 GMT - - - GNOME_STOCK_PIXMAP_INDEX - - - - GtkButton - Toolbar:button - toolbar_prev - Previous file - - clicked - GtkPlaylistPrev - Sat, 19 May 2001 03:13:44 GMT - - - GNOME_STOCK_PIXMAP_FIRST - - - - GtkButton - Toolbar:button - toolbar_next - Next File - - clicked - GtkPlaylistNext - Sat, 19 May 2001 03:13:40 GMT - - - GNOME_STOCK_PIXMAP_LAST - - - - - - GtkVBox - GnomeDock:contents - vbox8 - False - 0 - - - GtkFrame - slider_frame - False - - 0.05 - GTK_SHADOW_ETCHED_IN - - 0 - True - True - - - - GtkHScale - slider - True - - button_press_event - GtkSliderPress - Sat, 19 May 2001 03:12:57 GMT - - - button_release_event - GtkSliderRelease - Sat, 19 May 2001 03:13:00 GMT - - False - GTK_POS_TOP - 3 - GTK_UPDATE_CONTINUOUS - 0 - 0 - 100 - 1 - 6.25 - 0 - - - - - GtkHBox - file_box - False - 0 - - 0 - True - True - - - - GtkLabel - label_status - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - - GtkHBox - dvd_box - False - False - 0 - - 0 - True - True - - - - GtkLabel - label21 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - False - - - - - GtkHBox - title_chapter_box - False - 10 - - 0 - True - False - - - - GtkLabel - label19 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkLabel - title_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkButton - button_title_prev - Select previous title - True - - clicked - GtkTitlePrev - Sat, 19 May 2001 03:13:28 GMT - - GNOME_STOCK_BUTTON_PREV - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - GtkButton - button_title_next - True - - clicked - GtkTitleNext - Sat, 19 May 2001 03:13:23 GMT - - GNOME_STOCK_BUTTON_NEXT - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - - GtkVSeparator - vseparator1 - - 0 - False - False - - - - - GtkHBox - dvd_chapter_box - False - 10 - - 0 - True - False - - - - GtkLabel - label20 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkLabel - chapter_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkButton - button_chapter_prev - Select previous chapter - True - - clicked - GtkChapterPrev - Tue, 29 May 2001 13:13:41 GMT - - GNOME_STOCK_BUTTON_DOWN - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - GtkButton - button_chapter_next - Select next chapter - True - - clicked - GtkChapterNext - Sat, 19 May 2001 03:13:08 GMT - - GNOME_STOCK_BUTTON_UP - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - - - GtkHBox - network_box - False - True - 0 - - 0 - False - False - - - - GtkLabel - network_address_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - - - - GnomeAppBar - GnomeApp:appbar - appbar - False - True - - 0 - True - True - - - - - - GtkMenu - intf_popup - - - GtkPixmapMenuItem - popup_play - - activate - GtkControlPlay - Sat, 19 May 2001 16:16:58 GMT - - - False - GNOME_STOCK_MENU_FORWARD - - - - GtkPixmapMenuItem - popup_pause - - activate - GtkControlPause - Sat, 19 May 2001 16:17:31 GMT - - - False - GNOME_STOCK_MENU_BOTTOM - - - - GtkPixmapMenuItem - popup_stop - - activate - GtkControlStop - Sat, 19 May 2001 16:18:10 GMT - - - False - GNOME_STOCK_MENU_STOP - - - - GtkPixmapMenuItem - popup_back - False - - activate - GtkControlBack - Sat, 19 May 2001 16:18:21 GMT - - - False - GNOME_STOCK_MENU_BACK - - - - GtkPixmapMenuItem - popup_slow - - activate - GtkControlSlow - Sat, 19 May 2001 16:18:29 GMT - - - False - GNOME_STOCK_MENU_TIMER_STOP - - - - GtkPixmapMenuItem - popup_fast - - activate - GtkControlFast - Sat, 19 May 2001 16:18:37 GMT - - - False - GNOME_STOCK_MENU_TIMER - - - - GtkMenuItem - separator3 - False - - - - GtkMenuItem - popup_next - - activate - GtkPlaylistNext - Sat, 19 May 2001 16:19:18 GMT - - - False - - - - GtkMenuItem - popup_prev - - activate - GtkPlaylistPrev - Sat, 19 May 2001 16:19:26 GMT - - - False - - - - GtkPixmapMenuItem - popup_jump - Got directly so specified point - - activate - GtkJumpShow - Sat, 19 May 2001 16:34:46 GMT - - - False - GNOME_STOCK_MENU_JUMP_TO - - - - GtkMenuItem - separator17 - False - - - - GtkMenuItem - popup_program - False - Switch program - - False - - - - GtkPixmapMenuItem - popup_navigation - False - Navigate through titles and chapters - - False - GNOME_STOCK_MENU_SEARCH - - - - GtkMenuItem - popup_audio - - False - - - GtkMenu - popup_audio_menu - - - GtkPixmapMenuItem - popup_language - False - Select audio channel - - False - GNOME_STOCK_MENU_VOLUME - - - - GtkMenuItem - separator20 - False - - - - GtkMenuItem - popup_volume_up - - activate - GtkVolumeUp - Mon, 20 Jan 2003 16:33:43 GMT - - - False - - - - GtkMenuItem - popup_volume_down - - activate - GtkVolumeDown - Mon, 20 Jan 2003 16:33:43 GMT - - - False - - - - GtkMenuItem - popup_volume_mute - - activate - GtkVolumeMute - Mon, 20 Jan 2003 16:33:43 GMT - - - False - - - - GtkMenuItem - separator21 - False - - - - GtkMenuItem - popup_audio_channels - - False - - - - GtkMenuItem - popup_audio_device - - False - - - - - - GtkMenuItem - popup_video - - False - - - GtkMenu - popup_video_menu - - - GtkPixmapMenuItem - popup_subpictures - False - Select subtitles channel - - False - GNOME_STOCK_MENU_FONT - - - - GtkMenuItem - separator18 - False - - - - GtkMenuItem - popup_fullscreen - Toggle fullscreen mode - - activate - GtkFullscreen - Sat, 19 May 2001 16:19:07 GMT - - - False - - - - GtkMenuItem - separator19 - False - - - - GtkMenuItem - popup_deinterlace - - False - - - - GtkMenuItem - popup_video_device - - False - - - - - - GtkMenuItem - separator13 - False - - - - GtkMenuItem - popup_file - GNOMEUIINFO_MENU_FILE_TREE - - - GtkMenu - popup_file_menu - - - GtkPixmapMenuItem - popup_open - Open a file - - activate - GtkFileOpenShow - Sat, 19 May 2001 16:20:08 GMT - - - False - GNOME_STOCK_MENU_OPEN - - - - GtkPixmapMenuItem - popup_disc - Open Disc Media - - activate - GtkDiscOpenShow - Sat, 19 May 2001 16:20:44 GMT - - - False - GNOME_STOCK_MENU_CDROM - - - - GtkPixmapMenuItem - popup_network - Select a network stream - - activate - GtkNetworkOpenShow - Sat, 19 May 2001 16:20:54 GMT - - - False - GNOME_STOCK_MENU_REFRESH - - - - GtkMenuItem - separator4 - False - - - - GtkPixmapMenuItem - popup_about - - activate - GtkAboutShow - Sat, 19 May 2001 16:21:02 GMT - - GNOMEUIINFO_MENU_ABOUT_ITEM - - - - - - GtkMenuItem - popup_interface_toggle - - activate - GtkWindowToggle - Sat, 19 May 2001 16:18:51 GMT - - - False - - - - GtkMenuItem - popup_playlist - - activate - GtkPlaylistShow - Sat, 19 May 2001 16:21:14 GMT - - - False - - - - GtkPixmapMenuItem - popup_preferences - - activate - GtkPreferencesShow - Sat, 19 May 2001 16:21:25 GMT - - GNOMEUIINFO_MENU_PREFERENCES_ITEM - - - - GtkMenuItem - separator2 - False - - - - GtkPixmapMenuItem - popup_exit - - activate - GnomeExit - Sat, 19 May 2001 16:21:45 GMT - - GNOMEUIINFO_MENU_EXIT_ITEM - - - - - GnomeAbout - intf_about - False - (c) 1996-2003 the VideoLAN team - the VideoLAN team <videolan@videolan.org> -http://www.videolan.org/ - - This is the VLC media player, a DVD, MPEG and DivX player. It can play MPEG and MPEG2 files from a file or from a network source. - - - - GnomeDialog - intf_open - Open Stream - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - False - False - False - False - True - - - GtkVBox - GnomeDialog:vbox - dialog-vbox5 - False - 8 - - 4 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - dialog-action_area5 - GTK_BUTTONBOX_END - 8 - 85 - 27 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - button1 - True - True - - clicked - GtkOpenOk - Thu, 11 Jul 2002 09:10:19 GMT - - GNOME_STOCK_BUTTON_OK - - - - GtkButton - button3 - True - True - - clicked - GtkOpenCancel - Thu, 11 Jul 2002 09:10:29 GMT - - GNOME_STOCK_BUTTON_CANCEL - - - - - GtkVBox - open_vbox - False - 5 - - 0 - True - True - - - - GtkFrame - frame10 - - 0 - GTK_SHADOW_ETCHED_IN - - 0 - False - True - - - - GtkHBox - hbox21 - 5 - False - 5 - - - GtkHBox - hbox22 - False - 0 - - 0 - False - True - - - - GtkLabel - label34 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - - GtkCombo - combo2 - False - True - False - True - False - - - 0 - True - True - - - - GtkEntry - GtkCombo:entry - entry_open - True - True - True - 0 - - - - - - - - GtkLabel - label36 - - GTK_JUSTIFY_LEFT - False - 0 - 1 - 0 - 0 - - 0 - True - True - - - - - GtkNotebook - open_notebook - True - - switch_page - GtkOpenNotebookChanged - True - Tue, 09 Jul 2002 14:01:19 GMT - - True - True - GTK_POS_TOP - False - 2 - 2 - False - - 0 - True - True - - - - GtkHBox - hbox20 - 5 - False - 5 - - - GtkCombo - combo1 - False - True - False - True - False - - - 0 - False - True - - - - GtkEntry - GtkCombo:entry - entry_file - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:22:33 GMT - - True - True - 0 - - - - - - GtkVBox - vbox13 - True - 0 - - 0 - False - False - - - - Placeholder - - - - GtkButton - open_browse - True - - clicked - GtkFileShow - "entry_file" - Tue, 21 Jan 2003 01:55:20 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - Placeholder - - - - - - GtkLabel - Notebook:tab - open_file - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table5 - 5 - 5 - 2 - False - 5 - 5 - - - GtkLabel - label35 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkHBox - hbox24 - False - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - disc_dvd - True - - toggled - GtkDiscOpenDvd - Sun, 13 May 2001 14:48:29 GMT - - - False - True - disc - - 0 - False - False - - - - - GtkRadioButton - disc_vcd - True - - toggled - GtkDiscOpenVcd - Sun, 13 May 2001 14:48:39 GMT - - - False - True - disc - - 0 - False - False - - - - - GtkRadioButton - disc_cdda - True - - toggled - GtkDiscOpenCDDA - Fri, 12 Dec 2003 01:00:17 GMT - - - False - True - disc - - 0 - False - False - - - - - - GtkLabel - label19 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkEntry - disc_name - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:46:05 GMT - - True - True - 0 - /dev/dvd - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - disc_chapter_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 4 - 5 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - disc_title_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCheckButton - disc_dvd_use_menu - True - - toggled - GtkOpenChanged - Tue, 21 Jan 2003 13:39:20 GMT - - - True - True - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - disc_title - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:45:04 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - True - 1 - 0 - 100 - 1 - 10 - 10 - - 1 - 2 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - disc_chapter - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:45:38 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 - 1 - 65536 - 1 - 10 - 10 - - 1 - 2 - 4 - 5 - 0 - 0 - False - False - False - False - True - False - - - - - - GtkLabel - Notebook:tab - open_disc - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table4 - 5 - 3 - 6 - False - 5 - 5 - - - GtkRadioButton - network_udp - True - - toggled - GtkNetworkOpenUDP - Thu, 16 May 2002 00:47:18 GMT - - - False - True - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - network_multicast - True - - toggled - GtkNetworkOpenMulticast - Thu, 16 May 2002 00:47:05 GMT - - - False - True - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - network_http - True - - toggled - GtkNetworkOpenHTTP - Thu, 16 May 2002 00:47:42 GMT - - - False - True - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_udp_port_label - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_multicast_address_label - False - - GTK_JUSTIFY_RIGHT - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_http_url_label - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - network_multicast_address_combo - False - False - True - False - True - False - - - 2 - 4 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - network_multicast_address - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:06 GMT - - True - True - 0 - - - - - - GtkLabel - network_multicast_port_label - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 4 - 5 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - network_multicast_port - 75 - False - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:36 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 5 - 6 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - - GtkEntry - network_http_url - False - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:26 GMT - - True - True - 0 - - - 2 - 6 - 2 - 3 - 0 - 0 - True - False - False - False - True - False - - - - - GtkSpinButton - network_udp_port - 1 - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:56:55 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 2 - 3 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - - GtkLabel - Notebook:tab - open_net - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table3 - 5 - 4 - 2 - False - 5 - 5 - - - GtkLabel - label24 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label25 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label26 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - sat_freq - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:00 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 11954 - 10000 - 12999 - 1 - 10 - 10 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label27 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkHBox - hbox23 - False - 0 - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - sat_pol_vert - True - - toggled - GtkSatOpenToggle - Tue, 09 Jul 2002 15:16:25 GMT - - - False - True - pol - - 0 - False - False - - - - - GtkRadioButton - sat_pol_hor - True - - toggled - GtkSatOpenToggle - Tue, 09 Jul 2002 15:16:36 GMT - - - False - True - pol - - 0 - False - False - - - - - - GtkSpinButton - sat_srate - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:09 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 27500 - 1000 - 30000 - 1 - 10 - 10 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - sat_fec - False - True - False - True - False - 1/2 -2/3 -3/4 -4/5 -5/6 -7/8 - - - 1 - 2 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - combo-entry1 - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:26 GMT - - True - True - 0 - 3/4 - - - - - - GtkLabel - Notebook:tab - open_sat - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - - - GtkCheckButton - show_subtitle - True - - clicked - GtkOpenSubtitleShow - Tue, 21 Jan 2003 01:59:00 GMT - - - False - True - - 0 - False - False - - - - - GtkHBox - hbox_subtitle - 5 - False - 5 - - 0 - True - True - - - - GtkCombo - combo3 - False - True - False - True - False - - - 0 - False - True - - - - GtkEntry - GtkCombo:entry - entry_subtitle - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:22:33 GMT - - True - True - 0 - - - - - - GtkVBox - vbox14 - True - 0 - - 0 - False - False - - - - GtkButton - button4 - True - - clicked - GtkFileShow - "entry_subtitle" - Tue, 21 Jan 2003 01:52:07 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - - GtkLabel - label37 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - GtkSpinButton - subtitle_delay - True - - changed - GtkOpenChanged - Tue, 21 Jan 2003 01:54:32 GMT - - 1 - 1 - False - GTK_UPDATE_ALWAYS - False - False - 0 - -1000 - 1000 - 0.1 - 10 - 10 - - 0 - True - True - - - - - GtkLabel - label38 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - GtkSpinButton - subtitle_fps - True - - changed - GtkOpenChanged - Tue, 21 Jan 2003 01:54:41 GMT - - 1 - 1 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 100 - 0.1 - 10 - 10 - - 0 - True - True - - - - - - GtkHBox - hbox28 - False - 0 - - 2 - True - True - - - - GtkCheckButton - show_sout_settings - True - - clicked - GtkOpenSoutShow - Sun, 26 Jan 2003 11:50:50 GMT - - - False - True - - 0 - False - False - - - - - GtkButton - sout_settings - True - - clicked - GtkSoutSettings - Sun, 26 Jan 2003 11:51:35 GMT - - - GTK_RELIEF_NORMAL - - 20 - False - False - - - - - - - - GtkFileSelection - intf_file - 10 - Open File - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - False - True - False - False - - - GtkButton - FileSel:ok_button - file_ok - True - True - - clicked - GtkFileOk - Thu, 11 Jul 2002 09:07:44 GMT - - GNOME_STOCK_BUTTON_OK - GTK_RELIEF_NORMAL - - - - GtkButton - FileSel:cancel_button - file_cancel - True - True - - clicked - GtkFileCancel - Thu, 11 Jul 2002 09:07:50 GMT - - GNOME_STOCK_BUTTON_CANCEL - GTK_RELIEF_NORMAL - - - - - GnomeDialog - intf_modules - Modules - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - False - False - False - False - False - - - GtkVBox - GnomeDialog:vbox - dialog-vbox1 - False - 8 - - 4 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - dialog-action_area1 - GTK_BUTTONBOX_END - 8 - 85 - 27 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - modules_ok - True - True - GNOME_STOCK_BUTTON_OK - - - - GtkButton - modules_apply - True - True - GNOME_STOCK_BUTTON_APPLY - - - - GtkButton - modules_cancel - True - True - GNOME_STOCK_BUTTON_CANCEL - - - - - GtkLabel - label12 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - - - GnomeDialog - intf_playlist - - destroy - gtk_widget_hide - Sat, 19 May 2001 03:09:08 GMT - - - delete_event - gtk_widget_hide - Sat, 19 May 2001 03:09:12 GMT - - Playlist - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - 400 - 300 - True - True - False - False - True - - - GtkVBox - GnomeDialog:vbox - playlist_vbox - False - 8 - - 4 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - playlist_action - GTK_BUTTONBOX_END - 8 - 100 - 38 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - playlist_ok - True - True - - clicked - GtkPlaylistOk - Sat, 19 May 2001 03:09:00 GMT - - GNOME_STOCK_BUTTON_OK - - - - GtkButton - playlist_cancel - True - True - - clicked - GtkPlaylistCancel - Sat, 19 May 2001 03:08:56 GMT - - GNOME_STOCK_BUTTON_CANCEL - - - - - GtkScrolledWindow - playlist_scrolledwindow - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_UPDATE_CONTINUOUS - GTK_UPDATE_CONTINUOUS - - 0 - True - True - - - - GtkViewport - playlist_viewport - GTK_SHADOW_IN - - - GtkFrame - playlist_frame - 4 - - 0.05 - GTK_SHADOW_ETCHED_IN - - - GtkCList - playlist_clist - True - - event - GtkPlaylistEvent - Sat, 19 May 2001 03:08:43 GMT - - - drag_data_received - GtkPlaylistDragData - Sat, 19 May 2001 03:08:45 GMT - - - drag_motion - GtkPlaylistDragMotion - Sat, 19 May 2001 03:08:49 GMT - - 2 - 287,70 - GTK_SELECTION_EXTENDED - True - GTK_SHADOW_IN - - - GtkLabel - CList:title - playlist_label_url - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkLabel - CList:title - playlist_label_duration - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - - - - - GtkMenuBar - playlist_menubar - GTK_SHADOW_OUT - - 0 - False - False - - - - GtkMenuItem - playlist_add - - False - - - GtkMenu - playlist_add_menu - - - GtkMenuItem - playlist_add_disc - - activate - GtkDiscOpenShow - Sat, 19 May 2001 16:22:26 GMT - - - False - - - - GtkMenuItem - playlist_add_file - - activate - GtkFileOpenShow - Sat, 19 May 2001 16:22:37 GMT - - - False - - - - GtkMenuItem - playlist_add_network - - activate - GtkNetworkOpenShow - Sat, 19 May 2001 16:22:52 GMT - - - False - - - - GtkMenuItem - playlist_add_url - - activate - GtkPlaylistAddUrl - Sat, 19 May 2001 16:24:27 GMT - - - False - - - - - - GtkMenuItem - playlist_delete - - False - - - GtkMenu - playlist_delete_menu - - - GtkMenuItem - playlist_delete_all - - activate - GtkPlaylistDeleteAll - Sat, 19 May 2001 03:08:11 GMT - - - False - - - - GtkMenuItem - playlist_delete_item - - activate - GtkPlaylistDeleteSelected - Sat, 19 May 2001 03:08:05 GMT - - - False - - - - - - GtkMenuItem - playlist_selection - - False - - - GtkMenu - playlist_selection_menu - - - GtkMenuItem - playlist_selection_crop - - activate - GtkPlaylistCrop - Sat, 19 May 2001 03:07:56 GMT - - - False - - - - GtkMenuItem - playlist_selection_invert - - activate - GtkPlaylistInvert - Sat, 19 May 2001 03:07:51 GMT - - - False - - - - GtkMenuItem - playlist_selection_select - - activate - GtkPlaylistSelect - Sat, 19 May 2001 03:07:45 GMT - - - False - - - - - - - - - GnomeDialog - intf_jump - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - False - False - False - False - False - - - GtkVBox - GnomeDialog:vbox - jump_vbox - False - 8 - - 0 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - jump_action - GTK_BUTTONBOX_END - 8 - 85 - 27 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - jump_ok - True - True - - clicked - GtkJumpOk - Sat, 19 May 2001 03:07:27 GMT - - GNOME_STOCK_BUTTON_OK - - - - GtkButton - jump_cancel - True - True - - clicked - GtkJumpCancel - Sat, 19 May 2001 03:07:20 GMT - - GNOME_STOCK_BUTTON_CANCEL - - - - - GtkFrame - jump_frame - 5 - - 0.05 - GTK_SHADOW_ETCHED_IN - - 0 - False - False - - - - GtkHBox - jump_box - 5 - False - 0 - - - GtkLabel - jump_label3 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_second_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 100 - 1 - 10 - 10 - - 5 - False - False - GTK_PACK_END - - - - - GtkLabel - jump_label1 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_minute_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 59 - 1 - 10 - 10 - - 5 - False - False - GTK_PACK_END - - - - - GtkLabel - jump_label2 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_hour_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 10 - 1 - 10 - 10 - - 5 - False - False - GTK_PACK_END - - - - - - - - - GnomeDialog - intf_messages - - destroy - gtk_widget_hide - Wed, 20 Feb 2002 05:11:27 GMT - - - delete_event - gtk_widget_hide - Wed, 20 Feb 2002 05:11:27 GMT - - Messages - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - True - False - False - True - - - GtkVBox - GnomeDialog:vbox - dialog-vbox6 - False - 8 - - 4 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - dialog-action_area6 - GTK_BUTTONBOX_END - 8 - 85 - 27 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - messages_ok - True - True - - clicked - GtkMessagesOk - Wed, 20 Feb 2002 05:12:11 GMT - - GNOME_STOCK_BUTTON_OK - - - - - GtkScrolledWindow - scrolledwindow1 - GTK_POLICY_NEVER - GTK_POLICY_ALWAYS - GTK_UPDATE_CONTINUOUS - GTK_UPDATE_CONTINUOUS - - 0 - True - True - - - - GtkText - messages_textbox - 600 - 400 - True - False - - - - - - - - GnomeDialog - intf_sout - 5 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - False - False - False - False - False - - - GtkVBox - GnomeDialog:vbox - dialog-vbox7 - False - 8 - - 4 - True - True - - - - GtkHButtonBox - GnomeDialog:action_area - dialog-action_area7 - GTK_BUTTONBOX_END - 8 - 85 - 27 - 7 - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - button7 - True - True - - clicked - GtkSoutSettingsOk - Sun, 26 Jan 2003 10:59:18 GMT - - GNOME_STOCK_BUTTON_OK - - - - GtkButton - button9 - True - True - - clicked - GtkSoutSettingsCancel - Sun, 26 Jan 2003 10:58:55 GMT - - GNOME_STOCK_BUTTON_CANCEL - - - - - GtkVBox - vbox16 - False - 0 - - 0 - True - True - - - - GtkFrame - frame11 - - 0 - GTK_SHADOW_ETCHED_IN - - 0 - False - True - - - - GtkHBox - hbox26 - 5 - False - 0 - - - GtkLabel - label39 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkCombo - combo4 - False - True - False - True - False - - - 0 - True - True - - - - GtkEntry - GtkCombo:entry - sout_entry_target - True - True - True - 0 - - - - - - - - GtkFrame - frame12 - 0 - GTK_SHADOW_ETCHED_IN - - 0 - True - True - - - - GtkTable - table6 - 3 - 5 - False - 5 - 5 - - - GtkRadioButton - sout_access_file - True - - toggled - GtkSoutSettingsAccessFile - Sun, 26 Jan 2003 10:18:26 GMT - - - False - True - sout_access - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - sout_access_udp - True - - toggled - GtkSoutSettingsAccessUdp - Sun, 26 Jan 2003 10:18:55 GMT - - - False - True - sout_access - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - sout_access_rtp - True - - toggled - GtkSoutSettingsAccessUdp - Sun, 26 Jan 2003 10:19:27 GMT - - - False - True - sout_access - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - sout_file_path_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - sout_udp_address_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - sout_udp_address_combo - False - True - False - True - False - - - 2 - 3 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - sout_udp_address - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:21:33 GMT - - True - True - 0 - - - - - - GtkLabel - sout_udp_port_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 3 - 4 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - sout_udp_port - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 11:00:44 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 4 - 5 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - - GtkCombo - combo5 - False - True - False - True - False - - - 2 - 5 - 0 - 1 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - sout_file_path - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:21:04 GMT - - True - True - 0 - - - - - - GtkHBox - hbox27 - False - 0 - - 4 - 5 - 2 - 3 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - sout_mux_ts - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:23:59 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - GtkRadioButton - sout_mux_ps - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:24:33 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - GtkRadioButton - sout_mux_avi - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:25:01 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - - - - - - diff --git a/modules/gui/gtk/gnome_callbacks.c b/modules/gui/gtk/gnome_callbacks.c deleted file mode 100644 index 29f49c5692..0000000000 --- a/modules/gui/gtk/gnome_callbacks.c +++ /dev/null @@ -1,11 +0,0 @@ -/***************************************************************************** - * This file is not used: everything is in gtk_callbacks.c - *****************************************************************************/ - -void -GtkDiscOpenCDDA (GtkToggleButton *togglebutton, - gpointer user_data) -{ - -} - diff --git a/modules/gui/gtk/gnome_callbacks.h b/modules/gui/gtk/gnome_callbacks.h deleted file mode 100644 index 15d64ff454..0000000000 --- a/modules/gui/gtk/gnome_callbacks.h +++ /dev/null @@ -1,8 +0,0 @@ -/***************************************************************************** - * This file is not needed: everything is in gtk_callbacks.h - *****************************************************************************/ -#include "gtk_callbacks.h" - -void -GtkDiscOpenCDDA (GtkToggleButton *togglebutton, - gpointer user_data); diff --git a/modules/gui/gtk/gnome_interface.c b/modules/gui/gtk/gnome_interface.c deleted file mode 100644 index 290f252869..0000000000 --- a/modules/gui/gtk/gnome_interface.c +++ /dev/null @@ -1,3052 +0,0 @@ -/* This file was created automatically by glade and fixed by bootstrap */ - -#include - -#include -#include -#include -#include - -#include - -#include "gnome_callbacks.h" -#include "gnome_interface.h" -#include "gnome_support.h" - -static GnomeUIInfo menubar_file_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Open File..."), - N_("Open a file"), - (gpointer) GtkFileOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Open _Disc..."), - N_("Open Disc Media"), - (gpointer) GtkDiscOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Network stream..."), - N_("Select a network stream"), - (gpointer) GtkNetworkOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("_Eject Disc"), - N_("Eject disc"), - (gpointer) GtkDiscEject, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TOP, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - GNOMEUIINFO_MENU_CLOSE_ITEM (GtkClose, NULL), - GNOMEUIINFO_MENU_EXIT_ITEM (GnomeExit, NULL), - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_view_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Hide interface"), - NULL, - (gpointer) GtkWindowToggle, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Progr_am"), - N_("Choose the program"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Title"), - N_("Choose title"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Chapter"), - N_("Choose chapter"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("_Playlist..."), - N_("Open the playlist window"), - (gpointer) GtkPlaylistShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_INDEX, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Modules..."), - N_("Open the module manager"), - (gpointer) GtkModulesShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_ATTACH, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Messages..."), - N_("Open the messages window"), - (gpointer) GtkMessagesShow, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_settings_menu_uiinfo[] = -{ - GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL), - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_config_audio_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Language"), - N_("Select audio channel"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Volume Up"), - NULL, - (gpointer) GtkVolumeUp, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Volume Down"), - NULL, - (gpointer) GtkVolumeDown, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Mute"), - NULL, - (gpointer) GtkVolumeMute, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Channels"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Device"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_config_video_menu_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Subtitles"), - N_("Select subtitles channel"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("_Fullscreen"), - NULL, - (gpointer) GtkFullscreen, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Deinterlace"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Screen"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_help_menu_uiinfo[] = -{ - GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL), - GNOMEUIINFO_END -}; - -static GnomeUIInfo menubar_uiinfo[] = -{ - GNOMEUIINFO_MENU_FILE_TREE (menubar_file_menu_uiinfo), - GNOMEUIINFO_MENU_VIEW_TREE (menubar_view_menu_uiinfo), - GNOMEUIINFO_MENU_SETTINGS_TREE (menubar_settings_menu_uiinfo), - { - GNOME_APP_UI_SUBTREE, N_("_Audio"), - NULL, - menubar_config_audio_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_SUBTREE, N_("_Video"), - NULL, - menubar_config_video_menu_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_MENU_HELP_TREE (menubar_help_menu_uiinfo), - GNOMEUIINFO_END -}; - -GtkWidget* -create_intf_window (void) -{ - GtkWidget *intf_window; - GtkWidget *dockitem; - GtkWidget *toolbar; - GtkWidget *tmp_toolbar_icon; - GtkWidget *toolbar_file; - GtkWidget *toolbar_disc; - GtkWidget *toolbar_network; - GtkWidget *toolbar_sat; - GtkWidget *toolbar_back; - GtkWidget *toolbar_stop; - GtkWidget *toolbar_eject; - GtkWidget *toolbar_play; - GtkWidget *toolbar_pause; - GtkWidget *toolbar_slow; - GtkWidget *toolbar_fast; - GtkWidget *toolbar_playlist; - GtkWidget *toolbar_prev; - GtkWidget *toolbar_next; - GtkWidget *vbox8; - GtkWidget *slider_frame; - GtkWidget *slider; - GtkWidget *file_box; - GtkWidget *label_status; - GtkWidget *dvd_box; - GtkWidget *label21; - GtkWidget *title_chapter_box; - GtkWidget *label19; - GtkWidget *title_label; - GtkWidget *button_title_prev; - GtkWidget *button_title_next; - GtkWidget *vseparator1; - GtkWidget *dvd_chapter_box; - GtkWidget *label20; - GtkWidget *chapter_label; - GtkWidget *button_chapter_prev; - GtkWidget *button_chapter_next; - GtkWidget *network_box; - GtkWidget *network_address_label; - GtkWidget *appbar; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - intf_window = gnome_app_new ("VLC media player", _("VLC media player")); - gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window); - gtk_window_set_policy (GTK_WINDOW (intf_window), FALSE, TRUE, TRUE); - - dockitem = GNOME_APP (intf_window)->dock; - gtk_widget_ref (dockitem); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dockitem", dockitem, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dockitem); - - gnome_app_create_menus (GNOME_APP (intf_window), menubar_uiinfo); - - gtk_widget_ref (menubar_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file", - menubar_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open", - menubar_file_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc", - menubar_file_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network", - menubar_file_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator1", - menubar_file_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_eject", - menubar_file_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator15", - menubar_file_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[6].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_close", - menubar_file_menu_uiinfo[6].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_file_menu_uiinfo[7].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit", - menubar_file_menu_uiinfo[7].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view", - menubar_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_view_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_hide_interface", - menubar_view_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_view_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator9", - menubar_view_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_view_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_program", - menubar_view_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_view_menu_uiinfo[2].widget, FALSE); - - gtk_widget_ref (menubar_view_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title", - menubar_view_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_view_menu_uiinfo[3].widget, FALSE); - - gtk_widget_ref (menubar_view_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter", - menubar_view_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_view_menu_uiinfo[4].widget, FALSE); - - gtk_widget_ref (menubar_view_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator7", - menubar_view_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_view_menu_uiinfo[6].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist", - menubar_view_menu_uiinfo[6].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_view_menu_uiinfo[7].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules", - menubar_view_menu_uiinfo[7].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_view_menu_uiinfo[7].widget, FALSE); - - gtk_widget_ref (menubar_view_menu_uiinfo[8].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_messages", - menubar_view_menu_uiinfo[8].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings", - menubar_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_settings_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences", - menubar_settings_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_audio", - menubar_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio", - menubar_config_audio_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_config_audio_menu_uiinfo[0].widget, FALSE); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator25", - menubar_config_audio_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_up", - menubar_config_audio_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_down", - menubar_config_audio_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_mute", - menubar_config_audio_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator16", - menubar_config_audio_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[6].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_channels", - menubar_config_audio_menu_uiinfo[6].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_audio_menu_uiinfo[7].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_device", - menubar_config_audio_menu_uiinfo[7].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_video_menu", - menubar_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures", - menubar_config_video_menu_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (menubar_config_video_menu_menu_uiinfo[0].widget, FALSE); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator23", - menubar_config_video_menu_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen", - menubar_config_video_menu_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator24", - menubar_config_video_menu_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_deinterlace", - menubar_config_video_menu_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_config_video_menu_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_video_device", - menubar_config_video_menu_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help", - menubar_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (menubar_help_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about", - menubar_help_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - toolbar = gtk_toolbar_new (); - gtk_widget_ref (toolbar); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar); - gnome_app_add_toolbar (GNOME_APP (intf_window), GTK_TOOLBAR (toolbar), "toolbar", - BONOBO_DOCK_ITEM_BEH_EXCLUSIVE, - BONOBO_DOCK_TOP, 1, 0, 2); - //gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16); - //gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE); - //gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_OPEN); - toolbar_file = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("File"), - _("Open a file"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_file); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_file", toolbar_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_file); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_CDROM); - toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Disc"), - _("Open disc"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_disc); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_REFRESH); - toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Net"), - _("Select a network stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_network); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_network); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_MIC); - toolbar_sat = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Sat"), - _("Open a satellite card"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_sat); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_sat", toolbar_sat, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_sat); - - gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BACK); - toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Back"), - _("Go backward"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_back); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_back); - gtk_widget_set_sensitive (toolbar_back, FALSE); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_STOP); - toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Stop"), - _("Stop stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_stop); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_stop); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TOP); - toolbar_eject = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Eject"), - _("Eject disc"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_eject); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_eject", toolbar_eject, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_eject); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FORWARD); - toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Play"), - _("Play stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_play); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_play); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_BOTTOM); - toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Pause"), - _("Pause stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_pause); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_pause); - gtk_widget_set_sensitive (toolbar_pause, FALSE); - - gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER_STOP); - toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Slow"), - _("Play slower"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_slow); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_slow); - gtk_widget_set_sensitive (toolbar_slow, FALSE); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_TIMER); - toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Fast"), - _("Play faster"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_fast); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_fast); - gtk_widget_set_sensitive (toolbar_fast, FALSE); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_INDEX); - toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Playlist"), - _("Open playlist"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_playlist); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_playlist); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_FIRST); - toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Prev"), - _("Previous file"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_prev); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_prev); - - //tmp_toolbar_icon = gnome_stock_pixmap_widget (intf_window, GNOME_STOCK_PIXMAP_LAST); - toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Next"), - _("Next file"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_next); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_next); - - vbox8 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox8); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "vbox8", vbox8, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox8); - gnome_app_set_contents (GNOME_APP (intf_window), vbox8); - - slider_frame = gtk_frame_new ("-:--:--"); - gtk_widget_ref (slider_frame); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (vbox8), slider_frame, TRUE, TRUE, 0); - gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5); - - slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0))); - gtk_widget_ref (slider); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (slider); - gtk_container_add (GTK_CONTAINER (slider_frame), slider); - gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE); - gtk_scale_set_digits (GTK_SCALE (slider), 3); - - file_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (file_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (file_box); - gtk_box_pack_start (GTK_BOX (vbox8), file_box, TRUE, TRUE, 0); - - label_status = gtk_label_new (""); - gtk_widget_ref (label_status); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label_status); - gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0); - - dvd_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (dvd_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (vbox8), dvd_box, TRUE, TRUE, 0); - - label21 = gtk_label_new (_("Disc")); - gtk_widget_ref (label21); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "label21", label21, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label21); - gtk_box_pack_start (GTK_BOX (dvd_box), label21, TRUE, FALSE, 0); - - title_chapter_box = gtk_hbox_new (FALSE, 10); - gtk_widget_ref (title_chapter_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_chapter_box", title_chapter_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_chapter_box); - gtk_box_pack_start (GTK_BOX (dvd_box), title_chapter_box, TRUE, FALSE, 0); - - label19 = gtk_label_new (_("Title:")); - gtk_widget_ref (label19); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "label19", label19, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label19); - gtk_box_pack_start (GTK_BOX (title_chapter_box), label19, FALSE, FALSE, 0); - - title_label = gtk_label_new ("--"); - gtk_widget_ref (title_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_label", title_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_label); - gtk_box_pack_start (GTK_BOX (title_chapter_box), title_label, FALSE, FALSE, 0); - - button_title_prev = gtk_button_new_from_stock (GNOME_STOCK_BUTTON_PREV); - gtk_widget_ref (button_title_prev); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_prev", button_title_prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button_title_prev); - gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_prev, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, button_title_prev, _("Select previous title"), NULL); - - button_title_next = gtk_button_new_from_stock (GNOME_STOCK_BUTTON_NEXT); - gtk_widget_ref (button_title_next); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_title_next", button_title_next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button_title_next); - gtk_box_pack_start (GTK_BOX (title_chapter_box), button_title_next, FALSE, FALSE, 0); - - vseparator1 = gtk_vseparator_new (); - gtk_widget_ref (vseparator1); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "vseparator1", vseparator1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vseparator1); - gtk_box_pack_start (GTK_BOX (dvd_box), vseparator1, FALSE, FALSE, 0); - - dvd_chapter_box = gtk_hbox_new (FALSE, 10); - gtk_widget_ref (dvd_chapter_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_chapter_box", dvd_chapter_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dvd_chapter_box); - gtk_box_pack_start (GTK_BOX (dvd_box), dvd_chapter_box, TRUE, FALSE, 0); - - label20 = gtk_label_new (_("Chapter:")); - gtk_widget_ref (label20); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "label20", label20, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label20); - gtk_box_pack_start (GTK_BOX (dvd_chapter_box), label20, FALSE, FALSE, 0); - - chapter_label = gtk_label_new ("---"); - gtk_widget_ref (chapter_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_label", chapter_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter_label); - gtk_box_pack_start (GTK_BOX (dvd_chapter_box), chapter_label, FALSE, FALSE, 0); - - button_chapter_prev = gtk_button_new_from_stock (GNOME_STOCK_BUTTON_DOWN); - gtk_widget_ref (button_chapter_prev); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_prev", button_chapter_prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button_chapter_prev); - gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_prev, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, button_chapter_prev, _("Select previous chapter"), NULL); - - button_chapter_next = gtk_button_new_from_stock (GNOME_STOCK_BUTTON_UP); - gtk_widget_ref (button_chapter_next); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "button_chapter_next", button_chapter_next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button_chapter_next); - gtk_box_pack_start (GTK_BOX (dvd_chapter_box), button_chapter_next, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, button_chapter_next, _("Select next chapter"), NULL); - - network_box = gtk_hbox_new (TRUE, 0); - gtk_widget_ref (network_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (vbox8), network_box, FALSE, FALSE, 0); - - network_address_label = gtk_label_new (_("No server")); - gtk_widget_ref (network_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_address_label); - gtk_box_pack_start (GTK_BOX (network_box), network_address_label, FALSE, FALSE, 0); - - appbar = gnome_appbar_new (FALSE, TRUE, GNOME_PREFERENCES_NEVER); - gtk_widget_ref (appbar); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "appbar", appbar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (appbar); - gnome_app_set_statusbar (GNOME_APP (intf_window), appbar); - - gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event", - GTK_SIGNAL_FUNC (GtkWindowDelete), - NULL); - gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received", - GTK_SIGNAL_FUNC (GtkWindowDrag), - NULL); - gnome_app_install_menu_hints (GNOME_APP (intf_window), menubar_uiinfo); - gtk_signal_connect (GTK_OBJECT (toolbar_file), "clicked", - GTK_SIGNAL_FUNC (GtkFileOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked", - GTK_SIGNAL_FUNC (GtkDiscOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked", - GTK_SIGNAL_FUNC (GtkNetworkOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked", - GTK_SIGNAL_FUNC (GtkSatOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked", - GTK_SIGNAL_FUNC (GtkControlBack), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked", - GTK_SIGNAL_FUNC (GtkControlStop), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked", - GTK_SIGNAL_FUNC (GtkDiscEject), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked", - GTK_SIGNAL_FUNC (GtkControlPlay), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked", - GTK_SIGNAL_FUNC (GtkControlPause), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked", - GTK_SIGNAL_FUNC (GtkControlSlow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked", - GTK_SIGNAL_FUNC (GtkControlFast), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistPrev), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistNext), - NULL); - gtk_signal_connect (GTK_OBJECT (slider), "button_press_event", - GTK_SIGNAL_FUNC (GtkSliderPress), - NULL); - gtk_signal_connect (GTK_OBJECT (slider), "button_release_event", - GTK_SIGNAL_FUNC (GtkSliderRelease), - NULL); - gtk_signal_connect (GTK_OBJECT (button_title_prev), "clicked", - GTK_SIGNAL_FUNC (GtkTitlePrev), - NULL); - gtk_signal_connect (GTK_OBJECT (button_title_next), "clicked", - GTK_SIGNAL_FUNC (GtkTitleNext), - NULL); - gtk_signal_connect (GTK_OBJECT (button_chapter_prev), "clicked", - GTK_SIGNAL_FUNC (GtkChapterPrev), - NULL); - gtk_signal_connect (GTK_OBJECT (button_chapter_next), "clicked", - GTK_SIGNAL_FUNC (GtkChapterNext), - NULL); - - gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips); - - return intf_window; -} - -static GnomeUIInfo popup_audio_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Language"), - N_("Select audio channel"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_VOLUME, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Volume up"), - NULL, - (gpointer) GtkVolumeUp, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Volume down"), - NULL, - (gpointer) GtkVolumeDown, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Mute"), - NULL, - (gpointer) GtkVolumeMute, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Channels"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Device"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo popup_video_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Subtitles"), - N_("Select subtitles channel"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FONT, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("_Fullscreen"), - N_("Toggle fullscreen mode"), - (gpointer) GtkFullscreen, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Deinterlace"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Screen"), - NULL, - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo popup_file_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("_Open File..."), - N_("Open a file"), - (gpointer) GtkFileOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_OPEN, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Open _Disc..."), - N_("Open Disc Media"), - (gpointer) GtkDiscOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_CDROM, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Network Stream..."), - N_("Select a network stream"), - (gpointer) GtkNetworkOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_REFRESH, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - GNOMEUIINFO_MENU_ABOUT_ITEM (GtkAboutShow, NULL), - GNOMEUIINFO_END -}; - -static GnomeUIInfo intf_popup_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("Play"), - NULL, - (gpointer) GtkControlPlay, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_FORWARD, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Pause"), - NULL, - (gpointer) GtkControlPause, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BOTTOM, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Stop"), - NULL, - (gpointer) GtkControlStop, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_STOP, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Back"), - NULL, - (gpointer) GtkControlBack, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_BACK, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Slow"), - NULL, - (gpointer) GtkControlSlow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER_STOP, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Fast"), - NULL, - (gpointer) GtkControlFast, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_TIMER, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Next"), - NULL, - (gpointer) GtkPlaylistNext, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Prev"), - NULL, - (gpointer) GtkPlaylistPrev, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Jump..."), - N_("Got directly so specified point"), - (gpointer) GtkJumpShow, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_JUMP_TO, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - { - GNOME_APP_UI_ITEM, N_("Program"), - N_("Switch program"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("_Navigation"), - N_("Navigate through titles and chapters"), - (gpointer) NULL, NULL, NULL, - GNOME_APP_PIXMAP_STOCK, GNOME_STOCK_MENU_SEARCH, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_SUBTREE, N_("Audio"), - NULL, - popup_audio_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_SUBTREE, N_("Video"), - NULL, - popup_video_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_SEPARATOR, - GNOMEUIINFO_MENU_FILE_TREE (popup_file_menu_uiinfo), - { - GNOME_APP_UI_ITEM, N_("Toggle _Interface"), - NULL, - (gpointer) GtkWindowToggle, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Playlist..."), - NULL, - (gpointer) GtkPlaylistShow, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_MENU_PREFERENCES_ITEM (GtkPreferencesShow, NULL), - GNOMEUIINFO_SEPARATOR, - GNOMEUIINFO_MENU_EXIT_ITEM (GnomeExit, NULL), - GNOMEUIINFO_END -}; - -GtkWidget* -create_intf_popup (void) -{ - GtkWidget *intf_popup; - - intf_popup = gtk_menu_new (); - gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup); - gnome_app_fill_menu (GTK_MENU_SHELL (intf_popup), intf_popup_uiinfo, - NULL, FALSE, 0); - - gtk_widget_ref (intf_popup_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play", - intf_popup_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause", - intf_popup_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop", - intf_popup_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back", - intf_popup_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (intf_popup_uiinfo[3].widget, FALSE); - - gtk_widget_ref (intf_popup_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow", - intf_popup_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast", - intf_popup_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[6].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator3", - intf_popup_uiinfo[6].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[7].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_next", - intf_popup_uiinfo[7].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[8].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_prev", - intf_popup_uiinfo[8].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[9].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump", - intf_popup_uiinfo[9].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[10].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator17", - intf_popup_uiinfo[10].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[11].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_program", - intf_popup_uiinfo[11].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (intf_popup_uiinfo[11].widget, FALSE); - - gtk_widget_ref (intf_popup_uiinfo[12].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation", - intf_popup_uiinfo[12].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (intf_popup_uiinfo[12].widget, FALSE); - - gtk_widget_ref (intf_popup_uiinfo[13].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio", - intf_popup_uiinfo[13].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_language", - popup_audio_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (popup_audio_menu_uiinfo[0].widget, FALSE); - - gtk_widget_ref (popup_audio_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator20", - popup_audio_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_up", - popup_audio_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_down", - popup_audio_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_mute", - popup_audio_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator21", - popup_audio_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[6].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_channels", - popup_audio_menu_uiinfo[6].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_audio_menu_uiinfo[7].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_device", - popup_audio_menu_uiinfo[7].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[14].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video", - intf_popup_uiinfo[14].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_video_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures", - popup_video_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_set_sensitive (popup_video_menu_uiinfo[0].widget, FALSE); - - gtk_widget_ref (popup_video_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator18", - popup_video_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_video_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen", - popup_video_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_video_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator19", - popup_video_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_video_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_deinterlace", - popup_video_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_video_menu_uiinfo[5].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video_device", - popup_video_menu_uiinfo[5].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[15].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator13", - intf_popup_uiinfo[15].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[16].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file", - intf_popup_uiinfo[16].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_file_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open", - popup_file_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_file_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc", - popup_file_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_file_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network", - popup_file_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_file_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator4", - popup_file_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (popup_file_menu_uiinfo[4].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about", - popup_file_menu_uiinfo[4].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[17].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_interface_toggle", - intf_popup_uiinfo[17].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[18].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist", - intf_popup_uiinfo[18].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[19].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences", - intf_popup_uiinfo[19].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[20].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator2", - intf_popup_uiinfo[20].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (intf_popup_uiinfo[21].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit", - intf_popup_uiinfo[21].widget, - (GtkDestroyNotify) gtk_widget_unref); - - return intf_popup; -} - -GtkWidget* -create_intf_about (void) -{ - const gchar *authors[] = { - "the VideoLAN team ", - "http://www.videolan.org/", - NULL - }; - GtkWidget *intf_about; - - intf_about = gnome_about_new ("VLC media player", VERSION, - _("(c) 1996-2004 the VideoLAN team"), - _("This is the VLC media player, a DVD, MPEG and DivX player. It can play MPEG and MPEG2 files from a file or from a network source."), - authors, - NULL, - NULL, - NULL); - gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about); - - return intf_about; -} - -GtkWidget* -create_intf_open (void) -{ - GtkWidget *intf_open; - GtkWidget *dialog_vbox5; - GtkWidget *open_vbox; - GtkWidget *frame10; - GtkWidget *hbox21; - GtkWidget *hbox22; - GtkWidget *label34; - GtkWidget *combo2; - GtkWidget *entry_open; - GtkWidget *label36; - GtkWidget *open_notebook; - GtkWidget *hbox20; - GtkWidget *combo1; - GtkWidget *entry_file; - GtkWidget *vbox13; - GtkWidget *open_browse; - GtkWidget *open_file; - GtkWidget *table5; - GtkWidget *label35; - GtkWidget *hbox24; - GSList *disc_group = NULL; - GtkWidget *disc_dvd; - GtkWidget *disc_vcd; - GtkWidget *disc_cdda; - GtkWidget *label19; - GtkWidget *disc_name; - GtkWidget *disc_chapter_label; - GtkWidget *disc_title_label; - GtkWidget *disc_dvd_use_menu; - GtkObject *disc_title_adj; - GtkWidget *disc_title; - GtkObject *disc_chapter_adj; - GtkWidget *disc_chapter; - GtkWidget *open_disc; - GtkWidget *table4; - GSList *table4_group = NULL; - GtkWidget *network_udp; - GtkWidget *network_multicast; - GtkWidget *network_http; - GtkWidget *network_udp_port_label; - GtkWidget *network_multicast_address_label; - GtkWidget *network_http_url_label; - GtkWidget *network_multicast_address_combo; - GtkWidget *network_multicast_address; - GtkWidget *network_multicast_port_label; - GtkObject *network_multicast_port_adj; - GtkWidget *network_multicast_port; - GtkWidget *network_http_url; - GtkObject *network_udp_port_adj; - GtkWidget *network_udp_port; - GtkWidget *open_net; - GtkWidget *table3; - GtkWidget *label24; - GtkWidget *label25; - GtkWidget *label26; - GtkObject *sat_freq_adj; - GtkWidget *sat_freq; - GtkWidget *label27; - GtkWidget *hbox23; - GSList *pol_group = NULL; - GtkWidget *sat_pol_vert; - GtkWidget *sat_pol_hor; - GtkObject *sat_srate_adj; - GtkWidget *sat_srate; - GtkWidget *sat_fec; - GList *sat_fec_items = NULL; - GtkWidget *combo_entry1; - GtkWidget *open_sat; - GtkWidget *show_subtitle; - GtkWidget *hbox_subtitle; - GtkWidget *combo3; - GtkWidget *entry_subtitle; - GtkWidget *vbox14; - GtkWidget *button4; - GtkWidget *label37; - GtkObject *subtitle_delay_adj; - GtkWidget *subtitle_delay; - GtkWidget *label38; - GtkObject *subtitle_fps_adj; - GtkWidget *subtitle_fps; - GtkWidget *hbox28; - GtkWidget *show_sout_settings; - GtkWidget *sout_settings; - GtkWidget *dialog_action_area5; - GtkWidget *button1; - GtkWidget *button3; - - intf_open = gnome_dialog_new (_("Open Stream"), NULL); - gtk_object_set_data (GTK_OBJECT (intf_open), "intf_open", intf_open); - gtk_window_set_modal (GTK_WINDOW (intf_open), TRUE); - gtk_window_set_policy (GTK_WINDOW (intf_open), FALSE, FALSE, FALSE); - gnome_dialog_close_hides (GNOME_DIALOG (intf_open), TRUE); - - dialog_vbox5 = GNOME_DIALOG (intf_open)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_vbox5", dialog_vbox5); - gtk_widget_show (dialog_vbox5); - - open_vbox = gtk_vbox_new (FALSE, 5); - gtk_widget_ref (open_vbox); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_vbox", open_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_vbox); - gtk_box_pack_start (GTK_BOX (dialog_vbox5), open_vbox, TRUE, TRUE, 0); - - frame10 = gtk_frame_new ("Media Resource Locator (MRL)"); - gtk_widget_ref (frame10); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "frame10", frame10, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame10); - gtk_box_pack_start (GTK_BOX (open_vbox), frame10, FALSE, TRUE, 0); - - hbox21 = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox21); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox21", hbox21, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox21); - gtk_container_add (GTK_CONTAINER (frame10), hbox21); - gtk_container_set_border_width (GTK_CONTAINER (hbox21), 5); - - hbox22 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox22); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox22", hbox22, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox22); - gtk_box_pack_start (GTK_BOX (hbox21), hbox22, FALSE, TRUE, 0); - - label34 = gtk_label_new (_("Open Target:")); - gtk_widget_ref (label34); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label34", label34, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label34); - gtk_box_pack_start (GTK_BOX (hbox22), label34, FALSE, FALSE, 0); - - combo2 = gtk_combo_new (); - gtk_widget_ref (combo2); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo2", combo2, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo2); - gtk_box_pack_start (GTK_BOX (hbox21), combo2, TRUE, TRUE, 0); - - entry_open = GTK_COMBO (combo2)->entry; - gtk_widget_ref (entry_open); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_open", entry_open, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_open); - - label36 = gtk_label_new (_("Alternatively, you can build an MRL using one of the following predefined targets:")); - gtk_widget_ref (label36); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label36", label36, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label36); - gtk_box_pack_start (GTK_BOX (open_vbox), label36, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label36), 0, 1); - - open_notebook = gtk_notebook_new (); - gtk_widget_ref (open_notebook); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_notebook", open_notebook, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_notebook); - gtk_box_pack_start (GTK_BOX (open_vbox), open_notebook, TRUE, TRUE, 0); - - hbox20 = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox20); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox20", hbox20, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox20); - gtk_container_add (GTK_CONTAINER (open_notebook), hbox20); - gtk_container_set_border_width (GTK_CONTAINER (hbox20), 5); - - combo1 = gtk_combo_new (); - gtk_widget_ref (combo1); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo1", combo1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo1); - gtk_box_pack_start (GTK_BOX (hbox20), combo1, FALSE, TRUE, 0); - - entry_file = GTK_COMBO (combo1)->entry; - gtk_widget_ref (entry_file); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_file", entry_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_file); - - vbox13 = gtk_vbox_new (TRUE, 0); - gtk_widget_ref (vbox13); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox13", vbox13, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox13); - gtk_box_pack_start (GTK_BOX (hbox20), vbox13, FALSE, FALSE, 0); - - open_browse = gtk_button_new_with_label (_("Browse...")); - gtk_widget_ref (open_browse); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_browse", open_browse, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_browse); - gtk_box_pack_start (GTK_BOX (vbox13), open_browse, FALSE, FALSE, 0); - - open_file = gtk_label_new (_("File")); - gtk_widget_ref (open_file); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_file", open_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_file); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 0), open_file); - - table5 = gtk_table_new (5, 2, FALSE); - gtk_widget_ref (table5); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table5", table5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table5); - gtk_container_add (GTK_CONTAINER (open_notebook), table5); - gtk_container_set_border_width (GTK_CONTAINER (table5), 5); - gtk_table_set_row_spacings (GTK_TABLE (table5), 5); - gtk_table_set_col_spacings (GTK_TABLE (table5), 5); - - label35 = gtk_label_new (_("Disc type")); - gtk_widget_ref (label35); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label35", label35, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label35); - gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label35), 0, 0.5); - - hbox24 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox24); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox24", hbox24, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox24); - gtk_table_attach (GTK_TABLE (table5), hbox24, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd)); - gtk_widget_ref (disc_dvd); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd", disc_dvd, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_dvd); - gtk_box_pack_start (GTK_BOX (hbox24), disc_dvd, FALSE, FALSE, 0); - - disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd)); - gtk_widget_ref (disc_vcd); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_vcd", disc_vcd, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_vcd); - gtk_box_pack_start (GTK_BOX (hbox24), disc_vcd, FALSE, FALSE, 0); - - disc_cdda = gtk_radio_button_new_with_label (disc_group, _("Audio CD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_cdda)); - gtk_widget_ref (disc_cdda); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_cdda", disc_cdda, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_cdda); - gtk_box_pack_start (GTK_BOX (hbox24), disc_cdda, FALSE, FALSE, 0); - - label19 = gtk_label_new (_("Device name")); - gtk_widget_ref (label19); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label19", label19, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label19); - gtk_table_attach (GTK_TABLE (table5), label19, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - disc_name = gtk_entry_new (); - gtk_widget_ref (disc_name); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_name", disc_name, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_name); - gtk_table_attach (GTK_TABLE (table5), disc_name, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_entry_set_text (GTK_ENTRY (disc_name), "/dev/dvd"); - - disc_chapter_label = gtk_label_new (_("Chapter")); - gtk_widget_ref (disc_chapter_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter_label", disc_chapter_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_chapter_label); - gtk_table_attach (GTK_TABLE (table5), disc_chapter_label, 0, 1, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (disc_chapter_label), 0, 0.5); - - disc_title_label = gtk_label_new (_("Title")); - gtk_widget_ref (disc_title_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title_label", disc_title_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_title_label); - gtk_table_attach (GTK_TABLE (table5), disc_title_label, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (disc_title_label), 0, 0.5); - - disc_dvd_use_menu = gtk_check_button_new_with_label (_("Use DVD menus")); - gtk_widget_ref (disc_dvd_use_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd_use_menu", disc_dvd_use_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_dvd_use_menu); - gtk_table_attach (GTK_TABLE (table5), disc_dvd_use_menu, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (disc_dvd_use_menu), TRUE); - - disc_title_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); - disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0); - gtk_widget_ref (disc_title); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title", disc_title, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_title); - gtk_table_attach (GTK_TABLE (table5), disc_title, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10); - disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0); - gtk_widget_ref (disc_chapter); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter", disc_chapter, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_chapter); - gtk_table_attach (GTK_TABLE (table5), disc_chapter, 1, 2, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - open_disc = gtk_label_new (_("Disc")); - gtk_widget_ref (open_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_disc", open_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_disc); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 1), open_disc); - - table4 = gtk_table_new (3, 6, FALSE); - gtk_widget_ref (table4); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table4", table4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table4); - gtk_container_add (GTK_CONTAINER (open_notebook), table4); - gtk_container_set_border_width (GTK_CONTAINER (table4), 5); - gtk_table_set_row_spacings (GTK_TABLE (table4), 5); - gtk_table_set_col_spacings (GTK_TABLE (table4), 5); - - network_udp = gtk_radio_button_new_with_label (table4_group, "UDP/RTP"); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_udp)); - gtk_widget_ref (network_udp); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp", network_udp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp); - gtk_table_attach (GTK_TABLE (table4), network_udp, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_multicast = gtk_radio_button_new_with_label (table4_group, _("UDP/RTP Multicast")); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_multicast)); - gtk_widget_ref (network_multicast); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast", network_multicast, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast); - gtk_table_attach (GTK_TABLE (table4), network_multicast, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_http = gtk_radio_button_new_with_label (table4_group, "HTTP/FTP/MMS"); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http)); - gtk_widget_ref (network_http); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http", network_http, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http); - gtk_table_attach (GTK_TABLE (table4), network_http, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_udp_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (network_udp_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port_label", network_udp_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp_port_label); - gtk_table_attach (GTK_TABLE (table4), network_udp_port_label, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (network_udp_port_label), 1, 0.5); - - network_multicast_address_label = gtk_label_new (_("Address")); - gtk_widget_ref (network_multicast_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_label", network_multicast_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address_label); - gtk_table_attach (GTK_TABLE (table4), network_multicast_address_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_address_label, FALSE); - gtk_label_set_justify (GTK_LABEL (network_multicast_address_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (network_multicast_address_label), 1, 0.5); - - network_http_url_label = gtk_label_new (_("URL")); - gtk_widget_ref (network_http_url_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url_label", network_http_url_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http_url_label); - gtk_table_attach (GTK_TABLE (table4), network_http_url_label, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_http_url_label, FALSE); - gtk_misc_set_alignment (GTK_MISC (network_http_url_label), 1, 0.5); - - network_multicast_address_combo = gtk_combo_new (); - gtk_widget_ref (network_multicast_address_combo); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_combo", network_multicast_address_combo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address_combo); - gtk_table_attach (GTK_TABLE (table4), network_multicast_address_combo, 2, 4, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_address_combo, FALSE); - - network_multicast_address = GTK_COMBO (network_multicast_address_combo)->entry; - gtk_widget_ref (network_multicast_address); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address", network_multicast_address, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address); - - network_multicast_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (network_multicast_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port_label", network_multicast_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_port_label); - gtk_table_attach (GTK_TABLE (table4), network_multicast_port_label, 4, 5, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_port_label, FALSE); - gtk_misc_set_alignment (GTK_MISC (network_multicast_port_label), 1, 0.5); - - network_multicast_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - network_multicast_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_multicast_port_adj), 1, 0); - gtk_widget_ref (network_multicast_port); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port", network_multicast_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_port); - gtk_table_attach (GTK_TABLE (table4), network_multicast_port, 5, 6, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_usize (network_multicast_port, 75, -2); - gtk_widget_set_sensitive (network_multicast_port, FALSE); - - network_http_url = gtk_entry_new (); - gtk_widget_ref (network_http_url); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url", network_http_url, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http_url); - gtk_table_attach (GTK_TABLE (table4), network_http_url, 2, 6, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_http_url, FALSE); - - network_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - network_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_udp_port_adj), 1, 0); - gtk_widget_ref (network_udp_port); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port", network_udp_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp_port); - gtk_table_attach (GTK_TABLE (table4), network_udp_port, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_usize (network_udp_port, 1, -2); - - open_net = gtk_label_new (_("Network")); - gtk_widget_ref (open_net); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_net", open_net, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_net); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 2), open_net); - - table3 = gtk_table_new (4, 2, FALSE); - gtk_widget_ref (table3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table3", table3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table3); - gtk_container_add (GTK_CONTAINER (open_notebook), table3); - gtk_container_set_border_width (GTK_CONTAINER (table3), 5); - gtk_table_set_row_spacings (GTK_TABLE (table3), 5); - gtk_table_set_col_spacings (GTK_TABLE (table3), 5); - - label24 = gtk_label_new (_("Symbol Rate")); - gtk_widget_ref (label24); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label24", label24, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label24); - gtk_table_attach (GTK_TABLE (table3), label24, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); - - label25 = gtk_label_new (_("Frequency")); - gtk_widget_ref (label25); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label25", label25, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label25); - gtk_table_attach (GTK_TABLE (table3), label25, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); - - label26 = gtk_label_new (_("Polarization")); - gtk_widget_ref (label26); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label26", label26, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label26); - gtk_table_attach (GTK_TABLE (table3), label26, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5); - - sat_freq_adj = gtk_adjustment_new (11954, 10000, 12999, 1, 10, 10); - sat_freq = gtk_spin_button_new (GTK_ADJUSTMENT (sat_freq_adj), 1, 0); - gtk_widget_ref (sat_freq); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_freq", sat_freq, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_freq); - gtk_table_attach (GTK_TABLE (table3), sat_freq, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label27 = gtk_label_new (_("FEC")); - gtk_widget_ref (label27); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label27", label27, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label27); - gtk_table_attach (GTK_TABLE (table3), label27, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5); - - hbox23 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox23); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox23", hbox23, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox23); - gtk_table_attach (GTK_TABLE (table3), hbox23, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - sat_pol_vert = gtk_radio_button_new_with_label (pol_group, _("Vertical")); - pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_vert)); - gtk_widget_ref (sat_pol_vert); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_vert", sat_pol_vert, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_pol_vert); - gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_vert, FALSE, FALSE, 0); - - sat_pol_hor = gtk_radio_button_new_with_label (pol_group, _("Horizontal")); - pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_hor)); - gtk_widget_ref (sat_pol_hor); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_hor", sat_pol_hor, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_pol_hor); - gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_hor, FALSE, FALSE, 0); - - sat_srate_adj = gtk_adjustment_new (27500, 1000, 30000, 1, 10, 10); - sat_srate = gtk_spin_button_new (GTK_ADJUSTMENT (sat_srate_adj), 1, 0); - gtk_widget_ref (sat_srate); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_srate", sat_srate, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_srate); - gtk_table_attach (GTK_TABLE (table3), sat_srate, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sat_fec = gtk_combo_new (); - gtk_widget_ref (sat_fec); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_fec", sat_fec, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_fec); - gtk_table_attach (GTK_TABLE (table3), sat_fec, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "1/2"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "2/3"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "3/4"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "4/5"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "5/6"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "7/8"); - gtk_combo_set_popdown_strings (GTK_COMBO (sat_fec), sat_fec_items); - g_list_free (sat_fec_items); - - combo_entry1 = GTK_COMBO (sat_fec)->entry; - gtk_widget_ref (combo_entry1); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo_entry1", combo_entry1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo_entry1); - gtk_entry_set_text (GTK_ENTRY (combo_entry1), "3/4"); - - open_sat = gtk_label_new (_("Satellite")); - gtk_widget_ref (open_sat); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_sat", open_sat, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_sat); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 3), open_sat); - - show_subtitle = gtk_check_button_new_with_label (_("Subtitle")); - gtk_widget_ref (show_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_subtitle", show_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (show_subtitle); - gtk_box_pack_start (GTK_BOX (dialog_vbox5), show_subtitle, FALSE, FALSE, 0); - - hbox_subtitle = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox_subtitle", hbox_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox_subtitle); - gtk_box_pack_start (GTK_BOX (dialog_vbox5), hbox_subtitle, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox_subtitle), 5); - - combo3 = gtk_combo_new (); - gtk_widget_ref (combo3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo3", combo3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo3); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), combo3, FALSE, TRUE, 0); - - entry_subtitle = GTK_COMBO (combo3)->entry; - gtk_widget_ref (entry_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_subtitle", entry_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_subtitle); - - vbox14 = gtk_vbox_new (TRUE, 0); - gtk_widget_ref (vbox14); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox14", vbox14, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox14); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), vbox14, FALSE, FALSE, 0); - - button4 = gtk_button_new_with_label (_("Browse...")); - gtk_widget_ref (button4); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "button4", button4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button4); - gtk_box_pack_start (GTK_BOX (vbox14), button4, FALSE, FALSE, 0); - - label37 = gtk_label_new (_("delay")); - gtk_widget_ref (label37); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label37", label37, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label37); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), label37, TRUE, TRUE, 0); - - subtitle_delay_adj = gtk_adjustment_new (0, -1000, 1000, 0.1, 10, 10); - subtitle_delay = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_delay_adj), 1, 1); - gtk_widget_ref (subtitle_delay); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_delay", subtitle_delay, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (subtitle_delay); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_delay, TRUE, TRUE, 0); - - label38 = gtk_label_new (_("fps")); - gtk_widget_ref (label38); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label38", label38, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label38); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), label38, TRUE, TRUE, 0); - - subtitle_fps_adj = gtk_adjustment_new (0, 0, 100, 0.1, 10, 10); - subtitle_fps = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_fps_adj), 1, 1); - gtk_widget_ref (subtitle_fps); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_fps", subtitle_fps, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (subtitle_fps); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_fps, TRUE, TRUE, 0); - - hbox28 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox28); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox28", hbox28, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox28); - gtk_box_pack_start (GTK_BOX (dialog_vbox5), hbox28, TRUE, TRUE, 2); - - show_sout_settings = gtk_check_button_new_with_label (_("stream output")); - gtk_widget_ref (show_sout_settings); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_sout_settings", show_sout_settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (show_sout_settings); - gtk_box_pack_start (GTK_BOX (hbox28), show_sout_settings, FALSE, FALSE, 0); - - sout_settings = gtk_button_new_with_label (_("Settings...")); - gtk_widget_ref (sout_settings); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sout_settings", sout_settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_settings); - gtk_box_pack_start (GTK_BOX (hbox28), sout_settings, FALSE, FALSE, 20); - - dialog_action_area5 = GNOME_DIALOG (intf_open)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_action_area5", dialog_action_area5); - gtk_widget_show (dialog_action_area5); - gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area5), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area5), 8); - - gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_OK); - button1 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data); - gtk_widget_ref (button1); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "button1", button1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button1); - GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_open), GNOME_STOCK_BUTTON_CANCEL); - button3 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_open)->buttons)->data); - gtk_widget_ref (button3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "button3", button3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button3); - GTK_WIDGET_SET_FLAGS (button3, GTK_CAN_DEFAULT); - - gtk_signal_connect_after (GTK_OBJECT (open_notebook), "switch_page", - GTK_SIGNAL_FUNC (GtkOpenNotebookChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (entry_file), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (open_browse), "clicked", - GTK_SIGNAL_FUNC (GtkFileShow), - "entry_file"); - gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenDvd), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenVcd), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_cdda), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenCDDA), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_name), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_dvd_use_menu), "toggled", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_title), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_chapter), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_udp), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenUDP), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenMulticast), - NULL); - gtk_signal_connect (GTK_OBJECT (network_http), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenHTTP), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast_address), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast_port), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_http_url), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_udp_port), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_freq), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_pol_vert), "toggled", - GTK_SIGNAL_FUNC (GtkSatOpenToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_pol_hor), "toggled", - GTK_SIGNAL_FUNC (GtkSatOpenToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_srate), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (combo_entry1), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (show_subtitle), "clicked", - GTK_SIGNAL_FUNC (GtkOpenSubtitleShow), - NULL); - gtk_signal_connect (GTK_OBJECT (entry_subtitle), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (button4), "clicked", - GTK_SIGNAL_FUNC (GtkFileShow), - "entry_subtitle"); - gtk_signal_connect (GTK_OBJECT (subtitle_delay), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (subtitle_fps), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (show_sout_settings), "clicked", - GTK_SIGNAL_FUNC (GtkOpenSoutShow), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_settings), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettings), - NULL); - gtk_signal_connect (GTK_OBJECT (button1), "clicked", - GTK_SIGNAL_FUNC (GtkOpenOk), - NULL); - gtk_signal_connect (GTK_OBJECT (button3), "clicked", - GTK_SIGNAL_FUNC (GtkOpenCancel), - NULL); - - return intf_open; -} - -GtkWidget* -create_intf_file (void) -{ - GtkWidget *intf_file; - GtkWidget *file_ok; - GtkWidget *file_cancel; - - intf_file = gtk_file_selection_new (_("Open File")); - gtk_object_set_data (GTK_OBJECT (intf_file), "intf_file", intf_file); - gtk_container_set_border_width (GTK_CONTAINER (intf_file), 10); - gtk_window_set_modal (GTK_WINDOW (intf_file), TRUE); - gtk_file_selection_hide_fileop_buttons (GTK_FILE_SELECTION (intf_file)); - - file_ok = GTK_FILE_SELECTION (intf_file)->ok_button; - gtk_object_set_data (GTK_OBJECT (intf_file), "file_ok", file_ok); - gtk_widget_show (file_ok); - GTK_WIDGET_SET_FLAGS (file_ok, GTK_CAN_DEFAULT); - - file_cancel = GTK_FILE_SELECTION (intf_file)->cancel_button; - gtk_object_set_data (GTK_OBJECT (intf_file), "file_cancel", file_cancel); - gtk_widget_show (file_cancel); - GTK_WIDGET_SET_FLAGS (file_cancel, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (file_ok), "clicked", - GTK_SIGNAL_FUNC (GtkFileOk), - NULL); - gtk_signal_connect (GTK_OBJECT (file_cancel), "clicked", - GTK_SIGNAL_FUNC (GtkFileCancel), - NULL); - - return intf_file; -} - -GtkWidget* -create_intf_modules (void) -{ - GtkWidget *intf_modules; - GtkWidget *dialog_vbox1; - GtkWidget *label12; - GtkWidget *dialog_action_area1; - GtkWidget *modules_ok; - GtkWidget *modules_apply; - GtkWidget *modules_cancel; - - intf_modules = gnome_dialog_new (_("Modules"), NULL); - gtk_object_set_data (GTK_OBJECT (intf_modules), "intf_modules", intf_modules); - gtk_window_set_policy (GTK_WINDOW (intf_modules), FALSE, FALSE, FALSE); - - dialog_vbox1 = GNOME_DIALOG (intf_modules)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_vbox1", dialog_vbox1); - gtk_widget_show (dialog_vbox1); - - label12 = gtk_label_new (_("Sorry, the module manager isn't functional yet. Please retry in a later version.")); - gtk_widget_ref (label12); - gtk_object_set_data_full (GTK_OBJECT (intf_modules), "label12", label12, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label12); - gtk_box_pack_start (GTK_BOX (dialog_vbox1), label12, FALSE, FALSE, 0); - - dialog_action_area1 = GNOME_DIALOG (intf_modules)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_modules), "dialog_action_area1", dialog_action_area1); - gtk_widget_show (dialog_action_area1); - gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area1), 8); - - gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_OK); - modules_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data); - gtk_widget_ref (modules_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_ok", modules_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (modules_ok); - GTK_WIDGET_SET_FLAGS (modules_ok, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_APPLY); - modules_apply = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data); - gtk_widget_ref (modules_apply); - gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_apply", modules_apply, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (modules_apply); - GTK_WIDGET_SET_FLAGS (modules_apply, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_modules), GNOME_STOCK_BUTTON_CANCEL); - modules_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_modules)->buttons)->data); - gtk_widget_ref (modules_cancel); - gtk_object_set_data_full (GTK_OBJECT (intf_modules), "modules_cancel", modules_cancel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (modules_cancel); - GTK_WIDGET_SET_FLAGS (modules_cancel, GTK_CAN_DEFAULT); - - return intf_modules; -} - -static GnomeUIInfo playlist_add_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("Disc"), - NULL, - (gpointer) GtkDiscOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("File"), - NULL, - (gpointer) GtkFileOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Network"), - NULL, - (gpointer) GtkNetworkOpenShow, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("URL"), - NULL, - (gpointer) GtkPlaylistAddUrl, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo playlist_delete_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("All"), - NULL, - (gpointer) GtkPlaylistDeleteAll, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Item"), - NULL, - (gpointer) GtkPlaylistDeleteSelected, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo playlist_selection_menu_uiinfo[] = -{ - { - GNOME_APP_UI_ITEM, N_("Crop"), - NULL, - (gpointer) GtkPlaylistCrop, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Invert"), - NULL, - (gpointer) GtkPlaylistInvert, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_ITEM, N_("Select"), - NULL, - (gpointer) GtkPlaylistSelect, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -static GnomeUIInfo playlist_menubar_uiinfo[] = -{ - { - GNOME_APP_UI_SUBTREE, N_("Add"), - NULL, - playlist_add_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_SUBTREE, N_("Delete"), - NULL, - playlist_delete_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - { - GNOME_APP_UI_SUBTREE, N_("Selection"), - NULL, - playlist_selection_menu_uiinfo, NULL, NULL, - GNOME_APP_PIXMAP_NONE, NULL, - 0, (GdkModifierType) 0, NULL - }, - GNOMEUIINFO_END -}; - -GtkWidget* -create_intf_playlist (void) -{ - GtkWidget *intf_playlist; - GtkWidget *playlist_vbox; - GtkWidget *playlist_scrolledwindow; - GtkWidget *playlist_viewport; - GtkWidget *playlist_frame; - GtkWidget *playlist_clist; - GtkWidget *playlist_label_url; - GtkWidget *playlist_label_duration; - GtkWidget *playlist_menubar; - GtkWidget *playlist_action; - GtkWidget *playlist_ok; - GtkWidget *playlist_cancel; - - intf_playlist = gnome_dialog_new (_("Playlist"), NULL); - gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist); - gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300); - gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE); - gnome_dialog_close_hides (GNOME_DIALOG (intf_playlist), TRUE); - - playlist_vbox = GNOME_DIALOG (intf_playlist)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_vbox", playlist_vbox); - gtk_widget_show (playlist_vbox); - - playlist_scrolledwindow = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (playlist_scrolledwindow); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_scrolledwindow", playlist_scrolledwindow, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_scrolledwindow); - gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_scrolledwindow, TRUE, TRUE, 0); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (playlist_scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - playlist_viewport = gtk_viewport_new (NULL, NULL); - gtk_widget_ref (playlist_viewport); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_viewport", playlist_viewport, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_viewport); - gtk_container_add (GTK_CONTAINER (playlist_scrolledwindow), playlist_viewport); - - playlist_frame = gtk_frame_new (_("Playlist")); - gtk_widget_ref (playlist_frame); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_frame", playlist_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_frame); - gtk_container_add (GTK_CONTAINER (playlist_viewport), playlist_frame); - gtk_container_set_border_width (GTK_CONTAINER (playlist_frame), 4); - gtk_frame_set_label_align (GTK_FRAME (playlist_frame), 0.05, 0.5); - - playlist_clist = gtk_clist_new (2); - gtk_widget_ref (playlist_clist); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_clist); - gtk_container_add (GTK_CONTAINER (playlist_frame), playlist_clist); - gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 287); - gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 70); - gtk_clist_set_selection_mode (GTK_CLIST (playlist_clist), GTK_SELECTION_EXTENDED); - gtk_clist_column_titles_show (GTK_CLIST (playlist_clist)); - - playlist_label_url = gtk_label_new (_("URL")); - gtk_widget_ref (playlist_label_url); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_url", playlist_label_url, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_label_url); - gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, playlist_label_url); - - playlist_label_duration = gtk_label_new (_("Duration")); - gtk_widget_ref (playlist_label_duration); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_label_duration", playlist_label_duration, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_label_duration); - gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, playlist_label_duration); - - playlist_menubar = gtk_menu_bar_new (); - gtk_widget_ref (playlist_menubar); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_menubar); - gtk_box_pack_start (GTK_BOX (playlist_vbox), playlist_menubar, FALSE, FALSE, 0); - gnome_app_fill_menu (GTK_MENU_SHELL (playlist_menubar), playlist_menubar_uiinfo, - NULL, FALSE, 0); - - gtk_widget_ref (playlist_menubar_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add", - playlist_menubar_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_add_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc", - playlist_add_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_add_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file", - playlist_add_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_add_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network", - playlist_add_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_add_menu_uiinfo[3].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url", - playlist_add_menu_uiinfo[3].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_menubar_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete", - playlist_menubar_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_delete_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all", - playlist_delete_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_delete_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_item", - playlist_delete_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_menubar_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection", - playlist_menubar_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_selection_menu_uiinfo[0].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop", - playlist_selection_menu_uiinfo[0].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_selection_menu_uiinfo[1].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert", - playlist_selection_menu_uiinfo[1].widget, - (GtkDestroyNotify) gtk_widget_unref); - - gtk_widget_ref (playlist_selection_menu_uiinfo[2].widget); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select", - playlist_selection_menu_uiinfo[2].widget, - (GtkDestroyNotify) gtk_widget_unref); - - playlist_action = GNOME_DIALOG (intf_playlist)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_playlist), "playlist_action", playlist_action); - gtk_widget_show (playlist_action); - gtk_button_box_set_layout (GTK_BUTTON_BOX (playlist_action), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (playlist_action), 8); - gtk_button_box_set_child_size (GTK_BUTTON_BOX (playlist_action), 100, 38); - - gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_OK); - playlist_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data); - gtk_widget_ref (playlist_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok", playlist_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_ok); - GTK_WIDGET_SET_FLAGS (playlist_ok, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_playlist), GNOME_STOCK_BUTTON_CANCEL); - playlist_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_playlist)->buttons)->data); - gtk_widget_ref (playlist_cancel); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel", playlist_cancel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_cancel); - GTK_WIDGET_SET_FLAGS (playlist_cancel, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "event", - GTK_SIGNAL_FUNC (GtkPlaylistEvent), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received", - GTK_SIGNAL_FUNC (GtkPlaylistDragData), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion", - GTK_SIGNAL_FUNC (GtkPlaylistDragMotion), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_ok), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistOk), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_cancel), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistCancel), - NULL); - - return intf_playlist; -} - -GtkWidget* -create_intf_jump (void) -{ - GtkWidget *intf_jump; - GtkWidget *jump_vbox; - GtkWidget *jump_frame; - GtkWidget *jump_box; - GtkWidget *jump_label3; - GtkObject *jump_second_spinbutton_adj; - GtkWidget *jump_second_spinbutton; - GtkWidget *jump_label1; - GtkObject *jump_minute_spinbutton_adj; - GtkWidget *jump_minute_spinbutton; - GtkWidget *jump_label2; - GtkObject *jump_hour_spinbutton_adj; - GtkWidget *jump_hour_spinbutton; - GtkWidget *jump_action; - GtkWidget *jump_ok; - GtkWidget *jump_cancel; - - intf_jump = gnome_dialog_new (NULL, NULL); - gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump); - gtk_window_set_policy (GTK_WINDOW (intf_jump), FALSE, FALSE, FALSE); - - jump_vbox = GNOME_DIALOG (intf_jump)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_vbox", jump_vbox); - gtk_widget_show (jump_vbox); - - jump_frame = gtk_frame_new (_("Jump to: ")); - gtk_widget_ref (jump_frame); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_frame); - gtk_box_pack_start (GTK_BOX (jump_vbox), jump_frame, FALSE, FALSE, 0); - gtk_container_set_border_width (GTK_CONTAINER (jump_frame), 5); - gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5); - - jump_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (jump_box); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_box", jump_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_box); - gtk_container_add (GTK_CONTAINER (jump_frame), jump_box); - gtk_container_set_border_width (GTK_CONTAINER (jump_box), 5); - - jump_label3 = gtk_label_new ("s."); - gtk_widget_ref (jump_label3); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label3", jump_label3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_label3); - gtk_box_pack_end (GTK_BOX (jump_box), jump_label3, FALSE, FALSE, 0); - - jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 100, 1, 10, 10); - jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_second_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_second_spinbutton); - gtk_box_pack_end (GTK_BOX (jump_box), jump_second_spinbutton, FALSE, FALSE, 5); - - jump_label1 = gtk_label_new ("m:"); - gtk_widget_ref (jump_label1); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label1", jump_label1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_label1); - gtk_box_pack_end (GTK_BOX (jump_box), jump_label1, FALSE, FALSE, 5); - - jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 59, 1, 10, 10); - jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_minute_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_minute_spinbutton); - gtk_box_pack_end (GTK_BOX (jump_box), jump_minute_spinbutton, FALSE, FALSE, 5); - - jump_label2 = gtk_label_new ("h:"); - gtk_widget_ref (jump_label2); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_label2", jump_label2, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_label2); - gtk_box_pack_end (GTK_BOX (jump_box), jump_label2, FALSE, FALSE, 5); - - jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 10, 1, 10, 10); - jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_hour_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_hour_spinbutton); - gtk_box_pack_end (GTK_BOX (jump_box), jump_hour_spinbutton, FALSE, FALSE, 5); - - jump_action = GNOME_DIALOG (intf_jump)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_jump), "jump_action", jump_action); - gtk_widget_show (jump_action); - gtk_button_box_set_layout (GTK_BUTTON_BOX (jump_action), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (jump_action), 8); - - gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_OK); - jump_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data); - gtk_widget_ref (jump_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok", jump_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_ok); - GTK_WIDGET_SET_FLAGS (jump_ok, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_jump), GNOME_STOCK_BUTTON_CANCEL); - jump_cancel = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_jump)->buttons)->data); - gtk_widget_ref (jump_cancel); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel", jump_cancel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_cancel); - GTK_WIDGET_SET_FLAGS (jump_cancel, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (jump_ok), "clicked", - GTK_SIGNAL_FUNC (GtkJumpOk), - NULL); - gtk_signal_connect (GTK_OBJECT (jump_cancel), "clicked", - GTK_SIGNAL_FUNC (GtkJumpCancel), - NULL); - - return intf_jump; -} - -GtkWidget* -create_intf_messages (void) -{ - GtkWidget *intf_messages; - GtkWidget *dialog_vbox6; - GtkWidget *scrolledwindow1; - GtkWidget *messages_textbox; - GtkWidget *dialog_action_area6; - GtkWidget *messages_ok; - - intf_messages = gnome_dialog_new (_("Messages"), NULL); - gtk_object_set_data (GTK_OBJECT (intf_messages), "intf_messages", intf_messages); - gtk_window_set_policy (GTK_WINDOW (intf_messages), TRUE, TRUE, FALSE); - gnome_dialog_close_hides (GNOME_DIALOG (intf_messages), TRUE); - - dialog_vbox6 = GNOME_DIALOG (intf_messages)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_vbox6", dialog_vbox6); - gtk_widget_show (dialog_vbox6); - - scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow1); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "scrolledwindow1", scrolledwindow1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (scrolledwindow1); - gtk_box_pack_start (GTK_BOX (dialog_vbox6), scrolledwindow1, TRUE, TRUE, 0); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - messages_textbox = gtk_text_new (NULL, NULL); - gtk_widget_ref (messages_textbox); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_textbox", messages_textbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (messages_textbox); - gtk_container_add (GTK_CONTAINER (scrolledwindow1), messages_textbox); - gtk_widget_set_usize (messages_textbox, 600, 400); - - dialog_action_area6 = GNOME_DIALOG (intf_messages)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_action_area6", dialog_action_area6); - gtk_widget_show (dialog_action_area6); - gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area6), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area6), 8); - - gnome_dialog_append_button (GNOME_DIALOG (intf_messages), GNOME_STOCK_BUTTON_OK); - messages_ok = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_messages)->buttons)->data); - gtk_widget_ref (messages_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_ok", messages_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (messages_ok); - GTK_WIDGET_SET_FLAGS (messages_ok, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (intf_messages), "destroy", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (intf_messages), "delete_event", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (messages_ok), "clicked", - GTK_SIGNAL_FUNC (GtkMessagesOk), - NULL); - - return intf_messages; -} - -GtkWidget* -create_intf_sout (void) -{ - GtkWidget *intf_sout; - GtkWidget *dialog_vbox7; - GtkWidget *vbox16; - GtkWidget *frame11; - GtkWidget *hbox26; - GtkWidget *label39; - GtkWidget *combo4; - GtkWidget *sout_entry_target; - GtkWidget *frame12; - GtkWidget *table6; - GSList *sout_access_group = NULL; - GtkWidget *sout_access_file; - GtkWidget *sout_access_udp; - GtkWidget *sout_access_rtp; - GtkWidget *sout_file_path_label; - GtkWidget *sout_udp_address_label; - GtkWidget *sout_udp_address_combo; - GtkWidget *sout_udp_address; - GtkWidget *sout_udp_port_label; - GtkObject *sout_udp_port_adj; - GtkWidget *sout_udp_port; - GtkWidget *combo5; - GtkWidget *sout_file_path; - GtkWidget *hbox27; - GSList *sout_mux_group = NULL; - GtkWidget *sout_mux_ts; - GtkWidget *sout_mux_ps; - GtkWidget *sout_mux_avi; - GtkWidget *dialog_action_area7; - GtkWidget *button7; - GtkWidget *button9; - - intf_sout = gnome_dialog_new (NULL, NULL); - gtk_object_set_data (GTK_OBJECT (intf_sout), "intf_sout", intf_sout); - gtk_container_set_border_width (GTK_CONTAINER (intf_sout), 5); - gtk_window_set_modal (GTK_WINDOW (intf_sout), TRUE); - gtk_window_set_policy (GTK_WINDOW (intf_sout), FALSE, FALSE, FALSE); - - dialog_vbox7 = GNOME_DIALOG (intf_sout)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_sout), "dialog_vbox7", dialog_vbox7); - gtk_widget_show (dialog_vbox7); - - vbox16 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox16); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "vbox16", vbox16, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox16); - gtk_box_pack_start (GTK_BOX (dialog_vbox7), vbox16, TRUE, TRUE, 0); - - frame11 = gtk_frame_new (_("stream output (MRL)")); - gtk_widget_ref (frame11); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame11", frame11, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame11); - gtk_box_pack_start (GTK_BOX (vbox16), frame11, FALSE, TRUE, 0); - - hbox26 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox26); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox26", hbox26, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox26); - gtk_container_add (GTK_CONTAINER (frame11), hbox26); - gtk_container_set_border_width (GTK_CONTAINER (hbox26), 5); - - label39 = gtk_label_new (_("Destination Target: ")); - gtk_widget_ref (label39); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "label39", label39, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label39); - gtk_box_pack_start (GTK_BOX (hbox26), label39, FALSE, FALSE, 0); - - combo4 = gtk_combo_new (); - gtk_widget_ref (combo4); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo4", combo4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo4); - gtk_box_pack_start (GTK_BOX (hbox26), combo4, TRUE, TRUE, 0); - - sout_entry_target = GTK_COMBO (combo4)->entry; - gtk_widget_ref (sout_entry_target); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_entry_target", sout_entry_target, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_entry_target); - - frame12 = gtk_frame_new (NULL); - gtk_widget_ref (frame12); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame12", frame12, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame12); - gtk_box_pack_start (GTK_BOX (vbox16), frame12, TRUE, TRUE, 0); - - table6 = gtk_table_new (3, 5, FALSE); - gtk_widget_ref (table6); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "table6", table6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table6); - gtk_container_add (GTK_CONTAINER (frame12), table6); - gtk_table_set_row_spacings (GTK_TABLE (table6), 5); - gtk_table_set_col_spacings (GTK_TABLE (table6), 5); - - sout_access_file = gtk_radio_button_new_with_label (sout_access_group, _("File")); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_file)); - gtk_widget_ref (sout_access_file); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_file", sout_access_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_file); - gtk_table_attach (GTK_TABLE (table6), sout_access_file, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_access_udp = gtk_radio_button_new_with_label (sout_access_group, _("UDP")); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_udp)); - gtk_widget_ref (sout_access_udp); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_udp", sout_access_udp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_udp); - gtk_table_attach (GTK_TABLE (table6), sout_access_udp, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_access_rtp = gtk_radio_button_new_with_label (sout_access_group, _("RTP")); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_rtp)); - gtk_widget_ref (sout_access_rtp); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_rtp", sout_access_rtp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_rtp); - gtk_table_attach (GTK_TABLE (table6), sout_access_rtp, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_file_path_label = gtk_label_new (_("Path:")); - gtk_widget_ref (sout_file_path_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path_label", sout_file_path_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_file_path_label); - gtk_table_attach (GTK_TABLE (table6), sout_file_path_label, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_file_path_label), 0, 0.5); - - sout_udp_address_label = gtk_label_new (_("Address:")); - gtk_widget_ref (sout_udp_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_label", sout_udp_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address_label); - gtk_table_attach (GTK_TABLE (table6), sout_udp_address_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_udp_address_label), 0, 0.5); - - sout_udp_address_combo = gtk_combo_new (); - gtk_widget_ref (sout_udp_address_combo); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_combo", sout_udp_address_combo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address_combo); - gtk_table_attach (GTK_TABLE (table6), sout_udp_address_combo, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_udp_address = GTK_COMBO (sout_udp_address_combo)->entry; - gtk_widget_ref (sout_udp_address); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address", sout_udp_address, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address); - - sout_udp_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (sout_udp_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port_label", sout_udp_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_port_label); - gtk_table_attach (GTK_TABLE (table6), sout_udp_port_label, 3, 4, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_udp_port_label), 0, 0.5); - - sout_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - sout_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (sout_udp_port_adj), 1, 0); - gtk_widget_ref (sout_udp_port); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port", sout_udp_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_port); - gtk_table_attach (GTK_TABLE (table6), sout_udp_port, 4, 5, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - combo5 = gtk_combo_new (); - gtk_widget_ref (combo5); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo5", combo5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo5); - gtk_table_attach (GTK_TABLE (table6), combo5, 2, 5, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_file_path = GTK_COMBO (combo5)->entry; - gtk_widget_ref (sout_file_path); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path", sout_file_path, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_file_path); - - hbox27 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox27); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox27", hbox27, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox27); - gtk_table_attach (GTK_TABLE (table6), hbox27, 4, 5, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - sout_mux_ts = gtk_radio_button_new_with_label (sout_mux_group, _("TS")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ts)); - gtk_widget_ref (sout_mux_ts); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ts", sout_mux_ts, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_ts); - gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_ts, FALSE, FALSE, 0); - - sout_mux_ps = gtk_radio_button_new_with_label (sout_mux_group, _("PS")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ps)); - gtk_widget_ref (sout_mux_ps); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ps", sout_mux_ps, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_ps); - gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_ps, FALSE, FALSE, 0); - - sout_mux_avi = gtk_radio_button_new_with_label (sout_mux_group, _("AVI")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_avi)); - gtk_widget_ref (sout_mux_avi); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_avi", sout_mux_avi, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_avi); - gtk_box_pack_start (GTK_BOX (hbox27), sout_mux_avi, FALSE, FALSE, 0); - - dialog_action_area7 = GNOME_DIALOG (intf_sout)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_sout), "dialog_action_area7", dialog_action_area7); - gtk_widget_show (dialog_action_area7); - gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area7), GTK_BUTTONBOX_END); - gtk_button_box_set_spacing (GTK_BUTTON_BOX (dialog_action_area7), 8); - - gnome_dialog_append_button (GNOME_DIALOG (intf_sout), GNOME_STOCK_BUTTON_OK); - button7 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_sout)->buttons)->data); - gtk_widget_ref (button7); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button7", button7, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button7); - GTK_WIDGET_SET_FLAGS (button7, GTK_CAN_DEFAULT); - - gnome_dialog_append_button (GNOME_DIALOG (intf_sout), GNOME_STOCK_BUTTON_CANCEL); - button9 = GTK_WIDGET (g_list_last (GNOME_DIALOG (intf_sout)->buttons)->data); - gtk_widget_ref (button9); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button9", button9, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button9); - GTK_WIDGET_SET_FLAGS (button9, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (sout_access_file), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessFile), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_access_udp), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_access_rtp), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_udp_address), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_udp_port), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_file_path), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_ts), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_ps), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_avi), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (button7), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettingsOk), - NULL); - gtk_signal_connect (GTK_OBJECT (button9), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettingsCancel), - NULL); - - return intf_sout; -} - diff --git a/modules/gui/gtk/gnome_interface.h b/modules/gui/gtk/gnome_interface.h deleted file mode 100644 index 33a892b9fa..0000000000 --- a/modules/gui/gtk/gnome_interface.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_intf_window (void); -GtkWidget* create_intf_popup (void); -GtkWidget* create_intf_about (void); -GtkWidget* create_intf_open (void); -GtkWidget* create_intf_file (void); -GtkWidget* create_intf_modules (void); -GtkWidget* create_intf_playlist (void); -GtkWidget* create_intf_jump (void); -GtkWidget* create_intf_messages (void); -GtkWidget* create_intf_sout (void); diff --git a/modules/gui/gtk/gnome_support.c b/modules/gui/gtk/gnome_support.c deleted file mode 100644 index 1a4374daa9..0000000000 --- a/modules/gui/gtk/gnome_support.c +++ /dev/null @@ -1,148 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include - -#include - -#include "gnome_support.h" - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* create_dummy_pixmap (GtkWidget *widget, - gboolean gnome_pixmap); - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -/* This is a dummy pixmap we use when a pixmap can't be found. */ -static char *dummy_pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"1 1 1 1", -" c None", -/* pixels */ -" ", -" " -}; - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* -create_dummy_pixmap (GtkWidget *widget, - gboolean gnome_pixmap) -{ - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - GtkWidget *pixmap; - - if (gnome_pixmap) - { - return gnome_pixmap_new_from_xpm_d (dummy_pixmap_xpm); - } - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, - NULL, dummy_pixmap_xpm); - if (gdkpixmap == NULL) - g_error ("Couldn't create replacement pixmap."); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename, - gboolean gnome_pixmap) -{ - GtkWidget *pixmap; - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - gchar *pathname; - - if (!filename || !filename[0]) - return create_dummy_pixmap (widget, gnome_pixmap); - - pathname = gnome_pixmap_file (filename); - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return create_dummy_pixmap (widget, gnome_pixmap); - } - - if (gnome_pixmap) - { - pixmap = gnome_pixmap_new_from_file (pathname); - g_free (pathname); - return pixmap; - } - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, - NULL, pathname); - if (gdkpixmap == NULL) - { - g_warning (_("Couldn't create pixmap from file: %s"), pathname); - g_free (pathname); - return create_dummy_pixmap (widget, gnome_pixmap); - } - g_free (pathname); - - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - -/* This is an internally used function to create imlib images. */ -#if 0 -GdkImlibImage* -create_image (const gchar *filename) -{ - GdkImlibImage *image; - gchar *pathname; - - pathname = gnome_pixmap_file (filename); - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return NULL; - } - - image = gdk_imlib_load_image (pathname); - g_free (pathname); - return image; -} -#endif - diff --git a/modules/gui/gtk/gnome_support.h b/modules/gui/gtk/gnome_support.h deleted file mode 100644 index 873e181333..0000000000 --- a/modules/gui/gtk/gnome_support.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#include - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - -/* get_widget() is deprecated. Use lookup_widget instead. */ -#define get_widget lookup_widget - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename, - gboolean gnome_pixmap); - -//GdkImlibImage* create_image (const gchar *filename); - diff --git a/modules/gui/gtk/gtk.c b/modules/gui/gtk/gtk.c deleted file mode 100644 index d3fb015dc9..0000000000 --- a/modules/gui/gtk/gtk.c +++ /dev/null @@ -1,562 +0,0 @@ -/***************************************************************************** - * gtk.c : Gtk+ plugin for vlc - ***************************************************************************** - * Copyright (C) 2000-2001 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* malloc(), free() */ -#include /* ENOMEM */ -#include /* strerror() */ -#include - -#include -#include - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "menu.h" -#include "display.h" -#include "common.h" - -/***************************************************************************** - * Local prototypes. - *****************************************************************************/ -static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); - -static void Run ( intf_thread_t * ); -static int Manage ( intf_thread_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -#define TOOLTIPS_TEXT N_("Show tooltips") -#define TOOLTIPS_LONGTEXT N_("Show tooltips for configuration options.") - -#define PREFS_MAXH_TEXT N_("Maximum height for the configuration windows") -#define PREFS_MAXH_LONGTEXT N_( \ - "You can set the maximum height that the configuration windows in the " \ - "preferences menu will occupy.") - -#define PATH_TEXT N_("Interface default search path") -#define PATH_LONGTEXT N_( \ - "This option allows you to set the default path that the interface will " \ - "open when looking for a file.") - -vlc_module_begin(); -#ifdef WIN32 - int i = 90; -#else - int i = getenv( "DISPLAY" ) == NULL ? 10 : 90; -#endif - set_description( _("Gtk+ interface") ); - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - - add_bool( "gtk-tooltips", 1, E_(GtkHideTooltips), - TOOLTIPS_TEXT, TOOLTIPS_LONGTEXT, VLC_FALSE ); - add_integer( "gtk-prefs-maxh", 480, NULL, - PREFS_MAXH_TEXT, PREFS_MAXH_LONGTEXT, VLC_TRUE ); - add_directory( "gtk-search-path", NULL, NULL, PATH_TEXT, - PATH_LONGTEXT, VLC_TRUE ); - - set_capability( "interface", i ); - set_callbacks( Open, Close ); - add_shortcut( "gtk" ); - set_program( "gvlc" ); -vlc_module_end(); - -/***************************************************************************** - * Open: initialize and create window - *****************************************************************************/ -static int Open( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return VLC_ENOMEM; - } - -#ifdef NEED_GTK_MAIN - p_intf->p_sys->p_gtk_main = - module_Need( p_this, "gui-helper", "gtk", VLC_TRUE ); - if( p_intf->p_sys->p_gtk_main == NULL ) - { - free( p_intf->p_sys ); - return VLC_ENOMOD; - } -#endif - - p_intf->pf_run = Run; - - p_intf->p_sys->p_sub = msg_Subscribe( p_intf ); - - /* Initialize Gtk+ thread */ - p_intf->p_sys->b_playing = VLC_FALSE; - p_intf->p_sys->b_deinterlace_update = VLC_FALSE; - - p_intf->p_sys->b_aout_update = VLC_FALSE; - p_intf->p_sys->b_vout_update = VLC_FALSE; - - p_intf->p_sys->b_popup_changed = VLC_FALSE; - p_intf->p_sys->b_window_changed = VLC_FALSE; - p_intf->p_sys->b_playlist_changed = VLC_FALSE; - p_intf->p_sys->b_program_update = VLC_FALSE; - p_intf->p_sys->b_title_update = VLC_FALSE; - p_intf->p_sys->b_chapter_update = VLC_FALSE; - p_intf->p_sys->b_spu_update = VLC_FALSE; - p_intf->p_sys->b_audio_update = VLC_FALSE; - - p_intf->p_sys->p_input = NULL; - p_intf->p_sys->i_playing = -1; - p_intf->p_sys->b_slider_free = VLC_TRUE; - - p_intf->p_sys->i_part = 0; - p_intf->p_sys->b_mute = VLC_FALSE; - - return VLC_SUCCESS; -} - -/***************************************************************************** - * Close: destroy interface window - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - if( p_intf->p_sys->p_input ) - { - vlc_object_release( p_intf->p_sys->p_input ); - } - - msg_Unsubscribe( p_intf, p_intf->p_sys->p_sub ); - -#ifdef NEED_GTK_MAIN - module_Unneed( p_intf, p_intf->p_sys->p_gtk_main ); -#endif - - /* Destroy structure */ - free( p_intf->p_sys ); -} - -/***************************************************************************** - * Run: Gtk+ thread - ***************************************************************************** - * this part of the interface is in a separate thread so that we can call - * gtk_main() from within it without annoying the rest of the program. - *****************************************************************************/ -static void Run( intf_thread_t *p_intf ) -{ - /* The data types we are allowed to receive */ - static GtkTargetEntry target_table[] = - { - { "STRING", 0, DROP_ACCEPT_STRING }, - { "text/uri-list", 0, DROP_ACCEPT_TEXT_URI_LIST }, - { "text/plain", 0, DROP_ACCEPT_TEXT_PLAIN } - }; - char *psz_sout; - GString * p_target; - -#ifdef NEED_GTK_MAIN - gdk_threads_enter(); -#else - /* gtk_init needs to know the command line. We don't care, so we - * give it an empty one */ - char *p_args[] = { "", NULL }; - char **pp_args = p_args; - int i_args = 1; - int i_dummy; - - gtk_init( &i_args, &pp_args ); -#endif - - /* Create some useful widgets that will certainly be used */ - p_intf->p_sys->p_window = create_intf_window(); - p_intf->p_sys->p_popup = create_intf_popup(); - p_intf->p_sys->p_playwin = create_intf_playlist(); - p_intf->p_sys->p_messages = create_intf_messages(); - p_intf->p_sys->p_tooltips = gtk_tooltips_new(); - p_intf->p_sys->p_sout = create_intf_sout(); - - /* Set the title of the main window */ - gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window), - VOUT_TITLE " (Gtk+ interface)"); - - /* Accept file drops on the main window */ - gtk_drag_dest_set( GTK_WIDGET( p_intf->p_sys->p_window ), - GTK_DEST_DEFAULT_ALL, target_table, - DROP_ACCEPT_END, GDK_ACTION_COPY ); - - /* Accept file drops on the playlist window */ - gtk_drag_dest_set( GTK_WIDGET( lookup_widget( p_intf->p_sys->p_playwin, - "playlist_clist") ), - GTK_DEST_DEFAULT_ALL, target_table, - DROP_ACCEPT_END, GDK_ACTION_COPY ); - - /* Get the slider object */ - p_intf->p_sys->p_slider_frame = GTK_FRAME( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_window ), "slider_frame" ) ); - - /* Configure the log window */ - p_intf->p_sys->p_messages_text = GTK_TEXT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_messages ), "messages_textbox" ) ); - gtk_text_set_line_wrap( p_intf->p_sys->p_messages_text, TRUE); - gtk_text_set_word_wrap( p_intf->p_sys->p_messages_text, FALSE); - - /* Get the interface labels */ -#define P_LABEL( name ) GTK_LABEL( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->p_window ), name ) ) - p_intf->p_sys->p_label_title = P_LABEL( "title_label" ); - p_intf->p_sys->p_label_chapter = P_LABEL( "chapter_label" ); -#undef P_LABEL - - /* Connect the date display to the slider */ -#define P_SLIDER GTK_RANGE( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->p_window ), "slider" ) ) - p_intf->p_sys->p_adj = gtk_range_get_adjustment( P_SLIDER ); - - gtk_signal_connect ( GTK_OBJECT( p_intf->p_sys->p_adj ), "value_changed", - GTK_SIGNAL_FUNC( E_(GtkDisplayDate) ), NULL ); - p_intf->p_sys->f_adj_oldvalue = 0; -#undef P_SLIDER - - - - /* We don't create these ones yet because we perhaps won't need them */ - p_intf->p_sys->p_about = NULL; - p_intf->p_sys->p_modules = NULL; - p_intf->p_sys->p_open = NULL; - p_intf->p_sys->p_jump = NULL; - - /* Hide tooltips if the option is set */ - if( !config_GetInt( p_intf, "gtk-tooltips" ) ) - { - gtk_tooltips_disable( p_intf->p_sys->p_tooltips ); - } - - /* Store p_intf to keep an eye on it */ - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_popup), - "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_popup), - "popup_audio" ) ), "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT( gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_popup), - "popup_video" ) ), "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playwin ), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_messages ), - "p_intf", p_intf ); - - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_adj), - "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "p_intf", p_intf ); - - psz_sout = config_GetPsz( p_intf, "sout" ); - p_target = g_string_new( psz_sout ? psz_sout : "" ); - if( psz_sout ) free( psz_sout ); - - gtk_entry_set_text( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), "sout_entry_target" ), p_target->str ); - g_string_free( p_target, TRUE ); - - /* FIXME it's to be sure that only file entry is selected */ - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "sout_access_udp" ), TRUE ); - - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_sout ), - "sout_access_file" ), TRUE ); - - /* Show the control window */ - gtk_widget_show( p_intf->p_sys->p_window ); - -#ifdef NEED_GTK_MAIN - while( !p_intf->b_die ) - { - Manage( p_intf ); - - /* Sleep to avoid using all CPU - since some interfaces need to - * access keyboard events, a 100ms delay is a good compromise */ - gdk_threads_leave(); - msleep( INTF_IDLE_SLEEP ); - gdk_threads_enter(); - } -#else - /* Sleep to avoid using all CPU - since some interfaces needs to access - * keyboard events, a 100ms delay is a good compromise */ - i_dummy = gtk_timeout_add( INTF_IDLE_SLEEP / 1000, (GtkFunction)Manage, - p_intf ); - /* Enter Gtk mode */ - gtk_main(); - /* Remove the timeout */ - gtk_timeout_remove( i_dummy ); -#endif - - /* Destroy the Tooltips structure */ - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_tooltips) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_messages) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_playwin) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_popup) ); - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_window) ); - -#ifdef NEED_GTK_MAIN - gdk_threads_leave(); -#endif -} - -/* following functions are local */ - -/***************************************************************************** - * Manage: manage main thread messages - ***************************************************************************** - * In this function, called approx. 10 times a second, we check what the - * main program wanted to tell us. - *****************************************************************************/ -static int Manage( intf_thread_t *p_intf ) -{ - int i_start, i_stop; - - vlc_mutex_lock( &p_intf->change_lock ); - - /* If the "display popup" flag has changed */ - if( p_intf->b_menu_change ) - { - if( !GTK_IS_WIDGET( p_intf->p_sys->p_popup ) ) - { - p_intf->p_sys->p_popup = create_intf_popup(); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_popup ), - "p_intf", p_intf ); - } - gtk_menu_popup( GTK_MENU( p_intf->p_sys->p_popup ), - NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME ); - p_intf->b_menu_change = 0; - } - - /* Update the log window */ - vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock ); - i_stop = *p_intf->p_sys->p_sub->pi_stop; - vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock ); - - if( p_intf->p_sys->p_sub->i_start != i_stop ) - { - static GdkColor white = { 0, 0xffff, 0xffff, 0xffff }; - static GdkColor gray = { 0, 0xaaaa, 0xaaaa, 0xaaaa }; - static GdkColor yellow = { 0, 0xffff, 0xffff, 0x6666 }; - static GdkColor red = { 0, 0xffff, 0x6666, 0x6666 }; - - static const char * ppsz_type[4] = { ": ", " error: ", " warning: ", - " debug: " }; - static GdkColor * pp_color[4] = { &white, &red, &yellow, &gray }; - - for( i_start = p_intf->p_sys->p_sub->i_start; - i_start != i_stop; - i_start = (i_start+1) % VLC_MSG_QSIZE ) - { - /* Append all messages to log window */ - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, p_intf->p_sys->p_sub->p_msg[i_start].psz_module, -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, ppsz_type[p_intf->p_sys->p_sub->p_msg[i_start].i_type], - -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, - pp_color[p_intf->p_sys->p_sub->p_msg[i_start].i_type], NULL, - p_intf->p_sys->p_sub->p_msg[i_start].psz_msg, -1 ); - - gtk_text_insert( p_intf->p_sys->p_messages_text, NULL, &gray, - NULL, "\n", -1 ); - } - - vlc_mutex_lock( p_intf->p_sys->p_sub->p_lock ); - p_intf->p_sys->p_sub->i_start = i_start; - vlc_mutex_unlock( p_intf->p_sys->p_sub->p_lock ); - - /* If the messages list becomes too big, just clean half of it. */ - if( gtk_text_get_length( p_intf->p_sys->p_messages_text ) > - VLC_MSG_QSIZE * 1000 ) - { - gtk_text_set_point( p_intf->p_sys->p_messages_text, 0 ); - gtk_text_forward_delete( p_intf->p_sys->p_messages_text, - gtk_text_get_length( p_intf->p_sys->p_messages_text ) / 2 ); - } - - gtk_text_set_point( p_intf->p_sys->p_messages_text, - gtk_text_get_length( p_intf->p_sys->p_messages_text ) ); - } - - /* Update the playlist */ - GtkPlayListManage( p_intf ); - - /* Update the input */ - if( p_intf->p_sys->p_input == NULL ) - { - p_intf->p_sys->p_input = vlc_object_find( p_intf, VLC_OBJECT_INPUT, - FIND_ANYWHERE ); - } - else if( p_intf->p_sys->p_input->b_dead ) - { - vlc_object_release( p_intf->p_sys->p_input ); - p_intf->p_sys->p_input = NULL; - } - - if( p_intf->p_sys->p_input ) - { - input_thread_t *p_input = p_intf->p_sys->p_input; - aout_instance_t *p_aout = NULL; - vout_thread_t *p_vout = NULL; - vlc_bool_t b_need_menus = VLC_FALSE; - - //vlc_mutex_lock( &p_input->stream.stream_lock ); - - if( !p_input->b_die ) - { - /* New input or stream map change */ - if( p_input->stream.b_changed ) - { - E_(GtkModeManage)( p_intf ); - GtkSetupMenus( p_intf ); - p_intf->p_sys->b_playing = 1; - } - - /* Manage the slider */ - if( p_input->stream.b_seekable && p_intf->p_sys->b_playing ) - { - float newvalue = p_intf->p_sys->p_adj->value; - -#define p_area p_input->stream.p_selected_area - /* If the user hasn't touched the slider since the last time, - * then the input can safely change it */ - if( newvalue == p_intf->p_sys->f_adj_oldvalue ) - { - /* Update the value */ - p_intf->p_sys->p_adj->value = - p_intf->p_sys->f_adj_oldvalue = - ( 100. * p_area->i_tell ) / p_area->i_size; - - gtk_signal_emit_by_name( GTK_OBJECT( p_intf->p_sys->p_adj ), - "value_changed" ); - } - /* Otherwise, send message to the input if the user has - * finished dragging the slider. - * Beware, the hack below is needed by the dvdplay plugin! */ - else if( p_intf->p_sys->b_slider_free - /* hack -> */ && (p_intf->p_sys->f_adj_oldvalue < 100.) ) - { - if( newvalue >= 0. && newvalue < 100. ) - { - double f_fpos = (double)newvalue / 100.0; - - /* release the lock to be able to seek */ - //vlc_mutex_unlock( &p_input->stream.stream_lock ); - var_SetFloat( p_input, "position", f_fpos ); - //vlc_mutex_lock( &p_input->stream.stream_lock ); - } - - /* Update the old value */ - p_intf->p_sys->f_adj_oldvalue = newvalue; - } -#undef p_area - } - - if( p_intf->p_sys->i_part != - p_input->stream.p_selected_area->i_part ) - { - p_intf->p_sys->b_chapter_update = 1; - b_need_menus = VLC_TRUE; - } - - /* Does the audio output require to update the menus ? */ - p_aout = (aout_instance_t *)vlc_object_find( p_intf, VLC_OBJECT_AOUT, - FIND_ANYWHERE ); - if( p_aout != NULL ) - { - vlc_value_t val; - if( var_Get( (vlc_object_t *)p_aout, "intf-change", &val ) >= 0 - && val.b_bool ) - { - p_intf->p_sys->b_aout_update = 1; - b_need_menus = 1; - } - - vlc_object_release( (vlc_object_t *)p_aout ); - } - - /* Does the video output require to update the menus ? */ - p_vout = (vout_thread_t *)vlc_object_find( p_intf, VLC_OBJECT_VOUT, - FIND_ANYWHERE ); - if( p_vout != NULL ) - { - vlc_value_t val; - if( var_Get( (vlc_object_t *)p_vout, "intf-change", &val ) >= 0 - && val.b_bool ) - { - p_intf->p_sys->b_vout_update = 1; - b_need_menus = 1; - } - - vlc_object_release( (vlc_object_t *)p_vout ); - } - if( b_need_menus ) - { - GtkSetupMenus( p_intf ); - } - } - - //vlc_mutex_unlock( &p_input->stream.stream_lock ); - } - else if( p_intf->p_sys->b_playing && !p_intf->b_die ) - { - E_(GtkModeManage)( p_intf ); - p_intf->p_sys->b_playing = 0; - } - -#ifndef NEED_GTK_MAIN - if( p_intf->b_die ) - { - vlc_mutex_unlock( &p_intf->change_lock ); - - /* Prepare to die, young Skywalker */ - gtk_main_quit(); - - return FALSE; - } -#endif - - vlc_mutex_unlock( &p_intf->change_lock ); - - return TRUE; -} diff --git a/modules/gui/gtk/gtk.glade b/modules/gui/gtk/gtk.glade deleted file mode 100644 index 95ecf7502c..0000000000 --- a/modules/gui/gtk/gtk.glade +++ /dev/null @@ -1,4395 +0,0 @@ - - - - - VLC media player - vlc - - - pixmaps - C - False - True - False - False - gtk_interface.c - gtk_interface.h - gtk_callbacks.c - gtk_callbacks.h - gtk_support.c - gtk_support.h - - - - GtkWindow - intf_window - - drag_data_received - GtkWindowDrag - Tue, 09 Jul 2002 09:09:48 GMT - - - delete_event - GtkWindowDelete - Tue, 09 Jul 2002 09:09:53 GMT - - VLC media player - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - True - True - - - GtkVBox - GnomeDock:contents - window_vbox - False - 0 - - - GtkHandleBox - menubar_handlebox - GTK_SHADOW_OUT - GTK_POS_LEFT - GTK_POS_TOP - - 0 - False - True - - - - GtkMenuBar - menubar - GTK_SHADOW_OUT - - - GtkMenuItem - menubar_file - - False - - - GtkMenu - menubar_file_menu - - - GtkMenuItem - menubar_open - Open a file - - 0 - GDK_F3 - activate - - - activate - GtkFileOpenShow - Mon, 14 May 2001 21:27:36 GMT - - - False - - - - GtkMenuItem - menubar_disc - Open Disc Media - - 0 - GDK_F4 - activate - - - activate - GtkDiscOpenShow - Mon, 14 May 2001 21:27:47 GMT - - - False - - - - GtkMenuItem - menubar_network - Select a network stream - - 0 - GDK_F5 - activate - - - activate - GtkNetworkOpenShow - Mon, 14 May 2001 21:28:06 GMT - - - False - - - - GtkMenuItem - separator4 - False - - - - GtkMenuItem - menubar_eject - Eject disc - - activate - GtkDiscEject - Fri, 21 Dec 2001 12:51:34 GMT - - - False - - - - GtkMenuItem - separator14 - False - - - - GtkMenuItem - menubar_close - Close the window - - GDK_CONTROL_MASK - GDK_W - activate - - - activate - GtkClose - Mon, 15 Jul 2002 08:55:26 GMT - - - False - - - - GtkMenuItem - menubar_exit - Exit the program - - GDK_CONTROL_MASK - GDK_Q - activate - - - activate - GtkExit - Mon, 14 May 2001 21:28:20 GMT - - - False - - - - - - GtkMenuItem - menubar_view - - False - - - GtkMenu - menubar_view_menu - - - GtkMenuItem - menubar_interface_hide - Hide the main interface window - - activate - GtkWindowToggle - Mon, 14 May 2001 21:32:49 GMT - - - False - - - - GtkMenuItem - separator13 - False - - - - GtkMenuItem - menubar_program - False - Choose the program - - False - - - - GtkMenuItem - menubar_title - False - Navigate through the stream - - False - - - - GtkMenuItem - menubar_chapter - False - - False - - - - GtkMenuItem - separator11 - False - - - - GtkMenuItem - menubar_playlist - Open the playlist window - - activate - GtkPlaylistShow - Mon, 14 May 2001 21:29:34 GMT - - - False - - - - GtkMenuItem - menubar_modules - False - Open the module manager - - activate - GtkModulesShow - Mon, 14 May 2001 21:29:44 GMT - - - False - - - - GtkMenuItem - menubar_messages - Open the messages window - - activate - GtkMessagesShow - Tue, 19 Feb 2002 02:03:47 GMT - - - False - - - - - - GtkMenuItem - menubar_settings - - False - - - GtkMenu - menubar_settings_menu - - - GtkMenuItem - menubar_preferences - Configure the application - - activate - GtkPreferencesShow - Mon, 14 May 2001 21:30:02 GMT - - - False - - - - - - GtkMenuItem - menubar_config_audio - - False - - - GtkMenu - menubar_config_audio_menu - - - GtkMenuItem - menubar_audio - False - Select audio channel - - False - - - - GtkMenuItem - separator18 - False - - - - GtkMenuItem - menubar_volume_up - - activate - GtkVolumeUp - Mon, 20 Jan 2003 10:11:53 GMT - - - False - - - - GtkMenuItem - menubar_volume_down - - activate - GtkVolumeDown - Mon, 20 Jan 2003 10:11:53 GMT - - - False - - - - GtkMenuItem - menubar_volume_mute - - activate - GtkVolumeMute - Mon, 20 Jan 2003 10:11:53 GMT - - - False - - - - GtkMenuItem - separator15 - False - - - - GtkMenuItem - menubar_audio_channels - - False - - - - GtkMenuItem - menubar_audio_device - - False - - - - - - GtkMenuItem - menubar_config_video - - False - - - GtkMenu - menubar_config_video_menu - - - GtkMenuItem - menubar_subpictures - False - Select subtitles channel - - False - - - - GtkMenuItem - separator25 - False - - - - GtkMenuItem - menubar_fullscreen - - activate - GtkFullscreen - Mon, 14 May 2001 21:29:21 GMT - - - False - - - - GtkMenuItem - separator24 - False - - - - GtkMenuItem - menubar_deinterlace - - False - - - - GtkMenuItem - menubar_video_device - - False - - - - - - GtkMenuItem - menubar_help - - False - - - GtkMenu - menubar_help_menu - - - GtkMenuItem - menubar_about - About this application - - activate - GtkAboutShow - Mon, 14 May 2001 21:30:15 GMT - - - False - - - - - - - - GtkHandleBox - toolbar_handlebox - GTK_SHADOW_OUT - GTK_POS_LEFT - GTK_POS_TOP - - 0 - False - True - - - - GtkToolbar - toolbar - 1 - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH - 16 - GTK_TOOLBAR_SPACE_LINE - GTK_RELIEF_NONE - True - - - GtkButton - Toolbar:button - toolbar_open - Open a file - - clicked - GtkFileOpenShow - Mon, 08 Jul 2002 16:14:58 GMT - - - - - - GtkButton - Toolbar:button - toolbar_disc - Open Disc Media - - clicked - GtkDiscOpenShow - Sun, 13 May 2001 15:10:30 GMT - - - - - - GtkButton - Toolbar:button - toolbar_network - Select a network stream - - clicked - GtkNetworkOpenShow - Sun, 13 May 2001 15:10:37 GMT - - - - - - GtkButton - Toolbar:button - toolbar_sat - Open a Satellite Card - - clicked - GtkSatOpenShow - Sun, 24 Mar 2002 15:08:57 GMT - - - - - - GtkButton - Toolbar:button - toolbar_back - False - Go Backward - - clicked - GtkControlBack - Sun, 13 May 2001 15:10:47 GMT - - - - True - - - - - GtkButton - Toolbar:button - toolbar_stop - Stop Stream - - clicked - GtkControlStop - Sun, 13 May 2001 15:10:57 GMT - - - - - - GtkButton - Toolbar:button - toolbar_eject - - clicked - GtkDiscEject - Fri, 21 Dec 2001 15:33:26 GMT - - - - - - GtkButton - Toolbar:button - toolbar_play - Play Stream - - clicked - GtkControlPlay - Sun, 13 May 2001 15:11:06 GMT - - - - - - GtkButton - Toolbar:button - toolbar_pause - False - Pause Stream - - clicked - GtkControlPause - Sun, 13 May 2001 15:11:13 GMT - - - - - - GtkButton - Toolbar:button - toolbar_slow - False - Play Slower - - clicked - GtkControlSlow - Sun, 13 May 2001 15:11:20 GMT - - - - True - - - - - GtkButton - Toolbar:button - toolbar_fast - False - Play Faster - - clicked - GtkControlFast - Sun, 13 May 2001 15:11:31 GMT - - - - - - GtkButton - Toolbar:button - toolbar_playlist - Open Playlist - - clicked - GtkPlaylistShow - Sun, 13 May 2001 15:11:38 GMT - - - - - - GtkButton - Toolbar:button - toolbar_prev - Previous file - - clicked - GtkPlaylistPrev - Sun, 13 May 2001 15:11:45 GMT - - - - - - GtkButton - Toolbar:button - toolbar_next - Next File - - clicked - GtkPlaylistNext - Sun, 13 May 2001 15:11:58 GMT - - - - - - - - GtkFrame - slider_frame - False - - 0.05 - GTK_SHADOW_ETCHED_IN - - 0 - True - True - - - - GtkHScale - slider - 500 - 15 - True - - button_release_event - GtkSliderRelease - Sun, 13 May 2001 14:40:22 GMT - - - button_press_event - GtkSliderPress - Sun, 13 May 2001 14:40:38 GMT - - False - GTK_POS_TOP - 3 - GTK_UPDATE_CONTINUOUS - 0 - 0 - 100 - 1 - 6.25 - 0 - - - - - GtkHBox - file_box - 500 - 24 - False - 0 - - 0 - True - True - - - - GtkLabel - label_status - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - - GtkHBox - dvd_box - 500 - 24 - False - False - 0 - - 0 - True - True - - - - GtkLabel - dvd_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - False - - - - - GtkHBox - title_box - False - 0 - - 0 - True - True - - - - GtkLabel - title - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - - - - - GtkLabel - title_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - - - - - GtkButton - title_prev_button - True - - clicked - GtkTitlePrev - Sun, 13 May 2001 14:41:41 GMT - - - GTK_RELIEF_NONE - - 5 - False - False - - - - - GtkButton - title_next_button - True - - clicked - GtkTitleNext - Sun, 13 May 2001 14:42:00 GMT - - - GTK_RELIEF_NONE - - 5 - False - False - - - - - - GtkVSeparator - dvd_separator - - 0 - True - True - - - - - GtkHBox - chapter_box - False - 0 - - 0 - True - True - - - - GtkLabel - chapter - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - - - - - GtkLabel - chapter_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - - - - - GtkButton - chapter_prev_button - True - - clicked - GtkChapterPrev - Sun, 13 May 2001 14:42:25 GMT - - - GTK_RELIEF_NONE - - 5 - False - False - - - - - GtkButton - chapter_next_button - True - - clicked - GtkChapterNext - Sun, 13 May 2001 14:42:42 GMT - - - GTK_RELIEF_NONE - - 5 - False - False - - - - - - - GtkHBox - network_box - 500 - 24 - False - False - 0 - - 0 - True - True - - - - GtkLabel - network_address_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - - GtkStatusbar - intf_statusbar - - 0 - False - False - - - - - - - GtkMenu - intf_popup - - - GtkMenuItem - popup_play - - activate - GtkControlPlay - Tue, 15 May 2001 13:53:43 GMT - - - False - - - - GtkMenuItem - popup_pause - False - - activate - GtkControlPause - Tue, 15 May 2001 13:53:37 GMT - - - False - - - - GtkMenuItem - popup_stop - - activate - GtkControlStop - Tue, 15 May 2001 13:53:29 GMT - - - False - - - - GtkMenuItem - popup_back - False - - activate - GtkControlBack - Tue, 15 May 2001 13:53:21 GMT - - - False - - - - GtkMenuItem - popup_slow - False - - activate - GtkControlSlow - Tue, 15 May 2001 13:53:15 GMT - - - False - - - - GtkMenuItem - popup_fast - False - - activate - GtkControlFast - Tue, 15 May 2001 13:53:07 GMT - - - False - - - - GtkMenuItem - separator16 - False - - - - GtkMenuItem - popup_next - - activate - GtkPlaylistNext - Tue, 15 May 2001 13:52:31 GMT - - - False - - - - GtkMenuItem - popup_prev - - activate - GtkPlaylistPrev - Tue, 15 May 2001 13:52:23 GMT - - - False - - - - GtkMenuItem - popup_jump - - activate - GtkJumpShow - Tue, 15 May 2001 13:52:13 GMT - - - False - - - - GtkMenuItem - separator27 - False - - - - GtkMenuItem - popup_program - False - - False - - - - GtkMenuItem - popup_navigation - False - - False - - - - GtkMenuItem - popup_audio - - False - - - GtkMenu - popup_audio_menu - - - GtkMenuItem - popup_language - False - - False - - - - GtkMenuItem - separator19 - False - - - - GtkMenuItem - popup_volume_up - - activate - GtkVolumeUp - Mon, 20 Jan 2003 10:16:02 GMT - - - False - - - - GtkMenuItem - popup_volume_down - - activate - GtkVolumeDown - Mon, 20 Jan 2003 10:18:25 GMT - - - False - - - - GtkMenuItem - popup_volume_mute - - activate - GtkVolumeMute - Mon, 20 Jan 2003 10:18:25 GMT - - - False - - - - GtkMenuItem - separator20 - False - - - - GtkMenuItem - popup_audio_channels - - False - - - - GtkMenuItem - popup_audio_device - - False - - - - - - GtkMenuItem - popup_video - - False - - - GtkMenu - popup_video_menu - - - GtkMenuItem - popup_subpictures - False - - False - - - - GtkMenuItem - separator21 - False - - - - GtkMenuItem - popup_fullscreen - - activate - GtkFullscreen - Tue, 15 May 2001 13:52:38 GMT - - - False - - - - GtkMenuItem - separator23 - False - - - - GtkMenuItem - popup_deinterlace - - False - - - - GtkMenuItem - popup_video_device - - False - - - - - - GtkMenuItem - separator26 - False - - - - GtkMenuItem - popup_open - - False - - - GtkMenu - popup_open_menu - - - GtkMenuItem - popup_file - Open a file - - activate - GtkFileOpenShow - Mon, 14 May 2001 21:33:55 GMT - - - False - - - - GtkMenuItem - popup_disc - Open Disc Media - - activate - GtkDiscOpenShow - Mon, 14 May 2001 21:34:09 GMT - - - False - - - - GtkMenuItem - popup_network - Select a network stream - - activate - GtkNetworkOpenShow - Mon, 14 May 2001 21:34:23 GMT - - - False - - - - GtkMenuItem - separator12 - False - - - - GtkMenuItem - popup_about - - activate - GtkAboutShow - Mon, 14 May 2001 21:34:54 GMT - - - False - - - - - - GtkMenuItem - popup_interface_toggle - - activate - GtkWindowToggle - Tue, 15 May 2001 13:53:00 GMT - - - False - - - - GtkMenuItem - popup_playlist - - activate - GtkPlaylistShow - Tue, 15 May 2001 13:51:55 GMT - - - False - - - - GtkMenuItem - popup_preferences - - activate - GtkPreferencesShow - Tue, 15 May 2001 13:51:46 GMT - - - False - - - - GtkMenuItem - separator9 - False - - - - GtkMenuItem - popup_exit - - activate - GtkExit - Tue, 15 May 2001 13:52:03 GMT - - - False - - - - - GtkDialog - intf_about - 5 - About - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_CENTER - False - False - False - False - - - GtkVBox - Dialog:vbox - dialog-vbox1 - False - 0 - - - GtkHBox - Dialog:action_area - dialog-action_area - 10 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - about_ok - True - True - True - - clicked - GtkAboutOk - Sun, 13 May 2001 14:47:20 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - True - - - - - - GtkVBox - vbox3 - False - 0 - - 0 - True - True - - - - GtkLabel - label14 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 10 - - 0 - True - True - - - - - GtkLabel - label18 - - GTK_JUSTIFY_LEFT - False - 0.5 - 0.5 - 0 - 5 - - 0 - False - False - - - - - GtkFrame - frame1 - - 0 - GTK_SHADOW_ETCHED_IN - - 0 - False - False - - - - GtkVBox - vbox17 - False - 0 - - - GtkLabel - label16 - - GTK_JUSTIFY_LEFT - False - 0.5 - 0 - 5 - 0 - - 0 - False - False - - - - - GtkLabel - label39 - - GTK_JUSTIFY_LEFT - False - 0.5 - 0 - 5 - 0 - - 0 - False - False - - - - - - - GtkLabel - label17 - - GTK_JUSTIFY_LEFT - True - 0.5 - 0.5 - 0 - 5 - - 0 - False - False - - - - - - - - GtkDialog - intf_open - 5 - - delete_event - gtk_widget_hide - Mon, 16 Sep 2002 07:48:17 GMT - - Open Target - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - False - True - True - - - GtkVBox - Dialog:vbox - dialog-vbox7 - False - 0 - - - GtkHBox - Dialog:action_area - dialog-action_area6 - 5 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkHBox - hbox18 - True - 5 - - 0 - True - True - - - - GtkHBox - hbox19 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - open_ok - True - - clicked - GtkOpenOk - Mon, 08 Jul 2002 14:52:19 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - True - - - - - GtkButton - open_cancel - True - - 0 - GDK_Escape - clicked - - - clicked - GtkOpenCancel - Mon, 08 Jul 2002 14:52:36 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - True - - - - - - - - GtkVBox - open_vbox - False - 5 - - 0 - True - True - - - - GtkFrame - frame10 - - 0 - GTK_SHADOW_ETCHED_IN - - 0 - False - True - - - - GtkHBox - hbox21 - 5 - False - 5 - - - GtkHBox - hbox22 - False - 0 - - 0 - False - True - - - - GtkLabel - label34 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - - GtkCombo - combo2 - False - True - False - True - False - - - 0 - True - True - - - - GtkEntry - GtkCombo:entry - entry_open - True - True - True - 0 - - - - - - - - GtkLabel - label36 - - GTK_JUSTIFY_LEFT - False - 0 - 1 - 0 - 0 - - 0 - True - True - - - - - GtkNotebook - open_notebook - True - - switch_page - GtkOpenNotebookChanged - True - Tue, 09 Jul 2002 14:01:19 GMT - - True - True - GTK_POS_TOP - False - 2 - 2 - False - - 0 - True - True - - - - GtkHBox - hbox20 - 5 - False - 5 - - - GtkCombo - combo1 - False - True - False - True - False - - - 0 - False - True - - - - GtkEntry - GtkCombo:entry - entry_file - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:22:33 GMT - - True - True - 0 - - - - - - GtkVBox - vbox13 - True - 0 - - 0 - False - False - - - - Placeholder - - - - GtkButton - open_browse - True - - clicked - GtkFileShow - "entry_file" - Mon, 20 Jan 2003 21:45:39 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - Placeholder - - - - - - GtkLabel - Notebook:tab - open_file - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table5 - 5 - 5 - 2 - False - 5 - 5 - - - GtkLabel - label35 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkHBox - hbox24 - False - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - disc_dvd - True - - toggled - GtkDiscOpenDvd - Sun, 13 May 2001 14:48:29 GMT - - - False - True - disc - - 0 - False - False - - - - - GtkRadioButton - disc_vcd - True - - toggled - GtkDiscOpenVcd - Sun, 13 May 2001 14:48:39 GMT - - - False - True - disc - - 0 - False - False - - - - - GtkRadioButton - disc_cdda - True - - toggled - GtkDiscOpenCDDA - Sun, 13 May 2001 14:48:39 GMT - - - False - True - disc - - 0 - False - False - - - - - - GtkLabel - label19 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - disc_chapter_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 4 - 5 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - disc_title_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkEntry - disc_name - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:46:05 GMT - - True - True - 0 - /dev/dvd - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - disc_title - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:45:04 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 - 1 - 65536 - 1 - 10 - 10 - - 1 - 2 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - disc_chapter - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:45:38 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1 - 1 - 65536 - 1 - 10 - 10 - - 1 - 2 - 4 - 5 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCheckButton - disc_dvd_use_menu - True - - toggled - GtkOpenChanged - Tue, 21 Jan 2003 13:27:40 GMT - - - False - True - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - - GtkLabel - Notebook:tab - open_disc - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table4 - 5 - 3 - 6 - False - 5 - 5 - - - GtkRadioButton - network_udp - True - - toggled - GtkNetworkOpenUDP - Thu, 16 May 2002 00:47:18 GMT - - - False - True - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - network_multicast - True - - toggled - GtkNetworkOpenMulticast - Thu, 16 May 2002 00:47:05 GMT - - - False - True - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - network_http - True - - toggled - GtkNetworkOpenHTTP - Thu, 16 May 2002 00:47:42 GMT - - - False - True - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_udp_port_label - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_multicast_address_label - False - - GTK_JUSTIFY_RIGHT - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - network_http_url_label - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - network_multicast_address_combo - False - False - True - False - True - False - - - 2 - 4 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - network_multicast_address - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:06 GMT - - True - True - 0 - - - - - - GtkLabel - network_multicast_port_label - False - - GTK_JUSTIFY_CENTER - False - 1 - 0.5 - 0 - 0 - - 4 - 5 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - network_multicast_port - 75 - False - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:36 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 5 - 6 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - - GtkEntry - network_http_url - False - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:57:26 GMT - - True - True - 0 - - - 2 - 6 - 2 - 3 - 0 - 0 - True - False - False - False - True - False - - - - - GtkSpinButton - network_udp_port - 1 - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:56:55 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 2 - 3 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - - GtkLabel - Notebook:tab - open_net - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkTable - table3 - 5 - 4 - 2 - False - 5 - 5 - - - GtkLabel - label24 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label25 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label26 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkSpinButton - sat_freq - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:00 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 11954000 - 10000000 - 12999000 - 1 - 10 - 10 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - label27 - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 0 - 1 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - - GtkHBox - hbox23 - False - 0 - - 1 - 2 - 2 - 3 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - sat_pol_vert - True - - toggled - GtkSatOpenToggle - Tue, 09 Jul 2002 15:16:25 GMT - - - False - True - pol - - 0 - False - False - - - - - GtkRadioButton - sat_pol_hor - True - - toggled - GtkSatOpenToggle - Tue, 09 Jul 2002 15:16:36 GMT - - - False - True - pol - - 0 - False - False - - - - - - GtkSpinButton - sat_srate - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:09 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 27500000 - 1000000 - 30000000 - 1 - 10 - 10 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - sat_fec - False - True - False - True - False - 1/2 -2/3 -3/4 -4/5 -5/6 -7/8 - - - 1 - 2 - 3 - 4 - 0 - 0 - False - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - combo-entry1 - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:58:26 GMT - - True - True - 0 - 3/4 - - - - - - GtkLabel - Notebook:tab - open_sat - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - - GtkCheckButton - show_subtitle - Use a subtitles file - True - - clicked - GtkOpenSubtitleShow - Mon, 20 Jan 2003 21:09:27 GMT - - - False - True - - 0 - False - False - - - - - GtkHBox - hbox_subtitle - 5 - False - 5 - - 0 - True - True - - - - GtkCombo - combo3 - False - True - False - True - False - - - 0 - False - True - - - - GtkEntry - GtkCombo:entry - entry_subtitle - Select a subtitles file - True - - changed - GtkOpenChanged - Tue, 09 Jul 2002 13:22:33 GMT - - True - True - 0 - - - - - - GtkVBox - vbox14 - True - 0 - - 0 - False - False - - - - GtkButton - open_browse_subtitle - True - - clicked - GtkFileShow - "entry_subtitle" - Mon, 20 Jan 2003 21:46:24 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - False - - - - - - GtkLabel - label37 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - GtkSpinButton - subtitle_delay - Set the delay (in seconds) - True - - changed - GtkOpenChanged - Tue, 21 Jan 2003 00:09:20 GMT - - 1 - 1 - False - GTK_UPDATE_ALWAYS - False - False - 0 - -1000 - 1000 - 0.1 - 10 - 10 - - 0 - True - True - - - - - GtkLabel - label3 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - GtkSpinButton - subtitle_fps - Set the number of Frames Per Second - True - 1 - 1 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 100 - 0.1 - 10 - 10 - - 0 - True - True - - - - - - - GtkHBox - hbox30 - False - 0 - - 3 - False - False - - - - GtkCheckButton - show_sout_settings - Use stream output - True - - clicked - GtkOpenSoutShow - Sun, 26 Jan 2003 07:01:23 GMT - - - False - True - - 0 - False - False - - - - - GtkButton - sout_settings - Stream output configuration - True - - clicked - GtkSoutSettings - Sun, 26 Jan 2003 04:22:08 GMT - - - GTK_RELIEF_NORMAL - - 20 - False - False - - - - - - - - GtkFileSelection - intf_file - 10 - Select File - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - False - True - False - True - - - GtkButton - FileSel:ok_button - file_ok - True - True - - clicked - GtkFileOk - Wed, 10 Jul 2002 11:32:18 GMT - - - GTK_RELIEF_NORMAL - - - - GtkButton - FileSel:cancel_button - file_cancel - True - True - - clicked - GtkFileCancel - Wed, 10 Jul 2002 11:32:23 GMT - - - GTK_RELIEF_NORMAL - - - - - GtkDialog - intf_jump - Jump - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - True - False - - - GtkVBox - Dialog:vbox - dialog-vbox3 - False - 0 - - - GtkHBox - Dialog:action_area - dialog-action_area2 - 10 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - jump_ok_button - True - - clicked - GtkJumpOk - Sun, 13 May 2001 14:53:19 GMT - - - GTK_RELIEF_NORMAL - - 0 - True - True - - - - - GtkButton - jump_cancel_button - True - - clicked - GtkJumpCancel - Sun, 13 May 2001 14:53:43 GMT - - - GTK_RELIEF_NORMAL - - 0 - True - True - - - - - - GtkFrame - jump_frame - 5 - - 0.05 - GTK_SHADOW_ETCHED_IN - - 0 - True - True - - - - GtkHBox - hbox13 - False - 0 - - - GtkLabel - jump_second_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_second_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 60 - 1 - 10 - 10 - - 0 - False - True - GTK_PACK_END - - - - - GtkLabel - jump_minute_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_minute_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 60 - 1 - 10 - 10 - - 0 - False - True - GTK_PACK_END - - - - - GtkLabel - jump_hour_label - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 5 - False - False - GTK_PACK_END - - - - - GtkSpinButton - jump_hour_spinbutton - True - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 0 - 0 - 12 - 1 - 10 - 10 - - 0 - False - True - GTK_PACK_END - - - - - - - - - GtkDialog - intf_playlist - - destroy - gtk_widget_hide - Tue, 15 May 2001 14:20:39 GMT - - - delete_event - gtk_widget_hide - Tue, 15 May 2001 14:20:22 GMT - - Playlist - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - 400 - 300 - True - True - False - - - GtkVBox - Dialog:vbox - dialog-vbox4 - False - 5 - - - GtkHBox - Dialog:action_area - dialog-action_area3 - 10 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - playlist_ok_button - True - - clicked - GtkPlaylistOk - Sat, 12 May 2001 21:16:09 GMT - - - GTK_RELIEF_NORMAL - - 0 - True - True - - - - - GtkButton - playlist_cancel_button - True - - clicked - GtkPlaylistCancel - Sat, 12 May 2001 21:16:20 GMT - - - GTK_RELIEF_NORMAL - - 0 - True - True - - - - - - GtkMenuBar - playlist_menubar - GTK_SHADOW_OUT - - 0 - False - False - - - - GtkMenuItem - playlist_add - - False - - - GtkMenu - playlist_add_menu - - - GtkMenuItem - playlist_add_disc - - activate - GtkDiscOpenShow - Mon, 14 May 2001 21:59:32 GMT - - - False - - - - GtkMenuItem - playlist_add_file - - activate - GtkFileOpenShow - Mon, 14 May 2001 21:59:48 GMT - - - False - - - - GtkMenuItem - playlist_add_network - - activate - GtkNetworkOpenShow - Mon, 14 May 2001 22:00:03 GMT - - - False - - - - GtkMenuItem - playlist_add_url - - activate - GtkPlaylistAddUrl - Mon, 14 May 2001 22:00:22 GMT - - - False - - - - - - GtkMenuItem - playlist_delete - - False - - - GtkMenu - playlist_delete_menu - - - GtkMenuItem - playlist_delete_all - - activate - GtkPlaylistDeleteAll - Sat, 12 May 2001 21:13:11 GMT - - - False - - - - GtkMenuItem - playlist_delete_selected - - activate - GtkPlaylistDeleteSelected - Sat, 12 May 2001 21:12:58 GMT - - - False - - - - - - GtkMenuItem - playlist_selection - - False - - - GtkMenu - playlist_selection_menu - - - GtkMenuItem - playlist_selection_crop - - activate - GtkPlaylistCrop - Sat, 12 May 2001 21:13:47 GMT - - - False - - - - GtkMenuItem - playlist_selection_invert - - activate - GtkPlaylistInvert - Sat, 12 May 2001 21:13:55 GMT - - - False - - - - GtkMenuItem - playlist_selection_select - - activate - GtkPlaylistSelect - Sat, 12 May 2001 21:14:04 GMT - - - False - - - - - - - GtkScrolledWindow - scrolledwindow1 - GTK_POLICY_AUTOMATIC - GTK_POLICY_AUTOMATIC - GTK_UPDATE_CONTINUOUS - GTK_UPDATE_CONTINUOUS - - 0 - True - True - - - - GtkCList - playlist_clist - 5 - True - - event - GtkPlaylistEvent - Sat, 12 May 2001 21:25:20 GMT - - - drag_data_received - GtkPlaylistDragData - Sat, 12 May 2001 21:25:53 GMT - - - drag_motion - GtkPlaylistDragMotion - Sat, 12 May 2001 21:26:23 GMT - - 2 - 257,80 - GTK_SELECTION_EXTENDED - True - GTK_SHADOW_OUT - - - GtkLabel - CList:title - label22 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - GtkLabel - CList:title - label23 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - - - - - - - GtkDialog - intf_messages - - delete_event - GtkMessagesDelete - Tue, 19 Feb 2002 02:39:16 GMT - - Messages - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - 600 - 400 - True - True - False - - - GtkVBox - Dialog:vbox - dialog-vbox6 - False - 0 - - - GtkHBox - Dialog:action_area - dialog-action_area5 - 5 - True - 5 - - 0 - False - True - GTK_PACK_END - - - - GtkButton - messages_ok - True - True - True - - clicked - GtkMessagesOk - Tue, 19 Feb 2002 02:07:37 GMT - - - GTK_RELIEF_NORMAL - - 0 - False - True - - - - - - GtkScrolledWindow - scrolledwindow2 - 5 - GTK_POLICY_NEVER - GTK_POLICY_ALWAYS - GTK_UPDATE_CONTINUOUS - GTK_UPDATE_CONTINUOUS - - 0 - True - True - - - - GtkText - messages_textbox - True - False - - - - - - - - GtkWindow - intf_sout - 5 - Stream output - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - True - False - True - False - - - GtkVBox - vbox15 - False - 0 - - - GtkVBox - vbox16 - False - 0 - - 0 - True - True - - - - GtkFrame - frame11 - - 0 - GTK_SHADOW_ETCHED_IN - - 0 - False - True - - - - GtkHBox - hbox28 - 5 - False - 0 - - - GtkLabel - label38 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - False - False - - - - - GtkCombo - combo4 - False - True - False - True - False - - - 0 - True - True - - - - GtkEntry - GtkCombo:entry - sout_entry_target - True - True - True - 0 - - - - - - - - GtkFrame - frame12 - 0 - GTK_SHADOW_ETCHED_IN - - 0 - True - True - - - - GtkTable - table6 - 3 - 5 - False - 5 - 5 - - - GtkRadioButton - sout_access_file - True - - toggled - GtkSoutSettingsAccessFile - Sun, 26 Jan 2003 05:40:41 GMT - - - False - True - sout_access - - 0 - 1 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - sout_access_udp - True - - toggled - GtkSoutSettingsAccessUdp - Sun, 26 Jan 2003 05:40:51 GMT - - - False - True - sout_access - - 0 - 1 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkRadioButton - sout_access_rtp - True - - toggled - GtkSoutSettingsAccessUdp - Sun, 26 Jan 2003 05:50:02 GMT - - - False - True - sout_access - - 0 - 1 - 2 - 3 - 0 - 0 - False - False - False - False - True - False - - - - - GtkLabel - sout_file_path_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 1 - 2 - 0 - 1 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - combo6 - False - True - False - True - False - - - 2 - 5 - 0 - 1 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - sout_file_path - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 04:54:22 GMT - - True - True - 0 - - - - - - GtkLabel - sout_udp_address_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 1 - 2 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - GtkCombo - sout_udp_address_combo - False - True - False - True - False - - - 2 - 3 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - GtkEntry - GtkCombo:entry - sout_udp_address - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 04:54:29 GMT - - True - True - 0 - - - - - - GtkSpinButton - sout_udp_port - True - - changed - GtkSoutSettingsChanged - Sun, 26 Jan 2003 10:27:52 GMT - - 1 - 0 - False - GTK_UPDATE_ALWAYS - False - False - 1234 - 0 - 65535 - 1 - 10 - 10 - - 4 - 5 - 1 - 2 - 0 - 0 - True - False - False - False - True - False - - - - - GtkHBox - hbox29 - False - 0 - - 4 - 5 - 2 - 3 - 0 - 0 - False - False - False - False - True - True - - - - GtkRadioButton - sout_mux_ts - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 06:42:47 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - GtkRadioButton - sout_mux_ps - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 06:42:53 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - GtkRadioButton - sout_mux_avi - True - - toggled - GtkSoutSettingsChanged - Sun, 26 Jan 2003 06:42:58 GMT - - - False - True - sout_mux - - 0 - False - False - - - - - - GtkLabel - sout_udp_port_label - - GTK_JUSTIFY_CENTER - False - 0 - 0.5 - 0 - 0 - - 3 - 4 - 1 - 2 - 0 - 0 - False - False - False - False - True - False - - - - - - - - GtkHBox - hbox25 - 5 - False - 0 - - 0 - False - True - GTK_PACK_END - - - - GtkHBox - hbox26 - False - 0 - - 3 - True - True - GTK_PACK_END - - - - GtkButton - button1 - True - - clicked - GtkSoutSettingsOk - Sun, 26 Jan 2003 04:52:18 GMT - - - GTK_RELIEF_NORMAL - - 2 - True - True - - - - - GtkButton - button2 - True - - clicked - GtkSoutSettingsCancel - Sun, 26 Jan 2003 04:32:24 GMT - - - GTK_RELIEF_NORMAL - - 2 - True - True - - - - - - - - diff --git a/modules/gui/gtk/gtk_callbacks.c b/modules/gui/gtk/gtk_callbacks.c deleted file mode 100644 index 5c17f40603..0000000000 --- a/modules/gui/gtk/gtk_callbacks.c +++ /dev/null @@ -1,598 +0,0 @@ -/***************************************************************************** - * gtk_callbacks.c : Callbacks for the Gtk+ plugin. - ***************************************************************************** - * Copyright (C) 2000, 2001, 2003 the VideoLAN team - * $Id$ - * - * Authors: Sam Hocevar - * Stéphane Borel - * Julien BLACHE - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include -#include -#include - -#include - -#include - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "common.h" - -#ifdef HAVE_CDDAX -#define CDDA_MRL "cddax://" -#else -#define CDDA_MRL "cdda://" -#endif - -#ifdef HAVE_VCDX -#define VCD_MRL "vcdx://" -#else -#define VCD_MRL "vcdx://" -#endif - -/***************************************************************************** - * Useful function to retrieve p_intf - ****************************************************************************/ -void * E_(__GtkGetIntf)( GtkWidget * widget ) -{ - void *p_data; - - if( GTK_IS_MENU_ITEM( widget ) ) - { - /* Look for a GTK_MENU */ - while( widget->parent && !GTK_IS_MENU( widget ) ) - { - widget = widget->parent; - } - - /* Maybe this one has the data */ - p_data = gtk_object_get_data( GTK_OBJECT( widget ), "p_intf" ); - if( p_data ) - { - return p_data; - } - - /* Otherwise, the parent widget has it */ - widget = gtk_menu_get_attach_widget( GTK_MENU( widget ) ); - p_data = gtk_object_get_data( GTK_OBJECT( widget ), "p_intf" ); - if( p_data ) - { - return p_data; - } - } - - /* We look for the top widget */ - widget = gtk_widget_get_toplevel( GTK_WIDGET( widget ) ); - p_data = gtk_object_get_data( GTK_OBJECT( widget ), "p_intf" ); - - return p_data; -} - -/***************************************************************************** - * Callbacks - *****************************************************************************/ - -/* - * Main interface callbacks - */ - -#ifdef MODULE_NAME_IS_gtk -# define GTKEXIT GtkExit -#else -# define GTKEXIT GnomeExit -#endif - -gboolean GTKEXIT( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - vlc_mutex_lock( &p_intf->change_lock ); - p_intf->p_vlc->b_die = VLC_TRUE; - vlc_mutex_unlock( &p_intf->change_lock ); - - return TRUE; -} - -void GtkClose( GtkMenuItem *menuitem, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - p_intf->b_die = VLC_TRUE; -} - -gboolean GtkWindowDelete( GtkWidget *widget, - GdkEvent *event, - gpointer user_data ) -{ - GTKEXIT( GTK_WIDGET( widget ), user_data ); - - return TRUE; -} - - -gboolean GtkWindowToggle( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - if( GTK_WIDGET_VISIBLE(p_intf->p_sys->p_window) ) - { - gtk_widget_hide( p_intf->p_sys->p_window); - } - else - { - gtk_widget_show( p_intf->p_sys->p_window ); - } - - return TRUE; -} - -gboolean GtkFullscreen( GtkWidget *widget, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - vout_thread_t *p_vout; - - if( p_intf->p_sys->p_input == NULL ) - { - return FALSE; - } - - p_vout = vlc_object_find( p_intf->p_sys->p_input, - VLC_OBJECT_VOUT, FIND_CHILD ); - if( p_vout == NULL ) - { - return FALSE; - } - - p_vout->i_changes |= VOUT_FULLSCREEN_CHANGE; - vlc_object_release( p_vout ); - return TRUE; -} - -void GtkWindowDrag( GtkWidget *widget, - GdkDragContext *drag_context, - gint x, - gint y, - GtkSelectionData *data, - guint info, - guint time, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - GtkDropDataReceived( p_intf, data, info, PLAYLIST_END ); -} - - -/**************************************************************************** - * Slider management - ****************************************************************************/ - -gboolean GtkSliderRelease( GtkWidget *widget, - GdkEventButton *event, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - vlc_mutex_lock( &p_intf->change_lock ); - p_intf->p_sys->b_slider_free = VLC_TRUE; - vlc_mutex_unlock( &p_intf->change_lock ); - - return FALSE; -} - - -gboolean GtkSliderPress( GtkWidget *widget, - GdkEventButton *event, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - vlc_mutex_lock( &p_intf->change_lock ); - p_intf->p_sys->b_slider_free = VLC_FALSE; - vlc_mutex_unlock( &p_intf->change_lock ); - - return FALSE; -} - - -/**************************************************************************** - * DVD specific items - ****************************************************************************/ - -void GtkTitlePrev( GtkButton * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - var_SetVoid( p_intf->p_sys->p_input, "prev-title" ); - - p_intf->p_sys->b_title_update = VLC_TRUE; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); -} - - -void GtkTitleNext( GtkButton * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - var_SetVoid( p_intf->p_sys->p_input, "next-title" ); - - p_intf->p_sys->b_title_update = VLC_TRUE; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); -} - - -void GtkChapterPrev( GtkButton * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - var_SetVoid( p_intf->p_sys->p_input, "prev-chapter" ); - - p_intf->p_sys->b_chapter_update = VLC_TRUE; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); -} - - -void GtkChapterNext( GtkButton * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - var_SetVoid( p_intf->p_sys->p_input, "next-chapter" ); - - p_intf->p_sys->b_chapter_update = VLC_TRUE; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); -} - -/**************************************************************************** - * About box - ****************************************************************************/ - -gboolean GtkAboutShow( GtkWidget *widget, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - if( !GTK_IS_WIDGET( p_intf->p_sys->p_about ) ) - { - p_intf->p_sys->p_about = create_intf_about(); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_about ), - "p_intf", p_intf ); - } - gtk_widget_show( p_intf->p_sys->p_about ); - gdk_window_raise( p_intf->p_sys->p_about->window ); - - return TRUE; -} - -void GtkAboutOk( GtkButton * button, gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( button ); - - gtk_widget_hide( p_intf->p_sys->p_about ); -} - - -/**************************************************************************** - * Jump box - ****************************************************************************/ - -gboolean GtkJumpShow( GtkWidget *widget, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - if( !GTK_IS_WIDGET( p_intf->p_sys->p_jump ) ) - { - p_intf->p_sys->p_jump = create_intf_jump(); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_jump ), - "p_intf", p_intf ); - } - - gtk_widget_show( p_intf->p_sys->p_jump ); - gdk_window_raise( p_intf->p_sys->p_jump->window ); - - return FALSE; -} - - -void GtkJumpOk( GtkButton *button, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - int i_hours, i_minutes, i_seconds; - - if( p_intf->p_sys->p_input == NULL ) - { - return; - } - -#define GET_VALUE( name ) \ - gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->p_jump ), name ) ) ) - i_hours = GET_VALUE( "jump_hour_spinbutton" ); - i_minutes = GET_VALUE( "jump_minute_spinbutton" ); - i_seconds = GET_VALUE( "jump_second_spinbutton" ); -#undef GET_VALUE - - var_SetTime( p_intf->p_sys->p_input, "time", - (int64_t)(i_seconds+60*i_minutes+3600*i_hours)*I64C(1000000)); - - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - - -void GtkJumpCancel( GtkButton *button, - gpointer user_data) -{ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - -/**************************************************************************** - * Callbacks for disc ejection - ****************************************************************************/ -gboolean GtkDiscEject ( GtkWidget *widget, gpointer user_data ) -{ - char *psz_device = NULL; - char *psz_parser; - char *psz_current; - - intf_thread_t *p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - vlc_mutex_lock( &p_playlist->object_lock ); - - if( p_playlist->i_index < 0 ) - { - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - return FALSE; - } - - psz_current = p_playlist->pp_items[ p_playlist->i_index ]->input.psz_name; - - /* - * Get the active input - * Determine whether we can eject a media, ie it's a VCD or DVD - * If it's neither a VCD nor a DVD, then return - */ - - /* - * Don't really know if I must lock the stuff here, we're using it read-only - */ - - if( psz_current != NULL ) - { - if( !strncmp(psz_current, "dvd://", 4) ) - { - switch( psz_current[strlen("dvd://")] ) - { - case '\0': - case '@': - psz_device = config_GetPsz( p_intf, "dvd" ); - break; - default: - /* Omit the first MRL-selector characters */ - psz_device = strdup( psz_current + strlen("dvd://" ) ); - break; - } - } - else if( !strncmp(psz_current, "vcd:", strlen("vcd:")) ) - { - switch( psz_current[strlen("vcd:")] ) - { - case '\0': - case '@': - psz_device = config_GetPsz( p_intf, VCD_MRL ); - break; - default: - /* Omit the beginning MRL-selector characters */ - psz_device = strdup( psz_current + strlen(VCD_MRL) ); - break; - } - } - else if( !strncmp(psz_current, CDDA_MRL, strlen(CDDA_MRL) ) ) - { - switch( psz_current[strlen(CDDA_MRL)] ) - { - case '\0': - case '@': - psz_device = config_GetPsz( p_intf, "cd-audio" ); - break; - default: - /* Omit the beginning MRL-selector characters */ - psz_device = strdup( psz_current + strlen(CDDA_MRL) ); - break; - } - } - else - { - psz_device = strdup( psz_current ); - } - } - - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - - if( psz_device == NULL ) - { - return TRUE; - } - - /* Remove what we have after @ */ - psz_parser = psz_device; - for( psz_parser = psz_device ; *psz_parser ; psz_parser++ ) - { - if( *psz_parser == '@' ) - { - *psz_parser = '\0'; - break; - } - } - - /* If there's a stream playing, we aren't allowed to eject ! */ - if( p_intf->p_sys->p_input == NULL ) - { - msg_Dbg( p_intf, "ejecting %s", psz_device ); - - intf_Eject( p_intf, psz_device ); - } - - free(psz_device); - - return TRUE; -} - -/**************************************************************************** - * Messages window - ****************************************************************************/ - -gboolean GtkMessagesShow( GtkWidget *widget, - gpointer user_data) -{ - static GdkColor black = { 0, 0x0000, 0x0000, 0x0000 }; - static GdkColormap *colormap; - intf_thread_t *p_intf = GtkGetIntf( widget ); - - gtk_widget_show( p_intf->p_sys->p_messages ); - colormap = gdk_colormap_get_system (); - gdk_color_alloc( colormap, &black ); - gdk_window_set_background( p_intf->p_sys->p_messages_text->text_area, - &black ); - - gdk_window_raise( p_intf->p_sys->p_messages->window ); - - gtk_text_set_point( p_intf->p_sys->p_messages_text, - gtk_text_get_length( p_intf->p_sys->p_messages_text ) ); - - return TRUE; -} - -void -GtkMessagesOk (GtkButton *button, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( button ); - gtk_widget_hide( p_intf->p_sys->p_messages ); -} - - -gboolean -GtkMessagesDelete (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - gtk_widget_hide( p_intf->p_sys->p_messages ); - return TRUE; -} - - -void -GtkOpenNotebookChanged (GtkNotebook *notebook, - GtkNotebookPage *page, - gint page_num, - gpointer user_data) -{ - GtkOpenChanged( GTK_WIDGET( notebook ), user_data ); -} - -/**************************************************************************** - * Audio management - ****************************************************************************/ -void GtkVolumeUp ( GtkMenuItem *menuitem, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - audio_volume_t i_volume; - - aout_VolumeUp( p_intf, 1, &i_volume ); - p_intf->p_sys->b_mute = ( i_volume == 0 ) ? 1 : 0; -} - - -void GtkVolumeDown ( GtkMenuItem *menuitem, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - audio_volume_t i_volume; - - aout_VolumeDown( p_intf, 1, &i_volume ); - p_intf->p_sys->b_mute = ( i_volume == 0 ) ? 1 : 0; -} - - -void GtkVolumeMute ( GtkMenuItem *menuitem, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - audio_volume_t i_volume; - - aout_VolumeMute( p_intf, &i_volume ); - p_intf->p_sys->b_mute = ( i_volume == 0 ) ? 1 : 0; -} - -void -GtkMenubarDeinterlace ( GtkMenuItem *menuitem, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - - if( p_intf ) - msg_Dbg( p_intf, "GtkMenubarDeinterlace" ); -} - - -void -GtkPopupDeinterlace (GtkRadioMenuItem *radiomenuitem, - gpointer user_data) -{ - intf_thread_t *p_intf = GtkGetIntf( radiomenuitem ); - - if( p_intf ) - msg_Dbg( p_intf, "GtkPopupDeinterlace" ); -} - - - diff --git a/modules/gui/gtk/gtk_callbacks.h b/modules/gui/gtk/gtk_callbacks.h deleted file mode 100644 index 3ed93b2072..0000000000 --- a/modules/gui/gtk/gtk_callbacks.h +++ /dev/null @@ -1,206 +0,0 @@ -/***************************************************************************** - * gtk_callbacks.h : Callbacks for the gtk plugin. - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include - -#include "config.h" - -#include "control.h" -#include "menu.h" -#include "open.h" -#include "modules.h" -#include "playlist.h" -#include "preferences.h" - -/* General glade callbacks */ - -/***************************************************************************** - * main window callbacks: specific prototypes are in headers listed before - *****************************************************************************/ - -#ifdef MODULE_NAME_IS_gtk -gboolean GtkExit ( GtkWidget *, gpointer ); -#else -gboolean GnomeExit ( GtkWidget *, gpointer ); -#endif -gboolean GtkWindowToggle ( GtkWidget *, gpointer ); -gboolean GtkFullscreen ( GtkWidget *, gpointer ); -gboolean GtkSliderRelease ( GtkWidget *, GdkEventButton *, gpointer ); -gboolean GtkSliderPress ( GtkWidget *, GdkEventButton *, gpointer ); -gboolean GtkWindowDelete ( GtkWidget * widget, GdkEvent *, gpointer ); -gboolean GtkJumpShow ( GtkWidget *, gpointer ); -gboolean GtkAboutShow ( GtkWidget *, gpointer ); -gboolean GtkMessagesShow ( GtkWidget *, gpointer ); -void GtkTitlePrev ( GtkButton * button, gpointer ); -void GtkTitleNext ( GtkButton * button, gpointer ); -void GtkChapterPrev ( GtkButton *, gpointer ); -void GtkChapterNext ( GtkButton * button, gpointer ); -void GtkAboutOk ( GtkButton *, gpointer ); -void GtkWindowDrag ( GtkWidget *, GdkDragContext *, - gint, gint, GtkSelectionData *, - guint , guint, gpointer ); -void GtkJumpOk ( GtkButton * button, gpointer ); -void GtkJumpCancel ( GtkButton * button, gpointer user_data ); - -void GtkNetworkOpenChannel ( GtkToggleButton *, gpointer ); - -gboolean -GtkDiscEject (GtkWidget *widget, - gpointer user_data); - -void -GtkMessagesOk (GtkButton *button, - gpointer user_data); - -gboolean -GtkMessagesDelete (GtkWidget *widget, - GdkEvent *event, - gpointer user_data); - -gboolean -GtkSatOpenShow (GtkWidget *widget, - gpointer user_data); - -void -GtkSatOpenOk (GtkButton *button, - gpointer user_data); - -void -GtkSatOpenCancel (GtkButton *button, - gpointer user_data); - -void -GtkNetworkOpenUDP (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkNetworkOpenMulticast (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkNetworkOpenCS (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkNetworkOpenHTTP (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkNetworkOpenChannel (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkOpenOk (GtkButton *button, - gpointer user_data); - -void -GtkOpenCancel (GtkButton *button, - gpointer user_data); - -void -GtkOpenChanged (GtkWidget *button, - gpointer user_data); - -void -GtkOpenNotebookChanged (GtkNotebook *notebook, - GtkNotebookPage *page, - gint page_num, - gpointer user_data); - -void -GtkSatOpenToggle (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkFileShow (GtkButton *button, - gpointer user_data); - -void -GtkFileOk (GtkButton *button, - gpointer user_data); - -void -GtkFileCancel (GtkButton *button, - gpointer user_data); - -void -GtkClose (GtkMenuItem *menuitem, - gpointer user_data); - -void -GtkVolumeUp (GtkMenuItem *menuitem, - gpointer user_data); - -void -GtkVolumeDown (GtkMenuItem *menuitem, - gpointer user_data); - -void -GtkVolumeMute (GtkMenuItem *menuitem, - gpointer user_data); - -void -GtkMenubarDeinterlace (GtkMenuItem *menuitem, - gpointer user_data); - -void -GtkPopupDeinterlace (GtkRadioMenuItem *radiomenuitem, - gpointer user_data); - - -void -GtkOpenSubtitleShow (GtkButton *button, - gpointer user_data); - -void -GtkSoutSettings (GtkButton *button, - gpointer user_data); - -void -GtkSoutSettingsCancel (GtkButton *button, - gpointer user_data); - -void -GtkSoutSettingsChanged (GtkWidget *button, - gpointer user_data); - -void -GtkSoutSettingsOk (GtkButton *button, - gpointer user_data); - -void -GtkSoutSettingsAccessFile (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkSoutSettingsAccessUdp (GtkToggleButton *togglebutton, - gpointer user_data); - -void -GtkOpenSoutShow (GtkButton *button, - gpointer user_data); - diff --git a/modules/gui/gtk/gtk_interface.c b/modules/gui/gtk/gtk_interface.c deleted file mode 100644 index 5ddf62c8a3..0000000000 --- a/modules/gui/gtk/gtk_interface.c +++ /dev/null @@ -1,3312 +0,0 @@ -/* This file was created automatically by glade and fixed by bootstrap */ - -#include - -#include -#include -#include -#include - -#include -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -GtkWidget* -create_intf_window (void) -{ - GtkWidget *intf_window; - GtkWidget *window_vbox; - GtkWidget *menubar_handlebox; - GtkWidget *menubar; - guint tmp_key; - GtkWidget *menubar_file; - GtkWidget *menubar_file_menu; - GtkAccelGroup *menubar_file_menu_accels; - GtkWidget *menubar_open; - GtkWidget *menubar_disc; - GtkWidget *menubar_network; - GtkWidget *separator4; - GtkWidget *menubar_eject; - GtkWidget *separator14; - GtkWidget *menubar_close; - GtkWidget *menubar_exit; - GtkWidget *menubar_view; - GtkWidget *menubar_view_menu; - GtkAccelGroup *menubar_view_menu_accels; - GtkWidget *menubar_interface_hide; - GtkWidget *separator13; - GtkWidget *menubar_program; - GtkWidget *menubar_title; - GtkWidget *menubar_chapter; - GtkWidget *separator11; - GtkWidget *menubar_playlist; - GtkWidget *menubar_modules; - GtkWidget *menubar_messages; - GtkWidget *menubar_settings; - GtkWidget *menubar_settings_menu; - GtkAccelGroup *menubar_settings_menu_accels; - GtkWidget *menubar_preferences; - GtkWidget *menubar_config_audio; - GtkWidget *menubar_config_audio_menu; - GtkAccelGroup *menubar_config_audio_menu_accels; - GtkWidget *menubar_audio; - GtkWidget *separator18; - GtkWidget *menubar_volume_up; - GtkWidget *menubar_volume_down; - GtkWidget *menubar_volume_mute; - GtkWidget *separator15; - GtkWidget *menubar_audio_channels; - GtkWidget *menubar_audio_device; - GtkWidget *menubar_config_video; - GtkWidget *menubar_config_video_menu; - GtkAccelGroup *menubar_config_video_menu_accels; - GtkWidget *menubar_subpictures; - GtkWidget *separator25; - GtkWidget *menubar_fullscreen; - GtkWidget *separator24; - GtkWidget *menubar_deinterlace; - GtkWidget *menubar_video_device; - GtkWidget *menubar_help; - GtkWidget *menubar_help_menu; - GtkAccelGroup *menubar_help_menu_accels; - GtkWidget *menubar_about; - GtkWidget *toolbar_handlebox; - GtkWidget *toolbar; - GtkWidget *toolbar_open; - GtkWidget *toolbar_disc; - GtkWidget *toolbar_network; - GtkWidget *toolbar_sat; - GtkWidget *toolbar_back; - GtkWidget *toolbar_stop; - GtkWidget *toolbar_eject; - GtkWidget *toolbar_play; - GtkWidget *toolbar_pause; - GtkWidget *toolbar_slow; - GtkWidget *toolbar_fast; - GtkWidget *toolbar_playlist; - GtkWidget *toolbar_prev; - GtkWidget *toolbar_next; - GtkWidget *slider_frame; - GtkWidget *slider; - GtkWidget *file_box; - GtkWidget *label_status; - GtkWidget *dvd_box; - GtkWidget *dvd_label; - GtkWidget *title_box; - GtkWidget *title; - GtkWidget *title_label; - GtkWidget *title_prev_button; - GtkWidget *title_next_button; - GtkWidget *dvd_separator; - GtkWidget *chapter_box; - GtkWidget *chapter; - GtkWidget *chapter_label; - GtkWidget *chapter_prev_button; - GtkWidget *chapter_next_button; - GtkWidget *network_box; - GtkWidget *network_address_label; - GtkWidget *intf_statusbar; - GtkAccelGroup *accel_group; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - accel_group = gtk_accel_group_new (); - - intf_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_object_set_data (GTK_OBJECT (intf_window), "intf_window", intf_window); - gtk_window_set_title (GTK_WINDOW (intf_window), _("VLC media player")); - gtk_window_set_policy (GTK_WINDOW (intf_window), TRUE, TRUE, TRUE); - - window_vbox = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (window_vbox); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "window_vbox", window_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (window_vbox); - gtk_container_add (GTK_CONTAINER (intf_window), window_vbox); - - menubar_handlebox = gtk_handle_box_new (); - gtk_widget_ref (menubar_handlebox); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_handlebox", menubar_handlebox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_handlebox); - gtk_box_pack_start (GTK_BOX (window_vbox), menubar_handlebox, FALSE, TRUE, 0); - - menubar = gtk_menu_bar_new (); - gtk_widget_ref (menubar); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar", menubar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar); - gtk_container_add (GTK_CONTAINER (menubar_handlebox), menubar); - - menubar_file = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_file)->child), - _("_File")); - gtk_widget_add_accelerator (menubar_file, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_file); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file", menubar_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_file); - gtk_container_add (GTK_CONTAINER (menubar), menubar_file); - - menubar_file_menu = gtk_menu_new (); - gtk_widget_ref (menubar_file_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_file_menu", menubar_file_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_file), menubar_file_menu); - menubar_file_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_file_menu)); - - menubar_open = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_open)->child), - _("_Open File...")); - gtk_widget_add_accelerator (menubar_open, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_open); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_open", menubar_open, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_open); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_open); - gtk_tooltips_set_tip (tooltips, menubar_open, _("Open a file"), NULL); - gtk_widget_add_accelerator (menubar_open, "activate", accel_group, - GDK_F3, 0, - GTK_ACCEL_VISIBLE); - - menubar_disc = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_disc)->child), - _("Open _Disc...")); - gtk_widget_add_accelerator (menubar_disc, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_disc", menubar_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_disc); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_disc); - gtk_tooltips_set_tip (tooltips, menubar_disc, _("Open Disc Media"), NULL); - gtk_widget_add_accelerator (menubar_disc, "activate", accel_group, - GDK_F4, 0, - GTK_ACCEL_VISIBLE); - - menubar_network = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_network)->child), - _("_Network Stream...")); - gtk_widget_add_accelerator (menubar_network, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_network); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_network", menubar_network, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_network); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_network); - gtk_tooltips_set_tip (tooltips, menubar_network, _("Select a network stream"), NULL); - gtk_widget_add_accelerator (menubar_network, "activate", accel_group, - GDK_F5, 0, - GTK_ACCEL_VISIBLE); - - separator4 = gtk_menu_item_new (); - gtk_widget_ref (separator4); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator4", separator4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator4); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), separator4); - gtk_widget_set_sensitive (separator4, FALSE); - - menubar_eject = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_eject)->child), - _("_Eject Disc")); - gtk_widget_add_accelerator (menubar_eject, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_eject); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_eject", menubar_eject, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_eject); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_eject); - gtk_tooltips_set_tip (tooltips, menubar_eject, _("Eject disc"), NULL); - - separator14 = gtk_menu_item_new (); - gtk_widget_ref (separator14); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator14", separator14, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator14); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), separator14); - gtk_widget_set_sensitive (separator14, FALSE); - - menubar_close = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_close)->child), - _("_Close")); - gtk_widget_add_accelerator (menubar_close, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_close); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_close", menubar_close, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_close); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_close); - gtk_tooltips_set_tip (tooltips, menubar_close, _("Close the window"), NULL); - gtk_widget_add_accelerator (menubar_close, "activate", accel_group, - GDK_W, GDK_CONTROL_MASK, - GTK_ACCEL_VISIBLE); - - menubar_exit = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_exit)->child), - _("E_xit")); - gtk_widget_add_accelerator (menubar_exit, "activate_item", menubar_file_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_exit); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_exit", menubar_exit, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_exit); - gtk_container_add (GTK_CONTAINER (menubar_file_menu), menubar_exit); - gtk_tooltips_set_tip (tooltips, menubar_exit, _("Exit the program"), NULL); - gtk_widget_add_accelerator (menubar_exit, "activate", accel_group, - GDK_Q, GDK_CONTROL_MASK, - GTK_ACCEL_VISIBLE); - - menubar_view = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_view)->child), - _("_View")); - gtk_widget_add_accelerator (menubar_view, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_view); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view", menubar_view, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_view); - gtk_container_add (GTK_CONTAINER (menubar), menubar_view); - - menubar_view_menu = gtk_menu_new (); - gtk_widget_ref (menubar_view_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_view_menu", menubar_view_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_view), menubar_view_menu); - menubar_view_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_view_menu)); - - menubar_interface_hide = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_interface_hide)->child), - _("_Hide interface")); - gtk_widget_add_accelerator (menubar_interface_hide, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_interface_hide); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_interface_hide", menubar_interface_hide, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_interface_hide); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_interface_hide); - gtk_tooltips_set_tip (tooltips, menubar_interface_hide, _("Hide the main interface window"), NULL); - - separator13 = gtk_menu_item_new (); - gtk_widget_ref (separator13); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator13", separator13, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator13); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), separator13); - gtk_widget_set_sensitive (separator13, FALSE); - - menubar_program = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_program)->child), - _("Progr_am")); - gtk_widget_add_accelerator (menubar_program, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_program); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_program", menubar_program, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_program); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_program); - gtk_widget_set_sensitive (menubar_program, FALSE); - gtk_tooltips_set_tip (tooltips, menubar_program, _("Choose the program"), NULL); - - menubar_title = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_title)->child), - _("_Title")); - gtk_widget_add_accelerator (menubar_title, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_title); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_title", menubar_title, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_title); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_title); - gtk_widget_set_sensitive (menubar_title, FALSE); - gtk_tooltips_set_tip (tooltips, menubar_title, _("Navigate through the stream"), NULL); - - menubar_chapter = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_chapter)->child), - _("_Chapter")); - gtk_widget_add_accelerator (menubar_chapter, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_chapter); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_chapter", menubar_chapter, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_chapter); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_chapter); - gtk_widget_set_sensitive (menubar_chapter, FALSE); - - separator11 = gtk_menu_item_new (); - gtk_widget_ref (separator11); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator11", separator11, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator11); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), separator11); - gtk_widget_set_sensitive (separator11, FALSE); - - menubar_playlist = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_playlist)->child), - _("_Playlist...")); - gtk_widget_add_accelerator (menubar_playlist, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_playlist); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_playlist", menubar_playlist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_playlist); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_playlist); - gtk_tooltips_set_tip (tooltips, menubar_playlist, _("Open the playlist window"), NULL); - - menubar_modules = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_modules)->child), - _("_Modules...")); - gtk_widget_add_accelerator (menubar_modules, "activate_item", menubar_view_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_modules); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_modules", menubar_modules, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_modules); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_modules); - gtk_widget_set_sensitive (menubar_modules, FALSE); - gtk_tooltips_set_tip (tooltips, menubar_modules, _("Open the module manager"), NULL); - - menubar_messages = gtk_menu_item_new_with_label (_("Messages...")); - gtk_widget_ref (menubar_messages); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_messages", menubar_messages, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_messages); - gtk_container_add (GTK_CONTAINER (menubar_view_menu), menubar_messages); - gtk_tooltips_set_tip (tooltips, menubar_messages, _("Open the messages window"), NULL); - - menubar_settings = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_settings)->child), - _("_Settings")); - gtk_widget_add_accelerator (menubar_settings, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_settings); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings", menubar_settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_settings); - gtk_container_add (GTK_CONTAINER (menubar), menubar_settings); - - menubar_settings_menu = gtk_menu_new (); - gtk_widget_ref (menubar_settings_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_settings_menu", menubar_settings_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_settings), menubar_settings_menu); - menubar_settings_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_settings_menu)); - - menubar_preferences = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_preferences)->child), - _("_Preferences...")); - gtk_widget_add_accelerator (menubar_preferences, "activate_item", menubar_settings_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_preferences); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_preferences", menubar_preferences, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_preferences); - gtk_container_add (GTK_CONTAINER (menubar_settings_menu), menubar_preferences); - gtk_tooltips_set_tip (tooltips, menubar_preferences, _("Configure the application"), NULL); - - menubar_config_audio = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_config_audio)->child), - _("_Audio")); - gtk_widget_add_accelerator (menubar_config_audio, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_config_audio); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_audio", menubar_config_audio, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_config_audio); - gtk_container_add (GTK_CONTAINER (menubar), menubar_config_audio); - - menubar_config_audio_menu = gtk_menu_new (); - gtk_widget_ref (menubar_config_audio_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_audio_menu", menubar_config_audio_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_config_audio), menubar_config_audio_menu); - menubar_config_audio_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_config_audio_menu)); - - menubar_audio = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_audio)->child), - _("_Language")); - gtk_widget_add_accelerator (menubar_audio, "activate_item", menubar_config_audio_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_audio); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio", menubar_audio, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_audio); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_audio); - gtk_widget_set_sensitive (menubar_audio, FALSE); - gtk_tooltips_set_tip (tooltips, menubar_audio, _("Select audio channel"), NULL); - - separator18 = gtk_menu_item_new (); - gtk_widget_ref (separator18); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator18", separator18, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator18); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), separator18); - gtk_widget_set_sensitive (separator18, FALSE); - - menubar_volume_up = gtk_menu_item_new_with_label (_("Volume Up")); - gtk_widget_ref (menubar_volume_up); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_up", menubar_volume_up, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_volume_up); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_volume_up); - - menubar_volume_down = gtk_menu_item_new_with_label (_("Volume Down")); - gtk_widget_ref (menubar_volume_down); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_down", menubar_volume_down, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_volume_down); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_volume_down); - - menubar_volume_mute = gtk_menu_item_new_with_label (_("Mute")); - gtk_widget_ref (menubar_volume_mute); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_volume_mute", menubar_volume_mute, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_volume_mute); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_volume_mute); - - separator15 = gtk_menu_item_new (); - gtk_widget_ref (separator15); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator15", separator15, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator15); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), separator15); - gtk_widget_set_sensitive (separator15, FALSE); - - menubar_audio_channels = gtk_menu_item_new_with_label (_("Channels")); - gtk_widget_ref (menubar_audio_channels); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_channels", menubar_audio_channels, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_audio_channels); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_audio_channels); - - menubar_audio_device = gtk_menu_item_new_with_label (_("Device")); - gtk_widget_ref (menubar_audio_device); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_audio_device", menubar_audio_device, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_audio_device); - gtk_container_add (GTK_CONTAINER (menubar_config_audio_menu), menubar_audio_device); - - menubar_config_video = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_config_video)->child), - _("_Video")); - gtk_widget_add_accelerator (menubar_config_video, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_config_video); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_video", menubar_config_video, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_config_video); - gtk_container_add (GTK_CONTAINER (menubar), menubar_config_video); - - menubar_config_video_menu = gtk_menu_new (); - gtk_widget_ref (menubar_config_video_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_config_video_menu", menubar_config_video_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_config_video), menubar_config_video_menu); - menubar_config_video_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_config_video_menu)); - - menubar_subpictures = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_subpictures)->child), - _("_Subtitles")); - gtk_widget_add_accelerator (menubar_subpictures, "activate_item", menubar_config_video_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_subpictures); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_subpictures", menubar_subpictures, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_subpictures); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), menubar_subpictures); - gtk_widget_set_sensitive (menubar_subpictures, FALSE); - gtk_tooltips_set_tip (tooltips, menubar_subpictures, _("Select subtitles channel"), NULL); - - separator25 = gtk_menu_item_new (); - gtk_widget_ref (separator25); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator25", separator25, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator25); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), separator25); - gtk_widget_set_sensitive (separator25, FALSE); - - menubar_fullscreen = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_fullscreen)->child), - _("_Fullscreen")); - gtk_widget_add_accelerator (menubar_fullscreen, "activate_item", menubar_config_video_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_fullscreen); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_fullscreen", menubar_fullscreen, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_fullscreen); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), menubar_fullscreen); - - separator24 = gtk_menu_item_new (); - gtk_widget_ref (separator24); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "separator24", separator24, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator24); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), separator24); - gtk_widget_set_sensitive (separator24, FALSE); - - menubar_deinterlace = gtk_menu_item_new_with_label (_("Deinterlace")); - gtk_widget_ref (menubar_deinterlace); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_deinterlace", menubar_deinterlace, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_deinterlace); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), menubar_deinterlace); - - menubar_video_device = gtk_menu_item_new_with_label (_("Screen")); - gtk_widget_ref (menubar_video_device); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_video_device", menubar_video_device, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_video_device); - gtk_container_add (GTK_CONTAINER (menubar_config_video_menu), menubar_video_device); - - menubar_help = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_help)->child), - _("_Help")); - gtk_widget_add_accelerator (menubar_help, "activate_item", accel_group, - tmp_key, GDK_MOD1_MASK, (GtkAccelFlags) 0); - gtk_widget_ref (menubar_help); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help", menubar_help, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_help); - gtk_container_add (GTK_CONTAINER (menubar), menubar_help); - - menubar_help_menu = gtk_menu_new (); - gtk_widget_ref (menubar_help_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_help_menu", menubar_help_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menubar_help), menubar_help_menu); - menubar_help_menu_accels = gtk_menu_get_accel_group (GTK_MENU (menubar_help_menu)); - - menubar_about = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (menubar_about)->child), - _("_About...")); - gtk_widget_add_accelerator (menubar_about, "activate_item", menubar_help_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (menubar_about); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "menubar_about", menubar_about, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (menubar_about); - gtk_container_add (GTK_CONTAINER (menubar_help_menu), menubar_about); - gtk_tooltips_set_tip (tooltips, menubar_about, _("About this application"), NULL); - - toolbar_handlebox = gtk_handle_box_new (); - gtk_widget_ref (toolbar_handlebox); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_handlebox", toolbar_handlebox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_handlebox); - gtk_box_pack_start (GTK_BOX (window_vbox), toolbar_handlebox, FALSE, TRUE, 0); - - toolbar = gtk_toolbar_new (); - gtk_widget_ref (toolbar); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar", toolbar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar); - gtk_container_add (GTK_CONTAINER (toolbar_handlebox), toolbar); - gtk_container_set_border_width (GTK_CONTAINER (toolbar), 1); - //gtk_toolbar_set_space_size (GTK_TOOLBAR (toolbar), 16); - //gtk_toolbar_set_space_style (GTK_TOOLBAR (toolbar), GTK_TOOLBAR_SPACE_LINE); - //gtk_toolbar_set_button_relief (GTK_TOOLBAR (toolbar), GTK_RELIEF_NONE); - - toolbar_open = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("File"), - _("Open a file"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_open); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_open", toolbar_open, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_open); - - toolbar_disc = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Disc"), - _("Open Disc"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_disc", toolbar_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_disc); - - toolbar_network = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Net"), - _("Select a network stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_network); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_network", toolbar_network, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_network); - - toolbar_sat = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Sat"), - _("Open a Satellite Card"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_sat); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_sat", toolbar_sat, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_sat); - - gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); - - toolbar_back = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Back"), - _("Go Backward"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_back); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_back", toolbar_back, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_back); - gtk_widget_set_sensitive (toolbar_back, FALSE); - - toolbar_stop = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Stop"), - _("Stop Stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_stop); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_stop", toolbar_stop, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_stop); - - toolbar_eject = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Eject"), - NULL, NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_eject); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_eject", toolbar_eject, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_eject); - - toolbar_play = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Play"), - _("Play Stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_play); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_play", toolbar_play, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_play); - - toolbar_pause = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Pause"), - _("Pause Stream"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_pause); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_pause", toolbar_pause, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_pause); - gtk_widget_set_sensitive (toolbar_pause, FALSE); - - gtk_toolbar_append_space (GTK_TOOLBAR (toolbar)); - - toolbar_slow = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Slow"), - _("Play Slower"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_slow); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_slow", toolbar_slow, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_slow); - gtk_widget_set_sensitive (toolbar_slow, FALSE); - - toolbar_fast = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Fast"), - _("Play Faster"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_fast); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_fast", toolbar_fast, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_fast); - gtk_widget_set_sensitive (toolbar_fast, FALSE); - - toolbar_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Playlist"), - _("Open Playlist"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_playlist); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_playlist", toolbar_playlist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_playlist); - - toolbar_prev = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Prev"), - _("Previous File"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_prev); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_prev", toolbar_prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_prev); - - toolbar_next = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("Next"), - _("Next File"), NULL, - NULL, NULL, NULL); - gtk_widget_ref (toolbar_next); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "toolbar_next", toolbar_next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (toolbar_next); - - slider_frame = gtk_frame_new ("-:--:--"); - gtk_widget_ref (slider_frame); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider_frame", slider_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (window_vbox), slider_frame, TRUE, TRUE, 0); - gtk_frame_set_label_align (GTK_FRAME (slider_frame), 0.05, 0.5); - - slider = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 100, 1, 6.25, 0))); - gtk_widget_ref (slider); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "slider", slider, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (slider); - gtk_container_add (GTK_CONTAINER (slider_frame), slider); - gtk_widget_set_usize (slider, 500, 15); - gtk_scale_set_draw_value (GTK_SCALE (slider), FALSE); - gtk_scale_set_digits (GTK_SCALE (slider), 3); - - file_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (file_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "file_box", file_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (file_box); - gtk_box_pack_start (GTK_BOX (window_vbox), file_box, TRUE, TRUE, 0); - gtk_widget_set_usize (file_box, 500, 24); - - label_status = gtk_label_new (""); - gtk_widget_ref (label_status); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "label_status", label_status, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label_status); - gtk_box_pack_start (GTK_BOX (file_box), label_status, TRUE, TRUE, 0); - - dvd_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (dvd_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_box", dvd_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (window_vbox), dvd_box, TRUE, TRUE, 0); - gtk_widget_set_usize (dvd_box, 500, 24); - - dvd_label = gtk_label_new (_("Disc")); - gtk_widget_ref (dvd_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_label", dvd_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dvd_label); - gtk_box_pack_start (GTK_BOX (dvd_box), dvd_label, TRUE, FALSE, 0); - - title_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (title_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_box", title_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_box); - gtk_box_pack_start (GTK_BOX (dvd_box), title_box, TRUE, TRUE, 0); - - title = gtk_label_new (_("Title:")); - gtk_widget_ref (title); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title", title, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title); - gtk_box_pack_start (GTK_BOX (title_box), title, FALSE, FALSE, 5); - - title_label = gtk_label_new ("--"); - gtk_widget_ref (title_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_label", title_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_label); - gtk_box_pack_start (GTK_BOX (title_box), title_label, FALSE, FALSE, 5); - - title_prev_button = gtk_button_new_with_label (_("Prev")); - gtk_widget_ref (title_prev_button); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_prev_button", title_prev_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_prev_button); - gtk_box_pack_start (GTK_BOX (title_box), title_prev_button, FALSE, FALSE, 5); - gtk_button_set_relief (GTK_BUTTON (title_prev_button), GTK_RELIEF_NONE); - - title_next_button = gtk_button_new_with_label (_("Next")); - gtk_widget_ref (title_next_button); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "title_next_button", title_next_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (title_next_button); - gtk_box_pack_start (GTK_BOX (title_box), title_next_button, FALSE, FALSE, 5); - gtk_button_set_relief (GTK_BUTTON (title_next_button), GTK_RELIEF_NONE); - - dvd_separator = gtk_vseparator_new (); - gtk_widget_ref (dvd_separator); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "dvd_separator", dvd_separator, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (dvd_separator); - gtk_box_pack_start (GTK_BOX (dvd_box), dvd_separator, TRUE, TRUE, 0); - - chapter_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (chapter_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_box", chapter_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter_box); - gtk_box_pack_start (GTK_BOX (dvd_box), chapter_box, TRUE, TRUE, 0); - - chapter = gtk_label_new (_("Chapter:")); - gtk_widget_ref (chapter); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter", chapter, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter); - gtk_box_pack_start (GTK_BOX (chapter_box), chapter, FALSE, FALSE, 5); - - chapter_label = gtk_label_new ("---"); - gtk_widget_ref (chapter_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_label", chapter_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter_label); - gtk_box_pack_start (GTK_BOX (chapter_box), chapter_label, FALSE, FALSE, 5); - - chapter_prev_button = gtk_button_new_with_label (_("Prev")); - gtk_widget_ref (chapter_prev_button); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_prev_button", chapter_prev_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter_prev_button); - gtk_box_pack_start (GTK_BOX (chapter_box), chapter_prev_button, FALSE, FALSE, 5); - gtk_button_set_relief (GTK_BUTTON (chapter_prev_button), GTK_RELIEF_NONE); - - chapter_next_button = gtk_button_new_with_label (_("Next")); - gtk_widget_ref (chapter_next_button); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "chapter_next_button", chapter_next_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (chapter_next_button); - gtk_box_pack_start (GTK_BOX (chapter_box), chapter_next_button, FALSE, FALSE, 5); - gtk_button_set_relief (GTK_BUTTON (chapter_next_button), GTK_RELIEF_NONE); - - network_box = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (network_box); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_box", network_box, - (GtkDestroyNotify) gtk_widget_unref); - gtk_box_pack_start (GTK_BOX (window_vbox), network_box, TRUE, TRUE, 0); - gtk_widget_set_usize (network_box, 500, 24); - - network_address_label = gtk_label_new (_("No server")); - gtk_widget_ref (network_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "network_address_label", network_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_address_label); - gtk_box_pack_start (GTK_BOX (network_box), network_address_label, TRUE, TRUE, 0); - - intf_statusbar = gtk_statusbar_new (); - gtk_widget_ref (intf_statusbar); - gtk_object_set_data_full (GTK_OBJECT (intf_window), "intf_statusbar", intf_statusbar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (intf_statusbar); - gtk_box_pack_start (GTK_BOX (window_vbox), intf_statusbar, FALSE, FALSE, 0); - - gtk_signal_connect (GTK_OBJECT (intf_window), "drag_data_received", - GTK_SIGNAL_FUNC (GtkWindowDrag), - NULL); - gtk_signal_connect (GTK_OBJECT (intf_window), "delete_event", - GTK_SIGNAL_FUNC (GtkWindowDelete), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_open), "activate", - GTK_SIGNAL_FUNC (GtkFileOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_disc), "activate", - GTK_SIGNAL_FUNC (GtkDiscOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_network), "activate", - GTK_SIGNAL_FUNC (GtkNetworkOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_eject), "activate", - GTK_SIGNAL_FUNC (GtkDiscEject), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_close), "activate", - GTK_SIGNAL_FUNC (GtkClose), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_exit), "activate", - GTK_SIGNAL_FUNC (GtkExit), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_interface_hide), "activate", - GTK_SIGNAL_FUNC (GtkWindowToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_playlist), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_modules), "activate", - GTK_SIGNAL_FUNC (GtkModulesShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_messages), "activate", - GTK_SIGNAL_FUNC (GtkMessagesShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_preferences), "activate", - GTK_SIGNAL_FUNC (GtkPreferencesShow), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_volume_up), "activate", - GTK_SIGNAL_FUNC (GtkVolumeUp), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_volume_down), "activate", - GTK_SIGNAL_FUNC (GtkVolumeDown), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_volume_mute), "activate", - GTK_SIGNAL_FUNC (GtkVolumeMute), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_fullscreen), "activate", - GTK_SIGNAL_FUNC (GtkFullscreen), - NULL); - gtk_signal_connect (GTK_OBJECT (menubar_about), "activate", - GTK_SIGNAL_FUNC (GtkAboutShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_open), "clicked", - GTK_SIGNAL_FUNC (GtkFileOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_disc), "clicked", - GTK_SIGNAL_FUNC (GtkDiscOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_network), "clicked", - GTK_SIGNAL_FUNC (GtkNetworkOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_sat), "clicked", - GTK_SIGNAL_FUNC (GtkSatOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_back), "clicked", - GTK_SIGNAL_FUNC (GtkControlBack), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_stop), "clicked", - GTK_SIGNAL_FUNC (GtkControlStop), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_eject), "clicked", - GTK_SIGNAL_FUNC (GtkDiscEject), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_play), "clicked", - GTK_SIGNAL_FUNC (GtkControlPlay), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_pause), "clicked", - GTK_SIGNAL_FUNC (GtkControlPause), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_slow), "clicked", - GTK_SIGNAL_FUNC (GtkControlSlow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_fast), "clicked", - GTK_SIGNAL_FUNC (GtkControlFast), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_playlist), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistShow), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_prev), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistPrev), - NULL); - gtk_signal_connect (GTK_OBJECT (toolbar_next), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistNext), - NULL); - gtk_signal_connect (GTK_OBJECT (slider), "button_release_event", - GTK_SIGNAL_FUNC (GtkSliderRelease), - NULL); - gtk_signal_connect (GTK_OBJECT (slider), "button_press_event", - GTK_SIGNAL_FUNC (GtkSliderPress), - NULL); - gtk_signal_connect (GTK_OBJECT (title_prev_button), "clicked", - GTK_SIGNAL_FUNC (GtkTitlePrev), - NULL); - gtk_signal_connect (GTK_OBJECT (title_next_button), "clicked", - GTK_SIGNAL_FUNC (GtkTitleNext), - NULL); - gtk_signal_connect (GTK_OBJECT (chapter_prev_button), "clicked", - GTK_SIGNAL_FUNC (GtkChapterPrev), - NULL); - gtk_signal_connect (GTK_OBJECT (chapter_next_button), "clicked", - GTK_SIGNAL_FUNC (GtkChapterNext), - NULL); - - gtk_object_set_data (GTK_OBJECT (intf_window), "tooltips", tooltips); - - gtk_window_add_accel_group (GTK_WINDOW (intf_window), accel_group); - - return intf_window; -} - -GtkWidget* -create_intf_popup (void) -{ - GtkWidget *intf_popup; - GtkAccelGroup *intf_popup_accels; - guint tmp_key; - GtkWidget *popup_play; - GtkWidget *popup_pause; - GtkWidget *popup_stop; - GtkWidget *popup_back; - GtkWidget *popup_slow; - GtkWidget *popup_fast; - GtkWidget *separator16; - GtkWidget *popup_next; - GtkWidget *popup_prev; - GtkWidget *popup_jump; - GtkWidget *separator27; - GtkWidget *popup_program; - GtkWidget *popup_navigation; - GtkWidget *popup_audio; - GtkWidget *popup_audio_menu; - GtkAccelGroup *popup_audio_menu_accels; - GtkWidget *popup_language; - GtkWidget *separator19; - GtkWidget *popup_volume_up; - GtkWidget *popup_volume_down; - GtkWidget *popup_volume_mute; - GtkWidget *separator20; - GtkWidget *popup_audio_channels; - GtkWidget *popup_audio_device; - GtkWidget *popup_video; - GtkWidget *popup_video_menu; - GtkAccelGroup *popup_video_menu_accels; - GtkWidget *popup_subpictures; - GtkWidget *separator21; - GtkWidget *popup_fullscreen; - GtkWidget *separator23; - GtkWidget *popup_deinterlace; - GtkWidget *popup_video_device; - GtkWidget *separator26; - GtkWidget *popup_open; - GtkWidget *popup_open_menu; - GtkAccelGroup *popup_open_menu_accels; - GtkWidget *popup_file; - GtkWidget *popup_disc; - GtkWidget *popup_network; - GtkWidget *separator12; - GtkWidget *popup_about; - GtkWidget *popup_interface_toggle; - GtkWidget *popup_playlist; - GtkWidget *popup_preferences; - GtkWidget *separator9; - GtkWidget *popup_exit; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - intf_popup = gtk_menu_new (); - gtk_object_set_data (GTK_OBJECT (intf_popup), "intf_popup", intf_popup); - intf_popup_accels = gtk_menu_get_accel_group (GTK_MENU (intf_popup)); - - popup_play = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_play)->child), - _("_Play")); - gtk_widget_add_accelerator (popup_play, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_play); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_play", popup_play, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_play); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_play); - - popup_pause = gtk_menu_item_new_with_label (_("Pause")); - gtk_widget_ref (popup_pause); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_pause", popup_pause, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_pause); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_pause); - gtk_widget_set_sensitive (popup_pause, FALSE); - - popup_stop = gtk_menu_item_new_with_label (_("Stop")); - gtk_widget_ref (popup_stop); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_stop", popup_stop, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_stop); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_stop); - - popup_back = gtk_menu_item_new_with_label (_("Back")); - gtk_widget_ref (popup_back); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_back", popup_back, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_back); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_back); - gtk_widget_set_sensitive (popup_back, FALSE); - - popup_slow = gtk_menu_item_new_with_label (_("Slow")); - gtk_widget_ref (popup_slow); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_slow", popup_slow, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_slow); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_slow); - gtk_widget_set_sensitive (popup_slow, FALSE); - - popup_fast = gtk_menu_item_new_with_label (_("Fast")); - gtk_widget_ref (popup_fast); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fast", popup_fast, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_fast); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_fast); - gtk_widget_set_sensitive (popup_fast, FALSE); - - separator16 = gtk_menu_item_new (); - gtk_widget_ref (separator16); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator16", separator16, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator16); - gtk_container_add (GTK_CONTAINER (intf_popup), separator16); - gtk_widget_set_sensitive (separator16, FALSE); - - popup_next = gtk_menu_item_new_with_label (_("Next")); - gtk_widget_ref (popup_next); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_next", popup_next, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_next); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_next); - - popup_prev = gtk_menu_item_new_with_label (_("Prev")); - gtk_widget_ref (popup_prev); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_prev", popup_prev, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_prev); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_prev); - - popup_jump = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_jump)->child), - _("_Jump...")); - gtk_widget_add_accelerator (popup_jump, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_jump); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_jump", popup_jump, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_jump); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_jump); - - separator27 = gtk_menu_item_new (); - gtk_widget_ref (separator27); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator27", separator27, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator27); - gtk_container_add (GTK_CONTAINER (intf_popup), separator27); - gtk_widget_set_sensitive (separator27, FALSE); - - popup_program = gtk_menu_item_new_with_label (_("Program")); - gtk_widget_ref (popup_program); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_program", popup_program, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_program); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_program); - gtk_widget_set_sensitive (popup_program, FALSE); - - popup_navigation = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_navigation)->child), - _("_Navigation")); - gtk_widget_add_accelerator (popup_navigation, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_navigation); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_navigation", popup_navigation, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_navigation); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_navigation); - gtk_widget_set_sensitive (popup_navigation, FALSE); - - popup_audio = gtk_menu_item_new_with_label (_("Audio")); - gtk_widget_ref (popup_audio); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio", popup_audio, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_audio); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_audio); - - popup_audio_menu = gtk_menu_new (); - gtk_widget_ref (popup_audio_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_menu", popup_audio_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (popup_audio), popup_audio_menu); - popup_audio_menu_accels = gtk_menu_get_accel_group (GTK_MENU (popup_audio_menu)); - - popup_language = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_language)->child), - _("_Language")); - gtk_widget_add_accelerator (popup_language, "activate_item", popup_audio_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_language); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_language", popup_language, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_language); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_language); - gtk_widget_set_sensitive (popup_language, FALSE); - - separator19 = gtk_menu_item_new (); - gtk_widget_ref (separator19); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator19", separator19, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator19); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), separator19); - gtk_widget_set_sensitive (separator19, FALSE); - - popup_volume_up = gtk_menu_item_new_with_label (_("Volume Up")); - gtk_widget_ref (popup_volume_up); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_up", popup_volume_up, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_volume_up); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_volume_up); - - popup_volume_down = gtk_menu_item_new_with_label (_("Volume Down")); - gtk_widget_ref (popup_volume_down); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_down", popup_volume_down, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_volume_down); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_volume_down); - - popup_volume_mute = gtk_menu_item_new_with_label (_("Mute")); - gtk_widget_ref (popup_volume_mute); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_volume_mute", popup_volume_mute, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_volume_mute); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_volume_mute); - - separator20 = gtk_menu_item_new (); - gtk_widget_ref (separator20); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator20", separator20, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator20); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), separator20); - gtk_widget_set_sensitive (separator20, FALSE); - - popup_audio_channels = gtk_menu_item_new_with_label (_("Channels")); - gtk_widget_ref (popup_audio_channels); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_channels", popup_audio_channels, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_audio_channels); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_audio_channels); - - popup_audio_device = gtk_menu_item_new_with_label (_("Device")); - gtk_widget_ref (popup_audio_device); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_audio_device", popup_audio_device, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_audio_device); - gtk_container_add (GTK_CONTAINER (popup_audio_menu), popup_audio_device); - - popup_video = gtk_menu_item_new_with_label (_("Video")); - gtk_widget_ref (popup_video); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video", popup_video, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_video); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_video); - - popup_video_menu = gtk_menu_new (); - gtk_widget_ref (popup_video_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video_menu", popup_video_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (popup_video), popup_video_menu); - popup_video_menu_accels = gtk_menu_get_accel_group (GTK_MENU (popup_video_menu)); - - popup_subpictures = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_subpictures)->child), - _("_Subtitles")); - gtk_widget_add_accelerator (popup_subpictures, "activate_item", popup_video_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_subpictures); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_subpictures", popup_subpictures, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_subpictures); - gtk_container_add (GTK_CONTAINER (popup_video_menu), popup_subpictures); - gtk_widget_set_sensitive (popup_subpictures, FALSE); - - separator21 = gtk_menu_item_new (); - gtk_widget_ref (separator21); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator21", separator21, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator21); - gtk_container_add (GTK_CONTAINER (popup_video_menu), separator21); - gtk_widget_set_sensitive (separator21, FALSE); - - popup_fullscreen = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_fullscreen)->child), - _("_Fullscreen")); - gtk_widget_add_accelerator (popup_fullscreen, "activate_item", popup_video_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_fullscreen); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_fullscreen", popup_fullscreen, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_fullscreen); - gtk_container_add (GTK_CONTAINER (popup_video_menu), popup_fullscreen); - - separator23 = gtk_menu_item_new (); - gtk_widget_ref (separator23); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator23", separator23, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator23); - gtk_container_add (GTK_CONTAINER (popup_video_menu), separator23); - gtk_widget_set_sensitive (separator23, FALSE); - - popup_deinterlace = gtk_menu_item_new_with_label (_("Deinterlace")); - gtk_widget_ref (popup_deinterlace); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_deinterlace", popup_deinterlace, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_deinterlace); - gtk_container_add (GTK_CONTAINER (popup_video_menu), popup_deinterlace); - - popup_video_device = gtk_menu_item_new_with_label (_("Screen")); - gtk_widget_ref (popup_video_device); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_video_device", popup_video_device, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_video_device); - gtk_container_add (GTK_CONTAINER (popup_video_menu), popup_video_device); - - separator26 = gtk_menu_item_new (); - gtk_widget_ref (separator26); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator26", separator26, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator26); - gtk_container_add (GTK_CONTAINER (intf_popup), separator26); - gtk_widget_set_sensitive (separator26, FALSE); - - popup_open = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_open)->child), - _("_File")); - gtk_widget_add_accelerator (popup_open, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_open); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open", popup_open, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_open); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_open); - - popup_open_menu = gtk_menu_new (); - gtk_widget_ref (popup_open_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_open_menu", popup_open_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (popup_open), popup_open_menu); - popup_open_menu_accels = gtk_menu_get_accel_group (GTK_MENU (popup_open_menu)); - - popup_file = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_file)->child), - _("_Open File...")); - gtk_widget_add_accelerator (popup_file, "activate_item", popup_open_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_file); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_file", popup_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_file); - gtk_container_add (GTK_CONTAINER (popup_open_menu), popup_file); - gtk_tooltips_set_tip (tooltips, popup_file, _("Open a file"), NULL); - - popup_disc = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_disc)->child), - _("Open _Disc...")); - gtk_widget_add_accelerator (popup_disc, "activate_item", popup_open_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_disc", popup_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_disc); - gtk_container_add (GTK_CONTAINER (popup_open_menu), popup_disc); - gtk_tooltips_set_tip (tooltips, popup_disc, _("Open Disc Media"), NULL); - - popup_network = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_network)->child), - _("_Network Stream...")); - gtk_widget_add_accelerator (popup_network, "activate_item", popup_open_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_network); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_network", popup_network, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_network); - gtk_container_add (GTK_CONTAINER (popup_open_menu), popup_network); - gtk_tooltips_set_tip (tooltips, popup_network, _("Select a network stream"), NULL); - - separator12 = gtk_menu_item_new (); - gtk_widget_ref (separator12); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator12", separator12, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator12); - gtk_container_add (GTK_CONTAINER (popup_open_menu), separator12); - gtk_widget_set_sensitive (separator12, FALSE); - - popup_about = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_about)->child), - _("_About...")); - gtk_widget_add_accelerator (popup_about, "activate_item", popup_open_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_about); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_about", popup_about, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_about); - gtk_container_add (GTK_CONTAINER (popup_open_menu), popup_about); - - popup_interface_toggle = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_interface_toggle)->child), - _("Toggle _Interface")); - gtk_widget_add_accelerator (popup_interface_toggle, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_interface_toggle); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_interface_toggle", popup_interface_toggle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_interface_toggle); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_interface_toggle); - - popup_playlist = gtk_menu_item_new_with_label (_("Playlist...")); - gtk_widget_ref (popup_playlist); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_playlist", popup_playlist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_playlist); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_playlist); - - popup_preferences = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_preferences)->child), - _("_Preferences...")); - gtk_widget_add_accelerator (popup_preferences, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_preferences); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_preferences", popup_preferences, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_preferences); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_preferences); - - separator9 = gtk_menu_item_new (); - gtk_widget_ref (separator9); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "separator9", separator9, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (separator9); - gtk_container_add (GTK_CONTAINER (intf_popup), separator9); - gtk_widget_set_sensitive (separator9, FALSE); - - popup_exit = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (popup_exit)->child), - _("E_xit")); - gtk_widget_add_accelerator (popup_exit, "activate_item", intf_popup_accels, - tmp_key, 0, 0); - gtk_widget_ref (popup_exit); - gtk_object_set_data_full (GTK_OBJECT (intf_popup), "popup_exit", popup_exit, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (popup_exit); - gtk_container_add (GTK_CONTAINER (intf_popup), popup_exit); - - gtk_signal_connect (GTK_OBJECT (popup_play), "activate", - GTK_SIGNAL_FUNC (GtkControlPlay), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_pause), "activate", - GTK_SIGNAL_FUNC (GtkControlPause), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_stop), "activate", - GTK_SIGNAL_FUNC (GtkControlStop), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_back), "activate", - GTK_SIGNAL_FUNC (GtkControlBack), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_slow), "activate", - GTK_SIGNAL_FUNC (GtkControlSlow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_fast), "activate", - GTK_SIGNAL_FUNC (GtkControlFast), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_next), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistNext), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_prev), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistPrev), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_jump), "activate", - GTK_SIGNAL_FUNC (GtkJumpShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_volume_up), "activate", - GTK_SIGNAL_FUNC (GtkVolumeUp), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_volume_down), "activate", - GTK_SIGNAL_FUNC (GtkVolumeDown), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_volume_mute), "activate", - GTK_SIGNAL_FUNC (GtkVolumeMute), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_fullscreen), "activate", - GTK_SIGNAL_FUNC (GtkFullscreen), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_file), "activate", - GTK_SIGNAL_FUNC (GtkFileOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_disc), "activate", - GTK_SIGNAL_FUNC (GtkDiscOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_network), "activate", - GTK_SIGNAL_FUNC (GtkNetworkOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_about), "activate", - GTK_SIGNAL_FUNC (GtkAboutShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_interface_toggle), "activate", - GTK_SIGNAL_FUNC (GtkWindowToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_playlist), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_preferences), "activate", - GTK_SIGNAL_FUNC (GtkPreferencesShow), - NULL); - gtk_signal_connect (GTK_OBJECT (popup_exit), "activate", - GTK_SIGNAL_FUNC (GtkExit), - NULL); - - gtk_object_set_data (GTK_OBJECT (intf_popup), "tooltips", tooltips); - - return intf_popup; -} - -GtkWidget* -create_intf_about (void) -{ - GtkWidget *intf_about; - GtkWidget *dialog_vbox1; - GtkWidget *vbox3; - GtkWidget *label14; - GtkWidget *label18; - GtkWidget *frame1; - GtkWidget *vbox17; - GtkWidget *label16; - GtkWidget *label39; - GtkWidget *label17; - GtkWidget *dialog_action_area; - GtkWidget *about_ok; - - intf_about = gtk_dialog_new (); - gtk_object_set_data (GTK_OBJECT (intf_about), "intf_about", intf_about); - gtk_container_set_border_width (GTK_CONTAINER (intf_about), 5); - gtk_window_set_title (GTK_WINDOW (intf_about), _("About")); - gtk_window_set_position (GTK_WINDOW (intf_about), GTK_WIN_POS_CENTER); - gtk_window_set_policy (GTK_WINDOW (intf_about), FALSE, FALSE, FALSE); - - dialog_vbox1 = GTK_DIALOG (intf_about)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_vbox1", dialog_vbox1); - gtk_widget_show (dialog_vbox1); - - vbox3 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox3); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "vbox3", vbox3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox3); - gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox3, TRUE, TRUE, 0); - - label14 = gtk_label_new (_("VLC media player")); - gtk_widget_ref (label14); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "label14", label14, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label14); - gtk_box_pack_start (GTK_BOX (vbox3), label14, TRUE, TRUE, 0); - gtk_misc_set_padding (GTK_MISC (label14), 0, 10); - - label18 = gtk_label_new (_("(c) 1996-2004 the VideoLAN team")); - gtk_widget_ref (label18); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "label18", label18, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label18); - gtk_box_pack_start (GTK_BOX (vbox3), label18, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label18), GTK_JUSTIFY_LEFT); - gtk_misc_set_padding (GTK_MISC (label18), 0, 5); - - frame1 = gtk_frame_new (_("Authors")); - gtk_widget_ref (frame1); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "frame1", frame1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame1); - gtk_box_pack_start (GTK_BOX (vbox3), frame1, FALSE, FALSE, 0); - - vbox17 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox17); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "vbox17", vbox17, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox17); - gtk_container_add (GTK_CONTAINER (frame1), vbox17); - - label16 = gtk_label_new (_("the VideoLAN team ")); - gtk_widget_ref (label16); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "label16", label16, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label16); - gtk_box_pack_start (GTK_BOX (vbox17), label16, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label16), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label16), 0.5, 0); - gtk_misc_set_padding (GTK_MISC (label16), 5, 0); - - label39 = gtk_label_new ("http://www.videolan.org/"); - gtk_widget_ref (label39); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "label39", label39, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label39); - gtk_box_pack_start (GTK_BOX (vbox17), label39, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label39), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label39), 0.5, 0); - gtk_misc_set_padding (GTK_MISC (label39), 5, 0); - - label17 = gtk_label_new (_("This is the VLC media player, a DVD, MPEG and DivX player. It can play MPEG and MPEG2 files from a file or from a network source.")); - gtk_widget_ref (label17); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "label17", label17, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label17); - gtk_box_pack_start (GTK_BOX (vbox3), label17, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label17), GTK_JUSTIFY_LEFT); - gtk_label_set_line_wrap (GTK_LABEL (label17), TRUE); - gtk_misc_set_padding (GTK_MISC (label17), 0, 5); - - dialog_action_area = GTK_DIALOG (intf_about)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_about), "dialog_action_area", dialog_action_area); - gtk_widget_show (dialog_action_area); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area), 10); - - about_ok = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (about_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_about), "about_ok", about_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (about_ok); - gtk_box_pack_start (GTK_BOX (dialog_action_area), about_ok, FALSE, TRUE, 0); - GTK_WIDGET_SET_FLAGS (about_ok, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (about_ok), "clicked", - GTK_SIGNAL_FUNC (GtkAboutOk), - NULL); - - gtk_widget_grab_default (about_ok); - return intf_about; -} - -GtkWidget* -create_intf_open (void) -{ - GtkWidget *intf_open; - GtkWidget *dialog_vbox7; - GtkWidget *open_vbox; - GtkWidget *frame10; - GtkWidget *hbox21; - GtkWidget *hbox22; - GtkWidget *label34; - GtkWidget *combo2; - GtkWidget *entry_open; - GtkWidget *label36; - GtkWidget *open_notebook; - GtkWidget *hbox20; - GtkWidget *combo1; - GtkWidget *entry_file; - GtkWidget *vbox13; - GtkWidget *open_browse; - GtkWidget *open_file; - GtkWidget *table5; - GtkWidget *label35; - GtkWidget *hbox24; - GSList *disc_group = NULL; - GtkWidget *disc_dvd; - GtkWidget *disc_vcd; - GtkWidget *disc_cdda; - GtkWidget *label19; - GtkWidget *disc_chapter_label; - GtkWidget *disc_title_label; - GtkWidget *disc_name; - GtkObject *disc_title_adj; - GtkWidget *disc_title; - GtkObject *disc_chapter_adj; - GtkWidget *disc_chapter; - GtkWidget *disc_dvd_use_menu; - GtkWidget *open_disc; - GtkWidget *table4; - GSList *table4_group = NULL; - GtkWidget *network_udp; - GtkWidget *network_multicast; - GtkWidget *network_http; - GtkWidget *network_udp_port_label; - GtkWidget *network_multicast_address_label; - GtkWidget *network_http_url_label; - GtkWidget *network_multicast_address_combo; - GtkWidget *network_multicast_address; - GtkWidget *network_multicast_port_label; - GtkObject *network_multicast_port_adj; - GtkWidget *network_multicast_port; - GtkWidget *network_http_url; - GtkObject *network_udp_port_adj; - GtkWidget *network_udp_port; - GtkWidget *open_net; - GtkWidget *table3; - GtkWidget *label24; - GtkWidget *label25; - GtkWidget *label26; - GtkObject *sat_freq_adj; - GtkWidget *sat_freq; - GtkWidget *label27; - GtkWidget *hbox23; - GSList *pol_group = NULL; - GtkWidget *sat_pol_vert; - GtkWidget *sat_pol_hor; - GtkObject *sat_srate_adj; - GtkWidget *sat_srate; - GtkWidget *sat_fec; - GList *sat_fec_items = NULL; - GtkWidget *combo_entry1; - GtkWidget *open_sat; - GtkWidget *show_subtitle; - GtkWidget *hbox_subtitle; - GtkWidget *combo3; - GtkWidget *entry_subtitle; - GtkWidget *vbox14; - GtkWidget *open_browse_subtitle; - GtkWidget *label37; - GtkObject *subtitle_delay_adj; - GtkWidget *subtitle_delay; - GtkWidget *label3; - GtkObject *subtitle_fps_adj; - GtkWidget *subtitle_fps; - GtkWidget *hbox30; - GtkWidget *show_sout_settings; - GtkWidget *sout_settings; - GtkWidget *dialog_action_area6; - GtkWidget *hbox18; - GtkWidget *hbox19; - GtkWidget *open_ok; - GtkWidget *open_cancel; - GtkAccelGroup *accel_group; - GtkTooltips *tooltips; - - tooltips = gtk_tooltips_new (); - - accel_group = gtk_accel_group_new (); - - intf_open = gtk_dialog_new (); - gtk_object_set_data (GTK_OBJECT (intf_open), "intf_open", intf_open); - gtk_container_set_border_width (GTK_CONTAINER (intf_open), 5); - gtk_window_set_title (GTK_WINDOW (intf_open), _("Open Target")); - gtk_window_set_policy (GTK_WINDOW (intf_open), FALSE, TRUE, TRUE); - - dialog_vbox7 = GTK_DIALOG (intf_open)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_vbox7", dialog_vbox7); - gtk_widget_show (dialog_vbox7); - - open_vbox = gtk_vbox_new (FALSE, 5); - gtk_widget_ref (open_vbox); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_vbox", open_vbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_vbox); - gtk_box_pack_start (GTK_BOX (dialog_vbox7), open_vbox, TRUE, TRUE, 0); - - frame10 = gtk_frame_new ("Media Resource Locator (MRL)"); - gtk_widget_ref (frame10); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "frame10", frame10, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame10); - gtk_box_pack_start (GTK_BOX (open_vbox), frame10, FALSE, TRUE, 0); - - hbox21 = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox21); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox21", hbox21, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox21); - gtk_container_add (GTK_CONTAINER (frame10), hbox21); - gtk_container_set_border_width (GTK_CONTAINER (hbox21), 5); - - hbox22 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox22); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox22", hbox22, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox22); - gtk_box_pack_start (GTK_BOX (hbox21), hbox22, FALSE, TRUE, 0); - - label34 = gtk_label_new (_("Open Target:")); - gtk_widget_ref (label34); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label34", label34, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label34); - gtk_box_pack_start (GTK_BOX (hbox22), label34, FALSE, FALSE, 0); - - combo2 = gtk_combo_new (); - gtk_widget_ref (combo2); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo2", combo2, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo2); - gtk_box_pack_start (GTK_BOX (hbox21), combo2, TRUE, TRUE, 0); - - entry_open = GTK_COMBO (combo2)->entry; - gtk_widget_ref (entry_open); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_open", entry_open, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_open); - - label36 = gtk_label_new (_("Alternatively, you can build an MRL using one of the following predefined targets:")); - gtk_widget_ref (label36); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label36", label36, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label36); - gtk_box_pack_start (GTK_BOX (open_vbox), label36, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT); - gtk_misc_set_alignment (GTK_MISC (label36), 0, 1); - - open_notebook = gtk_notebook_new (); - gtk_widget_ref (open_notebook); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_notebook", open_notebook, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_notebook); - gtk_box_pack_start (GTK_BOX (open_vbox), open_notebook, TRUE, TRUE, 0); - - hbox20 = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox20); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox20", hbox20, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox20); - gtk_container_add (GTK_CONTAINER (open_notebook), hbox20); - gtk_container_set_border_width (GTK_CONTAINER (hbox20), 5); - - combo1 = gtk_combo_new (); - gtk_widget_ref (combo1); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo1", combo1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo1); - gtk_box_pack_start (GTK_BOX (hbox20), combo1, FALSE, TRUE, 0); - - entry_file = GTK_COMBO (combo1)->entry; - gtk_widget_ref (entry_file); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_file", entry_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_file); - - vbox13 = gtk_vbox_new (TRUE, 0); - gtk_widget_ref (vbox13); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox13", vbox13, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox13); - gtk_box_pack_start (GTK_BOX (hbox20), vbox13, FALSE, FALSE, 0); - - open_browse = gtk_button_new_with_label (_("Browse...")); - gtk_widget_ref (open_browse); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_browse", open_browse, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_browse); - gtk_box_pack_start (GTK_BOX (vbox13), open_browse, FALSE, FALSE, 0); - - open_file = gtk_label_new (_("File")); - gtk_widget_ref (open_file); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_file", open_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_file); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 0), open_file); - - table5 = gtk_table_new (5, 2, FALSE); - gtk_widget_ref (table5); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table5", table5, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table5); - gtk_container_add (GTK_CONTAINER (open_notebook), table5); - gtk_container_set_border_width (GTK_CONTAINER (table5), 5); - gtk_table_set_row_spacings (GTK_TABLE (table5), 5); - gtk_table_set_col_spacings (GTK_TABLE (table5), 5); - - label35 = gtk_label_new (_("Disc type")); - gtk_widget_ref (label35); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label35", label35, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label35); - gtk_table_attach (GTK_TABLE (table5), label35, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label35), 0, 0.5); - - hbox24 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox24); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox24", hbox24, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox24); - gtk_table_attach (GTK_TABLE (table5), hbox24, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - disc_dvd = gtk_radio_button_new_with_label (disc_group, _("DVD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_dvd)); - gtk_widget_ref (disc_dvd); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd", disc_dvd, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_dvd); - gtk_box_pack_start (GTK_BOX (hbox24), disc_dvd, FALSE, FALSE, 0); - - disc_vcd = gtk_radio_button_new_with_label (disc_group, _("VCD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_vcd)); - gtk_widget_ref (disc_vcd); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_vcd", disc_vcd, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_vcd); - gtk_box_pack_start (GTK_BOX (hbox24), disc_vcd, FALSE, FALSE, 0); - - disc_cdda = gtk_radio_button_new_with_label (disc_group, _("Audio CD")); - disc_group = gtk_radio_button_group (GTK_RADIO_BUTTON (disc_cdda)); - gtk_widget_ref (disc_cdda); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_cdda", disc_cdda, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_cdda); - gtk_box_pack_start (GTK_BOX (hbox24), disc_cdda, FALSE, FALSE, 0); - - label19 = gtk_label_new (_("Device name")); - gtk_widget_ref (label19); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label19", label19, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label19); - gtk_table_attach (GTK_TABLE (table5), label19, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label19), 0, 0.5); - - disc_chapter_label = gtk_label_new (_("Chapter")); - gtk_widget_ref (disc_chapter_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter_label", disc_chapter_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_chapter_label); - gtk_table_attach (GTK_TABLE (table5), disc_chapter_label, 0, 1, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (disc_chapter_label), 0, 0.5); - - disc_title_label = gtk_label_new (_("Title")); - gtk_widget_ref (disc_title_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title_label", disc_title_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_title_label); - gtk_table_attach (GTK_TABLE (table5), disc_title_label, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (disc_title_label), 0, 0.5); - - disc_name = gtk_entry_new (); - gtk_widget_ref (disc_name); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_name", disc_name, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_name); - gtk_table_attach (GTK_TABLE (table5), disc_name, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_entry_set_text (GTK_ENTRY (disc_name), "/dev/dvd"); - - disc_title_adj = gtk_adjustment_new (1, 0, 100, 1, 10, 10); - disc_title = gtk_spin_button_new (GTK_ADJUSTMENT (disc_title_adj), 1, 0); - gtk_widget_ref (disc_title); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_title", disc_title, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_title); - gtk_table_attach (GTK_TABLE (table5), disc_title, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - disc_chapter_adj = gtk_adjustment_new (1, 1, 65536, 1, 10, 10); - disc_chapter = gtk_spin_button_new (GTK_ADJUSTMENT (disc_chapter_adj), 1, 0); - gtk_widget_ref (disc_chapter); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_chapter", disc_chapter, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_chapter); - gtk_table_attach (GTK_TABLE (table5), disc_chapter, 1, 2, 4, 5, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - disc_dvd_use_menu = gtk_check_button_new_with_label (_("Use DVD menus")); - gtk_widget_ref (disc_dvd_use_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "disc_dvd_use_menu", disc_dvd_use_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (disc_dvd_use_menu); - gtk_table_attach (GTK_TABLE (table5), disc_dvd_use_menu, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - open_disc = gtk_label_new (_("Disc")); - gtk_widget_ref (open_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_disc", open_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_disc); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 1), open_disc); - - table4 = gtk_table_new (3, 6, FALSE); - gtk_widget_ref (table4); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table4", table4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table4); - gtk_container_add (GTK_CONTAINER (open_notebook), table4); - gtk_container_set_border_width (GTK_CONTAINER (table4), 5); - gtk_table_set_row_spacings (GTK_TABLE (table4), 5); - gtk_table_set_col_spacings (GTK_TABLE (table4), 5); - - network_udp = gtk_radio_button_new_with_label (table4_group, _("UDP/RTP")); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_udp)); - gtk_widget_ref (network_udp); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp", network_udp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp); - gtk_table_attach (GTK_TABLE (table4), network_udp, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_multicast = gtk_radio_button_new_with_label (table4_group, _("UDP/RTP Multicast")); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_multicast)); - gtk_widget_ref (network_multicast); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast", network_multicast, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast); - gtk_table_attach (GTK_TABLE (table4), network_multicast, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_http = gtk_radio_button_new_with_label (table4_group, _("HTTP/FTP/MMS")); - table4_group = gtk_radio_button_group (GTK_RADIO_BUTTON (network_http)); - gtk_widget_ref (network_http); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http", network_http, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http); - gtk_table_attach (GTK_TABLE (table4), network_http, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - network_udp_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (network_udp_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port_label", network_udp_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp_port_label); - gtk_table_attach (GTK_TABLE (table4), network_udp_port_label, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (network_udp_port_label), 1, 0.5); - - network_multicast_address_label = gtk_label_new (_("Address")); - gtk_widget_ref (network_multicast_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_label", network_multicast_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address_label); - gtk_table_attach (GTK_TABLE (table4), network_multicast_address_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_address_label, FALSE); - gtk_label_set_justify (GTK_LABEL (network_multicast_address_label), GTK_JUSTIFY_RIGHT); - gtk_misc_set_alignment (GTK_MISC (network_multicast_address_label), 1, 0.5); - - network_http_url_label = gtk_label_new (_("URL")); - gtk_widget_ref (network_http_url_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url_label", network_http_url_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http_url_label); - gtk_table_attach (GTK_TABLE (table4), network_http_url_label, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_http_url_label, FALSE); - gtk_misc_set_alignment (GTK_MISC (network_http_url_label), 1, 0.5); - - network_multicast_address_combo = gtk_combo_new (); - gtk_widget_ref (network_multicast_address_combo); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address_combo", network_multicast_address_combo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address_combo); - gtk_table_attach (GTK_TABLE (table4), network_multicast_address_combo, 2, 4, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_address_combo, FALSE); - - network_multicast_address = GTK_COMBO (network_multicast_address_combo)->entry; - gtk_widget_ref (network_multicast_address); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_address", network_multicast_address, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_address); - - network_multicast_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (network_multicast_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port_label", network_multicast_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_port_label); - gtk_table_attach (GTK_TABLE (table4), network_multicast_port_label, 4, 5, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_multicast_port_label, FALSE); - gtk_misc_set_alignment (GTK_MISC (network_multicast_port_label), 1, 0.5); - - network_multicast_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - network_multicast_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_multicast_port_adj), 1, 0); - gtk_widget_ref (network_multicast_port); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_multicast_port", network_multicast_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_multicast_port); - gtk_table_attach (GTK_TABLE (table4), network_multicast_port, 5, 6, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_usize (network_multicast_port, 75, -2); - gtk_widget_set_sensitive (network_multicast_port, FALSE); - - network_http_url = gtk_entry_new (); - gtk_widget_ref (network_http_url); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_http_url", network_http_url, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_http_url); - gtk_table_attach (GTK_TABLE (table4), network_http_url, 2, 6, 2, 3, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_sensitive (network_http_url, FALSE); - - network_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - network_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (network_udp_port_adj), 1, 0); - gtk_widget_ref (network_udp_port); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "network_udp_port", network_udp_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (network_udp_port); - gtk_table_attach (GTK_TABLE (table4), network_udp_port, 2, 3, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_widget_set_usize (network_udp_port, 1, -2); - - open_net = gtk_label_new (_("Network")); - gtk_widget_ref (open_net); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_net", open_net, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_net); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 2), open_net); - - table3 = gtk_table_new (4, 2, FALSE); - gtk_widget_ref (table3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "table3", table3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table3); - gtk_container_add (GTK_CONTAINER (open_notebook), table3); - gtk_container_set_border_width (GTK_CONTAINER (table3), 5); - gtk_table_set_row_spacings (GTK_TABLE (table3), 5); - gtk_table_set_col_spacings (GTK_TABLE (table3), 5); - - label24 = gtk_label_new (_("Symbol Rate")); - gtk_widget_ref (label24); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label24", label24, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label24); - gtk_table_attach (GTK_TABLE (table3), label24, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label24), 0, 0.5); - - label25 = gtk_label_new (_("Frequency")); - gtk_widget_ref (label25); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label25", label25, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label25); - gtk_table_attach (GTK_TABLE (table3), label25, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label25), 0, 0.5); - - label26 = gtk_label_new (_("Polarization")); - gtk_widget_ref (label26); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label26", label26, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label26); - gtk_table_attach (GTK_TABLE (table3), label26, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label26), 0, 0.5); - - sat_freq_adj = gtk_adjustment_new (1.1954e+07, 1e+07, 1.2999e+07, 1, 10, 10); - sat_freq = gtk_spin_button_new (GTK_ADJUSTMENT (sat_freq_adj), 1, 0); - gtk_widget_ref (sat_freq); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_freq", sat_freq, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_freq); - gtk_table_attach (GTK_TABLE (table3), sat_freq, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - label27 = gtk_label_new (_("FEC")); - gtk_widget_ref (label27); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label27", label27, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label27); - gtk_table_attach (GTK_TABLE (table3), label27, 0, 1, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (label27), 0, 0.5); - - hbox23 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox23); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox23", hbox23, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox23); - gtk_table_attach (GTK_TABLE (table3), hbox23, 1, 2, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - sat_pol_vert = gtk_radio_button_new_with_label (pol_group, _("Vertical")); - pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_vert)); - gtk_widget_ref (sat_pol_vert); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_vert", sat_pol_vert, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_pol_vert); - gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_vert, FALSE, FALSE, 0); - - sat_pol_hor = gtk_radio_button_new_with_label (pol_group, _("Horizontal")); - pol_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sat_pol_hor)); - gtk_widget_ref (sat_pol_hor); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_pol_hor", sat_pol_hor, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_pol_hor); - gtk_box_pack_start (GTK_BOX (hbox23), sat_pol_hor, FALSE, FALSE, 0); - - sat_srate_adj = gtk_adjustment_new (2.75e+07, 1e+06, 3e+07, 1, 10, 10); - sat_srate = gtk_spin_button_new (GTK_ADJUSTMENT (sat_srate_adj), 1, 0); - gtk_widget_ref (sat_srate); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_srate", sat_srate, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_srate); - gtk_table_attach (GTK_TABLE (table3), sat_srate, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sat_fec = gtk_combo_new (); - gtk_widget_ref (sat_fec); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sat_fec", sat_fec, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sat_fec); - gtk_table_attach (GTK_TABLE (table3), sat_fec, 1, 2, 3, 4, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "1/2"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "2/3"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "3/4"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "4/5"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "5/6"); - sat_fec_items = g_list_append (sat_fec_items, (gpointer) "7/8"); - gtk_combo_set_popdown_strings (GTK_COMBO (sat_fec), sat_fec_items); - g_list_free (sat_fec_items); - - combo_entry1 = GTK_COMBO (sat_fec)->entry; - gtk_widget_ref (combo_entry1); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo_entry1", combo_entry1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo_entry1); - gtk_entry_set_text (GTK_ENTRY (combo_entry1), "3/4"); - - open_sat = gtk_label_new (_("Satellite")); - gtk_widget_ref (open_sat); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_sat", open_sat, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_sat); - gtk_notebook_set_tab_label (GTK_NOTEBOOK (open_notebook), gtk_notebook_get_nth_page (GTK_NOTEBOOK (open_notebook), 3), open_sat); - - show_subtitle = gtk_check_button_new_with_label (_("Subtitle")); - gtk_widget_ref (show_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_subtitle", show_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (show_subtitle); - gtk_box_pack_start (GTK_BOX (open_vbox), show_subtitle, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, show_subtitle, _("Use a subtitles file"), NULL); - - hbox_subtitle = gtk_hbox_new (FALSE, 5); - gtk_widget_ref (hbox_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox_subtitle", hbox_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox_subtitle); - gtk_box_pack_start (GTK_BOX (open_vbox), hbox_subtitle, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox_subtitle), 5); - - combo3 = gtk_combo_new (); - gtk_widget_ref (combo3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "combo3", combo3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo3); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), combo3, FALSE, TRUE, 0); - - entry_subtitle = GTK_COMBO (combo3)->entry; - gtk_widget_ref (entry_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "entry_subtitle", entry_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (entry_subtitle); - gtk_tooltips_set_tip (tooltips, entry_subtitle, _("Select a subtitles file"), NULL); - - vbox14 = gtk_vbox_new (TRUE, 0); - gtk_widget_ref (vbox14); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "vbox14", vbox14, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox14); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), vbox14, FALSE, FALSE, 0); - - open_browse_subtitle = gtk_button_new_with_label (_("Browse...")); - gtk_widget_ref (open_browse_subtitle); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_browse_subtitle", open_browse_subtitle, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_browse_subtitle); - gtk_box_pack_start (GTK_BOX (vbox14), open_browse_subtitle, FALSE, FALSE, 0); - - label37 = gtk_label_new (_("delay")); - gtk_widget_ref (label37); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label37", label37, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label37); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), label37, TRUE, TRUE, 0); - - subtitle_delay_adj = gtk_adjustment_new (0, -1000, 1000, 0.1, 10, 10); - subtitle_delay = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_delay_adj), 1, 1); - gtk_widget_ref (subtitle_delay); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_delay", subtitle_delay, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (subtitle_delay); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_delay, TRUE, TRUE, 0); - gtk_tooltips_set_tip (tooltips, subtitle_delay, _("Set the delay (in seconds)"), NULL); - - label3 = gtk_label_new (_("fps")); - gtk_widget_ref (label3); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "label3", label3, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label3); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), label3, TRUE, TRUE, 0); - - subtitle_fps_adj = gtk_adjustment_new (0, 0, 100, 0.1, 10, 10); - subtitle_fps = gtk_spin_button_new (GTK_ADJUSTMENT (subtitle_fps_adj), 1, 1); - gtk_widget_ref (subtitle_fps); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "subtitle_fps", subtitle_fps, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (subtitle_fps); - gtk_box_pack_start (GTK_BOX (hbox_subtitle), subtitle_fps, TRUE, TRUE, 0); - gtk_tooltips_set_tip (tooltips, subtitle_fps, _("Set the number of Frames Per Second"), NULL); - - hbox30 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox30); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox30", hbox30, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox30); - gtk_box_pack_start (GTK_BOX (dialog_vbox7), hbox30, FALSE, FALSE, 3); - - show_sout_settings = gtk_check_button_new_with_label (_("Stream output")); - gtk_widget_ref (show_sout_settings); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "show_sout_settings", show_sout_settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (show_sout_settings); - gtk_box_pack_start (GTK_BOX (hbox30), show_sout_settings, FALSE, FALSE, 0); - gtk_tooltips_set_tip (tooltips, show_sout_settings, _("Use stream output"), NULL); - - sout_settings = gtk_button_new_with_label (_("Settings...")); - gtk_widget_ref (sout_settings); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "sout_settings", sout_settings, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_settings); - gtk_box_pack_start (GTK_BOX (hbox30), sout_settings, FALSE, FALSE, 20); - gtk_tooltips_set_tip (tooltips, sout_settings, _("Stream output configuration "), NULL); - - dialog_action_area6 = GTK_DIALOG (intf_open)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_open), "dialog_action_area6", dialog_action_area6); - gtk_widget_show (dialog_action_area6); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area6), 5); - - hbox18 = gtk_hbox_new (TRUE, 5); - gtk_widget_ref (hbox18); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox18", hbox18, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox18); - gtk_box_pack_start (GTK_BOX (dialog_action_area6), hbox18, TRUE, TRUE, 0); - - hbox19 = gtk_hbox_new (TRUE, 5); - gtk_widget_ref (hbox19); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "hbox19", hbox19, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox19); - gtk_box_pack_end (GTK_BOX (hbox18), hbox19, FALSE, TRUE, 0); - - open_ok = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (open_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_ok", open_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_ok); - gtk_box_pack_start (GTK_BOX (hbox19), open_ok, FALSE, TRUE, 0); - - open_cancel = gtk_button_new_with_label (_("Cancel")); - gtk_widget_ref (open_cancel); - gtk_object_set_data_full (GTK_OBJECT (intf_open), "open_cancel", open_cancel, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (open_cancel); - gtk_box_pack_start (GTK_BOX (hbox19), open_cancel, FALSE, TRUE, 0); - gtk_widget_add_accelerator (open_cancel, "clicked", accel_group, - GDK_Escape, 0, - GTK_ACCEL_VISIBLE); - - gtk_signal_connect (GTK_OBJECT (intf_open), "delete_event", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect_after (GTK_OBJECT (open_notebook), "switch_page", - GTK_SIGNAL_FUNC (GtkOpenNotebookChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (entry_file), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (open_browse), "clicked", - GTK_SIGNAL_FUNC (GtkFileShow), - "entry_file"); - gtk_signal_connect (GTK_OBJECT (disc_dvd), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenDvd), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_vcd), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenVcd), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_cdda), "toggled", - GTK_SIGNAL_FUNC (GtkDiscOpenCDDA), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_name), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_title), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_chapter), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (disc_dvd_use_menu), "toggled", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_udp), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenUDP), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenMulticast), - NULL); - gtk_signal_connect (GTK_OBJECT (network_http), "toggled", - GTK_SIGNAL_FUNC (GtkNetworkOpenHTTP), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast_address), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_multicast_port), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_http_url), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (network_udp_port), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_freq), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_pol_vert), "toggled", - GTK_SIGNAL_FUNC (GtkSatOpenToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_pol_hor), "toggled", - GTK_SIGNAL_FUNC (GtkSatOpenToggle), - NULL); - gtk_signal_connect (GTK_OBJECT (sat_srate), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (combo_entry1), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (show_subtitle), "clicked", - GTK_SIGNAL_FUNC (GtkOpenSubtitleShow), - NULL); - gtk_signal_connect (GTK_OBJECT (entry_subtitle), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (open_browse_subtitle), "clicked", - GTK_SIGNAL_FUNC (GtkFileShow), - "entry_subtitle"); - gtk_signal_connect (GTK_OBJECT (subtitle_delay), "changed", - GTK_SIGNAL_FUNC (GtkOpenChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (show_sout_settings), "clicked", - GTK_SIGNAL_FUNC (GtkOpenSoutShow), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_settings), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettings), - NULL); - gtk_signal_connect (GTK_OBJECT (open_ok), "clicked", - GTK_SIGNAL_FUNC (GtkOpenOk), - NULL); - gtk_signal_connect (GTK_OBJECT (open_cancel), "clicked", - GTK_SIGNAL_FUNC (GtkOpenCancel), - NULL); - - gtk_object_set_data (GTK_OBJECT (intf_open), "tooltips", tooltips); - - gtk_window_add_accel_group (GTK_WINDOW (intf_open), accel_group); - - return intf_open; -} - -GtkWidget* -create_intf_file (void) -{ - GtkWidget *intf_file; - GtkWidget *file_ok; - GtkWidget *file_cancel; - - intf_file = gtk_file_selection_new (_("Select File")); - gtk_object_set_data (GTK_OBJECT (intf_file), "intf_file", intf_file); - gtk_container_set_border_width (GTK_CONTAINER (intf_file), 10); - gtk_window_set_modal (GTK_WINDOW (intf_file), TRUE); - - file_ok = GTK_FILE_SELECTION (intf_file)->ok_button; - gtk_object_set_data (GTK_OBJECT (intf_file), "file_ok", file_ok); - gtk_widget_show (file_ok); - GTK_WIDGET_SET_FLAGS (file_ok, GTK_CAN_DEFAULT); - - file_cancel = GTK_FILE_SELECTION (intf_file)->cancel_button; - gtk_object_set_data (GTK_OBJECT (intf_file), "file_cancel", file_cancel); - gtk_widget_show (file_cancel); - GTK_WIDGET_SET_FLAGS (file_cancel, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (file_ok), "clicked", - GTK_SIGNAL_FUNC (GtkFileOk), - NULL); - gtk_signal_connect (GTK_OBJECT (file_cancel), "clicked", - GTK_SIGNAL_FUNC (GtkFileCancel), - NULL); - - return intf_file; -} - -GtkWidget* -create_intf_jump (void) -{ - GtkWidget *intf_jump; - GtkWidget *dialog_vbox3; - GtkWidget *jump_frame; - GtkWidget *hbox13; - GtkWidget *jump_second_label; - GtkObject *jump_second_spinbutton_adj; - GtkWidget *jump_second_spinbutton; - GtkWidget *jump_minute_label; - GtkObject *jump_minute_spinbutton_adj; - GtkWidget *jump_minute_spinbutton; - GtkWidget *jump_hour_label; - GtkObject *jump_hour_spinbutton_adj; - GtkWidget *jump_hour_spinbutton; - GtkWidget *dialog_action_area2; - GtkWidget *jump_ok_button; - GtkWidget *jump_cancel_button; - - intf_jump = gtk_dialog_new (); - gtk_object_set_data (GTK_OBJECT (intf_jump), "intf_jump", intf_jump); - gtk_window_set_title (GTK_WINDOW (intf_jump), _("Jump")); - gtk_window_set_policy (GTK_WINDOW (intf_jump), TRUE, TRUE, FALSE); - - dialog_vbox3 = GTK_DIALOG (intf_jump)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_jump), "dialog_vbox3", dialog_vbox3); - gtk_widget_show (dialog_vbox3); - - jump_frame = gtk_frame_new (_("Go To:")); - gtk_widget_ref (jump_frame); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_frame", jump_frame, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_frame); - gtk_box_pack_start (GTK_BOX (dialog_vbox3), jump_frame, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (jump_frame), 5); - gtk_frame_set_label_align (GTK_FRAME (jump_frame), 0.05, 0.5); - - hbox13 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox13); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "hbox13", hbox13, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox13); - gtk_container_add (GTK_CONTAINER (jump_frame), hbox13); - - jump_second_label = gtk_label_new (_("s.")); - gtk_widget_ref (jump_second_label); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_label", jump_second_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_second_label); - gtk_box_pack_end (GTK_BOX (hbox13), jump_second_label, FALSE, FALSE, 5); - - jump_second_spinbutton_adj = gtk_adjustment_new (0, 0, 60, 1, 10, 10); - jump_second_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_second_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_second_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_second_spinbutton", jump_second_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_second_spinbutton); - gtk_box_pack_end (GTK_BOX (hbox13), jump_second_spinbutton, FALSE, TRUE, 0); - - jump_minute_label = gtk_label_new (_("m:")); - gtk_widget_ref (jump_minute_label); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_label", jump_minute_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_minute_label); - gtk_box_pack_end (GTK_BOX (hbox13), jump_minute_label, FALSE, FALSE, 5); - - jump_minute_spinbutton_adj = gtk_adjustment_new (0, 0, 60, 1, 10, 10); - jump_minute_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_minute_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_minute_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_minute_spinbutton", jump_minute_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_minute_spinbutton); - gtk_box_pack_end (GTK_BOX (hbox13), jump_minute_spinbutton, FALSE, TRUE, 0); - - jump_hour_label = gtk_label_new (_("h:")); - gtk_widget_ref (jump_hour_label); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_label", jump_hour_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_hour_label); - gtk_box_pack_end (GTK_BOX (hbox13), jump_hour_label, FALSE, FALSE, 5); - - jump_hour_spinbutton_adj = gtk_adjustment_new (0, 0, 12, 1, 10, 10); - jump_hour_spinbutton = gtk_spin_button_new (GTK_ADJUSTMENT (jump_hour_spinbutton_adj), 1, 0); - gtk_widget_ref (jump_hour_spinbutton); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_hour_spinbutton", jump_hour_spinbutton, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_hour_spinbutton); - gtk_box_pack_end (GTK_BOX (hbox13), jump_hour_spinbutton, FALSE, TRUE, 0); - - dialog_action_area2 = GTK_DIALOG (intf_jump)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_jump), "dialog_action_area2", dialog_action_area2); - gtk_widget_show (dialog_action_area2); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area2), 10); - - jump_ok_button = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (jump_ok_button); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_ok_button", jump_ok_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_ok_button); - gtk_box_pack_start (GTK_BOX (dialog_action_area2), jump_ok_button, TRUE, TRUE, 0); - - jump_cancel_button = gtk_button_new_with_label (_("Cancel")); - gtk_widget_ref (jump_cancel_button); - gtk_object_set_data_full (GTK_OBJECT (intf_jump), "jump_cancel_button", jump_cancel_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (jump_cancel_button); - gtk_box_pack_start (GTK_BOX (dialog_action_area2), jump_cancel_button, TRUE, TRUE, 0); - - gtk_signal_connect (GTK_OBJECT (jump_ok_button), "clicked", - GTK_SIGNAL_FUNC (GtkJumpOk), - NULL); - gtk_signal_connect (GTK_OBJECT (jump_cancel_button), "clicked", - GTK_SIGNAL_FUNC (GtkJumpCancel), - NULL); - - return intf_jump; -} - -GtkWidget* -create_intf_playlist (void) -{ - GtkWidget *intf_playlist; - GtkWidget *dialog_vbox4; - GtkWidget *playlist_menubar; - GtkWidget *playlist_add; - GtkWidget *playlist_add_menu; - GtkAccelGroup *playlist_add_menu_accels; - GtkWidget *playlist_add_disc; - GtkWidget *playlist_add_file; - GtkWidget *playlist_add_network; - GtkWidget *playlist_add_url; - GtkWidget *playlist_delete; - GtkWidget *playlist_delete_menu; - GtkAccelGroup *playlist_delete_menu_accels; - GtkWidget *playlist_delete_all; - GtkWidget *playlist_delete_selected; - GtkWidget *playlist_selection; - GtkWidget *playlist_selection_menu; - GtkAccelGroup *playlist_selection_menu_accels; - guint tmp_key; - GtkWidget *playlist_selection_crop; - GtkWidget *playlist_selection_invert; - GtkWidget *playlist_selection_select; - GtkWidget *scrolledwindow1; - GtkWidget *playlist_clist; - GtkWidget *label22; - GtkWidget *label23; - GtkWidget *dialog_action_area3; - GtkWidget *playlist_ok_button; - GtkWidget *playlist_cancel_button; - - intf_playlist = gtk_dialog_new (); - gtk_object_set_data (GTK_OBJECT (intf_playlist), "intf_playlist", intf_playlist); - gtk_window_set_title (GTK_WINDOW (intf_playlist), _("Playlist")); - gtk_window_set_default_size (GTK_WINDOW (intf_playlist), 400, 300); - gtk_window_set_policy (GTK_WINDOW (intf_playlist), TRUE, TRUE, FALSE); - - dialog_vbox4 = GTK_DIALOG (intf_playlist)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_vbox4", dialog_vbox4); - gtk_widget_show (dialog_vbox4); - - playlist_menubar = gtk_menu_bar_new (); - gtk_widget_ref (playlist_menubar); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_menubar", playlist_menubar, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_menubar); - gtk_box_pack_start (GTK_BOX (dialog_vbox4), playlist_menubar, FALSE, FALSE, 0); - - playlist_add = gtk_menu_item_new_with_label (_("Add")); - gtk_widget_ref (playlist_add); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add", playlist_add, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_add); - gtk_container_add (GTK_CONTAINER (playlist_menubar), playlist_add); - - playlist_add_menu = gtk_menu_new (); - gtk_widget_ref (playlist_add_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_menu", playlist_add_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (playlist_add), playlist_add_menu); - playlist_add_menu_accels = gtk_menu_get_accel_group (GTK_MENU (playlist_add_menu)); - - playlist_add_disc = gtk_menu_item_new_with_label (_("Disc")); - gtk_widget_ref (playlist_add_disc); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_disc", playlist_add_disc, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_add_disc); - gtk_container_add (GTK_CONTAINER (playlist_add_menu), playlist_add_disc); - - playlist_add_file = gtk_menu_item_new_with_label (_("File")); - gtk_widget_ref (playlist_add_file); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_file", playlist_add_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_add_file); - gtk_container_add (GTK_CONTAINER (playlist_add_menu), playlist_add_file); - - playlist_add_network = gtk_menu_item_new_with_label (_("Network")); - gtk_widget_ref (playlist_add_network); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_network", playlist_add_network, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_add_network); - gtk_container_add (GTK_CONTAINER (playlist_add_menu), playlist_add_network); - - playlist_add_url = gtk_menu_item_new_with_label (_("URL")); - gtk_widget_ref (playlist_add_url); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_add_url", playlist_add_url, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_add_url); - gtk_container_add (GTK_CONTAINER (playlist_add_menu), playlist_add_url); - - playlist_delete = gtk_menu_item_new_with_label (_("Delete")); - gtk_widget_ref (playlist_delete); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete", playlist_delete, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_delete); - gtk_container_add (GTK_CONTAINER (playlist_menubar), playlist_delete); - - playlist_delete_menu = gtk_menu_new (); - gtk_widget_ref (playlist_delete_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_menu", playlist_delete_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (playlist_delete), playlist_delete_menu); - playlist_delete_menu_accels = gtk_menu_get_accel_group (GTK_MENU (playlist_delete_menu)); - - playlist_delete_all = gtk_menu_item_new_with_label (_("All")); - gtk_widget_ref (playlist_delete_all); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_all", playlist_delete_all, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_delete_all); - gtk_container_add (GTK_CONTAINER (playlist_delete_menu), playlist_delete_all); - - playlist_delete_selected = gtk_menu_item_new_with_label (_("Selected")); - gtk_widget_ref (playlist_delete_selected); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_delete_selected", playlist_delete_selected, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_delete_selected); - gtk_container_add (GTK_CONTAINER (playlist_delete_menu), playlist_delete_selected); - - playlist_selection = gtk_menu_item_new_with_label (_("Selection")); - gtk_widget_ref (playlist_selection); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection", playlist_selection, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_selection); - gtk_container_add (GTK_CONTAINER (playlist_menubar), playlist_selection); - - playlist_selection_menu = gtk_menu_new (); - gtk_widget_ref (playlist_selection_menu); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_menu", playlist_selection_menu, - (GtkDestroyNotify) gtk_widget_unref); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (playlist_selection), playlist_selection_menu); - playlist_selection_menu_accels = gtk_menu_get_accel_group (GTK_MENU (playlist_selection_menu)); - - playlist_selection_crop = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (playlist_selection_crop)->child), - _("_Crop")); - gtk_widget_add_accelerator (playlist_selection_crop, "activate_item", playlist_selection_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (playlist_selection_crop); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_crop", playlist_selection_crop, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_selection_crop); - gtk_container_add (GTK_CONTAINER (playlist_selection_menu), playlist_selection_crop); - - playlist_selection_invert = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (playlist_selection_invert)->child), - _("_Invert")); - gtk_widget_add_accelerator (playlist_selection_invert, "activate_item", playlist_selection_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (playlist_selection_invert); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_invert", playlist_selection_invert, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_selection_invert); - gtk_container_add (GTK_CONTAINER (playlist_selection_menu), playlist_selection_invert); - - playlist_selection_select = gtk_menu_item_new_with_label (""); - tmp_key = gtk_label_parse_uline (GTK_LABEL (GTK_BIN (playlist_selection_select)->child), - _("_Select")); - gtk_widget_add_accelerator (playlist_selection_select, "activate_item", playlist_selection_menu_accels, - tmp_key, 0, 0); - gtk_widget_ref (playlist_selection_select); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_selection_select", playlist_selection_select, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_selection_select); - gtk_container_add (GTK_CONTAINER (playlist_selection_menu), playlist_selection_select); - - scrolledwindow1 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow1); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "scrolledwindow1", scrolledwindow1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (scrolledwindow1); - gtk_box_pack_start (GTK_BOX (dialog_vbox4), scrolledwindow1, TRUE, TRUE, 0); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow1), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - - playlist_clist = gtk_clist_new (2); - gtk_widget_ref (playlist_clist); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_clist", playlist_clist, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_clist); - gtk_container_add (GTK_CONTAINER (scrolledwindow1), playlist_clist); - gtk_container_set_border_width (GTK_CONTAINER (playlist_clist), 5); - gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 0, 257); - gtk_clist_set_column_width (GTK_CLIST (playlist_clist), 1, 80); - gtk_clist_set_selection_mode (GTK_CLIST (playlist_clist), GTK_SELECTION_EXTENDED); - gtk_clist_column_titles_show (GTK_CLIST (playlist_clist)); - gtk_clist_set_shadow_type (GTK_CLIST (playlist_clist), GTK_SHADOW_OUT); - - label22 = gtk_label_new (_("File")); - gtk_widget_ref (label22); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label22", label22, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label22); - gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 0, label22); - - label23 = gtk_label_new (_("Duration")); - gtk_widget_ref (label23); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "label23", label23, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label23); - gtk_clist_set_column_widget (GTK_CLIST (playlist_clist), 1, label23); - - dialog_action_area3 = GTK_DIALOG (intf_playlist)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_playlist), "dialog_action_area3", dialog_action_area3); - gtk_widget_show (dialog_action_area3); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area3), 10); - - playlist_ok_button = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (playlist_ok_button); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_ok_button", playlist_ok_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_ok_button); - gtk_box_pack_start (GTK_BOX (dialog_action_area3), playlist_ok_button, TRUE, TRUE, 0); - - playlist_cancel_button = gtk_button_new_with_label (_("Cancel")); - gtk_widget_ref (playlist_cancel_button); - gtk_object_set_data_full (GTK_OBJECT (intf_playlist), "playlist_cancel_button", playlist_cancel_button, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (playlist_cancel_button); - gtk_box_pack_start (GTK_BOX (dialog_action_area3), playlist_cancel_button, TRUE, TRUE, 0); - - gtk_signal_connect (GTK_OBJECT (intf_playlist), "destroy", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (intf_playlist), "delete_event", - GTK_SIGNAL_FUNC (gtk_widget_hide), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_add_disc), "activate", - GTK_SIGNAL_FUNC (GtkDiscOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_add_file), "activate", - GTK_SIGNAL_FUNC (GtkFileOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_add_network), "activate", - GTK_SIGNAL_FUNC (GtkNetworkOpenShow), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_add_url), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistAddUrl), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_delete_all), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistDeleteAll), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_delete_selected), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistDeleteSelected), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_selection_crop), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistCrop), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_selection_invert), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistInvert), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_selection_select), "activate", - GTK_SIGNAL_FUNC (GtkPlaylistSelect), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "event", - GTK_SIGNAL_FUNC (GtkPlaylistEvent), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_data_received", - GTK_SIGNAL_FUNC (GtkPlaylistDragData), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_clist), "drag_motion", - GTK_SIGNAL_FUNC (GtkPlaylistDragMotion), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_ok_button), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistOk), - NULL); - gtk_signal_connect (GTK_OBJECT (playlist_cancel_button), "clicked", - GTK_SIGNAL_FUNC (GtkPlaylistCancel), - NULL); - - return intf_playlist; -} - -GtkWidget* -create_intf_messages (void) -{ - GtkWidget *intf_messages; - GtkWidget *dialog_vbox6; - GtkWidget *scrolledwindow2; - GtkWidget *messages_textbox; - GtkWidget *dialog_action_area5; - GtkWidget *messages_ok; - - intf_messages = gtk_dialog_new (); - gtk_object_set_data (GTK_OBJECT (intf_messages), "intf_messages", intf_messages); - gtk_window_set_title (GTK_WINDOW (intf_messages), _("Messages")); - gtk_window_set_default_size (GTK_WINDOW (intf_messages), 600, 400); - gtk_window_set_policy (GTK_WINDOW (intf_messages), TRUE, TRUE, FALSE); - - dialog_vbox6 = GTK_DIALOG (intf_messages)->vbox; - gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_vbox6", dialog_vbox6); - gtk_widget_show (dialog_vbox6); - - scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL); - gtk_widget_ref (scrolledwindow2); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "scrolledwindow2", scrolledwindow2, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (scrolledwindow2); - gtk_box_pack_start (GTK_BOX (dialog_vbox6), scrolledwindow2, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (scrolledwindow2), 5); - gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow2), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - messages_textbox = gtk_text_new (NULL, NULL); - gtk_widget_ref (messages_textbox); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_textbox", messages_textbox, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (messages_textbox); - gtk_container_add (GTK_CONTAINER (scrolledwindow2), messages_textbox); - - dialog_action_area5 = GTK_DIALOG (intf_messages)->action_area; - gtk_object_set_data (GTK_OBJECT (intf_messages), "dialog_action_area5", dialog_action_area5); - gtk_widget_show (dialog_action_area5); - gtk_container_set_border_width (GTK_CONTAINER (dialog_action_area5), 5); - - messages_ok = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (messages_ok); - gtk_object_set_data_full (GTK_OBJECT (intf_messages), "messages_ok", messages_ok, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (messages_ok); - gtk_box_pack_start (GTK_BOX (dialog_action_area5), messages_ok, FALSE, TRUE, 0); - GTK_WIDGET_SET_FLAGS (messages_ok, GTK_CAN_DEFAULT); - - gtk_signal_connect (GTK_OBJECT (intf_messages), "delete_event", - GTK_SIGNAL_FUNC (GtkMessagesDelete), - NULL); - gtk_signal_connect (GTK_OBJECT (messages_ok), "clicked", - GTK_SIGNAL_FUNC (GtkMessagesOk), - NULL); - - gtk_widget_grab_default (messages_ok); - return intf_messages; -} - -GtkWidget* -create_intf_sout (void) -{ - GtkWidget *intf_sout; - GtkWidget *vbox15; - GtkWidget *vbox16; - GtkWidget *frame11; - GtkWidget *hbox28; - GtkWidget *label38; - GtkWidget *combo4; - GtkWidget *sout_entry_target; - GtkWidget *frame12; - GtkWidget *table6; - GSList *sout_access_group = NULL; - GtkWidget *sout_access_file; - GtkWidget *sout_access_udp; - GtkWidget *sout_access_rtp; - GtkWidget *sout_file_path_label; - GtkWidget *combo6; - GtkWidget *sout_file_path; - GtkWidget *sout_udp_address_label; - GtkWidget *sout_udp_address_combo; - GtkWidget *sout_udp_address; - GtkObject *sout_udp_port_adj; - GtkWidget *sout_udp_port; - GtkWidget *hbox29; - GSList *sout_mux_group = NULL; - GtkWidget *sout_mux_ts; - GtkWidget *sout_mux_ps; - GtkWidget *sout_mux_avi; - GtkWidget *sout_udp_port_label; - GtkWidget *hbox25; - GtkWidget *hbox26; - GtkWidget *button1; - GtkWidget *button2; - - intf_sout = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_object_set_data (GTK_OBJECT (intf_sout), "intf_sout", intf_sout); - gtk_container_set_border_width (GTK_CONTAINER (intf_sout), 5); - gtk_window_set_title (GTK_WINDOW (intf_sout), _("Stream output")); - gtk_window_set_modal (GTK_WINDOW (intf_sout), TRUE); - - vbox15 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox15); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "vbox15", vbox15, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox15); - gtk_container_add (GTK_CONTAINER (intf_sout), vbox15); - - vbox16 = gtk_vbox_new (FALSE, 0); - gtk_widget_ref (vbox16); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "vbox16", vbox16, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (vbox16); - gtk_box_pack_start (GTK_BOX (vbox15), vbox16, TRUE, TRUE, 0); - - frame11 = gtk_frame_new (_("Stream output (MRL)")); - gtk_widget_ref (frame11); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame11", frame11, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame11); - gtk_box_pack_start (GTK_BOX (vbox16), frame11, FALSE, TRUE, 0); - - hbox28 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox28); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox28", hbox28, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox28); - gtk_container_add (GTK_CONTAINER (frame11), hbox28); - gtk_container_set_border_width (GTK_CONTAINER (hbox28), 5); - - label38 = gtk_label_new (_("Destination Target: ")); - gtk_widget_ref (label38); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "label38", label38, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (label38); - gtk_box_pack_start (GTK_BOX (hbox28), label38, FALSE, FALSE, 0); - - combo4 = gtk_combo_new (); - gtk_widget_ref (combo4); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo4", combo4, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo4); - gtk_box_pack_start (GTK_BOX (hbox28), combo4, TRUE, TRUE, 0); - - sout_entry_target = GTK_COMBO (combo4)->entry; - gtk_widget_ref (sout_entry_target); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_entry_target", sout_entry_target, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_entry_target); - - frame12 = gtk_frame_new (NULL); - gtk_widget_ref (frame12); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "frame12", frame12, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (frame12); - gtk_box_pack_start (GTK_BOX (vbox16), frame12, TRUE, TRUE, 0); - - table6 = gtk_table_new (3, 5, FALSE); - gtk_widget_ref (table6); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "table6", table6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (table6); - gtk_container_add (GTK_CONTAINER (frame12), table6); - gtk_table_set_row_spacings (GTK_TABLE (table6), 5); - gtk_table_set_col_spacings (GTK_TABLE (table6), 5); - - sout_access_file = gtk_radio_button_new_with_label (sout_access_group, _("File")); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_file)); - gtk_widget_ref (sout_access_file); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_file", sout_access_file, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_file); - gtk_table_attach (GTK_TABLE (table6), sout_access_file, 0, 1, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_access_udp = gtk_radio_button_new_with_label (sout_access_group, "UDP"); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_udp)); - gtk_widget_ref (sout_access_udp); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_udp", sout_access_udp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_udp); - gtk_table_attach (GTK_TABLE (table6), sout_access_udp, 0, 1, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_access_rtp = gtk_radio_button_new_with_label (sout_access_group, "RTP"); - sout_access_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_access_rtp)); - gtk_widget_ref (sout_access_rtp); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_access_rtp", sout_access_rtp, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_access_rtp); - gtk_table_attach (GTK_TABLE (table6), sout_access_rtp, 0, 1, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_file_path_label = gtk_label_new (_("Path:")); - gtk_widget_ref (sout_file_path_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path_label", sout_file_path_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_file_path_label); - gtk_table_attach (GTK_TABLE (table6), sout_file_path_label, 1, 2, 0, 1, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_file_path_label), 0, 0.5); - - combo6 = gtk_combo_new (); - gtk_widget_ref (combo6); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "combo6", combo6, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo6); - gtk_table_attach (GTK_TABLE (table6), combo6, 2, 5, 0, 1, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_file_path = GTK_COMBO (combo6)->entry; - gtk_widget_ref (sout_file_path); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_file_path", sout_file_path, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_file_path); - - sout_udp_address_label = gtk_label_new (_("Address:")); - gtk_widget_ref (sout_udp_address_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_label", sout_udp_address_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address_label); - gtk_table_attach (GTK_TABLE (table6), sout_udp_address_label, 1, 2, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_udp_address_label), 0, 0.5); - - sout_udp_address_combo = gtk_combo_new (); - gtk_widget_ref (sout_udp_address_combo); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address_combo", sout_udp_address_combo, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address_combo); - gtk_table_attach (GTK_TABLE (table6), sout_udp_address_combo, 2, 3, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - sout_udp_address = GTK_COMBO (sout_udp_address_combo)->entry; - gtk_widget_ref (sout_udp_address); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_address", sout_udp_address, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_address); - - sout_udp_port_adj = gtk_adjustment_new (1234, 0, 65535, 1, 10, 10); - sout_udp_port = gtk_spin_button_new (GTK_ADJUSTMENT (sout_udp_port_adj), 1, 0); - gtk_widget_ref (sout_udp_port); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port", sout_udp_port, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_port); - gtk_table_attach (GTK_TABLE (table6), sout_udp_port, 4, 5, 1, 2, - (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - - hbox29 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox29); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox29", hbox29, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox29); - gtk_table_attach (GTK_TABLE (table6), hbox29, 4, 5, 2, 3, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (GTK_FILL), 0, 0); - - sout_mux_ts = gtk_radio_button_new_with_label (sout_mux_group, _("TS")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ts)); - gtk_widget_ref (sout_mux_ts); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ts", sout_mux_ts, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_ts); - gtk_box_pack_start (GTK_BOX (hbox29), sout_mux_ts, FALSE, FALSE, 0); - - sout_mux_ps = gtk_radio_button_new_with_label (sout_mux_group, _("PS")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_ps)); - gtk_widget_ref (sout_mux_ps); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_ps", sout_mux_ps, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_ps); - gtk_box_pack_start (GTK_BOX (hbox29), sout_mux_ps, FALSE, FALSE, 0); - - sout_mux_avi = gtk_radio_button_new_with_label (sout_mux_group, _("AVI")); - sout_mux_group = gtk_radio_button_group (GTK_RADIO_BUTTON (sout_mux_avi)); - gtk_widget_ref (sout_mux_avi); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_mux_avi", sout_mux_avi, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_mux_avi); - gtk_box_pack_start (GTK_BOX (hbox29), sout_mux_avi, FALSE, FALSE, 0); - - sout_udp_port_label = gtk_label_new (_("Port")); - gtk_widget_ref (sout_udp_port_label); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "sout_udp_port_label", sout_udp_port_label, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (sout_udp_port_label); - gtk_table_attach (GTK_TABLE (table6), sout_udp_port_label, 3, 4, 1, 2, - (GtkAttachOptions) (GTK_FILL), - (GtkAttachOptions) (0), 0, 0); - gtk_misc_set_alignment (GTK_MISC (sout_udp_port_label), 0, 0.5); - - hbox25 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox25); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox25", hbox25, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox25); - gtk_box_pack_end (GTK_BOX (vbox15), hbox25, FALSE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (hbox25), 5); - - hbox26 = gtk_hbox_new (FALSE, 0); - gtk_widget_ref (hbox26); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "hbox26", hbox26, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (hbox26); - gtk_box_pack_end (GTK_BOX (hbox25), hbox26, TRUE, TRUE, 3); - - button1 = gtk_button_new_with_label (_("OK")); - gtk_widget_ref (button1); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button1", button1, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button1); - gtk_box_pack_start (GTK_BOX (hbox26), button1, TRUE, TRUE, 2); - - button2 = gtk_button_new_with_label (_("Cancel")); - gtk_widget_ref (button2); - gtk_object_set_data_full (GTK_OBJECT (intf_sout), "button2", button2, - (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (button2); - gtk_box_pack_start (GTK_BOX (hbox26), button2, TRUE, TRUE, 2); - - gtk_signal_connect (GTK_OBJECT (sout_access_file), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessFile), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_access_udp), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_access_rtp), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsAccessUdp), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_file_path), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_udp_address), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_udp_port), "changed", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_ts), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_ps), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (sout_mux_avi), "toggled", - GTK_SIGNAL_FUNC (GtkSoutSettingsChanged), - NULL); - gtk_signal_connect (GTK_OBJECT (button1), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettingsOk), - NULL); - gtk_signal_connect (GTK_OBJECT (button2), "clicked", - GTK_SIGNAL_FUNC (GtkSoutSettingsCancel), - NULL); - - return intf_sout; -} - diff --git a/modules/gui/gtk/gtk_interface.h b/modules/gui/gtk/gtk_interface.h deleted file mode 100644 index db4639bd7d..0000000000 --- a/modules/gui/gtk/gtk_interface.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_intf_window (void); -GtkWidget* create_intf_popup (void); -GtkWidget* create_intf_about (void); -GtkWidget* create_intf_open (void); -GtkWidget* create_intf_file (void); -GtkWidget* create_intf_jump (void); -GtkWidget* create_intf_playlist (void); -GtkWidget* create_intf_messages (void); -GtkWidget* create_intf_sout (void); diff --git a/modules/gui/gtk/gtk_support.c b/modules/gui/gtk/gtk_support.c deleted file mode 100644 index 987d9a93e5..0000000000 --- a/modules/gui/gtk/gtk_support.c +++ /dev/null @@ -1,162 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include - -#include - -#include "gtk_support.h" - -/* This is an internally used function to check if a pixmap file exists. */ -static gchar* check_file_exists (const gchar *directory, - const gchar *filename); - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* create_dummy_pixmap (GtkWidget *widget); - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) gtk_object_get_data (GTK_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -/* This is a dummy pixmap we use when a pixmap can't be found. */ -static char *dummy_pixmap_xpm[] = { -/* columns rows colors chars-per-pixel */ -"1 1 1 1", -" c None", -/* pixels */ -" " -}; - -/* This is an internally used function to create pixmaps. */ -static GtkWidget* -create_dummy_pixmap (GtkWidget *widget) -{ - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - GtkWidget *pixmap; - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm_d (NULL, colormap, &mask, - NULL, dummy_pixmap_xpm); - if (gdkpixmap == NULL) - g_error ("Couldn't create replacement pixmap."); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *found_filename = NULL; - GdkColormap *colormap; - GdkPixmap *gdkpixmap; - GdkBitmap *mask; - GtkWidget *pixmap; - GList *elem; - - if (!filename || !filename[0]) - return create_dummy_pixmap (widget); - - /* We first try any pixmaps directories set by the application. */ - elem = pixmaps_directories; - while (elem) - { - found_filename = check_file_exists ((gchar*)elem->data, filename); - if (found_filename) - break; - elem = elem->next; - } - - /* If we haven't found the pixmap, try the source directory. */ - if (!found_filename) - { - found_filename = check_file_exists ("pixmaps", filename); - } - - if (!found_filename) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return create_dummy_pixmap (widget); - } - - colormap = gtk_widget_get_colormap (widget); - gdkpixmap = gdk_pixmap_colormap_create_from_xpm (NULL, colormap, &mask, - NULL, found_filename); - if (gdkpixmap == NULL) - { - g_warning (_("Error loading pixmap file: %s"), found_filename); - g_free (found_filename); - return create_dummy_pixmap (widget); - } - g_free (found_filename); - pixmap = gtk_pixmap_new (gdkpixmap, mask); - gdk_pixmap_unref (gdkpixmap); - gdk_bitmap_unref (mask); - return pixmap; -} - -/* This is an internally used function to check if a pixmap file exists. */ -static gchar* -check_file_exists (const gchar *directory, - const gchar *filename) -{ - gchar *full_filename; - struct stat s; - gint status; - - full_filename = (gchar*) g_malloc (strlen (directory) + 1 - + strlen (filename) + 1); - strcpy (full_filename, directory); - strcat (full_filename, G_DIR_SEPARATOR_S); - strcat (full_filename, filename); - - status = stat (full_filename, &s); - if (status == 0 && S_ISREG (s.st_mode)) - return full_filename; - g_free (full_filename); - return NULL; -} - diff --git a/modules/gui/gtk/gtk_support.h b/modules/gui/gtk/gtk_support.h deleted file mode 100644 index 7a13025186..0000000000 --- a/modules/gui/gtk/gtk_support.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Created by glade, fixed by bootstrap - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Standard gettext macros. - */ -#if 0 /* Disabled by bootstrap */ -# include -# undef _ -# define _(String) dgettext (PACKAGE, String) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -/* #else */ -# define textdomain(String) (String) -# define gettext(String) (String) -# define dgettext(Domain,Message) (Message) -# define dcgettext(Domain,Message,Type) (Message) -# define bindtextdomain(Domain,Directory) (Domain) -# define _(String) (String) -# define N_(String) (String) -#endif - - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - -/* get_widget() is deprecated. Use lookup_widget instead. */ -#define get_widget lookup_widget - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - diff --git a/modules/gui/gtk/menu.c b/modules/gui/gtk/menu.c deleted file mode 100644 index 8d91f8e5b3..0000000000 --- a/modules/gui/gtk/menu.c +++ /dev/null @@ -1,1545 +0,0 @@ -/***************************************************************************** - * menu.c : functions to handle menu items. - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Sam Hocevar - * Stéphane Borel - * Johan Bilien - * Laurent Aimar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include -#include -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -/* - * Local Prototypes - */ -static gint GtkLanguageMenus( gpointer , GtkWidget *, es_descriptor_t *, gint, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ); - -void GtkMenubarAudioToggle ( GtkCheckMenuItem *, gpointer ); -void GtkPopupAudioToggle ( GtkCheckMenuItem *, gpointer ); -void GtkMenubarSubtitleToggle( GtkCheckMenuItem *, gpointer ); -void GtkPopupSubtitleToggle ( GtkCheckMenuItem *, gpointer ); -static gint GtkTitleMenu( gpointer, GtkWidget *, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ); -static gint GtkRadioMenu( intf_thread_t *, GtkWidget *, GSList *, - char *, int, int, int, - void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) ); - -static void GtkMenubarDeinterlaceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ); -static void GtkPopupDeinterlaceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ); -static gint GtkDeinterlaceMenus( gpointer p_data, - GtkWidget * p_root, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ); - -gint GtkSetupMenus( intf_thread_t * p_intf ); - -/**************************************************************************** - * Gtk*Toggle: callbacks to toggle the value of a checkmenuitem - **************************************************************************** - * We need separate functions for menubar and popup here since we can't use - * user_data to transmit intf_* and we need to refresh the other menu. - ****************************************************************************/ - -#define GTKLANGTOGGLE( window, menu, type, var_name, callback, b_update )\ - intf_thread_t * p_intf; \ - GtkWidget * p_menu; \ - es_descriptor_t * p_es; \ - \ - p_intf = GtkGetIntf( menuitem ); \ - \ - if( !p_intf->p_sys->b_update ) \ - { \ - p_menu = GTK_WIDGET( gtk_object_get_data( \ - GTK_OBJECT( p_intf->p_sys->window ), (menu) ) ); \ - p_es = (es_descriptor_t*)user_data; \ - if( p_es && menuitem->active ) \ - var_SetInteger( p_intf->p_sys->p_input, var_name, p_es->i_id ); \ - else \ - var_SetInteger( p_intf->p_sys->p_input, var_name, -1 ); \ - \ - p_intf->p_sys->b_update = menuitem->active; \ - \ - if( p_intf->p_sys->b_update ) \ - { \ - GtkLanguageMenus( p_intf, p_menu, p_es, type, callback ); \ - } \ - \ - p_intf->p_sys->b_update = VLC_FALSE; \ - } - -/* - * Audio - */ - -void GtkMenubarAudioToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKLANGTOGGLE( p_popup, "popup_language", AUDIO_ES, "audio-es", - GtkPopupAudioToggle, b_audio_update ); -} - -void GtkPopupAudioToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKLANGTOGGLE( p_window, "menubar_audio", AUDIO_ES, "audio-es", - GtkMenubarAudioToggle, b_audio_update ); -} - -/* - * Subtitles - */ - -void GtkMenubarSubtitleToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKLANGTOGGLE( p_popup, "popup_subpictures", SPU_ES, "spu-es", - GtkPopupSubtitleToggle, b_spu_update ); -} - -void GtkPopupSubtitleToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKLANGTOGGLE( p_window, "menubar_subpictures", SPU_ES, "spu-es", - GtkMenubarSubtitleToggle, b_spu_update ); -} - -#undef GTKLANGTOGGLE - -/* - * Navigation - */ - -void GtkPopupNavigationToggle( GtkCheckMenuItem * menuitem, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( menuitem ); - - if( menuitem->active && - !p_intf->p_sys->b_title_update && - !p_intf->p_sys->b_chapter_update ) - { - input_area_t *p_area; - - guint i_title = DATA2TITLE( user_data ); - guint i_chapter = DATA2CHAPTER( user_data ); - - /* FIXME use "navigation" variable */ - var_SetInteger( p_intf->p_sys->p_input, "title", i_title ); - var_SetInteger( p_intf->p_sys->p_input, "chapter", i_chapter ); - - p_intf->p_sys->b_title_update = VLC_TRUE; - p_intf->p_sys->b_chapter_update = VLC_TRUE; - - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - } -} - -/* - * Program - */ -#define GTKPROGRAMTOGGLE( ) \ - intf_thread_t * p_intf = GtkGetIntf( menuitem ); \ - \ - if( menuitem->active && !p_intf->p_sys->b_program_update ) \ - { \ - int i_program_id = (ptrdiff_t)user_data; \ - \ - var_SetInteger( p_intf->p_sys->p_input, "program", i_program_id ); \ - \ - p_intf->p_sys->b_program_update = VLC_TRUE; \ - \ - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); \ - GtkSetupMenus( p_intf ); \ - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); \ - \ - p_intf->p_sys->b_program_update = VLC_FALSE; \ - \ - var_SetInteger( p_intf->p_sys->p_input, "state", PLAYING_S ); \ - } - -void GtkMenubarProgramToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKPROGRAMTOGGLE( ); -} - -void GtkPopupProgramToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GTKPROGRAMTOGGLE( ); -} - -/* - * Title - */ - -void GtkMenubarTitleToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( menuitem ); - - if( menuitem->active && !p_intf->p_sys->b_title_update ) - { - guint i_title = (ptrdiff_t)user_data; - - var_SetInteger( p_intf->p_sys->p_input, "title", i_title ); - - p_intf->p_sys->b_title_update = VLC_TRUE; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkSetupMenus( p_intf ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - } -} - -/* - * Chapter - */ - -void GtkMenubarChapterToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - intf_thread_t * p_intf; - input_area_t * p_area; - guint i_chapter; - GtkWidget * p_popup_menu; - - p_intf = GtkGetIntf( menuitem ); - p_area = p_intf->p_sys->p_input->stream.p_selected_area; - i_chapter = (ptrdiff_t)user_data; - - if( menuitem->active && !p_intf->p_sys->b_chapter_update ) - { - var_SetInteger( p_intf->p_sys->p_input, "chapter", i_chapter ); - - p_intf->p_sys->b_chapter_update = VLC_TRUE; - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_navigation" ) ); - - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - GtkTitleMenu( p_intf, p_popup_menu, GtkPopupNavigationToggle ); - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - - p_intf->p_sys->b_chapter_update = VLC_FALSE; - } -} - - -static void GtkPopupObjectToggle( GtkCheckMenuItem * menuitem, - gpointer user_data, int i_object_type, char *psz_variable ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - GtkLabel *p_label; - - p_label = GTK_LABEL( ( GTK_BIN( menuitem )->child ) ); - - if( menuitem->active && !p_intf->p_sys->b_aout_update && - !p_intf->p_sys->b_vout_update ) - { - vlc_object_t * p_obj; - - p_obj = (vlc_object_t *)vlc_object_find( p_intf, i_object_type, - FIND_ANYWHERE ); - if( p_obj ) - { - vlc_value_t val; - - if( user_data ) - { - val = (vlc_value_t)user_data; - } - else - { - gtk_label_get( p_label, &val.psz_string ); - } - - if( var_Set( p_obj, psz_variable, val ) < 0 ) - { - msg_Warn( p_obj, "cannot set variable (%s)", val.psz_string ); - } - vlc_object_release( p_obj ); - } - } -} -static void GtkPopupAoutChannelsToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GtkPopupObjectToggle( menuitem, user_data, VLC_OBJECT_AOUT, "audio-channels" ); -} - -static void GtkPopupAoutDeviceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GtkPopupObjectToggle( menuitem, user_data, VLC_OBJECT_AOUT, "audio-device" ); -} - - -static void GtkPopupVoutDeviceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - GtkPopupObjectToggle( menuitem, user_data, VLC_OBJECT_VOUT, "video-device" ); -} - - -static void GtkDeinterlaceUpdate( intf_thread_t *p_intf, char *psz_mode ) -{ - char *psz_filter; - unsigned int i; - - psz_filter = config_GetPsz( p_intf, "vout-filter" ); - - if( !strcmp( psz_mode, "None" ) ) - { - config_PutPsz( p_intf, "vout-filter", "" ); - } - else - { - if( !psz_filter || !*psz_filter ) - { - config_PutPsz( p_intf, "vout-filter", "deinterlace" ); - } - else - { - if( strstr( psz_filter, "deinterlace" ) == NULL ) - { - psz_filter = realloc( psz_filter, strlen( psz_filter ) + 20 ); - strcat( psz_filter, ",deinterlace" ); - } - config_PutPsz( p_intf, "vout-filter", psz_filter ); - } - } - - if( psz_filter ) - free( psz_filter ); - - /* now restart all video stream */ - if( p_intf->p_sys->p_input ) - { - vout_thread_t *p_vout; - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - - /* Warn the vout we are about to change the filter chain */ - p_vout = vlc_object_find( p_intf, VLC_OBJECT_VOUT, - FIND_ANYWHERE ); - if( p_vout ) - { - p_vout->b_filter_change = VLC_TRUE; - vlc_object_release( p_vout ); - } - -#define ES p_intf->p_sys->p_input->stream.pp_es[i] - /* create a set of language buttons and append them to the container */ - for( i = 0 ; i < p_intf->p_sys->p_input->stream.i_es_number ; i++ ) - { - if( ( ES->i_cat == VIDEO_ES ) && - ES->p_dec != NULL ) - { - input_UnselectES( p_intf->p_sys->p_input, ES ); - input_SelectES( p_intf->p_sys->p_input, ES ); - } -#undef ES - } - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - } - - if( strcmp( psz_mode, "None" ) ) - { - vout_thread_t *p_vout; - p_vout = vlc_object_find( p_intf, VLC_OBJECT_VOUT, - FIND_ANYWHERE ); - if( p_vout ) - { - vlc_value_t val; - - val.psz_string = psz_mode; - if( var_Set( p_vout, "deinterlace-mode", val ) != VLC_SUCCESS ) - config_PutPsz( p_intf, "deinterlace-mode", psz_mode ); - - vlc_object_release( p_vout ); - } - else - config_PutPsz( p_intf, "deinterlace-mode", psz_mode ); - - } -} - -static void GtkMenubarDeinterlaceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - GtkLabel *p_label; - char *psz_mode; - GtkWidget *p_popup_menu; - - p_label = GTK_LABEL( ( GTK_BIN( menuitem )->child ) ); - - if( !p_intf->p_sys->b_deinterlace_update && menuitem->active ) - { - gtk_label_get( p_label, &psz_mode ); - GtkDeinterlaceUpdate( p_intf, psz_mode ); - - p_intf->p_sys->b_deinterlace_update = VLC_TRUE; - - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_deinterlace" ) ); - - GtkDeinterlaceMenus( p_intf, p_popup_menu, GtkPopupDeinterlaceToggle ); - - p_intf->p_sys->b_deinterlace_update = VLC_FALSE; - - } -} - -static void GtkPopupDeinterlaceToggle( GtkCheckMenuItem * menuitem, gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - GtkLabel *p_label; - char *psz_mode; - GtkWidget *p_menubar_menu; - - p_label = GTK_LABEL( ( GTK_BIN( menuitem )->child ) ); - - if( !p_intf->p_sys->b_deinterlace_update && menuitem->active ) - { - gtk_label_get( p_label, &psz_mode ); - GtkDeinterlaceUpdate( p_intf, psz_mode ); - - p_intf->p_sys->b_deinterlace_update = VLC_TRUE; - - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_deinterlace" ) ); - - GtkDeinterlaceMenus( p_intf, p_menubar_menu, GtkMenubarDeinterlaceToggle ); - - p_intf->p_sys->b_deinterlace_update = VLC_FALSE; - } -} - -/**************************************************************************** - * Functions to generate menus - ****************************************************************************/ - -/***************************************************************************** - * GtkRadioMenu: update interactive menus of the interface - ***************************************************************************** - * Sets up menus with information from input - * Warning: since this function is designed to be called by management - * function, the interface lock has to be taken - *****************************************************************************/ -static gint GtkRadioMenu( intf_thread_t * p_intf, - GtkWidget * p_root, GSList * p_menu_group, - char * psz_item_name, - int i_start, int i_end, int i_selected, - void( *pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - char psz_name[ GTK_MENU_LABEL_SIZE ]; - GtkWidget * p_menu; - GtkWidget * p_submenu; - GtkWidget * p_item_group; - GtkWidget * p_item; - GtkWidget * p_item_selected; - GSList * p_group; - gint i_item; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_root)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) ); - gtk_widget_set_sensitive( p_root, FALSE ); - - p_item_group = NULL; - p_submenu = NULL; - p_item_selected = NULL; - p_group = p_menu_group; - - p_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); - - for( i_item = i_start ; i_item <= i_end ; i_item++ ) - { - /* we group chapters in packets of ten for small screens */ - if( ( i_item % 10 == i_start ) && ( i_end > i_start + 20 ) ) - { - if( i_item != i_start ) - { - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), - p_submenu ); - gtk_menu_append( GTK_MENU( p_menu ), p_item_group ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, - "%ss %d to %d", psz_item_name, i_item, i_item + 9 ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - p_item_group = gtk_menu_item_new_with_label( psz_name ); - gtk_widget_show( p_item_group ); - p_submenu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_submenu ), "p_intf", p_intf ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, "%s %d", - psz_item_name, i_item ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - - p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name ); - p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - if( i_selected == i_item ) - { - p_item_selected = p_item; - } - - gtk_widget_show( p_item ); - - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_item ), - "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - (gpointer)((long)(i_item)) ); - - if( i_end > i_start + 20 ) - { - gtk_menu_append( GTK_MENU( p_submenu ), p_item ); - } - else - { - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - } - } - - if( i_end > i_start + 20 ) - { - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_item_group ), p_submenu ); - gtk_menu_append( GTK_MENU( p_menu ), p_item_group ); - } - - /* link the new menu to the title menu item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - /* toggle currently selected chapter - * We have to release the lock since input_ToggleES needs it */ - if( p_item_selected != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_selected ), - TRUE ); - } - - /* be sure that menu is sensitive, if there are several items */ - if( i_end > i_start ) - { - gtk_widget_set_sensitive( p_root, TRUE ); - } - - return TRUE; -} - -/***************************************************************************** - * GtkProgramMenu: update the programs menu of the interface - ***************************************************************************** - * Builds the program menu according to what have been found in the PAT - * by the input. Usefull for multi-programs streams such as DVB ones. - *****************************************************************************/ -static gint GtkProgramMenu( gpointer p_data, - GtkWidget * p_root, - pgrm_descriptor_t * p_pgrm, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - intf_thread_t * p_intf; - GtkWidget * p_menu; - GtkWidget * p_item; - GtkWidget * p_item_active; - GSList * p_group; - char psz_name[ GTK_MENU_LABEL_SIZE ]; - guint i; - - /* cast */ - p_intf = (intf_thread_t *)p_data; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_root)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) ); - gtk_widget_set_sensitive( p_root, FALSE ); - - p_group = NULL; - - /* menu container */ - p_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); - - p_item_active = NULL; - - /* create a set of program buttons and append them to the container */ - for( i = 0 ; i < p_intf->p_sys->p_input->stream.i_pgrm_number ; i++ ) - { - snprintf( psz_name, GTK_MENU_LABEL_SIZE, "id %d", - p_intf->p_sys->p_input->stream.pp_programs[i]->i_number ); - psz_name[GTK_MENU_LABEL_SIZE-1] = '\0'; - - p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name ); - p_group = - gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - if( p_pgrm == p_intf->p_sys->p_input->stream.pp_programs[i] ) - { - /* don't lose p_item when we append into menu */ - p_item_active = p_item; - } - - gtk_widget_show( p_item ); - - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - (gpointer)(ptrdiff_t)( p_intf->p_sys->p_input-> - stream.pp_programs[i]->i_number ) ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - } - - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - /* activation will call signals so we can only do it - * when submenu is attached to menu - to get intf_window - * We have to release the lock since input_ToggleES needs it */ - if( p_item_active != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), - TRUE ); - } - - /* be sure that menu is sensitive if more than 1 program */ - if( p_intf->p_sys->p_input->stream.i_pgrm_number > 1 ) - { - gtk_widget_set_sensitive( p_root, TRUE ); - } - - return TRUE; -} - -/***************************************************************************** - * GtkLanguageMenus: update interactive menus of the interface - ***************************************************************************** - * Sets up menus with information from input: - * -languages - * -sub-pictures - * Warning: since this function is designed to be called by management - * function, the interface lock has to be taken - *****************************************************************************/ -static gint GtkLanguageMenus( gpointer p_data, - GtkWidget * p_root, - es_descriptor_t * p_es, - gint i_cat, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - intf_thread_t * p_intf; - GtkWidget * p_menu; - GtkWidget * p_separator; - GtkWidget * p_item; - GtkWidget * p_item_active; - GSList * p_group; - char psz_name[ GTK_MENU_LABEL_SIZE ]; - guint i_item; - guint i; - - p_intf = (intf_thread_t *)p_data; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_root)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) ); - gtk_widget_set_sensitive( p_root, FALSE ); - - p_group = NULL; - - /* menu container */ - p_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); - - /* special case for "off" item */ - snprintf( psz_name, GTK_MENU_LABEL_SIZE, _("None") ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - - p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name ); - p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - gtk_widget_show( p_item ); - - /* signal hanling for off */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC ( pf_toggle ), NULL ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - - p_separator = gtk_menu_item_new(); - gtk_widget_set_sensitive( p_separator, FALSE ); - gtk_widget_show( p_separator ); - gtk_menu_append( GTK_MENU( p_menu ), p_separator ); - - p_item_active = NULL; - i_item = 0; - - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - -#define ES p_intf->p_sys->p_input->stream.pp_es[i] - /* create a set of language buttons and append them to the container */ - for( i = 0 ; i < p_intf->p_sys->p_input->stream.i_es_number ; i++ ) - { - if( ( ES->i_cat == i_cat ) && - ( !ES->p_pgrm || - ES->p_pgrm == - p_intf->p_sys->p_input->stream.p_selected_program ) ) - { - i_item++; - if( !p_intf->p_sys->p_input->stream.pp_es[i]->psz_desc || - !*p_intf->p_sys->p_input->stream.pp_es[i]->psz_desc ) - { - snprintf( psz_name, GTK_MENU_LABEL_SIZE, - "Language %d", i_item ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - } - else - { - strcpy( psz_name, - p_intf->p_sys->p_input->stream.pp_es[i]->psz_desc ); - } - - p_item = gtk_radio_menu_item_new_with_label( p_group, psz_name ); - p_group = - gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - if( p_es == p_intf->p_sys->p_input->stream.pp_es[i] ) - { - /* don't lose p_item when we append into menu */ - p_item_active = p_item; - } - - gtk_widget_show( p_item ); - - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - (gpointer)( p_intf->p_sys->p_input->stream.pp_es[i] ) ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - } - } - - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - /* acitvation will call signals so we can only do it - * when submenu is attached to menu - to get intf_window - * We have to release the lock since input_ToggleES needs it */ - if( p_item_active != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), - TRUE ); - } - - /* be sure that menu is sensitive if non empty */ - if( i_item > 0 ) - { - gtk_widget_set_sensitive( p_root, TRUE ); - } - - return TRUE; -} - -/***************************************************************************** - * GtkTitleMenu: sets menus for titles and chapters selection - ***************************************************************************** - * Generates two types of menus: - * -simple list of titles - * -cascaded lists of chapters for each title - *****************************************************************************/ -static gint GtkTitleMenu( gpointer p_data, - GtkWidget * p_navigation, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - intf_thread_t * p_intf; - char psz_name[ GTK_MENU_LABEL_SIZE ]; - GtkWidget * p_title_menu; - GtkWidget * p_title_submenu; - GtkWidget * p_title_item; - GtkWidget * p_item_active; - GtkWidget * p_chapter_menu; - GtkWidget * p_chapter_submenu; - GtkWidget * p_title_menu_item; - GtkWidget * p_chapter_menu_item; - GtkWidget * p_item; - GSList * p_title_group; - GSList * p_chapter_group; - guint i_title; - guint i_chapter; - guint i_title_nb; - guint i_chapter_nb; - - /* cast */ - p_intf = (intf_thread_t*)p_data; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_navigation)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_navigation)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_navigation ) ); - gtk_widget_set_sensitive( p_navigation, FALSE ); - - p_title_menu = gtk_menu_new(); - p_title_group = NULL; - p_title_submenu = NULL; - p_title_menu_item = NULL; - p_chapter_group = NULL; - p_chapter_submenu = NULL; - p_chapter_menu_item = NULL; - p_item_active = NULL; - i_title_nb = p_intf->p_sys->p_input->stream.i_area_nb - 1; - - gtk_object_set_data( GTK_OBJECT( p_title_menu ), "p_intf", p_intf ); - - /* loop on titles */ - for( i_title = 1 ; i_title <= i_title_nb ; i_title++ ) - { - /* we group titles in packets of ten for small screens */ - if( ( i_title % 10 == 1 ) && ( i_title_nb > 20 ) ) - { - if( i_title != 1 ) - { - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ), - p_title_submenu ); - gtk_menu_append( GTK_MENU( p_title_menu ), p_title_menu_item ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, - "%d - %d", i_title, i_title + 9 ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - p_title_menu_item = gtk_menu_item_new_with_label( psz_name ); - gtk_widget_show( p_title_menu_item ); - p_title_submenu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_title_submenu ), - "p_intf", p_intf ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, _("Title %d (%d)"), i_title, - p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb - 1); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; -#if 0 - if( pf_toggle == on_menubar_title_toggle ) - { - p_title_item = gtk_radio_menu_item_new_with_label( p_title_group, - psz_name ); - p_title_group = - gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_title_item ) ); - - if( p_intf->p_sys->p_input->stream.pp_areas[i_title] == - p_intf->p_sys->p_input->stream.p_selected_area ) - { - p_item_active = p_title_item; - } - - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_title_item ), - "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - (gpointer)(p_intf->p_sys->p_input->stream.pp_areas[i_title]) ); - - if( p_intf->p_sys->p_input->stream.i_area_nb > 1 ) - { - /* be sure that menu is sensitive */ - gtk_widget_set_sensitive( p_navigation, TRUE ); - } - } - else -#endif - { - p_title_item = gtk_menu_item_new_with_label( psz_name ); - -#if 1 - p_chapter_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_chapter_menu ), - "p_intf", p_intf ); - i_chapter_nb = - p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb - 1; - - for( i_chapter = 1 ; i_chapter <= i_chapter_nb ; i_chapter++ ) - { - /* we group chapters in packets of ten for small screens */ - if( ( i_chapter % 10 == 1 ) && ( i_chapter_nb > 20 ) ) - { - if( i_chapter != 1 ) - { - gtk_menu_item_set_submenu( - GTK_MENU_ITEM( p_chapter_menu_item ), - p_chapter_submenu ); - gtk_menu_append( GTK_MENU( p_chapter_menu ), - p_chapter_menu_item ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, - "%d - %d", i_chapter, i_chapter + 9 ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - p_chapter_menu_item = - gtk_menu_item_new_with_label( psz_name ); - gtk_widget_show( p_chapter_menu_item ); - p_chapter_submenu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_chapter_submenu ), - "p_intf", p_intf ); - } - - snprintf( psz_name, GTK_MENU_LABEL_SIZE, - _("Chapter %d"), i_chapter ); - psz_name[ GTK_MENU_LABEL_SIZE - 1 ] = '\0'; - - p_item = gtk_radio_menu_item_new_with_label( - p_chapter_group, psz_name ); - p_chapter_group = gtk_radio_menu_item_group( - GTK_RADIO_MENU_ITEM( p_item ) ); - gtk_widget_show( p_item ); - -#define p_area p_intf->p_sys->p_input->stream.pp_areas[i_title] - if( ( p_area == - p_intf->p_sys->p_input->stream.p_selected_area ) && - ( p_area->i_part == i_chapter ) ) - { - p_item_active = p_item; - } -#undef p_area - - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_item ), - "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - (gpointer)POS2DATA( i_title, i_chapter ) ); - - if( i_chapter_nb > 20 ) - { - gtk_menu_append( GTK_MENU( p_chapter_submenu ), p_item ); - } - else - { - gtk_menu_append( GTK_MENU( p_chapter_menu ), p_item ); - } - } - - if( i_chapter_nb > 20 ) - { - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_chapter_menu_item ), - p_chapter_submenu ); - gtk_menu_append( GTK_MENU( p_chapter_menu ), - p_chapter_menu_item ); - } - - /* link the new menu to the title menu item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_item ), - p_chapter_menu ); - - if( p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb > 1 ) - { - /* be sure that menu is sensitive */ - gtk_widget_set_sensitive( p_navigation, TRUE ); - } -#else - GtkRadioMenu( p_intf, p_title_item, p_chapter_group, _("Chapter"), - p_intf->p_sys->p_input->stream.pp_areas[i_title]->i_part_nb - 1, - 1, i_title * 100, - p_intf->p_sys->p_input->stream.p_selected_area->i_part + - p_intf->p_sys->p_input->stream.p_selected_area->i_id *100, - pf_toggle ); - -#endif - } - gtk_widget_show( p_title_item ); - - if( i_title_nb > 20 ) - { - gtk_menu_append( GTK_MENU( p_title_submenu ), p_title_item ); - } - else - { - gtk_menu_append( GTK_MENU( p_title_menu ), p_title_item ); - } - } - - if( i_title_nb > 20 ) - { - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_title_menu_item ), - p_title_submenu ); - gtk_menu_append( GTK_MENU( p_title_menu ), p_title_menu_item ); - } - - /* be sure that menu is sensitive */ - gtk_widget_set_sensitive( p_title_menu, TRUE ); - - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_navigation ), p_title_menu ); - - /* Default selected chapter - * We have to release the lock since input_ToggleES needs it */ - if( p_item_active != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), - TRUE ); - } -#if 0 - if( p_intf->p_sys->p_input->stream.i_area_nb > 1 ) - { - /* be sure that menu is sensitive */ - gtk_widget_set_sensitive( p_navigation, TRUE ); - } -#endif - - return TRUE; -} - -/***************************************************************************** - * GtkSetupVarMenu : - ***************************************************************************** - * - *****************************************************************************/ -static gint GtkSetupVarMenu( intf_thread_t * p_intf, - vlc_object_t * p_object, - GtkWidget *p_root, - char * psz_variable, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - vlc_value_t val, text, val_list, text_list; - GtkWidget * p_menu; - GSList * p_group = NULL; - GtkWidget * p_item; - GtkWidget * p_item_active = NULL; - - int i_item, i_type; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_root)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) ); - gtk_widget_set_sensitive( p_root, FALSE ); - - /* Check the type of the object variable */ - i_type = var_Type( p_object, psz_variable ); - - /* Make sure we want to display the variable */ - if( i_type & VLC_VAR_HASCHOICE ) - { - var_Change( p_object, psz_variable, VLC_VAR_CHOICESCOUNT, &val, NULL ); - if( val.i_int == 0 ) return FALSE; - } - - /* Get the descriptive name of the variable */ - var_Change( p_object, psz_variable, VLC_VAR_GETTEXT, &text, NULL ); - - /* get the current value */ - if( var_Get( p_object, psz_variable, &val ) < 0 ) - { - return FALSE; - } - - if( var_Change( p_object, psz_variable, VLC_VAR_GETLIST, - &val_list, &text_list ) < 0 ) - { - if( i_type == VLC_VAR_STRING ) free( val.psz_string ); - return FALSE; - } - - /* menu container */ - p_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); - - for( i_item = 0; i_item < val_list.p_list->i_count; i_item++ ) - { - switch( i_type & VLC_VAR_TYPE ) - { - case VLC_VAR_STRING: - p_item = gtk_radio_menu_item_new_with_label( p_group, - text_list.p_list->p_values[i_item].psz_string ? - text_list.p_list->p_values[i_item].psz_string : - val_list.p_list->p_values[i_item].psz_string ); - - /* signal hanling for off */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC ( pf_toggle ), - /* FIXME memory leak */ - strdup(val_list.p_list->p_values[i_item].psz_string) ); - - if( !strcmp( val.psz_string, - val_list.p_list->p_values[i_item].psz_string ) ) - { - p_item_active = p_item; - } - break; - case VLC_VAR_INTEGER: - p_item = gtk_radio_menu_item_new_with_label( p_group, - text_list.p_list->p_values[i_item].psz_string ? - text_list.p_list->p_values[i_item].psz_string : - NULL /* FIXME */ ); - - /* signal hanling for off */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC ( pf_toggle ), - (gpointer)val_list.p_list->p_values[i_item].i_int ); - - if( val.i_int == val_list.p_list->p_values[i_item].i_int ) - { - p_item_active = p_item; - } - break; - default: - /* FIXME */ - return FALSE; - } - - p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - gtk_widget_show( p_item ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - } - - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - if( p_item_active ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM(p_item_active), - TRUE ); - } - - if( val_list.p_list->i_count > 0 ) - { - gtk_widget_set_sensitive( p_root, TRUE ); - } - - /* clean up everything */ - if( i_type == VLC_VAR_STRING ) free( val.psz_string ); - var_Change( p_object, psz_variable, VLC_VAR_FREELIST, - &val_list, &text_list ); - - return TRUE; -} - -/***************************************************************************** - * GtkDeinterlaceMenus: update interactive menus of the interface - ***************************************************************************** - *****************************************************************************/ -static gint GtkDeinterlaceMenus( gpointer p_data, - GtkWidget * p_root, - void(*pf_toggle )( GtkCheckMenuItem *, gpointer ) ) -{ - intf_thread_t * p_intf; - GtkWidget * p_menu; - GtkWidget * p_separator; - GtkWidget * p_item; - GtkWidget * p_item_active; - GSList * p_group; - guint i_item; - guint i; - char *ppsz_deinterlace_mode[] = { "discard", "blend", "mean", "bob", "linear", NULL }; - char *psz_deinterlace_option; - char *psz_filter; - - p_intf = (intf_thread_t *)p_data; - - /* temporary hack to avoid blank menu when an open menu is removed */ - if( GTK_MENU_ITEM(p_root)->submenu != NULL ) - { - gtk_menu_popdown( GTK_MENU( GTK_MENU_ITEM(p_root)->submenu ) ); - } - /* removes previous menu */ - gtk_menu_item_remove_submenu( GTK_MENU_ITEM( p_root ) ); - gtk_widget_set_sensitive( p_root, FALSE ); - - p_group = NULL; - - /* menu container */ - p_menu = gtk_menu_new(); - gtk_object_set_data( GTK_OBJECT( p_menu ), "p_intf", p_intf ); - - /* special case for "off" item */ - p_item = gtk_radio_menu_item_new_with_label( p_group, "None" ); - p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - - gtk_widget_show( p_item ); - - /* signal hanling for off */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC ( pf_toggle ), NULL ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - - p_separator = gtk_menu_item_new(); - gtk_widget_set_sensitive( p_separator, FALSE ); - gtk_widget_show( p_separator ); - gtk_menu_append( GTK_MENU( p_menu ), p_separator ); - - - /* search actual deinterlace mode */ - psz_filter = config_GetPsz( p_intf, "filter" ); - psz_deinterlace_option = strdup( "None" ); - - if( psz_filter && *psz_filter ) - { - if( strstr ( psz_filter, "deinterlace" ) ) - { - vlc_value_t val; - vout_thread_t *p_vout; - - p_vout = vlc_object_find( p_intf, VLC_OBJECT_VOUT, - FIND_ANYWHERE ); - if( p_vout && - var_Get( p_vout, "deinterlace-mode", &val ) == VLC_SUCCESS ) - { - if( val.psz_string && *val.psz_string ) - { - free( psz_deinterlace_option ); - psz_deinterlace_option = val.psz_string; - } - else if( val.psz_string ) free( val.psz_string ); - } - - if( p_vout ) vlc_object_release( p_vout ); - } - } - if( psz_filter ) - free( psz_filter ); - - p_item_active = NULL; - i_item = 0; - - /* create a set of deinteralce buttons and append them to the container */ - for( i = 0; ppsz_deinterlace_mode[i] != NULL; i++ ) - { - i_item++; - - p_item = gtk_radio_menu_item_new_with_label( p_group, ppsz_deinterlace_mode[i] ); - p_group = gtk_radio_menu_item_group( GTK_RADIO_MENU_ITEM( p_item ) ); - gtk_widget_show( p_item ); - - if( !strcmp( ppsz_deinterlace_mode[i], psz_deinterlace_option ) ) - { - p_item_active = p_item; - } - /* setup signal hanling */ - gtk_signal_connect( GTK_OBJECT( p_item ), "toggled", - GTK_SIGNAL_FUNC( pf_toggle ), - NULL ); - - gtk_menu_append( GTK_MENU( p_menu ), p_item ); - - } - - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - /* acitvation will call signals so we can only do it - * when submenu is attached to menu - to get intf_window - * We have to release the lock since input_ToggleES needs it */ - if( p_item_active != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), - TRUE ); - } - - /* be sure that menu is sensitive if non empty */ - if( i_item > 0 ) - { - gtk_widget_set_sensitive( p_root, TRUE ); - } - - return TRUE; -} - - - -/***************************************************************************** - * GtkSetupMenus: function that generates title/chapter/audio/subpic - * menus with help from preceding functions - ***************************************************************************** - * Function called with the lock on stream - *****************************************************************************/ -gint GtkSetupMenus( intf_thread_t * p_intf ) -{ - es_descriptor_t * p_audio_es; - es_descriptor_t * p_spu_es; - GtkWidget * p_menubar_menu; - GtkWidget * p_popup_menu; - guint i; - - p_intf->p_sys->b_chapter_update |= p_intf->p_sys->b_title_update; - p_intf->p_sys->b_audio_update |= p_intf->p_sys->b_title_update | - p_intf->p_sys->b_program_update; - p_intf->p_sys->b_spu_update |= p_intf->p_sys->b_title_update | - p_intf->p_sys->b_program_update; - - if( 1 ) - { - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_deinterlace" ) ); - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_deinterlace" ) ); - - p_intf->p_sys->b_deinterlace_update = VLC_TRUE; - GtkDeinterlaceMenus( p_intf, p_menubar_menu, GtkMenubarDeinterlaceToggle ); - p_intf->p_sys->b_deinterlace_update = VLC_TRUE; - GtkDeinterlaceMenus( p_intf, p_popup_menu, GtkPopupDeinterlaceToggle ); - - p_intf->p_sys->b_deinterlace_update = VLC_FALSE; - } - - if( p_intf->p_sys->b_program_update ) - { - pgrm_descriptor_t * p_pgrm; - - if( p_intf->p_sys->p_input->stream.p_new_program ) - { - p_pgrm = p_intf->p_sys->p_input->stream.p_new_program; - } - else - { - p_pgrm = p_intf->p_sys->p_input->stream.p_selected_program; - } - - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_program" ) ); - GtkProgramMenu( p_intf, p_menubar_menu, p_pgrm, - GtkMenubarProgramToggle ); - - p_intf->p_sys->b_program_update = VLC_TRUE; - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_program" ) ); - GtkProgramMenu( p_intf, p_popup_menu, p_pgrm, - GtkPopupProgramToggle ); - - p_intf->p_sys->b_program_update = VLC_FALSE; - } - - if( p_intf->p_sys->b_title_update ) - { - char psz_title[5]; - - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_title" ) ); - GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), 1, - p_intf->p_sys->p_input->stream.i_area_nb - 1, - p_intf->p_sys->p_input->stream.p_selected_area->i_id, - GtkMenubarTitleToggle ); - - snprintf( psz_title, 4, "%d", - p_intf->p_sys->p_input->stream.p_selected_area->i_id ); - psz_title[ 4 ] = '\0'; - gtk_label_set_text( p_intf->p_sys->p_label_title, psz_title ); - - p_intf->p_sys->b_title_update = VLC_FALSE; - } - - if( p_intf->p_sys->b_chapter_update ) - { - char psz_chapter[5]; - - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_navigation" ) ); - GtkTitleMenu( p_intf, p_popup_menu, GtkPopupNavigationToggle ); -#if 0 - GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Title"), 1, - p_intf->p_sys->p_input->stream.i_area_nb - 1, - p_intf->p_sys->p_input->stream.p_selected_area->i_id, - on_menubar_chapter_toggle ); -#endif - - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_chapter" ) ); - - GtkRadioMenu( p_intf, p_menubar_menu, NULL, _("Chapter"), 1, - p_intf->p_sys->p_input->stream.p_selected_area->i_part_nb - 1, - p_intf->p_sys->p_input->stream.p_selected_area->i_part, - GtkMenubarChapterToggle ); - - - snprintf( psz_chapter, 4, "%d", - p_intf->p_sys->p_input->stream.p_selected_area->i_part ); - psz_chapter[ 4 ] = '\0'; - gtk_label_set_text( p_intf->p_sys->p_label_chapter, psz_chapter ); - - p_intf->p_sys->i_part = - p_intf->p_sys->p_input->stream.p_selected_area->i_part; - - p_intf->p_sys->b_chapter_update = VLC_FALSE; - } - - /* look for selected ES */ - p_audio_es = NULL; - p_spu_es = NULL; - - for( i = 0 ; i < p_intf->p_sys->p_input->stream.i_selected_es_number ; i++ ) - { - if( p_intf->p_sys->p_input->stream.pp_selected_es[i]->i_cat == AUDIO_ES ) - { - p_audio_es = p_intf->p_sys->p_input->stream.pp_selected_es[i]; - } - - if( p_intf->p_sys->p_input->stream.pp_selected_es[i]->i_cat == SPU_ES ) - { - p_spu_es = p_intf->p_sys->p_input->stream.pp_selected_es[i]; - } - } - - vlc_mutex_unlock( &p_intf->p_sys->p_input->stream.stream_lock ); - - /* audio menus */ - if( p_intf->p_sys->b_audio_update ) - { - /* find audio root menu */ - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_audio" ) ); - - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_language" ) ); - - p_intf->p_sys->b_audio_update = VLC_TRUE; - GtkLanguageMenus( p_intf, p_menubar_menu, p_audio_es, AUDIO_ES, - GtkMenubarAudioToggle ); - p_intf->p_sys->b_audio_update = VLC_TRUE; - GtkLanguageMenus( p_intf, p_popup_menu, p_audio_es, AUDIO_ES, - GtkPopupAudioToggle ); - - p_intf->p_sys->b_audio_update = VLC_FALSE; - } - - /* sub picture menus */ - if( p_intf->p_sys->b_spu_update ) - { - /* find spu root menu */ - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_subpictures" ) ); - - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_subpictures" ) ); - - p_intf->p_sys->b_spu_update = VLC_TRUE; - GtkLanguageMenus( p_intf, p_menubar_menu, p_spu_es, SPU_ES, - GtkMenubarSubtitleToggle ); - p_intf->p_sys->b_spu_update = VLC_TRUE; - GtkLanguageMenus( p_intf, p_popup_menu, p_spu_es, SPU_ES, - GtkPopupSubtitleToggle ); - - p_intf->p_sys->b_spu_update = VLC_FALSE; - } - /* create audio channels and device menu (in menubar _and_ popup */ - if( p_intf->p_sys->b_aout_update ) - { - aout_instance_t *p_aout; - - p_aout = (aout_instance_t*)vlc_object_find( p_intf, VLC_OBJECT_AOUT, FIND_ANYWHERE ); - - if( p_aout != NULL ) - { - vlc_value_t val; - val.b_bool = VLC_FALSE; - - var_Set( (vlc_object_t *)p_aout, "intf-change", val ); - - /* audio-channels */ - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_audio_channels" ) ); - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_audio_channels" ) ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_aout, p_popup_menu, - "audio-channels", GtkPopupAoutChannelsToggle ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_aout, p_menubar_menu, - "audio-channels", GtkPopupAoutChannelsToggle ); - - /* audio-device */ - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_audio_device" ) ); - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_audio_device" ) ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_aout, p_popup_menu, - "audio-device", GtkPopupAoutDeviceToggle ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_aout, p_menubar_menu, - "audio-device", GtkPopupAoutDeviceToggle ); - - vlc_object_release( (vlc_object_t *)p_aout ); - } - p_intf->p_sys->b_aout_update = VLC_FALSE; - } - - if( p_intf->p_sys->b_vout_update ) - { - vout_thread_t *p_vout; - - p_vout = (vout_thread_t*)vlc_object_find( p_intf, VLC_OBJECT_VOUT, FIND_ANYWHERE ); - - if( p_vout != NULL ) - { - vlc_value_t val; - val.b_bool = VLC_FALSE; - - var_Set( (vlc_object_t *)p_vout, "intf-change", val ); - - /* video-device */ - p_menubar_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_window ), "menubar_video_device" ) ); - p_popup_menu = GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_popup ), "popup_video_device" ) ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_vout, p_popup_menu, - "video-device", GtkPopupVoutDeviceToggle ); - GtkSetupVarMenu( p_intf, (vlc_object_t *)p_vout, p_menubar_menu, - "video-device", GtkPopupVoutDeviceToggle ); - - - vlc_object_release( (vlc_object_t *)p_vout ); - } - p_intf->p_sys->b_vout_update = VLC_FALSE; - } - vlc_mutex_lock( &p_intf->p_sys->p_input->stream.stream_lock ); - - return TRUE; -} - diff --git a/modules/gui/gtk/menu.h b/modules/gui/gtk/menu.h deleted file mode 100644 index 130d7baf66..0000000000 --- a/modules/gui/gtk/menu.h +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** - * gtk_menu.h: prototypes for menu functions - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -gint GtkSetupMenus( intf_thread_t * ); - -/***************************************************************************** - * String sizes - *****************************************************************************/ -#define GTK_MENU_LABEL_SIZE 64 - -/***************************************************************************** - * Convert user_data structures to title and chapter information - *****************************************************************************/ -#define DATA2TITLE( user_data ) ( (gint)((long)(user_data)) >> 16 ) -#define DATA2CHAPTER( user_data ) ( (gint)((long)(user_data)) & 0xffff ) -#define POS2DATA( title, chapter ) ( 0 + ( ((title) << 16) \ - | ((chapter) & 0xffff)) ) - diff --git a/modules/gui/gtk/modules.c b/modules/gui/gtk/modules.c deleted file mode 100644 index 90d30ece55..0000000000 --- a/modules/gui/gtk/modules.c +++ /dev/null @@ -1,72 +0,0 @@ -/***************************************************************************** - * gtk_modules.c : functions to build modules configuration boxes. - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -gboolean GtkModulesShow( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( widget ); - - if( !GTK_IS_WIDGET( p_intf->p_sys->p_modules ) ) - { -/* p_intf->p_sys->p_modules = create_intf_modules(); */ - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_modules ), - "p_intf", p_intf ); - } - gtk_widget_show( p_intf->p_sys->p_modules ); - gdk_window_raise( p_intf->p_sys->p_modules->window ); - - return FALSE; -} - -void GtkModulesCancel( GtkButton * button, gpointer user_data ) -{ - intf_thread_t *p_intf = GtkGetIntf( button ); - - gtk_widget_hide( p_intf->p_sys->p_modules ); -} - diff --git a/modules/gui/gtk/modules.h b/modules/gui/gtk/modules.h deleted file mode 100644 index fda99db6c3..0000000000 --- a/modules/gui/gtk/modules.h +++ /dev/null @@ -1,27 +0,0 @@ -/***************************************************************************** - * gtk_modules.h: prototypes for modules functions - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -gboolean GtkModulesShow ( GtkWidget *, gpointer ); -void GtkModulesCancel ( GtkButton * button, gpointer ); - diff --git a/modules/gui/gtk/open.c b/modules/gui/gtk/open.c deleted file mode 100644 index a10db77689..0000000000 --- a/modules/gui/gtk/open.c +++ /dev/null @@ -1,731 +0,0 @@ -/***************************************************************************** - * gtk_open.c : functions to handle file/disc/network open widgets. - ***************************************************************************** - * Copyright (C) 2000, 2001, 2003 the VideoLAN team - * $Id$ - * - * Authors: Sam Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -#ifdef HAVE_CDDAX -#define CDDA_MRL "cddax://" -#else -#define CDDA_MRL "cdda://" -#endif - -#ifdef HAVE_VCDX -#define VCD_MRL "vcdx://" -#else -#define VCD_MRL "vcdx://" -#endif - -static void GtkOpenShow( intf_thread_t *, int ); - -static void GtkFileOpenChanged ( GtkWidget *, gpointer ); -static void GtkDiscOpenChanged ( GtkWidget *, gpointer ); -static void GtkNetworkOpenChanged ( GtkWidget *, gpointer ); -static void GtkSatOpenChanged ( GtkWidget *, gpointer ); - -/***************************************************************************** - * File requester callbacks - ***************************************************************************** - * The following callbacks are related to the file requester. - *****************************************************************************/ -void GtkFileShow( GtkButton * button, gpointer user_data ) -{ - GtkWidget * p_file = create_intf_file(); - - gtk_object_set_data( GTK_OBJECT(p_file), "p_intf", - GtkGetIntf( button ) ); - - /* entry <- entry_file or entry_subtitle */ - gtk_object_set_data( GTK_OBJECT(p_file), "entry", - user_data ); - - gtk_widget_show( p_file ); - gdk_window_raise( p_file->window ); -} - -void GtkFileOk( GtkButton * button, gpointer user_data ) -{ - GtkWidget * p_file = gtk_widget_get_toplevel( GTK_WIDGET (button) ); - - char *psz_entry; - char *psz_filename; - intf_thread_t * p_intf = GtkGetIntf( button ); - - /* add the new file to the dialog box */ - psz_entry = gtk_object_get_data( GTK_OBJECT( p_file ), "entry" ); - psz_filename = - gtk_file_selection_get_filename( GTK_FILE_SELECTION( p_file ) ); - gtk_entry_set_text( GTK_ENTRY( lookup_widget( p_intf->p_sys->p_open, - psz_entry ) ), - psz_filename ); - gtk_widget_destroy( p_file ); -} - -void GtkFileCancel( GtkButton * button, gpointer user_data ) -{ - gtk_widget_destroy( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - -/***************************************************************************** - * Open file callbacks - ***************************************************************************** - * The following callbacks are related to the file tab. - *****************************************************************************/ -gboolean GtkFileOpenShow( GtkWidget *widget, - gpointer user_data ) -{ - GtkOpenShow( GtkGetIntf( widget ), 0 ); - - return TRUE; -} - -static void GtkFileOpenChanged( GtkWidget * button, gpointer user_data ) -{ - GString * p_target; - - p_target = g_string_new( "file://" ); - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_file" ) ) ) ); - gtk_entry_set_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_open" ) ), - p_target->str ); - g_string_free( p_target, TRUE ); -} - -/***************************************************************************** - * Open disc callbacks - ***************************************************************************** - * The following callbacks are related to the disc manager. - *****************************************************************************/ -gboolean GtkDiscOpenShow( GtkWidget *widget, - gpointer user_data) -{ - GtkOpenShow( GtkGetIntf( widget ), 1 ); - - return TRUE; -} - -void GtkDiscOpenDvd( GtkToggleButton * togglebutton, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( togglebutton ); - char *psz_device; - - if( togglebutton->active ) - { - if ( (psz_device = config_GetPsz( p_intf, "dvd" )) ) - { - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ) , TRUE); - - gtk_entry_set_text( - GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton), - "disc_name" ) ), psz_device ); - free( psz_device ); - } - else - { - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE ); - } - GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data ); - } - else - { - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "disc_dvd_use_menu" ) ), FALSE ); - } -} - -void GtkDiscOpenVcd( GtkToggleButton * togglebutton, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( togglebutton ); - char *psz_device; - - if( togglebutton->active ) - { - if ( (psz_device = config_GetPsz( p_intf, "vcd" )) ) - { - gtk_entry_set_text( - GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton), - "disc_name" ) ), psz_device ); - free( psz_device ); - } else { - gtk_entry_set_text( - GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton), - "disc_name" ) ), "" ); - } - GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data ); - } -} - -void GtkDiscOpenCDDA( GtkToggleButton * togglebutton, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( togglebutton ); - char *psz_device; - - if( togglebutton->active ) - { - if ( (psz_device = config_GetPsz( p_intf, "cd-audio" )) ) - { - gtk_entry_set_text( - GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton), - "disc_name" ) ), psz_device ); - free( psz_device ); - } else { - gtk_entry_set_text( - GTK_ENTRY( lookup_widget( GTK_WIDGET(togglebutton), - "disc_name" ) ), "" ); - } - GtkDiscOpenChanged( (GtkWidget *) togglebutton, user_data ); - } -} - -static void GtkDiscOpenChanged( GtkWidget * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - GString * p_target = g_string_new( "" ); - GtkWidget * p_open = gtk_widget_get_toplevel( GTK_WIDGET (button) ); - vlc_bool_t b_menus = VLC_FALSE; - vlc_bool_t b_chapter_menu = VLC_TRUE; - GtkWidget *p_label = gtk_object_get_data( GTK_OBJECT( p_open ), - "disc_title_label" ); - - if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "disc_dvd" ) )->active ) - { - gtk_label_set_text( GTK_LABEL( p_label ), _("Title") ); - - b_menus = GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "disc_dvd_use_menu" ) )->active; - - if( b_menus ) - { - g_string_append( p_target, "dvd://" ); - } - else - { - g_string_append( p_target, "dvdsimple://" ); - } - - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "disc_name" ) ) ) ); - - if( !b_menus ) - { - g_string_sprintfa( p_target, "@%i:%i", - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "disc_title" ) ) ), - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "disc_chapter" ) ) ) ); - } - } - else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "disc_vcd" ) )->active ) - { - int i = gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "disc_title" ) ) ); - -#ifdef HAVE_VCDX - int i_pbc = config_GetInt( p_intf, "vcdx-PBC" ); - - gtk_label_set_text( GTK_LABEL( p_label ), - i_pbc ? _("PBC LID") : _("Entry") ); - - g_string_append( p_target, VCD_MRL ); - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "disc_name" ) ) ) ); - - if ( i ) - g_string_sprintfa( p_target, "@%c%d", i_pbc ? 'P' : 'E', i ); - -#else - gtk_label_set_text( GTK_LABEL( p_label ), _("Track") ); - g_string_append( p_target, VCD_MRL ); - g_string_sprintfa( p_target, "@%d", i ); -#endif /* HAVE_VCDX */ - b_chapter_menu = VLC_FALSE; - } - - else if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "disc_cdda" ) )->active ) - { - int i = gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "disc_title" ) ) ); - - gtk_label_set_text( GTK_LABEL( p_label ), _("Track") ); - b_chapter_menu = VLC_FALSE; - - g_string_append( p_target, CDDA_MRL ); - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "disc_name" ) ) ) ); -#ifdef HAVE_CDDAX - if ( i ) - g_string_sprintfa( p_target, "@T%i", i ); -#else - g_string_sprintfa( p_target, "@%i", i ); - -#endif - } - - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "disc_title_label" ), !b_menus ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "disc_title" ), !b_menus ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "disc_chapter_label" ), b_chapter_menu && !b_menus ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "disc_chapter" ), b_chapter_menu && !b_menus ); - - gtk_entry_set_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_open" ) ), - p_target->str ); - g_string_free( p_target, TRUE ); -} - -/***************************************************************************** - * Network stream callbacks - ***************************************************************************** - * The following callbacks are related to the network stream manager. - *****************************************************************************/ -gboolean GtkNetworkOpenShow( GtkWidget *widget, - gpointer user_data ) -{ - GtkOpenShow( GtkGetIntf( widget ), 2 ); - - return TRUE; -} - -static void GtkNetworkOpenChanged( GtkWidget *button, gpointer user_data ) -{ - GString * p_target = g_string_new( "" ); - - unsigned int i_port; - -#define SELECTED( s ) GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), \ - (s) ) )->active - /* Check which option was chosen */ - if( SELECTED( "network_udp" ) ) - { - g_string_append( p_target, "udp://" ); - i_port = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( - lookup_widget( GTK_WIDGET(button), - "network_udp_port" ) ) ); - if( i_port != 1234 ) - { - g_string_sprintfa( p_target, "@:%i", i_port ); - } - } - else if( SELECTED( "network_multicast" ) ) - { - g_string_sprintfa( p_target, "udp://@%s", - gtk_entry_get_text( GTK_ENTRY( - lookup_widget( GTK_WIDGET(button), - "network_multicast_address" ) ) ) ); - i_port = gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( - lookup_widget( GTK_WIDGET(button), - "network_multicast_port" ) ) ); - if( i_port != 1234 ) - { - g_string_sprintfa( p_target, ":%i", i_port ); - } - } - else if( SELECTED( "network_http" ) ) - { - g_string_assign( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "network_http_url" ) ) ) ); - } - - gtk_entry_set_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_open" ) ), - p_target->str ); - g_string_free( p_target, TRUE ); -} - -void GtkNetworkOpenUDP( GtkToggleButton *togglebutton, - gpointer user_data ) -{ - GtkWidget * p_open; - - p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); - - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_udp_port_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_udp_port" ), - gtk_toggle_button_get_active( togglebutton ) ); - - GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data ); -} - -void GtkNetworkOpenMulticast( GtkToggleButton *togglebutton, - gpointer user_data ) -{ - GtkWidget * p_open; - - p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_multicast_address_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_multicast_address_combo" ), - gtk_toggle_button_get_active( togglebutton ) ); - - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_multicast_port_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_multicast_port" ), - gtk_toggle_button_get_active( togglebutton ) ); - - GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data ); -} - -void GtkNetworkOpenHTTP( GtkToggleButton *togglebutton, - gpointer user_data ) -{ - GtkWidget * p_open; - - p_open = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_http_url_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_open ), - "network_http_url" ), - gtk_toggle_button_get_active( togglebutton ) ); - - GtkNetworkOpenChanged( GTK_WIDGET( togglebutton ), user_data ); -} - -/***************************************************************************** - * Open satellite callbacks - ***************************************************************************** - * The following callbacks are related to the satellite card manager. - *****************************************************************************/ -gboolean GtkSatOpenShow( GtkWidget *widget, - gpointer user_data) -{ - GtkOpenShow( GtkGetIntf( widget ), 3 ); - - return TRUE; -} - -static void GtkSatOpenChanged( GtkWidget * button, gpointer user_data ) -{ - GString * p_target = g_string_new( "" ); - - g_string_sprintfa( p_target, "%s://%d,%d,%ld,%d", "satellite", - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "sat_freq" ) ) ), - !GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET( button ), - "sat_pol_vert" ) )->active, - strtol( gtk_entry_get_text( GTK_ENTRY( GTK_COMBO( - lookup_widget( GTK_WIDGET( button ), "sat_fec" ) - )->entry ) ), NULL, 10 ), - gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "sat_srate" ) ) ) ); - - gtk_entry_set_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_open" ) ), - p_target->str ); - g_string_free( p_target, TRUE ); -} - -void -GtkSatOpenToggle (GtkToggleButton *togglebutton, - gpointer user_data) -{ - if( togglebutton->active ) - { - GtkSatOpenChanged( GTK_WIDGET( togglebutton ), user_data ); - } -} - -/***************************************************************************** - * Open subtitle callbacks - ***************************************************************************** - * The following callbacks are related to the subtitle - *****************************************************************************/ -void -GtkOpenSubtitleShow (GtkButton *button, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - if( GTK_TOGGLE_BUTTON( button )->active ) - { - /* show hbox_subtitle */ - gtk_widget_show_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) ); - } - else - { - /* hide hbox_subtitle */ - gtk_widget_hide_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) ); - } -} - -/***************************************************************************** - * Open sout callbacks - ***************************************************************************** - * The following callbacks are related to the sout - *****************************************************************************/ - -void GtkOpenSoutShow ( GtkButton *button, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - if( GTK_TOGGLE_BUTTON( button )->active ) - { - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), TRUE ); - } - else - { - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), FALSE ); - } - -} - -/****************************** - ******************************/ - -static void GtkOpenShow( intf_thread_t *p_intf, int i_page ) -{ - char *psz_var; - GtkWidget *p_notebook; - - /* If we have already created this window, do nothing */ - if( GTK_IS_WIDGET( p_intf->p_sys->p_open ) ) - { - goto setpage; - } - - p_intf->p_sys->p_open = create_intf_open(); - gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_open ), - "p_intf", p_intf ); - - /* FileOpen stuff */ - psz_var = config_GetPsz( p_intf, MODULE_STRING"-search-path" ); - if( psz_var ) - { - gtk_file_selection_set_filename( GTK_FILE_SELECTION( - p_intf->p_sys->p_open ), psz_var ); - free( psz_var ); - } - - /* Disc stuff */ - psz_var = config_GetPsz( p_intf, "dvd" ); - if( psz_var ) - { - gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_open ), "disc_name" ) ), - psz_var ); - free( psz_var ); - } - - /* Network stuff */ - gtk_spin_button_set_value( GTK_SPIN_BUTTON( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_open ), "network_udp_port" ) ), - config_GetInt( p_intf, "server-port" ) ); - - gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_open ), "network_http_url" ) ), - "http://" ); - -#ifdef HAVE_SATELLITE - /* Satellite stuff */ - psz_var = config_GetPsz( p_intf, "frequency" ); - if( psz_var ) - { - gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_open ), "sat_freq" ) ), - psz_var ); - free( psz_var ); - } - - psz_var = config_GetPsz( p_intf, "symbol-rate" ); - if( psz_var ) - { - gtk_entry_set_text( GTK_ENTRY( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_open ), "sat_srate" ) ), - psz_var ); - free( psz_var ); - } -#endif /*HAVE_SATELITE*/ - - /* subtitle stuff */ - /* hide hbox_subtitle */ - gtk_widget_hide_all( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "hbox_subtitle" ) ) ); - /* sout */ - psz_var = config_GetPsz( p_intf, "sout" ); - if( psz_var && *psz_var ) - { - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "show_sout_settings" ), TRUE ); - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), TRUE ); - } - else - { - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "show_sout_settings" ), FALSE ); - gtk_widget_set_sensitive( GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( p_intf->p_sys->p_open ), "sout_settings" ) ), FALSE ); - } - if( psz_var ) free( psz_var ); - - /* Set the right page */ -setpage: - p_notebook = lookup_widget( GTK_WIDGET( p_intf->p_sys->p_open ), - "open_notebook" ); - gtk_notebook_set_page( GTK_NOTEBOOK( p_notebook ), i_page ); - - gtk_widget_show( p_intf->p_sys->p_open ); - gdk_window_raise( p_intf->p_sys->p_open->window ); -} - -void GtkOpenOk( GtkButton * button, gpointer user_data ) -{ - /* Check what was pressed */ - intf_thread_t * p_intf = GtkGetIntf( button ); - playlist_t * p_playlist; - GtkCList * p_playlist_clist; - gchar * psz_target; - - /* Hide the dialog box */ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); - - /* Update the playlist */ - p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } - - psz_target = gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "entry_open" ) ) ); - playlist_Add( p_playlist, (char*)psz_target, (char*)psz_target, - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - - /* catch the GTK CList */ - p_playlist_clist = GTK_CLIST( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - /* update the plugin display */ - GtkRebuildCList( p_playlist_clist, p_playlist ); - - vlc_object_release( p_playlist ); - - /* export subtitle */ - if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "show_subtitle" ) )->active ) - { - /* yeah subtitle */ - char *psz_subtitle; - gfloat delay; - gfloat fps; - - psz_subtitle = gtk_entry_get_text( GTK_ENTRY( lookup_widget( GTK_WIDGET(button), "entry_subtitle" ) ) ); - delay = gtk_spin_button_get_value_as_float( GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET(button), "subtitle_delay" ) ) ); - fps = gtk_spin_button_get_value_as_float( GTK_SPIN_BUTTON( lookup_widget( GTK_WIDGET(button), "subtitle_fps" ) ) ); - - config_PutPsz( p_intf, "sub-file", psz_subtitle ); - config_PutInt( p_intf, "sub-delay", (int)( delay * 10 ) ); - config_PutFloat( p_intf, "sub-fps", fps ); - } - else - { - config_PutPsz( p_intf, "sub-file", "" ); - } - /* export sout */ - if( GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), - "show_sout_settings" ) )->active ) - { - char *psz_sout; - - psz_sout = gtk_entry_get_text( GTK_ENTRY( lookup_widget( GTK_WIDGET( p_intf->p_sys->p_sout ), "sout_entry_target" ) ) ); - config_PutPsz( p_intf, "sout", psz_sout ); - } - else - { - config_PutPsz( p_intf, "sout", "" ); - } -} - -void GtkOpenCancel( GtkButton * button, gpointer user_data ) -{ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - -void GtkOpenChanged( GtkWidget * button, gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - GtkWidget *p_notebook; - int i_page; - - p_notebook = lookup_widget( GTK_WIDGET( p_intf->p_sys->p_open ), - "open_notebook" ); - i_page = gtk_notebook_get_current_page( GTK_NOTEBOOK( p_notebook ) ); - - switch( i_page ) - { - case 0: - GtkFileOpenChanged( button, NULL ); - break; - case 1: - GtkDiscOpenChanged( button, NULL ); - break; - case 2: - GtkNetworkOpenChanged( button, NULL ); - break; - case 3: - GtkSatOpenChanged( button, NULL ); - break; - } -} - diff --git a/modules/gui/gtk/open.h b/modules/gui/gtk/open.h deleted file mode 100644 index 06c31d94b1..0000000000 --- a/modules/gui/gtk/open.h +++ /dev/null @@ -1,41 +0,0 @@ -/***************************************************************************** - * gtk_open.h: prototypes for open functions - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -gboolean GtkFileOpenShow ( GtkWidget *, gpointer ); -void GtkFileOpenCancel ( GtkButton *, gpointer ); -void GtkFileOpenOk ( GtkButton *, gpointer ); - -gboolean GtkDiscOpenShow ( GtkWidget *, gpointer ); -void GtkDiscOpenDvd ( GtkToggleButton *, gpointer ); -void GtkDiscOpenVcd ( GtkToggleButton *, gpointer ); -void GtkDiscOpenCDDA ( GtkToggleButton *, gpointer ); -void GtkDiscOpenOk ( GtkButton *, gpointer ); -void GtkDiscOpenCancel ( GtkButton *, gpointer ); - -gboolean GtkNetworkOpenShow ( GtkWidget *, gpointer ); -void GtkNetworkOpenOk ( GtkButton *, gpointer ); -void GtkNetworkOpenCancel ( GtkButton *, gpointer ); -void GtkNetworkOpenBroadcast( GtkToggleButton *, gpointer ); -void GtkNetworkOpenChannel ( GtkToggleButton *, gpointer ); - diff --git a/modules/gui/gtk/playlist.c b/modules/gui/gtk/playlist.c deleted file mode 100644 index 912a89678d..0000000000 --- a/modules/gui/gtk/playlist.c +++ /dev/null @@ -1,752 +0,0 @@ -/***************************************************************************** - * gtk_playlist.c : Interface for the playlist dialog - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Pierre Baillet - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include -#include - -#include -#include - -#include /* for readdir and stat stuff */ - -#if (!defined( WIN32 ) || defined(__MINGW32__)) -/* Mingw has its own version of dirent */ -# include -#endif - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -/**************************************************************************** - * Local prototypes - ****************************************************************************/ -static void UrlDecode ( char * ); -static GList * GtkReadFiles ( intf_thread_t *, gchar * ); - -/**************************************************************************** - * Playlist window management - ****************************************************************************/ -gboolean GtkPlaylistShow( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - if( GTK_WIDGET_VISIBLE( p_intf->p_sys->p_playwin ) ) - { - gtk_widget_hide( p_intf->p_sys->p_playwin ); - } - else - { - GtkCList * p_clist; - - p_clist = GTK_CLIST( gtk_object_get_data( - GTK_OBJECT( p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - GtkRebuildCList( p_clist , p_playlist ); - gtk_widget_show( p_intf->p_sys->p_playwin ); - gdk_window_raise( p_intf->p_sys->p_playwin->window ); - } - - vlc_object_release( p_playlist ); - - return TRUE; -} - - -void GtkPlaylistOk( GtkButton * button, gpointer user_data ) -{ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - - -void GtkPlaylistCancel( GtkButton * button, gpointer user_data ) -{ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - - - -gboolean GtkPlaylistPrev( GtkWidget *widget, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - playlist_Prev( p_playlist ); - vlc_object_release( p_playlist ); - - return TRUE; -} - - -gboolean GtkPlaylistNext( GtkWidget *widget, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - playlist_Next( p_playlist ); - vlc_object_release( p_playlist ); - - return TRUE; -} - -/**************************************************************************** - * Playlist core functions - ****************************************************************************/ -void GtkPlaylistAddUrl( GtkMenuItem * menuitem, gpointer user_data ) -{ - -} - - -void GtkPlaylistDeleteAll( GtkMenuItem * menuitem, gpointer user_data ) -{ - -} - - -void GtkPlaylistDeleteSelected( GtkMenuItem * menuitem, gpointer user_data ) -{ - /* user wants to delete a file in the queue */ - GList * p_selection; - GtkCList * p_clist; - - intf_thread_t * p_intf = GtkGetIntf( menuitem); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } - - /* lock the struct */ - vlc_mutex_lock( &p_intf->change_lock ); - - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - p_selection = p_clist->selection; - - if( g_list_length( p_selection ) ) - { - /* reverse-sort so that we can delete from the furthest - * to the closest item to delete... - */ - p_selection = g_list_sort( p_selection, GtkCompareItems ); - g_list_foreach( p_selection, GtkDeleteGListItem, p_playlist ); - /* rebuild the CList */ - GtkRebuildCList( p_clist, p_playlist ); - } - - vlc_mutex_unlock( &p_intf->change_lock ); - - vlc_object_release( p_playlist ); -} - -void GtkPlaylistCrop( GtkMenuItem * menuitem, gpointer user_data ) -{ - /* Ok, this is a really small thing, but, hey, it works and - might be useful, who knows ? */ - GtkPlaylistInvert( menuitem, user_data ); - GtkPlaylistDeleteSelected( menuitem, user_data ); -} - -void GtkPlaylistInvert( GtkMenuItem * menuitem, gpointer user_data ) -{ - GtkCList * p_clist; - int * pi_selected; - int i_length; - int i_dummy; - - /* catch the thread back */ - intf_thread_t *p_intf = GtkGetIntf( menuitem ); - - /* lock the struct */ - vlc_mutex_lock( &p_intf->change_lock ); - - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - gtk_clist_freeze( p_clist ); - - /* have to copy the selection to an int * - I wasn't able to copy the g_list to another g_list - glib only does pointer copies, not real copies :( */ - - i_length = g_list_length( p_clist->selection ); - pi_selected = malloc( sizeof(int) * i_length ); - - for( i_dummy = 0 ; i_dummy < i_length ; i_dummy++ ) - { - pi_selected[i_dummy] = - GPOINTER_TO_UINT( g_list_nth_data( p_clist->selection, i_dummy ) ); - } - - gtk_clist_select_all( p_clist ); - - for( i_dummy = 0; i_dummy < i_length; i_dummy++ ) - { - gtk_clist_unselect_row( p_clist, pi_selected[i_dummy], 0 ); - } - - gtk_clist_thaw( p_clist ); - - vlc_mutex_unlock( &p_intf->change_lock ); - - free( pi_selected ); -} - -void GtkPlaylistSelect( GtkMenuItem * menuitem, gpointer user_data) -{ - -} - -gboolean GtkPlaylistEvent( GtkWidget * widget, - GdkEvent * event, - gpointer user_data) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - if( ( event->button ).type == GDK_2BUTTON_PRESS ) - { - GtkCList * p_clist; - gint i_row; - gint i_col; - - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - if( gtk_clist_get_selection_info( p_clist, (event->button).x, - (event->button).y, &i_row, &i_col ) == 1 ) - { - playlist_Goto( p_playlist, i_row ); - } - - vlc_object_release( p_playlist ); - return TRUE; - } - - vlc_object_release( p_playlist ); - return FALSE; -} - -void GtkPlaylistDragData( GtkWidget *widget, - GdkDragContext *drag_context, - gint x, - gint y, - GtkSelectionData *data, - guint info, - guint time, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( widget ); - GtkCList * p_clist; - gint i_row; - gint i_col; - - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - if( gtk_clist_get_selection_info( p_clist, x, y, &i_row, &i_col ) == 1 ) - { - /* we are dropping somewhere into the clist items */ - GtkDropDataReceived( p_intf, data, info, i_row - 1 ); - } - else - { - /* otherwise, put that at the end of the playlist */ - GtkDropDataReceived( p_intf, data, info, PLAYLIST_END ); - } -} - - -gboolean GtkPlaylistDragMotion( GtkWidget *widget, - GdkDragContext *drag_context, - gint x, - gint y, - guint time, - gpointer user_data ) -{ - GtkCList * p_clist; - gint i_row; - gint i_col; - int i_dummy; - GdkColor color; - - intf_thread_t * p_intf = GtkGetIntf( widget ); - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return FALSE; - } - - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - if( !GTK_WIDGET_TOPLEVEL(widget) ) - { - gdk_window_raise( p_intf->p_sys->p_playwin->window ); - } - - color.red = 0xffff; - color.blue = 0xffff; - color.green = 0xffff; - - gtk_clist_freeze( p_clist ); - - for( i_dummy = 0; i_dummy < p_clist->rows; i_dummy++) - { - gtk_clist_set_background( p_clist, i_dummy , &color ); - } - - color.red = 0; - color.blue = 0xf000; - color.green = 0x9000; - if( gtk_clist_get_selection_info( p_clist, x, y, &i_row, &i_col ) == 1 ) - { - gtk_clist_set_background ( p_clist, i_row - 1, &color ); - gtk_clist_set_background ( p_clist, i_row, &color ); - } - else - { - gtk_clist_set_background ( p_clist, p_clist->rows - 1, &color ); - } - - color.red = 0xffff; - color.blue = 0; - color.green = 0; - vlc_mutex_lock( &p_playlist->object_lock ); - gtk_clist_set_background( p_clist, p_playlist->i_index, &color ); - vlc_mutex_unlock( &p_playlist->object_lock ); - vlc_object_release( p_playlist ); - - gtk_clist_thaw( p_clist ); - - return TRUE; -} - -void GtkDropDataReceived( intf_thread_t * p_intf, - GtkSelectionData * p_data, guint i_info, int i_position) -{ - /* first we'll have to split against all the '\n' we have */ - gchar * p_protocol; - gchar * p_temp; - gchar * p_next; - gchar * p_string = (gchar *)p_data->data; - GList * p_files = NULL; - GtkCList * p_clist; - - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } - - /* if this has been URLencoded, decode it - * - * Is it a good thing to do it in place ? - * probably not... - */ - if( i_info == DROP_ACCEPT_TEXT_URI_LIST ) - { - UrlDecode( p_string ); - } - - /* this cuts string into single file drops */ - /* this code was borrowed from xmms, thx guys :) */ - while( *p_string) - { - p_next = strchr( p_string, '\n' ); - if( p_next ) - { - if( *( p_next - 1 ) == '\r' ) - { - *( p_next - 1) = '\0'; - } - *p_next = '\0'; - } - - /* do we have a protocol or something ? */ - p_temp = strstr( p_string, ":" ); - if( p_temp != NULL && p_temp[0] != '\0' ) - { - char i_save; - - i_save = p_temp[0]; - p_temp[0] = '\0'; - p_protocol = strdup( p_string ); - p_temp[0] = i_save; - p_temp++; - - /* Allowed things are proto: or proto:// */ - if( p_temp[0] == '/' && p_temp[1] == '/') - { - /* eat two '/'s */ - p_temp += 2; - } - msg_Dbg( p_intf, "playlist protocol '%s', target '%s'", - p_protocol, p_temp ); - } - else - { - p_protocol = strdup( "" ); - } - - /* if it uses the file protocol we can do something, else, sorry :( - * I think this is a good choice for now, as we don't have any - * ability to read http:// or ftp:// files - * what about adding dvd:// to the list of authorized proto ? */ - - if( strcmp( p_protocol, "file:" ) == 0 ) - { - p_files = g_list_concat( p_files, - GtkReadFiles( p_intf, p_string ) ); - } - else - { - p_files = g_list_concat( p_files, - g_list_append( NULL, g_strdup( p_string ) ) ); - } - - /* free the malloc and go on... */ - free( p_protocol ); - - if( p_next == NULL ) - { - break; - } - p_string = p_next + 1; - } - - /* At this point, we have a nice big list maybe NULL */ - if( p_files != NULL ) - { - /* lock the interface */ - vlc_mutex_lock( &p_intf->change_lock ); - - msg_Dbg( p_intf, "adding %d elements", g_list_length( p_files ) ); - GtkAppendList( p_playlist, i_position, p_files ); - - /* get the CList and rebuild it. */ - p_clist = GTK_CLIST( lookup_widget( p_intf->p_sys->p_playwin, - "playlist_clist" ) ); - GtkRebuildCList( p_clist , p_playlist ); - - /* unlock the interface */ - vlc_mutex_unlock( &p_intf->change_lock ); - } - - vlc_object_release( p_playlist ); -} - - -void GtkDeleteGListItem( gpointer data, gpointer param ) -{ - int i_cur_row = (long)data; - playlist_t * p_playlist = param; - - playlist_LockDelete( p_playlist, i_cur_row ); -} - - -gint GtkCompareItems( gconstpointer a, gconstpointer b ) -{ - return (ptrdiff_t) ( (int *)b - (int *)a ); -} - - -/* check a file (string) against supposed valid extension */ -int GtkHasValidExtension( gchar * psz_filename ) -{ - char * ppsz_ext[6] = { "mpg", "mpeg", "vob", "mp2", "ts", "ps" }; - int i_ext = 6; - int i_dummy; - - gchar * psz_ext = strrchr( psz_filename, '.' ) + sizeof( char ); - - for( i_dummy = 0 ; i_dummy < i_ext ; i_dummy++ ) - { - if( strcmp( psz_ext, ppsz_ext[i_dummy] ) == 0 ) - { - return 1; - } - } - - return 0; -} - -/* recursive function: descend into folders and build a list of - * valid filenames */ -static GList * GtkReadFiles( intf_thread_t * p_intf, gchar * psz_fsname ) -{ - struct stat statbuf; - GList * p_current = NULL; - - /* get the attributes of this file */ - stat( psz_fsname, &statbuf ); - - /* is it a regular file ? */ - if( S_ISREG( statbuf.st_mode ) ) - { - if( GtkHasValidExtension( psz_fsname ) ) - { - msg_Dbg( p_intf, "%s is a valid file, stacking on the playlist", - psz_fsname ); - return g_list_append( NULL, g_strdup( psz_fsname ) ); - } - else - { - return NULL; - } - } - /* is it a directory (should we check for symlinks ?) */ - else if( S_ISDIR( statbuf.st_mode ) ) - { - /* have to cd into this dir */ - DIR * p_current_dir = opendir( psz_fsname ); - struct dirent * p_dir_content; - - msg_Dbg( p_intf, "%s is a folder", psz_fsname ); - - if( p_current_dir == NULL ) - { - /* something went bad, get out of here ! */ - return p_current; - } - p_dir_content = readdir( p_current_dir ); - - /* while we still have entries in the directory */ - while( p_dir_content != NULL ) - { - /* if it is "." or "..", forget it */ - if( ( strcmp( p_dir_content->d_name, "." ) != 0 ) && - ( strcmp( p_dir_content->d_name, ".." ) != 0 ) ) - { - /* else build the new directory by adding - fsname "/" and the current entry name - (kludgy :() - */ - char * psz_newfs = malloc ( 2 + strlen( psz_fsname ) + - strlen( p_dir_content->d_name ) * sizeof(char) ); - strcpy( psz_newfs, psz_fsname ); - strcpy( psz_newfs + strlen( psz_fsname ) + 1, - p_dir_content->d_name ); - psz_newfs[strlen( psz_fsname )] = '/'; - - p_current = g_list_concat( p_current, - GtkReadFiles( p_intf, psz_newfs ) ); - - g_free( psz_newfs ); - } - p_dir_content = readdir( p_current_dir ); - } - return p_current; - } - return NULL; -} - -/* add items in a playlist - * when i_pos==-1 add to the end of the list... - */ -int GtkAppendList( playlist_t * p_playlist, int i_pos, GList * p_list ) -{ - int i_dummy; - int i_length; - - i_length = g_list_length( p_list ); - - for( i_dummy = 0; i_dummy < i_length ; i_dummy++ ) - { - playlist_Add( p_playlist, - /* ok; this is a really nasty trick to insert - the item where they are suppose to go but, hey - this works :P (btw, you are really nasty too) */ - g_list_nth_data( p_list, i_dummy ), - g_list_nth_data( p_list, i_dummy ), - i_dummy == 0 ? PLAYLIST_INSERT | PLAYLIST_GO : PLAYLIST_INSERT, - i_pos == PLAYLIST_END ? PLAYLIST_END : ( i_pos + i_dummy ) ); - } - - return 0; -} - -/* statis timeouted function */ -void GtkPlayListManage( intf_thread_t * p_intf ) -{ - playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, - FIND_ANYWHERE ); - GtkCList * p_clist; - - if( p_playlist == NULL ) - { - return; - } - - /* this thing really sucks for now :( */ - - /* TODO speak more with src/playlist/playlist.c */ - if( GTK_IS_WIDGET( p_intf->p_sys->p_playwin ) ) - { - p_clist = GTK_CLIST( gtk_object_get_data( GTK_OBJECT( - p_intf->p_sys->p_playwin ), "playlist_clist" ) ); - - vlc_mutex_lock( &p_playlist->object_lock ); - - if( p_intf->p_sys->i_playing != p_playlist->i_index ) - { - GdkColor color; - - color.red = 0xffff; - color.blue = 0; - color.green = 0; - - gtk_clist_set_background( p_clist, p_playlist->i_index, &color ); - - if( p_intf->p_sys->i_playing != -1 ) - { - color.red = 0xffff; - color.blue = 0xffff; - color.green = 0xffff; - gtk_clist_set_background( p_clist, p_intf->p_sys->i_playing, - &color); - } - p_intf->p_sys->i_playing = p_playlist->i_index; - } - - vlc_mutex_unlock( &p_playlist->object_lock ); - } - - vlc_object_release( p_playlist ); -} - -void GtkRebuildCList( GtkCList * p_clist, playlist_t * p_playlist ) -{ - int i_dummy; - gchar * ppsz_text[2]; - GdkColor red; - red.red = 65535; - red.blue = 0; - red.green = 0; - - gtk_clist_freeze( p_clist ); - gtk_clist_clear( p_clist ); - - vlc_mutex_lock( &p_playlist->object_lock ); - for( i_dummy = p_playlist->i_size ; i_dummy-- ; ) - { - char psz_duration[MSTRTIME_MAX_SIZE]; - mtime_t dur = p_playlist->pp_items[i_dummy]->input.i_duration; - if ( dur != -1 ) - { - secstotimestr( psz_duration, dur/1000000 ); - } - else - { - memcpy( psz_duration ,"no info",sizeof("no info" )); - } - ppsz_text[0] = p_playlist->pp_items[i_dummy]->input.psz_name; - ppsz_text[1] = strdup( psz_duration ); - gtk_clist_insert( p_clist, 0, ppsz_text ); - } - vlc_mutex_unlock( &p_playlist->object_lock ); - - gtk_clist_set_background( p_clist, p_playlist->i_index, &red); - gtk_clist_thaw( p_clist ); -} - -/* URL-decode a file: URL path, return NULL if it's not what we expect */ -static void UrlDecode( char *encoded_path ) -{ - char *tmp = NULL, *cur = NULL, *ext = NULL; - int realchar; - - if( !encoded_path || *encoded_path == '\0' ) - { - return; - } - - cur = encoded_path ; - - tmp = calloc(strlen(encoded_path) + 1, sizeof(char) ); - - while ( ( ext = strchr(cur, '%') ) != NULL) - { - strncat(tmp, cur, (ext - cur) / sizeof(char)); - ext++; - - if (!sscanf(ext, "%2x", &realchar)) - { - free(tmp); - return; - } - - tmp[strlen(tmp)] = (char)realchar; - - cur = ext + 2; - } - - strcat(tmp, cur); - strcpy(encoded_path,tmp); -} - diff --git a/modules/gui/gtk/playlist.h b/modules/gui/gtk/playlist.h deleted file mode 100644 index d0c90b2e97..0000000000 --- a/modules/gui/gtk/playlist.h +++ /dev/null @@ -1,52 +0,0 @@ -/***************************************************************************** - * gtk_playlist.h : Playlist functions for the Gtk plugin. - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Pierre Baillet - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -void GtkPlaylistDeleteAll ( GtkMenuItem *, gpointer ); -void GtkPlaylistDeleteSelected( GtkMenuItem *, gpointer ); -void GtkPlaylistCrop ( GtkMenuItem *, gpointer ); -void GtkPlaylistInvert ( GtkMenuItem *, gpointer ); -void GtkPlaylistSelect ( GtkMenuItem *, gpointer ); -void GtkPlaylistOk ( GtkButton *, gpointer ); -void GtkPlaylistCancel ( GtkButton *, gpointer ); -void GtkPlaylistAddUrl ( GtkMenuItem *, gpointer ); - -gint GtkCompareItems ( gconstpointer, gconstpointer ); -int GtkHasValidExtension ( gchar * ); - -gboolean GtkPlaylistShow ( GtkWidget *, gpointer ); -gboolean GtkPlaylistPrev ( GtkWidget *, gpointer ); -gboolean GtkPlaylistNext ( GtkWidget *, gpointer ); -gboolean GtkPlaylistDragMotion( GtkWidget *, GdkDragContext *, - gint, gint, guint, gpointer ); -gboolean GtkPlaylistEvent ( GtkWidget *, GdkEvent *, gpointer ); -void GtkPlaylistDragData ( GtkWidget *, GdkDragContext *, - gint, gint, GtkSelectionData *, - guint, guint, gpointer ); -void GtkDeleteGListItem ( gpointer, gpointer ); - -void GtkDropDataReceived ( intf_thread_t *, GtkSelectionData *, guint, int ); -int GtkAppendList ( playlist_t *, int, GList * ); -void GtkRebuildCList ( GtkCList *, playlist_t * ); -void GtkPlayListManage ( intf_thread_t * ); - diff --git a/modules/gui/gtk/preferences.c b/modules/gui/gtk/preferences.c deleted file mode 100644 index 7e40b2659e..0000000000 --- a/modules/gui/gtk/preferences.c +++ /dev/null @@ -1,1085 +0,0 @@ -/***************************************************************************** - * gtk_preferences.c: functions to handle the preferences dialog box. - ***************************************************************************** - * Copyright (C) 2001-2004 the VideoLAN team - * $Id$ - * - * Authors: Gildas Bazin - * Loïc Minier - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble: Our main job is to build a nice interface from the modules config - * structure. Once this is done, we need to track each change made by the - * user to the data contained in this interface so that when/if he decides to - * apply his changes we can quickly commit them into the modules config - * structure. (for this last task we use a GHashTable to accumulate the - * changes. To commit them, we then just have to circle through it ) - * - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_support.h" - -#include "common.h" -#include "preferences.h" - -/* local functions */ -static void GtkCreateConfigDialog( char *, intf_thread_t * ); - -static void GtkConfigOk ( GtkButton *, gpointer ); -static void GtkConfigApply ( GtkButton *, gpointer ); -static void GtkConfigCancel ( GtkButton *, gpointer ); -static void GtkConfigSave ( GtkButton *, gpointer ); - -static void GtkConfigDialogDestroyed ( GtkObject *, gpointer ); - -static void GtkStringChanged ( GtkEditable *, gpointer ); -static void GtkIntChanged ( GtkEditable *, gpointer ); -static void GtkIntRangedChanged ( GtkEditable *, gpointer ); -static void GtkFloatChanged ( GtkEditable *, gpointer ); -static void GtkFloatRangedChanged ( GtkEditable *, gpointer ); -static void GtkBoolChanged ( GtkToggleButton *, gpointer ); - -static void GtkFreeHashTable ( GtkObject *object ); -static void GtkFreeHashValue ( gpointer, gpointer, gpointer ); -static gboolean GtkSaveHashValue ( gpointer, gpointer, gpointer ); - -static void GtkModuleConfigure ( GtkButton *, gpointer ); -static void GtkModuleSelected ( GtkButton *, gpointer ); -static void GtkModuleHighlighted ( GtkCList *, int, int, GdkEventButton *, - gpointer ); - -/**************************************************************************** - * Callback for menuitems: display configuration interface window - ****************************************************************************/ -void GtkPreferencesShow( GtkMenuItem * menuitem, gpointer user_data ) -{ - intf_thread_t * p_intf; - - p_intf = GtkGetIntf( menuitem ); - - GtkCreateConfigDialog( "main", p_intf ); -} - -/**************************************************************************** - * GtkCreateConfigDialog: dynamically creates the configuration dialog - * box from all the configuration data provided by the selected module. - ****************************************************************************/ - -/* create a new tooltipped area */ -#define TOOLTIP( text ) \ - /* create an event box to catch some events */ \ - item_event_box = gtk_event_box_new(); \ - /* add a tooltip on mouseover */ \ - gtk_tooltips_set_tip( p_intf->p_sys->p_tooltips, \ - item_event_box, text, "" ); \ - gtk_container_set_border_width( GTK_CONTAINER(item_event_box), 4 ); - -/* draws a right aligned label in side of a widget */ -#define LABEL_AND_WIDGET( label_text, widget, tooltip ) \ - gtk_table_resize( GTK_TABLE(category_table), ++rows, 2 ); \ - item_align = gtk_alignment_new( 1, .5, 0, 0 ); \ - item_label = gtk_label_new( label_text ); \ - gtk_container_add( GTK_CONTAINER(item_align), item_label ); \ - gtk_table_attach_defaults( GTK_TABLE(category_table), item_align, \ - 0, 1, rows - 1, rows ); \ - item_align = gtk_alignment_new( 0, .5, .5, 0 ); \ - gtk_container_add( GTK_CONTAINER(item_align), widget ); \ - TOOLTIP(tooltip) \ - gtk_container_add( GTK_CONTAINER(item_event_box), item_align ); \ - gtk_table_attach_defaults( GTK_TABLE(category_table), item_event_box, \ - 1, 2, rows - 1, rows ); - -static void GtkCreateConfigDialog( char *psz_module_name, - intf_thread_t *p_intf ) -{ - module_t *p_parser = NULL; - vlc_list_t *p_list; - module_config_t *p_item; - vlc_bool_t b_advanced = config_GetInt( p_intf, "advanced" ); - int i_index; - - guint rows = 0; - - GHashTable *config_hash_table; - - GtkWidget *item_event_box; - - GtkWidget *config_dialog; - GtkWidget *config_dialog_vbox; - GtkWidget *config_notebook; - - GtkWidget *category_table = NULL; - GtkWidget *category_label = NULL; - -#ifndef MODULE_NAME_IS_gnome - GtkWidget *dialog_action_area; -#endif - - GtkWidget *ok_button; - GtkWidget *apply_button; - GtkWidget *save_button; - GtkWidget *cancel_button; - - GtkWidget *item_align; - GtkWidget *item_frame; - GtkWidget *item_hbox; - GtkWidget *item_label; - GtkWidget *item_vbox; - GtkWidget *item_combo; - GtkWidget *string_entry; - GtkWidget *integer_spinbutton; - GtkWidget *integer_slider; - GtkWidget *float_spinbutton; - GtkWidget *float_slider; - GtkObject *item_adj; - GtkWidget *bool_checkbutton; - GtkWidget *module_clist; - GtkWidget *module_config_button; - GtkWidget *module_select_button; - - gint category_max_height; - - /* Check if the dialog box is already opened because we don't want to - * duplicate identical dialog windows. */ - config_dialog = (GtkWidget *)gtk_object_get_data( - GTK_OBJECT(p_intf->p_sys->p_window), psz_module_name ); - if( config_dialog ) - { - /* Yeah it was open */ - gtk_widget_grab_focus( config_dialog ); - return; - } - - - /* Look for the selected module */ - p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_parser = (module_t *)p_list->p_values[i_index].p_object ; - - if( psz_module_name - && !strcmp( psz_module_name, p_parser->psz_object_name ) ) - { - break; - } - } - - if( !p_parser || i_index == p_list->i_count ) - { - vlc_list_release( p_list ); - return; - } - - /* We found it, now we can start building its configuration interface */ - /* Create the configuration dialog box */ - -#ifdef MODULE_NAME_IS_gnome - config_dialog = gnome_dialog_new( p_parser->psz_longname, NULL ); - config_dialog_vbox = GNOME_DIALOG(config_dialog)->vbox; -#else - config_dialog = gtk_dialog_new(); - gtk_window_set_title( GTK_WINDOW(config_dialog), - p_parser->psz_longname ); - config_dialog_vbox = GTK_DIALOG(config_dialog)->vbox; -#endif - - gtk_object_set_data( GTK_OBJECT(config_dialog), "p_intf", p_intf ); - - category_max_height = config_GetInt( p_intf, MODULE_STRING "-prefs-maxh" ); - - gtk_window_set_policy( GTK_WINDOW(config_dialog), TRUE, TRUE, FALSE ); - gtk_container_set_border_width( GTK_CONTAINER(config_dialog_vbox), 0 ); - - /* Create our config hash table and associate it with the dialog box */ - config_hash_table = g_hash_table_new( NULL, NULL ); - gtk_object_set_data( GTK_OBJECT(config_dialog), - "config_hash_table", config_hash_table ); - - /* Create notebook */ - config_notebook = gtk_notebook_new(); - gtk_notebook_set_scrollable( GTK_NOTEBOOK(config_notebook), TRUE ); - gtk_container_add( GTK_CONTAINER(config_dialog_vbox), config_notebook ); - - /* Enumerate config options and add corresponding config boxes */ - p_item = p_parser->p_config; - - if( p_item ) do - { - if( p_item->b_advanced && !b_advanced ) continue; - - if( p_item->i_type == CONFIG_HINT_CATEGORY || - p_item->i_type == CONFIG_HINT_END || - !category_table ) - { - /* - * Before we start building the interface for the new category, we - * must close/finish the previous one we were generating. - */ - if( category_table ) - { - GtkWidget *_scrolled_window; - GtkWidget *_viewport; - GtkWidget *_vbox; - GtkRequisition _requisition; - - /* create a vbox to deal with EXPAND/FILL issues in the - * notebook page, and pack it with the previously generated - * category_table */ - _vbox = gtk_vbox_new( FALSE, 0 ); - gtk_container_set_border_width( GTK_CONTAINER(_vbox), 4 ); - gtk_box_pack_start( GTK_BOX(_vbox), category_table, - FALSE, FALSE, 0 ); - - /* create a new scrolled window that will contain all of the - * above. */ - _scrolled_window = gtk_scrolled_window_new( NULL, NULL ); - gtk_scrolled_window_set_policy( - GTK_SCROLLED_WINDOW(_scrolled_window), GTK_POLICY_NEVER, - GTK_POLICY_AUTOMATIC ); - /* add scrolled window as a notebook page */ - gtk_notebook_append_page( GTK_NOTEBOOK(config_notebook), - _scrolled_window, category_label ); - /* pack the vbox into the scrolled window */ - _viewport = gtk_viewport_new( NULL, NULL ); - gtk_viewport_set_shadow_type( GTK_VIEWPORT(_viewport), - GTK_SHADOW_NONE ); - gtk_container_add( GTK_CONTAINER(_viewport), _vbox ); - gtk_container_add( GTK_CONTAINER(_scrolled_window), - _viewport ); - - /* set the size of the scrolled window to the size of the - * child widget */ - gtk_widget_show_all( _vbox ); - gtk_widget_size_request( _vbox, &_requisition ); - if( _requisition.height > category_max_height ) - gtk_widget_set_usize( _scrolled_window, -1, - category_max_height ); - else - gtk_widget_set_usize( _scrolled_window, -1, - _requisition.height ); - - } - - /* - * Now we can start taking care of the new category - */ - - if( p_item->i_type != CONFIG_HINT_END ) - { - /* create a new table for right-left alignment of children */ - category_table = gtk_table_new( 0, 0, FALSE ); - gtk_table_set_col_spacings( GTK_TABLE(category_table), 4 ); - rows = 0; - - /* create a new category label */ - if( p_item->i_type == CONFIG_HINT_CATEGORY ) - category_label = gtk_label_new( p_item->psz_text ); - else - category_label = gtk_label_new( p_parser->psz_longname ); - } - } - - switch( p_item->i_type ) - { - - case CONFIG_ITEM_MODULE: - - item_frame = gtk_frame_new( p_item->psz_text ); - - gtk_table_resize( GTK_TABLE(category_table), ++rows, 2 ); - gtk_table_attach_defaults( GTK_TABLE(category_table), item_frame, - 0, 2, rows - 1, rows ); - - item_vbox = gtk_vbox_new( FALSE, 4 ); - gtk_container_add( GTK_CONTAINER(item_frame), item_vbox ); - - /* create a new clist widget */ - { - gchar * titles[] = { N_("Name"), N_("Description") }; - titles[0] = _(titles[0]); - titles[1] = _(titles[1]); - - module_clist = gtk_clist_new_with_titles( 2, titles ); - } - gtk_object_set_data( GTK_OBJECT(module_clist), "p_intf", p_intf ); - gtk_clist_column_titles_passive( GTK_CLIST(module_clist) ); - gtk_clist_set_selection_mode( GTK_CLIST(module_clist), - GTK_SELECTION_SINGLE); - gtk_container_add( GTK_CONTAINER(item_vbox), module_clist ); - - /* build a list of available modules */ - { - gchar * entry[2]; - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_parser = (module_t *)p_list->p_values[i_index].p_object ; - - if( !strcmp( p_parser->psz_capability, - p_item->psz_type ) ) - { - entry[0] = p_parser->psz_object_name; - entry[1] = p_parser->psz_longname; - gtk_clist_append( GTK_CLIST(module_clist), entry ); - } - } - } - - gtk_clist_set_column_auto_resize( GTK_CLIST(module_clist), - 0, TRUE ); - gtk_clist_set_column_auto_resize( GTK_CLIST(module_clist), - 1, TRUE ); - - /* connect signals to the modules list */ - gtk_signal_connect( GTK_OBJECT(module_clist), "select_row", - GTK_SIGNAL_FUNC(GtkModuleHighlighted), - NULL ); - - /* hbox holding the "select" and "configure" buttons */ - item_hbox = gtk_hbox_new( FALSE, 4 ); - gtk_container_add( GTK_CONTAINER(item_vbox), item_hbox); - - /* add configure button */ - module_config_button = - gtk_button_new_with_label( _("Configure") ); - gtk_widget_set_sensitive( module_config_button, FALSE ); - gtk_container_add( GTK_CONTAINER(item_hbox), - module_config_button ); - gtk_object_set_data( GTK_OBJECT(module_config_button), - "p_intf", p_intf ); - gtk_object_set_data( GTK_OBJECT(module_clist), - "config_button", module_config_button ); - - /* add select button */ - module_select_button = - gtk_button_new_with_label( _("Select") ); - gtk_container_add( GTK_CONTAINER(item_hbox), - module_select_button ); - /* add a tooltip on mouseover */ - gtk_tooltips_set_tip( p_intf->p_sys->p_tooltips, - module_select_button, - p_item->psz_longtext, "" ); - - /* hbox holding the "selected" label and text input */ - item_hbox = gtk_hbox_new( FALSE, 4 ); - gtk_container_add( GTK_CONTAINER(item_vbox), item_hbox); - /* add new label */ - item_label = gtk_label_new( _("Selected:") ); - gtk_container_add( GTK_CONTAINER(item_hbox), item_label ); - - /* add input box with default value */ - string_entry = gtk_entry_new(); - gtk_object_set_data( GTK_OBJECT(module_clist), - "module_entry", string_entry ); - gtk_container_add( GTK_CONTAINER(item_hbox), string_entry ); - vlc_mutex_lock( p_item->p_lock ); - gtk_entry_set_text( GTK_ENTRY(string_entry), - p_item->psz_value ? p_item->psz_value : "" ); - vlc_mutex_unlock( p_item->p_lock ); - /* add a tooltip on mouseover */ - gtk_tooltips_set_tip( p_intf->p_sys->p_tooltips, - string_entry, p_item->psz_longtext, "" ); - - /* connect signals to the buttons */ - gtk_signal_connect( GTK_OBJECT(module_config_button), "clicked", - GTK_SIGNAL_FUNC(GtkModuleConfigure), - (gpointer)module_clist ); - gtk_signal_connect( GTK_OBJECT(module_select_button), "clicked", - GTK_SIGNAL_FUNC(GtkModuleSelected), - (gpointer)module_clist ); - - /* connect signal to track changes in the text box */ - gtk_object_set_data( GTK_OBJECT(string_entry), "config_option", - p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(string_entry), "changed", - GTK_SIGNAL_FUNC(GtkStringChanged), - (gpointer)config_dialog ); - break; - - case CONFIG_ITEM_STRING: - case CONFIG_ITEM_FILE: - case CONFIG_ITEM_DIRECTORY: - - if( !p_item->ppsz_list ) - { - /* add input box with default value */ - item_combo = string_entry = gtk_entry_new(); - } - else - { - /* add combo box with default value */ - GList *items = NULL; - int i; - - for( i=0; p_item->ppsz_list[i]; i++ ) - items = g_list_append( items, p_item->ppsz_list[i] ); - - item_combo = gtk_combo_new(); - string_entry = GTK_COMBO(item_combo)->entry; - gtk_combo_set_popdown_strings( GTK_COMBO(item_combo), - items ); - - } - - vlc_mutex_lock( p_item->p_lock ); - gtk_entry_set_text( GTK_ENTRY(string_entry), - p_item->psz_value ? p_item->psz_value : "" ); - vlc_mutex_unlock( p_item->p_lock ); - - /* connect signal to track changes in the text box */ - gtk_object_set_data( GTK_OBJECT(string_entry), "config_option", - p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(string_entry), "changed", - GTK_SIGNAL_FUNC(GtkStringChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - item_combo, p_item->psz_longtext ); - break; - - case CONFIG_ITEM_INTEGER: - - if (( p_item->i_max == 0) && ( p_item->i_min == 0)) - { - /* add input box with default value */ - item_adj = gtk_adjustment_new( p_item->i_value, - -1, 99999, 1, 10, 10 ); - integer_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT(item_adj), 1, 0 ); - - /* connect signal to track changes in the spinbutton value */ - gtk_object_set_data( GTK_OBJECT(integer_spinbutton), - "config_option", p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(integer_spinbutton), "changed", - GTK_SIGNAL_FUNC(GtkIntChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - integer_spinbutton, p_item->psz_longtext ); - } - else /* use i_min and i_max */ - { - item_adj = gtk_adjustment_new( p_item->i_value, p_item->i_min, - p_item->i_max, 1, 1, 0 ); - integer_slider = gtk_hscale_new( GTK_ADJUSTMENT(item_adj)); - gtk_scale_set_digits (GTK_SCALE(integer_slider), 0); - - /* connect signal to track changes in the spinbutton value */ - gtk_object_set_data( GTK_OBJECT(item_adj), - "config_option", p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(item_adj), "value-changed", - GTK_SIGNAL_FUNC(GtkIntRangedChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - integer_slider, p_item->psz_longtext ); - } - break; - - case CONFIG_ITEM_FLOAT: - - if (( p_item->f_max == 0.0) && ( p_item->f_min == 0.0)) - { - /* add input box with default value */ - item_adj = gtk_adjustment_new( p_item->f_value, - 0, 99999, 0.01, 10, 10 ); - float_spinbutton = gtk_spin_button_new( GTK_ADJUSTMENT(item_adj), - 0.01, 2 ); - - /* connect signal to track changes in the spinbutton value */ - gtk_object_set_data( GTK_OBJECT(float_spinbutton), - "config_option", p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(float_spinbutton), "changed", - GTK_SIGNAL_FUNC(GtkFloatChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - float_spinbutton, p_item->psz_longtext ); - } - else /* use f_min and f_max */ - { - item_adj = gtk_adjustment_new( p_item->f_value, p_item->f_min, - p_item->f_max, 0.01, 0.01, 0 ); - float_slider = gtk_hscale_new( GTK_ADJUSTMENT(item_adj)); - gtk_scale_set_digits (GTK_SCALE(float_slider), 2); - - /* connect signal to track changes in the spinbutton value */ - gtk_object_set_data( GTK_OBJECT(item_adj), - "config_option", p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(item_adj), "value-changed", - GTK_SIGNAL_FUNC(GtkFloatRangedChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - float_slider, p_item->psz_longtext ); - } - break; - - - case CONFIG_ITEM_BOOL: - - /* add check button */ - bool_checkbutton = gtk_check_button_new(); - gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON(bool_checkbutton), - p_item->i_value ); - - /* connect signal to track changes in the button state */ - gtk_object_set_data( GTK_OBJECT(bool_checkbutton), "config_option", - p_item->psz_name ); - gtk_signal_connect( GTK_OBJECT(bool_checkbutton), "toggled", - GTK_SIGNAL_FUNC(GtkBoolChanged), - (gpointer)config_dialog ); - - LABEL_AND_WIDGET( p_item->psz_text, - bool_checkbutton, p_item->psz_longtext ); - break; - - } - - } - while( p_item->i_type != CONFIG_HINT_END && p_item++ ); - - vlc_list_release( p_list ); - -#ifndef MODULE_NAME_IS_gnome - /* Now let's add the action buttons at the bottom of the page */ - dialog_action_area = GTK_DIALOG(config_dialog)->action_area; - gtk_container_set_border_width( GTK_CONTAINER(dialog_action_area), 4 ); - - /* add a new table for the config option */ - item_hbox = gtk_hbox_new( FALSE, 0 ); - gtk_box_pack_end( GTK_BOX(dialog_action_area), item_hbox, - TRUE, FALSE, 0 ); - item_hbox = gtk_hbox_new( FALSE, 0 ); - gtk_box_pack_end( GTK_BOX(dialog_action_area), item_hbox, - TRUE, FALSE, 0 ); -#endif - - /* Create the OK button */ -#ifdef MODULE_NAME_IS_gnome - gnome_dialog_append_button( GNOME_DIALOG(config_dialog), - GNOME_STOCK_BUTTON_OK ); - ok_button = - GTK_WIDGET(g_list_last(GNOME_DIALOG(config_dialog)->buttons)->data); - - gnome_dialog_append_button( GNOME_DIALOG(config_dialog), - GNOME_STOCK_BUTTON_APPLY ); - apply_button = - GTK_WIDGET(g_list_last(GNOME_DIALOG(config_dialog)->buttons)->data); - - gnome_dialog_append_button_with_pixmap( - GNOME_DIALOG(config_dialog), _("Save"), GNOME_STOCK_PIXMAP_SAVE ); - save_button = - GTK_WIDGET(g_list_last(GNOME_DIALOG(config_dialog)->buttons)->data); - - gnome_dialog_append_button( GNOME_DIALOG(config_dialog), - GNOME_STOCK_BUTTON_CANCEL ); - cancel_button = - GTK_WIDGET(g_list_last(GNOME_DIALOG(config_dialog)->buttons)->data); -#else - ok_button = gtk_button_new_with_label( _("OK") ); - gtk_box_pack_start( GTK_BOX(dialog_action_area), ok_button, - TRUE, TRUE, 0 ); - - apply_button = gtk_button_new_with_label( _("Apply") ); - gtk_box_pack_start( GTK_BOX(dialog_action_area), apply_button, - TRUE, TRUE, 0 ); - - save_button = gtk_button_new_with_label( _("Save") ); - gtk_box_pack_start( GTK_BOX(dialog_action_area), save_button, - TRUE, TRUE, 0 ); - - cancel_button = gtk_button_new_with_label( _("Cancel") ); - gtk_box_pack_start( GTK_BOX(dialog_action_area), cancel_button, - TRUE, TRUE, 0 ); -#endif - - gtk_signal_connect( GTK_OBJECT(ok_button), "clicked", - GTK_SIGNAL_FUNC(GtkConfigOk), - config_dialog ); - gtk_widget_set_sensitive( apply_button, FALSE ); - gtk_object_set_data( GTK_OBJECT(config_dialog), "apply_button", - apply_button ); - gtk_signal_connect( GTK_OBJECT(apply_button), "clicked", - GTK_SIGNAL_FUNC(GtkConfigApply), - config_dialog ); - gtk_signal_connect( GTK_OBJECT(save_button), "clicked", - GTK_SIGNAL_FUNC(GtkConfigSave), - config_dialog ); - gtk_signal_connect( GTK_OBJECT(cancel_button), "clicked", - GTK_SIGNAL_FUNC(GtkConfigCancel), - config_dialog ); - - - - /* Ok, job done successfully. Let's keep a reference to the dialog box */ - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window), - psz_module_name, config_dialog ); - gtk_object_set_data( GTK_OBJECT(config_dialog), "psz_module_name", - psz_module_name ); - - /* we want this ref to be destroyed if the object is destroyed */ - gtk_signal_connect( GTK_OBJECT(config_dialog), "destroy", - GTK_SIGNAL_FUNC(GtkConfigDialogDestroyed), - (gpointer)p_intf ); - - gtk_widget_show_all( config_dialog ); -} - -#undef LABEL_AND_WIDGET -#undef TOOLTIP - -/**************************************************************************** - * GtkConfigApply: store the changes to the config inside the modules - * configuration structure and clear the hash table. - ****************************************************************************/ -static void GtkConfigApply( GtkButton * button, gpointer user_data ) -{ - intf_thread_t *p_intf; - GHashTable *hash_table; - GtkWidget *apply_button; - - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(user_data), - "p_intf" ); - g_hash_table_foreach_remove( hash_table, GtkSaveHashValue, (void*)p_intf ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, FALSE ); -} - -static void GtkConfigOk( GtkButton * button, gpointer user_data ) -{ - GtkConfigApply( button, user_data ); - gtk_widget_destroy( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - - -static void GtkConfigCancel( GtkButton * button, gpointer user_data ) -{ - gtk_widget_destroy( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - -static void GtkConfigSave( GtkButton * button, gpointer user_data ) -{ - intf_thread_t *p_intf; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(user_data), - "p_intf" ); - GtkConfigApply( button, user_data ); - config_SaveConfigFile( p_intf, NULL ); -} - -/**************************************************************************** - * GtkModuleHighlighted: display module description when an entry is selected - * in the clist, and activate the configure button if necessary. - ****************************************************************************/ -static void GtkModuleHighlighted( GtkCList *module_clist, int row, int column, - GdkEventButton *event, gpointer user_data ) -{ - intf_thread_t *p_intf; - GtkWidget *config_button; - module_t *p_parser; - vlc_list_t *p_list; - char *psz_name; - int i_index; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(module_clist), - "p_intf" ); - - if( !gtk_clist_get_text( GTK_CLIST(module_clist), row, 0, &psz_name ) ) - { - return; - } - - /* look for module 'psz_name' */ - p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_parser = (module_t *)p_list->p_values[i_index].p_object ; - - if( !strcmp( p_parser->psz_object_name, psz_name ) ) - { - gtk_object_set_data( GTK_OBJECT(module_clist), - "module_highlighted", p_parser ); - config_button = gtk_object_get_data( GTK_OBJECT(module_clist), - "config_button" ); - if( p_parser->i_config_items ) - gtk_widget_set_sensitive( config_button, TRUE ); - else - gtk_widget_set_sensitive( config_button, FALSE ); - - break; - } - } - - vlc_list_release( p_list ); -} - -/**************************************************************************** - * GtkModuleConfigure: display module configuration dialog box. - ****************************************************************************/ -static void GtkModuleConfigure( GtkButton *button, gpointer user_data ) -{ - module_t *p_module; - intf_thread_t *p_intf; - - p_module = (module_t *)gtk_object_get_data( GTK_OBJECT(user_data), - "module_highlighted" ); - - if( !p_module ) return; - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(button), - "p_intf" ); - GtkCreateConfigDialog( p_module->psz_object_name, (gpointer)p_intf ); - -} - -/**************************************************************************** - * GtkModuleSelected: select module. - ****************************************************************************/ -static void GtkModuleSelected( GtkButton *button, gpointer user_data ) -{ - module_t *p_module; - GtkWidget *widget; - - p_module = (module_t *)gtk_object_get_data( GTK_OBJECT(user_data), - "module_highlighted" ); - widget = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "module_entry" ); - if( !p_module ) return; - - gtk_entry_set_text( GTK_ENTRY(widget), p_module->psz_object_name ); - -} - -/**************************************************************************** - * GtkStringChanged: signal called when the user changes a string value. - ****************************************************************************/ -static void GtkStringChanged( GtkEditable *editable, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(editable), - "p_intf" ); - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)editable ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_STRING; - p_config->psz_value = gtk_editable_get_chars( editable, 0, -1 ); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(editable), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)editable, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} -/**************************************************************************** - * GtkIntChanged: signal called when the user changes an integer value. - ****************************************************************************/ -static void GtkIntChanged( GtkEditable *editable, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(editable), - "p_intf" ); - gtk_spin_button_update( GTK_SPIN_BUTTON(editable) ); - - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)editable ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_INTEGER; - p_config->i_value = gtk_spin_button_get_value_as_int( - GTK_SPIN_BUTTON(editable) ); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(editable), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)editable, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} - - -/*************************************************************************************** - * GtkIntRangedChanged: signal called when the user changes an integer with range value. - **************************************************************************************/ -static void GtkIntRangedChanged( GtkEditable *editable, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(editable), - "p_intf" ); - - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)editable ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_INTEGER; - p_config->i_value = ((GTK_ADJUSTMENT(editable))->value); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(editable), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)editable, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} - -/**************************************************************************** - * GtkFloatChanged: signal called when the user changes a float value. - ****************************************************************************/ -static void GtkFloatChanged( GtkEditable *editable, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(editable), - "p_intf" ); - gtk_spin_button_update( GTK_SPIN_BUTTON(editable) ); - - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)editable ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_FLOAT; - p_config->f_value = gtk_spin_button_get_value_as_float( - GTK_SPIN_BUTTON(editable) ); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(editable), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)editable, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} - -/*************************************************************************************** - * GtkIntRangedChanged: signal called when the user changes an integer with range value. - **************************************************************************************/ -static void GtkFloatRangedChanged( GtkEditable *editable, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(editable), - "p_intf" ); - - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)editable ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_FLOAT; - p_config->f_value = ((GTK_ADJUSTMENT(editable))->value); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(editable), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)editable, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} - -/**************************************************************************** - * GtkBoolChanged: signal called when the user changes a bool value. - ****************************************************************************/ -static void GtkBoolChanged( GtkToggleButton *button, gpointer user_data ) -{ - intf_thread_t *p_intf; - module_config_t *p_config; - GHashTable *hash_table; - GtkWidget *apply_button; - - p_intf = (intf_thread_t *)gtk_object_get_data( GTK_OBJECT(button), - "p_intf" ); - hash_table = (GHashTable *)gtk_object_get_data( GTK_OBJECT(user_data), - "config_hash_table" ); - - /* free old p_config */ - p_config = (module_config_t *)g_hash_table_lookup( hash_table, - (gpointer)button ); - if( p_config ) GtkFreeHashValue( NULL, (gpointer)p_config, (void *)p_intf ); - - p_config = malloc( sizeof(module_config_t) ); - p_config->i_type = CONFIG_ITEM_BOOL; - p_config->i_value = gtk_toggle_button_get_active( button ); - p_config->psz_name = (char *)gtk_object_get_data( GTK_OBJECT(button), - "config_option" ); - - g_hash_table_insert( hash_table, (gpointer)button, - (gpointer)p_config ); - - /* change the highlight status of the Apply button */ - apply_button = (GtkWidget *)gtk_object_get_data( GTK_OBJECT(user_data), - "apply_button" ); - gtk_widget_set_sensitive( apply_button, TRUE ); -} - -/**************************************************************************** - * GtkFreeHashTable: signal called when the config hash table is destroyed. - ****************************************************************************/ -static void GtkFreeHashTable( GtkObject *object ) -{ - GHashTable *hash_table = (GHashTable *)gtk_object_get_data( object, - "config_hash_table" ); - intf_thread_t *p_intf = (intf_thread_t *)gtk_object_get_data( object, - "p_intf" ); - - g_hash_table_foreach( hash_table, GtkFreeHashValue, (void *)p_intf ); - g_hash_table_destroy( hash_table ); -} - -/**************************************************************************** - * GtkFreeHashValue: signal called when an element of the config hash table - * is destroyed. - ****************************************************************************/ -static void GtkFreeHashValue( gpointer key, gpointer value, gpointer user_data) -{ - module_config_t * p_config = (module_config_t *)value; - - if( p_config->i_type == CONFIG_ITEM_STRING ) - if( p_config->psz_value ) g_free( p_config->psz_value ); - free( p_config ); -} - -/**************************************************************************** - * GtkSaveHashValue: callback used when enumerating the hash table in - * GtkConfigApply(). - ****************************************************************************/ -static gboolean GtkSaveHashValue( gpointer key, gpointer value, - gpointer user_data ) -{ - intf_thread_t * p_intf = (intf_thread_t *)user_data; - module_config_t * p_config = (module_config_t *)value; - - switch( p_config->i_type ) - { - - case CONFIG_ITEM_STRING: - case CONFIG_ITEM_FILE: - case CONFIG_ITEM_DIRECTORY: - case CONFIG_ITEM_MODULE: - config_PutPsz( p_intf, p_config->psz_name, - *p_config->psz_value ? p_config->psz_value : NULL ); - break; - case CONFIG_ITEM_INTEGER: - case CONFIG_ITEM_BOOL: - config_PutInt( p_intf, p_config->psz_name, p_config->i_value ); - break; - case CONFIG_ITEM_FLOAT: - config_PutFloat( p_intf, p_config->psz_name, p_config->f_value ); - break; - } - - /* free the hash value we allocated */ - if( p_config->i_type == CONFIG_ITEM_STRING ) - g_free( p_config->psz_value ); - free( p_config ); - - /* return TRUE so glib will free the hash entry */ - return TRUE; -} - -/**************************************************************************** - * GtkConfigDialogDestroyed: callback triggered when the config dialog box is - * destroyed. - ****************************************************************************/ -static void GtkConfigDialogDestroyed( GtkObject *object, gpointer user_data ) -{ - intf_thread_t *p_intf = (intf_thread_t *)user_data; - char *psz_module_name; - - psz_module_name = gtk_object_get_data( object, "psz_module_name" ); - - /* remove the ref to the dialog box */ - gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window), - psz_module_name, NULL ); - - GtkFreeHashTable( object ); -} diff --git a/modules/gui/gtk/preferences.h b/modules/gui/gtk/preferences.h deleted file mode 100644 index 6325014ece..0000000000 --- a/modules/gui/gtk/preferences.h +++ /dev/null @@ -1,25 +0,0 @@ -/***************************************************************************** - * gtk_control.h: prototypes for control functions - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * Stéphane Borel - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -void GtkPreferencesShow( GtkMenuItem *, gpointer ); diff --git a/modules/gui/gtk/sout.c b/modules/gui/gtk/sout.c deleted file mode 100644 index 0deb83f554..0000000000 --- a/modules/gui/gtk/sout.c +++ /dev/null @@ -1,211 +0,0 @@ -/***************************************************************************** - * sout.c : - ***************************************************************************** - * Copyright (C) 2000, 2001 the VideoLAN team - * $Id$ - * - * Authors: Laurent Aimar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* off_t */ -#include - -#include -#include - -#ifdef MODULE_NAME_IS_gnome -# include -#else -# include -#endif - -#include - -#include "gtk_callbacks.h" -#include "gtk_interface.h" -#include "gtk_support.h" - -#include "playlist.h" -#include "common.h" - -void GtkSoutSettings ( GtkButton *button, - gpointer user_data ); - -void GtkSoutSettingsChanged ( GtkWidget *button, gpointer user_data); - - - - - - -void GtkSoutSettingsAccessFile (GtkToggleButton *togglebutton, - gpointer user_data) -{ - GtkWidget * p_sout; - - p_sout = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_file_path_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_file_path" ), - gtk_toggle_button_get_active( togglebutton ) ); - - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_ts" ), TRUE ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_ps" ), TRUE ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_avi" ), TRUE ); - - GtkSoutSettingsChanged( GTK_WIDGET( togglebutton ), user_data ); -} - - -void GtkSoutSettingsAccessUdp (GtkToggleButton *togglebutton, - gpointer user_data) -{ - GtkWidget * p_sout; - - p_sout = gtk_widget_get_toplevel( GTK_WIDGET (togglebutton) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_udp_address_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_udp_address_combo" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_udp_port_label" ), - gtk_toggle_button_get_active( togglebutton ) ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_udp_port" ), - gtk_toggle_button_get_active( togglebutton ) ); - - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_ts" ), TRUE ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_ps" ), FALSE ); - gtk_widget_set_sensitive( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_avi" ), FALSE ); - - gtk_toggle_button_set_active( gtk_object_get_data( GTK_OBJECT( p_sout ), - "sout_mux_ts" ), TRUE ); - - GtkSoutSettingsChanged( GTK_WIDGET( togglebutton ), user_data ); -} - - -void GtkSoutSettingsChanged ( GtkWidget *button, - gpointer user_data) -{ -#define SELECTED( s ) GTK_TOGGLE_BUTTON( lookup_widget( GTK_WIDGET(button), \ - (s) ) )->active - //intf_thread_t * p_intf = GtkGetIntf( button ); - GString * p_target; - - p_target = g_string_new( "" ); - - /* first set access */ - if( SELECTED( "sout_access_file" ) ) - { - g_string_append( p_target, "file/" ); - } - else if( SELECTED( "sout_access_udp" ) ) - { - g_string_append( p_target, "udp/" ); - } - else if( SELECTED( "sout_access_rtp" ) ) - { - g_string_append( p_target, "rtp/" ); - } - - /* then set muxer */ - if( SELECTED( "sout_mux_ts" ) ) - { - g_string_append( p_target, "ts://" ); - } - else if( SELECTED( "sout_mux_ps" ) ) - { - g_string_append( p_target, "ps://" ); - } - else if( SELECTED( "sout_mux_avi" ) ) - { - g_string_append( p_target, "avi://" ); - } - - /* last part of the url */ - if( SELECTED( "sout_access_file" ) ) - { - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "sout_file_path" ) ) ) ); - } - else if( SELECTED( "sout_access_udp" ) || SELECTED( "sout_access_rtp" ) ) - { - g_string_append( p_target, - gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "sout_udp_address" ) ) ) ); - g_string_append( p_target, ":" ); - g_string_sprintfa( p_target, "%i", - gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( lookup_widget( - GTK_WIDGET(button), "sout_udp_port" ) ) ) ); - } - - gtk_entry_set_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "sout_entry_target" ) ), - p_target->str ); - g_string_free( p_target, TRUE ); -} - - -/****************************************************************************/ -void GtkSoutSettingsOk ( GtkButton *button, - gpointer user_data) -{ - /* Hide the dialog box */ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); - - /* set sout */ -#if 0 - psz_target = gtk_entry_get_text( GTK_ENTRY( lookup_widget( - GTK_WIDGET(button), "sout_entry_target" ) ) ); - - config_PutPsz( p_intf, "sout", psz_target ); -#endif -} - -void GtkSoutSettingsCancel ( GtkButton *button, - gpointer user_data) -{ - /* Hide the dialog box */ - gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) ); -} - -void GtkSoutSettings ( GtkButton *button, - gpointer user_data ) -{ - intf_thread_t * p_intf = GtkGetIntf( button ); - - gtk_widget_show( p_intf->p_sys->p_sout ); - gdk_window_raise( p_intf->p_sys->p_sout->window ); -} - - - diff --git a/modules/gui/gtk2/Modules.am b/modules/gui/gtk2/Modules.am deleted file mode 100644 index 3971ad602b..0000000000 --- a/modules/gui/gtk2/Modules.am +++ /dev/null @@ -1,27 +0,0 @@ -COMMON_gtk2 = \ - $(NULL) - -SOURCES_gtk2 = \ - gtk2.c \ - gtk2_callbacks.c \ - gtk2_callbacks.h \ - gtk2_interface.c \ - gtk2_interface.h \ - gtk2_support.c \ - gtk2_support.h \ - $(COMMON_gtk2) - -SOURCES_gnome2 = \ - gnome2.c \ - gnome2_callbacks.c \ - gnome2_callbacks.h \ - gnome2_interface.c \ - gnome2_interface.h \ - gnome2_support.c \ - gnome2_support.h \ - $(COMMON_gtk2) - -EXTRA_DIST += \ - gtk2.glade \ - gnome2.glade \ - $(NULL) diff --git a/modules/gui/gtk2/gnome2.c b/modules/gui/gtk2/gnome2.c deleted file mode 100644 index c2045f42b0..0000000000 --- a/modules/gui/gtk2/gnome2.c +++ /dev/null @@ -1,200 +0,0 @@ -/***************************************************************************** - * gnome2.c : GNOME 2 plugin for vlc - ***************************************************************************** - * Copyright (C) 2003 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* malloc(), free() */ -#include /* ENOMEM */ -#include /* strerror() */ -#include - -#include -#include - -#include - -#include "gnome2_interface.h" -#include "gnome2_support.h" - -/***************************************************************************** - * Local prototypes. - *****************************************************************************/ -static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); - -static void Run ( intf_thread_t * ); -static int Manage ( intf_thread_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -vlc_module_begin(); - int i = getenv( "DISPLAY" ) == NULL ? 15 : 95; - set_description( _("Gtk2 interface") ); - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - set_capability( "interface", i ); - set_callbacks( Open, Close ); - set_program( "gvlc" ); -vlc_module_end(); - -/***************************************************************************** - * intf_sys_t - *****************************************************************************/ -struct intf_sys_t -{ - module_t *p_gui_helper; - - GtkWidget *p_app; -}; - -/***************************************************************************** - * Open: initialize and create window - *****************************************************************************/ -static int Open( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return VLC_ENOMEM; - } - -#ifdef NEED_GTK2_MAIN - p_intf->p_sys->p_gui_helper = - module_Need( p_this, "gui-helper", "gnome2", VLC_TRUE ); - if( p_intf->p_sys->p_gui_helper == NULL ) - { - free( p_intf->p_sys ); - return VLC_ENOMOD; - } -#endif - - p_intf->pf_run = Run; - - return VLC_SUCCESS; -} - -/***************************************************************************** - * Close: destroy interface window - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - -#ifdef NEED_GTK2_MAIN - module_Unneed( p_intf, p_intf->p_sys->p_gui_helper ); -#endif - - /* Destroy structure */ - free( p_intf->p_sys ); -} - -/***************************************************************************** - * Run: Gtk+ thread - ***************************************************************************** - * this part of the interface is in a separate thread so that we can call - * gtk_main() from within it without annoying the rest of the program. - *****************************************************************************/ -static void Run( intf_thread_t *p_intf ) -{ -#ifdef NEED_GTK2_MAIN - gdk_threads_enter(); -#else - /* gnome_program_init needs to know the command line. We don't care, so - * we give it an empty one */ - char *p_args[] = { "", NULL }; - int i_args = 1; - int i_dummy; - - gtk_set_locale(); - gnome_program_init( PACKAGE, VERSION, LIBGNOMEUI_MODULE, - i_args, p_args, - GNOME_PARAM_APP_DATADIR, "",//PACKAGE_DATA_DIR, - NULL ); -#endif - - /* Create some useful widgets that will certainly be used */ - p_intf->p_sys->p_app = create_app1(); - - /* Set the title of the main window */ - //gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_app), - // VOUT_TITLE " (Gtk+ interface)" ); - - /* Show the control window */ - gtk_widget_show( p_intf->p_sys->p_app ); - -#ifdef NEED_GTK2_MAIN - while( !p_intf->b_die ) - { - Manage( p_intf ); - - /* Sleep to avoid using all CPU - since some interfaces need to - * access keyboard events, a 100ms delay is a good compromise */ - gdk_threads_leave(); - msleep( INTF_IDLE_SLEEP ); - gdk_threads_enter(); - } -#else - /* Sleep to avoid using all CPU - since some interfaces needs to access - * keyboard events, a 100ms delay is a good compromise */ - i_dummy = gtk_timeout_add( INTF_IDLE_SLEEP / 1000, (GtkFunction)Manage, - p_intf ); - /* Enter Gtk mode */ - gtk_main(); - /* Remove the timeout */ - gtk_timeout_remove( i_dummy ); -#endif - - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_app) ); - -#ifdef NEED_GTK2_MAIN - gdk_threads_leave(); -#endif -} - -/* following functions are local */ - -/***************************************************************************** - * Manage: manage main thread messages - ***************************************************************************** - * In this function, called approx. 10 times a second, we check what the - * main program wanted to tell us. - *****************************************************************************/ -static int Manage( intf_thread_t *p_intf ) -{ -#ifndef NEED_GTK2_MAIN - if( p_intf->b_die ) - { - gtk_main_quit(); - - return FALSE; - } -#endif - - return TRUE; -} diff --git a/modules/gui/gtk2/gnome2.glade b/modules/gui/gtk2/gnome2.glade deleted file mode 100644 index af6e40bf1b..0000000000 --- a/modules/gui/gtk2/gnome2.glade +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - - - True - gnome2 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - True - - - - True - True - - - - True - GTK_SHADOW_NONE - - - - True - - - - True - GNOMEUIINFO_MENU_FILE_TREE - - - - - - - True - GNOMEUIINFO_MENU_NEW_ITEM - _New - True - - - - - - - True - GNOMEUIINFO_MENU_OPEN_ITEM - - - - - - - True - GNOMEUIINFO_MENU_SAVE_ITEM - - - - - - - True - GNOMEUIINFO_MENU_SAVE_AS_ITEM - - - - - - - True - - - - - - True - GNOMEUIINFO_MENU_EXIT_ITEM - - - - - - - - - - - True - GNOMEUIINFO_MENU_EDIT_TREE - - - - - - - True - GNOMEUIINFO_MENU_CUT_ITEM - - - - - - - True - GNOMEUIINFO_MENU_COPY_ITEM - - - - - - - True - GNOMEUIINFO_MENU_PASTE_ITEM - - - - - - - True - GNOMEUIINFO_MENU_CLEAR_ITEM - - - - - - - True - - - - - - True - GNOMEUIINFO_MENU_PROPERTIES_ITEM - - - - - - - True - - - - - - True - GNOMEUIINFO_MENU_PREFERENCES_ITEM - - - - - - - - - - - True - GNOMEUIINFO_MENU_VIEW_TREE - - - - - - - - - - - True - GNOMEUIINFO_MENU_HELP_TREE - - - - - - - True - GNOMEUIINFO_MENU_ABOUT_ITEM - - - - - - - - - - - - BONOBO_DOCK_TOP - 0 - 0 - 0 - BONOBO_DOCK_ITEM_BEH_EXCLUSIVE|BONOBO_DOCK_ITEM_BEH_NEVER_VERTICAL|BONOBO_DOCK_ITEM_BEH_LOCKED - - - - - - True - GTK_SHADOW_OUT - - - - 1 - True - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH - True - - - - True - Open File - gtk-open - True - - - - - - True - Open File - button4 - True - gtk-cdrom - - - - - - True - Save File - button3 - True - gtk-refresh - - - - - - - BONOBO_DOCK_TOP - 1 - 0 - 0 - BONOBO_DOCK_ITEM_BEH_EXCLUSIVE - - - - - - True - False - 0 - - - - True - True - True - GTK_POS_TOP - 1 - GTK_UPDATE_CONTINUOUS - False - 0 0 0 0 0 0 - - - 0 - False - True - - - - - - - - - - - - - - - 0 - True - True - - - - - - True - True - True - - - 0 - True - True - - - - - diff --git a/modules/gui/gtk2/gnome2.gladep b/modules/gui/gtk2/gnome2.gladep deleted file mode 100644 index fad9e3e38f..0000000000 --- a/modules/gui/gtk2/gnome2.gladep +++ /dev/null @@ -1,16 +0,0 @@ - - - - - gnome2 - gnome2 - - - FALSE - gnome2_interface.c - gnome2_interface.h - gnome2_callbacks.c - gnome2_callbacks.h - gnome2_support.c - gnome2_support.h - diff --git a/modules/gui/gtk2/gnome2_callbacks.c b/modules/gui/gtk2/gnome2_callbacks.c deleted file mode 100644 index 5ca77d5fc3..0000000000 --- a/modules/gui/gtk2/gnome2_callbacks.c +++ /dev/null @@ -1,106 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include "gnome2_callbacks.h" -#include "gnome2_interface.h" -#include "gnome2_support.h" - - -void -on_new1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_open1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_save1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_save_as1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_quit1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_cut1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_copy1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_paste1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_clear1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_properties1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_preferences1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_about1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - diff --git a/modules/gui/gtk2/gnome2_callbacks.h b/modules/gui/gtk2/gnome2_callbacks.h deleted file mode 100644 index 73e34534e2..0000000000 --- a/modules/gui/gtk2/gnome2_callbacks.h +++ /dev/null @@ -1,50 +0,0 @@ -#include - - -void -on_new1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_open1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_save1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_save_as1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_quit1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_cut1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_copy1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_paste1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_clear1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_properties1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_preferences1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_about1_activate (GtkMenuItem *menuitem, - gpointer user_data); diff --git a/modules/gui/gtk2/gnome2_interface.c b/modules/gui/gtk2/gnome2_interface.c deleted file mode 100644 index de9cdb6cb4..0000000000 --- a/modules/gui/gtk2/gnome2_interface.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include -#include - -#include "gnome2_callbacks.h" -#include "gnome2_interface.h" -#include "gnome2_support.h" - -#define GLADE_HOOKUP_OBJECT(component,widget,name) \ - g_object_set_data_full (G_OBJECT (component), name, \ - gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) - -#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ - g_object_set_data (G_OBJECT (component), name, widget) - diff --git a/modules/gui/gtk2/gnome2_interface.h b/modules/gui/gtk2/gnome2_interface.h deleted file mode 100644 index b3aa4ebbfe..0000000000 --- a/modules/gui/gtk2/gnome2_interface.h +++ /dev/null @@ -1,4 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - diff --git a/modules/gui/gtk2/gnome2_support.c b/modules/gui/gtk2/gnome2_support.c deleted file mode 100644 index e2eabce1f1..0000000000 --- a/modules/gui/gtk2/gnome2_support.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include - -#include "gnome2_support.h" - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (!parent) - parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to find pixmap files. */ -static gchar* -find_pixmap_file (const gchar *filename) -{ - GList *elem; - - /* We step through each of the pixmaps directory to find it. */ - elem = pixmaps_directories; - while (elem) - { - gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, - G_DIR_SEPARATOR_S, filename); - if (g_file_test (pathname, G_FILE_TEST_EXISTS)) - return pathname; - g_free (pathname); - elem = elem->next; - } - return NULL; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *pathname = NULL; - GtkWidget *pixmap; - - if (!filename || !filename[0]) - return gtk_image_new (); - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return gtk_image_new (); - } - - pixmap = gtk_image_new_from_file (pathname); - g_free (pathname); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GdkPixbuf* -create_pixbuf (const gchar *filename) -{ - gchar *pathname = NULL; - GdkPixbuf *pixbuf; - GError *error = NULL; - - if (!filename || !filename[0]) - return NULL; - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return NULL; - } - - pixbuf = gdk_pixbuf_new_from_file (pathname, &error); - if (!pixbuf) - { - fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", - pathname, error->message); - g_error_free (error); - } - g_free (pathname); - return pixbuf; -} - -/* This is used to set ATK action descriptions. */ -void -glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) -{ - gint n_actions, i; - - n_actions = atk_action_get_n_actions (action); - for (i = 0; i < n_actions; i++) - { - if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); - } -} - diff --git a/modules/gui/gtk2/gnome2_support.h b/modules/gui/gtk2/gnome2_support.h deleted file mode 100644 index 92201b9776..0000000000 --- a/modules/gui/gtk2/gnome2_support.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Standard gettext macros. - */ -#ifdef ENABLE_NLS -# include -# undef _ -# define _(String) dgettext (PACKAGE, String) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -#else -# define textdomain(String) (String) -# define gettext(String) (String) -# define dgettext(Domain,Message) (Message) -# define dcgettext(Domain,Message,Type) (Message) -# define bindtextdomain(Domain,Directory) (Domain) -# define _(String) (String) -# define N_(String) (String) -#endif - - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps used in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - -/* This is used to create the pixbufs used in the interface. */ -GdkPixbuf* create_pixbuf (const gchar *filename); - -/* This is used to set ATK action descriptions. */ -void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); - diff --git a/modules/gui/gtk2/gtk2.c b/modules/gui/gtk2/gtk2.c deleted file mode 100644 index 6ea15a5e34..0000000000 --- a/modules/gui/gtk2/gtk2.c +++ /dev/null @@ -1,199 +0,0 @@ -/***************************************************************************** - * gtk2.c : Gtk2 plugin for vlc - ***************************************************************************** - * Copyright (C) 2003 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* malloc(), free() */ -#include /* ENOMEM */ -#include /* strerror() */ -#include - -#include -#include - -#include - -#include "gtk2_callbacks.h" -#include "gtk2_interface.h" -#include "gtk2_support.h" - -/***************************************************************************** - * Local prototypes. - *****************************************************************************/ -static int Open ( vlc_object_t * ); -static void Close ( vlc_object_t * ); - -static void Run ( intf_thread_t * ); -static int Manage ( intf_thread_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -vlc_module_begin(); - int i = getenv( "DISPLAY" ) == NULL ? 15 : 95; - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - set_description( _("Gtk2 interface") ); - set_capability( "interface", i ); - set_callbacks( Open, Close ); - set_program( "gvlc" ); -vlc_module_end(); - -/***************************************************************************** - * intf_sys_t - *****************************************************************************/ -struct intf_sys_t -{ - module_t *p_gui_helper; - - GtkWidget *p_window; -}; - -/***************************************************************************** - * Open: initialize and create window - *****************************************************************************/ -static int Open( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return VLC_ENOMEM; - } - -#ifdef NEED_GTK2_MAIN - p_intf->p_sys->p_gui_helper = - module_Need( p_this, "gui-helper", "gtk2", VLC_TRUE ); - if( p_intf->p_sys->p_gui_helper == NULL ) - { - free( p_intf->p_sys ); - return VLC_ENOMOD; - } -#endif - - p_intf->pf_run = Run; - - return VLC_SUCCESS; -} - -/***************************************************************************** - * Close: destroy interface window - *****************************************************************************/ -static void Close( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - -#ifdef NEED_GTK2_MAIN - module_Unneed( p_intf, p_intf->p_sys->p_gui_helper ); -#endif - - /* Destroy structure */ - free( p_intf->p_sys ); -} - -/***************************************************************************** - * Run: Gtk2 thread - ***************************************************************************** - * this part of the interface is in a separate thread so that we can call - * gtk_main() from within it without annoying the rest of the program. - *****************************************************************************/ -static void Run( intf_thread_t *p_intf ) -{ -#ifdef NEED_GTK2_MAIN - gdk_threads_enter(); -#else - /* gtk_init needs to know the command line. We don't care, so we - * give it an empty one */ - char *p_args[] = { "", NULL }; - char **pp_args = p_args; - int i_args = 1; - int i_dummy; - - gtk_set_locale(); - gtk_init( &i_args, &pp_args ); -#endif - - /* Create some useful widgets that will certainly be used */ - p_intf->p_sys->p_window = create_window1(); - - /* Set the title of the main window */ - gtk_window_set_title( GTK_WINDOW(p_intf->p_sys->p_window), - VOUT_TITLE " (Gtk2 interface)"); - - /* Show the control window */ - gtk_widget_show( p_intf->p_sys->p_window ); - -#ifdef NEED_GTK2_MAIN - while( !p_intf->b_die ) - { - Manage( p_intf ); - - /* Sleep to avoid using all CPU - since some interfaces need to - * access keyboard events, a 100ms delay is a good compromise */ - gdk_threads_leave(); - msleep( INTF_IDLE_SLEEP ); - gdk_threads_enter(); - } -#else - /* Sleep to avoid using all CPU - since some interfaces needs to access - * keyboard events, a 100ms delay is a good compromise */ - i_dummy = gtk_timeout_add( INTF_IDLE_SLEEP / 1000, (GtkFunction)Manage, - p_intf ); - /* Enter Gtk mode */ - gtk_main(); - /* Remove the timeout */ - gtk_timeout_remove( i_dummy ); -#endif - - gtk_object_destroy( GTK_OBJECT(p_intf->p_sys->p_window) ); - -#ifdef NEED_GTK2_MAIN - gdk_threads_leave(); -#endif -} - -/* following functions are local */ - -/***************************************************************************** - * Manage: manage main thread messages - ***************************************************************************** - * In this function, called approx. 10 times a second, we check what the - * main program wanted to tell us. - *****************************************************************************/ -static int Manage( intf_thread_t *p_intf ) -{ -#ifndef NEED_GTK2_MAIN - if( p_intf->b_die ) - { - gtk_main_quit(); - - return FALSE; - } -#endif - - return TRUE; -} diff --git a/modules/gui/gtk2/gtk2.glade b/modules/gui/gtk2/gtk2.glade deleted file mode 100644 index 8f5e819d99..0000000000 --- a/modules/gui/gtk2/gtk2.glade +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - True - window1 - GTK_WINDOW_TOPLEVEL - GTK_WIN_POS_NONE - False - True - False - - - - True - False - 0 - - - - True - - - - True - _File - True - - - - - - - True - gtk-new - True - - - - - - - True - gtk-open - True - - - - - - - True - gtk-save - True - - - - - - - True - gtk-save-as - True - - - - - - - True - - - - - - True - gtk-quit - True - - - - - - - - - - - True - _Edit - True - - - - - - - True - gtk-cut - True - - - - - - - True - gtk-copy - True - - - - - - - True - gtk-paste - True - - - - - - - True - gtk-delete - True - - - - - - - - - - - True - _View - True - - - - - - - - - - - True - _Help - True - - - - - - - True - _About - True - - - - - - - - - - 0 - False - False - - - - - - True - GTK_SHADOW_OUT - GTK_POS_LEFT - GTK_POS_TOP - - - - True - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_BOTH - True - - - - True - button1 - True - gtk-open - - - - - - True - button2 - True - gtk-cdrom - - - - - - True - button3 - True - gtk-refresh - - - - - - - 0 - False - True - - - - - - True - True - True - GTK_POS_TOP - 1 - GTK_UPDATE_CONTINUOUS - False - 0 0 0 0 0 0 - - - 0 - True - True - - - - - - True - True - - - 0 - False - False - - - - - - - diff --git a/modules/gui/gtk2/gtk2.gladep b/modules/gui/gtk2/gtk2.gladep deleted file mode 100644 index 5ea0fed273..0000000000 --- a/modules/gui/gtk2/gtk2.gladep +++ /dev/null @@ -1,17 +0,0 @@ - - - - - gtk2 - gtk2 - - - FALSE - FALSE - gtk2_interface.c - gtk2_interface.h - gtk2_callbacks.c - gtk2_callbacks.h - gtk2_support.c - gtk2_support.h - diff --git a/modules/gui/gtk2/gtk2_callbacks.c b/modules/gui/gtk2/gtk2_callbacks.c deleted file mode 100644 index 07bf8a7f5a..0000000000 --- a/modules/gui/gtk2/gtk2_callbacks.c +++ /dev/null @@ -1,90 +0,0 @@ -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -#include "gtk2_callbacks.h" -#include "gtk2_interface.h" -#include "gtk2_support.h" - - -void -on_new1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_open1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_save1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_save_as1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_quit1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_cut1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_copy1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_paste1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_delete1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - - -void -on_about1_activate (GtkMenuItem *menuitem, - gpointer user_data) -{ - -} - diff --git a/modules/gui/gtk2/gtk2_callbacks.h b/modules/gui/gtk2/gtk2_callbacks.h deleted file mode 100644 index 36f87c8c7f..0000000000 --- a/modules/gui/gtk2/gtk2_callbacks.h +++ /dev/null @@ -1,42 +0,0 @@ -#include - - -void -on_new1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_open1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_save1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_save_as1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_quit1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_cut1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_copy1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_paste1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_delete1_activate (GtkMenuItem *menuitem, - gpointer user_data); - -void -on_about1_activate (GtkMenuItem *menuitem, - gpointer user_data); diff --git a/modules/gui/gtk2/gtk2_interface.c b/modules/gui/gtk2/gtk2_interface.c deleted file mode 100644 index 5df1b7b23d..0000000000 --- a/modules/gui/gtk2/gtk2_interface.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include -#include - -#include "gtk2_callbacks.h" -#include "gtk2_interface.h" -#include "gtk2_support.h" - -#define GLADE_HOOKUP_OBJECT(component,widget,name) \ - g_object_set_data_full (G_OBJECT (component), name, \ - gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) - -#define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ - g_object_set_data (G_OBJECT (component), name, widget) - -GtkWidget* -create_window1 (void) -{ - GtkWidget *window1; - GtkWidget *vbox1; - GtkWidget *menubar1; - GtkWidget *menuitem1; - GtkWidget *menu1; - GtkWidget *new1; - GtkWidget *open1; - GtkWidget *save1; - GtkWidget *save_as1; - GtkWidget *separatormenuitem1; - GtkWidget *quit1; - GtkWidget *menuitem2; - GtkWidget *menu2; - GtkWidget *cut1; - GtkWidget *copy1; - GtkWidget *paste1; - GtkWidget *delete1; - GtkWidget *menuitem3; - GtkWidget *menu3; - GtkWidget *menuitem4; - GtkWidget *menu4; - GtkWidget *about1; - GtkWidget *handlebox1; - GtkWidget *toolbar1; - GtkWidget *tmp_toolbar_icon; - GtkWidget *button1; - GtkWidget *button2; - GtkWidget *button3; - GtkWidget *hscale1; - GtkWidget *statusbar1; - GtkAccelGroup *accel_group; - - accel_group = gtk_accel_group_new (); - - window1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title (GTK_WINDOW (window1), _("window1")); - - vbox1 = gtk_vbox_new (FALSE, 0); - gtk_widget_show (vbox1); - gtk_container_add (GTK_CONTAINER (window1), vbox1); - - menubar1 = gtk_menu_bar_new (); - gtk_widget_show (menubar1); - gtk_box_pack_start (GTK_BOX (vbox1), menubar1, FALSE, FALSE, 0); - - menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File")); - gtk_widget_show (menuitem1); - gtk_container_add (GTK_CONTAINER (menubar1), menuitem1); - - menu1 = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menu1); - - new1 = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group); - gtk_widget_show (new1); - gtk_container_add (GTK_CONTAINER (menu1), new1); - - open1 = gtk_image_menu_item_new_from_stock ("gtk-open", accel_group); - gtk_widget_show (open1); - gtk_container_add (GTK_CONTAINER (menu1), open1); - - save1 = gtk_image_menu_item_new_from_stock ("gtk-save", accel_group); - gtk_widget_show (save1); - gtk_container_add (GTK_CONTAINER (menu1), save1); - - save_as1 = gtk_image_menu_item_new_from_stock ("gtk-save-as", accel_group); - gtk_widget_show (save_as1); - gtk_container_add (GTK_CONTAINER (menu1), save_as1); - - separatormenuitem1 = gtk_separator_menu_item_new (); - gtk_widget_show (separatormenuitem1); - gtk_container_add (GTK_CONTAINER (menu1), separatormenuitem1); - gtk_widget_set_sensitive (separatormenuitem1, FALSE); - - quit1 = gtk_image_menu_item_new_from_stock ("gtk-quit", accel_group); - gtk_widget_show (quit1); - gtk_container_add (GTK_CONTAINER (menu1), quit1); - - menuitem2 = gtk_menu_item_new_with_mnemonic (_("_Edit")); - gtk_widget_show (menuitem2); - gtk_container_add (GTK_CONTAINER (menubar1), menuitem2); - - menu2 = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem2), menu2); - - cut1 = gtk_image_menu_item_new_from_stock ("gtk-cut", accel_group); - gtk_widget_show (cut1); - gtk_container_add (GTK_CONTAINER (menu2), cut1); - - copy1 = gtk_image_menu_item_new_from_stock ("gtk-copy", accel_group); - gtk_widget_show (copy1); - gtk_container_add (GTK_CONTAINER (menu2), copy1); - - paste1 = gtk_image_menu_item_new_from_stock ("gtk-paste", accel_group); - gtk_widget_show (paste1); - gtk_container_add (GTK_CONTAINER (menu2), paste1); - - delete1 = gtk_image_menu_item_new_from_stock ("gtk-delete", accel_group); - gtk_widget_show (delete1); - gtk_container_add (GTK_CONTAINER (menu2), delete1); - - menuitem3 = gtk_menu_item_new_with_mnemonic (_("_View")); - gtk_widget_show (menuitem3); - gtk_container_add (GTK_CONTAINER (menubar1), menuitem3); - - menu3 = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem3), menu3); - - menuitem4 = gtk_menu_item_new_with_mnemonic (_("_Help")); - gtk_widget_show (menuitem4); - gtk_container_add (GTK_CONTAINER (menubar1), menuitem4); - - menu4 = gtk_menu_new (); - gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem4), menu4); - - about1 = gtk_menu_item_new_with_mnemonic (_("_About")); - gtk_widget_show (about1); - gtk_container_add (GTK_CONTAINER (menu4), about1); - - handlebox1 = gtk_handle_box_new (); - gtk_widget_show (handlebox1); - gtk_box_pack_start (GTK_BOX (vbox1), handlebox1, FALSE, TRUE, 0); - - toolbar1 = gtk_toolbar_new (); - gtk_widget_show (toolbar1); - gtk_container_add (GTK_CONTAINER (handlebox1), toolbar1); - gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_BOTH); - - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-open", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); - button1 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("button1"), - NULL, NULL, - tmp_toolbar_icon, NULL, NULL); - gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); - gtk_widget_show (button1); - - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-cdrom", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); - button2 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("button2"), - NULL, NULL, - tmp_toolbar_icon, NULL, NULL); - gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); - gtk_widget_show (button2); - - tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-refresh", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); - button3 = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), - GTK_TOOLBAR_CHILD_BUTTON, - NULL, - _("button3"), - NULL, NULL, - tmp_toolbar_icon, NULL, NULL); - gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); - gtk_widget_show (button3); - - hscale1 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 0, 0, 0, 0))); - gtk_widget_show (hscale1); - gtk_box_pack_start (GTK_BOX (vbox1), hscale1, TRUE, TRUE, 0); - - statusbar1 = gtk_statusbar_new (); - gtk_widget_show (statusbar1); - gtk_box_pack_start (GTK_BOX (vbox1), statusbar1, FALSE, FALSE, 0); - - g_signal_connect ((gpointer) new1, "activate", - G_CALLBACK (on_new1_activate), - NULL); - g_signal_connect ((gpointer) open1, "activate", - G_CALLBACK (on_open1_activate), - NULL); - g_signal_connect ((gpointer) save1, "activate", - G_CALLBACK (on_save1_activate), - NULL); - g_signal_connect ((gpointer) save_as1, "activate", - G_CALLBACK (on_save_as1_activate), - NULL); - g_signal_connect ((gpointer) quit1, "activate", - G_CALLBACK (on_quit1_activate), - NULL); - g_signal_connect ((gpointer) cut1, "activate", - G_CALLBACK (on_cut1_activate), - NULL); - g_signal_connect ((gpointer) copy1, "activate", - G_CALLBACK (on_copy1_activate), - NULL); - g_signal_connect ((gpointer) paste1, "activate", - G_CALLBACK (on_paste1_activate), - NULL); - g_signal_connect ((gpointer) delete1, "activate", - G_CALLBACK (on_delete1_activate), - NULL); - g_signal_connect ((gpointer) about1, "activate", - G_CALLBACK (on_about1_activate), - NULL); - - /* Store pointers to all widgets, for use by lookup_widget(). */ - GLADE_HOOKUP_OBJECT_NO_REF (window1, window1, "window1"); - GLADE_HOOKUP_OBJECT (window1, vbox1, "vbox1"); - GLADE_HOOKUP_OBJECT (window1, menubar1, "menubar1"); - GLADE_HOOKUP_OBJECT (window1, menuitem1, "menuitem1"); - GLADE_HOOKUP_OBJECT (window1, menu1, "menu1"); - GLADE_HOOKUP_OBJECT (window1, new1, "new1"); - GLADE_HOOKUP_OBJECT (window1, open1, "open1"); - GLADE_HOOKUP_OBJECT (window1, save1, "save1"); - GLADE_HOOKUP_OBJECT (window1, save_as1, "save_as1"); - GLADE_HOOKUP_OBJECT (window1, separatormenuitem1, "separatormenuitem1"); - GLADE_HOOKUP_OBJECT (window1, quit1, "quit1"); - GLADE_HOOKUP_OBJECT (window1, menuitem2, "menuitem2"); - GLADE_HOOKUP_OBJECT (window1, menu2, "menu2"); - GLADE_HOOKUP_OBJECT (window1, cut1, "cut1"); - GLADE_HOOKUP_OBJECT (window1, copy1, "copy1"); - GLADE_HOOKUP_OBJECT (window1, paste1, "paste1"); - GLADE_HOOKUP_OBJECT (window1, delete1, "delete1"); - GLADE_HOOKUP_OBJECT (window1, menuitem3, "menuitem3"); - GLADE_HOOKUP_OBJECT (window1, menu3, "menu3"); - GLADE_HOOKUP_OBJECT (window1, menuitem4, "menuitem4"); - GLADE_HOOKUP_OBJECT (window1, menu4, "menu4"); - GLADE_HOOKUP_OBJECT (window1, about1, "about1"); - GLADE_HOOKUP_OBJECT (window1, handlebox1, "handlebox1"); - GLADE_HOOKUP_OBJECT (window1, toolbar1, "toolbar1"); - GLADE_HOOKUP_OBJECT (window1, button1, "button1"); - GLADE_HOOKUP_OBJECT (window1, button2, "button2"); - GLADE_HOOKUP_OBJECT (window1, button3, "button3"); - GLADE_HOOKUP_OBJECT (window1, hscale1, "hscale1"); - GLADE_HOOKUP_OBJECT (window1, statusbar1, "statusbar1"); - - gtk_window_add_accel_group (GTK_WINDOW (window1), accel_group); - - return window1; -} - diff --git a/modules/gui/gtk2/gtk2_interface.h b/modules/gui/gtk2/gtk2_interface.h deleted file mode 100644 index 75b41be4b9..0000000000 --- a/modules/gui/gtk2/gtk2_interface.h +++ /dev/null @@ -1,5 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -GtkWidget* create_window1 (void); diff --git a/modules/gui/gtk2/gtk2_support.c b/modules/gui/gtk2/gtk2_support.c deleted file mode 100644 index 7b91a538f2..0000000000 --- a/modules/gui/gtk2/gtk2_support.c +++ /dev/null @@ -1,144 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include -#include -#include -#include -#include - -#include - -#include "gtk2_support.h" - -GtkWidget* -lookup_widget (GtkWidget *widget, - const gchar *widget_name) -{ - GtkWidget *parent, *found_widget; - - for (;;) - { - if (GTK_IS_MENU (widget)) - parent = gtk_menu_get_attach_widget (GTK_MENU (widget)); - else - parent = widget->parent; - if (!parent) - parent = (GtkWidget*) g_object_get_data (G_OBJECT (widget), "GladeParentKey"); - if (parent == NULL) - break; - widget = parent; - } - - found_widget = (GtkWidget*) g_object_get_data (G_OBJECT (widget), - widget_name); - if (!found_widget) - g_warning ("Widget not found: %s", widget_name); - return found_widget; -} - -static GList *pixmaps_directories = NULL; - -/* Use this function to set the directory containing installed pixmaps. */ -void -add_pixmap_directory (const gchar *directory) -{ - pixmaps_directories = g_list_prepend (pixmaps_directories, - g_strdup (directory)); -} - -/* This is an internally used function to find pixmap files. */ -static gchar* -find_pixmap_file (const gchar *filename) -{ - GList *elem; - - /* We step through each of the pixmaps directory to find it. */ - elem = pixmaps_directories; - while (elem) - { - gchar *pathname = g_strdup_printf ("%s%s%s", (gchar*)elem->data, - G_DIR_SEPARATOR_S, filename); - if (g_file_test (pathname, G_FILE_TEST_EXISTS)) - return pathname; - g_free (pathname); - elem = elem->next; - } - return NULL; -} - -/* This is an internally used function to create pixmaps. */ -GtkWidget* -create_pixmap (GtkWidget *widget, - const gchar *filename) -{ - gchar *pathname = NULL; - GtkWidget *pixmap; - - if (!filename || !filename[0]) - return gtk_image_new (); - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return gtk_image_new (); - } - - pixmap = gtk_image_new_from_file (pathname); - g_free (pathname); - return pixmap; -} - -/* This is an internally used function to create pixmaps. */ -GdkPixbuf* -create_pixbuf (const gchar *filename) -{ - gchar *pathname = NULL; - GdkPixbuf *pixbuf; - GError *error = NULL; - - if (!filename || !filename[0]) - return NULL; - - pathname = find_pixmap_file (filename); - - if (!pathname) - { - g_warning (_("Couldn't find pixmap file: %s"), filename); - return NULL; - } - - pixbuf = gdk_pixbuf_new_from_file (pathname, &error); - if (!pixbuf) - { - fprintf (stderr, "Failed to load pixbuf file: %s: %s\n", - pathname, error->message); - g_error_free (error); - } - g_free (pathname); - return pixbuf; -} - -/* This is used to set ATK action descriptions. */ -void -glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description) -{ - gint n_actions, i; - - n_actions = atk_action_get_n_actions (action); - for (i = 0; i < n_actions; i++) - { - if (!strcmp (atk_action_get_name (action, i), action_name)) - atk_action_set_description (action, i, description); - } -} - diff --git a/modules/gui/gtk2/gtk2_support.h b/modules/gui/gtk2/gtk2_support.h deleted file mode 100644 index 92201b9776..0000000000 --- a/modules/gui/gtk2/gtk2_support.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - * DO NOT EDIT THIS FILE - it is generated by Glade. - */ - -#ifdef HAVE_CONFIG_H -# include -#endif - -#include - -/* - * Standard gettext macros. - */ -#ifdef ENABLE_NLS -# include -# undef _ -# define _(String) dgettext (PACKAGE, String) -# ifdef gettext_noop -# define N_(String) gettext_noop (String) -# else -# define N_(String) (String) -# endif -#else -# define textdomain(String) (String) -# define gettext(String) (String) -# define dgettext(Domain,Message) (Message) -# define dcgettext(Domain,Message,Type) (Message) -# define bindtextdomain(Domain,Directory) (Domain) -# define _(String) (String) -# define N_(String) (String) -#endif - - -/* - * Public Functions. - */ - -/* - * This function returns a widget in a component created by Glade. - * Call it with the toplevel widget in the component (i.e. a window/dialog), - * or alternatively any widget in the component, and the name of the widget - * you want returned. - */ -GtkWidget* lookup_widget (GtkWidget *widget, - const gchar *widget_name); - - -/* Use this function to set the directory containing installed pixmaps. */ -void add_pixmap_directory (const gchar *directory); - - -/* - * Private Functions. - */ - -/* This is used to create the pixmaps used in the interface. */ -GtkWidget* create_pixmap (GtkWidget *widget, - const gchar *filename); - -/* This is used to create the pixbufs used in the interface. */ -GdkPixbuf* create_pixbuf (const gchar *filename); - -/* This is used to set ATK action descriptions. */ -void glade_set_atk_action_description (AtkAction *action, - const gchar *action_name, - const gchar *description); - diff --git a/modules/gui/kde/Modules.am b/modules/gui/kde/Modules.am deleted file mode 100644 index eafd1113b5..0000000000 --- a/modules/gui/kde/Modules.am +++ /dev/null @@ -1,70 +0,0 @@ -SOURCES_kde = \ - kde.cpp \ - interface.cpp \ - slider.cpp \ - disc.cpp \ - net.cpp \ - menu.cpp \ - preferences.cpp \ - pluginsbox.cpp \ - QConfigItem.cpp \ - messages.cpp \ - info.cpp \ - languagemenu.cpp \ - $(NULL) - -nodist_SOURCES_kde = \ - interface.moc.cpp \ - slider.moc.cpp \ - disc.moc.cpp \ - net.moc.cpp \ - menu.moc.cpp \ - preferences.moc.cpp \ - pluginsbox.moc.cpp \ - QConfigItem.moc.cpp \ - messages.moc.cpp \ - info.moc.cpp \ - languagemenu.moc.cpp \ - $(NULL) - -noinst_HEADERS += \ - common.h \ - disc.h \ - QConfigItem.h \ - interface.h \ - menu.h \ - net.h \ - pluginsbox.h \ - preferences.h \ - slider.h \ - messages.h \ - info.h \ - languagemenu.h \ - $(NULL) - -interface.moc.cpp: interface.h - $(MOC) $< -o $@ -slider.moc.cpp: slider.h - $(MOC) $< -o $@ -disc.moc.cpp: disc.h - $(MOC) $< -o $@ -net.moc.cpp: net.h - $(MOC) $< -o $@ -menu.moc.cpp: menu.h - $(MOC) $< -o $@ -preferences.moc.cpp: preferences.h - $(MOC) $< -o $@ -pluginsbox.moc.cpp: pluginsbox.h - $(MOC) $< -o $@ -QConfigItem.moc.cpp: QConfigItem.h - $(MOC) $< -o $@ -messages.moc.cpp: messages.h - $(MOC) $< -o $@ -info.moc.cpp: info.h - $(MOC) $< -o $@ -languagemenu.moc.cpp: languagemenu.h - $(MOC) $< -o $@ - -kdedatadir = $(datadir)/vlc - -dist_kdedata_DATA = ui.rc diff --git a/modules/gui/kde/QConfigItem.cpp b/modules/gui/kde/QConfigItem.cpp deleted file mode 100644 index 1aaa129842..0000000000 --- a/modules/gui/kde/QConfigItem.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/***************************************************************************** - * QConfigItem.cpp: The QConfigItem class - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Sigmund Augdal Mon 12.08.2002 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ -#include "QConfigItem.h" -#include -QConfigItem::QConfigItem(QObject *parent, QString name, int iType, int i_val) : - QObject(parent, name) -{ - type = iType; - iVal = i_val; - bChanged = false; -} - -QConfigItem::QConfigItem(QObject *parent, QString name, int iType, float f_val) : - QObject(parent, name) -{ - type = iType; - fVal = f_val; - bChanged = false; -} - -QConfigItem::QConfigItem(QObject *parent, QString name, int iType, QString s_val) : - QObject(parent, name) -{ - type = iType; - sVal = s_val; - bChanged = false; -} - -QConfigItem::~QConfigItem() -{ - ; -} - -int QConfigItem::getType() -{ - return type; -} - -int QConfigItem::iValue() -{ - return iVal; -} - -float QConfigItem::fValue() -{ - return fVal; -} - -QString QConfigItem::sValue() -{ - return sVal; -} - -void QConfigItem::setValue(int val) -{ - iVal = val; - bChanged = true; -} - -void QConfigItem::setValue(float val) -{ - fVal = val; - bChanged = true; -} - -void QConfigItem::setValue(double val) -{ - fVal = (float)val; - bChanged = true; -} - -void QConfigItem::setValue(const QString &val) -{ - sVal = val; - bChanged = true; -} - -bool QConfigItem::changed() -{ - return bChanged; -} - -void QConfigItem::resetChanged() -{ - bChanged = false; -} diff --git a/modules/gui/kde/QConfigItem.h b/modules/gui/kde/QConfigItem.h deleted file mode 100644 index 4de1bf21c2..0000000000 --- a/modules/gui/kde/QConfigItem.h +++ /dev/null @@ -1,60 +0,0 @@ -/***************************************************************************** - * QConfigItem.h : includes for the QConfigItem class - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Andres Krapf Sun Mar 25 2001 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#ifndef _KCONFIGITEM_H_ -#define _KCONFIGITEM_H_ -#include -#include -/* - A class to handle the information for one configuration item. -*/ - -class QConfigItem : public QObject -{ - Q_OBJECT - public: - QConfigItem(QObject *parent, QString name, int iType, int i_val); - QConfigItem(QObject *parent, QString name, int iType, float f_val); - QConfigItem(QObject *parent, QString name, int iType, QString s_val); - ~QConfigItem(); - - int getType(); - float fValue(); - int iValue(); - QString sValue(); - bool changed(); - - public slots: - void setValue(int val); - void setValue(float val); - void setValue(double val); - void setValue(const QString &val); - void resetChanged(); - - private: - int iVal, type; - float fVal; - QString sVal; - bool bChanged; -}; -#endif diff --git a/modules/gui/kde/common.h b/modules/gui/kde/common.h deleted file mode 100644 index 67ec336062..0000000000 --- a/modules/gui/kde/common.h +++ /dev/null @@ -1,20 +0,0 @@ -/*************************************************************************** - common.h - description - ------------------- - begin : Mon Apr 9 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#ifndef _INTF_PLUGIN_H_ -#define _INTF_PLUGIN_H_ - -#include -#include -#include -#include - -#include -#include - -#endif /* _INTF_PLUGIN_H_ */ diff --git a/modules/gui/kde/disc.cpp b/modules/gui/kde/disc.cpp deleted file mode 100644 index 9793f55f56..0000000000 --- a/modules/gui/kde/disc.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/*************************************************************************** - disc.cpp - description - ------------------- - begin : Sat Apr 7 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#include "disc.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -KDiskDialog::KDiskDialog( QWidget *parent, const char *name ) - :KDialogBase( parent, name, true, QString::null, - Ok|Cancel, Ok, true ) -{ - QVBox *pageVBox = makeVBoxMainWidget(); - - QHBox *deviceSelectHBox = new QHBox( pageVBox ); - deviceSelectHBox->setSpacing( 5 ); - fButtonGroup = new QVButtonGroup( _("Disk type"), deviceSelectHBox ); - fDVDButton = new QRadioButton( "DVD", fButtonGroup); - fDVDButton->setChecked( true ); - fVCDButton = new QRadioButton( "VCD", fButtonGroup); - fVCDButton->setEnabled( false ); - - QVGroupBox *startVBox = new QVGroupBox( _("Starting position"), deviceSelectHBox ); - - QHBox *titleHBox = new QHBox( startVBox ); - new QLabel( _("Title "), titleHBox ); - fTitle = new QSpinBox( titleHBox ); - QHBox *chapterHBox = new QHBox( startVBox ); - new QLabel( _("Chapter "), chapterHBox ); - fChapter = new QSpinBox( chapterHBox ); - - QHBox *deviceNameHBox = new QHBox( pageVBox ); - new QLabel( _("Device name "), deviceNameHBox ); - fLineEdit = new KLineEdit( "/dev/dvd", deviceNameHBox ); -} - -KDiskDialog::~KDiskDialog() -{ -} - -QString KDiskDialog::type() const -{ - if ( fDVDButton->isChecked() ) - { - return ( QString("dvd") ); - } - else - { - return ( QString("vcd") ); - } -} - -QString KDiskDialog::device() const -{ - return ( fLineEdit->text() ); -} - -int KDiskDialog::title() const -{ - return ( fTitle->value() ); -} - -int KDiskDialog::chapter() const -{ - return ( fChapter->value() ); -} diff --git a/modules/gui/kde/disc.h b/modules/gui/kde/disc.h deleted file mode 100644 index b2944f3b0d..0000000000 --- a/modules/gui/kde/disc.h +++ /dev/null @@ -1,48 +0,0 @@ -/*************************************************************************** - disc.h - description - ------------------- - begin : Sat Apr 7 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#ifndef KDE_DISC_H -#define KDE_DISC_H - -#include "common.h" -#include -#include - -class QVButtonGroup; -class QRadioButton; -class QSpinBox; -class KLineEdit; - -/** - *@author andres - */ - -class KDiskDialog : public KDialogBase -{ - Q_OBJECT - public: - KDiskDialog( QWidget *parent=0, const char *name=0 ); - ~KDiskDialog(); - - QString type() const; - QString device() const; - int title() const; - int chapter() const; - - private: - - QVButtonGroup *fButtonGroup; - QRadioButton *fDVDButton; - QRadioButton *fVCDButton; - QSpinBox *fTitle; - QSpinBox *fChapter; - KLineEdit *fLineEdit; - -}; - -#endif diff --git a/modules/gui/kde/info.cpp b/modules/gui/kde/info.cpp deleted file mode 100644 index e818db1a63..0000000000 --- a/modules/gui/kde/info.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/***************************************************************************** - * info.cpp: the KInfoWindow class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include "info.h" -#include "common.h" -#include -#include -#include -#include - -KInfoWindow::KInfoWindow( intf_thread_t * p_intf, input_thread_t *p_input ) : - KDialogBase( Tabbed, _( "Messages" ), Ok, Ok, 0, 0, false) -{ -// clearWFlags(~0); -// setWFlags(WType_TopLevel); - setSizeGripEnabled(true); - - int i, j; - - vlc_mutex_lock( &p_input->p_item->lock ); - for ( i = 0; i < p_input->p_item->i_categories; i++ ) - { - info_category_t *p_category = - p_input->p_item->pp_categories[i]; - - QFrame *page = addPage( QString(p_category->psz_name) ); - QVBoxLayout *toplayout = new QVBoxLayout( page); - QVBox *category_table = new QVBox(page); - toplayout->addWidget(category_table); - toplayout->setResizeMode(QLayout::FreeResize); - toplayout->addStretch(10); - category_table->setSpacing(spacingHint()); - - for ( j = 0; j < p_category->i_infos; j++ ) - { - info_t *p_info = p_category->pp_infos[j]; - - QHBox *hb = new QHBox( category_table ); - new QLabel( QString(p_info->psz_name) + ":", hb ); - new QLabel( p_info->psz_value, hb ); - } - } - vlc_mutex_unlock( &p_input->p_item->lock ); - resize(300,400); - show(); -} - -KInfoWindow::~KInfoWindow() -{ - ; -} diff --git a/modules/gui/kde/info.h b/modules/gui/kde/info.h deleted file mode 100644 index e9adde6739..0000000000 --- a/modules/gui/kde/info.h +++ /dev/null @@ -1,34 +0,0 @@ -/***************************************************************************** - * info.h: the KInfoWindow class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include -#include "common.h" - -class KInfoWindow : public KDialogBase -{ - Q_OBJECT -public: - KInfoWindow( intf_thread_t*, input_thread_t * ); - ~KInfoWindow(); - -}; diff --git a/modules/gui/kde/interface.cpp b/modules/gui/kde/interface.cpp deleted file mode 100644 index 3c6c107ba6..0000000000 --- a/modules/gui/kde/interface.cpp +++ /dev/null @@ -1,674 +0,0 @@ -/*************************************************************************** - interface.cpp - description - ------------------- - begin : Sun Mar 25 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#include "disc.h" -#include "info.h" -#include "interface.h" -#include "net.h" -#include "menu.h" -#include "slider.h" -#include "preferences.h" -#include "languagemenu.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define ID_STATUS_MSG 1 -#define ID_DATE 2 -#define ID_STREAM_SOURCE 3 - -KInterface::KInterface( intf_thread_t *p_intf, QWidget *parent, - const char *name ) : KMainWindow(parent,name) -{ - setAcceptDrops(true); - - this->p_intf = p_intf; - p_messagesWindow = new KMessagesWindow( p_intf, p_intf->p_sys->p_msg ); - fDiskDialog = new KDiskDialog( this ); - fNetDialog = new KNetDialog( this ); - fTitleMenu = new KTitleMenu( p_intf, this ); - - fSlider = new KVLCSlider( QSlider::Horizontal, this ); - fSlider->setMaxValue(10000); - connect( fSlider, SIGNAL( userChanged( int ) ), this, - SLOT( slotSliderMoved( int ) ) ); - connect( fSlider, SIGNAL( valueChanged( int ) ), this, - SLOT( slotSliderChanged( int ) ) ); - connect( fSlider, SIGNAL( sliderMoved( int ) ), this, - SLOT( slotSliderChanged( int ) ) ); - setCentralWidget(fSlider); - - fTimer = new QTimer( this ); - connect( fTimer, SIGNAL( timeout() ), this, SLOT( slotManage() ) ); - - resize( 400, 30 ); - /////////////////////////////////////////////////////////////////// - // call inits to invoke all other construction parts - // XXX could we move this up ? - initStatusBar(); - initActions(); - - // add certain calls to the popup menu - fileOpen->plug( fTitleMenu ); - fileOpenRecent->plug( fTitleMenu ); - diskOpen->plug( fTitleMenu ); - streamOpen->plug( fTitleMenu ); - play->plug( fTitleMenu ); - pause->plug( fTitleMenu ); - slow->plug( fTitleMenu ); - fast->plug( fTitleMenu ); - fileQuit->plug( fTitleMenu ); - fTimer->start( 0, FALSE ); - -} - -KInterface::~KInterface() -{ - ; -} - -void KInterface::initActions() -{ - languages = new KActionMenu( _( "Languages" ), actionCollection(), - _("language") ); - languages->setEnabled( false ); - languageCollection = new KActionCollection( this ); - subtitleCollection = new KActionCollection( this ); - subtitles = new KActionMenu( _( "Subtitles" ), actionCollection(), - "subtitles" ); - subtitles->setEnabled( false ); - fileOpen = - KStdAction::open(this, SLOT(slotFileOpen()), actionCollection()); - fileOpenRecent = - KStdAction::openRecent(this, SLOT(slotFileOpenRecent(const KURL&)), - actionCollection()); - preferences = KStdAction::preferences(this, SLOT(slotShowPreferences()), - actionCollection()); - fileQuit = KStdAction::quit(this, SLOT(slotFileQuit()), - actionCollection()); - viewToolBar = KStdAction::showToolbar(this, SLOT(slotViewToolBar()), - actionCollection()); - viewStatusBar = KStdAction::showStatusbar(this, SLOT(slotViewStatusBar()), - actionCollection()); - - diskOpen = new KAction( i18n( _("Open &Disk") ), 0, 0, this, - SLOT( slotOpenDisk() ), actionCollection(), - "open_disk" ); - streamOpen = new KAction( i18n( _("Open &Stream") ), 0, 0, this, - SLOT( slotOpenStream() ), actionCollection(), - "open_stream" ); - backward = new KAction( i18n( _("&Backward") ), 0, 0, this, - SLOT( slotBackward() ), actionCollection(), - "backward" ); - stop = new KAction( i18n( _("&Stop") ), 0, 0, this, - SLOT( slotStop() ), actionCollection(), "stop" ); - play = new KAction( i18n( _("&Play") ), 0, 0, this, - SLOT( slotPlay() ), actionCollection(), "play" ); - pause = new KAction( i18n( _("P&ause") ), 0, 0, this, - SLOT( slotPause() ), actionCollection(), "pause" ); - slow = new KAction( i18n( _("&Slow") ), 0, 0, this, - SLOT( slotSlow() ), actionCollection(), "slow" ); - fast = new KAction( i18n( _("Fas&t") ), 0, 0, this, - SLOT( slotFast() ), actionCollection(), "fast" ); - prev = new KAction( i18n( _("Prev") ), 0, 0, this, - SLOT( slotPrev() ), actionCollection(), "prev" ); - next = new KAction( i18n( _("Next") ), 0, 0, this, - SLOT( slotNext() ), actionCollection(), "next" ); - messages = new KAction( _( "Messages..." ), 0, 0, this, - SLOT( slotShowMessages() ), actionCollection(), - "view_messages"); - - info = new KAction( _( "Stream info..." ), 0, 0, this, - SLOT( slotShowInfo() ), actionCollection(), - "view_stream_info"); - - info->setEnabled( false ); - program = new KActionMenu( _( "Program" ), actionCollection(), "program" ); - program->setEnabled( false ); - title = new KActionMenu( _( "Title" ), actionCollection(), "title" ); - title->setEnabled( false ); - chapter = new KActionMenu( _( "Chapter" ), actionCollection(), "chapter" ); - chapter->setEnabled( false ); - fileOpen->setStatusText(i18n(_("Opens an existing document"))); - fileOpenRecent->setStatusText(i18n(_("Opens a recently used file"))); - fileQuit->setStatusText(i18n(_("Quits the application"))); - viewToolBar->setStatusText(i18n(_("Enables/disables the toolbar"))); - viewStatusBar->setStatusText(i18n(_("Enables/disables the status bar"))); - - diskOpen->setStatusText( i18n( _("Opens a disk") ) ); - streamOpen->setStatusText( i18n( _("Opens a network stream") ) ); - backward->setStatusText( i18n( _("Backward") ) ); - stop->setStatusText( i18n( _("Stops playback") ) ); - play->setStatusText( i18n( _("Starts playback") ) ); - pause->setStatusText( i18n( _("Pauses playback") ) ); - slow->setStatusText( i18n( _("Slow") ) ); - fast->setStatusText( i18n( _("Fast") ) ); - prev->setStatusText( i18n( _("Prev") ) ); - next->setStatusText( i18n( _("Next") ) ); - // use the absolute path to your ktestui.rc file for testing purpose in createGUI(); - char *psz_uifile = config_GetPsz( p_intf, "kde-uirc" ); - createGUI( psz_uifile ); -// createGUI( "./modules/gui/kde/ui.rc" ); -} - -void KInterface::initStatusBar() -{ - /////////////////////////////////////////////////////////////////// - // STATUSBAR - // TODO: add your own items you need for displaying current application status. - statusBar()->insertItem(i18n(_("Ready.")), ID_STATUS_MSG, 1, false); - statusBar()->setItemAlignment( ID_STATUS_MSG, AlignLeft | AlignVCenter ); - statusBar()->insertItem( "0:00:00", ID_DATE, 0, true ); -} - -///////////////////////////////////////////////////////////////////// -// SLOT IMPLEMENTATION -///////////////////////////////////////////////////////////////////// -void KInterface::slotShowMessages() -{ - p_messagesWindow->show(); -} - -void KInterface::slotShowInfo() -{ - if ( p_intf->p_sys->p_input ) - { - new KInfoWindow(p_intf, p_intf->p_sys->p_input); - } -} - -void KInterface::slotFileOpen() -{ - playlist_t *p_playlist; - - slotStatusMsg( i18n( _("Opening file...") ) ); - KURL url=KFileDialog::getOpenURL( QString::null, - i18n( "*|All files" ), this, i18n( _("Open File...") ) ); - - if( !url.isEmpty() ) - { - p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - fileOpenRecent->addURL( url ); - playlist_Add( p_playlist, url.path(), url.path(), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - vlc_object_release( p_playlist ); - } - } - - slotStatusMsg( i18n( _("Ready.") ) ); -} - -void KInterface::slotFileOpenRecent(const KURL& url) -{ - slotStatusMsg(i18n(_("Opening file..."))); - slotStatusMsg(i18n(_("Ready."))); -} - -void KInterface::slotFileQuit() -{ - slotStatusMsg(i18n(_("Exiting..."))); - p_intf->p_vlc->b_die = VLC_TRUE; - slotStatusMsg(i18n(_("Ready."))); -} - -void KInterface::slotViewToolBar() -{ - slotStatusMsg(i18n(_("Toggling toolbar..."))); - /////////////////////////////////////////////////////////////////// - // turn Toolbar on or off - if(!viewToolBar->isChecked()) - { - toolBar("mainToolBar")->hide(); - } - else - { - toolBar("mainToolBar")->show(); - } - - slotStatusMsg(i18n(_("Ready."))); -} - -void KInterface::slotViewStatusBar() -{ - slotStatusMsg(i18n(_("Toggle the status bar..."))); - /////////////////////////////////////////////////////////////////// - //turn Statusbar on or off - if(!viewStatusBar->isChecked()) - { - statusBar()->hide(); - } - else - { - statusBar()->show(); - } - - slotStatusMsg(i18n(_("Ready."))); -} - -void KInterface::slotShowPreferences() -{ - // Do something - KPreferences(this->p_intf, "main", this, "preferences"); -} - -void KInterface::slotStatusMsg(const QString &text) -{ - /////////////////////////////////////////////////////////////////// - // change status message permanently - statusBar()->clear(); - statusBar()->changeItem(text, ID_STATUS_MSG); -} - -void KInterface::slotManage() -{ - p_messagesWindow->update(); -// p_intf->p_sys->p_app->processEvents(); - vlc_mutex_lock( &p_intf->change_lock ); - - /* Update the input */ - if( p_intf->p_sys->p_input == NULL ) - { - p_intf->p_sys->p_input = (input_thread_t *) - vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); - if ( p_intf->p_sys->p_input ) - { - languages->setEnabled( true ); - subtitles->setEnabled( true ); - info->setEnabled( true ); - } - - } - else if( p_intf->p_sys->p_input->b_dead ) - { - vlc_object_release( p_intf->p_sys->p_input ); - p_intf->p_sys->p_input = NULL; - languages->setEnabled( false ); - subtitles->setEnabled( false ); - info->setEnabled( false ); - } - - /* If the "display popup" flag has changed */ - if( p_intf->b_menu_change ) - { - fTitleMenu->popup( ( QCursor::pos() ) ); - p_intf->b_menu_change = 0; - } - - if( p_intf->p_sys->p_input ) - { - input_thread_t *p_input = p_intf->p_sys->p_input; - - vlc_mutex_lock( &p_input->stream.stream_lock ); - if( !p_input->b_die ) - { - /* New input or stream map change */ - if( p_input->stream.b_changed ) - { - // E_(GtkModeManage)( p_intf ); - //GtkSetupMenus( p_intf ); - slotUpdateLanguages(); - - p_intf->p_sys->b_playing = 1; - p_input->stream.b_changed = 0; - } - - /* Manage the slider. fSlider->setValue triggers - * slotSliderChanged which needs to grab the stream lock*/ -#define p_area p_input->stream.p_selected_area - if( p_area->i_size ) { - vlc_mutex_unlock( &p_input->stream.stream_lock ); - fSlider->setValue( ( 10000 * p_area->i_tell ) - / p_area->i_size ); - vlc_mutex_lock( &p_input->stream.stream_lock ); - - } -#undef p_area - - // if( p_intf->p_sys->i_part != - // p_input->stream.p_selected_area->i_part ) - //{ - // p_intf->p_sys->b_chapter_update = 1; - //GtkSetupMenus( p_intf ); - //} - } - vlc_mutex_unlock( &p_input->stream.stream_lock ); - - } - - else if( p_intf->p_sys->b_playing && !p_intf->b_die ) - { - //E_(GtkModeManage)( p_intf ); - p_intf->p_sys->b_playing = 0; - } - - if( p_intf->b_die ) - { - p_intf->p_sys->p_app->quit(); - } - - vlc_mutex_unlock( &p_intf->change_lock ); - msleep( 100 ); - -} - -void KInterface::slotSliderMoved( int position ) -{ - if( p_intf->p_sys->p_input ) - { - // XXX is this locking really useful ? - vlc_mutex_lock( &p_intf->change_lock ); - - var_SetFloat( p_intf->p_sys->p_input, "position", - (double)position / 10000.0 ); - vlc_mutex_unlock( &p_intf->change_lock ); - } -} - -void KInterface::slotUpdateLanguages() -{ - - es_descriptor_t * p_spu_es; - es_descriptor_t * p_audio_es; - /* look for selected ES */ - p_audio_es = NULL; - p_spu_es = NULL; - - for( unsigned int i = 0 ; - i < p_intf->p_sys->p_input->stream.i_selected_es_number ; - i++ - ) - { - if( p_intf->p_sys->p_input->stream.pp_selected_es[i]->i_cat - == AUDIO_ES ) - { - p_audio_es = p_intf->p_sys->p_input->stream.pp_selected_es[i]; - } - - if( p_intf->p_sys->p_input->stream.pp_selected_es[i]->i_cat == SPU_ES ) - { - p_spu_es = p_intf->p_sys->p_input->stream.pp_selected_es[i]; - } - } - languages->setEnabled( false ); - subtitles->setEnabled( false ); - languageCollection->clear(); - subtitleCollection->clear(); - languages->popupMenu()->clear(); - subtitles->popupMenu()->clear(); - /* audio menus */ - /* find audio root menu */ - languageMenus( languages, p_audio_es, AUDIO_ES ); - - /* sub picture menus */ - /* find spu root menu */ - languageMenus( subtitles, p_spu_es, SPU_ES ); - -} - - -/* - * called with stream lock - */ -void KInterface::languageMenus(KActionMenu *root, es_descriptor_t *p_es, - int i_cat) -{ - int i_item = 0; - if ( i_cat != AUDIO_ES ) - { - KLanguageMenuAction *p_item = - new KLanguageMenuAction( p_intf, _( "Off" ), 0, this ); - subtitleCollection->insert( p_item ); - root->insert( p_item ); - root->insert( new KActionSeparator( this ) ); - p_item->setExclusiveGroup( QString().sprintf( "%d", i_cat ) ); - p_item->setChecked( p_es == 0 ); - } - -#define ES p_intf->p_sys->p_input->stream.pp_es[i] - /* create a set of language buttons and append them to the container */ - for( unsigned int i = 0 ; - i < p_intf->p_sys->p_input->stream.i_es_number ; - i++ ) - { - if( ( ES->i_cat == i_cat ) && - ( !ES->p_pgrm || - ES->p_pgrm == - p_intf->p_sys->p_input->stream.p_selected_program ) ) - { - i_item++; - QString name = p_intf->p_sys->p_input->stream.pp_es[i]->psz_desc; - if( name.isEmpty() ) - { - name.sprintf( "Language %d", i_item ); - } - KLanguageMenuAction *p_item; - if ( i_cat == AUDIO_ES ) - { - p_item = new KLanguageMenuAction( p_intf, name, ES, - this ); - languageCollection->insert(p_item); - } - else - { - p_item = new KLanguageMenuAction( p_intf, name, ES, - this ); - subtitleCollection->insert(p_item); - } - p_item->setExclusiveGroup( QString().sprintf( "%d", i_cat ) ); - root->insert( p_item ); - - if( p_es == p_intf->p_sys->p_input->stream.pp_es[i] ) - { - /* don't lose p_item when we append into menu */ - //p_item_active = p_item; - p_item->setChecked( true ); - } - connect( p_item, SIGNAL( toggled( bool, es_descriptor_t * ) ), - this, SLOT( slotSetLanguage( bool, es_descriptor_t * ) )); - - } - } - - root->setEnabled( true ); -} - - -void KInterface::slotSetLanguage( bool on, es_descriptor_t *p_es ) -{ - if( p_es ) - var_SetInteger( p_intf->p_sys->p_input, "audio-es", p_es->i_id ); - else - var_SetInteger( p_intf->p_sys->p_input, "audio-es", -1 ); -} - -void KInterface::slotSliderChanged( int position ) -{ - if( p_intf->p_sys->p_input != NULL ) - { - char psz_time[ MSTRTIME_MAX_SIZE ]; - int64_t i_seconds; - - i_seconds = var_GetTime( p_intf->p_sys->p_input, "time" ) / I64C(1000000 ); - secstotimestr( psz_time, i_seconds ); - - statusBar()->changeItem( psz_time, ID_DATE ); - } -} - -void KInterface::slotOpenDisk() -{ - playlist_t *p_playlist; - int r = fDiskDialog->exec(); - if ( r ) - { - // Build source name - QString source; - source += fDiskDialog->type(); - source += ':'; - source += fDiskDialog->device(); - - source += '@'; - source += fDiskDialog->title(); - source += ','; - source += fDiskDialog->chapter(); - - p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - // add it to playlist - playlist_Add( p_playlist, source.latin1(), source.latin1(), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - vlc_object_release( p_playlist ); - } - } -} - -void KInterface::slotOpenStream() -{ - playlist_t *p_playlist; - int r = fNetDialog->exec(); - if ( r ) - { - // Build source name - QString source; - source += fNetDialog->protocol(); - source += "://"; - source += fNetDialog->server(); - source += ":"; - source += QString().setNum( fNetDialog->port() ); - - p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - // add it to playlist - playlist_Add( p_playlist, source.latin1(), source.latin1(), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - vlc_object_release( p_playlist ); - } - } -} - -void KInterface::slotPlay() -{ - if( p_intf->p_sys->p_input ) - { - var_SetInteger( p_intf->p_sys->p_input, "state", PLAYING_S ); - } -} - -void KInterface::slotPause() -{ - if ( p_intf->p_sys->p_input ) - { - var_SetInteger( p_intf->p_sys->p_input, "state", PAUSE_S ); - } -} - -void KInterface::slotStop() -{ - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - playlist_Stop( p_playlist ); - vlc_object_release( p_playlist ); - } -} - -void KInterface::slotBackward() -{ - msg_Err( p_intf, "KInterface::slotBackward() - Unimplemented" ); -} - -void KInterface::slotPrev() -{ - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - playlist_Prev( p_playlist ); - vlc_object_release( p_playlist ); - } -} - -void KInterface::slotNext() -{ - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist ) - { - playlist_Next( p_playlist ); - vlc_object_release( p_playlist ); - } -} - -void KInterface::slotSlow() -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetVoid( p_intf->p_sys->p_input, "rate-slower" ); - } -} - -void KInterface::slotFast() -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetVoid( p_intf->p_sys->p_input, "rate-faster" ); - } -} - -void KInterface::dragEnterEvent( QDragEnterEvent *event ) -{ - event->accept( QUriDrag::canDecode( event ) ); -} - -void KInterface::dropEvent( QDropEvent *event ) -{ - KURL::List urlList; - - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } - - if ( KURLDrag::decode( event, urlList ) ) - { - for ( KURL::List::ConstIterator i = urlList.begin(); i != urlList.end(); i++ ) - { - // XXX add a private function to add a KURL with checking - // actually a whole class for core abstraction would be neat - if( !(*i).isEmpty() ) - { - fileOpenRecent->addURL( *i ); - playlist_Add( p_playlist, (*i).path(), (*i).path(), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - } - } - } - - vlc_object_release( p_playlist ); -} diff --git a/modules/gui/kde/interface.h b/modules/gui/kde/interface.h deleted file mode 100644 index 59534e6163..0000000000 --- a/modules/gui/kde/interface.h +++ /dev/null @@ -1,168 +0,0 @@ -/*************************************************************************** - interface.h - description - ------------------- - begin : Sun Mar 25 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#ifndef _KDE_INTERFACE_H_ -#define _KDE_INTERFACE_H_ - -#include "common.h" - -#include -#include -#include -#include -#include -#include -#include -#include "messages.h" -class KThread; - -class KDiskDialog; -class KNetDialog; -class KRecentFilesAction; -class KTitleMenu; -class KToggleAction; -class KVLCSlider; - -/**Main Window for the KDE vlc interface - *@author andres - */ - -class KInterface : public KMainWindow -{ - Q_OBJECT - public: - KInterface(intf_thread_t *p_intf, QWidget *parent=0, - const char *name="VLC"); - ~KInterface(); - - public slots: - /** open a file and load it into the document*/ - void slotFileOpen(); - /** opens a file from the recent files menu */ - void slotFileOpenRecent(const KURL& url); - /** closes all open windows by calling close() on each - * memberList item until the list is empty, then quits the - * application. If queryClose() returns false because the - * user canceled the saveModified() dialog, the closing - * breaks. - */ - void slotFileQuit(); - void slotShowPreferences(); - - /** toggles the toolbar - */ - void slotViewToolBar(); - /** toggles the statusbar - */ - void slotViewStatusBar(); - /** changes the statusbar contents for the standard label - * permanently, used to indicate current actions. - * @param text the text that is displayed in the statusbar - */ - void slotStatusMsg( const QString &text ); - void slotShowMessages(); - void slotShowInfo(); - void slotSetLanguage( bool, es_descriptor_t * ); - - protected: - /** initializes the KActions of the application */ - void initActions(); - /** sets up the statusbar for the main window by initialzing a statuslabel. - */ - void initStatusBar(); - - virtual void dragEnterEvent( QDragEnterEvent *event ); - virtual void dropEvent( QDropEvent *event ); - - private slots: - /** we use this to manage the communication with the vlc core */ - void slotManage(); - - /** this slot is called when we drag the position seek bar */ - void slotSliderMoved( int ); - - /** called every time the slider changes values */ - void slotSliderChanged( int position ); - - void slotUpdateLanguages(); - - void slotOpenDisk(); - void slotOpenStream(); - - void slotBackward(); - void slotStop(); - void slotPlay(); - void slotPause(); - void slotSlow(); - void slotFast(); - void slotPrev(); - void slotNext(); - - private: - void languageMenus( KActionMenu *, es_descriptor_t *, int ); - - intf_thread_t *p_intf; - KMessagesWindow *p_messagesWindow; - - /** to call p_intf->pf_manage every now and then */ - QTimer *fTimer; - - /** slider which works well with user movement */ - KVLCSlider *fSlider; - - /** open dvd/vcd */ - KDiskDialog *fDiskDialog; - - /** open net stream */ - KNetDialog *fNetDialog; - - KTitleMenu *fTitleMenu; - - // KAction pointers to enable/disable actions - KAction *fileOpen; - KAction *diskOpen; - KAction *streamOpen; - KRecentFilesAction *fileOpenRecent; - KAction *fileQuit; - KToggleAction *viewToolBar; - KToggleAction *viewStatusBar; - KAction *backward; - KAction *stop; - KAction *play; - KAction *pause; - KAction *slow; - KAction *fast; - KAction *prev; - KAction *next; - KAction *messages; - KAction *preferences; - KAction *info; - KActionMenu *languages; - KActionMenu *subtitles; - KActionCollection *languageCollection; - KActionCollection *subtitleCollection; - KActionMenu *program; - KActionMenu *title; - KActionMenu *chapter; -}; - -/***************************************************************************** - * intf_sys_t: description and status of KDE interface - *****************************************************************************/ -struct intf_sys_t -{ - KApplication *p_app; - KInterface *p_window; - KAboutData *p_about; - int b_playing; - - input_thread_t *p_input; - msg_subscription_t *p_msg; -}; - -#endif /* _KDE_INTERFACE_H_ */ diff --git a/modules/gui/kde/kde.cpp b/modules/gui/kde/kde.cpp deleted file mode 100644 index 2f9398caea..0000000000 --- a/modules/gui/kde/kde.cpp +++ /dev/null @@ -1,134 +0,0 @@ -/***************************************************************************** - * kde.cpp : KDE plugin for vlc - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Andres Krapf Sun Mar 25 2001 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include "common.h" - -#include "interface.h" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -/***************************************************************************** - * The local class and prototypes - *****************************************************************************/ -class KInterface; -class KAboutData; - -static int open( vlc_object_t * p_this ); -static void close( vlc_object_t * p_this ); -static void run(intf_thread_t *p_intf); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -vlc_module_begin(); - /* int i = getenv( "DISPLAY" ) == NULL ? 8 : 85; */ - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - set_description( _("KDE interface") ); - add_file( "kde-uirc", DATA_PATH "/ui.rc", NULL, N_( "path to ui.rc file" ), NULL, VLC_TRUE ); - set_capability( "interface", 0 ); /* 0 used to be i, disabled because kvlc not maintained */ - set_program( "kvlc" ); - set_callbacks( open, close ); -vlc_module_end(); - -/***************************************************************************** - * KThread::open: initialize and create window - *****************************************************************************/ -static int open(vlc_object_t *p_this) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return( 1 ); - } - - p_intf->pf_run = run; - return ( 0 ); -} - -/***************************************************************************** - * KThread::close: destroy interface window - *****************************************************************************/ -static void close(vlc_object_t *p_this) -{ - intf_thread_t *p_intf = (intf_thread_t *)p_this; - if( p_intf->p_sys->p_input ) - { - vlc_object_release( p_intf->p_sys->p_input ); - } - - delete p_intf->p_sys->p_app; - delete p_intf->p_sys->p_about; - msg_Unsubscribe(p_intf, p_intf->p_sys->p_msg); - free( p_intf->p_sys ); -} - -/***************************************************************************** - * KThread::run: KDE thread - ***************************************************************************** - * This part of the interface is in a separate thread so that we can call - * exec() from within it without annoying the rest of the program. - *****************************************************************************/ -void run(intf_thread_t *p_intf) -{ - p_intf->p_sys->p_about = - new KAboutData( "kvlc", I18N_NOOP("Kvlc"), VERSION, - _("This is the VLC media player, a DVD, MPEG and DivX player. It can " - "play MPEG and MPEG2 files from a file or from a network source."), - KAboutData::License_GPL, - _("(c) 1996-2004 the VideoLAN team"), - 0, 0, ""); - - p_intf->p_sys->p_about->addAuthor( "the VideoLAN team", 0, - "" ); - - int argc = 5; - char *argv[] = { "vlc", "--icon", DATA_PATH "/kvlc32x32.png", "--miniicon", DATA_PATH "/kvlc16x16.png" }; - KCmdLineArgs::init( argc, argv, p_intf->p_sys->p_about ); - - /* Subscribe to message queue */ - p_intf->p_sys->p_msg = msg_Subscribe( p_intf ); - - p_intf->p_sys->p_app = new KApplication(); - p_intf->p_sys->p_window = new KInterface(p_intf); - p_intf->p_sys->p_window->setCaption( VOUT_TITLE " (KDE interface)" ); - - p_intf->p_sys->p_input = NULL; - - p_intf->p_sys->p_window->show(); - p_intf->p_sys->p_app->exec(); -} - diff --git a/modules/gui/kde/languagemenu.cpp b/modules/gui/kde/languagemenu.cpp deleted file mode 100644 index a6530b7929..0000000000 --- a/modules/gui/kde/languagemenu.cpp +++ /dev/null @@ -1,42 +0,0 @@ -/***************************************************************************** - * languagemenu.cpp: the KLanguageMenuAction class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include "languagemenu.h" - -KLanguageMenuAction::KLanguageMenuAction( intf_thread_t *p_intf, const QString &text, es_descriptor_t * p_es, QObject *parent) : KRadioAction( text,0,parent), p_es(p_es), p_intf(p_intf) -{ - ; -} - -void KLanguageMenuAction::setChecked( bool on ) -{ - if ( on != isChecked() ) - { - emit toggled( on, p_es ); - KRadioAction::setChecked( on ); - } -} - -KLanguageMenuAction::~KLanguageMenuAction() -{ -} diff --git a/modules/gui/kde/languagemenu.h b/modules/gui/kde/languagemenu.h deleted file mode 100644 index 70bce07582..0000000000 --- a/modules/gui/kde/languagemenu.h +++ /dev/null @@ -1,39 +0,0 @@ -/***************************************************************************** - * languagemenu.h: the KLanguageMenuAction class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include -#include "common.h" -class KLanguageMenuAction : public KRadioAction -{ - Q_OBJECT -public: - KLanguageMenuAction(intf_thread_t*, const QString&, es_descriptor_t *, QObject *); - ~KLanguageMenuAction(); -signals: - void toggled( bool, es_descriptor_t *); -public slots: - void setChecked( bool ); -private: - es_descriptor_t *p_es; - intf_thread_t *p_intf; -}; diff --git a/modules/gui/kde/menu.cpp b/modules/gui/kde/menu.cpp deleted file mode 100644 index e1ca639c99..0000000000 --- a/modules/gui/kde/menu.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/*************************************************************************** - menu.cpp - description - ------------------- - begin : Thu Apr 12 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#include "interface.h" -#include "menu.h" - -#include -#include - -KTitleMenu::KTitleMenu( intf_thread_t *p_intf, QWidget *parent, const char *name ) : KPopupMenu( parent, name ) -{ - fInterfaceThread = p_intf; - connect( this, SIGNAL( aboutToShow() ), this, SLOT( regenerateSlot() ) ); - fLanguageList = new KActionMenu( "Language", 0, this ); -} - -KTitleMenu::~KTitleMenu() -{ -} - -void KTitleMenu::regenerateSlot() -{ - // removal of elements and disconnection of signal/slots happen transparently on delete - delete fLanguageList; - fLanguageList = new KActionMenu( "Language", 0, this ); - - int i_item = 0; - vlc_mutex_lock( &fInterfaceThread->p_sys->p_input->stream.stream_lock ); - - for( unsigned int i = 0 ; - i < fInterfaceThread->p_sys->p_input->stream.i_es_number ; - i++ ) - { - if( fInterfaceThread->p_sys->p_input->stream.pp_es[i]->i_cat /* == i_cat */ ) - { - i_item++; - QString language( fInterfaceThread->p_sys->p_input->stream.pp_es[i]->psz_desc ); - if ( QString::null == language ) - { - language += i18n( "Language" ); - language += " " + i_item; - } - KRadioAction *action = new KRadioAction( language, 0, this, "language_action" ); - fLanguageList->insert( action ); - - if( /* p_es == */ fInterfaceThread->p_sys->p_input->stream.pp_es[i] ) - { - /* don't lose p_item when we append into menu */ - //p_item_active = p_item; - } - } - } - - vlc_mutex_unlock( &fInterfaceThread->p_sys->p_input->stream.stream_lock ); - -#if 0 - /* link the new menu to the menubar item */ - gtk_menu_item_set_submenu( GTK_MENU_ITEM( p_root ), p_menu ); - - /* acitvation will call signals so we can only do it - * when submenu is attached to menu - to get intf_window */ - if( p_item_active != NULL ) - { - gtk_check_menu_item_set_active( GTK_CHECK_MENU_ITEM( p_item_active ), - TRUE ); - } -#endif - - /* be sure that menu is sensitive if non empty */ - if ( i_item > 0 ) - { - fLanguageList->setEnabled( true ); - } -} - -/** this method is called when the user selects a language */ -void KTitleMenu::languageSelectedSlot() -{ -} diff --git a/modules/gui/kde/menu.h b/modules/gui/kde/menu.h deleted file mode 100644 index 480d882597..0000000000 --- a/modules/gui/kde/menu.h +++ /dev/null @@ -1,44 +0,0 @@ -/*************************************************************************** - menu.h - description - ------------------- - begin : Thu Apr 12 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#ifndef _KDE_MENU_H_ -#define _KDE_MENU_H_ - -#include "common.h" - -#include -#include - -class KActionMenu; - -/** - *@author andres - */ - -class KTitleMenu : public KPopupMenu -{ - Q_OBJECT - public: - KTitleMenu( intf_thread_t *p_intf, QWidget *parent=0, - const char *name=0 ); - ~KTitleMenu(); - - private: - intf_thread_t *fInterfaceThread; - KActionMenu *fLanguageList; - - private slots: // Private slots - /** this method regenerates the popup menu */ - void regenerateSlot(); - - /** this method is called when the user selects a language */ - void languageSelectedSlot(); - -}; - -#endif /* _KDE_MENU_H_ */ diff --git a/modules/gui/kde/messages.cpp b/modules/gui/kde/messages.cpp deleted file mode 100644 index 238e714fc2..0000000000 --- a/modules/gui/kde/messages.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/***************************************************************************** - * messages.cpp: the KMessagesWindow class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include "messages.h" -#include -#include -#include -#include - -KMessagesWindow::KMessagesWindow( intf_thread_t * p_intf, msg_subscription_t *p_msg ) : - KDialogBase( Plain, _( "Messages" ), Ok, Ok, 0, 0, false) -{ -// clearWFlags(~0); -// setWFlags(WType_TopLevel); - setSizeGripEnabled(true); - this->p_intf = p_intf; - this->p_msg = p_msg; - QFrame *page = plainPage(); - QVBoxLayout *toplayout = new QVBoxLayout( page); -// QScrollView *sv = new QScrollView(page); -// sv->setResizePolicy(QScrollView::AutoOneFit); -// sv->setFrameStyle(QScrollView::NoFrame); -// toplayout->addWidget(sv); -// QVBox *category_table = new QVBox(sv->viewport()); -// sv->addChild(category_table); -// toplayout->addStretch(10); - QVBox *category_table = new QVBox(page); - toplayout->addWidget(category_table); - toplayout->setResizeMode(QLayout::FreeResize); - category_table->setSpacing(spacingHint()); - resize(300,400); - new QLabel( _("Messages:"), category_table ); - text = new QTextView( category_table ); - text->setPaper( QBrush( black ) ); -// clearWFlags(WStyle_DialogBorder|WStyle_NoBorder); -// setWFlags(WStyle_NormalBorder|WStyle_Customize); -// connect(this, SIGNAL(okClicked()), this, SLOT(accept())); -} - -KMessagesWindow::~KMessagesWindow() -{ - ; -} - -void KMessagesWindow::update() -{ - int i_stop, i_start; - /* Update the log window */ - vlc_mutex_lock( p_msg->p_lock ); - i_stop = *p_msg->pi_stop; - vlc_mutex_unlock( p_msg->p_lock ); - - if( p_msg->i_start != i_stop ) - { - static const char * ppsz_type[4] = { ": ", " error: ", " warning: ", - " debug: " }; - static const char * ppsz_color[4] = { - "", - "", - "", - "" - }; - for( i_start = p_msg->i_start; - i_start != i_stop; - i_start = (i_start+1) % VLC_MSG_QSIZE ) - { - text->append( QString("") + - p_msg->p_msg[i_start].psz_module + - ppsz_type[p_msg->p_msg[i_start].i_type] + - "" + - ppsz_color[p_msg->p_msg[i_start].i_type] + - p_msg->p_msg[i_start].psz_msg + "" ); - } - - vlc_mutex_lock( p_msg->p_lock ); - p_msg->i_start = i_start; - vlc_mutex_unlock( p_msg->p_lock ); - - } -} diff --git a/modules/gui/kde/messages.h b/modules/gui/kde/messages.h deleted file mode 100644 index 876375eb89..0000000000 --- a/modules/gui/kde/messages.h +++ /dev/null @@ -1,42 +0,0 @@ -/***************************************************************************** - * messages.h: the KMessagesWindow class - ***************************************************************************** - * Copyright (C) 2001-2003 the VideoLAN team - * $Id$ - * - * Author: Sigmund Augdal - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -#include -#include -#include "common.h" - -class KMessagesWindow : public KDialogBase -{ - Q_OBJECT -public: - KMessagesWindow( intf_thread_t*, msg_subscription_t * ); - ~KMessagesWindow(); - -public slots: - void update(); -private: - intf_thread_t* p_intf; - QTextView* text; - msg_subscription_t *p_msg; -}; - diff --git a/modules/gui/kde/net.cpp b/modules/gui/kde/net.cpp deleted file mode 100644 index 5b2493c0a1..0000000000 --- a/modules/gui/kde/net.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/*************************************************************************** - net.cpp - description - ------------------- - begin : Mon Apr 9 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#include "net.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -KNetDialog::KNetDialog( QWidget *parent, const char *name ) - :KDialogBase( parent, name, true, - QString::null, Ok|Cancel, Ok, true ) -{ - QVBox *pageVBox = makeVBoxMainWidget(); - - QHBox *layout = new QHBox( pageVBox ); - layout->setSpacing( 5 ); - fButtonGroup = new QVButtonGroup( _("Protocol"), layout ); - fTSButton = new QRadioButton( "TS", fButtonGroup); - fTSButton->setChecked( true ); - fRTPButton = new QRadioButton( "RTP", fButtonGroup); - fRTPButton->setEnabled( false ); - fHTTPButton = new QRadioButton( "HTTP", fButtonGroup); - fHTTPButton->setEnabled( false ); - - QVGroupBox *serverVBox = new QVGroupBox( _("Starting position"), layout ); - - QHBox *titleHBox = new QHBox( serverVBox ); - new QLabel( _("Address "), titleHBox ); - fAddress = new KLineEdit( "vls", titleHBox ); - QHBox *portHBox = new QHBox( serverVBox ); - new QLabel( _("Port "), portHBox ); - fPort = new QSpinBox( 0, 65535, 1, portHBox ); -} - -KNetDialog::~KNetDialog() -{ -} - -QString KNetDialog::protocol() const -{ - if ( fTSButton->isChecked() ) - { - return ( QString( "ts" ) ); - } - else if ( fRTPButton->isChecked() ) - { - return ( QString( "rtp" ) ); - } - else - { - return ( QString( "http" ) ); - } -} - -QString KNetDialog::server() const -{ - return ( fAddress->text() ); -} - -int KNetDialog::port() const -{ - return ( fPort->value() ); -} diff --git a/modules/gui/kde/net.h b/modules/gui/kde/net.h deleted file mode 100644 index 98571b37b8..0000000000 --- a/modules/gui/kde/net.h +++ /dev/null @@ -1,46 +0,0 @@ -/*************************************************************************** - net.h - description - ------------------- - begin : Mon Apr 9 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ - -#ifndef _KDE_NET_H_ -#define _KDE_NET_H_ - -#include "common.h" -#include -#include - -class QVButtonGroup; -class QRadioButton; -class QSpinBox; -class KLineEdit; - -/** - *@author andres - */ - -class KNetDialog : public KDialogBase -{ - Q_OBJECT - public: - KNetDialog(QWidget *parent=0, const char *name=0); - ~KNetDialog(); - - QString protocol() const; - QString server() const; - int port() const; - - private: - QVButtonGroup *fButtonGroup; - QRadioButton *fTSButton; - QRadioButton *fRTPButton; - QRadioButton *fHTTPButton; - KLineEdit *fAddress; - QSpinBox *fPort; - -}; - -#endif /* _KDE_NET_H_ */ diff --git a/modules/gui/kde/pluginsbox.cpp b/modules/gui/kde/pluginsbox.cpp deleted file mode 100644 index f6da09c8ce..0000000000 --- a/modules/gui/kde/pluginsbox.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/***************************************************************************** - * pluginbox.cpp: the pluginbox class - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Sigmund Augdal Mon Aug 12 2002 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ -#include "pluginsbox.h" -#include "preferences.h" - -#include -#include -#include -#include -#include -#include - -KPluginsBox::KPluginsBox(intf_thread_t *p_intf, - QString text, QString value, QWidget *parent, - int spacing, KPreferences *pref) : - QGroupBox( 1, Vertical, text, parent ) -{ - owner = pref; - this->p_intf = p_intf; - QVBox *item_vbox = new QVBox( this ); - item_vbox->setSpacing(spacing); - - listView = new KListView(item_vbox); - listView->setAllColumnsShowFocus(true); - listView->addColumn(_("Name")); - listView->addColumn(_("Description")); - KButtonBox *item_bbox = new KButtonBox(item_vbox); - selectButton = item_bbox->addButton( _("Select") ); - QHBox *item_hbox = new QHBox(item_vbox); - item_hbox->setSpacing(spacing); - new QLabel( _("Selected:"), item_hbox ); - line = new KLineEdit( value, item_hbox ); - connect(selectButton, SIGNAL(clicked()), this, SLOT(selectClicked())); - connect(listView, SIGNAL(selectionChanged( QListViewItem *)), - this, SLOT( selectionChanged( QListViewItem *))); -} - -KPluginsBox::~KPluginsBox() -{ - ; -} - -QListView* KPluginsBox::getListView() -{ - return listView; -} - -void KPluginsBox::selectClicked() -{ - if (listView->selectedItem()) { - line->setText(listView->selectedItem()->text(0)); - emit selectionChanged(listView->selectedItem()->text(0)); - } -} - -void KPluginsBox::selectionChanged( QListViewItem *item ) -{ - selectButton->setEnabled(true); -} diff --git a/modules/gui/kde/pluginsbox.h b/modules/gui/kde/pluginsbox.h deleted file mode 100644 index 1dae9243d6..0000000000 --- a/modules/gui/kde/pluginsbox.h +++ /dev/null @@ -1,54 +0,0 @@ -/***************************************************************************** - * pluginbox.h: includes for the pluginbox class - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Sigmund Augdal Mon Aug 12 2002 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ -#ifndef _KDE_PLUGINBOX_H_ -#define _KDE_PLUGINBOX_H_ -#include -#include -#include -#include -#include "preferences.h" -class KPluginsBox : public QGroupBox -{ - Q_OBJECT - public: - KPluginsBox(intf_thread_t *p_intf, QString title, QString value, - QWidget *parent, int spacing, KPreferences *pref); - ~KPluginsBox(); - - QListView *getListView(void); - - private slots: - void selectClicked(void); - void selectionChanged( QListViewItem * ); - - signals: - void selectionChanged(const QString &text); - - private: - intf_thread_t *p_intf; - KListView *listView; - QPushButton *selectButton; - KLineEdit *line; - KPreferences *owner; -}; -#endif diff --git a/modules/gui/kde/preferences.cpp b/modules/gui/kde/preferences.cpp deleted file mode 100644 index b681c95668..0000000000 --- a/modules/gui/kde/preferences.cpp +++ /dev/null @@ -1,409 +0,0 @@ -/***************************************************************************** - * preferences.cpp: preferences window for the kde gui - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Sigmund Augdal Mon Aug 12 2002 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "QConfigItem.h" -#include "pluginsbox.h" -#include "preferences.h" - -/* - construct a new configuration window for the given module -*/ -KPreferences::KPreferences(intf_thread_t *p_intf, const char *psz_module_name, - QWidget *parent, const QString &caption) : - KDialogBase ( TreeList, caption, Ok| Apply|Cancel|User1, Ok, parent, - _("VLC preferences"), true, false, i18n(_("&Save")) ) -{ - module_t *p_parser = NULL; - vlc_list_t *p_list; - module_config_t *p_item; - int i_index; - QVBox *category_table = NULL; - QString *category_label; - - this->p_intf = p_intf; - - /* List all modules */ - p_list = vlc_list_find( p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_parser = (module_t *)p_list->p_values[i_index].p_object ; - p_item = p_parser->p_config; - while( p_item && p_item->i_type != CONFIG_HINT_END ) - { - switch( p_item->i_type ) - { - case CONFIG_HINT_CATEGORY: - /* force the content to the top of the page */ - if ( category_table ) - { - QWidget *space = new QWidget( category_table ); - category_table->setStretchFactor( space, 10 ); - category_table = NULL; - } - - /* - * Now we can start taking care of the new category - */ - if( p_item->i_type == CONFIG_HINT_CATEGORY ) - { - category_label = new QString( p_item->psz_text ); - QStringList path; - if ( strcmp( p_parser->psz_object_name, "main" ) ) - { - path += _( "Plugins" ); - path += p_parser->psz_capability; - path += p_parser->psz_object_name; - } - path += *category_label; - QFrame *page = addPage( path ); - QVBoxLayout *toplayout = new QVBoxLayout( page); - QScrollView *sv = new QScrollView(page); - sv->setResizePolicy(QScrollView::AutoOneFit); - sv->setFrameStyle(QScrollView::NoFrame); - toplayout->addWidget(sv); - category_table = new QVBox(sv->viewport()); - sv->addChild(category_table); - category_table->setSpacing(spacingHint()); - } - - break; - - case CONFIG_ITEM_MODULE: - - { - vlc_mutex_lock( p_item->p_lock ); - KPluginsBox *item_frame = - new KPluginsBox( p_intf, p_item->psz_text, - p_item->psz_value ? p_item->psz_value :"", - category_table, - spacingHint(), - this ); - QConfigItem *ci = new QConfigItem(this, - p_item->psz_name, - p_item->i_type, - p_item->psz_value); - connect(item_frame, SIGNAL(selectionChanged(const QString &)), - ci, SLOT(setValue(const QString &))); - - - /* build a list of available plugins */ - for( int i_index = 0; i_index < p_list->i_count; i_index++ ) - { - module_t *p_parser = (module_t *)p_list->p_values[i_index].p_object ; - - if( !strcmp( p_parser->psz_capability, - p_item->psz_type ) ) - { - new QListViewItem(item_frame->getListView(), - p_parser->psz_object_name, - p_parser->psz_longname); - } - } - - vlc_mutex_unlock( p_item->p_lock ); - } - break; - - case CONFIG_ITEM_STRING: - { - QHBox *hb = new QHBox(category_table); - hb->setSpacing(spacingHint()); - new QLabel(p_item->psz_text, hb); - /* add input box with default value */ - vlc_mutex_lock( p_item->p_lock ); - QConfigItem *ci = new QConfigItem(this, p_item->psz_name, - p_item->i_type, - p_item->psz_value ? - p_item->psz_value : ""); - if ( p_item->ppsz_list ) - { - char **ppsz_list = p_item->ppsz_list; - KComboBox *p_combobox = new KComboBox( true, hb ); - QToolTip::add(p_combobox, p_item->psz_longtext); - connect(p_combobox, SIGNAL(activated ( const QString & )), - ci, SLOT(setValue( const QString &))); - while ( *ppsz_list ) - { - p_combobox->insertItem( *ppsz_list ); - if ( !strcmp( *ppsz_list, p_item->psz_value ? - p_item->psz_value : "" ) ) - { -#if KDE_VERSION_MAJOR >= 3 - p_combobox->setCurrentText( *ppsz_list ); -#else - p_combobox->setCurrentItem( p_combobox->count() ); -#endif - } - ppsz_list++; - } - } - else - { - KLineEdit *kl = new KLineEdit( p_item->psz_value ? - p_item->psz_value : "", hb); - connect(kl, SIGNAL(textChanged ( const QString & )), - ci, SLOT(setValue( const QString &))); - QToolTip::add(kl, p_item->psz_longtext); - kl->setMaxLength(40); - } - - vlc_mutex_unlock( p_item->p_lock ); - } - break; - - case CONFIG_ITEM_FILE: - case CONFIG_ITEM_DIRECTORY: - { - QHBox *hb = new QHBox(category_table); - hb->setSpacing(spacingHint()); - new QLabel(p_item->psz_text, hb); - /* add input box with default value */ - vlc_mutex_lock( p_item->p_lock ); - -// KLineEdit *kl = new KLineEdit( p_item->psz_value ? -// p_item->psz_value : "", hb); - QConfigItem *ci = new QConfigItem(this, p_item->psz_name, - p_item->i_type, - p_item->psz_value ? - p_item->psz_value : ""); -// QPushButton *bbrowse = new QPushButton( _("Browse"), hb ); - KURLRequester *kfile = new KURLRequester( p_item->psz_value ? - p_item->psz_value : "", - hb ); - if ( p_item->i_type == CONFIG_ITEM_DIRECTORY ) - { - kfile->fileDialog()->setMode(KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly); - } - connect(kfile, SIGNAL(textChanged ( const QString & )), - ci, SLOT(setValue( const QString &))); - QToolTip::add(kfile, p_item->psz_longtext); - vlc_mutex_unlock( p_item->p_lock ); - } - break; - - case CONFIG_ITEM_INTEGER: - /* add input box with default value */ - { - QHBox *hb = new QHBox(category_table); - hb->setSpacing(spacingHint()); - new QLabel(p_item->psz_text, hb); - QConfigItem *ci = new QConfigItem(this, p_item->psz_name, - p_item->i_type, - p_item->i_value); - if ( p_item->i_min == 0 && p_item->i_max == 0 ) - { - QSpinBox *item_adj = new QSpinBox(-1, 99999, 1, hb); - item_adj->setValue( p_item->i_value ); - connect(item_adj, SIGNAL(valueChanged( int)), - ci, SLOT(setValue(int))); - QToolTip::add(item_adj, p_item->psz_longtext); - } - else - { - KIntNumInput *p_ii = new KIntNumInput( p_item->i_value, hb ); - p_ii->setRange( p_item->i_min, p_item->i_max, 1, true ); - connect( p_ii, SIGNAL( valueChanged( int ) ), - ci, SLOT( setValue( int ) ) ); - QToolTip::add( p_ii, p_item->psz_longtext ); - } - } - break; - - case CONFIG_ITEM_FLOAT: - { - QHBox *hb = new QHBox(category_table); - hb->setSpacing(spacingHint()); - new QLabel(p_item->psz_text, hb); - KDoubleNumInput *kdi= new KDoubleNumInput(p_item->f_value, hb); - if ( p_item->f_min == 0 && p_item->f_max == 0 ) - { - kdi->setRange(-1, 99999, 0.01, false); - } - else - { - kdi->setRange( p_item->f_min, p_item->f_max, 0.01, true ); - } - QConfigItem *ci = new QConfigItem(this, p_item->psz_name, - p_item->i_type, - p_item->f_value); - connect(kdi, SIGNAL(valueChanged(double)), - ci, SLOT(setValue(double))); - QToolTip::add(kdi, p_item->psz_longtext); - } - break; - - case CONFIG_ITEM_BOOL: - - /* add check button */ - { - QCheckBox *bool_checkbutton = - new QCheckBox(QString(p_item->psz_text), category_table); - QConfigItem *ci = new QConfigItem(this, p_item->psz_name, - p_item->i_type, - p_item->i_value); - bool_checkbutton->setChecked(p_item->i_value); - connect(bool_checkbutton, SIGNAL(stateChanged( int)), - ci, SLOT(setValue(int))); - QToolTip::add(bool_checkbutton, p_item->psz_longtext); - - } - break; - - } - - p_item++; - } - } - /* force the content to the top of the page, even on the last page */ - if ( category_table ) - { - QWidget *space = new QWidget( category_table ); - category_table->setStretchFactor( space, 10 ); - category_table = NULL; - } - - - vlc_list_release( p_list ); - - exec(); -} - -/* - empty destructor, qt takes care of this (I think) -*/ -KPreferences::~KPreferences() -{ -} - -/* - return true if the give module is configureable -*/ -bool KPreferences::isConfigureable(QString module) -{ - module_t *p_parser; - vlc_list_t *p_list; - int i_index; - - p_list = vlc_list_find( this->p_intf, VLC_OBJECT_MODULE, FIND_ANYWHERE ); - - for( i_index = 0; i_index < p_list->i_count; i_index++ ) - { - p_parser = (module_t *)p_list->p_values[i_index].p_object ; - - if( !module.compare( p_parser->psz_object_name ) ) - { - bool ret = p_parser->i_config_items != 0; - vlc_list_release( p_list ); - return ret; - } - } - - vlc_list_release( p_list ); - return false; -} - -/* - run when the Apply button is pressed, and by the methods for the ok - and save buttons -*/ -void KPreferences::slotApply() -{ - QObjectList * l = queryList( "QConfigItem" ); - QObjectListIt it( *l ); // iterate over the config items - QObject * obj; - while ( (obj=it.current()) != 0 ) { - ++it; - QConfigItem *p_config = (QConfigItem *)obj; - if ( p_config->changed() ) - { - msg_Dbg( p_intf, const_cast(p_config->name())); - msg_Dbg( p_intf, "%d", p_config->getType()); - - switch( p_config->getType() ) { - - case CONFIG_ITEM_DIRECTORY: - case CONFIG_ITEM_STRING: - case CONFIG_ITEM_FILE: - case CONFIG_ITEM_MODULE: - if (p_config->sValue()) { - config_PutPsz( p_intf, p_config->name(), - strdup(p_config->sValue().latin1())); - } - else { - config_PutPsz( p_intf, p_config->name(), NULL ); - } - break; - case CONFIG_ITEM_INTEGER: - case CONFIG_ITEM_BOOL: - config_PutInt( p_intf, p_config->name(), p_config->iValue() ); - break; - case CONFIG_ITEM_FLOAT: - config_PutFloat( p_intf, p_config->name(), p_config->fValue() ); - break; - } - p_config->resetChanged(); - } - } - delete l; -} - -/* - run when the Ok button is pressed -*/ -void KPreferences::slotOk() -{ - slotApply(); - accept(); -} - -/* - run when the save button is pressed -*/ -void KPreferences::slotUser1() -{ - slotApply(); - config_SaveConfigFile( p_intf, NULL ); -} diff --git a/modules/gui/kde/preferences.h b/modules/gui/kde/preferences.h deleted file mode 100644 index e858283251..0000000000 --- a/modules/gui/kde/preferences.h +++ /dev/null @@ -1,46 +0,0 @@ -/***************************************************************************** - * preferences.h: includes for the preferences window - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Sigmund Augdal Mon Aug 12 2002 - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ -#ifndef _KDE_PREFERENCES_H_ -#define _KDE_PREFERENCES_H_ -#include "common.h" -#include - -#include "QConfigItem.h" -class KPreferences : KDialogBase -{ - Q_OBJECT - public: - KPreferences(intf_thread_t *p_intf, const char *psz_module_name, - QWidget *parent, const QString &caption=QString::null); - ~KPreferences(); - bool isConfigureable(QString module); - - public slots: - void slotApply(); - void slotOk(); - void slotUser1(); - - private: - intf_thread_t *p_intf; -}; -#endif diff --git a/modules/gui/kde/slider.cpp b/modules/gui/kde/slider.cpp deleted file mode 100644 index 9ef5a34b30..0000000000 --- a/modules/gui/kde/slider.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - slider.cpp - description - ------------------- - begin : Sun Mar 25 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ -/*************************************************************************** - shamelessly copied from noatun's excellent interface -****************************************************************************/ - -#include "slider.h" - -KVLCSlider::KVLCSlider(QWidget * parent, const char * name) : - QSlider(parent,name), pressed(false) -{ -} - -KVLCSlider::KVLCSlider(Orientation o, QWidget * parent, const char * name) : - QSlider(o,parent,name), pressed(false) -{ -} - -KVLCSlider::KVLCSlider(int minValue, int maxValue, int pageStep, int value, - Orientation o, QWidget * parent, const char * name) : - QSlider(minValue, maxValue, pageStep, value, o, parent,name), pressed(false) -{ -} - -void KVLCSlider::setValue(int i) -{ - if ( !pressed ) - { - QSlider::setValue( i ); - } -} - -void KVLCSlider::mousePressEvent( QMouseEvent *e ) -{ - if ( e->button() != RightButton ) - { - pressed=true; - QSlider::mousePressEvent( e ); - } -} - -void KVLCSlider::mouseReleaseEvent( QMouseEvent *e ) -{ - pressed=false; - QSlider::mouseReleaseEvent( e ); - emit userChanged( value() ); -} diff --git a/modules/gui/kde/slider.h b/modules/gui/kde/slider.h deleted file mode 100644 index 13cc6e3ec4..0000000000 --- a/modules/gui/kde/slider.h +++ /dev/null @@ -1,45 +0,0 @@ -/*************************************************************************** - slider.h - description - ------------------- - begin : Sun Apr 03 2001 - copyright : (C) 2001 by andres - email : dae@chez.com - ***************************************************************************/ -/*************************************************************************** - shamelessly copied from noatun's excellent interface -****************************************************************************/ -#ifndef _KDE_SLIDER_H_ -#define _KDE_SLIDER_H_ - -#include - -/** - * This slider can be changed by the vlc while not dragged by the user - */ -class KVLCSlider : public QSlider -{ - Q_OBJECT - public: - KVLCSlider(QWidget * parent, const char * name=0); - KVLCSlider(Orientation, QWidget * parent, const char * name=0); - KVLCSlider(int minValue, int maxValue, int pageStep, int value, - Orientation, QWidget * parent, const char * name=0); - - signals: - /** - * emmited only when the user changes the value by hand - */ - void userChanged( int value ); - - public slots: - virtual void setValue( int ); - - protected: - virtual void mousePressEvent( QMouseEvent * e ); - virtual void mouseReleaseEvent( QMouseEvent * e ); - - private: - bool pressed; // set this to true when the user drags the slider -}; - -#endif /* _KDE_SLIDER_H_ */ diff --git a/modules/gui/kde/ui.rc b/modules/gui/kde/ui.rc deleted file mode 100644 index a5f8e651c4..0000000000 --- a/modules/gui/kde/ui.rc +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - - - &File - - - - - &View - - - - - - - - - &Settings - - - - - - - - - - - - - - - - - - - - - - diff --git a/modules/gui/qt/Modules.am b/modules/gui/qt/Modules.am deleted file mode 100644 index 1fa5d3af53..0000000000 --- a/modules/gui/qt/Modules.am +++ /dev/null @@ -1,13 +0,0 @@ -SOURCES_qt = \ - qt.cpp \ - intf.cpp - -nodist_SOURCES_qt = \ - intf.moc.cpp - -noinst_HEADERS += \ - intf.h - -intf.moc.cpp: intf.h - $(MOC) $< -o $@ - diff --git a/modules/gui/qt/intf.cpp b/modules/gui/qt/intf.cpp deleted file mode 100644 index b0ad834d4d..0000000000 --- a/modules/gui/qt/intf.cpp +++ /dev/null @@ -1,508 +0,0 @@ -/***************************************************************************** - * intf.cpp: Qt interface - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* ENOMEM */ -#include /* free() */ -#include /* strerror() */ -#include - -#include "intf.h" - -#define SLIDER_MIN 0x00000 -#define SLIDER_MAX 0x10000 -#define SLIDER_STEP (SLIDER_MAX >> 4) - -/***************************************************************************** - * intf_sys_t: description and status of Qt interface - *****************************************************************************/ -struct intf_sys_t -{ - QApplication *p_app; - IntfWindow *p_window; - - input_thread_t *p_input; -}; - -/***************************************************************************** - * Local prototype - *****************************************************************************/ -static void Run ( intf_thread_t *p_intf ); - -/***************************************************************************** - * Open: initialize and create window - *****************************************************************************/ -int E_(Open) ( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t*) p_this; - char *pp_argv[] = { "" }; - int i_argc = 1; - - /* Allocate instance and initialize some members */ - p_intf->p_sys = (intf_sys_t *)malloc( sizeof( intf_sys_t ) ); - if( p_intf->p_sys == NULL ) - { - msg_Err( p_intf, "out of memory" ); - return 1; - } - - p_intf->pf_run = Run; - - /* Create the C++ objects */ - p_intf->p_sys->p_app = new QApplication( i_argc, pp_argv ); - p_intf->p_sys->p_window = new IntfWindow( p_intf ); - - /* Tell the world we are here */ - p_intf->p_sys->p_window->setCaption( VOUT_TITLE " (Qt interface)" ); - - p_intf->p_sys->p_input = NULL; - - return 0; -} - -/***************************************************************************** - * Close: destroy interface window - *****************************************************************************/ -void E_(Close) ( vlc_object_t *p_this ) -{ - intf_thread_t *p_intf = (intf_thread_t*) p_this; - - if( p_intf->p_sys->p_input ) - { - vlc_object_release( p_intf->p_sys->p_input ); - } - - /* Get rid of the C++ objects */ - delete p_intf->p_sys->p_window; - delete p_intf->p_sys->p_app; - - /* Destroy structure */ - free( p_intf->p_sys ); -} - -/***************************************************************************** - * Run: Qt thread - ***************************************************************************** - * This part of the interface is in a separate thread so that we can call - * exec() from within it without annoying the rest of the program. - *****************************************************************************/ -static void Run( intf_thread_t *p_intf ) -{ - p_intf->p_sys->p_window->show(); - - p_intf->p_sys->p_app->exec(); -} - -/* following functions are local */ - -/***************************************************************************** - * IntfWindow: interface window creator - ***************************************************************************** - * This function creates the interface window, and populates it with a - * menu bar, a toolbar and a slider. - *****************************************************************************/ -IntfWindow::IntfWindow( intf_thread_t *p_intf ) - :QMainWindow( 0 ) -{ - setUsesTextLabel( TRUE ); - - this->p_intf = p_intf; - - /* - * Create the toolbar - */ - - p_toolbar = new QToolBar( this, "toolbar" ); - p_toolbar->setHorizontalStretchable( TRUE ); - - QIconSet * set = new QIconSet(); - QPixmap pixmap = set->pixmap( QIconSet::Automatic, QIconSet::Normal ); - -#define addbut( l, t, s ) new QToolButton( pixmap, l, t, this, s, p_toolbar ); - addbut( "Open", "Open a File", SLOT(FileOpen()) ); - addbut( "Disc", "Open a DVD or VCD", SLOT(Unimplemented()) ); - addbut( "Net", "Select a Network Stream", SLOT(Unimplemented()) ); - p_toolbar->addSeparator(); - addbut( "Back", "Rewind Stream", SLOT(Unimplemented()) ); - addbut( "Stop", "Stop Stream", SLOT(Unimplemented()) ); - addbut( "Play", "Play Stream", SLOT(PlaybackPlay()) ); - addbut( "Pause", "Pause Stream", SLOT(PlaybackPause()) ); - addbut( "Slow", "Play Slower", SLOT(PlaybackSlow()) ); - addbut( "Fast", "Play Faster", SLOT(PlaybackFast()) ); - p_toolbar->addSeparator(); - addbut( "Playlist", "Open Playlist", SLOT(Unimplemented()) ); - addbut( "Prev", "Previous File", SLOT(PlaylistPrev()) ); - addbut( "Next", "Next File", SLOT(PlaylistNext()) ); -#undef addbut - - /* - * Create the menubar - */ - - QPopupMenu * p_tmpmenu = new QPopupMenu( this ); - -#define instmp0( x, y ) p_tmpmenu->insertItem( x, this, y ) -#define instmp1( x, y, a ) p_tmpmenu->insertItem( x, this, y, a ) - menuBar()->insertItem( "&File", p_tmpmenu ); - instmp1( "&Open File...", SLOT(FileOpen()), Key_F3 ); - instmp1( "Open &Disc...", SLOT(Unimplemented()), Key_F4 ); - instmp1( "&Network Stream...", SLOT(Unimplemented()), Key_F5 ); - p_tmpmenu->insertSeparator(); - instmp1( "&Exit", SLOT(FileQuit()), CTRL+Key_Q ); - - p_tmpmenu = new QPopupMenu( this ); - menuBar()->insertItem( "&View", p_tmpmenu ); - instmp0( "&Playlist...", SLOT(Unimplemented()) ); - instmp0( "&Modules...", SLOT(Unimplemented()) ); - - p_tmpmenu = new QPopupMenu( this ); - menuBar()->insertItem( "&Settings", p_tmpmenu ); - instmp0( "&Preferences...", SLOT(Unimplemented()) ); - - p_tmpmenu = new QPopupMenu( this ); - menuBar()->insertItem( "&Help", p_tmpmenu ); - instmp0( "&About...", SLOT(About()) ); - - /* - * Create the popup menu - */ - - p_popup = new QPopupMenu( /* floating menu */ ); - -#define inspop0( x, y ) p_popup->insertItem( x, this, y ) -#define inspop1( x, y, a ) p_popup->insertItem( x, this, y, a ) - inspop0( "&Play", SLOT(PlaybackPlay()) ); - inspop0( "Pause", SLOT(PlaybackPause()) ); - inspop0( "&Slow", SLOT(PlaybackSlow()) ); - inspop0( "&Fast", SLOT(PlaybackFast()) ); - p_popup->insertSeparator(); - inspop1( "&Open File...", SLOT(FileOpen()), Key_F3 ); - inspop1( "Open &Disc...", SLOT(Unimplemented()), Key_F4 ); - inspop1( "&Network Stream...", SLOT(Unimplemented()), Key_F5 ); - p_popup->insertSeparator(); - inspop0( "&About...", SLOT(About()) ); - inspop0( "&Exit", SLOT(FileQuit()) ); - - /* Activate the statusbar */ - statusBar(); - - /* Add the vertical box */ - QVBox * p_vbox = new QVBox( this ); - setCentralWidget( p_vbox ); - - /* The horizontal box */ - QHBox * p_hbox = new QHBox( p_vbox ); - - /* The date label */ - p_date = new QLabel( p_hbox ); - p_date->setAlignment( AlignHCenter | AlignVCenter ); - p_date->setText( "-:--:--" ); - - /* The status label */ - QLabel *p_label = new QLabel( p_hbox ); - p_label->setAlignment( AlignHCenter | AlignVCenter ); - p_label->setText( "Status: foo" ); - - /* The bar label */ - p_label = new QLabel( p_hbox ); - p_label->setAlignment( AlignHCenter | AlignVCenter ); - p_label->setText( "Bar: baz quux" ); - - /* Create the slider and connect it to the date label */ - p_slider = new IntfSlider( p_intf, p_vbox ); - - connect( p_slider, SIGNAL(valueChanged(int)), - this, SLOT(DateDisplay(int)) ); - - /* The timer */ - QTimer *p_timer = new QTimer( this ); - connect( p_timer, SIGNAL(timeout()), this, SLOT(Manage()) ); - p_timer->start( INTF_IDLE_SLEEP / 1000 ); - - /* Everything worked fine */ - resize( 620, 30 ); -} - -/***************************************************************************** - * ~IntfWindow: interface window destructor - ***************************************************************************** - * This function is called when the interface window is destroyed. - *****************************************************************************/ -IntfWindow::~IntfWindow( void ) -{ - /* FIXME: remove everything cleanly */ -} - -/***************************************************************************** - * DateDisplay: display date - ***************************************************************************** - * This function displays the current date in the date label. - *****************************************************************************/ -void IntfWindow::DateDisplay( int i_range ) -{ - if( p_intf->p_sys->p_input ) - { - char psz_time[ MSTRTIME_MAX_SIZE ]; - int64_t i_seconds; - - i_seconds = var_GetTime( p_intf->p_sys->p_input, "time" ) / I64C(1000000 ); - secstotimestr( psz_time, i_seconds ); - - p_date->setText( psz_time ); - } -} - -/***************************************************************************** - * FileOpen: open a file - ***************************************************************************** - * This function opens a file requester and adds the selected file to - * the playlist. - *****************************************************************************/ -void IntfWindow::FileOpen( void ) -{ - playlist_t *p_playlist; - QString file = QFileDialog::getOpenFileName( QString::null, - QString::null, this ); - - if( file.isEmpty() ) - { - statusBar()->message( "No file loaded", 2000 ); - } - else - { - p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist == NULL ) - { - return; - } - - playlist_Add( p_playlist, file.latin1(), file.latin1(), - PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); - vlc_object_release( p_playlist ); - } -} - -/***************************************************************************** - * FileQuit: terminate vlc - *****************************************************************************/ -void IntfWindow::FileQuit( void ) -{ - p_intf->p_vlc->b_die = VLC_TRUE; -} - -/***************************************************************************** - * About: display the "about" box - ***************************************************************************** - * This function displays a simple "about" box with copyright information. - *****************************************************************************/ -void IntfWindow::About( void ) -{ - QMessageBox::about( this, "About", - "VLC media player\n" - "(C) 1996 - 2004 - the VideoLAN Team\n" - "\n" - "This is the VLC media player, a DVD and MPEG player.\n" - "It can play MPEG and MPEG 2 files from a file " - "or from a network source.\n" - "\n" - "More information: http://www.videolan.org/" ); -} - -/***************************************************************************** - * Manage: manage main thread messages - ***************************************************************************** - * In this function, called approx. 10 times a second, we check what the - * main program wanted to tell us. - *****************************************************************************/ -void IntfWindow::Manage( void ) -{ - /* Update the input */ - if( p_intf->p_sys->p_input == NULL ) - { - p_intf->p_sys->p_input = (input_thread_t *) - vlc_object_find( p_intf, VLC_OBJECT_INPUT, FIND_ANYWHERE ); - } - else if( p_intf->p_sys->p_input->b_dead ) - { - vlc_object_release( p_intf->p_sys->p_input ); - p_intf->p_sys->p_input = NULL; - } - - /* Manage the slider */ - if( p_intf->p_sys->p_input && p_intf->p_sys->p_input->stream.b_seekable ) - { - int i_value = p_slider->value(); - -#define p_area p_intf->p_sys->p_input->stream.p_selected_area - /* If the user hasn't touched the slider since the last time, - * then the input can safely change it */ - if( i_value == p_slider->oldvalue() ) - { - i_value = ( SLIDER_MAX * p_area->i_tell ) / p_area->i_size; - - p_slider->setValue( i_value ); - p_slider->setOldValue( i_value ); - } - /* Otherwise, send message to the input if the user has - * finished dragging the slider */ - else if( p_slider->b_free ) - { - double f_pos = (double)i_value / (double)SLIDER_MAX; - var_SetFloat( p_intf->p_sys->p_input, "position", f_pos ); - - /* Update the old value */ - p_slider->setOldValue( i_value ); - } -#undef p_area - } - - /* If the "display popup" flag has changed, popup the context menu */ - if( p_intf->b_menu_change ) - { - p_popup->popup( QCursor::pos() ); - p_intf->b_menu_change = 0; - } - - if( p_intf->b_die ) - { - qApp->quit(); - } -} - -/***************************************************************************** - * PlaybackPlay: play - *****************************************************************************/ -void IntfWindow::PlaybackPlay( void ) -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetInteger( p_intf->p_sys->p_input, "state", PLAYING_S ); - } -} - -/***************************************************************************** - * PlaybackPause: pause - *****************************************************************************/ -void IntfWindow::PlaybackPause( void ) -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetInteger( p_intf->p_sys->p_input, "state", PAUSE_S ); - } -} - -/***************************************************************************** - * PlaybackSlow: slow - *****************************************************************************/ -void IntfWindow::PlaybackSlow( void ) -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetVoid( p_intf->p_sys->p_input, "rate-slower" ); - } -} - -/***************************************************************************** - * PlaybackFast: fast - *****************************************************************************/ -void IntfWindow::PlaybackFast( void ) -{ - if( p_intf->p_sys->p_input != NULL ) - { - var_SetVoid( p_intf->p_sys->p_input, "rate-faster" ); - } -} - -/***************************************************************************** - * PlaylistPrev: previous playlist entry - *****************************************************************************/ -void IntfWindow::PlaylistPrev( void ) -{ - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - - if( p_playlist == NULL ) - { - return; - } - - playlist_Prev( p_playlist ); - vlc_object_release( p_playlist ); -} - -/***************************************************************************** - * PlaylistNext: next playlist entry - *****************************************************************************/ -void IntfWindow::PlaylistNext( void ) -{ - playlist_t *p_playlist = (playlist_t *) - vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - - if( p_playlist == NULL ) - { - return; - } - - playlist_Next( p_playlist ); - vlc_object_release( p_playlist ); -} - -/***************************************************************************** - * IntfSlider: slider creator - ***************************************************************************** - * This function creates the slider, sets its default values, and connects - * the interesting signals. - *****************************************************************************/ -IntfSlider::IntfSlider( intf_thread_t *p_intf, QWidget *p_parent ) - :QSlider( Horizontal, p_parent ) -{ - this->p_intf = p_intf; - - setRange( SLIDER_MIN, SLIDER_MAX ); - setPageStep( SLIDER_STEP ); - - setValue( SLIDER_MIN ); - setOldValue( SLIDER_MIN ); - - setTracking( TRUE ); - b_free = TRUE; - - connect( this, SIGNAL(sliderMoved(int)), this, SLOT(SlideStart()) ); - connect( this, SIGNAL(sliderPressed()), this, SLOT(SlideStart()) ); - connect( this, SIGNAL(sliderReleased()), this, SLOT(SlideStop()) ); -} - -/***************************************************************************** - * ~IntfSlider: slider destructor - ***************************************************************************** - * This function is called when the interface slider is destroyed. - *****************************************************************************/ -IntfSlider::~IntfSlider( void ) -{ - /* We don't need to remove anything */ -} - - diff --git a/modules/gui/qt/intf.h b/modules/gui/qt/intf.h deleted file mode 100644 index aa603f270e..0000000000 --- a/modules/gui/qt/intf.h +++ /dev/null @@ -1,113 +0,0 @@ -/***************************************************************************** - * intf.h: Qt interface - ***************************************************************************** - * Copyright (C) 1999, 2000 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -/***************************************************************************** - * Local Qt slider class - *****************************************************************************/ -class IntfSlider : public QSlider -{ - Q_OBJECT - -public: - IntfSlider( intf_thread_t *, QWidget * ); /* Constructor and destructor */ - ~IntfSlider(); - - bool b_free; /* Is the slider free ? */ - - int oldvalue ( void ) { return i_oldvalue; }; - void setOldValue( int i_value ) { i_oldvalue = i_value; }; - -private slots: - void SlideStart ( void ) { b_free = FALSE; }; - void SlideStop ( void ) { b_free = TRUE; }; - -private: - intf_thread_t *p_intf; - int i_oldvalue; -}; - -/***************************************************************************** - * Local Qt interface window class - *****************************************************************************/ -class IntfWindow : public QMainWindow -{ - Q_OBJECT - -public: - IntfWindow( intf_thread_t * ); - ~IntfWindow(); - -private slots: - void Manage ( void ); - - void FileOpen ( void ); - void FileQuit ( void ); - - void PlaybackPlay ( void ); - void PlaybackPause ( void ); - void PlaybackSlow ( void ); - void PlaybackFast ( void ); - - void PlaylistPrev ( void ); - void PlaylistNext ( void ); - - void DateDisplay ( int ); - void About ( void ); - - void Unimplemented( void ) { msg_Warn( p_intf, "unimplemented" ); }; - -private: - intf_thread_t *p_intf; - - IntfSlider *p_slider; - - QToolBar *p_toolbar; - QPopupMenu *p_popup; - QLabel *p_date; -}; - diff --git a/modules/gui/qt/qt.cpp b/modules/gui/qt/qt.cpp deleted file mode 100644 index 1011a30af2..0000000000 --- a/modules/gui/qt/qt.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/***************************************************************************** - * qt.cpp : Qt plugin for vlc - ***************************************************************************** - * Copyright (C) 2001 the VideoLAN team - * $Id$ - * - * Authors: Samuel Hocevar - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * 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. - *****************************************************************************/ - -/***************************************************************************** - * Preamble - *****************************************************************************/ -#include /* malloc(), free() */ -#include - -#include - -/***************************************************************************** - * External prototypes - *****************************************************************************/ -int E_(Open) ( vlc_object_t * ); -void E_(Close) ( vlc_object_t * ); - -/***************************************************************************** - * Module descriptor - *****************************************************************************/ -vlc_module_begin(); -#ifdef WIN32 - int i = 80; -#else - int i = getenv( "DISPLAY" ) == NULL ? 7 : 80; -#endif - set_description( _("Qt interface") ); - set_capability( "interface", i ); - set_program( "qvlc" ); - set_category( CAT_INTERFACE ); - set_subcategory( SUBCAT_INTERFACE_GENERAL ); - set_callbacks( E_(Open), E_(Close) ); -vlc_module_end(); - -- 2.39.2