Mercurial > mplayer.hg
annotate Gui/mplayer/gtk/url.c @ 8043:e5dda05f9aab
cleanup
author | pontscho |
---|---|
date | Sat, 02 Nov 2002 16:09:05 +0000 |
parents | acf33c922840 |
children | 5b67aed0fc28 |
rev | line source |
---|---|
6298 | 1 |
2 #include <sys/types.h> | |
3 #include <sys/stat.h> | |
4 #include <unistd.h> | |
5 #include <stdlib.h> | |
6 #include <stdio.h> | |
7 #include <string.h> | |
8 | |
9 #include <gdk/gdkkeysyms.h> | |
10 #include <gtk/gtk.h> | |
11 | |
12 #include "url.h" | |
13 #include "../../interface.h" | |
8043 | 14 #include "../../app.h" |
6335
e9bd97d5c5cc
warning & newline fixes by Dominik Mierzejewski <dominik@rangers.eu.org>
arpi
parents:
6298
diff
changeset
|
15 #include "../widgets.h" |
6651 | 16 #include "../../help_mp.h" |
6298 | 17 |
18 GtkWidget * URL; | |
19 int gtkVURLDialogBox = 0; | |
20 | |
21 static GtkWidget * URLCombo; | |
22 static GtkWidget * URLEntry; | |
23 static GList * URLComboEntrys = NULL; | |
24 | |
25 void ShowURLDialogBox( void ) | |
26 { | |
27 if ( gtkVURLDialogBox ) gtkActive( URL ); | |
28 else URL=create_URL(); | |
29 | |
7092
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
30 if ( URLList ) |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
31 { |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
32 URLItem * item = URLList; |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
33 g_list_free( URLComboEntrys ); |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
34 URLComboEntrys=NULL; |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
35 while( item ) |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
36 { |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
37 URLComboEntrys=g_list_append( URLComboEntrys,(gchar *)item->url ); |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
38 item=item->next; |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
39 } |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
40 } |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
41 |
6298 | 42 if ( URLComboEntrys ) |
43 { | |
44 gtk_entry_set_text( GTK_ENTRY( URLEntry ),URLComboEntrys->data ); | |
45 gtk_combo_set_popdown_strings( GTK_COMBO( URLCombo ),URLComboEntrys ); | |
46 } | |
47 | |
48 gtk_widget_show( URL ); | |
6903 | 49 gtkVURLDialogBox=1; |
6298 | 50 } |
51 | |
52 void HideURLDialogBox( void ) | |
53 { | |
6755 | 54 if ( !gtkVURLDialogBox ) return; |
6298 | 55 gtk_widget_hide( URL ); |
56 gtk_widget_destroy( URL ); | |
6903 | 57 gtkVURLDialogBox=0; |
6298 | 58 } |
59 | |
60 static gboolean on_URL_destroy_event( GtkWidget * widget,GdkEvent * event,gpointer user_data ) | |
61 { | |
62 HideURLDialogBox(); | |
63 return FALSE; | |
64 } | |
65 | |
66 static void on_Button_pressed( GtkButton * button,gpointer user_data ) | |
67 { | |
7092
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
68 URLItem * item; |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
69 |
6298 | 70 if ( (int)user_data ) |
71 { | |
72 gchar * str= strdup( gtk_entry_get_text( GTK_ENTRY( URLEntry ) ) ); | |
73 | |
74 if ( str ) | |
75 { | |
7287 | 76 if ( strncmp( str,"http://",7 ) && strncmp( str,"ftp://",6 ) && strncmp( str,"mms://",6 ) ) |
6298 | 77 { |
78 gchar * tmp; | |
79 tmp=malloc( strlen( str ) + 8 ); | |
80 sprintf( tmp,"http://%s",str ); | |
81 free( str ); str=tmp; | |
82 } | |
83 URLComboEntrys=g_list_prepend( URLComboEntrys,(gchar *)str ); | |
7092
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
84 |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
85 item=calloc( 1,sizeof( URLItem ) ); |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
86 item->url=gstrdup( str ); |
8e9607c5897e
- warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents:
6903
diff
changeset
|
87 gtkSet( gtkAddURLItem,0,(void *)item ); |
6298 | 88 |
89 guiSetFilename( guiIntfStruct.Filename,str ); guiIntfStruct.FilenameChanged=1; | |
6651 | 90 mplEventHandling( evPlayNetwork,0 ); |
6298 | 91 } |
92 } | |
93 HideURLDialogBox(); | |
94 } | |
95 | |
96 static void ab_URL_show( GtkButton * button,gpointer user_data ) | |
97 { gtkVURLDialogBox=(int)user_data; } | |
98 | |
99 GtkWidget * create_URL( void ) | |
100 { | |
101 GtkWidget * frame1; | |
102 GtkWidget * frame2; | |
103 GtkWidget * frame3; | |
104 GtkWidget * frame4; | |
105 GtkWidget * vbox1; | |
106 GtkWidget * hbox1; | |
107 GtkWidget * label1; | |
6651 | 108 GtkWidget * hsep; |
6298 | 109 GtkWidget * hbuttonbox1; |
110 GtkWidget * Ok; | |
111 GtkWidget * Cancel; | |
112 GtkAccelGroup * accel_group; | |
113 | |
114 accel_group=gtk_accel_group_new(); | |
115 | |
8043 | 116 URL=gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
6298 | 117 gtk_widget_set_name( URL,"URL" ); |
118 gtk_object_set_data( GTK_OBJECT( URL ),"URL",URL ); | |
6651 | 119 gtk_widget_set_usize( URL,384,70 ); |
6298 | 120 GTK_WIDGET_SET_FLAGS( URL,GTK_CAN_DEFAULT ); |
6651 | 121 gtk_window_set_title( GTK_WINDOW( URL ),MSGTR_Network ); |
6298 | 122 gtk_window_set_position( GTK_WINDOW( URL ),GTK_WIN_POS_CENTER ); |
123 gtk_window_set_policy( GTK_WINDOW( URL ),TRUE,TRUE,FALSE ); | |
6651 | 124 gtk_window_set_wmclass( GTK_WINDOW( URL ),MSGTR_Network,"MPlayer" ); |
125 | |
126 gtk_widget_realize( URL ); | |
127 gtkAddIcon( URL ); | |
6298 | 128 |
129 frame1=gtk_frame_new( NULL ); | |
130 gtk_widget_set_name( frame1,"frame1" ); | |
131 gtk_widget_ref( frame1 ); | |
132 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame1",frame1,(GtkDestroyNotify)gtk_widget_unref ); | |
133 gtk_widget_show( frame1 ); | |
134 gtk_container_add( GTK_CONTAINER( URL ),frame1 ); | |
135 gtk_container_set_border_width( GTK_CONTAINER( frame1 ),1 ); | |
136 gtk_frame_set_shadow_type( GTK_FRAME( frame1 ),GTK_SHADOW_IN ); | |
137 | |
138 frame2=gtk_frame_new( NULL ); | |
139 gtk_widget_set_name( frame2,"frame2" ); | |
140 gtk_widget_ref( frame2 ); | |
141 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame2",frame2,(GtkDestroyNotify)gtk_widget_unref ); | |
142 gtk_widget_show( frame2 ); | |
143 gtk_container_add( GTK_CONTAINER( frame1 ),frame2 ); | |
144 gtk_container_set_border_width( GTK_CONTAINER( frame2 ),1 ); | |
145 gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE ); | |
146 | |
147 frame3=gtk_frame_new( NULL ); | |
148 gtk_widget_set_name( frame3,"frame3" ); | |
149 gtk_widget_ref( frame3 ); | |
150 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame3",frame3,(GtkDestroyNotify)gtk_widget_unref ); | |
151 gtk_widget_show( frame3 ); | |
152 gtk_container_add( GTK_CONTAINER( frame2 ),frame3 ); | |
153 gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT ); | |
154 | |
155 frame4=gtk_frame_new( NULL ); | |
156 gtk_widget_set_name( frame4,"frame4" ); | |
157 gtk_widget_ref( frame4 ); | |
158 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame4",frame4,(GtkDestroyNotify)gtk_widget_unref ); | |
159 gtk_widget_show( frame4 ); | |
160 gtk_container_add( GTK_CONTAINER( frame3 ),frame4 ); | |
161 gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE ); | |
162 | |
163 vbox1=gtk_vbox_new( FALSE,0 ); | |
164 gtk_widget_set_name( vbox1,"vbox1" ); | |
165 gtk_widget_ref( vbox1 ); | |
166 gtk_object_set_data_full( GTK_OBJECT( URL ),"vbox1",vbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
167 gtk_widget_show( vbox1 ); | |
168 gtk_container_add( GTK_CONTAINER( frame4 ),vbox1 ); | |
169 | |
170 hbox1=gtk_hbox_new( FALSE,0 ); | |
171 gtk_widget_set_name( hbox1,"hbox1" ); | |
172 gtk_widget_ref( hbox1 ); | |
173 gtk_object_set_data_full( GTK_OBJECT( URL ),"hbox1",hbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
174 gtk_widget_show( hbox1 ); | |
175 gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); | |
176 | |
177 label1=gtk_label_new( "URL: " ); | |
178 gtk_widget_set_name( label1,"label1" ); | |
179 gtk_widget_ref( label1 ); | |
180 gtk_object_set_data_full( GTK_OBJECT( URL ),"label1",label1,(GtkDestroyNotify)gtk_widget_unref ); | |
181 gtk_widget_show( label1 ); | |
182 gtk_box_pack_start( GTK_BOX( hbox1 ),label1,FALSE,FALSE,0 ); | |
183 gtk_widget_set_usize( label1,38,-2 ); | |
184 gtk_label_set_justify( GTK_LABEL( label1 ),GTK_JUSTIFY_FILL ); | |
185 gtk_misc_set_alignment( GTK_MISC( label1 ),0.5,0.49 ); | |
186 | |
187 URLCombo=gtk_combo_new(); | |
188 gtk_widget_set_name( URLCombo,"URLCombo" ); | |
189 gtk_widget_ref( URLCombo ); | |
190 gtk_object_set_data_full( GTK_OBJECT( URL ),"URLCombo",URLCombo,(GtkDestroyNotify)gtk_widget_unref ); | |
191 gtk_widget_show( URLCombo ); | |
192 gtk_box_pack_start( GTK_BOX( hbox1 ),URLCombo,TRUE,TRUE,0 ); | |
193 | |
194 URLEntry=GTK_COMBO( URLCombo )->entry; | |
195 gtk_widget_set_name( URLEntry,"URLEntry" ); | |
196 gtk_widget_ref( URLEntry ); | |
197 gtk_object_set_data_full( GTK_OBJECT( URL ),"URLEntry",URLEntry,(GtkDestroyNotify)gtk_widget_unref ); | |
198 gtk_widget_show( URLEntry ); | |
199 | |
6651 | 200 hsep=gtk_hseparator_new(); |
201 gtk_widget_set_name( hsep,"hsep" ); | |
202 gtk_widget_ref( hsep ); | |
203 gtk_object_set_data_full( GTK_OBJECT( URL ),"hsep",hsep,(GtkDestroyNotify)gtk_widget_unref ); | |
204 gtk_widget_show( hsep ); | |
205 gtk_box_pack_start( GTK_BOX( vbox1 ),hsep,FALSE,TRUE,0 ); | |
206 gtk_widget_set_usize( hsep,-2,8 ); | |
6298 | 207 |
208 hbuttonbox1=gtk_hbutton_box_new(); | |
209 gtk_widget_set_name( hbuttonbox1,"hbuttonbox1" ); | |
210 gtk_widget_ref( hbuttonbox1 ); | |
211 gtk_object_set_data_full( GTK_OBJECT( URL ),"hbuttonbox1",hbuttonbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
212 gtk_widget_show( hbuttonbox1 ); | |
213 gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 ); | |
214 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
6651 | 215 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); |
216 gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),85,20 ); | |
217 gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox1 ),0,0 ); | |
6298 | 218 |
6651 | 219 Ok=gtk_button_new_with_label( MSGTR_Ok ); |
6298 | 220 gtk_widget_set_name( Ok,"Ok" ); |
221 gtk_widget_ref( Ok ); | |
222 gtk_object_set_data_full( GTK_OBJECT( URL ),"Ok",Ok,(GtkDestroyNotify)gtk_widget_unref ); | |
223 gtk_widget_show( Ok ); | |
224 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok ); | |
225 | |
6651 | 226 Cancel=gtk_button_new_with_label( MSGTR_Cancel ); |
6298 | 227 gtk_widget_set_name( Cancel,"Cancel" ); |
228 gtk_widget_ref( Cancel ); | |
229 gtk_object_set_data_full( GTK_OBJECT( URL ),"Cancel",Cancel,(GtkDestroyNotify)gtk_widget_unref ); | |
230 gtk_widget_show( Cancel ); | |
231 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Cancel ); | |
232 | |
233 gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
234 // gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_O,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
235 // gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_o,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
236 gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
237 // gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_C,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
238 // gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_c,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
239 | |
240 gtk_signal_connect( GTK_OBJECT( URL ),"destroy",GTK_SIGNAL_FUNC( on_URL_destroy_event ),NULL ); | |
241 gtk_signal_connect( GTK_OBJECT( URL ),"show",GTK_SIGNAL_FUNC( ab_URL_show ),(void *)1 ); | |
242 gtk_signal_connect( GTK_OBJECT( URL ),"hide",GTK_SIGNAL_FUNC( ab_URL_show ),0 ); | |
243 | |
244 gtk_signal_connect( GTK_OBJECT( Ok ),"pressed",GTK_SIGNAL_FUNC( on_Button_pressed ),(void *)1 ); | |
245 gtk_signal_connect( GTK_OBJECT( Cancel ),"pressed",GTK_SIGNAL_FUNC( on_Button_pressed ),NULL ); | |
246 | |
6651 | 247 gtk_widget_grab_focus( URLEntry ); |
6298 | 248 gtk_window_add_accel_group( GTK_WINDOW( URL ),accel_group ); |
249 | |
250 return URL; | |
251 } | |
252 |