changeset 2901:f77f8379f28f

rewrite ...
author pontscho
date Wed, 14 Nov 2001 16:04:25 +0000
parents 7345a10e6012
children d47cbcdce1a8
files Gui/mplayer/gtk/about.c Gui/mplayer/gtk/fs.c Gui/mplayer/gtk/mb.c Gui/mplayer/gtk/menu.c Gui/mplayer/gtk/opts.c Gui/mplayer/gtk/pl.c Gui/mplayer/gtk/sb.c Gui/mplayer/psignal.c Gui/mplayer/widgets.c
diffstat 9 files changed, 2502 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/about.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,207 @@
+
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "pixmaps/about.xpm"
+#include "../widgets.h"
+#include "about.h"
+
+void ab_Ok_released( GtkButton * button,gpointer user_data )
+{
+ gtk_widget_hide( AboutBox );
+ gtkVisibleAboutBox=0;
+}
+
+GtkWidget * create_About( void )
+{
+  GtkWidget     * About;
+  GtkWidget     * frame1;
+  GtkWidget     * frame2;
+  GtkWidget     * frame3;
+  GtkWidget     * frame4;
+  GtkWidget     * vbox1;
+  GtkWidget     * pixmap1;
+  GtkWidget     * hseparator2;
+  GtkWidget     * scrolledwindow1;
+  GtkWidget     * AboutText;
+  GtkWidget     * hseparator1;
+  GtkWidget     * hbuttonbox1;
+  GtkWidget     * Ok;
+
+  GtkStyle      * pixmapstyle;
+  GtkPixmap     * pixmapwid;
+  GdkBitmap     * mask;
+
+  GtkAccelGroup * accel_group;
+
+  accel_group=gtk_accel_group_new( );
+
+  About=gtk_window_new( GTK_WINDOW_TOPLEVEL );
+  gtk_widget_set_name( About,MSGTR_About );
+  gtk_object_set_data( GTK_OBJECT( About ),MSGTR_About,About );
+  gtk_widget_set_usize( About,340,415 );
+  gtk_window_set_title( GTK_WINDOW( About ),MSGTR_About );
+  gtk_window_set_position( GTK_WINDOW( About ),GTK_WIN_POS_CENTER );
+  gtk_window_set_policy( GTK_WINDOW( About ),TRUE,FALSE,FALSE );
+
+  frame1=gtk_frame_new( NULL );
+  gtk_widget_set_name( frame1,"frame1" );
+  gtk_widget_ref( frame1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"frame1",frame1,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame1 );
+  gtk_container_add( GTK_CONTAINER( About ),frame1 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame1 ),GTK_SHADOW_IN );
+
+  frame2=gtk_frame_new( NULL );
+  gtk_widget_set_name( frame2,"frame2" );
+  gtk_widget_ref( frame2 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"frame2",frame2,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame2 );
+  gtk_container_add( GTK_CONTAINER( frame1 ),frame2 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE );
+
+  frame3=gtk_frame_new( NULL );
+  gtk_widget_set_name( frame3,"frame3" );
+  gtk_widget_ref( frame3 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"frame3",frame3,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame3 );
+  gtk_container_add( GTK_CONTAINER( frame2 ),frame3 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT );
+
+  frame4=gtk_frame_new( NULL );
+  gtk_widget_set_name( frame4,"frame4" );
+  gtk_widget_ref( frame4 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"frame4",frame4,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame4 );
+  gtk_container_add( GTK_CONTAINER( frame3 ),frame4 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE );
+
+  vbox1=gtk_vbox_new( FALSE,0 );
+  gtk_widget_set_name( vbox1,"vbox1" );
+  gtk_widget_ref( vbox1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"vbox1",vbox1,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( vbox1 );
+  gtk_container_add( GTK_CONTAINER( frame4 ),vbox1 );
+
+  pixmapstyle=gtk_widget_get_style( About );
+  pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( About->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )about_xpm );
+  pixmap1=gtk_pixmap_new( pixmapwid,mask );
+
+  gtk_widget_set_name( pixmap1,"pixmap1" );
+  gtk_widget_ref( pixmap1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"pixmap1",pixmap1,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( pixmap1 );
+  gtk_box_pack_start( GTK_BOX( vbox1 ),pixmap1,FALSE,FALSE,0 );
+  gtk_widget_set_usize( pixmap1,-2,174 );
+
+  hseparator2=gtk_hseparator_new( );
+  gtk_widget_set_name( hseparator2,"hseparator2" );
+  gtk_widget_ref( hseparator2 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"hseparator2",hseparator2,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hseparator2 );
+  gtk_box_pack_start( GTK_BOX( vbox1 ),hseparator2,FALSE,FALSE,0 );
+  gtk_widget_set_usize( hseparator2,-2,7 );
+
+  scrolledwindow1=gtk_scrolled_window_new( NULL,NULL );
+  gtk_widget_set_name( scrolledwindow1,"scrolledwindow1" );
+  gtk_widget_ref( scrolledwindow1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"scrolledwindow1",scrolledwindow1,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( scrolledwindow1 );
+  gtk_box_pack_start( GTK_BOX( vbox1 ),scrolledwindow1,TRUE,TRUE,0 );
+  gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC );
+
+  AboutText=gtk_text_new( NULL,NULL );
+  gtk_widget_set_name( AboutText,"AboutText" );
+  gtk_widget_ref( AboutText );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"AboutText",AboutText,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( AboutText );
+  gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),AboutText );
+  gtk_text_insert( GTK_TEXT( AboutText ),NULL,NULL,NULL,
+                   "\nMPlayer code:\n" \
+                   "       fileformat detection,demuxers - A'rpi\n" \
+                   "       DVD support - ( alpha version was: LGB ) now: ?\n" \
+                   "       network streaming - Bertrand BAUDET\n" \
+                   "       A-V sync code - A'rpi\n" \
+                   "       subtitles file parser/reader - Lez( most of them )\n" \
+                   "       config files & commandline parser - Szabi\n" \
+                   "       fastmemcpy - Nick Kurshev\n" \
+                   "       LIRC support - Acki\n" \
+                   "       SUB/OSD renderer - Adam Tla/lka\n" \
+                   "       Gui - Pontscho\n\nlibvo drivers:\n" \
+                   "       vo_aa.c - Folke Ashberg\n" \
+                   "       vo_dga.c - Acki\n" \
+                   "       vo_fbdev.c - Szabi\n" \
+                   "       vo_ggi.c - al3x\n" \
+                   "       vo_gl.c - A'rpi\n" \
+                   "       vo_md5.c - A'rpi\n" \
+                   "       vo_mga.c - A'rpi\n" \
+                   "       vo_null.c - A'rpi\n" \
+                   "       vo_odivx.c - A'rpi\n" \
+                   "       vo_pgm.c - A'rpi\n" \
+                   "       vo_png.c - Atmos\n" \
+                   "       vo_sdl.c - Atmos\n" \
+                   "       vo_svga.c - se7en\n" \
+                   "       vo_x11.c - Pontscho\n"\
+                   "       vo_xmga.c - Pontscho\n"\
+                   "       vo_xv.c - Pontscho\n" \
+                   "       vo_aa.c - Folke Ashberg\n\n" \
+                   "libao2 drivers:\n" \
+                   "       ao_alsa5.c - al3x\n" \
+                   "       ao_alsa9.c - al3x( BUGGY,use oss )\n" \
+                   "       ao_null.c - A'rpi\n" \
+                   "       ao_oss.c - A'rpi\n" \
+                   "       ao_pcm.c - Atmos\n" \
+                   "       ao_sdl.c - Atmos\n" \
+                   "       ao_sun.c - Jürgen Keil\n\n" \
+                   "Homepage:\n" \
+                   "        Design:  Chass\n" \
+                   "        Contents: Gabucino\n\n" \
+                   "English documentation:\n" \
+                   "        tech-*.txt: A'rpi\n" \
+                   "        all the others: Gabucino\n\n" \
+                   "Documentation translations:\n" \
+                   "       Hungarian - Gabucino\n" \
+                   "       Spanish - TeLeNiEkO\n" \
+                   "       Russian - Nick Kurshev\n" \
+                   "       Polish - Dariush Pietrzak\n" \
+                   "       German - Atmosfear\n\n" \
+                   "Platforms/ports:\n" \
+                   "       DEBIAN packaging - Dariush Pietrzak\n" \
+                   "       FreeBSD support - Vladimir Kushnir\n" \
+                   "       Solaris 8 support - Jürgen Keil\n",1535 );
+
+  hseparator1=gtk_hseparator_new( );
+  gtk_widget_set_name( hseparator1,"hseparator1" );
+  gtk_widget_ref( hseparator1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"hseparator1",hseparator1,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hseparator1 );
+  gtk_box_pack_start( GTK_BOX( vbox1 ),hseparator1,FALSE,FALSE,0 );
+  gtk_widget_set_usize( hseparator1,-2,10 );
+
+  hbuttonbox1=gtk_hbutton_box_new( );
+  gtk_widget_set_name( hbuttonbox1,"hbuttonbox1" );
+  gtk_widget_ref( hbuttonbox1 );
+  gtk_object_set_data_full( GTK_OBJECT( About ),"hbuttonbox1",hbuttonbox1,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hbuttonbox1 );
+  gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 );
+
+  Ok=gtk_button_new_with_label( MSGTR_Ok );
+  gtk_widget_set_name( Ok,MSGTR_Ok );
+  gtk_widget_ref( Ok );
+  gtk_object_set_data_full( GTK_OBJECT( About ),MSGTR_Ok,Ok,( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( Ok );
+  gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok );
+  GTK_WIDGET_SET_FLAGS( Ok,GTK_CAN_DEFAULT );
+
+  gtk_signal_connect( GTK_OBJECT( About ),"destroy",GTK_SIGNAL_FUNC( ab_Ok_released ),NULL );
+  gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( ab_Ok_released ),NULL );
+
+  gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
+  gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
+  gtk_window_add_accel_group( GTK_WINDOW( About ),accel_group );
+
+  return About;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/fs.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,635 @@
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <glob.h>
+#include <unistd.h>
+
+#include "./mplayer.h"
+#include "psignal.h"
+#include "../error.h"
+
+#include "pixmaps/up.xpm"
+#include "pixmaps/dir.xpm"
+#include "pixmaps/file.xpm"
+
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "../widgets.h"
+#include "fs.h"
+
+#ifndef __linux__
+#define get_current_dir_name()  getcwd(NULL, PATH_MAX)
+#endif
+
+#ifndef get_current_dir_name
+ extern char * get_current_dir_name( void );
+#endif
+
+gchar         * fsSelectedFile = NULL;
+gchar         * fsSelectedDirectory = NULL;
+unsigned char * fsThatDir = ".";
+gchar         * fsFilter = NULL;
+
+int             fsPressed = 0;
+int             fsLastFilterNames = 2;
+unsigned char * fsFilterNames[3][2] = { { "MPEG files( *.mpg )", "*.mpg" },
+                                        { "AVI files( *.avi )",  "*.avi" },
+                                        { "All files( *)",       "*"     } };
+
+GtkWidget   * fsFileNamesList;
+GtkWidget   * fsFNameList;
+GtkWidget   * fsFileSelect;
+GdkColormap * fsColorMap;
+GtkWidget   * fsOk;
+GtkWidget   * fsUp;
+GtkWidget   * fsCancel;
+GtkWidget   * fsCombo4;
+GtkWidget   * fsComboEntry2;
+GList       * fsList_items = NULL;
+GList       * fsTopList_items = NULL;
+
+void CheckDir( GtkWidget * list,unsigned char * directory )
+{
+ struct stat     fs;
+ int             i,c=2;
+ gchar         * str[1][2];
+ GdkPixmap     * dpixmap,*fpixmap,*pixmap;
+ GdkBitmap     * dmask,*fmask,*mask;
+ GtkStyle      * style;
+ glob_t          gg;
+
+ gtk_widget_hide( list );
+ str[0][0]=NULL;
+ style=gtk_widget_get_style( fsFileSelect );
+ dpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&dmask,&style->bg[GTK_STATE_NORMAL],(gchar **)dir_xpm );
+ fpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&fmask,&style->bg[GTK_STATE_NORMAL],(gchar **)file_xpm );
+ pixmap=dpixmap; mask=dmask;
+ str[0][0]=NULL; str[0][1]=(gchar *)malloc( 3 );
+ strcpy( str[0][1],"." );
+ gtk_clist_append( GTK_CLIST( list ),str[0] ); gtk_clist_set_pixmap( GTK_CLIST( list ),0,0,pixmap,mask );
+ strcpy( str[0][1],".." );
+ gtk_clist_append( GTK_CLIST( list ),str[0] ); gtk_clist_set_pixmap( GTK_CLIST( list ),1,0,pixmap,mask );
+ free( str[0][0] );
+
+ glob( "*",GLOB_NOSORT,NULL,&gg );
+// glob( ".*",GLOB_NOSORT | GLOB_APPEND,NULL,&gg );
+ for(  i=0;i<gg.gl_pathc;i++ )
+  {
+   if(  !strcmp( gg.gl_pathv[i],"." ) || !strcmp( gg.gl_pathv[i],".." ) ) continue;
+   stat( gg.gl_pathv[i],&fs );
+   if(  S_ISDIR( fs.st_mode ) )
+    {
+     str[0][1]=(gchar *)malloc( strlen( gg.gl_pathv[i] ) + 2 );
+     strcpy( str[0][1],"" );
+     strcat( str[0][1],gg.gl_pathv[i] );
+     pixmap=dpixmap; mask=dmask;
+     gtk_clist_append( GTK_CLIST( list ),str[0] );
+     gtk_clist_set_pixmap( GTK_CLIST( list ),c,0,pixmap,mask );
+     free( str[0][1] );
+     c++;
+    }
+  }
+ globfree( &gg );
+ glob( fsFilter,GLOB_NOSORT,NULL,&gg );
+// glob( ".*",GLOB_NOSORT | GLOB_APPEND,NULL,&gg );
+ pixmap=fpixmap; mask=fmask;
+ for(  i=0;i<gg.gl_pathc;i++ )
+  {
+   if(  !strcmp( gg.gl_pathv[i],"." ) || !strcmp( gg.gl_pathv[i],".." ) ) continue;
+   stat( gg.gl_pathv[i],&fs );
+   if(  S_ISDIR( fs.st_mode ) ) continue;
+   str[0][1]=(gchar *)malloc( strlen( gg.gl_pathv[i] ) + 2 );
+   strcpy( str[0][1],"" ); strcat( str[0][1],gg.gl_pathv[i] );
+   gtk_clist_append( GTK_CLIST( list ),str[0] );
+   gtk_clist_set_pixmap( GTK_CLIST( list ),c,0,pixmap,mask );
+   free( str[0][1] );
+   c++;
+  }
+ globfree( &gg );
+
+ gtk_clist_set_sort_type( GTK_CLIST( list ),GTK_SORT_ASCENDING );
+ gtk_clist_set_compare_func( GTK_CLIST( list ),NULL );
+ gtk_clist_set_sort_column( GTK_CLIST( list ),1 );
+ gtk_clist_sort( GTK_CLIST( list ) );
+ gtk_clist_set_column_width( GTK_CLIST( list ),0,17 );
+ gtk_clist_select_row( GTK_CLIST( list ),0,1 );
+ gtk_widget_show( list );
+}
+
+void HideFileSelect( void )
+{
+ gtk_widget_hide( fsFileSelect );
+ gtkVisibleFileSelect=0;
+ gtkShMem->vs.window=evLoad;
+ gtkSendMessage( evHideWindow );
+}
+
+void fs_fsFileSelect_destroy( GtkObject * object,gpointer user_data )
+{ HideFileSelect(); }
+
+void fs_combo_entry1_activate( GtkEditable * editable,gpointer user_data )
+{
+ unsigned char * str;
+
+ str=gtk_entry_get_text( GTK_ENTRY(user_data ) );
+ gtk_clist_clear(  GTK_CLIST( fsFNameList ) );
+ if(  fsFilter ) free( fsFilter );
+ if(  (  fsFilter=(unsigned char *)malloc( strlen( str ) + 1 ) )  == NULL )
+  {
+   dbprintf( 0,"[gtk] not enough memory.\n" );
+   exit( 0 );
+  }
+ strcpy( fsFilter,str );
+ CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+}
+
+void fs_combo_entry1_changed( GtkEditable * editable,gpointer user_data )
+{
+ unsigned char * str;
+ int             i;
+
+ str=gtk_entry_get_text( GTK_ENTRY(user_data ) );
+
+ for( i=0;i<fsLastFilterNames+1;i++ )
+  {
+   if(  !strcmp( str,fsFilterNames[i][0] ) )
+    {
+     if(  fsFilter ) free( fsFilter );
+     if( (  fsFilter=(unsigned char *)malloc( 6 ) ) == NULL )
+      {
+       dbprintf( 0,"[gtk] not enough memory.\n" );
+       exit( 0 );
+      }
+     strcpy( fsFilter,fsFilterNames[i][1] );
+    }
+  }
+ gtk_clist_clear( GTK_CLIST( fsFNameList ) );
+ CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+}
+
+void fs_fsComboEntry2_activate( GtkEditable * editable,gpointer user_data )
+{
+ unsigned char * str;
+
+ str=gtk_entry_get_text( GTK_ENTRY( user_data ) );
+ if ( chdir( str ) != -1 )
+  {
+   gtk_clist_clear(  GTK_CLIST( fsFNameList ) );
+   CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+  }
+}
+
+void fs_fsComboEntry2_changed( GtkEditable * editable,gpointer user_data )
+{
+ unsigned char * str;
+
+ str=gtk_entry_get_text( GTK_ENTRY( user_data ) );
+ fsPressed=2;
+// if (
+// tmp=(unsigned char *)malloc( strlen( fsSelectedDirectory ) + 5 );
+// strcpy( tmp,fsSelectedDirectory ); strcat( tmp,"/*" );
+// fprintf( stderr,"str: %s\n",tmp );
+// free( tmp );
+ if ( chdir( str ) != -1 )
+  {
+   gtk_clist_clear(  GTK_CLIST( fsFNameList ) );
+   CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+  }
+}
+
+void fs_Up_released( GtkButton * button,gpointer user_data )
+{
+ chdir( ".." );
+ fsSelectedFile=fsThatDir;
+ gtk_clist_clear(  GTK_CLIST( user_data ) );
+ CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+ gtk_entry_set_text( GTK_ENTRY( fsComboEntry2 ),(unsigned char *)get_current_dir_name() );
+ return;
+}
+
+int fsFileExist( unsigned char * fname )
+{
+ FILE * f = fopen( fname,"r" );
+ if ( f == NULL ) return 0;
+ fclose( f );
+ return 1;
+}
+
+void fs_Ok_released( GtkButton * button,gpointer user_data )
+{
+ unsigned char * str;
+ GList         * item;
+ int             size,j,i = 1;
+ struct stat     fs;
+
+ stat( fsSelectedFile,&fs );
+ if(  S_ISDIR(fs.st_mode ) )
+  {
+   chdir( fsSelectedFile );
+   fsSelectedFile=fsThatDir;
+   if(  fsFNameList != NULL ) gtk_clist_clear( GTK_CLIST( fsFNameList ) );
+   CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+   gtk_entry_set_text( GTK_ENTRY( fsComboEntry2 ),(unsigned char *)get_current_dir_name() );
+   return;
+  }
+
+ HideFileSelect();
+
+ switch( fsPressed )
+  {
+   case 1:
+        fsSelectedDirectory=(unsigned char *)get_current_dir_name();
+        printf("[gtk-fs] 1-fsSelectedFile: %s\n",fsSelectedFile);
+        #ifdef DEBUG
+         dbprintf( 1,"[gtk-fs] fsSelectedFile: %s\n",fsSelectedFile );
+        #endif
+        break;
+   case 2:
+        str=gtk_entry_get_text( GTK_ENTRY( fsComboEntry2 ) );
+        fsSelectedFile=str;
+        printf("[gtk-fs] 2-fsSelectedFile: '%s'  \n",fsSelectedFile);
+        #ifdef DEBUG
+         dbprintf( 1,"[gtk-fs] fsSelectedFile: %s\n",fsSelectedFile );
+        #endif
+        if ( !fsFileExist( fsSelectedFile ) ) return;
+        fsSelectedDirectory=fsSelectedFile;
+        size=strlen( fsSelectedDirectory );
+        for ( j=0;j<size;j++ )
+         {
+          if ( fsSelectedDirectory[ size - j ] == '/' )
+           {
+            fsSelectedFile+=size - j + 1;
+            fsSelectedDirectory[ size - j ]=0;
+            break;
+           }
+         }
+        printf("[gtk-fs-xxx] fsSelectedFile: '%s'  \n",fsSelectedFile);
+        printf("[gtk-fs-xxx] fsSelectedDirectory: '%s'  \n",fsSelectedDirectory);
+        break;
+  }
+ strcpy( gtkShMem->fs.dir,fsSelectedDirectory );
+ strcpy( gtkShMem->fs.filename,fsSelectedFile );
+printf( "----gtk---> directory: %s\n",fsSelectedDirectory );
+printf( "----gtk---> filename: %s\n",fsSelectedFile );
+printf( "----gtksm-> directory: %s\n",gtkShMem->fs.dir );
+printf( "----gtksm-> filename: %s\n",gtkShMem->fs.filename );
+ item=fsTopList_items;
+ while( item )
+  {
+   if ( !strcmp( item->data,fsSelectedDirectory ) ) i=0;
+   item=item->next;
+  }
+ if ( i )
+  {
+   fsTopList_items=g_list_prepend( fsTopList_items,(gchar *)get_current_dir_name() );
+   gtk_combo_set_popdown_strings( GTK_COMBO( user_data ),fsTopList_items );
+  }
+ gtkSendMessage( evFileLoaded );
+}
+
+void fs_Cancel_released( GtkButton * button,gpointer user_data )
+{ HideFileSelect(); }
+
+void fs_fsFNameList_select_row( GtkWidget * widget,gint row,gint column,GdkEventButton *bevent,gpointer user_data )
+{
+ gtk_clist_get_text( GTK_CLIST(widget ),row,1,&fsSelectedFile ); fsSelectedFile++;
+ fsPressed=1;
+ if( !bevent ) return;
+ if( bevent->type == GDK_2BUTTON_PRESS ) gtk_button_released( GTK_BUTTON( fsOk ) );
+}
+
+gboolean on_FileSelect_key_release_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
+{
+ switch ( event->keyval )
+  {
+   case GDK_Escape:
+        gtk_button_released( GTK_BUTTON( fsCancel ) );
+        break;
+   case GDK_Return:
+        gtk_button_released( GTK_BUTTON( fsOk ) );
+        break;
+   case GDK_BackSpace:
+        gtk_button_released( GTK_BUTTON( fsUp ) );
+        break;
+  }
+ return FALSE;
+}
+
+GtkWidget * create_FileSelect( void )
+{
+ GtkWidget     * FSFrame;
+ GtkWidget     * frame2;
+ GtkWidget     * frame3;
+ GtkWidget     * frame4;
+ GtkWidget     * vbox4;
+ GtkWidget     * hbox4;
+ GtkWidget     * vseparator1;
+ GtkWidget     * hseparator1;
+ GtkWidget     * hbox6;
+ GtkWidget     * fsFNameListWindow;
+ GtkWidget     * label1;
+ GtkWidget     * hseparator2;
+ GtkWidget     * List;
+ GtkWidget     * combo_entry1;
+ GtkWidget     * hseparator3;
+ GtkWidget     * hbuttonbox3;
+ int             i;
+
+// GtkWidget     * okpixmapwid,*uppixmapwid,*cancelpixmapwid;
+// GdkPixmap     * okpixmap,*uppixmap,*cancelpixmap;
+// GdkBitmap     * okmask,*upmask,*cancelmask;
+// GtkStyle      * okstyle,*upstyle,*cancelstyle;
+
+ GtkWidget     * uppixmapwid;
+ GdkPixmap     * uppixmap;
+ GdkBitmap     * upmask;
+ GtkStyle      * upstyle;
+
+ if( (  fsFilter=(unsigned char *)malloc( 3 ) ) == NULL )
+  {
+   dbprintf( 0,"[gtk] not enough memory.\n" );
+   exit( 0 );
+  }
+ strcpy( fsFilter,"*" );
+
+ fsFileSelect=gtk_window_new( GTK_WINDOW_DIALOG );
+ gtk_widget_set_name( fsFileSelect,"fsFileSelect" );
+ gtk_object_set_data( GTK_OBJECT( fsFileSelect ),"fsFileSelect",fsFileSelect );
+ gtk_widget_set_usize( fsFileSelect,416,256 );
+ GTK_WIDGET_SET_FLAGS( fsFileSelect,GTK_CAN_DEFAULT );
+ gtk_widget_set_events( fsFileSelect,GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK );
+ gtk_window_set_title( GTK_WINDOW( fsFileSelect ),MSGTR_FileSelect );
+ gtk_window_set_position( GTK_WINDOW( fsFileSelect ),GTK_WIN_POS_CENTER );
+ gtk_window_set_policy( GTK_WINDOW( fsFileSelect ),FALSE,FALSE,TRUE );
+ fsColorMap=gdk_colormap_get_system();
+
+ FSFrame=gtk_frame_new( NULL );
+ gtk_widget_set_name( FSFrame,"FSFrame" );
+ gtk_widget_ref( FSFrame );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"FSFrame",FSFrame,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( FSFrame );
+ gtk_container_add( GTK_CONTAINER( fsFileSelect ),FSFrame );
+ gtk_container_set_border_width( GTK_CONTAINER( FSFrame ),1 );
+ gtk_frame_set_shadow_type( GTK_FRAME( FSFrame ),GTK_SHADOW_IN );
+
+ frame2=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame2,"frame2" );
+ gtk_widget_ref( frame2 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"frame2",frame2,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame2 );
+ gtk_container_add( GTK_CONTAINER( FSFrame ),frame2 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame2 ),GTK_SHADOW_NONE );
+
+ frame3=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame3,"frame3" );
+ gtk_widget_ref( frame3 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"frame3",frame3,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame3 );
+ gtk_container_add( GTK_CONTAINER( frame2 ),frame3 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame3 ),GTK_SHADOW_ETCHED_OUT );
+
+ frame4=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame4,"frame4" );
+ gtk_widget_ref( frame4 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"frame4",frame4,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame4 );
+ gtk_container_add( GTK_CONTAINER( frame3 ),frame4 );
+ gtk_container_set_border_width( GTK_CONTAINER( frame4 ),1 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame4 ),GTK_SHADOW_NONE );
+
+ vbox4=gtk_vbox_new( FALSE,0 );
+ gtk_widget_set_name( vbox4,"vbox4" );
+ gtk_widget_ref( vbox4 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"vbox4",vbox4,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( vbox4 );
+ gtk_container_add( GTK_CONTAINER( frame4 ),vbox4 );
+
+ hbox4=gtk_hbox_new( FALSE,0 );
+ gtk_widget_set_name( hbox4,"hbox4" );
+ gtk_widget_ref( hbox4 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hbox4",hbox4,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hbox4 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hbox4,TRUE,TRUE,0 );
+
+ fsCombo4=gtk_combo_new();
+ gtk_widget_set_name( fsCombo4,"fsCombo4" );
+ gtk_widget_ref( fsCombo4 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsCombo4",fsCombo4,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( fsCombo4 );
+ gtk_box_pack_start( GTK_BOX( hbox4 ),fsCombo4,TRUE,TRUE,0 );
+ gtk_widget_set_usize( fsCombo4,-2,20 );
+
+ fsTopList_items=g_list_append( fsTopList_items,(gchar *)get_current_dir_name() );
+ if ( getenv( "HOME" ) ) fsTopList_items=g_list_append( fsTopList_items,getenv( "HOME" ) );
+ fsTopList_items=g_list_append( fsTopList_items,"/home" );
+ fsTopList_items=g_list_append( fsTopList_items,"/mnt" );
+ fsTopList_items=g_list_append( fsTopList_items,"/" );
+ gtk_combo_set_popdown_strings( GTK_COMBO( fsCombo4 ),fsTopList_items );
+
+ fsComboEntry2=GTK_COMBO( fsCombo4 )->entry;
+ gtk_widget_set_name( fsComboEntry2,"fsComboEntry2" );
+ gtk_widget_ref( fsComboEntry2 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsComboEntry2",fsComboEntry2,( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( fsComboEntry2 );
+ gtk_widget_set_usize( fsComboEntry2,-2,20 );
+
+ vseparator1=gtk_vseparator_new();
+ gtk_widget_set_name( vseparator1,"vseparator1" );
+ gtk_widget_ref( vseparator1 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"vseparator1",vseparator1,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( vseparator1 );
+ gtk_box_pack_start( GTK_BOX( hbox4 ),vseparator1,FALSE,TRUE,0 );
+ gtk_widget_set_usize( vseparator1,7,20 );
+
+ upstyle=gtk_widget_get_style( fsFileSelect );
+ uppixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&upmask,&upstyle->bg[GTK_STATE_NORMAL],(gchar **)up_xpm );
+ uppixmapwid=gtk_pixmap_new( uppixmap,upmask );
+ gtk_widget_show( uppixmapwid );
+
+ fsUp=gtk_button_new();
+ gtk_container_add( GTK_CONTAINER(fsUp ),uppixmapwid );
+ gtk_widget_show( fsUp );
+ gtk_box_pack_start( GTK_BOX( hbox4 ),fsUp,FALSE,FALSE,0 );
+ gtk_widget_set_usize( fsUp,65,15 );
+
+ hseparator1=gtk_hseparator_new();
+ gtk_widget_set_name( hseparator1,"hseparator1" );
+ gtk_widget_ref( hseparator1 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hseparator1",hseparator1,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hseparator1 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hseparator1,FALSE,TRUE,0 );
+ gtk_widget_set_usize( hseparator1,-2,8 );
+
+ hbox6=gtk_hbox_new( FALSE,0 );
+ gtk_widget_set_name( hbox6,"hbox6" );
+ gtk_widget_ref( hbox6 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hbox6",hbox6,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hbox6 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hbox6,TRUE,TRUE,0 );
+
+ fsFNameListWindow=gtk_scrolled_window_new( NULL,NULL );
+ gtk_widget_set_name( fsFNameListWindow,"fsFNameListWindow" );
+ gtk_widget_ref( fsFNameListWindow );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsFNameListWindow",fsFNameListWindow,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( fsFNameListWindow );
+ gtk_box_pack_start( GTK_BOX( hbox6 ),fsFNameListWindow,TRUE,TRUE,0 );
+ gtk_widget_set_usize( fsFNameListWindow,-2,145 );
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( fsFNameListWindow ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC );
+
+ fsFNameList=gtk_clist_new( 2 );
+ gtk_widget_set_name( fsFNameList,"fsFNameList" );
+ gtk_widget_ref( fsFNameList );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"fsFNameList",fsFNameList,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_container_add( GTK_CONTAINER( fsFNameListWindow ),fsFNameList );
+ gtk_clist_set_column_width( GTK_CLIST( fsFNameList ),0,80 );
+ gtk_clist_set_selection_mode( GTK_CLIST( fsFNameList ),GTK_SELECTION_BROWSE );
+ gtk_clist_column_titles_hide( GTK_CLIST( fsFNameList ) );
+ gtk_clist_set_shadow_type( GTK_CLIST( fsFNameList ),GTK_SHADOW_ETCHED_OUT );
+ CheckDir( fsFNameList,(unsigned char *)get_current_dir_name() );
+
+ label1=gtk_label_new( "label1" );
+ gtk_widget_set_name( label1,"label1" );
+ gtk_widget_ref( label1 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"label1",label1,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( label1 );
+ gtk_clist_set_column_widget( GTK_CLIST( fsFNameList ),0,label1 );
+
+ hseparator2=gtk_hseparator_new();
+ gtk_widget_set_name( hseparator2,"hseparator2" );
+ gtk_widget_ref( hseparator2 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hseparator2",hseparator2,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hseparator2 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hseparator2,FALSE,TRUE,0 );
+ gtk_widget_set_usize( hseparator2,-2,9 );
+
+ List=gtk_combo_new();
+ gtk_widget_set_name( List,"List" );
+ gtk_widget_ref( List );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"List",List,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( List );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),List,FALSE,FALSE,0 );
+ gtk_widget_set_usize( List,-2,20 );
+ fsList_items=NULL;
+ for( i=0;i<fsLastFilterNames + 1;i++ )
+   fsList_items=g_list_append( fsList_items,fsFilterNames[i][0] );
+ gtk_combo_set_popdown_strings( GTK_COMBO( List ),fsList_items );
+ g_list_free( fsList_items );
+
+ combo_entry1=GTK_COMBO( List )->entry;
+ gtk_widget_set_name( combo_entry1,"combo_entry1" );
+ gtk_widget_ref( combo_entry1 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"combo_entry1",combo_entry1,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( combo_entry1 );
+ gtk_entry_set_text( GTK_ENTRY( combo_entry1 ),fsFilterNames[fsLastFilterNames][0] );
+
+ hseparator3=gtk_hseparator_new();
+ gtk_widget_set_name( hseparator3,"hseparator3" );
+ gtk_widget_ref( hseparator3 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hseparator3",hseparator3,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hseparator3 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hseparator3,FALSE,TRUE,0 );
+ gtk_widget_set_usize( hseparator3,-2,7 );
+
+ hbuttonbox3=gtk_hbutton_box_new();
+ gtk_widget_set_name( hbuttonbox3,"hbuttonbox3" );
+ gtk_widget_ref( hbuttonbox3 );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),"hbuttonbox3",hbuttonbox3,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hbuttonbox3 );
+ gtk_box_pack_start( GTK_BOX( vbox4 ),hbuttonbox3,FALSE,TRUE,0 );
+ gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox3 ),GTK_BUTTONBOX_END );
+ gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox3 ),10 );
+ gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox3 ),85,20 );
+ gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox3 ),0,0 );
+
+// okstyle=gtk_widget_get_style( fsFileSelect );
+// okpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&okmask,&okstyle->bg[GTK_STATE_NORMAL],(gchar **)ok_xpm );
+// okpixmapwid=gtk_pixmap_new( okpixmap,okmask );
+// gtk_widget_show( okpixmapwid );
+// fsOk=gtk_button_new();
+// gtk_container_add( GTK_CONTAINER(fsOk ),okpixmapwid );
+// gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsOk );
+// gtk_widget_show( fsOk );
+
+ fsOk=gtk_button_new_with_label( MSGTR_Ok );
+ gtk_widget_set_name( fsOk,MSGTR_Ok );
+ gtk_widget_ref( fsOk );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),MSGTR_Ok,fsOk,( GtkDestroyNotify )gtk_widget_unref );
+ gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsOk );
+ gtk_widget_show( fsOk );
+
+// cancelstyle=gtk_widget_get_style( fsFileSelect );
+// cancelpixmap=gdk_pixmap_colormap_create_from_xpm_d( fsFileSelect->window,fsColorMap,&cancelmask,&cancelstyle->bg[GTK_STATE_NORMAL],(gchar **)cancel_xpm );
+// cancelpixmapwid=gtk_pixmap_new( cancelpixmap,cancelmask );
+// gtk_widget_show( cancelpixmapwid );
+// fsCancel=gtk_button_new();
+// gtk_widget_show( fsCancel );
+// gtk_container_add( GTK_CONTAINER( fsCancel ),cancelpixmapwid );
+// gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsCancel );
+// gtk_widget_show( fsCancel );
+
+ fsCancel=gtk_button_new_with_label( MSGTR_Cancel );
+ gtk_widget_set_name( fsCancel,MSGTR_Cancel );
+ gtk_widget_ref( fsCancel );
+ gtk_object_set_data_full( GTK_OBJECT( fsFileSelect ),MSGTR_Cancel,fsCancel,( GtkDestroyNotify )gtk_widget_unref );
+ gtk_container_add( GTK_CONTAINER( hbuttonbox3 ),fsCancel );
+ gtk_widget_show( fsCancel );
+
+ gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"destroy",
+                     GTK_SIGNAL_FUNC( fs_fsFileSelect_destroy ),
+                     NULL );
+ gtk_signal_connect( GTK_OBJECT( fsFileSelect ),"key_release_event",
+                     GTK_SIGNAL_FUNC( on_FileSelect_key_release_event ),
+                     NULL );
+ gtk_signal_connect( GTK_OBJECT( combo_entry1 ),"changed",
+                     GTK_SIGNAL_FUNC( fs_combo_entry1_changed ),
+                     combo_entry1 );
+ gtk_signal_connect( GTK_OBJECT( combo_entry1 ),"activate",
+                     GTK_SIGNAL_FUNC( fs_combo_entry1_activate ),
+                     combo_entry1 );
+ gtk_signal_connect( GTK_OBJECT( fsComboEntry2 ),"changed",
+                     GTK_SIGNAL_FUNC( fs_fsComboEntry2_changed ),
+                     fsComboEntry2 );
+ gtk_signal_connect( GTK_OBJECT( fsComboEntry2 ),"activate",
+                     GTK_SIGNAL_FUNC( fs_fsComboEntry2_activate ),
+                     fsComboEntry2 );
+ gtk_signal_connect( GTK_OBJECT( fsUp ),"released",
+                     GTK_SIGNAL_FUNC( fs_Up_released ),
+                     fsFNameList );
+ gtk_signal_connect( GTK_OBJECT( fsOk ),"released",
+                     GTK_SIGNAL_FUNC( fs_Ok_released ),
+                     fsCombo4 );
+ gtk_signal_connect( GTK_OBJECT( fsCancel ),"released",
+                     GTK_SIGNAL_FUNC( fs_Cancel_released ),
+                     NULL );
+
+ gtk_signal_connect( GTK_OBJECT( fsFNameList ),"select_row",
+                    ( GtkSignalFunc ) fs_fsFNameList_select_row,
+                     NULL );
+
+ gtk_widget_grab_focus( fsFNameList );
+
+ return fsFileSelect;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/mb.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,187 @@
+
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "../pixmaps/error.xpm"
+#include "../pixmaps/warning.xpm"
+
+#include "../widgets.h"
+#include "mb.h"
+
+GtkWidget * gtkMessageBoxText;
+
+void on_MessageBox_destroy( GtkObject * object,gpointer user_data  )
+{
+/*
+ switch( (int)user_data )
+  {
+   case GTK_MB_ERROR: gtk_widget_hide( ErrorMessageBox  ); break;
+   case GTK_MB_WARNING: gtk_widget_hide( WarningMessageBox  ); break;
+  }
+*/
+ gtk_widget_hide( MessageBox  );
+ gtkVisibleMessageBox=0;
+}
+
+void on_Ok_released( GtkButton * button,gpointer user_data  )
+{
+ gtk_widget_hide( MessageBox  );
+ gtkVisibleMessageBox=0;
+ gtkSendMessage( evMessageBox  );
+}
+
+GtkWidget * create_MessageBox( int type )
+{
+ GtkWidget * MessageBox;
+ GtkWidget * frame1;
+ GtkWidget * frame2;
+ GtkWidget * frame3;
+ GtkWidget * frame4;
+ GtkWidget * vbox1;
+ GtkWidget * hbox1;
+ GtkWidget * pixmap1;
+ GtkWidget * hseparator1;
+ GtkWidget * hbuttonbox1;
+ GtkWidget * Ok;
+ GtkAccelGroup * accel_group;
+ GtkStyle * pixmapstyle;
+ GtkPixmap * pixmapwid;
+ GdkBitmap * mask;
+
+ accel_group = gtk_accel_group_new ();
+
+ MessageBox = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_name (MessageBox, "MessageBox");
+ gtk_object_set_data (GTK_OBJECT (MessageBox), "MessageBox", MessageBox);
+ gtk_widget_set_events (MessageBox, GDK_EXPOSURE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_VISIBILITY_NOTIFY_MASK);
+ gtk_window_set_title (GTK_WINDOW (MessageBox), "MPlayer ...");
+ gtk_window_set_position (GTK_WINDOW (MessageBox), GTK_WIN_POS_CENTER);
+ gtk_window_set_modal (GTK_WINDOW (MessageBox), TRUE);
+ gtk_window_set_policy (GTK_WINDOW (MessageBox), TRUE, TRUE, FALSE);
+
+ frame1 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame1, "frame1");
+ gtk_widget_ref (frame1);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "frame1", frame1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame1);
+ gtk_container_add (GTK_CONTAINER (MessageBox), frame1);
+ gtk_container_set_border_width (GTK_CONTAINER (frame1), 1);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
+
+ frame2 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame2, "frame2");
+ gtk_widget_ref (frame2);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "frame2", frame2,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame2);
+ gtk_container_add (GTK_CONTAINER (frame1), frame2);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE);
+
+ frame3 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame3, "frame3");
+ gtk_widget_ref (frame3);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "frame3", frame3,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame3);
+ gtk_container_add (GTK_CONTAINER (frame2), frame3);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_OUT);
+
+ frame4 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame4, "frame4");
+ gtk_widget_ref (frame4);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "frame4", frame4,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame4);
+ gtk_container_add (GTK_CONTAINER (frame3), frame4);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_NONE);
+
+ vbox1 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_set_name (vbox1, "vbox1");
+ gtk_widget_ref (vbox1);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "vbox1", vbox1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox1);
+ gtk_container_add (GTK_CONTAINER (frame4), vbox1);
+
+ hbox1 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_set_name (hbox1, "hbox1");
+ gtk_widget_ref (hbox1);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "hbox1", hbox1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
+
+ pixmapstyle=gtk_widget_get_style( MessageBox );
+
+ pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )warning_xpm );
+ WarningPixmap=gtk_pixmap_new( pixmapwid,mask );
+ pixmapwid=gdk_pixmap_colormap_create_from_xpm_d( MessageBox->window,gdk_colormap_get_system(),&mask,&pixmapstyle->bg[GTK_STATE_NORMAL],(gchar ** )error_xpm );
+ ErrorPixmap=gtk_pixmap_new( pixmapwid,mask );
+
+ gtk_widget_set_name (WarningPixmap, "pixmap1");
+ gtk_widget_ref (WarningPixmap);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "pixmap1", WarningPixmap,(GtkDestroyNotify)gtk_widget_unref);
+ gtk_widget_hide (WarningPixmap);
+ gtk_box_pack_start (GTK_BOX (hbox1), WarningPixmap, FALSE, FALSE, 0);
+ gtk_widget_set_usize (WarningPixmap, 55, -2);
+
+ gtk_widget_set_name (ErrorPixmap, "pixmap1");
+ gtk_widget_ref (ErrorPixmap);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "pixmap1", ErrorPixmap,(GtkDestroyNotify)gtk_widget_unref);
+ gtk_widget_hide (ErrorPixmap);
+ gtk_box_pack_start (GTK_BOX (hbox1), ErrorPixmap, FALSE, FALSE, 0);
+ gtk_widget_set_usize (ErrorPixmap, 55, -2);
+
+ gtkMessageBoxText = gtk_label_new ( "Text jol. Ha ezt megerted, akkor neked nagyon jo a magyar tudasod, te.");
+ gtk_widget_set_name (gtkMessageBoxText, "gtkMessageBoxText");
+ gtk_widget_ref (gtkMessageBoxText);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "gtkMessageBoxText", gtkMessageBoxText,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (gtkMessageBoxText);
+ gtk_box_pack_start (GTK_BOX (hbox1), gtkMessageBoxText, TRUE, TRUE, 0);
+ gtk_label_set_justify (GTK_LABEL (gtkMessageBoxText), GTK_JUSTIFY_FILL);
+ gtk_label_set_line_wrap (GTK_LABEL (gtkMessageBoxText), TRUE);
+
+ hseparator1 = gtk_hseparator_new ();
+ gtk_widget_set_name (hseparator1, "hseparator1");
+ gtk_widget_ref (hseparator1);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "hseparator1", hseparator1,
+                            (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hseparator1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, FALSE, 0);
+ gtk_widget_set_usize (hseparator1, -2, 9);
+
+ hbuttonbox1 = gtk_hbutton_box_new ();
+ gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
+ gtk_widget_ref (hbuttonbox1);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox), "hbuttonbox1", hbuttonbox1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbuttonbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, FALSE, FALSE, 0);
+
+ Ok = gtk_button_new_with_label (MSGTR_Ok);
+ gtk_widget_set_name (Ok, MSGTR_Ok);
+ gtk_widget_ref (Ok);
+ gtk_object_set_data_full (GTK_OBJECT (MessageBox),MSGTR_Ok, Ok,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (Ok);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox1), Ok);
+ GTK_WIDGET_SET_FLAGS (Ok, GTK_CAN_DEFAULT);
+ gtk_widget_add_accelerator (Ok, "released", accel_group,
+                             GDK_Return, 0,
+                             GTK_ACCEL_VISIBLE);
+ gtk_widget_add_accelerator (Ok, "released", accel_group,
+                             GDK_Escape, 0,
+                             GTK_ACCEL_VISIBLE);
+
+ gtk_signal_connect (GTK_OBJECT (MessageBox), "destroy_event",
+                     GTK_SIGNAL_FUNC (on_MessageBox_destroy),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (Ok), "released",GTK_SIGNAL_FUNC (on_Ok_released),NULL);
+
+ gtk_window_add_accel_group (GTK_WINDOW (MessageBox), accel_group);
+
+ return MessageBox;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/menu.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,101 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include "../../events.h"
+#include "menu.h"
+#include "../widgets.h"
+
+void ActivateMenuItem( int Item )
+{
+ gtkVisiblePopUpMenu=0;
+ fprintf( stderr,"[menu] item: %d\n",Item );
+}
+
+GtkWidget * AddMenuItem( GtkWidget * Menu,char * label,int Number )
+{
+ GtkWidget * Item = NULL;
+ Item=gtk_menu_item_new_with_label( label );
+ gtk_menu_append( GTK_MENU( Menu ),Item );
+ gtk_signal_connect_object( GTK_OBJECT(Item),"activate",
+   GTK_SIGNAL_FUNC(ActivateMenuItem),(gpointer)Number );
+ gtk_widget_show( Item );
+ return Item;
+}
+
+GtkWidget * AddSubMenu( GtkWidget * Menu,char * label )
+{
+ GtkWidget * Item = NULL;
+ GtkWidget * SubItem = NULL;
+
+ SubItem=gtk_menu_item_new_with_label( label );
+ gtk_menu_append( GTK_MENU( Menu ),SubItem );
+ gtk_widget_show( SubItem );
+
+ Item=gtk_menu_new();
+ gtk_widget_show( Item );
+ gtk_menu_item_set_submenu( GTK_MENU_ITEM( SubItem ),Item );
+ return Item;
+}
+
+GtkWidget * AddSeparator( GtkWidget * Menu )
+{
+ GtkWidget * Item = NULL;
+
+ Item=gtk_menu_item_new ();
+ gtk_widget_show( Item );
+ gtk_container_add( GTK_CONTAINER( Menu ),Item );
+ gtk_widget_set_sensitive( Item,FALSE );
+
+ return Item;
+}
+
+GtkWidget * DVDSubMenu;
+
+GtkWidget * create_PopUpMenu( void )
+{
+ GtkWidget * Menu = NULL;
+ GtkWidget * SubMenu = NULL;
+ GtkWidget * SubMenuItem = NULL;
+
+ Menu=gtk_menu_new();
+
+  AddMenuItem( Menu,"About MPlayer""      ", evAbout );
+  AddSeparator( Menu );
+   SubMenu=AddSubMenu( Menu,"Open ..." );
+    AddMenuItem( SubMenu,"Play file ...""    ", evLoad );
+    AddMenuItem( SubMenu,"Play VCD ...", evNone );
+    AddMenuItem( SubMenu,"Play DVD ...", evNone );
+    AddMenuItem( SubMenu,"Play URL ...", evNone );
+    AddMenuItem( SubMenu,"Load subtitle ...   ", evLoadSubtitle );
+   SubMenu=AddSubMenu( Menu,"Playing" );
+    AddMenuItem( SubMenu,"Play""        ", evPlay );
+    AddMenuItem( SubMenu,"Pause", evPause );
+    AddMenuItem( SubMenu,"Stop", evStop );
+    AddMenuItem( SubMenu,"Prev stream", evPrev );
+    AddMenuItem( SubMenu,"Next stream", evNext );
+    AddSeparator( SubMenu );
+    AddMenuItem( SubMenu,"Back 10 sec", evBackward10sec );
+    AddMenuItem( SubMenu,"Fwd 10 sec", evForward10sec );
+    AddMenuItem( SubMenu,"Back 1 min", evBackward1min );
+    AddMenuItem( SubMenu,"Fwd 1 min", evForward1min );
+    AddMenuItem( SubMenu,"Back 10 min", evBackward10min );
+    AddMenuItem( SubMenu,"Fwk 10 min", evForward10min );
+   SubMenu=AddSubMenu( Menu,"Size" );
+    AddMenuItem( SubMenu,"Normal size""      ", evNormalSize );
+    AddMenuItem( SubMenu,"Double size", evDoubleSize );
+    AddMenuItem( SubMenu,"Fullscreen", evFullScreen );
+   DVDSubMenu=AddSubMenu( Menu,"DVD" );
+    AddMenuItem( DVDSubMenu,"Play disc ...", evNone );
+    AddMenuItem( DVDSubMenu,"Show DVD Menu", evNone );
+    AddSeparator( DVDSubMenu );
+    AddMenuItem( DVDSubMenu,"    ...      ", evNone );
+  AddSeparator( Menu );
+  AddMenuItem( Menu,"Playlist", evPlayList );
+  AddMenuItem( Menu,"Skin browser", evSkinBrowser );
+  AddMenuItem( Menu,"Preferences", evPreferences );
+  AddSeparator( Menu );
+  AddMenuItem( Menu,"Exit ...", evExit );
+
+ return Menu;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/opts.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,796 @@
+
+#include "./mplayer.h"
+#include "psignal.h"
+#include "../error.h"
+
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "../widgets.h"
+#include "opts.h"
+
+GtkWidget * opAudioFrameLabel;
+GtkWidget * opAudioLabel;
+GtkWidget * opAudioDriverMenu;
+GtkWidget * opDelayLabel;
+GtkWidget * opAudioDelaySkinButton;
+GtkWidget * opAudioConfigureButton;
+GtkWidget * OpVideoFrameLabel;
+GtkWidget * opVideoLabel;
+GtkWidget * opVideoMenu;
+GtkWidget * opOsdCheckButton;
+GtkWidget * opVideoConfButton;
+GtkWidget * opOSDLabel;
+GtkWidget * opOSDLevelSpinButton;
+GtkWidget * opAutoFullscreenCheckBox;
+GtkWidget * opOk;
+GtkWidget * opCancel;
+
+int opShift = False;
+
+void HideOptions( void )
+{
+ gtk_widget_hide( Options );
+ gtkVisibleOptions=0;
+ gtkShMem->vs.window=evPreferences;
+ gtkSendMessage( evHideWindow );
+}
+
+gboolean on_window2_key_press_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
+{
+ switch ( event->keyval )
+  {
+   case GDK_Shift_L:
+   case GDK_Shift_R:
+        opShift=True;
+        break;
+  }
+ return FALSE;
+}
+
+gboolean on_window2_key_release_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
+{
+ switch ( event->keyval )
+  {
+   case GDK_Escape:
+   case GDK_Return:
+        if ( !opShift ) HideOptions();
+        break;
+   case GDK_Tab:
+//        if ( sbShift )
+//         { if ( (--sbItemsListCounter) < 0 ) sbItemsListCounter=2; }
+//         else
+//          { if ( (++sbItemsListCounter) > 2 ) sbItemsListCounter=0; }
+//        gtk_widget_grab_focus( sbItemsList[sbItemsListCounter] );
+        break;
+   case GDK_Shift_L:
+   case GDK_Shift_R:
+        opShift=False;
+        break;
+  }
+ return FALSE;
+}
+
+gboolean on_window2_destroy_event( GtkWidget * widget,GdkEvent * event,gpointer user_data)
+{
+  HideOptions();
+  return FALSE;
+}
+
+void on_opAudioDriverMenu_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void on_opAudioDelaySkinButton_changed( GtkEditable * editable,gpointer user_data )
+{
+}
+
+void on_opAudioDelaySkinButton_move_to_column( GtkEditable * editable,gint column,gpointer user_data )
+{
+}
+
+void on_opAudioDelaySkinButton_move_to_row( GtkEditable * editable,gint row,gpointer user_data )
+{
+}
+
+void on_opAudioConfigureButton_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void on_opVideoMenu_released( GtkButton * button,gpointer user_data )
+{
+ fprintf( stderr,"[opts] data: %s\n",(char *)user_data );
+}
+
+void on_opVideoMenu_pressed( GtkButton * button,gpointer user_data )
+{
+ fprintf( stderr,"[opts] data: %s\n",(char *)user_data );
+}
+
+void on_opVideoMenu_clicked( GtkButton * button,gpointer user_data)
+{
+ fprintf( stderr,"[opts] data(2): %s\n",(char *)user_data );
+}
+
+gboolean on_opVideoMenu_button_release_event( GtkWidget * widget,GdkEventButton * event,gpointer user_data )
+{
+ fprintf( stderr,"[opts] video menu.\n" );
+ return FALSE;
+}
+
+void on_opOsdCheckButton_toggled( GtkToggleButton * togglebutton,gpointer user_data )
+{
+}
+
+void on_opVideoConfButton_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void on_opOSDLevelSpinButton_changed( GtkEditable * editable,gpointer user_data )
+{
+}
+
+void on_opOSDLevelSpinButton_move_to_column( GtkEditable * editable,gint column,gpointer user_data )
+{
+}
+
+void on_opOSDLevelSpinButton_move_to_row( GtkEditable * editable,gint row,gpointer user_data )
+{
+}
+
+void on_opOk_released( GtkButton * button,gpointer user_data )
+{ HideOptions(); }
+
+void on_opCancel_released( GtkButton * button,gpointer user_data )
+{ HideOptions(); }
+
+gboolean on_confOSS_destroy_event    ( GtkWidget * widget,GdkEvent * event,gpointer user_data)
+{
+  return FALSE;
+}
+
+gboolean on_confOSS_key_press_event  ( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
+{
+  return FALSE;
+}
+
+gboolean on_confOSS_key_release_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data )
+{
+  return FALSE;
+}
+
+void on_opOSSDSPCombo_set_focus_child( GtkContainer * container,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void on_opOSSDSPComboEntry_changed( GtkEditable * editable,gpointer user_data )
+{
+}
+
+void on_opOSSMixerCombo_set_focus_child( GtkContainer * container,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void on_opOSSMixerComboEntry_changed( GtkEditable * editable,gpointer user_data )
+{
+}
+
+void on_opOSSOk_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void on_opOSSCancel_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void on_opAutoFullscreenCheckBox_toggled( GtkToggleButton *togglebutton,gpointer user_data )
+{
+}
+
+GtkWidget * create_Options( void )
+{
+ GtkWidget *frame1;
+ GtkWidget *frame2;
+ GtkWidget *frame3;
+ GtkWidget *frame4;
+ GtkWidget *vbox1;
+ GtkWidget *notebook1;
+ GtkWidget *frame5;
+ GtkWidget *frame6;
+ GtkWidget *hbox1;
+ GtkWidget *table1;
+ GtkWidget *opAudioDriverMenu_menu;
+ GtkWidget *glade_menuitem;
+ GtkObject *opAudioDelaySkinButton_adj;
+ GtkWidget *hbuttonbox2;
+ GtkWidget *frame16;
+ GtkWidget *table2;
+ GtkWidget *opVideoMenu_menu;
+ GtkWidget *hbuttonbox3;
+ GtkWidget *label5;
+ GtkObject *opOSDLevelSpinButton_adj;
+ GtkWidget *frame17;
+ GtkWidget *opAudio;
+ GtkWidget *frame11;
+ GtkWidget *frame12;
+ GtkWidget *hbox2;
+ GtkWidget *frame13;
+ GtkWidget *table4;
+ GtkWidget *vseparator1;
+ GtkWidget *frame14;
+ GtkWidget *opMisc;
+ GtkWidget *hseparator1;
+ GtkWidget *hbuttonbox1;
+ GtkTooltips *tooltips;
+
+ tooltips = gtk_tooltips_new ();
+
+ Options = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+ gtk_widget_set_name (Options, "Options");
+ gtk_object_set_data (GTK_OBJECT (Options), "Options", Options);
+ gtk_widget_set_usize (Options, 448, 260);
+ gtk_widget_set_events (Options, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK | GDK_VISIBILITY_NOTIFY_MASK);
+ gtk_window_set_title (GTK_WINDOW (Options),"Options");
+ gtk_window_set_policy (GTK_WINDOW (Options), FALSE, FALSE, FALSE);
+ gtk_window_set_wmclass (GTK_WINDOW (Options), "Options", "Options");
+
+ frame1 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame1, "frame1");
+ gtk_widget_ref (frame1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame1", frame1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame1);
+ gtk_container_add (GTK_CONTAINER (Options), frame1);
+ gtk_container_set_border_width (GTK_CONTAINER (frame1), 1);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
+
+ frame2 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame2, "frame2");
+ gtk_widget_ref (frame2);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame2", frame2,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame2);
+ gtk_container_add (GTK_CONTAINER (frame1), frame2);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_NONE);
+
+ frame3 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame3, "frame3");
+ gtk_widget_ref (frame3);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame3", frame3,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame3);
+ gtk_container_add (GTK_CONTAINER (frame2), frame3);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame3), GTK_SHADOW_ETCHED_OUT);
+
+ frame4 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame4, "frame4");
+ gtk_widget_ref (frame4);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame4", frame4,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame4);
+ gtk_container_add (GTK_CONTAINER (frame3), frame4);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame4), GTK_SHADOW_NONE);
+
+ vbox1 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_set_name (vbox1, "vbox1");
+ gtk_widget_ref (vbox1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "vbox1", vbox1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vbox1);
+ gtk_container_add (GTK_CONTAINER (frame4), vbox1);
+
+ notebook1 = gtk_notebook_new ();
+ gtk_widget_set_name (notebook1, "notebook1");
+ gtk_widget_ref (notebook1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "notebook1", notebook1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (notebook1);
+ gtk_box_pack_start (GTK_BOX (vbox1), notebook1, TRUE, TRUE, 0);
+
+ frame5 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame5, "frame5");
+ gtk_widget_ref (frame5);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame5", frame5,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame5);
+ gtk_container_add (GTK_CONTAINER (notebook1), frame5);
+
+ frame6 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame6, "frame6");
+ gtk_widget_ref (frame6);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame6", frame6,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame6);
+ gtk_container_add (GTK_CONTAINER (frame5), frame6);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame6), GTK_SHADOW_NONE);
+
+ hbox1 = gtk_hbox_new (TRUE, 0);
+ gtk_widget_set_name (hbox1, "hbox1");
+ gtk_widget_ref (hbox1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hbox1", hbox1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox1);
+ gtk_container_add (GTK_CONTAINER (frame6), hbox1);
+
+ opAudioFrameLabel = gtk_frame_new ("Audio");
+ gtk_widget_set_name (opAudioFrameLabel, "opAudioFrameLabel");
+ gtk_widget_ref (opAudioFrameLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudioFrameLabel", opAudioFrameLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudioFrameLabel);
+ gtk_box_pack_start (GTK_BOX (hbox1), opAudioFrameLabel, FALSE, FALSE, 0);
+ gtk_widget_set_usize (opAudioFrameLabel, 212, -2);
+ gtk_container_set_border_width (GTK_CONTAINER (opAudioFrameLabel), 3);
+ gtk_frame_set_shadow_type (GTK_FRAME (opAudioFrameLabel), GTK_SHADOW_ETCHED_OUT);
+
+ table1 = gtk_table_new (4, 2, FALSE);
+ gtk_widget_set_name (table1, "table1");
+ gtk_widget_ref (table1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "table1", table1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (table1);
+ gtk_container_add (GTK_CONTAINER (opAudioFrameLabel), table1);
+
+ opAudioLabel = gtk_label_new ("Driver: ");
+ gtk_widget_set_name (opAudioLabel, "opAudioLabel");
+ gtk_widget_ref (opAudioLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudioLabel", opAudioLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudioLabel);
+ gtk_table_attach (GTK_TABLE (table1), opAudioLabel, 0, 1, 0, 1,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opAudioLabel, 40, -2);
+ gtk_misc_set_alignment (GTK_MISC (opAudioLabel), 0, 0.5);
+
+ opAudioDriverMenu = gtk_option_menu_new ();
+ gtk_widget_set_name (opAudioDriverMenu, "opAudioDriverMenu");
+ gtk_widget_ref (opAudioDriverMenu);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudioDriverMenu", opAudioDriverMenu,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudioDriverMenu);
+ gtk_table_attach (GTK_TABLE (table1), opAudioDriverMenu, 1, 2, 0, 1,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opAudioDriverMenu, 159, 25);
+ gtk_tooltips_set_tip (tooltips, opAudioDriverMenu, "Select audio output driver.", NULL);
+ opAudioDriverMenu_menu = gtk_menu_new ();
+ glade_menuitem = gtk_menu_item_new_with_label ("null");
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (opAudioDriverMenu_menu), glade_menuitem);
+
+ #ifdef USE_OSS_AUDIO
+  glade_menuitem = gtk_menu_item_new_with_label ("OSS");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opAudioDriverMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_ALSA5
+  glade_menuitem = gtk_menu_item_new_with_label ("ALSA 0.5.x");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opAudioDriverMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_ALSA9
+  glade_menuitem = gtk_menu_item_new_with_label ("ALSA 0.9.x");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opAudioDriverMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_ESD
+  glade_menuitem = gtk_menu_item_new_with_label ("ESD");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opAudioDriverMenu_menu), glade_menuitem);
+ #endif
+
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (opAudioDriverMenu), opAudioDriverMenu_menu);
+
+ opDelayLabel = gtk_label_new ("Delay:");
+ gtk_widget_set_name (opDelayLabel, "opDelayLabel");
+ gtk_widget_ref (opDelayLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opDelayLabel", opDelayLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opDelayLabel);
+ gtk_table_attach (GTK_TABLE (table1), opDelayLabel, 0, 1, 1, 2,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opDelayLabel, 35, -2);
+ gtk_misc_set_alignment (GTK_MISC (opDelayLabel), 0, 0.5);
+
+ opAudioDelaySkinButton_adj = gtk_adjustment_new (0, -500, 500, 0.01, 10, 10);
+ opAudioDelaySkinButton = gtk_spin_button_new (GTK_ADJUSTMENT (opAudioDelaySkinButton_adj), 1, 2);
+ gtk_widget_set_name (opAudioDelaySkinButton, "opAudioDelaySkinButton");
+ gtk_widget_ref (opAudioDelaySkinButton);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudioDelaySkinButton", opAudioDelaySkinButton,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudioDelaySkinButton);
+ gtk_table_attach (GTK_TABLE (table1), opAudioDelaySkinButton, 1, 2, 1, 2,
+                   (GtkAttachOptions) (GTK_FILL), //GTK_EXPAND |
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opAudioDelaySkinButton, 160, 25);
+ gtk_tooltips_set_tip (tooltips, opAudioDelaySkinButton, "Set audio delay.", NULL);
+ gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (opAudioDelaySkinButton), TRUE);
+
+ hbuttonbox2 = gtk_hbutton_box_new ();
+ gtk_widget_set_name (hbuttonbox2, "hbuttonbox2");
+ gtk_widget_ref (hbuttonbox2);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hbuttonbox2", hbuttonbox2,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbuttonbox2);
+ gtk_table_attach (GTK_TABLE (table1), hbuttonbox2, 1, 2, 3, 4,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (GTK_FILL), 0, 0);
+ gtk_widget_set_usize (hbuttonbox2, -2, 31);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox2), GTK_BUTTONBOX_END);
+
+ opAudioConfigureButton = gtk_button_new_with_label ("Configure");
+ gtk_widget_set_name (opAudioConfigureButton, "opAudioConfigureButton");
+ gtk_widget_ref (opAudioConfigureButton);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudioConfigureButton", opAudioConfigureButton,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudioConfigureButton);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox2), opAudioConfigureButton);
+ gtk_widget_set_usize (opAudioConfigureButton, -2, 31);
+ GTK_WIDGET_SET_FLAGS (opAudioConfigureButton, GTK_CAN_DEFAULT);
+ gtk_tooltips_set_tip (tooltips, opAudioConfigureButton, "Configure selected audio driver.", NULL);
+
+ frame16 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame16, "frame16");
+ gtk_widget_ref (frame16);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame16", frame16,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame16);
+ gtk_table_attach (GTK_TABLE (table1), frame16, 1, 2, 2, 3,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame16), GTK_SHADOW_NONE);
+
+ OpVideoFrameLabel = gtk_frame_new ("Video");
+ gtk_widget_set_name (OpVideoFrameLabel, "OpVideoFrameLabel");
+ gtk_widget_ref (OpVideoFrameLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "OpVideoFrameLabel", OpVideoFrameLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (OpVideoFrameLabel);
+ gtk_box_pack_start (GTK_BOX (hbox1), OpVideoFrameLabel, FALSE, FALSE, 0);
+ gtk_widget_set_usize (OpVideoFrameLabel, 212, -2);
+ gtk_container_set_border_width (GTK_CONTAINER (OpVideoFrameLabel), 3);
+ gtk_frame_set_shadow_type (GTK_FRAME (OpVideoFrameLabel), GTK_SHADOW_ETCHED_OUT);
+
+ table2 = gtk_table_new (5, 2, FALSE);
+ gtk_widget_set_name (table2, "table2");
+ gtk_widget_ref (table2);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "table2", table2,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (table2);
+ gtk_container_add (GTK_CONTAINER (OpVideoFrameLabel), table2);
+
+ opVideoLabel = gtk_label_new ("Driver:");
+ gtk_widget_set_name (opVideoLabel, "opVideoLabel");
+ gtk_widget_ref (opVideoLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opVideoLabel", opVideoLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opVideoLabel);
+ gtk_table_attach (GTK_TABLE (table2), opVideoLabel, 0, 1, 0, 1,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opVideoLabel, 35, -2);
+ gtk_misc_set_alignment (GTK_MISC (opVideoLabel), 0, 0.5);
+
+ opVideoMenu = gtk_option_menu_new ();
+ gtk_widget_set_name (opVideoMenu, "opVideoMenu");
+ gtk_widget_ref (opVideoMenu);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opVideoMenu", opVideoMenu,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opVideoMenu);
+ gtk_table_attach (GTK_TABLE (table2), opVideoMenu, 1, 2, 0, 1,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opVideoMenu, 137, 25);
+ gtk_tooltips_set_tip (tooltips, opVideoMenu, "Select video output driver.", NULL);
+ opVideoMenu_menu = gtk_menu_new ();
+ #if defined( HAVE_X11 ) && defined( HAVE_MGA )
+  glade_menuitem = gtk_menu_item_new_with_label ("xmga");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opVideoMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_XV
+  glade_menuitem = gtk_menu_item_new_with_label ("xv");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opVideoMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_X11
+  glade_menuitem = gtk_menu_item_new_with_label ("x11");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opVideoMenu_menu), glade_menuitem);
+ #endif
+ #ifdef HAVE_PNG
+  glade_menuitem = gtk_menu_item_new_with_label ("png");
+  gtk_widget_show (glade_menuitem);
+  gtk_menu_append (GTK_MENU (opVideoMenu_menu), glade_menuitem);
+ #endif
+ glade_menuitem = gtk_menu_item_new_with_label ("null");
+ gtk_widget_show (glade_menuitem);
+ gtk_menu_append (GTK_MENU (opVideoMenu_menu), glade_menuitem);
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (opVideoMenu), opVideoMenu_menu);
+
+ opOsdCheckButton = gtk_check_button_new_with_label ("");
+ gtk_widget_set_name (opOsdCheckButton, "opOsdCheckButton");
+ gtk_widget_ref (opOsdCheckButton);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opOsdCheckButton", opOsdCheckButton,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opOsdCheckButton);
+ gtk_table_attach (GTK_TABLE (table2), opOsdCheckButton, 1, 2, 1, 2,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opOsdCheckButton, -2, 24);
+ gtk_tooltips_set_tip (tooltips, opOsdCheckButton, "On/off OSD.", NULL);
+
+ hbuttonbox3 = gtk_hbutton_box_new ();
+ gtk_widget_set_name (hbuttonbox3, "hbuttonbox3");
+ gtk_widget_ref (hbuttonbox3);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hbuttonbox3", hbuttonbox3,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbuttonbox3);
+ gtk_table_attach (GTK_TABLE (table2), hbuttonbox3, 1, 2, 4, 5,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (GTK_EXPAND | GTK_FILL), 0, 0);
+ gtk_widget_set_usize (hbuttonbox3, -2, 31);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox3), GTK_BUTTONBOX_END);
+
+ opVideoConfButton = gtk_button_new_with_label ("Configure");
+ gtk_widget_set_name (opVideoConfButton, "opVideoConfButton");
+ gtk_widget_ref (opVideoConfButton);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opVideoConfButton", opVideoConfButton,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opVideoConfButton);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox3), opVideoConfButton);
+ gtk_widget_set_usize (opVideoConfButton, -2, 31);
+ GTK_WIDGET_SET_FLAGS (opVideoConfButton, GTK_CAN_DEFAULT);
+ gtk_tooltips_set_tip (tooltips, opVideoConfButton, "Configure selected video driver.", NULL);
+
+ opOSDLabel = gtk_label_new ("OSD:");
+ gtk_widget_set_name (opOSDLabel, "opOSDLabel");
+ gtk_widget_ref (opOSDLabel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opOSDLabel", opOSDLabel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opOSDLabel);
+ gtk_table_attach (GTK_TABLE (table2), opOSDLabel, 0, 1, 1, 2,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opOSDLabel, 35, -2);
+ gtk_misc_set_alignment (GTK_MISC (opOSDLabel), 0, 0.5);
+
+ label5 = gtk_label_new ("OSD level:");
+ gtk_widget_set_name (label5, "label5");
+ gtk_widget_ref (label5);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "label5", label5,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (label5);
+ gtk_table_attach (GTK_TABLE (table2), label5, 0, 1, 2, 3,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (label5, 63, -2);
+ gtk_misc_set_alignment (GTK_MISC (label5), 0, 0.5);
+
+ opOSDLevelSpinButton_adj = gtk_adjustment_new (0, 0, 2, 1, 10, 10);
+ opOSDLevelSpinButton = gtk_spin_button_new (GTK_ADJUSTMENT (opOSDLevelSpinButton_adj), 1, 0);
+ gtk_widget_set_name (opOSDLevelSpinButton, "opOSDLevelSpinButton");
+ gtk_widget_ref (opOSDLevelSpinButton);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opOSDLevelSpinButton", opOSDLevelSpinButton,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opOSDLevelSpinButton);
+ gtk_table_attach (GTK_TABLE (table2), opOSDLevelSpinButton, 1, 2, 2, 3,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opOSDLevelSpinButton, 136, 25);
+ gtk_tooltips_set_tip (tooltips, opOSDLevelSpinButton, "Set OSD level.", NULL);
+ gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (opOSDLevelSpinButton), TRUE);
+
+ frame17 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame17, "frame17");
+ gtk_widget_ref (frame17);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame17", frame17,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame17);
+ gtk_table_attach (GTK_TABLE (table2), frame17, 1, 2, 3, 4,
+                   (GtkAttachOptions) (GTK_FILL),
+                   (GtkAttachOptions) (GTK_FILL), 0, 0);
+ gtk_widget_set_usize (frame17, -2, 40);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame17), GTK_SHADOW_NONE);
+
+ opAudio = gtk_label_new ("Audio & Video");
+ gtk_widget_set_name (opAudio, "opAudio");
+ gtk_widget_ref (opAudio);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAudio", opAudio,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAudio);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), opAudio);
+ gtk_widget_set_usize (opAudio, 80, -2);
+
+ frame11 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame11, "frame11");
+ gtk_widget_ref (frame11);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame11", frame11,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame11);
+ gtk_container_add (GTK_CONTAINER (notebook1), frame11);
+
+ frame12 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame12, "frame12");
+ gtk_widget_ref (frame12);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame12", frame12,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame12);
+ gtk_container_add (GTK_CONTAINER (frame11), frame12);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame12), GTK_SHADOW_NONE);
+
+ hbox2 = gtk_hbox_new (FALSE, 0);
+ gtk_widget_set_name (hbox2, "hbox2");
+ gtk_widget_ref (hbox2);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hbox2", hbox2,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbox2);
+ gtk_container_add (GTK_CONTAINER (frame12), hbox2);
+
+ frame13 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame13, "frame13");
+ gtk_widget_ref (frame13);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame13", frame13,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame13);
+ gtk_box_pack_start (GTK_BOX (hbox2), frame13, TRUE, TRUE, 0);
+ gtk_widget_set_usize (frame13, 212, -2);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame13), GTK_SHADOW_NONE);
+
+ table4 = gtk_table_new (2, 1, FALSE);
+ gtk_widget_set_name (table4, "table4");
+ gtk_widget_ref (table4);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "table4", table4,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (table4);
+ gtk_container_add (GTK_CONTAINER (frame13), table4);
+
+ opAutoFullscreenCheckBox = gtk_check_button_new_with_label ("Always switch fullscreen on play");
+ gtk_widget_set_name (opAutoFullscreenCheckBox, "opAutoFullscreenCheckBox");
+ gtk_widget_ref (opAutoFullscreenCheckBox);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opAutoFullscreenCheckBox", opAutoFullscreenCheckBox,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opAutoFullscreenCheckBox);
+ gtk_table_attach (GTK_TABLE (table4), opAutoFullscreenCheckBox, 0, 1, 0, 1,
+                   (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
+                   (GtkAttachOptions) (0), 0, 0);
+ gtk_widget_set_usize (opAutoFullscreenCheckBox, -2, 25);
+ gtk_tooltips_set_tip (tooltips, opAutoFullscreenCheckBox, "Switch player window to fullscreen on all play.", NULL);
+
+ vseparator1 = gtk_vseparator_new ();
+ gtk_widget_set_name (vseparator1, "vseparator1");
+ gtk_widget_ref (vseparator1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "vseparator1", vseparator1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (vseparator1);
+ gtk_box_pack_start (GTK_BOX (hbox2), vseparator1, FALSE, FALSE, 0);
+ gtk_widget_set_usize (vseparator1, 3, -2);
+
+ frame14 = gtk_frame_new (NULL);
+ gtk_widget_set_name (frame14, "frame14");
+ gtk_widget_ref (frame14);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "frame14", frame14,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (frame14);
+ gtk_box_pack_start (GTK_BOX (hbox2), frame14, TRUE, TRUE, 0);
+ gtk_widget_set_usize (frame14, 212, -2);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame14), GTK_SHADOW_NONE);
+
+ opMisc = gtk_label_new ("Misc");
+ gtk_widget_set_name (opMisc, "opMisc");
+ gtk_widget_ref (opMisc);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opMisc", opMisc,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opMisc);
+ gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), opMisc);
+ gtk_widget_set_usize (opMisc, 75, -2);
+
+ hseparator1 = gtk_hseparator_new ();
+ gtk_widget_set_name (hseparator1, "hseparator1");
+ gtk_widget_ref (hseparator1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hseparator1", hseparator1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hseparator1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hseparator1, FALSE, FALSE, 0);
+ gtk_widget_set_usize (hseparator1, -2, 5);
+
+ hbuttonbox1 = gtk_hbutton_box_new ();
+ gtk_widget_set_name (hbuttonbox1, "hbuttonbox1");
+ gtk_widget_ref (hbuttonbox1);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "hbuttonbox1", hbuttonbox1,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (hbuttonbox1);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbuttonbox1, TRUE, TRUE, 0);
+ gtk_widget_set_usize (hbuttonbox1, -2, 27);
+ gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox1), GTK_BUTTONBOX_END);
+ gtk_button_box_set_spacing (GTK_BUTTON_BOX (hbuttonbox1), 0);
+ gtk_button_box_set_child_size (GTK_BUTTON_BOX (hbuttonbox1), 90, 30);
+
+ opOk = gtk_button_new_with_label ("Ok");
+ gtk_widget_set_name (opOk, "opOk");
+ gtk_widget_ref (opOk);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opOk", opOk,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opOk);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox1), opOk);
+ GTK_WIDGET_SET_FLAGS (opOk, GTK_CAN_DEFAULT);
+
+ opCancel = gtk_button_new_with_label ("Cancel");
+ gtk_widget_set_name (opCancel, "opCancel");
+ gtk_widget_ref (opCancel);
+ gtk_object_set_data_full (GTK_OBJECT (Options), "opCancel", opCancel,
+                           (GtkDestroyNotify) gtk_widget_unref);
+ gtk_widget_show (opCancel);
+ gtk_container_add (GTK_CONTAINER (hbuttonbox1), opCancel);
+ GTK_WIDGET_SET_FLAGS (opCancel, GTK_CAN_DEFAULT);
+
+ gtk_signal_connect (GTK_OBJECT (Options), "key_press_event",
+                     GTK_SIGNAL_FUNC (on_window2_key_press_event),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (Options), "key_release_event",
+                     GTK_SIGNAL_FUNC (on_window2_key_release_event),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (Options), "destroy_event",
+                     GTK_SIGNAL_FUNC (on_window2_destroy_event),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAudioDriverMenu), "released",
+                     GTK_SIGNAL_FUNC (on_opAudioDriverMenu_released),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAudioDelaySkinButton), "changed",
+                     GTK_SIGNAL_FUNC (on_opAudioDelaySkinButton_changed),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAudioDelaySkinButton), "move_to_column",
+                     GTK_SIGNAL_FUNC (on_opAudioDelaySkinButton_move_to_column),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAudioDelaySkinButton), "move_to_row",
+                     GTK_SIGNAL_FUNC (on_opAudioDelaySkinButton_move_to_row),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAudioConfigureButton), "released",
+                     GTK_SIGNAL_FUNC (on_opAudioConfigureButton_released),
+                     NULL);
+
+ gtk_signal_connect (GTK_OBJECT (opVideoMenu), "released",
+                     GTK_SIGNAL_FUNC (on_opVideoMenu_released),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opVideoMenu), "clicked",
+                     GTK_SIGNAL_FUNC (on_opVideoMenu_clicked),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opVideoMenu), "button_release_event",
+                     GTK_SIGNAL_FUNC (on_opVideoMenu_button_release_event),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opVideoMenu), "pressed",
+                     GTK_SIGNAL_FUNC (on_opVideoMenu_pressed),
+                     NULL);
+
+ gtk_signal_connect (GTK_OBJECT (opOsdCheckButton), "toggled",
+                     GTK_SIGNAL_FUNC (on_opOsdCheckButton_toggled),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opVideoConfButton), "released",
+                     GTK_SIGNAL_FUNC (on_opVideoConfButton_released),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opOSDLevelSpinButton), "changed",
+                     GTK_SIGNAL_FUNC (on_opOSDLevelSpinButton_changed),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opOSDLevelSpinButton), "move_to_column",
+                     GTK_SIGNAL_FUNC (on_opOSDLevelSpinButton_move_to_column),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opOSDLevelSpinButton), "move_to_row",
+                     GTK_SIGNAL_FUNC (on_opOSDLevelSpinButton_move_to_row),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opAutoFullscreenCheckBox), "toggled",
+                     GTK_SIGNAL_FUNC (on_opAutoFullscreenCheckBox_toggled),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opOk), "released",
+                     GTK_SIGNAL_FUNC (on_opOk_released),
+                     NULL);
+ gtk_signal_connect (GTK_OBJECT (opCancel), "released",
+                     GTK_SIGNAL_FUNC (on_opCancel_released),
+                     NULL);
+
+ gtk_object_set_data (GTK_OBJECT (Options), "tooltips", tooltips);
+
+ return Options;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/pl.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,304 @@
+
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "../widgets.h"
+#include "pl.h"
+
+void HidePlayList( void )
+{
+ gtk_widget_hide( PlayList );
+ gtkVisiblePlayList=0;
+ gtkShMem->vs.window=evPlayList;
+ gtkSendMessage( evHideWindow );
+}
+
+void pl_PlayList_destroy( GtkObject * object,gpointer user_data )
+{ HidePlayList(); }
+
+void pl_Add_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void pl_Remove_released( GtkButton * button,gpointer user_data )
+{
+}
+
+void pl_Ok_released( GtkButton * button,gpointer user_data )
+{ HidePlayList(); }
+
+void pl_Cancel_released( GtkButton * button,gpointer user_data )
+{ HidePlayList(); }
+
+void pl_DirTree_select_child( GtkTree * tree,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void pl_DirTree_selection_changed( GtkTree * tree,gpointer user_data )
+{
+}
+
+void pl_DirTree_unselect_child( GtkTree * tree,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void pl_FNameList_select_child( GtkList * list,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void pl_FNameList_selection_changed( GtkList * list,gpointer user_data )
+{
+}
+
+void pl_FNameList_unselect_child( GtkList * list,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void pl_SelectedList_select_child( GtkList * list,GtkWidget * widget,gpointer user_data )
+{
+}
+
+void pl_SelectedList_selection_changed( GtkList * list,gpointer user_data )
+{
+}
+
+void pl_SelectedList_unselect_child( GtkList * list,GtkWidget * widget,gpointer user_data )
+{
+}
+
+GtkWidget* create_PlayList( void )
+{
+  GtkWidget *PlayList;
+  GtkWidget *frame9;
+  GtkWidget *frame10;
+  GtkWidget *frame11;
+  GtkWidget *frame12;
+  GtkWidget *hbox5;
+  GtkWidget *frame13;
+  GtkWidget *frame14;
+  GtkWidget *DirTree;
+  GtkWidget *vbox6;
+  GtkWidget *frame15;
+  GtkWidget *FNameList;
+  GtkWidget *frame16;
+  GtkWidget *SelectedList;
+  GtkWidget *hseparator6;
+  GtkWidget *hbuttonbox5;
+  GtkWidget *Add;
+  GtkWidget *Remove;
+  GtkWidget *Ok;
+  GtkWidget *Cancel;
+
+  PlayList = gtk_window_new( GTK_WINDOW_DIALOG );
+  gtk_object_set_data( GTK_OBJECT( PlayList ),MSGTR_PlayList,PlayList );
+  gtk_widget_set_usize( PlayList,512,256 );
+  GTK_WIDGET_SET_FLAGS( PlayList,GTK_CAN_FOCUS );
+  GTK_WIDGET_SET_FLAGS( PlayList,GTK_CAN_DEFAULT );
+  gtk_widget_set_events( PlayList,GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK );
+  gtk_window_set_title( GTK_WINDOW( PlayList ),MSGTR_PlayList );
+  gtk_window_set_position( GTK_WINDOW( PlayList ),GTK_WIN_POS_CENTER );
+  gtk_window_set_policy( GTK_WINDOW( PlayList ),FALSE,FALSE,TRUE );
+
+  frame9 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame9 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame9",frame9,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame9 );
+  gtk_container_add( GTK_CONTAINER( PlayList ),frame9 );
+  gtk_container_set_border_width( GTK_CONTAINER( frame9 ),1 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame9 ),GTK_SHADOW_IN );
+
+  frame10 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame10 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame10",frame10,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame10 );
+  gtk_container_add( GTK_CONTAINER( frame9 ),frame10 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame10 ),GTK_SHADOW_NONE );
+
+  frame11 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame11 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame11",frame11,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame11 );
+  gtk_container_add( GTK_CONTAINER( frame10 ),frame11 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame11 ),GTK_SHADOW_ETCHED_OUT );
+
+  frame12 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame12 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame12",frame12,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame12 );
+  gtk_container_add( GTK_CONTAINER( frame11 ),frame12 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame12 ),GTK_SHADOW_NONE );
+
+  hbox5 = gtk_hbox_new( FALSE,0 );
+  gtk_widget_ref( hbox5 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hbox5",hbox5,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hbox5 );
+  gtk_container_add( GTK_CONTAINER( frame12 ),hbox5 );
+
+  frame13 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame13 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame13",frame13,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame13 );
+  gtk_box_pack_start( GTK_BOX( hbox5 ),frame13,TRUE,TRUE,0 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame13 ),GTK_SHADOW_ETCHED_OUT );
+
+  frame14 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame14 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame14",frame14,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame14 );
+  gtk_container_add( GTK_CONTAINER( frame13 ),frame14 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame14 ),GTK_SHADOW_NONE );
+
+  DirTree = gtk_tree_new();
+  gtk_widget_ref( DirTree );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"DirTree",DirTree,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( DirTree );
+  gtk_container_add( GTK_CONTAINER( frame14 ),DirTree );
+  gtk_widget_set_usize( DirTree,217,-2 );
+
+  vbox6 = gtk_vbox_new( FALSE,0 );
+  gtk_widget_ref( vbox6 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"vbox6",vbox6,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( vbox6 );
+  gtk_box_pack_start( GTK_BOX( hbox5 ),vbox6,TRUE,TRUE,0 );
+
+  frame15 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame15 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame15",frame15,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame15 );
+  gtk_box_pack_start( GTK_BOX( vbox6 ),frame15,TRUE,TRUE,0 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame15 ),GTK_SHADOW_ETCHED_OUT );
+
+  FNameList = gtk_list_new();
+  gtk_widget_ref( FNameList );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"FNameList",FNameList,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( FNameList );
+  gtk_container_add( GTK_CONTAINER( frame15 ),FNameList );
+
+  frame16 = gtk_frame_new( NULL );
+  gtk_widget_ref( frame16 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame16",frame16,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( frame16 );
+  gtk_box_pack_start( GTK_BOX( vbox6 ),frame16,TRUE,TRUE,0 );
+  gtk_frame_set_shadow_type( GTK_FRAME( frame16 ),GTK_SHADOW_ETCHED_OUT );
+
+  SelectedList = gtk_list_new();
+  gtk_widget_ref( SelectedList );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"SelectedList",SelectedList,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( SelectedList );
+  gtk_container_add( GTK_CONTAINER( frame16 ),SelectedList );
+
+  hseparator6 = gtk_hseparator_new();
+  gtk_widget_ref( hseparator6 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hseparator6",hseparator6,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hseparator6 );
+  gtk_box_pack_start( GTK_BOX( vbox6 ),hseparator6,FALSE,TRUE,0 );
+  gtk_widget_set_usize( hseparator6,-2,11 );
+
+  hbuttonbox5 = gtk_hbutton_box_new();
+  gtk_widget_ref( hbuttonbox5 );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hbuttonbox5",hbuttonbox5,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( hbuttonbox5 );
+  gtk_box_pack_start( GTK_BOX( vbox6 ),hbuttonbox5,FALSE,FALSE,0 );
+  gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox5 ),GTK_BUTTONBOX_END );
+  gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox5 ),0 );
+  gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox5 ),65,27 );
+  gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox5 ),2,0 );
+
+  Add = gtk_button_new_with_label( MSGTR_Add );
+  gtk_widget_ref( Add );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),MSGTR_Add,Add,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( Add );
+  gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),Add );
+  gtk_widget_set_usize( Add,45,-2 );
+  GTK_WIDGET_SET_FLAGS( Add,GTK_CAN_DEFAULT );
+
+  Remove = gtk_button_new_with_label( MSGTR_Remove );
+  gtk_widget_ref( Remove );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),MSGTR_Remove,Remove,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( Remove );
+  gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),Remove );
+  gtk_widget_set_usize( Remove,45,-2 );
+  GTK_WIDGET_SET_FLAGS( Remove,GTK_CAN_DEFAULT );
+
+  Ok = gtk_button_new_with_label( MSGTR_Ok );
+  gtk_widget_ref( Ok );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),MSGTR_Ok,Ok,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( Ok );
+  gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),Ok );
+  gtk_widget_set_usize( Ok,45,-2 );
+  GTK_WIDGET_SET_FLAGS( Ok,GTK_CAN_DEFAULT );
+
+  Cancel = gtk_button_new_with_label( MSGTR_Cancel );
+  gtk_widget_ref( Cancel );
+  gtk_object_set_data_full( GTK_OBJECT( PlayList ),MSGTR_Cancel,Cancel,
+                           ( GtkDestroyNotify ) gtk_widget_unref );
+  gtk_widget_show( Cancel );
+  gtk_container_add( GTK_CONTAINER( hbuttonbox5 ),Cancel );
+  gtk_widget_set_usize( Cancel,45,-2 );
+  GTK_WIDGET_SET_FLAGS( Cancel,GTK_CAN_DEFAULT );
+
+  gtk_signal_connect( GTK_OBJECT( PlayList ),"destroy",
+                      GTK_SIGNAL_FUNC( pl_PlayList_destroy ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( DirTree ),"select_child",
+                      GTK_SIGNAL_FUNC( pl_DirTree_select_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( DirTree ),"selection_changed",
+                      GTK_SIGNAL_FUNC( pl_DirTree_selection_changed ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( DirTree ),"unselect_child",
+                      GTK_SIGNAL_FUNC( pl_DirTree_unselect_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( FNameList ),"select_child",
+                      GTK_SIGNAL_FUNC( pl_FNameList_select_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( FNameList ),"selection_changed",
+                      GTK_SIGNAL_FUNC( pl_FNameList_selection_changed ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( FNameList ),"unselect_child",
+                      GTK_SIGNAL_FUNC( pl_FNameList_unselect_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( SelectedList ),"select_child",
+                      GTK_SIGNAL_FUNC( pl_SelectedList_select_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( SelectedList ),"selection_changed",
+                      GTK_SIGNAL_FUNC( pl_SelectedList_selection_changed ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( SelectedList ),"unselect_child",
+                      GTK_SIGNAL_FUNC( pl_SelectedList_unselect_child ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( Add ),"released",
+                      GTK_SIGNAL_FUNC( pl_Add_released ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( Remove ),"released",
+                      GTK_SIGNAL_FUNC( pl_Remove_released ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( Ok ),"released",
+                      GTK_SIGNAL_FUNC( pl_Ok_released ),
+                      NULL );
+  gtk_signal_connect( GTK_OBJECT( Cancel ),"released",
+                      GTK_SIGNAL_FUNC( pl_Cancel_released ),
+                      NULL );
+
+  return PlayList;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/mplayer/gtk/sb.c	Wed Nov 14 16:04:25 2001 +0000
@@ -0,0 +1,262 @@
+
+#include <sys/stat.h>
+#include <glob.h>
+#include <unistd.h>
+
+#include "sb.h"
+#include "../../events.h"
+#include "../../../config.h"
+#include "../../../help_mp.h"
+
+#include "../widgets.h"
+#include "../app.h"
+
+GtkWidget * SkinList;
+char      * sbSelectedSkin=NULL;
+char      * sbMPlayerDirInHome=NULL;
+char      * sbMPlayerPrefixDir=NULL;
+
+void HideSkinBrowser( void )
+{
+ gtk_widget_hide( SkinBrowser );
+ gtkVisibleSkinBrowser=0;
+ gtkShMem->vs.window=evSkinBrowser;
+ gtkSendMessage( evHideWindow );
+ gtkSendMessage( evSkinBrowser );
+}
+
+char gtkOldSkin[128];
+
+int gtkFillSkinList( gchar * mdir )
+{
+ gchar         * str[2];
+ gchar         * tmp;
+ int             i;
+ glob_t          gg;
+ struct stat     fs;
+
+ strcpy( gtkOldSkin,gtkShMem->sb.name );
+ if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL )
+  {
+   gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory );
+   return 0;
+  }
+ str[1]="";
+ strcpy( str[0],"default" );
+ if ( gtkFindCList( SkinList,str[0] ) == -1 ) gtk_clist_append( GTK_CLIST( SkinList ),str );
+ free( str[0] );
+
+ glob( mdir,GLOB_NOSORT,NULL,&gg );
+ for( i=0;i<gg.gl_pathc;i++ )
+  {
+   if ( !strcmp( gg.gl_pathv[i],"." ) || !strcmp( gg.gl_pathv[i],".." ) ) continue;
+   stat( gg.gl_pathv[i],&fs );
+   if ( S_ISDIR( fs.st_mode ) )
+    {
+     tmp=strrchr( gg.gl_pathv[i],'/' ); tmp++;
+     if ( !strcmp( tmp,"default" ) ) continue;
+     if ( ( str[0]=(char *)malloc( strlen( tmp ) + 1 ) ) == NULL ) { gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory ); return 0; }
+     strcpy( str[0],tmp );
+     if ( gtkFindCList( SkinList,str[0] ) == -1 ) gtk_clist_append( GTK_CLIST( SkinList ),str );
+     free( str[0] );
+    }
+  }
+ globfree( &gg );
+ return 1;
+}
+
+void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data )
+{ HideSkinBrowser(); }
+
+void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data )
+{
+ strcpy( gtkShMem->sb.name,gtkOldSkin );
+ HideSkinBrowser();
+}
+
+void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data )
+{
+ gtk_clist_get_text( clist,row,0,&sbSelectedSkin );
+ strcpy( gtkShMem->sb.name,sbSelectedSkin );
+ gtkSendMessage( evSkinBrowser );
+ if( !bevent ) return;
+ if( bevent->type == GDK_2BUTTON_PRESS ) HideSkinBrowser();
+}
+
+GtkWidget * create_SkinBrowser( void )
+{
+ GtkWidget     * SkinBrowser;
+ GtkWidget     * frame5;
+ GtkWidget     * frame6;
+ GtkWidget     * frame7;
+ GtkWidget     * frame8;
+ GtkWidget     * vbox5;
+ GtkWidget     * label;
+ GtkWidget     * hseparator4;
+ GtkWidget     * scrolledwindow1;
+ GtkWidget     * label2;
+ GtkWidget     * hseparator5;
+ GtkWidget     * hbuttonbox4;
+ GtkWidget     * Cancel;
+ GtkWidget     * Ok;
+ GtkAccelGroup * accel_group;
+
+ accel_group = gtk_accel_group_new ();
+
+ SkinBrowser=gtk_window_new( GTK_WINDOW_DIALOG );
+ gtk_widget_set_name( SkinBrowser,MSGTR_SkinBrowser );
+ gtk_object_set_data( GTK_OBJECT( SkinBrowser ),MSGTR_SkinBrowser,SkinBrowser );
+ gtk_widget_set_usize( SkinBrowser,256,320 );
+ gtk_container_set_border_width( GTK_CONTAINER( SkinBrowser ),1 );
+// GTK_WIDGET_SET_FLAGS( SkinBrowser,GTK_CAN_FOCUS );
+ GTK_WIDGET_SET_FLAGS( SkinBrowser,GTK_CAN_DEFAULT );
+ gtk_widget_set_events( SkinBrowser,GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_FOCUS_CHANGE_MASK | GDK_STRUCTURE_MASK | GDK_PROPERTY_CHANGE_MASK | GDK_VISIBILITY_NOTIFY_MASK );
+ gtk_window_set_title( GTK_WINDOW( SkinBrowser ),MSGTR_SkinBrowser );
+ gtk_window_set_position( GTK_WINDOW( SkinBrowser ),GTK_WIN_POS_CENTER );
+ gtk_window_set_policy( GTK_WINDOW( SkinBrowser ),FALSE,FALSE,TRUE );
+
+ frame5=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame5,"frame5" );
+ gtk_widget_ref( frame5 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"frame5",frame5,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame5 );
+ gtk_container_add( GTK_CONTAINER( SkinBrowser ),frame5 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame5 ),GTK_SHADOW_IN );
+
+ frame6=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame6,"frame6" );
+ gtk_widget_ref( frame6 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"frame6",frame6,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame6 );
+ gtk_container_add( GTK_CONTAINER( frame5 ),frame6 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame6 ),GTK_SHADOW_NONE );
+
+ frame7=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame7,"frame7" );
+ gtk_widget_ref( frame7 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"frame7",frame7,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame7 );
+ gtk_container_add( GTK_CONTAINER( frame6 ),frame7 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame7 ),GTK_SHADOW_ETCHED_OUT );
+
+ frame8=gtk_frame_new( NULL );
+ gtk_widget_set_name( frame8,"frame8" );
+ gtk_widget_ref( frame8 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"frame8",frame8,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( frame8 );
+ gtk_container_add( GTK_CONTAINER( frame7 ),frame8 );
+ gtk_frame_set_shadow_type( GTK_FRAME( frame8 ),GTK_SHADOW_NONE );
+
+ vbox5=gtk_vbox_new( FALSE,0 );
+ gtk_widget_set_name( vbox5,"vbox5" );
+ gtk_widget_ref( vbox5 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"vbox5",vbox5,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( vbox5 );
+ gtk_container_add( GTK_CONTAINER( frame8 ),vbox5 );
+
+ label=gtk_label_new( "Skins:" );
+ gtk_widget_set_name( label,"label" );
+ gtk_widget_ref( label );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"label",label,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( label );
+ gtk_box_pack_start( GTK_BOX( vbox5 ),label,FALSE,FALSE,0 );
+ gtk_label_set_justify( GTK_LABEL( label ),GTK_JUSTIFY_RIGHT );
+ gtk_misc_set_alignment( GTK_MISC( label ),7.45058e-09,7.45058e-09 );
+
+ hseparator4=gtk_hseparator_new();
+ gtk_widget_set_name( hseparator4,"hseparator4" );
+ gtk_widget_ref( hseparator4 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"hseparator4",hseparator4,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( hseparator4 );
+ gtk_box_pack_start( GTK_BOX( vbox5 ),hseparator4,FALSE,TRUE,0 );
+ gtk_widget_set_usize( hseparator4,-2,5 );
+
+ scrolledwindow1=gtk_scrolled_window_new( NULL,NULL );
+ gtk_widget_set_name( scrolledwindow1,"scrolledwindow1" );
+ gtk_widget_ref( scrolledwindow1 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"scrolledwindow1",scrolledwindow1,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( scrolledwindow1 );
+ gtk_box_pack_start( GTK_BOX( vbox5 ),scrolledwindow1,TRUE,TRUE,0 );
+ gtk_container_set_border_width( GTK_CONTAINER( scrolledwindow1 ),2 );
+ gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_NEVER,GTK_POLICY_AUTOMATIC );
+
+ SkinList=gtk_clist_new( 1 );
+ gtk_widget_set_name( SkinList,"SkinList" );
+ gtk_widget_ref( SkinList );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"SkinList",SkinList,
+                          ( GtkDestroyNotify ) gtk_widget_unref );
+ gtk_widget_show( SkinList );
+ gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),SkinList );
+ gtk_clist_set_column_width( GTK_CLIST( SkinList ),0,80 );
+ gtk_clist_set_selection_mode( GTK_CLIST( SkinList ),GTK_SELECTION_SINGLE );
+ gtk_clist_column_titles_hide( GTK_CLIST( SkinList ) );
+ gtk_clist_set_shadow_type( GTK_CLIST( SkinList ),GTK_SHADOW_ETCHED_OUT );
+
+ label2=gtk_label_new( "label2" );
+ gtk_widget_set_name( label2,"label2" );
+ gtk_widget_ref( label2 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"label2",label2,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( label2 );
+ gtk_clist_set_column_widget( GTK_CLIST( SkinList ),0,label2 );
+
+ hseparator5=gtk_hseparator_new();
+ gtk_widget_set_name( hseparator5,"hseparator5" );
+ gtk_widget_ref( hseparator5 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"hseparator5",hseparator5,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( hseparator5 );
+ gtk_box_pack_start( GTK_BOX( vbox5 ),hseparator5,FALSE,TRUE,0 );
+ gtk_widget_set_usize( hseparator5,-2,9 );
+
+ hbuttonbox4=gtk_hbutton_box_new();
+ gtk_widget_set_name( hbuttonbox4,"hbuttonbox4" );
+ gtk_widget_ref( hbuttonbox4 );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),"hbuttonbox4",hbuttonbox4,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( hbuttonbox4 );
+ gtk_box_pack_start( GTK_BOX( vbox5 ),hbuttonbox4,FALSE,TRUE,0 );
+ gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox4 ),GTK_BUTTONBOX_END );
+ gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox4 ),0 );
+ gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox4 ),80,0 );
+
+ Ok=gtk_button_new_with_label( MSGTR_Ok );
+ gtk_widget_set_name( Ok,MSGTR_Ok );
+ gtk_widget_ref( Ok );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),MSGTR_Ok,Ok,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( Ok );
+ gtk_container_add( GTK_CONTAINER( hbuttonbox4 ),Ok );
+ gtk_widget_set_usize( Ok,-2,33 );
+ GTK_WIDGET_SET_FLAGS( Ok,GTK_CAN_DEFAULT );
+ gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE );
+
+ Cancel=gtk_button_new_with_label( MSGTR_Cancel );
+ gtk_widget_set_name( Cancel,MSGTR_Cancel );
+ gtk_widget_ref( Cancel );
+ gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),MSGTR_Cancel,Cancel,(GtkDestroyNotify)gtk_widget_unref );
+ gtk_widget_show( Cancel );
+ gtk_container_add( GTK_CONTAINER( hbuttonbox4 ),Cancel );
+ gtk_widget_set_usize( Cancel,-2,33 );
+ GTK_WIDGET_SET_FLAGS( Cancel,GTK_CAN_DEFAULT );
+ gtk_widget_add_accelerator( Cancel,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE );
+
+ gtk_signal_connect( GTK_OBJECT( SkinBrowser ),"destroy",GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ),NULL );
+ gtk_signal_connect( GTK_OBJECT( SkinList ),"select_row",GTK_SIGNAL_FUNC( on_SkinList_select_row ),NULL );
+ gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ),NULL );
+ gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_Cancel ),NULL );
+
+ if ( ( sbMPlayerDirInHome=(char *)calloc( 1,strlen( skinDirInHome ) + 4 ) ) != NULL )
+  { strcpy( sbMPlayerDirInHome,skinDirInHome ); strcat( sbMPlayerDirInHome,"/*" ); }
+ if ( ( sbMPlayerPrefixDir=(char *)calloc( 1,strlen( skinMPlayerDir ) + 4 ) ) != NULL )
+  { strcpy( sbMPlayerPrefixDir,skinMPlayerDir ); strcat( sbMPlayerPrefixDir,"/*" ); }
+
+ gtk_window_add_accel_group( GTK_WINDOW( SkinBrowser ),accel_group );
+ gtk_widget_grab_focus( SkinList );
+
+ return SkinBrowser;
+}
--- a/Gui/mplayer/psignal.c	Wed Nov 14 13:07:08 2001 +0000
+++ b/Gui/mplayer/psignal.c	Wed Nov 14 16:04:25 2001 +0000
@@ -126,6 +126,12 @@
    case evExit:
 	gtk_main_quit();
         break;
