Mercurial > mplayer.hg
annotate Gui/mplayer/gtk/url.c @ 6660:f8d1c9ab777a
aspect prescaling fix by magnus.pfeffer@epost.de
author | arpi |
---|---|
date | Sat, 06 Jul 2002 15:23:20 +0000 |
parents | 8f49c75a2824 |
children | a31b9f15cbff |
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" | |
14 #include "../../events.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 | |
30 if ( URLComboEntrys ) | |
31 { | |
32 gtk_entry_set_text( GTK_ENTRY( URLEntry ),URLComboEntrys->data ); | |
33 gtk_combo_set_popdown_strings( GTK_COMBO( URLCombo ),URLComboEntrys ); | |
34 } | |
35 | |
36 gtk_widget_show( URL ); | |
37 gtkVURLDialogBox=1; | |
38 } | |
39 | |
40 void HideURLDialogBox( void ) | |
41 { | |
42 gtk_widget_hide( URL ); | |
43 gtk_widget_destroy( URL ); | |
44 gtkVURLDialogBox=0; | |
45 } | |
46 | |
47 static gboolean on_URL_destroy_event( GtkWidget * widget,GdkEvent * event,gpointer user_data ) | |
48 { | |
49 HideURLDialogBox(); | |
50 return FALSE; | |
51 } | |
52 | |
53 static void on_Button_pressed( GtkButton * button,gpointer user_data ) | |
54 { | |
55 if ( (int)user_data ) | |
56 { | |
57 gchar * str= strdup( gtk_entry_get_text( GTK_ENTRY( URLEntry ) ) ); | |
58 | |
59 if ( str ) | |
60 { | |
61 if ( strncmp( str,"http://",7 ) && strncmp( str,"ftp://",6 ) && !strncmp( str,"mms://",6 ) ) | |
62 { | |
63 gchar * tmp; | |
64 tmp=malloc( strlen( str ) + 8 ); | |
65 sprintf( tmp,"http://%s",str ); | |
66 free( str ); str=tmp; | |
67 } | |
68 URLComboEntrys=g_list_prepend( URLComboEntrys,(gchar *)str ); | |
69 | |
70 guiSetFilename( guiIntfStruct.Filename,str ); guiIntfStruct.FilenameChanged=1; | |
6651 | 71 mplEventHandling( evPlayNetwork,0 ); |
6298 | 72 } |
73 } | |
74 HideURLDialogBox(); | |
75 } | |
76 | |
77 static void ab_URL_show( GtkButton * button,gpointer user_data ) | |
78 { gtkVURLDialogBox=(int)user_data; } | |
79 | |
80 GtkWidget * create_URL( void ) | |
81 { | |
82 GtkWidget * frame1; | |
83 GtkWidget * frame2; | |
84 GtkWidget * frame3; | |
85 GtkWidget * frame4; | |
86 GtkWidget * vbox1; | |
87 GtkWidget * hbox1; | |
88 GtkWidget * label1; | |
6651 | 89 GtkWidget * hsep; |
6298 | 90 GtkWidget * hbuttonbox1; |
91 GtkWidget * Ok; | |
92 GtkWidget * Cancel; | |
93 GtkAccelGroup * accel_group; | |
94 | |
95 accel_group=gtk_accel_group_new(); | |
96 | |
97 URL=gtk_window_new( GTK_WINDOW_DIALOG ); | |
98 gtk_widget_set_name( URL,"URL" ); | |
99 gtk_object_set_data( GTK_OBJECT( URL ),"URL",URL ); | |
6651 | 100 gtk_widget_set_usize( URL,384,70 ); |
6298 | 101 GTK_WIDGET_SET_FLAGS( URL,GTK_CAN_DEFAULT ); |
6651 | 102 gtk_window_set_title( GTK_WINDOW( URL ),MSGTR_Network ); |
6298 | 103 gtk_window_set_position( GTK_WINDOW( URL ),GTK_WIN_POS_CENTER ); |
104 gtk_window_set_policy( GTK_WINDOW( URL ),TRUE,TRUE,FALSE ); | |
6651 | 105 gtk_window_set_wmclass( GTK_WINDOW( URL ),MSGTR_Network,"MPlayer" ); |
106 | |
107 gtk_widget_realize( URL ); | |
108 gtkAddIcon( URL ); | |
6298 | 109 |
110 frame1=gtk_frame_new( NULL ); | |
111 gtk_widget_set_name( frame1,"frame1" ); | |
112 gtk_widget_ref( frame1 ); | |
113 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame1",frame1,(GtkDestroyNotify)gtk_widget_unref ); | |
114 gtk_widget_show( frame1 ); | |
115 gtk_container_add( GTK_CONTAINER( URL ),frame1 ); | |
116 gtk_container_set_border_width( GTK_CONTAINER( frame1 ),1 ); | |
117 gtk_frame_set_shadow_type( GTK_FRAME( frame1 ),GTK_SHADOW_IN ); | |
118 | |
119 frame2=gtk_frame_new( NULL ); | |
120 gtk_widget_set_name( frame2,"frame2" ); | |
121 gtk_widget_ref( frame2 ); | |
122 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame2",frame2,(GtkDestroyNotify)gtk_widget_unref ); | |
123 gtk_widget_show( frame2 ); | |
124 gtk_container_add( GTK_CONTAINER( frame1 ),frame2 ); | |
125 gtk_container_set_border_width( GTK_CONTAINER( frame2 ),1 ); | |
126 gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE ); | |
127 | |
128 frame3=gtk_frame_new( NULL ); | |
129 gtk_widget_set_name( frame3,"frame3" ); | |
130 gtk_widget_ref( frame3 ); | |
131 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame3",frame3,(GtkDestroyNotify)gtk_widget_unref ); | |
132 gtk_widget_show( frame3 ); | |
133 gtk_container_add( GTK_CONTAINER( frame2 ),frame3 ); | |
134 gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT ); | |
135 | |
136 frame4=gtk_frame_new( NULL ); | |
137 gtk_widget_set_name( frame4,"frame4" ); | |
138 gtk_widget_ref( frame4 ); | |
139 gtk_object_set_data_full( GTK_OBJECT( URL ),"frame4",frame4,(GtkDestroyNotify)gtk_widget_unref ); | |
140 gtk_widget_show( frame4 ); | |
141 gtk_container_add( GTK_CONTAINER( frame3 ),frame4 ); | |
142 gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE ); | |
143 | |
144 vbox1=gtk_vbox_new( FALSE,0 ); | |
145 gtk_widget_set_name( vbox1,"vbox1" ); | |
146 gtk_widget_ref( vbox1 ); | |
147 gtk_object_set_data_full( GTK_OBJECT( URL ),"vbox1",vbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
148 gtk_widget_show( vbox1 ); | |
149 gtk_container_add( GTK_CONTAINER( frame4 ),vbox1 ); | |
150 | |
151 hbox1=gtk_hbox_new( FALSE,0 ); | |
152 gtk_widget_set_name( hbox1,"hbox1" ); | |
153 gtk_widget_ref( hbox1 ); | |
154 gtk_object_set_data_full( GTK_OBJECT( URL ),"hbox1",hbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
155 gtk_widget_show( hbox1 ); | |
156 gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); | |
157 | |
158 label1=gtk_label_new( "URL: " ); | |
159 gtk_widget_set_name( label1,"label1" ); | |
160 gtk_widget_ref( label1 ); | |
161 gtk_object_set_data_full( GTK_OBJECT( URL ),"label1",label1,(GtkDestroyNotify)gtk_widget_unref ); | |
162 gtk_widget_show( label1 ); | |
163 gtk_box_pack_start( GTK_BOX( hbox1 ),label1,FALSE,FALSE,0 ); | |
164 gtk_widget_set_usize( label1,38,-2 ); | |
165 gtk_label_set_justify( GTK_LABEL( label1 ),GTK_JUSTIFY_FILL ); | |
166 gtk_misc_set_alignment( GTK_MISC( label1 ),0.5,0.49 ); | |
167 | |
168 URLCombo=gtk_combo_new(); | |
169 gtk_widget_set_name( URLCombo,"URLCombo" ); | |
170 gtk_widget_ref( URLCombo ); | |
171 gtk_object_set_data_full( GTK_OBJECT( URL ),"URLCombo",URLCombo,(GtkDestroyNotify)gtk_widget_unref ); | |
172 gtk_widget_show( URLCombo ); | |
173 gtk_box_pack_start( GTK_BOX( hbox1 ),URLCombo,TRUE,TRUE,0 ); | |
174 | |
175 URLEntry=GTK_COMBO( URLCombo )->entry; | |
176 gtk_widget_set_name( URLEntry,"URLEntry" ); | |
177 gtk_widget_ref( URLEntry ); | |
178 gtk_object_set_data_full( GTK_OBJECT( URL ),"URLEntry",URLEntry,(GtkDestroyNotify)gtk_widget_unref ); | |
179 gtk_widget_show( URLEntry ); | |
180 | |
6651 | 181 hsep=gtk_hseparator_new(); |
182 gtk_widget_set_name( hsep,"hsep" ); | |
183 gtk_widget_ref( hsep ); | |
184 gtk_object_set_data_full( GTK_OBJECT( URL ),"hsep",hsep,(GtkDestroyNotify)gtk_widget_unref ); | |
185 gtk_widget_show( hsep ); | |
186 gtk_box_pack_start( GTK_BOX( vbox1 ),hsep,FALSE,TRUE,0 ); | |
187 gtk_widget_set_usize( hsep,-2,8 ); | |
6298 | 188 |
189 hbuttonbox1=gtk_hbutton_box_new(); | |
190 gtk_widget_set_name( hbuttonbox1,"hbuttonbox1" ); | |
191 gtk_widget_ref( hbuttonbox1 ); | |
192 gtk_object_set_data_full( GTK_OBJECT( URL ),"hbuttonbox1",hbuttonbox1,(GtkDestroyNotify)gtk_widget_unref ); | |
193 gtk_widget_show( hbuttonbox1 ); | |
194 gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 ); | |
195 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
6651 | 196 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); |
197 gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),85,20 ); | |
198 gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox1 ),0,0 ); | |
6298 | 199 |
6651 | 200 Ok=gtk_button_new_with_label( MSGTR_Ok ); |
6298 | 201 gtk_widget_set_name( Ok,"Ok" ); |
202 gtk_widget_ref( Ok ); | |
203 gtk_object_set_data_full( GTK_OBJECT( URL ),"Ok",Ok,(GtkDestroyNotify)gtk_widget_unref ); | |
204 gtk_widget_show( Ok ); | |
205 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok ); | |
206 | |
6651 | 207 Cancel=gtk_button_new_with_label( MSGTR_Cancel ); |
6298 | 208 gtk_widget_set_name( Cancel,"Cancel" ); |
209 gtk_widget_ref( Cancel ); | |
210 gtk_object_set_data_full( GTK_OBJECT( URL ),"Cancel",Cancel,(GtkDestroyNotify)gtk_widget_unref ); | |
211 gtk_widget_show( Cancel ); | |
212 gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Cancel ); | |
213 | |
214 gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
215 // gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_O,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
216 // gtk_widget_add_accelerator( Ok,"pressed",accel_group,GDK_o,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
217 gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
218 // gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_C,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
219 // gtk_widget_add_accelerator( Cancel,"pressed",accel_group,GDK_c,GDK_MOD1_MASK,GTK_ACCEL_VISIBLE ); | |
220 | |
221 gtk_signal_connect( GTK_OBJECT( URL ),"destroy",GTK_SIGNAL_FUNC( on_URL_destroy_event ),NULL ); | |
222 gtk_signal_connect( GTK_OBJECT( URL ),"show",GTK_SIGNAL_FUNC( ab_URL_show ),(void *)1 ); | |
223 gtk_signal_connect( GTK_OBJECT( URL ),"hide",GTK_SIGNAL_FUNC( ab_URL_show ),0 ); | |
224 | |
225 gtk_signal_connect( GTK_OBJECT( Ok ),"pressed",GTK_SIGNAL_FUNC( on_Button_pressed ),(void *)1 ); | |
226 gtk_signal_connect( GTK_OBJECT( Cancel ),"pressed",GTK_SIGNAL_FUNC( on_Button_pressed ),NULL ); | |
227 | |
6651 | 228 gtk_widget_grab_focus( URLEntry ); |
6298 | 229 gtk_window_add_accel_group( GTK_WINDOW( URL ),accel_group ); |
230 | |
231 return URL; | |
232 } | |
233 |