diff options
Diffstat (limited to 'Gui/mplayer/gtk/pl.c')
-rw-r--r-- | Gui/mplayer/gtk/pl.c | 239 |
1 files changed, 49 insertions, 190 deletions
diff --git a/Gui/mplayer/gtk/pl.c b/Gui/mplayer/gtk/pl.c index 196cd8fc93..a8471ea179 100644 --- a/Gui/mplayer/gtk/pl.c +++ b/Gui/mplayer/gtk/pl.c @@ -17,6 +17,7 @@ #include "../../interface.h" #include "../widgets.h" #include "pl.h" +#include "common.h" static char * book_open_xpm[] = { "16 16 4 1", @@ -66,7 +67,7 @@ static char * book_closed_xpm[] = { " .. ", " "}; - GtkWidget * PlayList; + GtkWidget * PlayList = NULL; static GtkWidget * CTDirTree; static GtkWidget * CLFiles; static GtkWidget * CLSelected; @@ -79,7 +80,6 @@ static GdkPixmap * pxClosedBook; static GdkBitmap * msOpenedBook; static GdkBitmap * msClosedBook; -static int gtkVPlaylist = 0; static int NrOfEntrys = 0; static int NrOfSelected = 0; static int * CLFileSelected = NULL; @@ -114,7 +114,7 @@ static void scan_dir( char * path ); void ShowPlayList( void ) { - if ( gtkVPlaylist ) gtkActive( PlayList ); + if ( PlayList ) gtkActive( PlayList ); else PlayList=create_PlayList(); if ( old_path && *old_path ) @@ -175,18 +175,15 @@ void ShowPlayList( void ) void HidePlayList( void ) { - if ( !gtkVPlaylist ) return; - gtkVPlaylist=NrOfSelected=NrOfEntrys=0; - if ( CLListSelected ) free( CLListSelected ); CLListSelected=NULL; - if ( CLFileSelected ) free( CLFileSelected ); CLFileSelected=NULL; + if ( !PlayList ) return; + NrOfSelected=NrOfEntrys=0; + gfree( (void **)&CLListSelected ); gfree( (void **)&CLFileSelected ); if ( old_path ) free( old_path ); old_path=strdup( current_path ); gtk_widget_hide( PlayList ); gtk_widget_destroy( PlayList ); + PlayList=NULL; } -static void plDestroy( GtkObject * object,gpointer user_data ) -{ HidePlayList(); } - static void plRowSelect( GtkCList * clist,gint row,gint column,GdkEvent * event,gpointer user_data ) { switch ( (int) user_data ) @@ -392,40 +389,26 @@ static void plCTRow(GtkWidget * widget, gint row, gint column, GdkEventButton * if ( CLFileSelected ) free( CLFileSelected ); CLFileSelected=calloc( 1,NrOfEntrys * sizeof( int ) ); } -static void plShow( GtkWidget * widget,gpointer user_data ) -{ gtkVPlaylist=(int)user_data; } - GtkWidget * create_PlayList( void ) { - GtkWidget * frame1; - GtkWidget * frame2; - GtkWidget * frame3; - GtkWidget * frame4; GtkWidget * vbox1; GtkWidget * hbox1; - GtkWidget * frame5; GtkWidget * scrolledwindow1; - GtkWidget * label2; - GtkWidget * frame6; GtkWidget * vbox2; GtkWidget * scrolledwindow2; - GtkWidget * label3; - GtkWidget * hseparator2; GtkWidget * scrolledwindow3; - GtkWidget * label5; - GtkWidget * hseparator1; GtkWidget * hbuttonbox1; GtkAccelGroup * accel_group; - GdkColor transparent = { 0 }; - gchar * root = "/"; - gchar * dummy = "dummy"; + GdkColor transparent = { 0,0,0,0 }; + gchar * root = "/"; + gchar * dummy = "dummy"; DirNodeType * DirNode; accel_group=gtk_accel_group_new(); PlayList=gtk_window_new( GTK_WINDOW_TOPLEVEL ); gtk_object_set_data( GTK_OBJECT( PlayList ),"PlayList",PlayList ); - gtk_widget_set_usize( PlayList,512,300 ); + gtk_widget_set_usize( PlayList,512,384 ); 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,FALSE ); @@ -434,64 +417,17 @@ GtkWidget * create_PlayList( void ) gtk_widget_realize( PlayList ); gtkAddIcon( PlayList ); - frame1=gtk_frame_new( NULL ); - gtk_widget_ref( frame1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame1",frame1,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( frame1 ); - gtk_container_add( GTK_CONTAINER( PlayList ),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_ref( frame2 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"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_ref( frame3 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"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_ref( frame4 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"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_ref( vbox1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"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_ref( hbox1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hbox1",hbox1,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( hbox1 ); - gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); - - frame5=gtk_frame_new( NULL ); - gtk_widget_ref( frame5 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame5",frame5,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( frame5 ); - gtk_box_pack_start( GTK_BOX( hbox1 ),frame5,TRUE,TRUE,0 ); - gtk_frame_set_shadow_type( GTK_FRAME( frame5 ),GTK_SHADOW_ETCHED_OUT ); + vbox1=AddVBox( AddDialogFrame( PlayList ),0 ); + hbox1=AddHBox( NULL,1 ); + gtk_box_pack_start( GTK_BOX( vbox1 ),hbox1,TRUE,TRUE,0 ); scrolledwindow1=gtk_scrolled_window_new( NULL,NULL ); - gtk_widget_ref( scrolledwindow1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"scrolledwindow1",scrolledwindow1,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( scrolledwindow1 ); - gtk_container_add( GTK_CONTAINER( frame5 ),scrolledwindow1 ); + gtk_container_add( GTK_CONTAINER( + AddFrame( NULL,0,hbox1,1 ) ),scrolledwindow1 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow1 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CTDirTree=gtk_ctree_new( 1,0 ); - gtk_widget_ref( CTDirTree ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"CTDirTree",CTDirTree,(GtkDestroyNotify)gtk_widget_unref ); gtk_signal_connect( GTK_OBJECT( CTDirTree ),"tree_expand",GTK_SIGNAL_FUNC( plCTree ),(void*)0 ); gtk_signal_connect( GTK_OBJECT( CTDirTree ),"select_row",GTK_SIGNAL_FUNC( plCTRow ),(void *)0 ); gtk_container_add( GTK_CONTAINER( scrolledwindow1 ),CTDirTree ); @@ -502,8 +438,6 @@ GtkWidget * create_PlayList( void ) gtk_clist_column_titles_show( GTK_CLIST( CTDirTree ) ); gtk_clist_set_shadow_type( GTK_CLIST( CTDirTree ),GTK_SHADOW_NONE ); - gtk_widget_realize( PlayList ); - if ( !pxOpenedBook ) pxOpenedBook=gdk_pixmap_create_from_xpm_d( PlayList->window,&msOpenedBook,&transparent,book_closed_xpm ); if ( !pxClosedBook ) pxClosedBook=gdk_pixmap_create_from_xpm_d( PlayList->window,&msClosedBook,&transparent,book_open_xpm ); @@ -514,38 +448,20 @@ GtkWidget * create_PlayList( void ) sibling=gtk_ctree_insert_node( GTK_CTREE( CTDirTree ),parent,NULL,&dummy,4,NULL,NULL,NULL,NULL,TRUE,TRUE ); gtk_ctree_expand( GTK_CTREE( CTDirTree ),parent ); gtk_widget_show( CTDirTree ); + + + gtk_clist_set_column_widget( GTK_CLIST( CTDirTree ),0, + AddLabel( MSGTR_PLAYLIST_DirectoryTree,NULL ) ); - label2=gtk_label_new( MSGTR_PLAYLIST_DirectoryTree ); - gtk_widget_ref( label2 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"label2",label2,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( label2 ); - gtk_clist_set_column_widget( GTK_CLIST( CTDirTree ),0,label2 ); - gtk_misc_set_alignment( GTK_MISC( label2 ),0.02,0.5 ); - - frame6=gtk_frame_new( NULL ); - gtk_widget_ref( frame6 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"frame6",frame6,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( frame6 ); - gtk_box_pack_start( GTK_BOX( hbox1 ),frame6,TRUE,TRUE,0 ); - gtk_widget_set_usize( frame6,170,-2 ); - gtk_frame_set_shadow_type( GTK_FRAME( frame6 ),GTK_SHADOW_ETCHED_OUT ); - - vbox2=gtk_vbox_new( FALSE,0 ); - gtk_widget_ref( vbox2 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"vbox2",vbox2,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( vbox2 ); - gtk_container_add( GTK_CONTAINER( frame6 ),vbox2 ); + vbox2=AddVBox( + AddFrame( NULL,1,hbox1,1 ),0 ); scrolledwindow2=gtk_scrolled_window_new( NULL,NULL ); - gtk_widget_ref( scrolledwindow2 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"scrolledwindow2",scrolledwindow2,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( scrolledwindow2 ); gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow2,TRUE,TRUE,0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow2 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CLFiles=gtk_clist_new( 1 ); - gtk_widget_ref( CLFiles ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"CLFiles",CLFiles,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( CLFiles ); gtk_container_add( GTK_CONTAINER( scrolledwindow2 ),CLFiles ); gtk_clist_set_column_width( GTK_CLIST( CLFiles ),0,80 ); @@ -553,30 +469,17 @@ GtkWidget * create_PlayList( void ) gtk_clist_column_titles_show( GTK_CLIST( CLFiles ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLFiles ),GTK_SHADOW_NONE ); - label3=gtk_label_new( MSGTR_PLAYLIST_Files ); - gtk_widget_ref( label3 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"label3",label3,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( label3 ); - gtk_clist_set_column_widget( GTK_CLIST( CLFiles ),0,label3 ); - gtk_misc_set_alignment( GTK_MISC( label3 ),0.02,0.5 ); + gtk_clist_set_column_widget( GTK_CLIST( CLFiles ),0, + AddLabel( MSGTR_PLAYLIST_Files,NULL ) ); - hseparator2=gtk_hseparator_new(); - gtk_widget_ref( hseparator2 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hseparator2",hseparator2,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( hseparator2 ); - gtk_box_pack_start( GTK_BOX( vbox2 ),hseparator2,FALSE,FALSE,0 ); - gtk_widget_set_usize( hseparator2,-2,3 ); + AddHSeparator( vbox2 ); scrolledwindow3=gtk_scrolled_window_new( NULL,NULL ); - gtk_widget_ref( scrolledwindow3 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"scrolledwindow3",scrolledwindow3,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( scrolledwindow3 ); gtk_box_pack_start( GTK_BOX( vbox2 ),scrolledwindow3,TRUE,TRUE,0 ); gtk_scrolled_window_set_policy( GTK_SCROLLED_WINDOW( scrolledwindow3 ),GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC ); CLSelected=gtk_clist_new( 2 ); - gtk_widget_ref( CLSelected ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"CLSelected",CLSelected,(GtkDestroyNotify)gtk_widget_unref ); gtk_widget_show( CLSelected ); gtk_container_add( GTK_CONTAINER( scrolledwindow3 ),CLSelected ); gtk_clist_set_column_width( GTK_CLIST( CLSelected ),0,295 ); @@ -585,80 +488,36 @@ GtkWidget * create_PlayList( void ) gtk_clist_column_titles_show( GTK_CLIST( CLSelected ) ); gtk_clist_set_shadow_type( GTK_CLIST( CLSelected ),GTK_SHADOW_NONE ); - label5=gtk_label_new( MSGTR_PLAYLIST_Selected ); - gtk_widget_ref( label5 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"label5",label5,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( label5 ); - gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),0,label5 ); - gtk_misc_set_alignment( GTK_MISC( label5 ),0.02,0.5 ); - - label5=gtk_label_new( MSGTR_PLAYLIST_Path ); - gtk_widget_ref( label5 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"label5",label5,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( label5 ); - gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),1,label5 ); - gtk_misc_set_alignment( GTK_MISC( label5 ),0.02,0.5 ); - - hseparator1=gtk_hseparator_new(); - gtk_widget_ref( hseparator1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"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,6 ); - - hbuttonbox1=gtk_hbutton_box_new(); - gtk_widget_ref( hbuttonbox1 ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"hbuttonbox1",hbuttonbox1,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( hbuttonbox1 ); - gtk_box_pack_start( GTK_BOX( vbox1 ),hbuttonbox1,FALSE,FALSE,0 ); - gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); - gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); - gtk_button_box_set_child_size( GTK_BUTTON_BOX( hbuttonbox1 ),-1,20 ); - gtk_button_box_set_child_ipadding( GTK_BUTTON_BOX( hbuttonbox1 ),0,-1 ); - - Add=gtk_button_new_with_label( MSGTR_Add ); - gtk_widget_ref( Add ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"Add",Add,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( Add ); - gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Add ); - GTK_WIDGET_UNSET_FLAGS( Add,GTK_CAN_FOCUS ); - - Remove=gtk_button_new_with_label( MSGTR_Remove ); - gtk_widget_ref( Remove ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"Remove",Remove,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( Remove ); - gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Remove ); - GTK_WIDGET_UNSET_FLAGS( Remove,GTK_CAN_FOCUS ); - - Ok=gtk_button_new_with_label( MSGTR_Ok ); - gtk_widget_ref( Ok ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"Ok",Ok,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( Ok ); - gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Ok ); - GTK_WIDGET_UNSET_FLAGS( Ok,GTK_CAN_FOCUS ); -// gtk_widget_add_accelerator( Ok,"released",accel_group,GDK_Return,0,GTK_ACCEL_VISIBLE ); - - Cancel=gtk_button_new_with_label( MSGTR_Cancel ); - gtk_widget_ref( Cancel ); - gtk_object_set_data_full( GTK_OBJECT( PlayList ),"Cancel",Cancel,(GtkDestroyNotify)gtk_widget_unref ); - gtk_widget_show( Cancel ); - gtk_container_add( GTK_CONTAINER( hbuttonbox1 ),Cancel ); - GTK_WIDGET_UNSET_FLAGS( Cancel,GTK_CAN_FOCUS ); - gtk_widget_add_accelerator( Cancel,"released",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); - - gtk_signal_connect( GTK_OBJECT( PlayList ),"destroy",GTK_SIGNAL_FUNC( plDestroy ),NULL ); - gtk_signal_connect( GTK_OBJECT( PlayList ),"show",GTK_SIGNAL_FUNC( plShow ),(void *)1 ); - gtk_signal_connect( GTK_OBJECT( PlayList ),"hide",GTK_SIGNAL_FUNC( plShow ),(void *)0 ); + gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),0, + AddLabel( MSGTR_PLAYLIST_Selected,NULL ) ); + + gtk_clist_set_column_widget( GTK_CLIST( CLSelected ),1, + AddLabel( MSGTR_PLAYLIST_Path,NULL ) ); + + AddHSeparator( vbox1 ); + + hbuttonbox1=AddHButtonBox( vbox1 ); + gtk_button_box_set_layout( GTK_BUTTON_BOX( hbuttonbox1 ),GTK_BUTTONBOX_END ); + gtk_button_box_set_spacing( GTK_BUTTON_BOX( hbuttonbox1 ),10 ); + + Add=AddButton( MSGTR_Add,hbuttonbox1 ); + Remove=AddButton( MSGTR_Remove,hbuttonbox1 ); + Ok=AddButton( MSGTR_Ok,hbuttonbox1 ); + Cancel=AddButton( MSGTR_Cancel,hbuttonbox1 ); + + gtk_widget_add_accelerator( Cancel,"clicked",accel_group,GDK_Escape,0,GTK_ACCEL_VISIBLE ); + + gtk_signal_connect( GTK_OBJECT( PlayList ),"destroy",GTK_SIGNAL_FUNC( gtk_widget_destroyed ),&PlayList ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void *)0 ); gtk_signal_connect( GTK_OBJECT( CLFiles ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void *)0 ); sigSel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"select_row",GTK_SIGNAL_FUNC( plRowSelect ),(void*)1 ); sigUnsel=gtk_signal_connect( GTK_OBJECT( CLSelected ),"unselect_row",GTK_SIGNAL_FUNC( plUnRowSelect ),(void*)1 ); - gtk_signal_connect( GTK_OBJECT( Add ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)3 ); - gtk_signal_connect( GTK_OBJECT( Remove ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)2 ); - gtk_signal_connect( GTK_OBJECT( Ok ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)1 ); - gtk_signal_connect( GTK_OBJECT( Cancel ),"released",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)0 ); + gtk_signal_connect( GTK_OBJECT( Add ),"clicked",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)3 ); + gtk_signal_connect( GTK_OBJECT( Remove ),"clicked",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)2 ); + gtk_signal_connect( GTK_OBJECT( Ok ),"clicked",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)1 ); + gtk_signal_connect( GTK_OBJECT( Cancel ),"clicked",GTK_SIGNAL_FUNC( plButtonReleased ),(void*)0 ); gtk_window_add_accel_group( GTK_WINDOW( PlayList ),accel_group ); |