+   case evShowPopUpMenu:
+//	if ( gtkVisiblePopUpMenu ) gtk_widget_hide( PopUpMenu );
+//	gtk_widget_show( PopUpMenu );
+        gtk_menu_popup( GTK_MENU( PopUpMenu ),NULL,NULL,NULL,NULL,0,0 );
+	gtkVisiblePopUpMenu=1;
+	break;
   }
  gtkShMem->message=0;
 }
--- a/Gui/mplayer/widgets.c	Wed Nov 14 13:07:08 2001 +0000
+++ b/Gui/mplayer/widgets.c	Wed Nov 14 16:04:25 2001 +0000
@@ -22,18 +22,12 @@
 #include "../../help_mp.h"
 #include "../error.h"
 
-#include "pixmaps/up.xpm"
-#include "pixmaps/dir.xpm"
-#include "pixmaps/file.xpm"
-#include "pixmaps/about.xpm"
-#include "pixmaps/error.xpm"
-#include "pixmaps/warning.xpm"
-
 GtkWidget     * SkinBrowser;
 GtkWidget     * PlayList;
 GtkWidget     * FileSelect;
 GtkWidget     * AboutBox;
 GtkWidget     * Options;
+GtkWidget     * PopUpMenu;
 
 GtkWidget     * MessageBox;
 
@@ -46,6 +40,7 @@
 int             gtkVisibleMessageBox = 0;
 int             gtkVisibleAboutBox = 0;
 int             gtkVisibleOptions = 0;
+int             gtkVisiblePopUpMenu = 0;
 
 gtkCommStruct * gtkShMem;
 
@@ -55,6 +50,7 @@
 #include "gtk/mb.h"
 #include "gtk/about.h"
 #include "gtk/opts.h"
+#include "gtk/menu.h"
 
 void widgetsCreate( void )
 {
@@ -64,6 +60,7 @@
  FileSelect=create_FileSelect();
  MessageBox=create_MessageBox(0);
  Options=create_Options();
+ PopUpMenu=create_PopUpMenu();
 }
 
 // --- forked function