comparison Gui/mplayer/gtk/opts.c @ 7139:dd1e21e775b6

- add freetype support for gui - fix some small bug
author pontscho
date Thu, 29 Aug 2002 17:16:34 +0000
parents e37a67d5e117
children 02b1976e12e2
comparison
equal deleted inserted replaced
7138:8ab4d11353ae 7139:dd1e21e775b6
61 static GtkWidget * HSExtraStereoMul; 61 static GtkWidget * HSExtraStereoMul;
62 static GtkWidget * HSPanscan; 62 static GtkWidget * HSPanscan;
63 static GtkWidget * HSSubDelay; 63 static GtkWidget * HSSubDelay;
64 static GtkWidget * HSSubPosition; 64 static GtkWidget * HSSubPosition;
65 static GtkWidget * HSSubFPS; 65 static GtkWidget * HSSubFPS;
66 static GtkWidget * HSFontFactor;
67 static GtkWidget * HSPPQuality; 66 static GtkWidget * HSPPQuality;
68 67
69 static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj; 68 static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj;
70 static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSFontFactoradj, * HSPPQualityadj; 69 static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSPPQualityadj;
70
71 #ifndef HAVE_FREETYPE
72 static GtkWidget * HSFontFactor;
73 static GtkAdjustment * HSFontFactoradj;
74 #else
75 static GtkWidget * HSFontBlur, * HSFontOutLine, * HSFontTextScale, * HSFontOSDScale;
76 static GtkAdjustment * HSFontBluradj, * HSFontOutLineadj, * HSFontTextScaleadj, * HSFontOSDScaleadj;
77 static GtkWidget * CBFontEncoding, * EFontEncoding;
78 static GtkWidget * RBFontNoAutoScale, * BRFontAutoScaleWidth, * RBFontAutoScaleHeight, * RBFontAutoScaleDiagonal;
79 //static GtkWidget * AutoScale;
80 #endif
71 81
72 static struct 82 static struct
73 { 83 {
74 int vfm; 84 int vfm;
75 char * name; 85 char * name;
76 } lVFM[] = 86 } lVFM[] =
77 { { -1,MSGTR_PREFERENCES_None }, 87 {
88 { -1,MSGTR_PREFERENCES_None },
78 { 2,MSGTR_PREFERENCES_Codec1 }, 89 { 2,MSGTR_PREFERENCES_Codec1 },
79 { 3,MSGTR_PREFERENCES_Codec2 }, 90 { 3,MSGTR_PREFERENCES_Codec2 },
80 { 4,MSGTR_PREFERENCES_Codec3 }, 91 { 4,MSGTR_PREFERENCES_Codec3 },
81 { 5,MSGTR_PREFERENCES_Codec4 }, 92 { 5,MSGTR_PREFERENCES_Codec4 },
82 { 7,MSGTR_PREFERENCES_Codec5 }, 93 { 7,MSGTR_PREFERENCES_Codec5 },
83 { 10,MSGTR_PREFERENCES_Codec6 } }; 94 { 10,MSGTR_PREFERENCES_Codec6 },
95 { 0,NULL }
96 };
97
98 #ifdef HAVE_FREETYPE
99 static struct
100 {
101 char * name;
102 char * comment;
103 } lEncoding[] =
104 {
105 { "unicode", MSGTR_PREFERENCES_FontEncoding1 },
106 { "iso-8859-1", MSGTR_PREFERENCES_FontEncoding2 },
107 { "iso-8859-15", MSGTR_PREFERENCES_FontEncoding3 },
108 { "iso-8859-2", MSGTR_PREFERENCES_FontEncoding4 },
109 { "iso-8859-3", MSGTR_PREFERENCES_FontEncoding5 },
110 { "iso-8859-4", MSGTR_PREFERENCES_FontEncoding6 },
111 { "iso-8859-5", MSGTR_PREFERENCES_FontEncoding7 },
112 { "iso-8859-6", MSGTR_PREFERENCES_FontEncoding8 },
113 { "iso-8859-7", MSGTR_PREFERENCES_FontEncoding9 },
114 { "iso-8859-9", MSGTR_PREFERENCES_FontEncoding10 },
115 { "iso-8859-13", MSGTR_PREFERENCES_FontEncoding11 },
116 { "iso-8859-14", MSGTR_PREFERENCES_FontEncoding12 },
117 { "iso-8859-8", MSGTR_PREFERENCES_FontEncoding13 },
118 { "koi8-r", MSGTR_PREFERENCES_FontEncoding14 },
119 { "koi8-u/ru", MSGTR_PREFERENCES_FontEncoding15 },
120 { "cp936", MSGTR_PREFERENCES_FontEncoding16 },
121 { "big5", MSGTR_PREFERENCES_FontEncoding17 },
122 { "shift-jis", MSGTR_PREFERENCES_FontEncoding18 },
123 { "cp949", MSGTR_PREFERENCES_FontEncoding19 },
124 { "cp874", MSGTR_PREFERENCES_FontEncoding20 },
125 { NULL,NULL }
126 };
127 char * lCEncoding = NULL;
128 #endif
84 129
85 int gtkVPreferences = 0; 130 int gtkVPreferences = 0;
86 static int old_audio_driver = 0; 131 static int old_audio_driver = 0;
87 static char * ao_driver[3]; 132 static char * ao_driver[3];
88 static char * vo_driver[3]; 133 static char * vo_driver[3];
97 void HideDXR3Config( void ); 142 void HideDXR3Config( void );
98 #endif 143 #endif
99 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data ); 144 static gboolean prHScaler( GtkWidget * widget,GdkEventMotion * event,gpointer user_data );
100 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ); 145 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data );
101 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ); 146 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data );
147 #ifdef HAVE_FREETYPE
148 static void prEntry( GtkContainer * container,GtkWidget * widget,gpointer user_data );
149 #endif
102 150
103 extern int muted; 151 extern int muted;
104 152
105 void ShowPreferences( void ) 153 void ShowPreferences( void )
106 { 154 {
175 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpSrt ),gtkSubDumpSrt ); 223 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpSrt ),gtkSubDumpSrt );
176 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubUnicode ),sub_unicode ); 224 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubUnicode ),sub_unicode );
177 gtk_adjustment_set_value( HSSubDelayadj,sub_delay ); 225 gtk_adjustment_set_value( HSSubDelayadj,sub_delay );
178 gtk_adjustment_set_value( HSSubFPSadj,sub_fps ); 226 gtk_adjustment_set_value( HSSubFPSadj,sub_fps );
179 gtk_adjustment_set_value( HSSubPositionadj,sub_pos ); 227 gtk_adjustment_set_value( HSSubPositionadj,sub_pos );
180 gtk_adjustment_set_value( HSFontFactoradj,font_factor );
181 switch ( osd_level ) 228 switch ( osd_level )
182 { 229 {
183 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDNone ),TRUE ); break; 230 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDNone ),TRUE ); break;
184 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ),TRUE ); break; 231 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ),TRUE ); break;
185 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTandP ),TRUE ); break; 232 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTandP ),TRUE ); break;
186 } 233 }
187 #if 0 234 #if 0
188 if ( guiIntfStruct.Subtitlename ) gtk_entry_set_text( GTK_ENTRY( ESubtitleName ),guiIntfStruct.Subtitlename ); 235 if ( guiIntfStruct.Subtitlename ) gtk_entry_set_text( GTK_ENTRY( ESubtitleName ),guiIntfStruct.Subtitlename );
189 #endif 236 #endif
237 // font ...
190 if ( font_name ) gtk_entry_set_text( GTK_ENTRY( prEFontName ),font_name ); 238 if ( font_name ) gtk_entry_set_text( GTK_ENTRY( prEFontName ),font_name );
239 #ifndef HAVE_FREETYPE
240 gtk_adjustment_set_value( HSFontFactoradj,font_factor );
241 #else
242 gtk_adjustment_set_value( HSFontBluradj,subtitle_font_radius );
243 gtk_adjustment_set_value( HSFontOutLineadj,subtitle_font_thickness );
244 gtk_adjustment_set_value( HSFontTextScaleadj,text_font_scale_factor );
245 gtk_adjustment_set_value( HSFontOSDScaleadj,osd_font_scale_factor );
246 if ( subtitle_font_encoding )
247 {
248 int i;
249 for ( i=0;lEncoding[i].name;i++ )
250 if ( !gstrcmp( subtitle_font_encoding,lEncoding[i].name ) ) break;
251 if ( lEncoding[i].name ) lCEncoding=lEncoding[i].comment;
252 gtk_entry_set_text( GTK_ENTRY( EFontEncoding ),lCEncoding );
253 }
254 switch ( subtitle_autoscale )
255 {
256 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ),TRUE ); break;
257 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( BRFontAutoScaleWidth ),TRUE ); break;
258 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ),TRUE ); break;
259 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ),TRUE ); break;
260 }
261 #endif
191 262
192 // -- 4. page 263 // -- 4. page
193 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ),force_ni ); 264 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ),force_ni );
194 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBIndex ),index_mode ); 265 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBIndex ),index_mode );
195 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVopPP ); 266 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVopPP );
228 // -- signals 299 // -- signals
229 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 ); 300 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 );
230 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); 301 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 );
231 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 ); 302 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 );
232 gtk_signal_connect( GTK_OBJECT( CBNoSound ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)3 ); 303 gtk_signal_connect( GTK_OBJECT( CBNoSound ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)3 );
304 #ifdef HAVE_FREETYPE
305 gtk_signal_connect( GTK_OBJECT( RBFontNoAutoScale ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)4 );
306 gtk_signal_connect( GTK_OBJECT( BRFontAutoScaleWidth ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)5 );
307 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)6 );
308 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleDiagonal ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)7 );
309 #endif
233 310
234 gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 ); 311 gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 );
235 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 ); 312 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 );
236 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 ); 313 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 );
237 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 ); 314 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 );
238 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 ); 315 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 );
316 #ifndef HAVE_FREETYPE
239 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 ); 317 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 );
318 #else
319 gtk_signal_connect( GTK_OBJECT( HSFontBlur ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)6 );
320 gtk_signal_connect( GTK_OBJECT( HSFontOutLine ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)7 );
321 gtk_signal_connect( GTK_OBJECT( HSFontTextScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)8 );
322 gtk_signal_connect( GTK_OBJECT( HSFontOSDScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)9 );
323 gtk_signal_connect( GTK_OBJECT( EFontEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),NULL );
324 #endif
240 325
241 gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 ); 326 gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 );
242 gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 ); 327 gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 );
243 328
244 gtkVPreferences=1; 329 gtkVPreferences=1;
257 #endif 342 #endif
258 #ifdef HAVE_DXR3 343 #ifdef HAVE_DXR3
259 HideDXR3Config(); 344 HideDXR3Config();
260 #endif 345 #endif
261 } 346 }
347
348 #ifdef HAVE_FREETYPE
349 static void prEntry( GtkContainer * container,GtkWidget * widget,gpointer user_data )
350 {
351 char * comment = gtk_entry_get_text( GTK_ENTRY( EFontEncoding ) );
352 int i;
353
354 for ( i=0;lEncoding[i].name;i++ )
355 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break;
356
357 if ( lEncoding[i].comment ) gtkSet( gtkSetFontEncoding,0,lEncoding[i].name );
358 }
359 #endif
262 360
263 static void prDestroy( GtkObject * object,gpointer user_data ) 361 static void prDestroy( GtkObject * object,gpointer user_data )
264 { HidePreferences(); } 362 { HidePreferences(); }
265 363
266 static void prShow( GtkWidget * widget,gpointer user_data ) 364 static void prShow( GtkWidget * widget,gpointer user_data )
306 gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) ); 404 gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) );
307 sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) ); 405 sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) );
308 gtkSet( gtkSetSubDelay,HSSubDelayadj->value,NULL ); 406 gtkSet( gtkSetSubDelay,HSSubDelayadj->value,NULL );
309 gtkSet( gtkSetSubFPS,HSSubFPSadj->value,NULL ); 407 gtkSet( gtkSetSubFPS,HSSubFPSadj->value,NULL );
310 gtkSet( gtkSetSubPos,HSSubPositionadj->value,NULL ); 408 gtkSet( gtkSetSubPos,HSSubPositionadj->value,NULL );
311 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );
312 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0; 409 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0;
313 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1; 410 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1;
314 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2; 411 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2;
412
413 // font ...
315 guiSetFilename( font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) ); 414 guiSetFilename( font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) );
415 #ifndef HAVE_FREETYPE
416 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );
417 #else
418 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL );
419 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL );
420 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL );
421 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL );
422 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ) ) ) gtkSet( gtkSetFontAutoScale,0,NULL );
423 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( BRFontAutoScaleWidth ) ) ) gtkSet( gtkSetFontAutoScale,1,NULL );
424 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ) ) ) gtkSet( gtkSetFontAutoScale,2,NULL );
425 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ) ) ) gtkSet( gtkSetFontAutoScale,3,NULL );
426 #endif
316 427
317 // -- 4. page 428 // -- 4. page
318 force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) ); 429 force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) );
319 index_mode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) ); 430 index_mode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) );
320 gtkVopPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) ); 431 gtkVopPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) );
372 break; 483 break;
373 case 4: // sub position 484 case 4: // sub position
374 gtkSet( gtkSetSubPos,HSSubPositionadj->value,NULL ); 485 gtkSet( gtkSetSubPos,HSSubPositionadj->value,NULL );
375 break; 486 break;
376 case 5: // font factor 487 case 5: // font factor
488 #ifndef HAVE_FREETYPE
377 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL ); 489 gtkSet( gtkSetFontFactor,HSFontFactoradj->value,NULL );
378 break; 490 break;
491 #else
492 case 6: // font blur
493 gtkSet( gtkSetFontBlur,HSFontBluradj->value,NULL );
494 break;
495 case 7: // font outline
496 gtkSet( gtkSetFontOutLine,HSFontOutLineadj->value,NULL );
497 break;
498 case 8: // text scale
499 gtkSet( gtkSetFontTextScale,HSFontTextScaleadj->value,NULL );
500 break;
501 case 9: // osd scale
502 gtkSet( gtkSetFontOSDScale,HSFontOSDScaleadj->value,NULL );
503 break;
504 #endif
379 } 505 }
380 return FALSE; 506 return FALSE;
381 } 507 }
382 508
383 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ) 509 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data )
392 // case 2: // equalizer 518 // case 2: // equalizer
393 // if ( guiIntfStruct.Playing ) gtkMessageBox( GTK_MB_WARNING,"Please remember, this function need restart the playing." ); 519 // if ( guiIntfStruct.Playing ) gtkMessageBox( GTK_MB_WARNING,"Please remember, this function need restart the playing." );
394 // break; 520 // break;
395 case 3: // no sound 521 case 3: // no sound
396 mixer_mute(); 522 mixer_mute();
523 break;
524 case 4:
525 case 5:
526 case 6:
527 case 7:
528 gtkSet( gtkSetFontAutoScale,(float)((int)user_data - 4 ),NULL );
397 break; 529 break;
398 } 530 }
399 } 531 }
400 532
401 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ) 533 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data )
452 GtkWidget * label2; 584 GtkWidget * label2;
453 GtkWidget * vbox6; 585 GtkWidget * vbox6;
454 GtkWidget * frame5; 586 GtkWidget * frame5;
455 GtkWidget * vbox600; 587 GtkWidget * vbox600;
456 GSList * OSD_group = NULL; 588 GSList * OSD_group = NULL;
589 GSList * Font_group = NULL;
457 GList * CBVFM_items = NULL; 590 GList * CBVFM_items = NULL;
591 GList * CBFontEncoding_items = NULL;
458 GtkWidget * frame6; 592 GtkWidget * frame6;
459 GtkWidget * vbox7; 593 GtkWidget * vbox7;
460 GtkWidget * vbox8; 594 GtkWidget * vbox8;
461 GtkWidget * table1; 595 GtkWidget * table1;
462 GtkWidget * label11; 596 GtkWidget * label11;
466 GtkWidget * frame12; 600 GtkWidget * frame12;
467 GtkWidget * vbox603; 601 GtkWidget * vbox603;
468 GtkWidget * hbox6; 602 GtkWidget * hbox6;
469 GtkWidget * label15; 603 GtkWidget * label15;
470 GtkWidget * hbuttonbox5; 604 GtkWidget * hbuttonbox5;
605 #ifndef HAVE_FREETYPE
471 GtkWidget * hbox7; 606 GtkWidget * hbox7;
607 #endif
472 GtkWidget * label16; 608 GtkWidget * label16;
473 GtkWidget * label3; 609 GtkWidget * label3;
474 GtkWidget * vbox601; 610 GtkWidget * vbox601;
475 GtkWidget * frame11; 611 GtkWidget * frame11;
476 GtkWidget * vbox602; 612 GtkWidget * vbox602;
485 accel_group=gtk_accel_group_new(); 621 accel_group=gtk_accel_group_new();
486 622
487 Preferences=gtk_window_new( GTK_WINDOW_DIALOG ); 623 Preferences=gtk_window_new( GTK_WINDOW_DIALOG );
488 gtk_widget_set_name( Preferences,"Preferences" ); 624 gtk_widget_set_name( Preferences,"Preferences" );
489 gtk_object_set_data( GTK_OBJECT( Preferences ),"Preferences",Preferences ); 625 gtk_object_set_data( GTK_OBJECT( Preferences ),"Preferences",Preferences );
626 #ifndef HAVE_FREETYPE
490 gtk_widget_set_usize( Preferences,512,400 ); 627 gtk_widget_set_usize( Preferences,512,400 );
628 #else
629 gtk_widget_set_usize( Preferences,612,565 );
630 #endif
491 gtk_window_set_title( GTK_WINDOW( Preferences ),MSGTR_Preferences ); 631 gtk_window_set_title( GTK_WINDOW( Preferences ),MSGTR_Preferences );
492 gtk_window_set_position( GTK_WINDOW( Preferences ),GTK_WIN_POS_CENTER ); 632 gtk_window_set_position( GTK_WINDOW( Preferences ),GTK_WIN_POS_CENTER );
493 gtk_window_set_policy( GTK_WINDOW( Preferences ),FALSE,FALSE,FALSE ); 633 gtk_window_set_policy( GTK_WINDOW( Preferences ),FALSE,FALSE,FALSE );
494 gtk_window_set_wmclass( GTK_WINDOW( Preferences ),"Preferences","MPlayer" ); 634 gtk_window_set_wmclass( GTK_WINDOW( Preferences ),"Preferences","MPlayer" );
495 635
1201 gtk_widget_ref( BLoadFont ); 1341 gtk_widget_ref( BLoadFont );
1202 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"BLoadFont",BLoadFont,(GtkDestroyNotify)gtk_widget_unref ); 1342 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"BLoadFont",BLoadFont,(GtkDestroyNotify)gtk_widget_unref );
1203 gtk_widget_show( BLoadFont ); 1343 gtk_widget_show( BLoadFont );
1204 gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),BLoadFont ); 1344 gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),BLoadFont );
1205 1345
1346 #ifndef HAVE_FREETYPE
1206 hbox7=gtk_hbox_new( FALSE,0 ); 1347 hbox7=gtk_hbox_new( FALSE,0 );
1207 gtk_widget_set_name( hbox7,"hbox7" ); 1348 gtk_widget_set_name( hbox7,"hbox7" );
1208 gtk_widget_ref( hbox7 ); 1349 gtk_widget_ref( hbox7 );
1209 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"hbox7",hbox7,(GtkDestroyNotify)gtk_widget_unref ); 1350 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"hbox7",hbox7,(GtkDestroyNotify)gtk_widget_unref );
1210 gtk_widget_show( hbox7 ); 1351 gtk_widget_show( hbox7 );
1226 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontFactor",HSFontFactor,(GtkDestroyNotify)gtk_widget_unref ); 1367 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontFactor",HSFontFactor,(GtkDestroyNotify)gtk_widget_unref );
1227 gtk_widget_show( HSFontFactor ); 1368 gtk_widget_show( HSFontFactor );
1228 gtk_box_pack_start( GTK_BOX( hbox7 ),HSFontFactor,TRUE,TRUE,0 ); 1369 gtk_box_pack_start( GTK_BOX( hbox7 ),HSFontFactor,TRUE,TRUE,0 );
1229 gtk_scale_set_value_pos( GTK_SCALE( HSFontFactor ),GTK_POS_RIGHT ); 1370 gtk_scale_set_value_pos( GTK_SCALE( HSFontFactor ),GTK_POS_RIGHT );
1230 gtk_scale_set_digits( GTK_SCALE( HSFontFactor ),2 ); 1371 gtk_scale_set_digits( GTK_SCALE( HSFontFactor ),2 );
1231 1372 #else
1232 label3=gtk_label_new( "Subtitle & OSD" ); 1373
1374
1375 // static GtkWidget * RBFontNoAutoScale, * BRFontAutoScaleWidth, * RBFontAutoScaleHeight, * RBFontAutoScaleDiagonal;
1376
1377 RBFontNoAutoScale=gtk_radio_button_new_with_label( Font_group,MSGTR_PREFERENCES_FontNoAutoScale );
1378 Font_group=gtk_radio_button_group( GTK_RADIO_BUTTON( RBFontNoAutoScale ) );
1379 gtk_widget_set_name( RBFontNoAutoScale,"RBFontNoAutoScale" );
1380 gtk_widget_ref( RBFontNoAutoScale );
1381 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"RBFontNoAutoScale",RBFontNoAutoScale,(GtkDestroyNotify)gtk_widget_unref );
1382 gtk_widget_show( RBFontNoAutoScale );
1383 gtk_box_pack_start( GTK_BOX( vbox603 ),RBFontNoAutoScale,FALSE,FALSE,0 );
1384
1385 BRFontAutoScaleWidth=gtk_radio_button_new_with_label( Font_group,MSGTR_PREFERENCES_FontPropWidth );
1386 Font_group=gtk_radio_button_group( GTK_RADIO_BUTTON( BRFontAutoScaleWidth ) );
1387 gtk_widget_set_name( BRFontAutoScaleWidth,"BRFontAutoScaleWidth" );
1388 gtk_widget_ref( BRFontAutoScaleWidth );
1389 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"BRFontAutoScaleWidth",BRFontAutoScaleWidth,(GtkDestroyNotify)gtk_widget_unref );
1390 gtk_widget_show( BRFontAutoScaleWidth );
1391 gtk_box_pack_start( GTK_BOX( vbox603 ),BRFontAutoScaleWidth,FALSE,FALSE,0 );
1392
1393 RBFontAutoScaleHeight=gtk_radio_button_new_with_label( Font_group,MSGTR_PREFERENCES_FontPropHeight );
1394 Font_group=gtk_radio_button_group( GTK_RADIO_BUTTON( RBFontAutoScaleHeight ) );
1395 gtk_widget_set_name( RBFontAutoScaleHeight,"RBFontAutoScaleHeight" );
1396 gtk_widget_ref( RBFontAutoScaleHeight );
1397 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"RBFontAutoScaleHeight",RBFontAutoScaleHeight,(GtkDestroyNotify)gtk_widget_unref );
1398 gtk_widget_show( RBFontAutoScaleHeight );
1399 gtk_box_pack_start( GTK_BOX( vbox603 ),RBFontAutoScaleHeight,FALSE,FALSE,0 );
1400
1401 RBFontAutoScaleDiagonal=gtk_radio_button_new_with_label( Font_group,MSGTR_PREFERENCES_FontPropDiagonal );
1402 Font_group=gtk_radio_button_group( GTK_RADIO_BUTTON( RBFontAutoScaleDiagonal ) );
1403 gtk_widget_set_name( RBFontAutoScaleDiagonal,"RBFontAutoScaleDiagonal" );
1404 gtk_widget_ref( RBFontAutoScaleDiagonal );
1405 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"RBFontAutoScaleDiagonal",RBFontAutoScaleDiagonal,(GtkDestroyNotify)gtk_widget_unref );
1406 gtk_widget_show( RBFontAutoScaleDiagonal );
1407 gtk_box_pack_start( GTK_BOX( vbox603 ),RBFontAutoScaleDiagonal,FALSE,FALSE,0 );
1408
1409 table1=gtk_table_new( 3,2,FALSE );
1410 gtk_widget_set_name( table1,"table1" );
1411 gtk_widget_ref( table1 );
1412 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"table1",table1,(GtkDestroyNotify)gtk_widget_unref );
1413 gtk_widget_show( table1 );
1414 gtk_box_pack_start( GTK_BOX( vbox603 ),table1,FALSE,FALSE,0 );
1415
1416 label16=gtk_label_new( MSGTR_PREFERENCES_FontEncoding );
1417 gtk_widget_set_name( label16,"label16" );
1418 gtk_widget_ref( label16 );
1419 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label16",label16,(GtkDestroyNotify)gtk_widget_unref );
1420 gtk_widget_show( label16 );
1421 gtk_table_attach( GTK_TABLE( table1 ),label16,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1422 gtk_misc_set_alignment( GTK_MISC( label16 ),7.45058e-09,0.5 );
1423 gtk_misc_set_padding( GTK_MISC( label16 ),4,0 );
1424
1425 CBFontEncoding=gtk_combo_new();
1426 gtk_widget_set_name( CBFontEncoding,"CBFontEncoding" );
1427 gtk_widget_ref( CBFontEncoding );
1428 gtk_widget_show( CBFontEncoding );
1429 gtk_table_attach( GTK_TABLE( table1 ),CBFontEncoding,1,2,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1430 {
1431 int i;
1432 for ( i=0;lEncoding[i].name;i++ ) CBFontEncoding_items=g_list_append( CBFontEncoding_items,lEncoding[i].comment );
1433 }
1434 gtk_combo_set_popdown_strings( GTK_COMBO( CBFontEncoding ),CBFontEncoding_items );
1435 g_list_free( CBFontEncoding_items );
1436
1437 EFontEncoding=GTK_COMBO( CBFontEncoding )->entry;
1438 gtk_widget_set_name( EFontEncoding,"EFontEncoding" );
1439 gtk_entry_set_editable( GTK_ENTRY( EFontEncoding ),FALSE );
1440 gtk_widget_ref( EFontEncoding );
1441 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"EFontEncoding",EFontEncoding,(GtkDestroyNotify)gtk_widget_unref );
1442 gtk_widget_show( EFontEncoding );
1443
1444 label16=gtk_label_new( MSGTR_PREFERENCES_FontBlur );
1445 gtk_widget_set_name( label16,"label16" );
1446 gtk_widget_ref( label16 );
1447 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label16",label16,(GtkDestroyNotify)gtk_widget_unref );
1448 gtk_widget_show( label16 );
1449 gtk_table_attach( GTK_TABLE( table1 ),label16,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1450 gtk_misc_set_alignment( GTK_MISC( label16 ),7.45058e-09,0.5 );
1451 gtk_misc_set_padding( GTK_MISC( label16 ),4,0 );
1452
1453 HSFontBluradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
1454 HSFontBlur=gtk_hscale_new( HSFontBluradj );
1455 gtk_widget_set_name( HSFontBlur,"HSFontBlur" );
1456 gtk_widget_ref( HSFontBlur );
1457 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontBlur",HSFontBlur,(GtkDestroyNotify)gtk_widget_unref );
1458 gtk_widget_show( HSFontBlur );
1459 gtk_table_attach( GTK_TABLE( table1 ),HSFontBlur,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1460 gtk_scale_set_value_pos( GTK_SCALE( HSFontBlur ),GTK_POS_RIGHT );
1461 gtk_scale_set_digits( GTK_SCALE( HSFontBlur ),2 );
1462
1463 label16=gtk_label_new( MSGTR_PREFERENCES_FontOutLine );
1464 gtk_widget_set_name( label16,"label16" );
1465 gtk_widget_ref( label16 );
1466 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label16",label16,(GtkDestroyNotify)gtk_widget_unref );
1467 gtk_widget_show( label16 );
1468 gtk_table_attach( GTK_TABLE( table1 ),label16,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1469 gtk_misc_set_alignment( GTK_MISC( label16 ),7.45058e-09,0.5 );
1470 gtk_misc_set_padding( GTK_MISC( label16 ),4,0 );
1471
1472 HSFontOutLineadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
1473 HSFontOutLine=gtk_hscale_new( HSFontOutLineadj );
1474 gtk_widget_set_name( HSFontOutLine,"HSFontOutLine" );
1475 gtk_widget_ref( HSFontOutLine );
1476 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontOutLine",HSFontOutLine,(GtkDestroyNotify)gtk_widget_unref );
1477 gtk_widget_show( HSFontOutLine );
1478 gtk_table_attach( GTK_TABLE( table1 ),HSFontOutLine,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1479 gtk_scale_set_value_pos( GTK_SCALE( HSFontOutLine ),GTK_POS_RIGHT );
1480 gtk_scale_set_digits( GTK_SCALE( HSFontOutLine ),2 );
1481
1482 label16=gtk_label_new( MSGTR_PREFERENCES_FontTextScale );
1483 gtk_widget_set_name( label16,"label16" );
1484 gtk_widget_ref( label16 );
1485 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label16",label16,(GtkDestroyNotify)gtk_widget_unref );
1486 gtk_widget_show( label16 );
1487 gtk_table_attach( GTK_TABLE( table1 ),label16,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1488 gtk_misc_set_alignment( GTK_MISC( label16 ),7.45058e-09,0.5 );
1489 gtk_misc_set_padding( GTK_MISC( label16 ),4,0 );
1490
1491 HSFontTextScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
1492 HSFontTextScale=gtk_hscale_new( HSFontTextScaleadj );
1493 gtk_widget_set_name( HSFontTextScale,"HSFontTextScale" );
1494 gtk_widget_ref( HSFontTextScale );
1495 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontTextScale",HSFontTextScale,(GtkDestroyNotify)gtk_widget_unref );
1496 gtk_widget_show( HSFontTextScale );
1497 gtk_table_attach( GTK_TABLE( table1 ),HSFontTextScale,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1498 gtk_scale_set_value_pos( GTK_SCALE( HSFontTextScale ),GTK_POS_RIGHT );
1499 gtk_scale_set_digits( GTK_SCALE( HSFontTextScale ),2 );
1500
1501 label16=gtk_label_new( MSGTR_PREFERENCES_FontOSDScale );
1502 gtk_widget_set_name( label16,"label16" );
1503 gtk_widget_ref( label16 );
1504 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label16",label16,(GtkDestroyNotify)gtk_widget_unref );
1505 gtk_widget_show( label16 );
1506 gtk_table_attach( GTK_TABLE( table1 ),label16,0,1,4,5,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1507 gtk_misc_set_alignment( GTK_MISC( label16 ),7.45058e-09,0.5 );
1508 gtk_misc_set_padding( GTK_MISC( label16 ),4,0 );
1509
1510 HSFontOSDScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) );
1511 HSFontOSDScale=gtk_hscale_new( HSFontOSDScaleadj );
1512 gtk_widget_set_name( HSFontOSDScale,"HSFontOSDScale" );
1513 gtk_widget_ref( HSFontOSDScale );
1514 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"HSFontOSDScale",HSFontOSDScale,(GtkDestroyNotify)gtk_widget_unref );
1515 gtk_widget_show( HSFontOSDScale );
1516 gtk_table_attach( GTK_TABLE( table1 ),HSFontOSDScale,1,2,4,5,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 );
1517 gtk_scale_set_value_pos( GTK_SCALE( HSFontOSDScale ),GTK_POS_RIGHT );
1518 gtk_scale_set_digits( GTK_SCALE( HSFontOSDScale ),2 );
1519
1520 #endif
1521
1522 label3=gtk_label_new( MSGTR_PREFERENCES_SubtitleOSD );
1233 gtk_widget_set_name( label3,"label3" ); 1523 gtk_widget_set_name( label3,"label3" );
1234 gtk_widget_ref( label3 ); 1524 gtk_widget_ref( label3 );
1235 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label3",label3,(GtkDestroyNotify)gtk_widget_unref ); 1525 gtk_object_set_data_full( GTK_OBJECT( Preferences ),"label3",label3,(GtkDestroyNotify)gtk_widget_unref );
1236 gtk_widget_show( label3 ); 1526 gtk_widget_show( label3 );
1237 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),2 ),label3 ); 1527 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),2 ),label3 );
1359 gtk_widget_ref( CBVFM ); 1649 gtk_widget_ref( CBVFM );
1360 gtk_widget_show( CBVFM ); 1650 gtk_widget_show( CBVFM );
1361 gtk_box_pack_start( GTK_BOX( hbox5 ),CBVFM,TRUE,TRUE,0 ); 1651 gtk_box_pack_start( GTK_BOX( hbox5 ),CBVFM,TRUE,TRUE,0 );
1362 { 1652 {
1363 int i; 1653 int i;
1364 for ( i=0;i<7;i++ ) CBVFM_items=g_list_append( CBVFM_items,lVFM[i].name ); 1654 for ( i=0;lVFM[i].name;i++ ) CBVFM_items=g_list_append( CBVFM_items,lVFM[i].name );
1365 } 1655 }
1366 gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),CBVFM_items ); 1656 gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),CBVFM_items );
1367 g_list_free( CBVFM_items ); 1657 g_list_free( CBVFM_items );
1368 1658
1369 EVFM=GTK_COMBO( CBVFM )->entry; 1659 EVFM=GTK_COMBO( CBVFM )->entry;