int clip_GTK_SIGNALHANDLERUNBLOCK(ClipMachine *cm) { C_widget *cwid = _fetch_cw_arg(cm); int conn_id = _clip_parni(cm,2); CHECKCWID(cwid,GTK_IS_OBJECT); CHECKARG(2,NUMERIC_t); gtk_signal_handler_unblock(GTK_OBJECT(cwid->widget),conn_id); return 0; err: return 1; }
static void gtk_combo_update_entry (GtkList * list, GtkCombo * combo) { char *text; gtk_grab_remove (GTK_WIDGET (combo)); gtk_signal_handler_block (GTK_OBJECT (list), combo->list_change_id); if (list->selection) { text = gtk_combo_func (GTK_LIST_ITEM (list->selection->data)); if (!text) text = ""; gtk_entry_set_text (GTK_ENTRY (combo->entry), text); } gtk_signal_handler_unblock (GTK_OBJECT (list), combo->list_change_id); }
static void gtk_combo_update_list (GtkEntry * entry, GtkCombo * combo) { GtkList *list = GTK_LIST (combo->list); GList *slist = list->selection; GtkListItem *li; gtk_grab_remove (GTK_WIDGET (combo)); gtk_signal_handler_block (GTK_OBJECT (entry), combo->entry_change_id); if (slist && slist->data) gtk_list_unselect_child (list, GTK_WIDGET (slist->data)); li = gtk_combo_find (combo); if (li) gtk_list_select_child (list, GTK_WIDGET (li)); gtk_signal_handler_unblock (GTK_OBJECT (entry), combo->entry_change_id); }
bool gtkgui_sel_playlist(unsigned int chan, int row) { struct gchan *c; c=(struct gchan *)list_get_data(listachan, chan+1, 0); /* o=gcb_findch(chan+1, NOPOS); */ if(!c) return false; // gdk_threads_enter(); gtk_signal_handler_block(GTK_OBJECT(c->lista), blockid[chan+1]); gtk_clist_select_row(GTK_CLIST(c->lista), row-1, 0); gtk_signal_handler_unblock(GTK_OBJECT(c->lista), blockid[chan+1]); gtk_entry_set_text(GTK_ENTRY(c->ptime), "00:00"); gtk_adjustment_set_value(GTK_ADJUSTMENT(c->adjprog), 0.0); if(!c->playmode) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(c->play), FALSE); // gdk_threads_leave(); return true; }
static void plButtonReleased( GtkButton * button,gpointer user_data ) { switch ( (int) user_data ) { case 1: // ok { int i; plItem * item; listMgr( PLAYLIST_DELETE,0 ); for ( i=0;i<NrOfSelected;i++ ) { char * text[3]; item=calloc( 1,sizeof( plItem ) ); gtk_clist_get_text( GTK_CLIST( CLSelected ),i,0,&text[0] ); gtk_clist_get_text( GTK_CLIST( CLSelected ),i,1,&text[1] ); item->name=g_filename_from_utf8( text[0], -1, NULL, NULL, NULL ); if ( !item->name ) item->name = strdup( text[0] ); item->path=g_filename_from_utf8( text[1], -1, NULL, NULL, NULL ); if ( !item->path ) item->path = strdup( text[1] ); listMgr( PLAYLIST_ITEM_APPEND,item ); } item = listMgr( PLAYLIST_ITEM_GET_CURR,0 ); if ( item ) { uiSetFileName( item->path,item->name,STREAMTYPE_FILE ); // setddup( &guiInfo.Filename,item->path,item->name ); // guiInfo.NewPlay=GUI_FILE_NEW; // guiInfo.StreamType=STREAMTYPE_FILE; } } case 0: // cancel HidePlayList(); break; case 2: // remove { int i; int j; int c=0; gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigSel ); gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigUnsel ); gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigEvent ); gtk_clist_freeze( GTK_CLIST( CLSelected ) ); for ( i=0;i<NrOfSelected-c;i++ ) if ( CLListSelected[i] ) { gtk_clist_remove( GTK_CLIST( CLSelected ),i - c ); c++; for ( j=i;j<NrOfSelected-c;j++ ) CLListSelected[i] = CLListSelected[i+1]; } NrOfSelected-=c; gtk_clist_thaw( GTK_CLIST( CLSelected ) ); gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigSel ); gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigUnsel ); gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigEvent ); } break; case 3: // add { int i; void *p; char * itext[1][2]; gchar * cpath; char * text[1][3]; text[0][2]=""; gtk_clist_freeze( GTK_CLIST( CLSelected ) ); for ( i=0;i<NrOfEntrys;i++ ) { if ( CLFileSelected[i] ) { NrOfSelected++; p=realloc( CLListSelected,NrOfSelected * sizeof( int ) ); if ( !p ) NrOfSelected--; else { CLListSelected=p; CLListSelected[NrOfSelected - 1]=0; gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,(char **)&itext ); cpath=g_filename_to_utf8( current_path, -1, NULL, NULL, NULL ); text[0][0]=itext[0][0]; text[0][1]=cpath ? cpath : current_path; gtk_clist_append( GTK_CLIST( CLSelected ),text[0] ); g_free( cpath ); } } } gtk_clist_thaw( GTK_CLIST( CLSelected ) ); } break; } }
static void plButtonReleased( GtkButton * button,gpointer user_data ) { switch ( (int) user_data ) { case 1: // ok { int i; if ( plList ) gtkSet( gtkDelPl,0,NULL ); for ( i=0;i<NrOfSelected;i++ ) { plItem * item; char * text[3]; item=calloc( 1,sizeof( plItem ) ); gtk_clist_get_text( GTK_CLIST( CLSelected ),i,0,&text[0] ); gtk_clist_get_text( GTK_CLIST( CLSelected ),i,1,&text[1] ); item->name=strdup( text[0] ); item->path=strdup( text[1] ); gtkSet( gtkAddPlItem,0,(void*)item ); } if ( plCurrent ) { mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE ); // guiSetDF( guiIntfStruct.Filename,plCurrent->path,plCurrent->name ); // guiIntfStruct.FilenameChanged=1; // guiIntfStruct.StreamType=STREAMTYPE_FILE; } } case 0: // cancel HidePlayList(); break; case 2: // remove { int i; int j; int c=0; gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigSel ); gtk_signal_handler_block( GTK_OBJECT( CLSelected ),sigUnsel ); gtk_clist_freeze( GTK_CLIST( CLSelected ) ); for ( i=0;i<NrOfSelected-c;i++ ) if ( CLListSelected[i] ) { gtk_clist_remove( GTK_CLIST( CLSelected ),i - c ); c++; for ( j=i;j<NrOfSelected-c;j++ ) CLListSelected[i] = CLListSelected[i+1]; } NrOfSelected-=c; gtk_clist_thaw( GTK_CLIST( CLSelected ) ); gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigSel ); gtk_signal_handler_unblock( GTK_OBJECT( CLSelected ),sigUnsel ); } break; case 3: // add { int i; char * itext[1][2]; char * text[1][3]; text[0][2]=""; gtk_clist_freeze( GTK_CLIST( CLSelected ) ); for ( i=0;i<NrOfEntrys;i++ ) { if ( CLFileSelected[i] ) { gtk_clist_get_text( GTK_CLIST( CLFiles ),i,0,(char **)&itext ); text[0][0]=itext[0][0]; text[0][1]=current_path; gtk_clist_append( GTK_CLIST( CLSelected ),text[0] ); NrOfSelected++; CLListSelected=realloc( CLListSelected,NrOfSelected * sizeof( int ) ); CLListSelected[NrOfSelected - 1]=0; } } gtk_clist_thaw( GTK_CLIST( CLSelected ) ); } break; } }