From ba57320b827840b97f758a576244cc730ad468f5 Mon Sep 17 00:00:00 2001 From: pontscho Date: Mon, 17 Sep 2001 21:16:00 +0000 Subject: [PATCH] add new features. and fix skin error loop. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1908 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Gui/mplayer/gtk/mb.h | 258 ++++++++++++++++++++++-------------------- Gui/mplayer/gtk/sb.h | 70 ++++-------- Gui/mplayer/menu.h | 2 +- Gui/mplayer/play.c | 121 ++++++++++---------- Gui/mplayer/psignal.c | 8 +- Gui/mplayer/widgets.c | 17 +-- Gui/mplayer/widgets.h | 9 +- Gui/skin/font.c | 4 +- 8 files changed, 235 insertions(+), 254 deletions(-) diff --git a/Gui/mplayer/gtk/mb.h b/Gui/mplayer/gtk/mb.h index 1f60aaaea4..caaa5b7a64 100644 --- a/Gui/mplayer/gtk/mb.h +++ b/Gui/mplayer/gtk/mb.h @@ -4,155 +4,163 @@ GtkWidget * gtkMessageBoxText; -void on_MessageBox_destroy( GtkObject * object,gpointer user_data ) +void on_MessageBox_destroy( GtkObject * object,gpointer user_data ) { - gtk_widget_hide( MessageBox ); + gtk_widget_hide( MessageBox ); gtkVisibleMessageBox=0; } -void on_Ok_released( GtkButton * button,gpointer user_data ) +void on_Ok_released( GtkButton * button,gpointer user_data ) { - gtk_widget_hide( MessageBox ); + gtk_widget_hide( MessageBox ); gtkVisibleMessageBox=0; - gtkSendMessage( evMessageBox ); + gtkSendMessage( evMessageBox ); } -GtkWidget * create_MessageBox( void ) +GtkWidget * create_MessageBox( int type ) { - GtkWidget *MessageBox; - GtkWidget *frame1; - GtkWidget *frame2; - GtkWidget *frame3; - GtkWidget *frame4; - GtkWidget *vbox1; - GtkWidget *vbox2; - GtkWidget *hseparator1; - GtkWidget *hbuttonbox1; - GtkWidget *Ok; - GtkAccelGroup *accel_group; + 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(); + 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); - MessageBox=gtk_window_new( GTK_WINDOW_DIALOG ); - gtk_widget_set_name( MessageBox,MSGTR_MessageBox ); - gtk_object_set_data( GTK_OBJECT( MessageBox ),MSGTR_MessageBox,MessageBox ); - gtk_widget_set_usize( MessageBox,420,128 ); - GTK_WIDGET_SET_FLAGS( MessageBox,GTK_CAN_FOCUS ); - GTK_WIDGET_SET_FLAGS( MessageBox,GTK_CAN_DEFAULT ); - gtk_widget_set_events( MessageBox,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 ); - gtk_window_set_title( GTK_WINDOW( MessageBox ),MSGTR_MessageBox ); - 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 ),FALSE,FALSE,FALSE ); - gtk_window_set_wmclass( GTK_WINDOW( MessageBox ),MSGTR_MessageBox,MSGTR_MessageBox ); + 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); - 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_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); - 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); - 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 ); + 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); - 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); - 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); - vbox2=gtk_vbox_new( FALSE,0 ); - gtk_widget_set_name( vbox2,"vbox2" ); - gtk_widget_ref( vbox2 ); - gtk_object_set_data_full( GTK_OBJECT( MessageBox ),"vbox2",vbox2, - ( GtkDestroyNotify ) gtk_widget_unref ); - gtk_widget_show( vbox2 ); - gtk_box_pack_start( GTK_BOX( vbox1 ),vbox2,TRUE,FALSE,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 ** )error_xpm ); + pixmap1=gtk_pixmap_new( pixmapwid,mask ); + + gtk_widget_set_name (pixmap1, "pixmap1"); + gtk_widget_ref (pixmap1); + gtk_object_set_data_full (GTK_OBJECT (MessageBox), "pixmap1", pixmap1, + (GtkDestroyNotify) gtk_widget_unref); + gtk_widget_show (pixmap1); + gtk_box_pack_start (GTK_BOX (hbox1), pixmap1, FALSE, FALSE, 0); + gtk_widget_set_usize (pixmap1, 55, -2); - gtkMessageBoxText=gtk_label_new( "Ez." ); - 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( vbox2 ),gtkMessageBoxText,FALSE,FALSE,0 ); -// gtk_widget_set_usize( gtkMessageBoxText,-2,77 ); - gtk_widget_set_usize( gtkMessageBoxText,384,77 ); - gtk_label_set_justify( GTK_LABEL( gtkMessageBoxText ),GTK_JUSTIFY_FILL ); - gtk_label_set_line_wrap( GTK_LABEL( gtkMessageBoxText ),TRUE ); + 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( vbox2 ),hseparator1,TRUE,TRUE,0 ); + 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 ); - GTK_WIDGET_SET_FLAGS( hbuttonbox1,GTK_CAN_FOCUS ); - GTK_WIDGET_SET_FLAGS( hbuttonbox1,GTK_CAN_DEFAULT ); - gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),0 ); - gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),60,0 ); - gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox1 ),10,0 ); + 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_usize( Ok,100,-2 ); - GTK_WIDGET_SET_FLAGS( Ok,GTK_CAN_DEFAULT ); - gtk_widget_add_accelerator( Ok,"released",accel_group, - GDK_Return,0, - GTK_ACCEL_VISIBLE ); + 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", - GTK_SIGNAL_FUNC( on_MessageBox_destroy ), - NULL ); - gtk_signal_connect( GTK_OBJECT( Ok ),"released", - GTK_SIGNAL_FUNC( on_Ok_released ), - NULL ); + 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 ); + gtk_window_add_accel_group (GTK_WINDOW (MessageBox), accel_group); - return MessageBox; + return MessageBox; } #endif diff --git a/Gui/mplayer/gtk/sb.h b/Gui/mplayer/gtk/sb.h index 9e03a86a37..cf9c6af2f4 100644 --- a/Gui/mplayer/gtk/sb.h +++ b/Gui/mplayer/gtk/sb.h @@ -11,7 +11,6 @@ #include "../app.h" GtkWidget * SkinList; -GtkWidget * sbOk; char * sbSelectedSkin=NULL; char * sbMPlayerDirInHome=NULL; char * sbMPlayerPrefixDir=NULL; @@ -38,7 +37,7 @@ int gtkFillSkinList( gchar * mdir ) strcpy( gtkOldSkin,gtkShMem->sb.name ); if ( ( str[0]=(char *)calloc( 1,7 ) ) == NULL ) { - gtkMessageBox( MSGTR_SKINBROWSER_NotEnoughMemory ); + gtkMessageBox( GTK_MB_FATAL,MSGTR_SKINBROWSER_NotEnoughMemory ); return 0; } str[1]=""; @@ -55,7 +54,7 @@ int gtkFillSkinList( gchar * mdir ) { tmp=strrchr( gg.gl_pathv[i],'/' ); tmp++; if ( !strcmp( tmp,"default" ) ) continue; - if ( ( str[0]=(char *)malloc( strlen( tmp ) + 1 ) ) == NULL ) { gtkMessageBox( MSGTR_SKINBROWSER_NotEnoughMemory ); return 0; } + 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] ); @@ -83,16 +82,6 @@ void on_SkinList_select_row( GtkCList * clist,gint row,gint column,GdkEvent * be if( bevent->type == GDK_2BUTTON_PRESS ) HideSkinBrowser(); } -gboolean on_SkinBrowser_key_release_event( GtkWidget * widget,GdkEventKey * event,gpointer user_data ) -{ - switch ( event->keyval ) - { - case GDK_Escape: on_SkinBrowser_Cancel( NULL,0 ); break; - case GDK_Return: HideSkinBrowser(); break; - } - return FALSE; -} - GtkWidget * create_SkinBrowser( void ) { GtkWidget * SkinBrowser; @@ -108,6 +97,10 @@ GtkWidget * create_SkinBrowser( void ) 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 ); @@ -209,16 +202,14 @@ GtkWidget * create_SkinBrowser( void ) 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_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_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 ); @@ -226,55 +217,44 @@ GtkWidget * create_SkinBrowser( void ) 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_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 ); - sbOk=gtk_button_new_with_label( MSGTR_Ok ); - gtk_widget_set_name( sbOk,MSGTR_Ok ); - gtk_widget_ref( sbOk ); - gtk_object_set_data_full( GTK_OBJECT( SkinBrowser ),MSGTR_Ok,sbOk, - ( GtkDestroyNotify ) gtk_widget_unref ); - gtk_widget_show( sbOk ); - gtk_container_add( GTK_CONTAINER( hbuttonbox4 ),sbOk ); - gtk_widget_set_usize( sbOk,-2,33 ); - GTK_WIDGET_SET_FLAGS( sbOk,GTK_CAN_DEFAULT ); + 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_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( SkinBrowser ),"key_release_event", - GTK_SIGNAL_FUNC( on_SkinBrowser_key_release_event ), - NULL ); - gtk_signal_connect( GTK_OBJECT( SkinList ),"select_row", - GTK_SIGNAL_FUNC( on_SkinList_select_row ), - NULL ); - gtk_signal_connect( GTK_OBJECT( sbOk ),"released", - GTK_SIGNAL_FUNC( on_SkinBrowser_destroy ), - NULL ); - gtk_signal_connect( GTK_OBJECT( Cancel ),"released", - GTK_SIGNAL_FUNC( on_SkinBrowser_Cancel ), - NULL ); + 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; diff --git a/Gui/mplayer/menu.h b/Gui/mplayer/menu.h index 4d4d1238a8..4cb6952371 100644 --- a/Gui/mplayer/menu.h +++ b/Gui/mplayer/menu.h @@ -123,7 +123,7 @@ void mplMenuInit( void ) #ifdef DEBUG dbprintf( 1,MSGTR_NEMFMR ); #endif - gtkMessageBox( MSGTR_NEMFMR ); + gtkMessageBox( GTK_MB_FATAL,MSGTR_NEMFMR ); return; } diff --git a/Gui/mplayer/play.c b/Gui/mplayer/play.c index 0a45d3fe8a..fbf9b610c9 100644 --- a/Gui/mplayer/play.c +++ b/Gui/mplayer/play.c @@ -127,78 +127,73 @@ listItems tmpList; void ChangeSkin( void ) { - if ( strcmp( skinName,gtkShMem->sb.name ) ) - { - int ret; + int ret; + if ( !strcmp( skinName,gtkShMem->sb.name ) ) return; #ifdef DEBUG - dbprintf( 1,"[psignal] skin: %s\n",gtkShMem->sb.name ); + dbprintf( 1,"[psignal] skin: %s\n",gtkShMem->sb.name ); #endif - mainVisible=0; + mainVisible=0; - appInitStruct( &tmpList ); - skinAppMPlayer=&tmpList; - ret=skinRead( gtkShMem->sb.name ); + appInitStruct( &tmpList ); + skinAppMPlayer=&tmpList; + fntFreeFont(); + ret=skinRead( gtkShMem->sb.name ); - fntFreeFont(); - - appInitStruct( &tmpList ); - skinAppMPlayer=&appMPlayer; - appInitStruct( &appMPlayer ); - if ( !ret ) strcpy( skinName,gtkShMem->sb.name ); - skinRead( skinName ); - - if ( ret ) - { - mainVisible=1; - return; - } - - if ( appMPlayer.menuBase.Bitmap.Image ) - { - if ( mplMenuDrawBuffer ) free( mplMenuDrawBuffer ); - if ( ( mplMenuDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL ) - { message( False,MSGTR_NEMDB ); return; } - wsResizeWindow( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height ); - wsResizeImage( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height ); - } - - mplSkinChanged=1; - if ( appMPlayer.sub.Bitmap.Image ) wsResizeImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height ); - if ( !mplShMem->Playing ) - { - mplSkinChanged=0; - if ( !appMPlayer.subWindow.isFullScreen ) - { - wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height ); - wsMoveWindow( &appMPlayer.subWindow,appMPlayer.sub.x,appMPlayer.sub.y ); - } - wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB ); - wsClearWindow( appMPlayer.subWindow ); - mplSubRender=1; wsPostRedisplay( &appMPlayer.subWindow ); - } - - if ( mplDrawBuffer ) free( mplDrawBuffer ); - if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL ) - { message( False,MSGTR_NEMDB ); return; } - wsVisibleWindow( &appMPlayer.mainWindow,wsHideWindow ); - wsResizeWindow( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height ); - wsMoveWindow( &appMPlayer.mainWindow,appMPlayer.main.x,appMPlayer.main.y ); - wsResizeImage( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height ); - wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image ); - mainVisible=1; mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow ); - wsWindowDecoration( &appMPlayer.mainWindow,appMPlayer.mainDecoration ); - wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow ); - - btnModify( evSetVolume,mplShMem->Volume ); - btnModify( evSetBalance,mplShMem->Balance ); - btnModify( evSetMoviePosition,mplShMem->Position ); + appInitStruct( &tmpList ); + skinAppMPlayer=&appMPlayer; + appInitStruct( &appMPlayer ); + if ( !ret ) strcpy( skinName,gtkShMem->sb.name ); + skinRead( skinName ); + if ( ret ) + { + mainVisible=1; + return; } - mplShMem->SkinChange=0; + + if ( appMPlayer.menuBase.Bitmap.Image ) + { + if ( mplMenuDrawBuffer ) free( mplMenuDrawBuffer ); + if ( ( mplMenuDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.menuBase.Bitmap.ImageSize ) ) == NULL ) + { message( False,MSGTR_NEMDB ); return; } + wsResizeWindow( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height ); + wsResizeImage( &appMPlayer.menuWindow,appMPlayer.menuBase.width,appMPlayer.menuBase.height ); + } + + mplSkinChanged=1; + if ( appMPlayer.sub.Bitmap.Image ) wsResizeImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height ); + if ( !mplShMem->Playing ) + { + mplSkinChanged=0; + if ( !appMPlayer.subWindow.isFullScreen ) + { + wsResizeWindow( &appMPlayer.subWindow,appMPlayer.sub.width,appMPlayer.sub.height ); + wsMoveWindow( &appMPlayer.subWindow,appMPlayer.sub.x,appMPlayer.sub.y ); + } + wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.subR,appMPlayer.subG,appMPlayer.subB ); + wsClearWindow( appMPlayer.subWindow ); + mplSubRender=1; wsPostRedisplay( &appMPlayer.subWindow ); + } + + if ( mplDrawBuffer ) free( mplDrawBuffer ); + if ( ( mplDrawBuffer = (unsigned char *)calloc( 1,appMPlayer.main.Bitmap.ImageSize ) ) == NULL ) + { message( False,MSGTR_NEMDB ); return; } + wsVisibleWindow( &appMPlayer.mainWindow,wsHideWindow ); + wsResizeWindow( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height ); + wsMoveWindow( &appMPlayer.mainWindow,appMPlayer.main.x,appMPlayer.main.y ); + wsResizeImage( &appMPlayer.mainWindow,appMPlayer.main.width,appMPlayer.main.height ); + wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image ); + mainVisible=1; mplMainRender=1; wsPostRedisplay( &appMPlayer.mainWindow ); + wsWindowDecoration( &appMPlayer.mainWindow,appMPlayer.mainDecoration ); + wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow ); + + btnModify( evSetVolume,mplShMem->Volume ); + btnModify( evSetBalance,mplShMem->Balance ); + btnModify( evSetMoviePosition,mplShMem->Position ); } void EventHandling( void ) { wsHandleEvents();mplTimerHandler(0); // handle GUI timer events - if ( mplShMem->SkinChange ) ChangeSkin(); + if ( mplShMem->SkinChange ) { ChangeSkin(); mplShMem->SkinChange=0; } } diff --git a/Gui/mplayer/psignal.c b/Gui/mplayer/psignal.c index af05bc79be..9524b544ac 100644 --- a/Gui/mplayer/psignal.c +++ b/Gui/mplayer/psignal.c @@ -16,7 +16,6 @@ #include "../../config.h" #include "../../libvo/x11_common.h" -//#include "../../libvo/sub.h" #include "./mplayer.h" @@ -41,7 +40,7 @@ void mplErrorHandler( int critical,const char * format, ... ) n=vsnprintf( p,512,format,ap ); va_end( ap ); mplCriticalError=critical; - gtkMessageBox( p ); + gtkMessageBox( GTK_MB_ERROR,p ); } void gtkSigHandler( int s ) @@ -63,8 +62,7 @@ void gtkSigHandler( int s ) case evSkinBrowser: if ( gtkVisibleSkinBrowser ) gtk_widget_hide( SkinBrowser ); gtkClearList( SkinList ); - if ( !gtkFillSkinList( sbMPlayerPrefixDir ) ) break; - if ( gtkFillSkinList( sbMPlayerDirInHome ) ) + if ( gtkFillSkinList( sbMPlayerPrefixDir )&>kFillSkinList( sbMPlayerDirInHome ) ) { gtkSetDefaultToCList( SkinList,skinName ); gtk_widget_show( SkinBrowser ); @@ -97,8 +95,6 @@ void gtkSigHandler( int s ) break; case evMessageBox: gtk_label_set_text( gtkMessageBoxText,(char *)gtkShMem->mb.str ); - gtk_widget_set_usize( MessageBox,gtkShMem->mb.sx,gtkShMem->mb.sy ); - gtk_widget_set_usize( gtkMessageBoxText,gtkShMem->mb.tsx,gtkShMem->mb.tsy ); if ( gtkVisibleMessageBox ) gtk_widget_hide( MessageBox ); gtk_widget_show( MessageBox ); gtkVisibleMessageBox=1; diff --git a/Gui/mplayer/widgets.c b/Gui/mplayer/widgets.c index 30ed8a31b9..6f91414d76 100644 --- a/Gui/mplayer/widgets.c +++ b/Gui/mplayer/widgets.c @@ -27,6 +27,9 @@ #include "pixmaps/file.xpm" #include "pixmaps/logo.xpm" #include "pixmaps/about.xpm" +#include "pixmaps/stop.xpm" +#include "pixmaps/error.xpm" +#include "pixmaps/warning.xpm" GtkWidget * SkinBrowser; GtkWidget * PlayList; @@ -57,7 +60,7 @@ void widgetsCreate( void ) SkinBrowser=create_SkinBrowser(); PlayList=create_PlayList(); FileSelect=create_FileSelect(); - MessageBox=create_MessageBox(); + MessageBox=create_MessageBox(0); Options=create_Options(); } @@ -103,17 +106,9 @@ void gtkDone( void ){ kill( gtkPID,SIGKILL ); } -void gtkMessageBox( gchar * str ) +void gtkMessageBox( int type,gchar * str ) { - gtkShMem->mb.sx=420; gtkShMem->mb.sy=128; - gtkShMem->mb.tsx=384; gtkShMem->mb.tsy=77; - if ( strlen( str ) > 200 ) - { - gtkShMem->mb.sx=512; - gtkShMem->mb.sy=128; - gtkShMem->mb.tsx=476; - gtkShMem->mb.tsy=77; - } + gtkShMem->mb.type=type; strcpy( gtkShMem->mb.str,str ); gtkSendMessage( evMessageBox ); } diff --git a/Gui/mplayer/widgets.h b/Gui/mplayer/widgets.h index 7d3184e370..bed4fbbecb 100644 --- a/Gui/mplayer/widgets.h +++ b/Gui/mplayer/widgets.h @@ -7,6 +7,12 @@ #include "../../linux/shmem.h" +#define GTK_MB_SIMPLE 0 +#define GTK_MB_MODAL 1 +#define GTK_MB_FATAL 2 +#define GTK_MB_ERROR 4 +#define GTK_MB_WARNING 8 + typedef struct { char dir[ 1024 ]; @@ -19,6 +25,7 @@ typedef struct int sy; int tsx; int tsy; + int type; char str[512]; } gtkMessageBoxStruct; @@ -73,7 +80,7 @@ extern void widgetsCreate( void ); extern void gtkInit( int argc,char* argv[], char *envp[] ); extern void gtkDone( void ); -extern void gtkMessageBox( gchar * str ); +extern void gtkMessageBox( int type,gchar * str ); extern int gtkFillSkinList( gchar * dir ); extern void gtkClearList( GtkWidget * list ); extern void gtkSetDefaultToCList( GtkWidget * list,char * item ); diff --git a/Gui/skin/font.c b/Gui/skin/font.c index 5c7dfab4e5..5d0efbb073 100644 --- a/Gui/skin/font.c +++ b/Gui/skin/font.c @@ -77,7 +77,7 @@ int fntRead( char * path,char * fname,int id ) cutItem( param,tmp,',',2 ); Fonts[id]->Fnt[i].sx=atoi( tmp ); cutItem( param,tmp,',',3 ); Fonts[id]->Fnt[i].sy=atoi( tmp ); #ifdef DEBUG - dbprintf( 0,"[font] char: '%s' params: %d,%d %dx%d\n",command,Fonts[id]->Fnt[i].x,Fonts[id]->Fnt[i].y,Fonts[id]->Fnt[i].sx,Fonts[id]->Fnt[i].sy ); + dbprintf( 3,"[font] char: '%s' params: %d,%d %dx%d\n",command,Fonts[id]->Fnt[i].x,Fonts[id]->Fnt[i].y,Fonts[id]->Fnt[i].sx,Fonts[id]->Fnt[i].sy ); #endif } else @@ -86,7 +86,7 @@ int fntRead( char * path,char * fname,int id ) { strcpy( tmp,path ); strcat( tmp,param ); #ifdef DEBUG - dbprintf( 0,"[font] font imagefile: %s\n",tmp ); + dbprintf( 3,"[font] font imagefile: %s\n",tmp ); #endif if ( skinBPRead( tmp,&Fonts[id]->Bitmap ) ) return -2; }