add new features. and fix skin error loop.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@1908 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
pontscho 2001-09-17 21:16:00 +00:00
parent 41bbd1a7fd
commit ba57320b82
8 changed files with 235 additions and 254 deletions

View File

@ -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

View File

@ -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;

View File

@ -123,7 +123,7 @@ void mplMenuInit( void )
#ifdef DEBUG
dbprintf( 1,MSGTR_NEMFMR );
#endif
gtkMessageBox( MSGTR_NEMFMR );
gtkMessageBox( GTK_MB_FATAL,MSGTR_NEMFMR );
return;
}

View File

@ -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; }
}

View File

@ -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 )&&gtkFillSkinList( 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;

View File

@ -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 );
}

View File

@ -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 );

View File

@ -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;
}