summaryrefslogtreecommitdiffstats
path: root/Gui/mplayer/gtk/sb.c
diff options
context:
space:
mode:
Diffstat (limited to 'Gui/mplayer/gtk/sb.c')
-rw-r--r--Gui/mplayer/gtk/sb.c58
1 files changed, 35 insertions, 23 deletions
diff --git a/Gui/mplayer/gtk/sb.c b/Gui/mplayer/gtk/sb.c
index 6488c83e3d..0c3a4a960b 100644
--- a/Gui/mplayer/gtk/sb.c
+++ b/Gui/mplayer/gtk/sb.c
@@ -22,6 +22,21 @@ char * sbMPlayerPrefixDir=NULL;
char * gtkOldSkin;
static char * prev;
+int gtkVSkinBrowser = 0;
+GtkWidget * SkinBrowser;
+
+void ShowSkinBrowser( void )
+{
+ if ( gtkVSkinBrowser ) gtkActive( SkinBrowser );
+ else SkinBrowser=create_SkinBrowser();
+}
+
+void HideSkinBrowser( void )
+{
+ gtkVSkinBrowser=0;
+ gtk_widget_destroy( SkinBrowser );
+}
+
int gtkFillSkinList( gchar * mdir )
{
gchar * str[2];
@@ -62,12 +77,15 @@ int gtkFillSkinList( gchar * mdir )
}
void on_SkinBrowser_destroy( GtkObject * object,gpointer user_data )
-{ gtk_widget_destroy( SkinBrowser ); }
+{ HideSkinBrowser(); }
+
+void on_SkinBrowser_show( GtkObject * object,gpointer user_data )
+{ gtkVSkinBrowser=(int)user_data; }
void on_SkinBrowser_Cancel( GtkObject * object,gpointer user_data )
{
if ( strcmp( sbSelectedSkin,gtkOldSkin ) ) ChangeSkin( gtkOldSkin );
- gtk_widget_destroy( SkinBrowser );
+ HideSkinBrowser();
}
void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data )
@@ -75,7 +93,7 @@ void on_SkinBrowser_Ok( GtkObject * object,gpointer user_data )
ChangeSkin( sbSelectedSkin );
if ( skinName ) free( skinName );
skinName=strdup( sbSelectedSkin );
- gtk_widget_destroy( SkinBrowser );
+ HideSkinBrowser();
}
void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * bevent,gpointer user_data )
@@ -91,7 +109,7 @@ void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * be
{
if ( skinName ) free( skinName );
skinName=strdup( sbSelectedSkin );
- gtk_widget_destroy( SkinBrowser );
+ HideSkinBrowser();
}
}
@@ -130,8 +148,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -139,8 +156,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -148,8 +164,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -157,8 +172,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -166,16 +180,14 @@ GtkWidget * create_SkinBrowser( void )
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_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( MSGTR_SKIN_LABEL );
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_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 );
@@ -184,8 +196,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -193,8 +204,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -203,8 +213,7 @@ GtkWidget * create_SkinBrowser( void )
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_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 );
@@ -256,7 +265,10 @@ GtkWidget * create_SkinBrowser( void )
gtk_widget_set_usize( Cancel,-2,22 );
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( SkinBrowser ),"destroy",GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ),0 );
+ gtk_signal_connect( GTK_OBJECT( SkinBrowser ),"show",GTK_SIGNAL_FUNC( on_SkinBrowser_show ),1 );
+ gtk_signal_connect( GTK_OBJECT( SkinBrowser ),"hide",GTK_SIGNAL_FUNC( on_SkinBrowser_show ),0 );
+
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_Ok ),NULL );
gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( on_SkinBrowser_Cancel ),NULL );