Mercurial > mplayer.hg
annotate gui/dialog/preferences.c @ 36008:d154d0035cb0
Don't use WidgetDestroy().
(It's not the best idea to call gtk_widget_destroy() there while the
object is currently being destroyed.)
In order to set the widget pointer to NULL, use gtk_widget_destroyed().
Simply destroy the widget to automatically get the pointer set to NULL
then.
author | ib |
---|---|
date | Sat, 30 Mar 2013 14:32:07 +0000 |
parents | 8fea01665c83 |
children | 5c720c434d56 |
rev | line source |
---|---|
33572 | 1 /* |
2 * This file is part of MPlayer. | |
3 * | |
4 * MPlayer is free software; you can redistribute it and/or modify | |
5 * it under the terms of the GNU General Public License as published by | |
6 * the Free Software Foundation; either version 2 of the License, or | |
7 * (at your option) any later version. | |
8 * | |
9 * MPlayer is distributed in the hope that it will be useful, | |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 * GNU General Public License for more details. | |
13 * | |
14 * You should have received a copy of the GNU General Public License along | |
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., | |
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | |
17 */ | |
18 | |
19 #include <stdlib.h> | |
20 #include <sys/types.h> | |
21 #include <sys/stat.h> | |
22 #include <unistd.h> | |
23 #include <string.h> | |
35903 | 24 #include <strings.h> |
33572 | 25 |
26 #include <gdk/gdkkeysyms.h> | |
27 #include <gtk/gtk.h> | |
28 | |
29 #include "config.h" | |
30 #include "help_mp.h" | |
31 #include "mixer.h" | |
32 #include "mpcommon.h" | |
33 #include "libao2/audio_out.h" | |
34 #include "sub/sub.h" | |
35 #include "libvo/video_out.h" | |
36 #include "libvo/x11_common.h" | |
37 #include "stream/stream.h" | |
38 #include "libmpdemux/demuxer.h" | |
39 #include "libmpdemux/stheader.h" | |
40 #include "libmpcodecs/dec_video.h" | |
41 #include "sub/font_load.h" | |
42 | |
35525 | 43 #include "gui/app/app.h" |
44 #include "gui/app/cfg.h" | |
45 #include "gui/app/gui.h" | |
33572 | 46 #include "gui/interface.h" |
35528 | 47 #include "gui/ui/ui.h" |
35529 | 48 #include "dialog.h" |
33741 | 49 #include "gui/util/list.h" |
33739 | 50 #include "gui/util/mem.h" |
33737 | 51 #include "gui/util/string.h" |
33572 | 52 #include "preferences.h" |
53 #include "fileselect.h" | |
54 #include "tools.h" | |
55 | |
34684 | 56 /* for mpcodecs_[av]d_drivers: */ |
33572 | 57 #include "libmpcodecs/vd.h" |
58 #include "libmpcodecs/ad.h" | |
59 | |
60 GtkWidget * Preferences = NULL; | |
61 static GtkWidget * AConfig; | |
62 static GtkWidget * VConfig; | |
63 //static GtkWidget * BLoadSubtitle; | |
64 static GtkWidget * BLoadFont; | |
65 static GtkWidget * BOk; | |
66 static GtkWidget * BCancel; | |
67 | |
68 static GtkWidget * CLADrivers; | |
69 static GtkWidget * CLVDrivers; | |
70 | |
71 //static GtkWidget * ESubtitleName; | |
72 GtkWidget * prEFontName; | |
73 GtkWidget * prEDVDDevice; | |
74 GtkWidget * prECDRomDevice; | |
75 static GtkWidget * EVFM; | |
76 static GtkWidget * EAFM; | |
77 | |
78 static GtkWidget * CBVFM; | |
79 static GtkWidget * CBAFM; | |
80 static GtkWidget * CBAudioEqualizer; | |
81 //static GtkWidget * CBSurround; | |
82 static GtkWidget * CBExtraStereo; | |
83 static GtkWidget * CBNormalize; | |
84 static GtkWidget * CBSoftwareMixer; | |
85 static GtkWidget * CBDoubleBuffer; | |
86 static GtkWidget * CBDR; | |
87 static GtkWidget * CBFramedrop; | |
88 static GtkWidget * CBHFramedrop; | |
89 //static GtkWidget * CBFullScreen; | |
90 static GtkWidget * CBShowVideoWindow; | |
91 static GtkWidget * CBNonInterlaved; | |
92 static GtkWidget * CBIndex; | |
93 static GtkWidget * CBFlip; | |
94 static GtkWidget * CBNoAutoSub; | |
95 static GtkWidget * CBSubUnicode; | |
96 static GtkWidget * CBSubOverlap; | |
97 static GtkWidget * CBDumpMPSub; | |
98 static GtkWidget * CBDumpSrt; | |
99 static GtkWidget * CBUseASS; | |
100 static GtkWidget * CBASSUseMargins; | |
101 static GtkWidget * SBASSTopMargin; | |
102 static GtkWidget * SBASSBottomMargin; | |
103 static GtkWidget * CBPostprocess; | |
104 static GtkWidget * CBCache; | |
105 static GtkWidget * CBLoadFullscreen; | |
106 static GtkWidget * CBSaveWinPos; | |
107 static GtkWidget * CBStopXScreenSaver; | |
108 static GtkWidget * CBPlayBar; | |
109 static GtkWidget * CBNoIdle; | |
110 | |
111 static GtkWidget * SBCache; | |
112 static GtkAdjustment * SBCacheadj; | |
113 | |
114 static GtkWidget * CBAutoSync; | |
115 static GtkWidget * SBAutoSync; | |
116 static GtkAdjustment * SBAutoSyncadj; | |
117 | |
118 static GtkWidget * RBOSDNone; | |
33777
235c6f2514be
Arrange OSD preferences according to option 'osdlevel'.
ib
parents:
33769
diff
changeset
|
119 static GtkWidget * RBOSDIndicator; |
33572 | 120 static GtkWidget * RBOSDTandP; |
121 static GtkWidget * RBOSDTPTT; | |
122 | |
123 static GtkWidget * HSAudioDelay; | |
124 static GtkWidget * HSExtraStereoMul; | |
125 static GtkWidget * HSPanscan; | |
126 static GtkWidget * HSSubDelay; | |
127 static GtkWidget * HSSubPosition; | |
128 static GtkWidget * HSSubFPS; | |
129 static GtkWidget * HSPPQuality; | |
130 static GtkWidget * HSFPS; | |
131 | |
132 static GtkAdjustment * HSExtraStereoMuladj, * HSAudioDelayadj, * HSPanscanadj, * HSSubDelayadj; | |
133 static GtkAdjustment * HSSubPositionadj, * HSSubFPSadj, * HSPPQualityadj, * HSFPSadj; | |
134 | |
135 #ifndef CONFIG_FREETYPE | |
136 static GtkWidget * HSFontFactor; | |
137 static GtkAdjustment * HSFontFactoradj; | |
138 #else | |
139 static GtkWidget * HSFontBlur, * HSFontOutLine, * HSFontTextScale, * HSFontOSDScale; | |
140 static GtkAdjustment * HSFontBluradj, * HSFontOutLineadj, * HSFontTextScaleadj, * HSFontOSDScaleadj; | |
141 static GtkWidget * CBFontEncoding, * EFontEncoding; | |
142 static GtkWidget * RBFontNoAutoScale, * RBFontAutoScaleWidth, * RBFontAutoScaleHeight, * RBFontAutoScaleDiagonal; | |
143 //static GtkWidget * AutoScale; | |
144 #endif | |
145 | |
146 #ifdef CONFIG_ICONV | |
147 static GtkWidget * CBSubEncoding, * ESubEncoding; | |
148 #endif | |
149 | |
150 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV) | |
151 static struct | |
152 { | |
153 char * name; | |
154 char * comment; | |
155 } lEncoding[] = | |
156 { | |
157 { "unicode", MSGTR_PREFERENCES_FontEncoding1 }, | |
158 { "iso-8859-1", MSGTR_PREFERENCES_FontEncoding2 }, | |
159 { "iso-8859-15", MSGTR_PREFERENCES_FontEncoding3 }, | |
160 { "iso-8859-2", MSGTR_PREFERENCES_FontEncoding4 }, | |
161 { "cp1250", MSGTR_PREFERENCES_FontEncoding22}, | |
162 { "iso-8859-3", MSGTR_PREFERENCES_FontEncoding5 }, | |
163 { "iso-8859-4", MSGTR_PREFERENCES_FontEncoding6 }, | |
164 { "iso-8859-5", MSGTR_PREFERENCES_FontEncoding7 }, | |
165 { "cp1251", MSGTR_PREFERENCES_FontEncoding21}, | |
166 { "iso-8859-6", MSGTR_PREFERENCES_FontEncoding8 }, | |
167 { "cp1256", MSGTR_PREFERENCES_FontEncoding23 }, | |
168 { "iso-8859-7", MSGTR_PREFERENCES_FontEncoding9 }, | |
169 { "iso-8859-9", MSGTR_PREFERENCES_FontEncoding10 }, | |
170 { "iso-8859-13", MSGTR_PREFERENCES_FontEncoding11 }, | |
171 { "iso-8859-14", MSGTR_PREFERENCES_FontEncoding12 }, | |
172 { "iso-8859-8", MSGTR_PREFERENCES_FontEncoding13 }, | |
173 { "koi8-r", MSGTR_PREFERENCES_FontEncoding14 }, | |
174 { "koi8-u/ru", MSGTR_PREFERENCES_FontEncoding15 }, | |
175 { "cp936", MSGTR_PREFERENCES_FontEncoding16 }, | |
176 { "big5", MSGTR_PREFERENCES_FontEncoding17 }, | |
177 { "shift-jis", MSGTR_PREFERENCES_FontEncoding18 }, | |
178 { "cp949", MSGTR_PREFERENCES_FontEncoding19 }, | |
179 { "cp874", MSGTR_PREFERENCES_FontEncoding20 }, | |
180 { NULL,NULL } | |
181 }; | |
182 #endif | |
183 | |
184 static int old_audio_driver = 0; | |
185 static char * ao_driver[3]; | |
186 static char * vo_driver[3]; | |
187 static int old_video_driver = 0; | |
188 | |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
189 static GtkWidget *AudioConfig; |
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
190 |
33572 | 191 void ShowDXR3Config( void ); |
192 void ShowAudioConfig( void ); | |
193 | |
34466
a650895d50a5
Use correct data types and common variable names in GTK callback functions.
ib
parents:
34454
diff
changeset
|
194 static gboolean prHScaler( GtkWidget * widget,GdkEvent * event,gpointer user_data ); |
33572 | 195 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ); |
196 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ); | |
197 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV) | |
34466
a650895d50a5
Use correct data types and common variable names in GTK callback functions.
ib
parents:
34454
diff
changeset
|
198 static void prEntry( GtkEditable * editable,gpointer user_data ); |
33572 | 199 #endif |
200 | |
201 #if defined(CONFIG_FREETYPE) || defined(CONFIG_ICONV) | |
34466
a650895d50a5
Use correct data types and common variable names in GTK callback functions.
ib
parents:
34454
diff
changeset
|
202 static void prEntry( GtkEditable * editable,gpointer user_data ) |
33572 | 203 { |
204 const char * comment; | |
205 int i; | |
206 | |
207 switch( (int)user_data ) | |
208 { | |
209 #ifdef CONFIG_FREETYPE | |
210 case 0: // font encoding | |
211 comment=gtk_entry_get_text( GTK_ENTRY( EFontEncoding ) ); | |
212 for ( i=0;lEncoding[i].name;i++ ) | |
213 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break; | |
33766 | 214 if ( lEncoding[i].comment ) mplayer( MPLAYER_SET_FONT_ENCODING,0,lEncoding[i].name ); |
33572 | 215 break; |
216 #endif | |
217 #ifdef CONFIG_ICONV | |
218 case 1: // sub encoding | |
219 comment=gtk_entry_get_text( GTK_ENTRY( ESubEncoding ) ); | |
220 for ( i=0;lEncoding[i].name;i++ ) | |
221 if ( !gstrcmp( lEncoding[i].comment,comment ) ) break; | |
33766 | 222 if ( lEncoding[i].comment ) mplayer( MPLAYER_SET_SUB_ENCODING,0,lEncoding[i].name ); |
223 else mplayer( MPLAYER_SET_SUB_ENCODING,0,NULL ); | |
33572 | 224 break; |
225 #endif | |
226 } | |
227 } | |
228 #endif | |
229 | |
230 #define bAConfig 0 | |
231 #define bVconfig 1 | |
232 #define bOk 2 | |
233 #define bCancel 3 | |
234 #define bLSubtitle 4 | |
235 #define bLFont 5 | |
236 | |
237 static void prButton( GtkButton * button, gpointer user_data ) | |
238 { | |
239 switch ( (int)user_data ) | |
240 { | |
241 case bOk: | |
34684 | 242 /* 1st page */ |
33572 | 243 gtkEnableAudioEqualizer=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ) ); |
244 gtkAOExtraStereo=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ); | |
245 gtkAONorm=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNormalize ) ); | |
246 soft_vol=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ) ); | |
33769 | 247 mplayer( MPLAYER_SET_EXTRA_STEREO,HSExtraStereoMuladj->value,0 ); |
33572 | 248 audio_delay=HSAudioDelayadj->value; |
249 | |
34610 | 250 listSet( &audio_driver_list,ao_driver[0] ); |
251 listSet( &video_driver_list,vo_driver[0] ); | |
33572 | 252 |
34684 | 253 /* 2nd page */ |
33572 | 254 vo_doublebuffering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ) ); |
255 vo_directrendering=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDR ) ); | |
256 | |
257 frame_dropping=0; | |
258 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFramedrop ) ) == TRUE ) frame_dropping=1; | |
259 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBHFramedrop ) ) == TRUE ) frame_dropping=2; | |
260 | |
261 flip=-1; | |
262 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBFlip ) ) ) flip=1; | |
263 | |
264 force_fps=HSFPSadj->value; | |
265 | |
34684 | 266 /* 3rd page */ |
33572 | 267 suboverlap_enabled=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubOverlap ) ); |
268 sub_auto=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ) ); | |
269 gtkSubDumpMPSub=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ) ); | |
270 gtkSubDumpSrt=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBDumpSrt ) ); | |
271 sub_unicode=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSubUnicode ) ); | |
272 #ifdef CONFIG_ASS | |
273 gtkASS.enabled=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBUseASS ) ); | |
274 gtkASS.use_margins=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBASSUseMargins ) ); | |
275 gtkASS.top_margin=gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( SBASSTopMargin ) ); | |
276 gtkASS.bottom_margin=gtk_spin_button_get_value_as_int( GTK_SPIN_BUTTON( SBASSBottomMargin ) ); | |
277 #endif | |
278 sub_delay=HSSubDelayadj->value; | |
279 sub_fps=HSSubFPSadj->value; | |
280 sub_pos=(int)HSSubPositionadj->value; | |
281 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDNone ) ) ) osd_level=0; | |
282 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ) ) ) osd_level=1; | |
283 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTandP ) ) ) osd_level=2; | |
284 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBOSDTPTT ) ) ) osd_level=3; | |
285 | |
286 | |
34684 | 287 /* 4th page */ |
33740
2c02269701bd
Remove macros guiSetFilename() and guiSetDF() from interface.h.
ib
parents:
33739
diff
changeset
|
288 setdup( &font_name,gtk_entry_get_text( GTK_ENTRY( prEFontName ) ) ); |
33572 | 289 #ifndef CONFIG_FREETYPE |
33769 | 290 mplayer( MPLAYER_SET_FONT_FACTOR,HSFontFactoradj->value,0 ); |
33572 | 291 #else |
33769 | 292 mplayer( MPLAYER_SET_FONT_BLUR,HSFontBluradj->value,0 ); |
293 mplayer( MPLAYER_SET_FONT_OUTLINE,HSFontOutLineadj->value,0 ); | |
294 mplayer( MPLAYER_SET_FONT_TEXTSCALE,HSFontTextScaleadj->value,0 ); | |
295 mplayer( MPLAYER_SET_FONT_OSDSCALE,HSFontOSDScaleadj->value,0 ); | |
296 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ) ) ) mplayer( MPLAYER_SET_FONT_AUTOSCALE,0,0 ); | |
297 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ) ) ) mplayer( MPLAYER_SET_FONT_AUTOSCALE,1,0 ); | |
298 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleWidth ) ) ) mplayer( MPLAYER_SET_FONT_AUTOSCALE,2,0 ); | |
299 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ) ) ) mplayer( MPLAYER_SET_FONT_AUTOSCALE,3,0 ); | |
33572 | 300 #endif |
301 | |
34684 | 302 /* -- 5th page */ |
33572 | 303 force_ni=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ) ); |
304 index_mode=-1; | |
305 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBIndex ) ) ) index_mode=1; | |
306 | |
307 { | |
308 int i; | |
309 const char * tmp = gtk_entry_get_text( GTK_ENTRY( EVFM ) ); | |
310 for( i=0;mpcodecs_vd_drivers[i];i++ ) | |
311 if ( !gstrcmp( tmp,(char *)mpcodecs_vd_drivers[i]->info->name ) ) | |
34610 | 312 { listSet( &video_fm_list,(char *)mpcodecs_vd_drivers[i]->info->short_name ); break; } |
33572 | 313 } |
314 | |
315 { | |
316 int i; | |
317 const char * tmp = gtk_entry_get_text( GTK_ENTRY( EAFM ) ); | |
318 for( i=0;mpcodecs_ad_drivers[i];i++ ) | |
319 if ( !gstrcmp( tmp,(char *)mpcodecs_ad_drivers[i]->info->name ) ) | |
34610 | 320 { listSet( &audio_fm_list,(char *)mpcodecs_ad_drivers[i]->info->short_name ); break; } |
33572 | 321 } |
322 | |
34684 | 323 /* 6th page */ |
33572 | 324 gtkVfPP=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPostprocess ) ); |
325 gtkLoadFullscreen=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ) ); | |
326 gui_save_pos=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ) ); | |
327 gtkShowVideoWindow=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) ); | |
328 stop_xscreensaver=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ) ); | |
329 gtkEnablePlayBar=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBPlayBar ) ); | |
330 player_idle_mode=!gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBNoIdle ) ); | |
33769 | 331 mplayer( MPLAYER_SET_AUTO_QUALITY,HSPPQualityadj->value,0 ); |
33572 | 332 |
35493 | 333 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) { gtkCacheSize=(int)SBCacheadj->value; gtkCacheOn=True; } |
334 else gtkCacheOn=False; | |
33572 | 335 |
35493 | 336 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAutoSync ) ) ) { gtkAutoSync=(int)SBAutoSyncadj->value; gtkAutoSyncOn=True; } |
337 else gtkAutoSyncOn=False; | |
33572 | 338 |
33740
2c02269701bd
Remove macros guiSetFilename() and guiSetDF() from interface.h.
ib
parents:
33739
diff
changeset
|
339 setdup( &dvd_device,gtk_entry_get_text( GTK_ENTRY( prEDVDDevice ) ) ); |
2c02269701bd
Remove macros guiSetFilename() and guiSetDF() from interface.h.
ib
parents:
33739
diff
changeset
|
340 setdup( &cdrom_device,gtk_entry_get_text( GTK_ENTRY( prECDRomDevice ) ) ); |
33572 | 341 |
342 case bCancel: | |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
343 gtk_widget_destroy( Preferences ); |
36008 | 344 if ( AudioConfig ) gtk_widget_destroy( AudioConfig ); |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
345 #ifdef CONFIG_DXR3 |
36008 | 346 if ( DXR3Config ) gtk_widget_destroy( DXR3Config ); |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
347 #endif |
33572 | 348 break; |
349 case bAConfig: | |
350 if ( !ao_driver[0] ) break; | |
351 gtk_widget_set_sensitive( AConfig,FALSE ); | |
352 if ( !strncmp( ao_driver[0],"oss",3 ) || | |
353 !strncmp( ao_driver[0],"alsa",4 ) || | |
354 !strncmp( ao_driver[0],"esd",3 ) || | |
355 !strncmp( ao_driver[0],"sdl",3 ) ) { | |
356 ShowAudioConfig(); | |
357 gtk_widget_set_sensitive( AConfig,TRUE ); | |
358 } | |
359 break; | |
360 case bVconfig: | |
361 if ( !vo_driver[0] ) break; | |
362 gtk_widget_set_sensitive( VConfig,FALSE ); | |
363 #ifdef CONFIG_DXR3 | |
364 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) { ShowDXR3Config(); gtk_widget_set_sensitive( VConfig,TRUE ); } | |
365 #endif | |
366 break; | |
367 #if 0 | |
368 case bLSubtitle: | |
369 break; | |
370 #endif | |
371 case bLFont: | |
35976 | 372 ShowFileSelector( FILESELECT_FONT ); |
35975 | 373 gtkSetLayer( FileSelector ); |
33572 | 374 break; |
375 } | |
376 } | |
377 | |
34466
a650895d50a5
Use correct data types and common variable names in GTK callback functions.
ib
parents:
34454
diff
changeset
|
378 static gboolean prHScaler( GtkWidget * widget,GdkEvent * event,gpointer user_data ) |
33572 | 379 { |
380 switch ( (int)user_data ) | |
381 { | |
382 case 0: // extra stereo coefficient | |
383 if ( !guiInfo.Playing ) break; | |
33769 | 384 mplayer( MPLAYER_SET_EXTRA_STEREO,HSExtraStereoMuladj->value,0 ); |
33572 | 385 break; |
386 case 1: // audio delay | |
387 audio_delay=HSAudioDelayadj->value; | |
388 break; | |
389 case 2: // panscan | |
33769 | 390 mplayer( MPLAYER_SET_PANSCAN,HSPanscanadj->value,0 ); |
33572 | 391 break; |
392 case 3: // sub delay | |
393 sub_delay=HSSubDelayadj->value; | |
394 break; | |
395 case 4: // sub position | |
396 sub_pos=(int)HSSubPositionadj->value; | |
397 break; | |
398 #ifndef CONFIG_FREETYPE | |
399 case 5: // font factor | |
33769 | 400 mplayer( MPLAYER_SET_FONT_FACTOR,HSFontFactoradj->value,0 ); |
33572 | 401 break; |
402 #else | |
403 case 6: // font blur | |
33769 | 404 mplayer( MPLAYER_SET_FONT_BLUR,HSFontBluradj->value,0 ); |
33572 | 405 break; |
406 case 7: // font outline | |
33769 | 407 mplayer( MPLAYER_SET_FONT_OUTLINE,HSFontOutLineadj->value,0 ); |
33572 | 408 break; |
409 case 8: // text scale | |
33769 | 410 mplayer( MPLAYER_SET_FONT_TEXTSCALE,HSFontTextScaleadj->value,0 ); |
33572 | 411 break; |
412 case 9: // osd scale | |
33769 | 413 mplayer( MPLAYER_SET_FONT_OSDSCALE,HSFontOSDScaleadj->value,0 ); |
33572 | 414 break; |
415 #endif | |
416 case 10: // auto quality | |
33769 | 417 mplayer( MPLAYER_SET_AUTO_QUALITY,HSPPQualityadj->value,0 ); |
33572 | 418 break; |
419 } | |
420 return FALSE; | |
421 } | |
422 | |
423 static void prToggled( GtkToggleButton * togglebutton,gpointer user_data ) | |
424 { | |
425 int window; | |
426 switch ( (int)user_data ) | |
427 { | |
428 case 0: // extra stereo coefficient | |
429 if ( guiInfo.Playing ) | |
430 gtk_widget_set_sensitive( HSExtraStereoMul,gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBExtraStereo ) ) ); | |
431 break; | |
432 // case 1: // normalize | |
433 // case 2: // equalizer | |
434 // if ( guiInfo.Playing ) gtkMessageBox( GTK_MB_WARNING,"Please remember, this function need restart the playing." ); | |
435 // break; | |
436 case 3: | |
437 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ) ) ) | |
438 { | |
439 window=wsShowWindow; | |
440 gtkActive( Preferences ); | |
441 } else window=wsHideWindow; | |
33941
8beec562ce0e
Remove dependency between gtkShowVideoWindow and gtkLoadFullscreen
ib
parents:
33938
diff
changeset
|
442 // NOTE TO MYSELF: doesn't work with a fullscreen window |
35681
80c5c89f77d6
Cosmetic: Rename ws functions for the sake of consistency.
ib
parents:
35529
diff
changeset
|
443 if ( !guiInfo.Playing ) wsWindowVisibility( &guiApp.videoWindow,window ); |
33572 | 444 break; |
445 case 4: | |
446 case 5: | |
447 case 6: | |
448 case 7: | |
33769 | 449 mplayer( MPLAYER_SET_FONT_AUTOSCALE,(int)user_data - 4,0 ); |
33572 | 450 break; |
451 case 8: | |
452 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBCache ) ) ) gtk_widget_set_sensitive( SBCache,TRUE ); | |
453 else gtk_widget_set_sensitive( SBCache,FALSE ); | |
454 break; | |
455 case 9: | |
456 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBAutoSync ) ) ) gtk_widget_set_sensitive( SBAutoSync,TRUE ); | |
457 else gtk_widget_set_sensitive( SBAutoSync,FALSE ); | |
458 break; | |
459 #ifdef CONFIG_ASS | |
460 case 10: | |
461 if ( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( CBUseASS ) ) ) | |
462 { | |
463 gtk_widget_set_sensitive( CBASSUseMargins,TRUE ); | |
464 gtk_widget_set_sensitive( SBASSTopMargin,TRUE ); | |
465 gtk_widget_set_sensitive( SBASSBottomMargin,TRUE ); | |
466 } | |
467 else | |
468 { | |
469 gtk_widget_set_sensitive( CBASSUseMargins,FALSE ); | |
470 gtk_widget_set_sensitive( SBASSTopMargin,FALSE ); | |
471 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE ); | |
472 } | |
473 break; | |
474 #endif | |
475 } | |
476 } | |
477 | |
478 static void prCListRow( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ) | |
479 { | |
480 switch ( (int)user_data ) | |
481 { | |
482 case 0: // audio driver | |
483 gtk_clist_get_text( GTK_CLIST( CLADrivers ),row,0,(char **)&ao_driver ); | |
484 gtk_widget_set_sensitive( AConfig,FALSE ); | |
485 if ( !strncmp( ao_driver[0],"oss",3 ) || | |
486 !strncmp( ao_driver[0],"alsa",4 ) || | |
487 !strncmp( ao_driver[0],"esd",3 ) || | |
488 !strncmp( ao_driver[0],"sdl",3 ) ) | |
489 gtk_widget_set_sensitive( AConfig,TRUE ); | |
490 #ifndef CONFIG_GTK2 | |
491 if ( !strncmp( ao_driver[0],"arts",4 ) ) | |
492 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, MSGTR_PREFERENCES_ArtsBroken); | |
493 #endif | |
494 break; | |
495 case 1: // video driver | |
496 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),row,0,(char **)&vo_driver ); | |
497 gtk_widget_set_sensitive( VConfig,FALSE ); | |
498 #ifdef CONFIG_DXR3 | |
499 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE ); | |
500 #endif | |
501 break; | |
502 } | |
503 } | |
504 | |
35996 | 505 static GtkWidget * CreatePreferences( void ) |
33572 | 506 { |
507 GtkWidget * label; | |
508 GtkWidget * frame; | |
509 | |
510 GtkWidget * vbox1; | |
511 GtkWidget * notebook1; | |
512 GtkWidget * hbox1; | |
513 GtkWidget * vbox2; | |
514 GtkWidget * scrolledwindow3; | |
515 GtkWidget * vbox3; | |
516 GtkWidget * hbox8; | |
517 GtkWidget * hbox2; | |
518 GtkWidget * vbox4; | |
519 GtkWidget * scrolledwindow2; | |
520 GtkWidget * hbuttonbox3; | |
521 GtkWidget * vbox5; | |
522 GtkWidget * vbox6; | |
523 GtkWidget * vbox600; | |
524 GSList * OSD_group = NULL; | |
525 #ifdef CONFIG_ICONV | |
526 GSList * Font_group = NULL; | |
527 GList * CBFontEncoding_items = NULL; | |
528 GList * CBSubEncoding_items = NULL; | |
529 #endif | |
530 GtkWidget * vbox7; | |
531 GtkWidget * vbox8; | |
532 GtkWidget * table1; | |
533 GtkWidget * vbox9; | |
534 GtkWidget * vbox603; | |
535 GtkWidget * hbox6; | |
536 GtkWidget * hbuttonbox5; | |
537 #ifndef CONFIG_FREETYPE | |
538 GtkWidget * hbox7; | |
539 #endif | |
540 GtkWidget * vbox601; | |
541 GtkWidget * vbox602; | |
542 GtkWidget * hbox5; | |
543 GtkWidget * hbuttonbox1; | |
544 GtkAccelGroup * accel_group; | |
545 | |
546 GtkWidget * hbox9; | |
547 GtkWidget * hbox91; | |
548 GtkWidget * hbox92; | |
549 | |
550 accel_group=gtk_accel_group_new(); | |
551 | |
552 Preferences=gtk_window_new( GTK_WINDOW_TOPLEVEL ); | |
553 gtk_widget_set_name( Preferences,"Preferences" ); | |
554 gtk_object_set_data( GTK_OBJECT( Preferences ),"Preferences",Preferences ); | |
555 gtk_window_set_title( GTK_WINDOW( Preferences ),MSGTR_Preferences ); | |
556 gtk_window_set_position( GTK_WINDOW( Preferences ),GTK_WIN_POS_CENTER ); | |
557 // gtk_window_set_policy( GTK_WINDOW( Preferences ),FALSE,FALSE,FALSE ); | |
558 gtk_window_set_wmclass( GTK_WINDOW( Preferences ),"Preferences","MPlayer" ); | |
559 | |
560 gtk_widget_realize( Preferences ); | |
561 gtkAddIcon( Preferences ); | |
562 | |
563 vbox1=AddVBox( AddDialogFrame( Preferences ),0 ); | |
564 notebook1=gtk_notebook_new(); | |
565 gtk_widget_set_name( notebook1,"notebook1" ); | |
566 gtk_widget_show( notebook1 ); | |
567 gtk_box_pack_start( GTK_BOX( vbox1 ),notebook1,TRUE,TRUE,0 ); | |
568 | |
569 hbox1=AddVBox( notebook1,0 ); | |
570 | |
571 frame=AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,1 ); | |
572 frame=AddFrame( NULL,GTK_SHADOW_NONE,frame,1 ); | |
573 | |
34684 | 574 /* 1st page */ |
33572 | 575 |
576 vbox2=AddVBox( frame,0 ); | |
577 | |
578 scrolledwindow3=gtk_scrolled_window_new( NULL,NULL ); | |
579 gtk_widget_set_name( scrolledwindow3,"scrolledwindow3" ); | |
580 gtk_widget_show( scrolledwindow3 ); | |
581 gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 ); | |
582 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC ); | |
583 | |
584 CLADrivers=gtk_clist_new( 2 ); | |
585 gtk_widget_set_name( CLADrivers,"CLADrivers" ); | |
586 gtk_widget_show( CLADrivers ); | |
587 gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLADrivers ); | |
588 gtk_clist_set_column_width( GTK_CLIST( CLADrivers ),0,50 ); | |
589 gtk_clist_column_titles_show( GTK_CLIST( CLADrivers ) ); | |
590 gtk_clist_set_shadow_type( GTK_CLIST( CLADrivers ),GTK_SHADOW_NONE ); | |
591 gtk_widget_set_usize( CLADrivers,250,-2 ); | |
592 gtk_clist_set_column_widget( GTK_CLIST( CLADrivers ),0, | |
593 AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL ) ); | |
594 | |
595 AConfig=AddButton( MSGTR_ConfigDriver, | |
596 AddHButtonBox( vbox2 ) ); | |
597 | |
598 vbox3=AddVBox( | |
599 AddFrame( NULL,GTK_SHADOW_NONE, | |
600 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox1,0 ),1 ),0 ); | |
601 gtk_widget_set_usize( vbox3,250,-2 ); | |
602 | |
603 CBNormalize=AddCheckButton( MSGTR_PREFERENCES_NormalizeSound,vbox3 ); | |
604 CBAudioEqualizer=AddCheckButton( MSGTR_PREFERENCES_EnableEqualizer,vbox3 ); | |
605 CBSoftwareMixer=AddCheckButton( MSGTR_PREFERENCES_SoftwareMixer,vbox3 ); | |
606 #if 0 | |
607 CBSurround=AddCheckButton( "Enable surround",vbox3 ); | |
608 #endif | |
609 | |
610 AddHSeparator( vbox3 ); | |
611 CBExtraStereo=AddCheckButton( MSGTR_PREFERENCES_ExtraStereo,vbox3 ); | |
612 hbox8=AddHBox( vbox3,1 ); | |
35402 | 613 /*label=*/AddLabel( MSGTR_PREFERENCES_Coefficient,hbox8 ); |
33572 | 614 // gtk_misc_set_padding( GTK_MISC( label ),20,0 ); |
615 HSExtraStereoMuladj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10,10,0.1,0,0 ) ); | |
616 HSExtraStereoMul=AddHScaler( HSExtraStereoMuladj,hbox8,1 ); | |
617 AddHSeparator( vbox3 ); | |
618 | |
619 hbox8=AddHBox( vbox3,1 ); | |
620 AddLabel( MSGTR_PREFERENCES_AudioDelay,hbox8 ); | |
621 | |
622 HSAudioDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10,10,0.01,0,0 ) ); | |
623 HSAudioDelay=AddHScaler( HSAudioDelayadj,hbox8,2 ); | |
624 label=AddLabel( MSGTR_PREFERENCES_Audio,NULL ); | |
625 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),0 ),label ); | |
626 | |
34684 | 627 /* 2nd page */ |
33572 | 628 |
629 hbox2=AddVBox( notebook1,0 ); | |
630 | |
631 vbox4=AddVBox( | |
632 AddFrame( NULL,GTK_SHADOW_NONE, | |
633 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,1 ),1 ),0 ); | |
634 | |
635 scrolledwindow2=gtk_scrolled_window_new( NULL,NULL ); | |
636 gtk_widget_set_name( scrolledwindow2,"scrolledwindow2" ); | |
637 gtk_widget_show( scrolledwindow2 ); | |
638 gtk_box_pack_start( GTK_BOX( vbox4 ),scrolledwindow2,TRUE,TRUE,0 ); | |
639 gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC ); | |
640 | |
641 CLVDrivers=gtk_clist_new( 2 ); | |
642 gtk_widget_set_name( CLVDrivers,"CLVDrivers" ); | |
643 gtk_widget_show( CLVDrivers ); | |
644 gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLVDrivers ); | |
645 gtk_clist_set_column_width( GTK_CLIST( CLVDrivers ),0,50 ); | |
646 gtk_clist_column_titles_show( GTK_CLIST( CLVDrivers ) ); | |
647 gtk_clist_set_shadow_type( GTK_CLIST( CLVDrivers ),GTK_SHADOW_NONE ); | |
648 gtk_widget_set_usize( CLVDrivers,250,-2 ); | |
649 | |
650 label=AddLabel( MSGTR_PREFERENCES_AvailableDrivers,NULL ); | |
651 gtk_clist_set_column_widget( GTK_CLIST( CLVDrivers ),0,label ); | |
652 | |
653 hbuttonbox3=AddHButtonBox( vbox4 ); | |
654 VConfig=AddButton( MSGTR_ConfigDriver,hbuttonbox3 ); | |
655 | |
656 vbox5=AddVBox( | |
657 AddFrame( NULL,GTK_SHADOW_NONE, | |
658 AddFrame( NULL,GTK_SHADOW_ETCHED_OUT,hbox2,0 ),1 ),0 ); | |
659 gtk_widget_set_usize( vbox5,250,-2 ); | |
660 | |
661 CBDoubleBuffer=AddCheckButton( MSGTR_PREFERENCES_DoubleBuffer,vbox5 ); | |
662 CBDR=AddCheckButton( MSGTR_PREFERENCES_DirectRender,vbox5 ); | |
663 CBFramedrop=AddCheckButton( MSGTR_PREFERENCES_FrameDrop,vbox5 ); | |
664 CBHFramedrop=AddCheckButton( MSGTR_PREFERENCES_HFrameDrop,vbox5 ); | |
665 CBFlip=AddCheckButton( MSGTR_PREFERENCES_Flip,vbox5 ); | |
666 | |
667 table1=gtk_table_new( 3,2,FALSE ); | |
668 gtk_widget_set_name( table1,"table1" ); | |
669 gtk_widget_show( table1 ); | |
670 gtk_box_pack_start( GTK_BOX( vbox5 ),table1,FALSE,FALSE,0 ); | |
671 | |
672 label=AddLabel( MSGTR_PREFERENCES_Panscan,NULL ); | |
673 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
674 | |
675 label=AddLabel( MSGTR_PREFERENCES_FPS,NULL ); | |
676 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
677 | |
678 HSPanscanadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,1,0.001,0,0 ) ); | |
679 HSPanscan=AddHScaler( HSPanscanadj,NULL,1 ); | |
680 gtk_table_attach( GTK_TABLE( table1 ),HSPanscan,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
681 | |
682 HSFPSadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,1000,0.001,0,0 ) ); | |
683 HSFPS=gtk_spin_button_new( GTK_ADJUSTMENT( HSFPSadj ),1,3 ); | |
684 gtk_widget_set_name( HSFPS,"HSFPS" ); | |
685 gtk_widget_show( HSFPS ); | |
686 gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( HSFPS ),TRUE ); | |
687 gtk_table_attach( GTK_TABLE( table1 ),HSFPS,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
688 | |
689 label=AddLabel( MSGTR_PREFERENCES_Video,NULL ); | |
690 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),1 ),label ); | |
691 | |
34684 | 692 /* 3rd page */ |
33572 | 693 |
694 vbox6=AddVBox( notebook1,0 ); | |
695 | |
696 vbox600=AddVBox( | |
697 AddFrame( NULL,GTK_SHADOW_NONE, | |
698 AddFrame( MSGTR_PREFERENCES_FRAME_OSD_Level,GTK_SHADOW_ETCHED_OUT,vbox6,0 ),1 ),0 ); | |
699 | |
33778 | 700 RBOSDNone=AddRadioButton( MSGTR_PREFERENCES_OSD_LEVEL0,&OSD_group,vbox600 ); |
701 RBOSDIndicator=AddRadioButton( MSGTR_PREFERENCES_OSD_LEVEL1,&OSD_group,vbox600 ); | |
702 RBOSDTandP=AddRadioButton( MSGTR_PREFERENCES_OSD_LEVEL2,&OSD_group,vbox600 ); | |
703 RBOSDTPTT=AddRadioButton( MSGTR_PREFERENCES_OSD_LEVEL3,&OSD_group,vbox600 ); | |
33572 | 704 |
705 vbox7=AddVBox( | |
706 AddFrame( NULL,GTK_SHADOW_NONE, | |
707 AddFrame( MSGTR_PREFERENCES_FRAME_Subtitle,GTK_SHADOW_ETCHED_OUT,vbox6,0 ),1 ),0 ); | |
708 | |
709 #if 0 | |
710 hbox4=AddHBox( vbox7,1 ); | |
711 | |
712 AddLabel( MSGTR_PREFERENCES_Subtitle,hbox4 ); | |
713 | |
714 ESubtitleName=gtk_entry_new(); | |
715 gtk_widget_set_name( ESubtitleName,"ESubtitleName" ); | |
716 gtk_widget_show( ESubtitleName ); | |
717 gtk_box_pack_start( GTK_BOX( hbox4 ),ESubtitleName,TRUE,TRUE,0 ); | |
718 | |
719 hbuttonbox4=AddHButtonBox( hbuttonbox4 ); | |
720 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox4 ),3 ); | |
721 BLoadSubtitle=AddButton( MSGTR_Browse,hbuttonbox4 ); | |
722 #endif | |
723 | |
724 vbox8=AddVBox( vbox7,0 ); | |
725 | |
726 table1=gtk_table_new( 3,2,FALSE ); | |
727 gtk_widget_set_name( table1,"table1" ); | |
728 gtk_widget_show( table1 ); | |
729 gtk_box_pack_start( GTK_BOX( vbox8 ),table1,FALSE,FALSE,0 ); | |
730 | |
731 label=AddLabel( MSGTR_PREFERENCES_SUB_Delay,NULL ); | |
732 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
733 | |
734 label=AddLabel( MSGTR_PREFERENCES_SUB_POS,NULL ); | |
735 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
736 | |
737 label=AddLabel( MSGTR_PREFERENCES_SUB_FPS,NULL ); | |
738 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
739 | |
740 #ifdef CONFIG_ICONV | |
741 label=AddLabel( MSGTR_PREFERENCES_FontEncoding,NULL ); | |
742 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
743 #endif | |
744 | |
745 HSSubDelayadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,-10.0,10,0.01,0,0 ) ); | |
746 HSSubDelay=AddHScaler( HSSubDelayadj,NULL,1 ); | |
747 gtk_table_attach( GTK_TABLE( table1 ),HSSubDelay,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
748 | |
749 HSSubPositionadj=GTK_ADJUSTMENT( gtk_adjustment_new( 100,0,100,1,0,0 ) ); | |
750 HSSubPosition=AddHScaler( HSSubPositionadj,NULL,0 ); | |
751 gtk_table_attach( GTK_TABLE( table1 ),HSSubPosition,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
752 | |
753 HSSubFPSadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.01,0,0 ) ); | |
754 HSSubFPS=gtk_spin_button_new( GTK_ADJUSTMENT( HSSubFPSadj ),1,3 ); | |
755 gtk_widget_set_name( HSSubFPS,"HSSubFPS" ); | |
756 gtk_widget_show( HSSubFPS ); | |
757 gtk_widget_set_usize( HSSubFPS,60,-1 ); | |
758 gtk_spin_button_set_numeric( GTK_SPIN_BUTTON( HSSubFPS ),TRUE ); | |
759 gtk_table_attach( GTK_TABLE( table1 ),HSSubFPS,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
760 | |
761 #ifdef CONFIG_ICONV | |
762 CBSubEncoding=gtk_combo_new(); | |
763 gtk_widget_set_name( CBSubEncoding,"CBSubEncoding" ); | |
764 gtk_widget_show( CBSubEncoding ); | |
765 gtk_table_attach( GTK_TABLE( table1 ),CBSubEncoding,1,2,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
766 CBSubEncoding_items=g_list_append( CBSubEncoding_items,MSGTR_PREFERENCES_None ); | |
767 { | |
768 int i; | |
769 for ( i=0;lEncoding[i].name;i++ ) CBSubEncoding_items=g_list_append( CBSubEncoding_items,lEncoding[i].comment ); | |
770 } | |
771 gtk_combo_set_popdown_strings( GTK_COMBO( CBSubEncoding ),CBSubEncoding_items ); | |
772 g_list_free( CBSubEncoding_items ); | |
773 | |
774 ESubEncoding=GTK_COMBO( CBSubEncoding )->entry; | |
775 gtk_widget_set_name( ESubEncoding,"ESubEncoding" ); | |
776 gtk_entry_set_editable( GTK_ENTRY( ESubEncoding ),FALSE ); | |
777 gtk_widget_show( ESubEncoding ); | |
778 #endif | |
779 | |
780 vbox9=AddVBox( vbox8,0 ); | |
781 | |
782 CBSubOverlap=AddCheckButton( MSGTR_PREFERENCES_SUB_Overlap,vbox9 ); | |
783 CBNoAutoSub=AddCheckButton( MSGTR_PREFERENCES_SUB_AutoLoad,vbox9 ); | |
784 CBSubUnicode=AddCheckButton( MSGTR_PREFERENCES_SUB_Unicode,vbox9 ); | |
785 CBDumpMPSub=AddCheckButton( MSGTR_PREFERENCES_SUB_MPSUB,vbox9 ); | |
786 CBDumpSrt=AddCheckButton( MSGTR_PREFERENCES_SUB_SRT,vbox9 ); | |
787 | |
788 AddHSeparator( vbox9 ); | |
789 CBUseASS=AddCheckButton( MSGTR_PREFERENCES_SUB_USE_ASS,vbox9 ); | |
790 hbox9=AddHBox( vbox9,0 ); | |
791 CBASSUseMargins=AddCheckButton( MSGTR_PREFERENCES_SUB_ASS_USE_MARGINS,hbox9 ); | |
792 | |
793 hbox91=gtk_hbox_new( FALSE,0 ); | |
794 gtk_widget_set_name( hbox91,"hbox91" ); | |
795 gtk_box_pack_start( GTK_BOX( hbox9 ),hbox91,TRUE,FALSE,0 ); | |
796 gtk_widget_show( hbox91 ); | |
797 SBASSTopMargin=AddSpinButton( MSGTR_PREFERENCES_SUB_ASS_TOP_MARGIN, | |
798 (GtkAdjustment *)gtk_adjustment_new(0,0,512,1,8,0),hbox91 ); | |
799 | |
800 hbox92=gtk_hbox_new( FALSE,0 ); | |
801 gtk_widget_set_name( hbox92,"hbox92" ); | |
802 gtk_box_pack_start( GTK_BOX( hbox9 ),hbox92,TRUE,FALSE,0 ); | |
803 gtk_widget_show( hbox92 ); | |
804 SBASSBottomMargin=AddSpinButton( MSGTR_PREFERENCES_SUB_ASS_BOTTOM_MARGIN, | |
805 (GtkAdjustment *)gtk_adjustment_new(0,0,512,1,8,0),hbox92 ); | |
806 | |
807 label=AddLabel( MSGTR_PREFERENCES_SubtitleOSD,NULL ); | |
808 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),2 ),label ); | |
809 vbox601=AddVBox( notebook1,0 ); | |
810 | |
34684 | 811 /* 4th page */ |
33572 | 812 |
813 vbox603=AddVBox( | |
814 AddFrame( NULL,GTK_SHADOW_NONE, | |
815 AddFrame( MSGTR_PREFERENCES_FRAME_Font,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 ); | |
816 | |
817 hbox6=AddHBox( vbox603,1 ); | |
818 AddLabel( MSGTR_PREFERENCES_Font,hbox6 ); | |
819 prEFontName=gtk_entry_new(); | |
820 gtk_widget_set_name( prEFontName,"prEFontName" ); | |
821 gtk_widget_show( prEFontName ); | |
822 gtk_box_pack_start( GTK_BOX( hbox6 ),prEFontName,TRUE,TRUE,0 ); | |
823 hbuttonbox5=AddHButtonBox( hbox6 ); | |
824 gtk_container_set_border_width( GTK_CONTAINER( hbuttonbox5 ),3 ); | |
825 BLoadFont=AddButton( MSGTR_Browse,hbuttonbox5 ); | |
826 | |
827 #ifndef CONFIG_FREETYPE | |
828 hbox7=AddHBox( vbox603,1 ); | |
829 AddLabel( MSGTR_PREFERENCES_FontFactor,hbox7 ); | |
830 HSFontFactoradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,10,0.05,0,0 ) ); | |
831 HSFontFactor=AddHScaler( HSFontFactoradj,hbox7,2 ); | |
832 #else | |
833 | |
834 RBFontNoAutoScale=AddRadioButton( MSGTR_PREFERENCES_FontNoAutoScale,&Font_group,vbox603 ); | |
835 RBFontAutoScaleHeight=AddRadioButton( MSGTR_PREFERENCES_FontPropHeight,&Font_group,vbox603 ); | |
836 RBFontAutoScaleWidth=AddRadioButton( MSGTR_PREFERENCES_FontPropWidth,&Font_group,vbox603 ); | |
837 RBFontAutoScaleDiagonal=AddRadioButton( MSGTR_PREFERENCES_FontPropDiagonal,&Font_group,vbox603 ); | |
838 | |
839 table1=gtk_table_new( 3,2,FALSE ); | |
840 gtk_widget_set_name( table1,"table1" ); | |
841 gtk_widget_show( table1 ); | |
842 gtk_box_pack_start( GTK_BOX( vbox603 ),table1,FALSE,FALSE,0 ); | |
843 | |
844 label=AddLabel( MSGTR_PREFERENCES_FontEncoding,NULL ); | |
845 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
846 | |
847 CBFontEncoding=gtk_combo_new(); | |
848 gtk_widget_set_name( CBFontEncoding,"CBFontEncoding" ); | |
849 gtk_widget_show( CBFontEncoding ); | |
850 gtk_table_attach( GTK_TABLE( table1 ),CBFontEncoding,1,2,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
851 { | |
852 int i; | |
853 for ( i=0;lEncoding[i].name;i++ ) CBFontEncoding_items=g_list_append( CBFontEncoding_items,lEncoding[i].comment ); | |
854 } | |
855 gtk_combo_set_popdown_strings( GTK_COMBO( CBFontEncoding ),CBFontEncoding_items ); | |
856 g_list_free( CBFontEncoding_items ); | |
857 | |
858 EFontEncoding=GTK_COMBO( CBFontEncoding )->entry; | |
859 gtk_widget_set_name( EFontEncoding,"EFontEncoding" ); | |
860 gtk_entry_set_editable( GTK_ENTRY( EFontEncoding ),FALSE ); | |
861 gtk_widget_show( EFontEncoding ); | |
862 | |
863 label=AddLabel( MSGTR_PREFERENCES_FontBlur,NULL ); | |
864 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
865 | |
866 HSFontBluradj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
867 HSFontBlur=AddHScaler( HSFontBluradj,NULL,2 ); | |
868 gtk_table_attach( GTK_TABLE( table1 ),HSFontBlur,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
869 | |
870 label=AddLabel( MSGTR_PREFERENCES_FontOutLine,NULL ); | |
871 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,2,3,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
872 | |
873 HSFontOutLineadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
874 HSFontOutLine=AddHScaler( HSFontOutLineadj,NULL,2 ); | |
875 gtk_table_attach( GTK_TABLE( table1 ),HSFontOutLine,1,2,2,3,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
876 | |
877 label=AddLabel( MSGTR_PREFERENCES_FontTextScale,NULL ); | |
878 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,3,4,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
879 | |
880 HSFontTextScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
881 HSFontTextScale=AddHScaler( HSFontTextScaleadj,NULL,2 ); | |
882 gtk_table_attach( GTK_TABLE( table1 ),HSFontTextScale,1,2,3,4,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
883 | |
884 label=AddLabel( MSGTR_PREFERENCES_FontOSDScale,NULL ); | |
885 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,4,5,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
886 | |
887 HSFontOSDScaleadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0.1,0,0 ) ); | |
888 HSFontOSDScale=AddHScaler( HSFontOSDScaleadj,NULL,2 ); | |
889 gtk_table_attach( GTK_TABLE( table1 ),HSFontOSDScale,1,2,4,5,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
890 #endif | |
891 | |
892 label=AddLabel( MSGTR_PREFERENCES_FRAME_Font,NULL ); | |
893 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),3 ),label ); | |
894 | |
34684 | 895 /* 5th page */ |
33572 | 896 |
897 vbox601=AddVBox( notebook1,0 ); | |
898 | |
899 vbox602=AddVBox( | |
900 AddFrame( NULL,GTK_SHADOW_NONE, | |
901 AddFrame( MSGTR_PREFERENCES_FRAME_CodecDemuxer,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 ); | |
902 | |
903 CBNonInterlaved=AddCheckButton( MSGTR_PREFERENCES_NI,vbox602 ); | |
904 CBIndex=AddCheckButton( MSGTR_PREFERENCES_IDX,vbox602 ); | |
905 | |
906 hbox5=AddHBox( vbox602,1 ); | |
907 | |
908 AddLabel( MSGTR_PREFERENCES_VideoCodecFamily,hbox5 ); | |
909 | |
910 CBVFM=gtk_combo_new(); | |
911 gtk_widget_set_name( CBVFM,"CBVFM" ); | |
912 gtk_widget_show( CBVFM ); | |
913 gtk_box_pack_start( GTK_BOX( hbox5 ),CBVFM,TRUE,TRUE,0 ); | |
914 | |
915 EVFM=GTK_COMBO( CBVFM )->entry; | |
916 gtk_widget_set_name( EVFM,"CEVFM" ); | |
917 gtk_entry_set_editable( GTK_ENTRY( EVFM ),FALSE ); | |
918 gtk_widget_show( EVFM ); | |
919 | |
920 hbox5=AddHBox( vbox602,1 ); | |
921 | |
922 AddLabel( MSGTR_PREFERENCES_AudioCodecFamily,hbox5 ); | |
923 | |
924 CBAFM=gtk_combo_new(); | |
925 gtk_widget_set_name( CBAFM,"CBAFM" ); | |
926 gtk_widget_show( CBAFM ); | |
927 gtk_box_pack_start( GTK_BOX( hbox5 ),CBAFM,TRUE,TRUE,0 ); | |
928 | |
929 EAFM=GTK_COMBO( CBAFM )->entry; | |
930 gtk_widget_set_name( EAFM,"EAFM" ); | |
931 gtk_entry_set_editable( GTK_ENTRY( EAFM ),FALSE ); | |
932 gtk_widget_show( EAFM ); | |
933 | |
934 label=AddLabel( MSGTR_PREFERENCES_Codecs,NULL ); | |
935 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),4 ),label ); | |
936 | |
937 vbox601=AddVBox( notebook1,0 ); | |
938 | |
34684 | 939 /* 6th page */ |
33572 | 940 |
941 vbox602=AddVBox( | |
942 AddFrame( NULL,GTK_SHADOW_NONE, | |
943 AddFrame( MSGTR_PREFERENCES_FRAME_PostProcess,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 ); | |
944 | |
945 CBPostprocess=AddCheckButton( MSGTR_PREFERENCES_PostProcess,vbox602 ); | |
946 | |
947 hbox5=AddHBox( vbox602,1 ); | |
948 | |
949 AddLabel( MSGTR_PREFERENCES_AutoQuality,hbox5 ); | |
950 | |
951 if ( guiInfo.sh_video && guiInfo.Playing ) HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,get_video_quality_max( guiInfo.sh_video ),0,0,0 ) ); | |
952 else HSPPQualityadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,100,0,0,0 ) ); | |
953 HSPPQuality=AddHScaler( HSPPQualityadj,hbox5,0 ); | |
954 | |
955 vbox602=AddVBox( | |
956 AddFrame( NULL,GTK_SHADOW_NONE, | |
957 AddFrame( MSGTR_PREFERENCES_FRAME_Cache,GTK_SHADOW_ETCHED_OUT,vbox601,0 ),1 ),0 ); | |
958 | |
959 CBCache=AddCheckButton( MSGTR_PREFERENCES_Cache,vbox602 ); | |
960 | |
961 hbox5=AddHBox( vbox602,1 ); | |
962 | |
963 AddLabel( MSGTR_PREFERENCES_CacheSize,hbox5 ); | |
964 | |
34707 | 965 SBCacheadj=GTK_ADJUSTMENT( gtk_adjustment_new( gtkCacheSize,32,0x7fffffff,1,32,0 ) ); |
33572 | 966 SBCache=gtk_spin_button_new( GTK_ADJUSTMENT( SBCacheadj ),1,0 ); |
967 gtk_widget_show( SBCache ); | |
968 gtk_box_pack_start( GTK_BOX( hbox5 ),SBCache,TRUE,TRUE,0 ); | |
969 | |
970 vbox602=AddVBox( | |
971 AddFrame( NULL,GTK_SHADOW_NONE, | |
972 AddFrame( MSGTR_PREFERENCES_FRAME_Misc,GTK_SHADOW_ETCHED_OUT,vbox601,1 ),1 ),0 ); | |
973 | |
974 CBShowVideoWindow=AddCheckButton( MSGTR_PREFERENCES_ShowVideoWindow,vbox602 ); | |
975 CBLoadFullscreen=AddCheckButton( MSGTR_PREFERENCES_LoadFullscreen,vbox602 ); | |
976 CBSaveWinPos=AddCheckButton( MSGTR_PREFERENCES_SaveWinPos,vbox602 ); | |
977 CBStopXScreenSaver=AddCheckButton( MSGTR_PREFERENCES_XSCREENSAVER,vbox602 ); | |
978 CBPlayBar=AddCheckButton( MSGTR_PREFERENCES_PlayBar,vbox602 ); | |
979 CBNoIdle=AddCheckButton( MSGTR_PREFERENCES_NoIdle,vbox602 ); | |
980 | |
981 AddHSeparator( vbox602 ); | |
982 | |
983 CBAutoSync=AddCheckButton( MSGTR_PREFERENCES_AutoSync,vbox602 ); | |
984 hbox5=AddHBox( vbox602,1 ); | |
985 AddLabel( MSGTR_PREFERENCES_AutoSyncValue,hbox5 ); | |
986 SBAutoSyncadj=GTK_ADJUSTMENT( gtk_adjustment_new( 0,0,10000,1,10,10 ) ); | |
987 SBAutoSync=gtk_spin_button_new( GTK_ADJUSTMENT( SBAutoSyncadj ),1,0 ); | |
988 gtk_widget_show( SBAutoSync ); | |
989 gtk_box_pack_start( GTK_BOX( hbox5 ),SBAutoSync,TRUE,TRUE,0 ); | |
990 | |
991 AddHSeparator( vbox602 ); | |
992 | |
993 table1=gtk_table_new( 2,2,FALSE ); | |
994 gtk_widget_set_name( table1,"table1" ); | |
995 gtk_widget_show( table1 ); | |
996 gtk_box_pack_start( GTK_BOX( vbox602 ),table1,FALSE,FALSE,0 ); | |
997 | |
998 label=AddLabel( MSGTR_PREFERENCES_DVDDevice,NULL ); | |
999 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,0,1,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1000 prEDVDDevice=gtk_entry_new(); | |
1001 gtk_widget_set_name( prEDVDDevice,"prEDVDDevice" ); | |
1002 gtk_widget_show( prEDVDDevice ); | |
1003 gtk_table_attach( GTK_TABLE( table1 ),prEDVDDevice,1,2,0,1,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1004 | |
1005 label=AddLabel( MSGTR_PREFERENCES_CDROMDevice,NULL ); | |
1006 gtk_table_attach( GTK_TABLE( table1 ),label,0,1,1,2,(GtkAttachOptions)( GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1007 prECDRomDevice=gtk_entry_new(); | |
1008 gtk_widget_set_name( prECDRomDevice,"prECDRomDevice" ); | |
1009 gtk_widget_show( prECDRomDevice ); | |
1010 gtk_table_attach( GTK_TABLE( table1 ),prECDRomDevice,1,2,1,2,(GtkAttachOptions)( GTK_EXPAND | GTK_FILL ),(GtkAttachOptions)( 0 ),0,0 ); | |
1011 | |
1012 // AddHSeparator( vbox602 ); | |
1013 | |
1014 label=AddLabel( MSGTR_PREFERENCES_Misc,NULL ); | |
1015 gtk_notebook_set_tab_label( GTK_NOTEBOOK( notebook1 ),gtk_notebook_get_nth_page( GTK_NOTEBOOK( notebook1 ),5 ),label ); | |
1016 | |
34684 | 1017 /* --- */ |
33572 | 1018 |
1019 AddHSeparator( vbox1 ); | |
1020 | |
1021 hbuttonbox1=AddHButtonBox( vbox1 ); | |
1022 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
1023 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); | |
1024 BOk=AddButton( MSGTR_Ok,hbuttonbox1 ); | |
1025 BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); | |
1026 | |
1027 gtk_widget_add_accelerator( BOk,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
1028 gtk_widget_add_accelerator( BCancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
1029 | |
36008 | 1030 gtk_signal_connect( GTK_OBJECT( Preferences ),"destroy",GTK_SIGNAL_FUNC( gtk_widget_destroyed ),&Preferences ); |
33572 | 1031 |
1032 gtk_signal_connect( GTK_OBJECT( AConfig ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bAConfig ); | |
1033 gtk_signal_connect( GTK_OBJECT( BOk ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bOk ); | |
1034 gtk_signal_connect( GTK_OBJECT( BCancel ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bCancel ); | |
1035 gtk_signal_connect( GTK_OBJECT( VConfig ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bVconfig ); | |
1036 #if 0 | |
1037 gtk_signal_connect( GTK_OBJECT( BLoadSubtitle ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bLSubtitle ); | |
1038 #endif | |
1039 gtk_signal_connect( GTK_OBJECT( BLoadFont ),"clicked",GTK_SIGNAL_FUNC( prButton ),(void*)bLFont ); | |
1040 | |
1041 #if 0 | |
1042 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( on_CBNormalize_toggled ),NULL ); | |
1043 gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( on_CBSoftwareMixer_toggled ),NULL ); | |
1044 gtk_signal_connect( GTK_OBJECT( CBSurround ),"toggled",GTK_SIGNAL_FUNC( on_CBSurround_toggled ),NULL ); | |
1045 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( on_CBExtraStereo_toggled ),NULL ); | |
1046 gtk_signal_connect( GTK_OBJECT( CBDoubleBuffer ),"toggled",GTK_SIGNAL_FUNC( on_CBDoubleBuffer_toggled ),NULL ); | |
1047 gtk_signal_connect( GTK_OBJECT( CBDR ),"toggled",GTK_SIGNAL_FUNC( on_CBDR_toggled ),NULL ); | |
1048 gtk_signal_connect( GTK_OBJECT( CBFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBFramedrop_toggled ),NULL ); | |
1049 gtk_signal_connect( GTK_OBJECT( CBHFramedrop ),"toggled",GTK_SIGNAL_FUNC( on_CBHFramedrop_toggled ),NULL ); | |
1050 gtk_signal_connect( GTK_OBJECT( CBFullScreen ),"toggled",GTK_SIGNAL_FUNC( on_CBFullScreen_toggled ),NULL ); | |
1051 gtk_signal_connect( GTK_OBJECT( CBNonInterlaved ),"toggled",GTK_SIGNAL_FUNC( on_CBNonInterlaved_toggled ),NULL ); | |
1052 gtk_signal_connect( GTK_OBJECT( CBFlip ),"toggled",GTK_SIGNAL_FUNC( on_CBFlip_toggled ),NULL ); | |
1053 gtk_signal_connect( GTK_OBJECT( CBPostprocess ),"toggled",GTK_SIGNAL_FUNC( on_CBPostprocess_toggled ),NULL ); | |
1054 gtk_signal_connect( GTK_OBJECT( CBNoAutoSub ),"toggled",GTK_SIGNAL_FUNC( on_CBNoAutoSub_toggled ),NULL ); | |
1055 gtk_signal_connect( GTK_OBJECT( CBSubUnicode ),"toggled",GTK_SIGNAL_FUNC( on_CNSubUnicode_toggled ),NULL ); | |
1056 gtk_signal_connect( GTK_OBJECT( CBDumpMPSub ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpMPSub_toggled ),NULL ); | |
1057 gtk_signal_connect( GTK_OBJECT( CBDumpSrt ),"toggled",GTK_SIGNAL_FUNC( on_CBDumpSrt_toggled ),NULL ); | |
1058 #endif | |
1059 #if 0 | |
1060 gtk_signal_connect( GTK_OBJECT( RBOSDNone ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDNone_toggled ),NULL ); | |
33777
235c6f2514be
Arrange OSD preferences according to option 'osdlevel'.
ib
parents:
33769
diff
changeset
|
1061 gtk_signal_connect( GTK_OBJECT( RBOSDIndicator ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDIndicator_toggled ),NULL ); |
33572 | 1062 gtk_signal_connect( GTK_OBJECT( RBOSDTandP ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDTandP_toggled ),NULL ); |
1063 gtk_signal_connect( GTK_OBJECT( RBOSDTPTT ),"toggled",GTK_SIGNAL_FUNC( on_RBOSDIndicator_toggled ),NULL ); | |
1064 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( on_CBAudioEqualizer_toggled ),NULL ); | |
1065 #endif | |
1066 #if 0 | |
1067 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSAudioDelay_motion_notify_event ),NULL ); | |
1068 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPanscan_motion_notify_event ),NULL ); | |
1069 gtk_signal_connect( GTK_OBJECT( label2 ),"motion_notify_event",GTK_SIGNAL_FUNC( on_label2_motion_notify_event ),NULL ); | |
1070 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubDelay_motion_notify_event ),NULL ); | |
1071 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubPosition_motion_notify_event ),NULL ); | |
1072 gtk_signal_connect( GTK_OBJECT( HSSubFPS ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSSubFPS_motion_notify_event ),NULL ); | |
1073 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSFontFactor_motion_notify_event ),NULL ); | |
1074 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( on_HSPPQuality_motion_notify_event ),NULL ); | |
1075 #endif | |
1076 | |
1077 gtk_notebook_set_page( GTK_NOTEBOOK( notebook1 ),2 ); | |
1078 | |
1079 gtk_window_add_accel_group( GTK_WINDOW( Preferences ),accel_group ); | |
1080 | |
1081 return Preferences; | |
1082 } | |
1083 | |
35994 | 1084 void ShowPreferences( void ) |
1085 { | |
1086 if ( Preferences ) gtkActive( Preferences ); | |
35996 | 1087 else Preferences=CreatePreferences(); |
35994 | 1088 |
1089 /* 1st page */ | |
1090 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAudioEqualizer ),gtkEnableAudioEqualizer ); | |
1091 #if 0 | |
1092 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSurround ),gtkAOSurround ); | |
1093 #endif | |
1094 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBExtraStereo ),gtkAOExtraStereo ); | |
1095 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNormalize ),gtkAONorm ); | |
1096 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSoftwareMixer ),soft_vol ); | |
1097 gtk_adjustment_set_value( HSExtraStereoMuladj,gtkAOExtraStereoMul ); | |
1098 { | |
1099 int i = 0; | |
1100 char * tmp[3]; tmp[2]=""; | |
1101 old_audio_driver=-1; | |
1102 if ( CLADrivers ) gtk_clist_clear( GTK_CLIST( CLADrivers ) ); | |
1103 while ( audio_out_drivers[i] ) | |
1104 { | |
1105 const ao_info_t *info = audio_out_drivers[i++]->info; | |
1106 if ( !strcmp( info->short_name,"plugin" ) ) continue; | |
1107 if ( audio_driver_list ) | |
1108 { | |
1109 char * name = gstrdup( audio_driver_list[0] ); | |
1110 char * sep = gstrchr( audio_driver_list[0],':' ); | |
1111 if ( sep ) *sep=0; | |
1112 if ( !gstrcmp( name,(char *)info->short_name ) ) old_audio_driver=i - 1; | |
1113 free( name ); | |
1114 } | |
1115 tmp[0]=(char *)info->short_name; tmp[1]=(char *)info->name; gtk_clist_append( GTK_CLIST( CLADrivers ),tmp ); | |
1116 } | |
1117 if ( old_audio_driver > -1 ) | |
1118 { | |
1119 gtk_clist_select_row( GTK_CLIST( CLADrivers ),old_audio_driver,0 ); | |
1120 gtk_clist_get_text( GTK_CLIST( CLADrivers ),old_audio_driver,0,(char **)&ao_driver ); | |
1121 gtk_widget_set_sensitive( AConfig,FALSE ); | |
1122 if ( !strncmp( ao_driver[0],"oss",3 ) || | |
1123 !strncmp( ao_driver[0],"alsa",4 ) || | |
1124 !strncmp( ao_driver[0],"esd",3 ) || | |
1125 !strncmp( ao_driver[0],"sdl",3 ) ) | |
1126 gtk_widget_set_sensitive( AConfig,TRUE ); | |
1127 } | |
1128 } | |
1129 | |
1130 /* 2nd page */ | |
1131 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDoubleBuffer ),vo_doublebuffering ); | |
1132 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDR ),vo_directrendering ); | |
1133 | |
1134 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),FALSE ); | |
1135 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),FALSE ); | |
1136 switch ( frame_dropping ) | |
1137 { | |
1138 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBHFramedrop ),TRUE ); | |
1139 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFramedrop ),TRUE ); | |
1140 } | |
1141 | |
1142 if (flip != -1) | |
1143 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBFlip ),flip ); | |
1144 gtk_adjustment_set_value( HSPanscanadj,vo_panscan ); | |
1145 | |
1146 { | |
1147 int i = 0, c = 0; | |
1148 char * tmp[3]; tmp[2]=""; | |
1149 old_video_driver=0; | |
1150 if ( CLVDrivers ) gtk_clist_clear( GTK_CLIST( CLVDrivers ) ); | |
1151 while ( video_out_drivers[i] ) | |
1152 if ( video_out_drivers[i++]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE ) | |
1153 { | |
1154 if ( video_driver_list && !gstrcmp( video_driver_list[0],(char *)video_out_drivers[i - 1]->info->short_name ) ) old_video_driver=c; c++; | |
1155 tmp[0]=(char *)video_out_drivers[i - 1]->info->short_name; tmp[1]=(char *)video_out_drivers[i - 1]->info->name; | |
1156 gtk_clist_append( GTK_CLIST( CLVDrivers ),tmp ); | |
1157 } | |
1158 gtk_clist_select_row( GTK_CLIST( CLVDrivers ),old_video_driver,0 ); | |
1159 gtk_clist_get_text( GTK_CLIST( CLVDrivers ),old_video_driver,0,(char **)&vo_driver ); | |
1160 gtk_widget_set_sensitive( VConfig,FALSE ); | |
1161 #ifdef CONFIG_DXR3 | |
1162 if ( !gstrcmp( vo_driver[0],"dxr3" ) ) gtk_widget_set_sensitive( VConfig,TRUE ); | |
1163 #endif | |
1164 } | |
1165 | |
1166 gtk_adjustment_set_value( HSFPSadj,force_fps ); | |
1167 | |
1168 /* 3rd page */ | |
1169 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubOverlap ),suboverlap_enabled ); | |
1170 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoAutoSub ),!sub_auto ); | |
1171 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpMPSub ),gtkSubDumpMPSub ); | |
1172 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBDumpSrt ),gtkSubDumpSrt ); | |
1173 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSubUnicode ),sub_unicode ); | |
1174 #ifdef CONFIG_ASS | |
1175 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBUseASS ),gtkASS.enabled ); | |
1176 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBASSUseMargins ),gtkASS.use_margins ); | |
1177 gtk_spin_button_set_value( (GtkSpinButton *)SBASSTopMargin,(gdouble)gtkASS.top_margin ); | |
1178 gtk_spin_button_set_value( (GtkSpinButton *)SBASSBottomMargin,(gdouble)gtkASS.bottom_margin ); | |
1179 | |
1180 if ( !gtkASS.enabled ) | |
1181 { | |
1182 gtk_widget_set_sensitive( CBASSUseMargins,FALSE ); | |
1183 gtk_widget_set_sensitive( SBASSTopMargin,FALSE ); | |
1184 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE ); | |
1185 } | |
1186 #endif | |
1187 | |
1188 gtk_adjustment_set_value( HSSubDelayadj,sub_delay ); | |
1189 gtk_adjustment_set_value( HSSubFPSadj,sub_fps ); | |
1190 gtk_adjustment_set_value( HSSubPositionadj,sub_pos ); | |
1191 switch ( osd_level ) | |
1192 { | |
1193 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDNone ),TRUE ); break; | |
1194 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDIndicator ),TRUE ); break; | |
1195 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTandP ),TRUE ); break; | |
1196 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBOSDTPTT ),TRUE ); break; | |
1197 } | |
1198 #if 0 | |
1199 if ( guiInfo.SubtitleFilename ) gtk_entry_set_text( GTK_ENTRY( ESubtitleName ),guiInfo.SubtitleFilename ); | |
1200 #endif | |
1201 | |
1202 #ifdef CONFIG_ICONV | |
1203 if ( sub_cp ) | |
1204 { | |
1205 int i; | |
1206 for ( i=0;lEncoding[i].name;i++ ) | |
1207 if ( !strcasecmp( sub_cp,lEncoding[i].name ) ) break; | |
1208 if ( lEncoding[i].name ) gtk_entry_set_text( GTK_ENTRY( ESubEncoding ),lEncoding[i].comment ); | |
1209 } | |
1210 #endif | |
1211 | |
1212 /* 4th page */ | |
1213 /* font ... */ | |
1214 if ( font_name ) gtk_entry_set_text( GTK_ENTRY( prEFontName ),font_name ); | |
1215 #ifndef CONFIG_FREETYPE | |
1216 gtk_adjustment_set_value( HSFontFactoradj,font_factor ); | |
1217 #else | |
1218 gtk_adjustment_set_value( HSFontBluradj,( subtitle_font_radius / 8.0f ) * 100.0f ); | |
1219 gtk_adjustment_set_value( HSFontOutLineadj,( subtitle_font_thickness / 8.0f ) * 100.0f ); | |
1220 gtk_adjustment_set_value( HSFontTextScaleadj,text_font_scale_factor ); | |
1221 gtk_adjustment_set_value( HSFontOSDScaleadj,osd_font_scale_factor ); | |
1222 if ( subtitle_font_encoding ) | |
1223 { | |
1224 int i; | |
1225 for ( i=0;lEncoding[i].name;i++ ) | |
1226 if ( !strcasecmp( subtitle_font_encoding,lEncoding[i].name ) ) break; | |
1227 if ( lEncoding[i].name ) gtk_entry_set_text( GTK_ENTRY( EFontEncoding ),lEncoding[i].comment ); | |
1228 } | |
1229 switch ( subtitle_autoscale ) | |
1230 { | |
1231 case 0: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontNoAutoScale ),TRUE ); break; | |
1232 case 1: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleHeight ),TRUE ); break; | |
1233 case 2: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleWidth ),TRUE ); break; | |
1234 case 3: gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBFontAutoScaleDiagonal ),TRUE ); break; | |
1235 } | |
1236 #endif | |
1237 | |
1238 /* 5th page */ | |
1239 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNonInterlaved ),force_ni ); | |
1240 if ( index_mode == 1 ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBIndex ),1 ); | |
1241 { | |
1242 int i; | |
1243 GList * Items = NULL; | |
1244 char * name = NULL; | |
1245 | |
1246 Items=g_list_append( Items,MSGTR_PREFERENCES_None ); | |
1247 for( i=0;mpcodecs_vd_drivers[i];i++ ) | |
1248 { | |
1249 Items=g_list_append( Items,(char *)mpcodecs_vd_drivers[i]->info->name ); | |
1250 if ( video_fm_list && !gstrcmp( video_fm_list[0],(char *)mpcodecs_vd_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_vd_drivers[i]->info->name; | |
1251 } | |
1252 gtk_combo_set_popdown_strings( GTK_COMBO( CBVFM ),Items ); | |
1253 g_list_free( Items ); | |
1254 if ( name ) gtk_entry_set_text( GTK_ENTRY( EVFM ),name ); | |
1255 } | |
1256 | |
1257 { | |
1258 int i; | |
1259 GList * Items = NULL; | |
1260 char * name = NULL; | |
1261 | |
1262 Items=g_list_append( Items,MSGTR_PREFERENCES_None ); | |
1263 for( i=0;mpcodecs_ad_drivers[i];i++ ) | |
1264 { | |
1265 Items=g_list_append( Items,(char *)mpcodecs_ad_drivers[i]->info->name ); | |
1266 if ( audio_fm_list && !gstrcmp( audio_fm_list[0],(char *)mpcodecs_ad_drivers[i]->info->short_name ) ) name=(char *)mpcodecs_ad_drivers[i]->info->name; | |
1267 } | |
1268 gtk_combo_set_popdown_strings( GTK_COMBO( CBAFM ),Items ); | |
1269 g_list_free( Items ); | |
1270 if ( name ) gtk_entry_set_text( GTK_ENTRY( EAFM ),name ); | |
1271 } | |
1272 | |
1273 /* 6th page */ | |
1274 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPostprocess ),gtkVfPP ); | |
1275 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBLoadFullscreen ),gtkLoadFullscreen ); | |
1276 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBSaveWinPos ),gui_save_pos ); | |
1277 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBShowVideoWindow ),gtkShowVideoWindow ); | |
1278 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBStopXScreenSaver ),stop_xscreensaver ); | |
1279 gtk_adjustment_set_value( HSPPQualityadj,auto_quality ); | |
1280 | |
1281 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),gtkEnablePlayBar ); | |
1282 if ( !guiApp.playbarIsPresent ) | |
1283 { | |
1284 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBPlayBar ),0 ); | |
1285 gtk_widget_set_sensitive( CBPlayBar,FALSE ); | |
1286 } | |
1287 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBNoIdle ),!player_idle_mode ); | |
1288 | |
1289 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),0 ); | |
1290 gtk_adjustment_set_value( SBCacheadj,(float)gtkCacheSize ); | |
1291 if ( !gtkCacheOn ) gtk_widget_set_sensitive( SBCache,FALSE ); | |
1292 else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBCache ),TRUE ); | |
1293 | |
1294 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),0 ); | |
1295 gtk_adjustment_set_value( SBAutoSyncadj,(float)gtkAutoSync ); | |
1296 if ( !gtkAutoSyncOn ) gtk_widget_set_sensitive( SBAutoSync,FALSE ); | |
1297 else gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( CBAutoSync ),TRUE ); | |
1298 | |
1299 if ( dvd_device ) gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),dvd_device ); | |
1300 else gtk_entry_set_text( GTK_ENTRY( prEDVDDevice ),DEFAULT_DVD_DEVICE ); | |
1301 if ( cdrom_device ) gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),cdrom_device ); | |
1302 else gtk_entry_set_text( GTK_ENTRY( prECDRomDevice ),DEFAULT_CDROM_DEVICE ); | |
1303 | |
1304 /* disables */ | |
1305 #ifndef CONFIG_ASS | |
1306 gtk_widget_set_sensitive( CBUseASS,FALSE ); | |
1307 gtk_widget_set_sensitive( CBASSUseMargins,FALSE ); | |
1308 gtk_widget_set_sensitive( SBASSTopMargin,FALSE ); | |
1309 gtk_widget_set_sensitive( SBASSBottomMargin,FALSE ); | |
1310 #endif | |
1311 | |
1312 /* signals */ | |
1313 gtk_signal_connect( GTK_OBJECT( CBExtraStereo ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)0 ); | |
1314 gtk_signal_connect( GTK_OBJECT( CBNormalize ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); | |
1315 gtk_signal_connect( GTK_OBJECT( CBSoftwareMixer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)1 ); | |
1316 gtk_signal_connect( GTK_OBJECT( CBAudioEqualizer ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)2 ); | |
1317 gtk_signal_connect( GTK_OBJECT( CBShowVideoWindow ),"toggled",GTK_SIGNAL_FUNC( prToggled ), (void*)3 ); | |
1318 #ifdef CONFIG_FREETYPE | |
1319 gtk_signal_connect( GTK_OBJECT( RBFontNoAutoScale ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)4 ); | |
1320 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleHeight ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)5 ); | |
1321 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleWidth ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)6 ); | |
1322 gtk_signal_connect( GTK_OBJECT( RBFontAutoScaleDiagonal ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)7 ); | |
1323 #endif | |
1324 gtk_signal_connect( GTK_OBJECT( CBCache ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)8); | |
1325 gtk_signal_connect( GTK_OBJECT( CBAutoSync ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)9); | |
1326 #ifdef CONFIG_ASS | |
1327 gtk_signal_connect( GTK_OBJECT( CBUseASS ),"toggled",GTK_SIGNAL_FUNC( prToggled ),(void*)10); | |
1328 #endif | |
1329 | |
1330 gtk_signal_connect( GTK_OBJECT( HSExtraStereoMul ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)0 ); | |
1331 gtk_signal_connect( GTK_OBJECT( HSAudioDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)1 ); | |
1332 gtk_signal_connect( GTK_OBJECT( HSPanscan ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)2 ); | |
1333 gtk_signal_connect( GTK_OBJECT( HSSubDelay ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)3 ); | |
1334 gtk_signal_connect( GTK_OBJECT( HSSubPosition ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)4 ); | |
1335 #ifndef CONFIG_FREETYPE | |
1336 gtk_signal_connect( GTK_OBJECT( HSFontFactor ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)5 ); | |
1337 #else | |
1338 gtk_signal_connect( GTK_OBJECT( HSFontBlur ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)6 ); | |
1339 gtk_signal_connect( GTK_OBJECT( HSFontOutLine ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)7 ); | |
1340 gtk_signal_connect( GTK_OBJECT( HSFontTextScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)8 ); | |
1341 gtk_signal_connect( GTK_OBJECT( HSFontOSDScale ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)9 ); | |
1342 gtk_signal_connect( GTK_OBJECT( EFontEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)0 ); | |
1343 #endif | |
1344 #ifdef CONFIG_ICONV | |
1345 gtk_signal_connect( GTK_OBJECT( ESubEncoding ),"changed",GTK_SIGNAL_FUNC( prEntry ),(void *)1 ); | |
1346 #endif | |
1347 gtk_signal_connect( GTK_OBJECT( HSPPQuality ),"motion_notify_event",GTK_SIGNAL_FUNC( prHScaler ),(void*)10 ); | |
1348 | |
1349 gtk_signal_connect( GTK_OBJECT( CLADrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)0 ); | |
1350 gtk_signal_connect( GTK_OBJECT( CLVDrivers ),"select_row",GTK_SIGNAL_FUNC( prCListRow ),(void*)1 ); | |
1351 | |
1352 gtk_widget_show( Preferences ); | |
1353 gtkSetLayer( Preferences ); | |
1354 { | |
1355 static int visible = True; | |
1356 if ( visible ) | |
1357 { | |
1358 gtkMessageBox( GTK_MB_WARNING,MSGTR_PREFERENCES_Message ); | |
1359 visible=False; | |
1360 } | |
1361 } | |
1362 } | |
1363 | |
33572 | 1364 #ifdef CONFIG_OSS_AUDIO |
1365 static GList *appendOSSDevices(GList *l) | |
1366 { | |
34684 | 1367 /* careful! the current implementation allows only string constants! */ |
33572 | 1368 l = g_list_append(l, (gpointer)"/dev/dsp"); |
1369 if (gtkAOOSSDevice && strncmp(gtkAOOSSDevice, "/dev/sound", 10) == 0) { | |
1370 l = g_list_append(l, (gpointer)"/dev/sound/dsp0"); | |
1371 l = g_list_append(l, (gpointer)"/dev/sound/dsp1"); | |
1372 l = g_list_append(l, (gpointer)"/dev/sound/dsp2"); | |
1373 l = g_list_append(l, (gpointer)"/dev/sound/dsp3"); | |
1374 } else { | |
1375 l = g_list_append(l, (gpointer)"/dev/dsp0"); | |
1376 l = g_list_append(l, (gpointer)"/dev/dsp1"); | |
1377 l = g_list_append(l, (gpointer)"/dev/dsp2"); | |
1378 l = g_list_append(l, (gpointer)"/dev/dsp3"); | |
1379 } | |
1380 #ifdef CONFIG_DXR3 | |
1381 l = g_list_append(l, (gpointer)"/dev/em8300_ma"); | |
1382 l = g_list_append(l, (gpointer)"/dev/em8300_ma-0"); | |
1383 l = g_list_append(l, (gpointer)"/dev/em8300_ma-1"); | |
1384 l = g_list_append(l, (gpointer)"/dev/em8300_ma-2"); | |
1385 l = g_list_append(l, (gpointer)"/dev/em8300_ma-3"); | |
1386 #endif | |
1387 return l; | |
1388 } | |
1389 | |
1390 static GList *appendOSSMixers(GList *l) | |
1391 { | |
34684 | 1392 /* careful! the current implementation allows only string constants! */ |
33572 | 1393 l = g_list_append(l, (gpointer)"/dev/mixer"); |
1394 if (gtkAOOSSMixer && strncmp(gtkAOOSSMixer, "/dev/sound", 10) == 0) { | |
1395 l = g_list_append(l, (gpointer)"/dev/sound/mixer0"); | |
1396 l = g_list_append(l, (gpointer)"/dev/sound/mixer1"); | |
1397 l = g_list_append(l, (gpointer)"/dev/sound/mixer2"); | |
1398 l = g_list_append(l, (gpointer)"/dev/sound/mixer3"); | |
1399 } else { | |
1400 l = g_list_append(l, (gpointer)"/dev/mixer0"); | |
1401 l = g_list_append(l, (gpointer)"/dev/mixer1"); | |
1402 l = g_list_append(l, (gpointer)"/dev/mixer2"); | |
1403 l = g_list_append(l, (gpointer)"/dev/mixer3"); | |
1404 } | |
1405 return l; | |
1406 } | |
1407 | |
1408 static GList *appendOSSMixerChannels(GList *l) | |
1409 { | |
1410 l = g_list_append(l, (gpointer)"vol"); | |
1411 l = g_list_append(l, (gpointer)"pcm"); | |
1412 l = g_list_append(l, (gpointer)"line"); | |
1413 return l; | |
1414 } | |
1415 #endif | |
1416 | |
1417 #ifdef CONFIG_ALSA | |
1418 static GList *appendALSADevices(GList *l) | |
1419 { | |
1420 l = g_list_append(l, (gpointer)"default"); | |
1421 l = g_list_append(l, (gpointer)"hw=0.0"); | |
1422 l = g_list_append(l, (gpointer)"hw=0.1"); | |
1423 l = g_list_append(l, (gpointer)"hw=0.2"); | |
1424 l = g_list_append(l, (gpointer)"surround40"); | |
1425 l = g_list_append(l, (gpointer)"surround51"); | |
1426 l = g_list_append(l, (gpointer)"plug=surround40"); | |
1427 l = g_list_append(l, (gpointer)"plug=surround51"); | |
1428 return l; | |
1429 } | |
1430 | |
1431 static GList *appendALSAMixers(GList *l) | |
1432 { | |
1433 l = g_list_append(l, (gpointer)"default"); | |
1434 return l; | |
1435 } | |
1436 | |
1437 static GList *appendALSAMixerChannels(GList *l) | |
1438 { | |
1439 l = g_list_append(l, (gpointer)"Master"); | |
1440 l = g_list_append(l, (gpointer)"Line"); | |
1441 l = g_list_append(l, (gpointer)"PCM"); | |
1442 l = g_list_append(l, (gpointer)"PCM,1"); | |
1443 return l; | |
1444 } | |
1445 #endif | |
1446 | |
1447 #ifdef CONFIG_SDL | |
1448 static GList *appendSDLDevices(GList *l) | |
1449 { | |
1450 l = g_list_append(l, (gpointer)"alsa"); | |
1451 l = g_list_append(l, (gpointer)"arts"); | |
1452 l = g_list_append(l, (gpointer)"esd"); | |
1453 l = g_list_append(l, (gpointer)"jack"); | |
1454 l = g_list_append(l, (gpointer)"oss"); | |
1455 l = g_list_append(l, (gpointer)"nas"); | |
1456 return l; | |
1457 } | |
1458 #endif | |
1459 | |
1460 #ifdef CONFIG_ESD | |
1461 static GList *appendESDDevices(GList *l) | |
1462 { | |
1463 l = g_list_append(l, (gpointer)"Enter Remote IP"); | |
1464 l = g_list_append(l, (gpointer)"Use Software Mixer"); | |
1465 return l; | |
1466 } | |
1467 #endif | |
1468 | |
34454 | 1469 #if defined(CONFIG_OSS_AUDIO) || defined(CONFIG_ALSA) || defined(CONFIG_SDL) || defined (CONFIG_ESD) |
33572 | 1470 // Gets text string from a gtk entry, interpreting |
1471 // MSGTR_PREFERENCES_DriverDefault as null string. | |
1472 static const char *getGtkEntryText(GtkWidget *from) | |
1473 { | |
1474 const char *tmp = gtk_entry_get_text(GTK_ENTRY(from)); | |
1475 if (strcmp(tmp, MSGTR_PREFERENCES_DriverDefault) == 0) { | |
1476 tmp = NULL; | |
1477 } | |
1478 return tmp; | |
1479 } | |
1480 | |
1481 // Sets text string of a gtk entry, interpreting | |
1482 // null string as MSGTR_PREFERENCES_DriverDefault. | |
1483 static void setGtkEntryText(GtkWidget *dest, char *to) | |
1484 { | |
1485 if (!to) { | |
1486 to = MSGTR_PREFERENCES_DriverDefault; | |
1487 } | |
1488 gtk_entry_set_text(GTK_ENTRY(dest),to); | |
1489 } | |
34454 | 1490 #endif |
33572 | 1491 |
1492 static GtkWidget *CEAudioDevice; | |
1493 static GtkWidget *CBAudioDevice; | |
1494 static GtkWidget *CEAudioMixer; | |
1495 static GtkWidget *CBAudioMixer; | |
1496 static GtkWidget *CEAudioMixerChannel; | |
1497 static GtkWidget *CBAudioMixerChannel; | |
1498 static GtkWidget *BAudioOk; | |
1499 static GtkWidget *BAudioCancel; | |
1500 | |
1501 static void audioButton(GtkButton *button, gpointer user_data) { | |
1502 switch( (int)user_data ) { | |
1503 case 1: | |
1504 #ifdef CONFIG_OSS_AUDIO | |
1505 if (strncmp(ao_driver[0], "oss", 3) == 0) { | |
33739 | 1506 nfree(gtkAOOSSDevice); |
33572 | 1507 gtkAOOSSDevice = gstrdup(getGtkEntryText(CEAudioDevice)); |
33739 | 1508 nfree(gtkAOOSSMixer); |
33572 | 1509 gtkAOOSSMixer = gstrdup(getGtkEntryText(CEAudioMixer)); |
33739 | 1510 nfree(gtkAOOSSMixerChannel); |
33572 | 1511 gtkAOOSSMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel)); |
1512 } | |
1513 #endif | |
1514 #ifdef CONFIG_ALSA | |
1515 if (strncmp(ao_driver[0], "alsa", 4) == 0) { | |
33739 | 1516 nfree(gtkAOALSADevice); |
33572 | 1517 gtkAOALSADevice = gstrdup(getGtkEntryText(CEAudioDevice)); |
33739 | 1518 nfree(gtkAOALSAMixer); |
33572 | 1519 gtkAOALSAMixer = gstrdup(getGtkEntryText(CEAudioMixer)); |
33739 | 1520 nfree(gtkAOALSAMixerChannel); |
33572 | 1521 gtkAOALSAMixerChannel = gstrdup(getGtkEntryText(CEAudioMixerChannel)); |
1522 } | |
1523 #endif | |
1524 #ifdef CONFIG_SDL | |
1525 if (strncmp(ao_driver[0], "sdl", 3) == 0) { | |
33739 | 1526 nfree(gtkAOSDLDriver); |
33572 | 1527 gtkAOSDLDriver = gstrdup(getGtkEntryText(CEAudioDevice)); |
1528 } | |
1529 #endif | |
1530 #ifdef CONFIG_ESD | |
1531 if (strncmp(ao_driver[0], "esd", 3) == 0) { | |
33739 | 1532 nfree(gtkAOESDDevice); |
33572 | 1533 gtkAOESDDevice = gstrdup(getGtkEntryText(CEAudioDevice)); |
1534 } | |
1535 #endif | |
1536 case 0: | |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
1537 gtk_widget_destroy(AudioConfig); |
33572 | 1538 break; |
1539 } | |
1540 } | |
1541 | |
35996 | 1542 static GtkWidget *CreateAudioConfig( void ) { |
33572 | 1543 GList *items = NULL; |
1544 GtkWidget *vbox; | |
1545 GtkWidget *table; | |
1546 GtkWidget *label; | |
1547 GtkWidget *hbuttonbox; | |
1548 GtkAccelGroup *accel_group; | |
1549 | |
1550 AudioConfig = gtk_window_new(GTK_WINDOW_TOPLEVEL); | |
1551 gtk_widget_set_name(AudioConfig, "AudioConfig"); | |
1552 gtk_object_set_data(GTK_OBJECT(AudioConfig), "AudioConfig", AudioConfig); | |
1553 gtk_window_set_title(GTK_WINDOW(AudioConfig), MSGTR_AudioPreferences); | |
1554 gtk_window_set_position(GTK_WINDOW(AudioConfig), GTK_WIN_POS_CENTER); | |
1555 gtk_window_set_policy(GTK_WINDOW(AudioConfig), FALSE, FALSE, FALSE); | |
1556 gtk_window_set_wmclass(GTK_WINDOW(AudioConfig), "Audio Config", "MPlayer"); | |
1557 | |
1558 gtk_widget_realize(AudioConfig); | |
1559 gtkAddIcon(AudioConfig); | |
1560 | |
1561 vbox = AddVBox(AddDialogFrame(AudioConfig), 0); | |
1562 | |
1563 table = gtk_table_new(2, 3, FALSE); | |
1564 gtk_widget_set_name(table, "table"); | |
1565 gtk_widget_show(table); | |
1566 gtk_box_pack_start(GTK_BOX(vbox), table, TRUE, TRUE, 0); | |
1567 | |
1568 label = AddLabel(MSGTR_PREFERENCES_Audio_Device, NULL); | |
1569 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1570 | |
1571 CBAudioDevice = AddComboBox(NULL); | |
1572 gtk_table_attach(GTK_TABLE(table), CBAudioDevice, 1, 2, 0, 1, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1573 items = g_list_append(items,(gpointer)MSGTR_PREFERENCES_DriverDefault); | |
1574 #ifdef CONFIG_OSS_AUDIO | |
1575 if (strncmp(ao_driver[0], "oss", 3) == 0) | |
1576 items = appendOSSDevices(items); | |
1577 #endif | |
1578 #ifdef CONFIG_ALSA | |
1579 if (strncmp(ao_driver[0], "alsa", 4) == 0) | |
1580 items = appendALSADevices(items); | |
1581 #endif | |
1582 #ifdef CONFIG_SDL | |
1583 if (strncmp(ao_driver[0], "sdl", 3) == 0) | |
1584 items = appendSDLDevices(items); | |
1585 #endif | |
1586 #ifdef CONFIG_ESD | |
1587 if (strncmp(ao_driver[0], "esd", 3) == 0) | |
1588 items = appendESDDevices(items); | |
1589 #endif | |
1590 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioDevice), items); | |
1591 g_list_free(items); | |
1592 items = NULL; | |
1593 | |
1594 CEAudioDevice = GTK_COMBO(CBAudioDevice)->entry; | |
1595 gtk_widget_set_name(CEAudioDevice, "CEAudioDevice"); | |
1596 gtk_widget_show(CEAudioDevice); | |
1597 | |
1598 label = AddLabel(MSGTR_PREFERENCES_Audio_Mixer, NULL); | |
1599 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1600 | |
1601 CBAudioMixer = AddComboBox(NULL); | |
1602 gtk_table_attach(GTK_TABLE(table), CBAudioMixer, 1, 2, 1, 2, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1603 items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault); | |
1604 #ifdef CONFIG_OSS_AUDIO | |
1605 if (strncmp(ao_driver[0], "oss", 3) == 0) | |
1606 items = appendOSSMixers(items); | |
1607 #endif | |
1608 #ifdef CONFIG_ALSA | |
1609 if (strncmp(ao_driver[0], "alsa", 4) == 0) | |
1610 items = appendALSAMixers(items); | |
1611 #endif | |
1612 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixer), items); | |
1613 g_list_free(items); | |
1614 items = NULL; | |
1615 | |
1616 CEAudioMixer = GTK_COMBO(CBAudioMixer)->entry; | |
1617 gtk_widget_set_name(CEAudioMixer, "CEAudioMixer"); | |
1618 gtk_widget_show(CEAudioMixer); | |
1619 | |
1620 label = AddLabel(MSGTR_PREFERENCES_Audio_MixerChannel, NULL); | |
1621 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, (GtkAttachOptions)(GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1622 | |
1623 CBAudioMixerChannel = AddComboBox(NULL); | |
1624 gtk_table_attach(GTK_TABLE(table), CBAudioMixerChannel, 1, 2, 2, 3, (GtkAttachOptions)(GTK_EXPAND | GTK_FILL), (GtkAttachOptions)(0), 0, 0); | |
1625 items = g_list_append(items, (gpointer)MSGTR_PREFERENCES_DriverDefault); | |
1626 #ifdef CONFIG_OSS_AUDIO | |
1627 if (strncmp(ao_driver[0], "oss", 3) == 0) | |
1628 items = appendOSSMixerChannels(items); | |
1629 #endif | |
1630 #ifdef CONFIG_ALSA | |
1631 if (strncmp(ao_driver[0], "alsa", 4) == 0) | |
1632 items = appendALSAMixerChannels(items); | |
1633 #endif | |
1634 gtk_combo_set_popdown_strings(GTK_COMBO(CBAudioMixerChannel), items); | |
1635 g_list_free(items); | |
1636 items = NULL; | |
1637 | |
1638 CEAudioMixerChannel = GTK_COMBO(CBAudioMixerChannel)->entry; | |
1639 gtk_widget_set_name(CEAudioMixerChannel, "CEAudioMixerChannel"); | |
1640 gtk_widget_show(CEAudioMixerChannel); | |
1641 | |
1642 AddHSeparator(vbox); | |
1643 | |
1644 hbuttonbox = AddHButtonBox(vbox); | |
1645 gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END); | |
1646 gtk_button_box_set_spacing(GTK_BUTTON_BOX(hbuttonbox), 10); | |
1647 BAudioOk = AddButton(MSGTR_Ok, hbuttonbox); | |
1648 BAudioCancel = AddButton(MSGTR_Cancel, hbuttonbox); | |
1649 | |
36008 | 1650 gtk_signal_connect(GTK_OBJECT(AudioConfig), "destroy", GTK_SIGNAL_FUNC(gtk_widget_destroyed), &AudioConfig); |
33572 | 1651 gtk_signal_connect(GTK_OBJECT(BAudioOk), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)1); |
1652 gtk_signal_connect(GTK_OBJECT(BAudioCancel), "clicked", GTK_SIGNAL_FUNC(audioButton), (void*)0); | |
1653 | |
1654 accel_group = gtk_accel_group_new(); | |
1655 gtk_widget_add_accelerator(BAudioOk, "clicked", accel_group, GDK_Return, 0, GTK_ACCEL_VISIBLE); | |
1656 gtk_widget_add_accelerator(BAudioCancel, "clicked", accel_group, GDK_Escape, 0, GTK_ACCEL_VISIBLE); | |
1657 gtk_window_add_accel_group(GTK_WINDOW(AudioConfig), accel_group); | |
1658 | |
1659 return AudioConfig; | |
1660 } | |
1661 | |
35993 | 1662 void ShowAudioConfig( void ) { |
1663 if (AudioConfig) gtkActive(AudioConfig); | |
35996 | 1664 else AudioConfig = CreateAudioConfig(); |
35993 | 1665 |
1666 #ifdef CONFIG_OSS_AUDIO | |
1667 if (strncmp(ao_driver[0], "oss", 3) == 0) { | |
1668 setGtkEntryText(CEAudioDevice, gtkAOOSSDevice); | |
1669 setGtkEntryText(CEAudioMixer, gtkAOOSSMixer); | |
1670 setGtkEntryText(CEAudioMixerChannel, gtkAOOSSMixerChannel); | |
1671 } | |
1672 #endif | |
1673 #ifdef CONFIG_ALSA | |
1674 if (strncmp(ao_driver[0], "alsa", 4) == 0) { | |
1675 setGtkEntryText(CEAudioDevice, gtkAOALSADevice); | |
1676 setGtkEntryText(CEAudioMixer, gtkAOALSAMixer); | |
1677 setGtkEntryText(CEAudioMixerChannel, gtkAOALSAMixerChannel); | |
1678 } | |
1679 #endif | |
1680 #ifdef CONFIG_SDL | |
1681 if (strncmp(ao_driver[0], "sdl", 3) == 0) { | |
1682 setGtkEntryText(CEAudioDevice, gtkAOSDLDriver); | |
1683 } | |
1684 #endif | |
1685 #ifdef CONFIG_ESD | |
1686 if (strncmp(ao_driver[0], "esd", 3) == 0) { | |
1687 setGtkEntryText(CEAudioDevice, gtkAOESDDevice); | |
1688 } | |
1689 #endif | |
1690 | |
1691 gtk_widget_show(AudioConfig); | |
1692 gtkSetLayer(AudioConfig); | |
1693 } | |
1694 | |
34684 | 1695 /* dxr3 config box */ |
33572 | 1696 |
1697 static GtkWidget * DXR3Config; | |
1698 static GtkWidget * CBDevice; | |
1699 static GtkWidget * CEDXR3Device; | |
1700 static GtkWidget * RBVNone; | |
1701 static GtkWidget * RBVLavc; | |
1702 static GtkWidget * dxr3BOk; | |
1703 static GtkWidget * dxr3BCancel; | |
1704 | |
35996 | 1705 GtkWidget * CreateDXR3Config( void ); |
33572 | 1706 |
1707 void ShowDXR3Config( void ) | |
1708 { | |
1709 if ( DXR3Config ) gtkActive( DXR3Config ); | |
35996 | 1710 else DXR3Config=CreateDXR3Config(); |
33572 | 1711 |
1712 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),gtkDXR3Device ); | |
1713 | |
1714 gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVNone ),TRUE ); | |
1715 if ( gtkVfLAVC ) gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( RBVLavc ),TRUE ); | |
1716 | |
1717 gtk_widget_show( DXR3Config ); | |
1718 gtkSetLayer( DXR3Config ); | |
1719 } | |
1720 | |
1721 static void dxr3Button( GtkButton * button,gpointer user_data ) | |
1722 { | |
1723 switch ( (int)user_data ) | |
1724 { | |
1725 case 0: // Ok | |
33739 | 1726 nfree( gtkDXR3Device ); gtkDXR3Device=strdup( gtk_entry_get_text( GTK_ENTRY( CEDXR3Device ) ) ); |
33572 | 1727 gtkVfLAVC=gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( RBVLavc ) ); |
1728 case 1: // Cancel | |
36003
8fea01665c83
Remove HidePreferences(), HideAudioConfig() and HideDXR3Config().
ib
parents:
35996
diff
changeset
|
1729 gtk_widget_destroy( DXR3Config ); |
33572 | 1730 break; |
1731 } | |
1732 } | |
1733 | |
35996 | 1734 GtkWidget * CreateDXR3Config( void ) |
33572 | 1735 { |
1736 GtkWidget * vbox1; | |
1737 GtkWidget * vbox2; | |
1738 GtkWidget * hbox1; | |
1739 GList * CBDevice_items = NULL; | |
1740 GtkWidget * vbox3; | |
1741 GSList * VEncoder_group = NULL; | |
1742 GtkWidget * hbuttonbox1; | |
1743 GtkAccelGroup * accel_group; | |
1744 | |
1745 accel_group=gtk_accel_group_new(); | |
1746 | |
1747 DXR3Config=gtk_window_new( GTK_WINDOW_TOPLEVEL ); | |
1748 gtk_widget_set_name( DXR3Config,"DXR3Config" ); | |
1749 gtk_object_set_data( GTK_OBJECT( DXR3Config ),"DXR3Config",DXR3Config ); | |
1750 // gtk_widget_set_usize( DXR3Config,300,156 ); | |
1751 GTK_WIDGET_SET_FLAGS( DXR3Config,GTK_CAN_DEFAULT ); | |
1752 gtk_window_set_title( GTK_WINDOW( DXR3Config ),"DXR3/H+" ); | |
1753 gtk_window_set_position( GTK_WINDOW( DXR3Config ),GTK_WIN_POS_CENTER ); | |
1754 gtk_window_set_policy( GTK_WINDOW( DXR3Config ),FALSE,FALSE,FALSE ); | |
1755 gtk_window_set_wmclass( GTK_WINDOW( DXR3Config ),"DXR3","MPlayer" ); | |
1756 | |
1757 gtk_widget_realize( DXR3Config ); | |
1758 gtkAddIcon( DXR3Config ); | |
1759 | |
1760 vbox1=AddVBox( AddDialogFrame( DXR3Config ),0 ); | |
1761 vbox2=AddVBox( vbox1,0 ); | |
1762 hbox1=AddHBox( vbox2,1 ); | |
1763 AddLabel( MSGTR_PREFERENCES_Audio_Device,hbox1 ); | |
1764 | |
1765 CBDevice=AddComboBox( hbox1 ); | |
1766 | |
1767 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300" ); | |
1768 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-0" ); | |
1769 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-1" ); | |
1770 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-2" ); | |
1771 CBDevice_items=g_list_append( CBDevice_items,( gpointer ) "/dev/em8300-3" ); | |
1772 gtk_combo_set_popdown_strings( GTK_COMBO( CBDevice ),CBDevice_items ); | |
1773 g_list_free( CBDevice_items ); | |
1774 | |
1775 CEDXR3Device=GTK_COMBO( CBDevice )->entry; | |
1776 gtk_widget_set_name( CEDXR3Device,"CEDXR3Device" ); | |
1777 gtk_widget_show( CEDXR3Device ); | |
1778 gtk_entry_set_text( GTK_ENTRY( CEDXR3Device ),"/dev/em8300" ); | |
1779 | |
1780 AddHSeparator( vbox2 ); | |
1781 vbox3=AddVBox( vbox2,0 ); | |
1782 AddLabel( MSGTR_PREFERENCES_DXR3_VENC,vbox3 ); | |
1783 RBVNone=AddRadioButton( MSGTR_PREFERENCES_None,&VEncoder_group,vbox3 ); | |
1784 RBVLavc=AddRadioButton( MSGTR_PREFERENCES_DXR3_LAVC,&VEncoder_group,vbox3 ); | |
1785 | |
1786 AddHSeparator( vbox1 ); | |
1787 | |
1788 hbuttonbox1=AddHButtonBox( vbox1 ); | |
1789 gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); | |
1790 gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); | |
1791 dxr3BOk=AddButton( MSGTR_Ok,hbuttonbox1 ); | |
1792 dxr3BCancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); | |
1793 | |
1794 gtk_widget_add_accelerator( dxr3BOk,"clicked",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); | |
1795 gtk_widget_add_accelerator( dxr3BCancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); | |
1796 | |
36008 | 1797 gtk_signal_connect( GTK_OBJECT( DXR3Config ),"destroy",GTK_SIGNAL_FUNC( gtk_widget_destroyed ),&DXR3Config ); |
33572 | 1798 |
1799 gtk_signal_connect( GTK_OBJECT( dxr3BOk ),"clicked",GTK_SIGNAL_FUNC( dxr3Button ),(void *)0 ); | |
1800 gtk_signal_connect( GTK_OBJECT( dxr3BCancel ),"clicked",GTK_SIGNAL_FUNC( dxr3Button ),(void *)1 ); | |
1801 | |
1802 gtk_window_add_accel_group( GTK_WINDOW( DXR3Config ),accel_group ); | |
1803 | |
1804 return DXR3Config; | |
1805 } |