summaryrefslogtreecommitdiffstats
path: root/gui/mplayer/gtk/gtk_url.c
diff options
context:
space:
mode:
Diffstat (limited to 'gui/mplayer/gtk/gtk_url.c')
-rw-r--r--gui/mplayer/gtk/gtk_url.c154
1 files changed, 154 insertions, 0 deletions
diff --git a/gui/mplayer/gtk/gtk_url.c b/gui/mplayer/gtk/gtk_url.c
new file mode 100644
index 0000000000..1ce9a315e8
--- /dev/null
+++ b/gui/mplayer/gtk/gtk_url.c
@@ -0,0 +1,154 @@
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include "gtk_url.h"
+#include "gtk_common.h"
+#include "interface.h"
+#include "app.h"
+#include "../widgets.h"
+#include "../gmplayer.h"
+#include "help_mp.h"
+
+GtkWidget * URL = NULL;
+
+static GtkWidget * URLCombo;
+static GtkWidget * URLEntry;
+static GList * URLComboEntrys = NULL;
+
+void ShowURLDialogBox( void )
+{
+ if ( URL ) gtkActive( URL );
+ else URL=create_URL();
+
+ if ( URLList )
+ {
+ URLItem * item = URLList;
+ g_list_free( URLComboEntrys );
+ URLComboEntrys=NULL;
+ while( item )
+ {
+ URLComboEntrys=g_list_append( URLComboEntrys,(gchar *)item->url );
+ item=item->next;
+ }
+ }
+
+ if ( URLComboEntrys )
+ {
+ gtk_entry_set_text( GTK_ENTRY( URLEntry ),URLComboEntrys->data );
+ gtk_combo_set_popdown_strings( GTK_COMBO( URLCombo ),URLComboEntrys );
+ }
+
+ gtk_widget_show( URL );
+}
+
+void HideURLDialogBox( void )
+{
+ if ( !URL ) return;
+ gtk_widget_hide( URL );
+ gtk_widget_destroy( URL );
+ URL=0;
+}
+
+static void on_Button_pressed( GtkButton * button,gpointer user_data )
+{
+ URLItem * item;
+
+ if ( (int)user_data )
+ {
+ gchar * str= strdup( gtk_entry_get_text( GTK_ENTRY( URLEntry ) ) );
+
+ if ( str )
+ {
+ if ( strncmp( str,"http://",7 )
+ && strncmp( str,"ftp://",6 )
+ && strncmp( str,"mms://",6 )
+ && strncmp( str,"pnm://",6 )
+ && strncmp( str,"rtsp://",7 ) )
+ {
+ gchar * tmp;
+ tmp=malloc( strlen( str ) + 8 );
+ sprintf( tmp,"http://%s",str );
+ free( str ); str=tmp;
+ }
+ URLComboEntrys=g_list_prepend( URLComboEntrys,(gchar *)str );
+
+ item=calloc( 1,sizeof( URLItem ) );
+ item->url=gstrdup( str );
+ gtkSet( gtkAddURLItem,0,(void *)item );
+
+ guiSetFilename( guiIntfStruct.Filename,str ); guiIntfStruct.FilenameChanged=1;
+ mplEventHandling( evPlayNetwork,0 );
+ }
+ }
+ HideURLDialogBox();
+}
+
+GtkWidget * create_URL( void )
+{
+ GtkWidget * vbox1;
+ GtkWidget * hbox1;
+ GtkWidget * hbuttonbox1;
+ GtkWidget * Ok;
+ GtkWidget * Cancel;
+ GtkAccelGroup * accel_group;
+
+ accel_group=gtk_accel_group_new();
+
+ URL=gtk_window_new( GTK_WINDOW_TOPLEVEL );
+ gtk_widget_set_name( URL,"URL" );
+ gtk_object_set_data( GTK_OBJECT( URL ),"URL",URL );
+ gtk_widget_set_usize( URL,384,70 );
+ GTK_WIDGET_SET_FLAGS( URL,GTK_CAN_DEFAULT );
+ gtk_window_set_title( GTK_WINDOW( URL ),MSGTR_Network );
+ gtk_window_set_position( GTK_WINDOW( URL ),GTK_WIN_POS_CENTER );
+ gtk_window_set_policy( GTK_WINDOW( URL ),TRUE,TRUE,FALSE );
+ gtk_window_set_wmclass( GTK_WINDOW( URL ),"Network","MPlayer" );
+
+ gtk_widget_realize( URL );
+ gtkAddIcon( URL );
+
+ vbox1=AddVBox( AddDialogFrame( URL ),0 );
+ hbox1=AddHBox( vbox1,1 );
+ AddLabel( "URL: ",hbox1 );
+
+ URLCombo=AddComboBox( hbox1 );
+/*
+ gtk_combo_new();
+ gtk_widget_set_name( URLCombo,"URLCombo" );
+ gtk_widget_show( URLCombo );
+ gtk_box_pack_start( GTK_BOX( hbox1 ),URLCombo,TRUE,TRUE,0 );
+*/
+ URLEntry=GTK_COMBO( URLCombo )->entry;
+ gtk_widget_set_name( URLEntry,"URLEntry" );
+ gtk_widget_show( URLEntry );
+
+ AddHSeparator( vbox1 );
+
+ hbuttonbox1=AddHButtonBox( vbox1 );
+ gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END );
+ gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 );
+
+ Ok=AddButton( MSGTR_Ok,hbuttonbox1 );
+ Cancel=AddButton( MSGTR_Cancel,hbuttonbox1 );
+
+ gtk_widget_add_accelerator( Ok,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
+ gtk_widget_add_accelerator( Cancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
+
+ gtk_signal_connect( GTK_OBJECT( URL ),"destroy",GTK_SIGNAL_FUNC( WidgetDestroy ),&URL );
+ gtk_signal_connect( GTK_OBJECT( Ok ),"clicked",GTK_SIGNAL_FUNC( on_Button_pressed ),(void *)1 );
+ gtk_signal_connect( GTK_OBJECT( Cancel ),"clicked",GTK_SIGNAL_FUNC( on_Button_pressed ),NULL );
+
+ gtk_widget_grab_focus( URLEntry );
+ gtk_window_add_accel_group( GTK_WINDOW( URL ),accel_group );
+
+ return URL;
+}
+