/* * User selected a row */ static void select_row_cb(GtkCList *item, gint row, gint column, GdkEventButton *event, Window *restore) { char *file; char *marked = NULL; /* Column non-negative => double click */ if (column >= 0) { gtk_clist_unselect_row(item, row, column); /* Double click on column 0 means to mark or unmark */ if (column == 0) { gtk_clist_get_text(restore->list, row, CHECK_COLUMN, &marked); Dmsg1(200, "Marked=%s\n", marked); if (!marked || strcmp(marked, "x") != 0) { mark_row(row, true); } else { mark_row(row, false); } } else { /* Double clicking on directory means to move to it */ int len; gtk_clist_get_text(item, row, FILE_COLUMN, &file); len = strlen(file); if (len > 0 && file[len-1] == '/') { /* Change to new directory */ pm_strcpy(restore->path, restore->fname); if (*file == '*') { Mmsg(restore->fname, "%s%s", restore->path, file+1); } else { Mmsg(restore->fname, "%s%s", restore->path, file); } FillDirectory(restore->fname, restore); } } } }
void gtk_clist_remove(GtkCList *clist, gint row) { if (row >= 0 && row < clist->rows) { GSList *dellink; GtkCListRow *delrow; int i; gtk_clist_unselect_row(clist, row, 0); dellink = g_slist_nth(clist->rowdata, row); delrow = (GtkCListRow *)dellink->data; for (i = 0; i < clist->cols; i++) { g_free(delrow->text[i]); } g_free(delrow->text); clist->rowdata = g_slist_remove_link(clist->rowdata, dellink); g_free(dellink); clist->rows = g_slist_length(clist->rowdata); if (GTK_WIDGET_REALIZED(GTK_WIDGET(clist))) { HWND hWnd = GTK_WIDGET(clist)->hWnd; SendMessage(hWnd, LB_DELETESTRING, (WPARAM)row, 0); } } }
void selectallfiles (gpointer data) { gftp_window_data * wdata; gftp_file * tempfle; GList *templist; int i; wdata = data; wdata->show_selected = 0; gtk_clist_freeze (GTK_CLIST (wdata->listbox)); i = 0; templist = wdata->files; while (templist != NULL) { tempfle = (gftp_file *) templist->data; if (tempfle->shown) { if (S_ISDIR (tempfle->st_mode)) gtk_clist_unselect_row (GTK_CLIST (wdata->listbox), i, 0); else gtk_clist_select_row (GTK_CLIST (wdata->listbox), i, 0); i++; } templist = templist->next; } gtk_clist_thaw (GTK_CLIST (wdata->listbox)); }
static void editlist_gui_sort (GtkWidget * igad) { int row; row = gtkutil_clist_selection (editlist_gui_list); if (row != -1) gtk_clist_unselect_row (GTK_CLIST (editlist_gui_list), row, 0); gtk_clist_sort (GTK_CLIST (editlist_gui_list)); }
/** * Fetch data from the selection of a clist. Returns a GSList containing * the user_data pointers from the selected rows. If allow_null is TRUE, * the returned list may contain NULL pointers. If cfn != NULL, it will * be used to determine whether two entries are equal and drop all duplicate * items from the result list. Using cfn will significantly increase runtime. */ GSList * clist_collect_data(GtkCList *clist, gboolean allow_null, GCompareFunc cfn) { GSList *result_list = NULL; GList *l; GSList *sl; GSList *to_unselect = NULL; g_assert(clist != NULL); /* * Collect the data of the selected rows. */ for (l = clist->selection; l != NULL; l = g_list_next(l)) { gpointer data; gint row; row = GPOINTER_TO_INT(l->data); data = gtk_clist_get_row_data(clist, row); if ((data != NULL) || allow_null) { if (cfn != NULL) { if (g_slist_find_custom(result_list, data, cfn) != NULL) { if (GUI_PROPERTY(gui_debug) >= 3) { const gchar *name = gtk_widget_get_name(GTK_WIDGET(clist)); printf("%s has duplicate data: %p\n", (name != NULL) ? name : "<UNKNOWN>", data); } to_unselect = g_slist_prepend(to_unselect, GINT_TO_POINTER(row)); continue; } } result_list = g_slist_prepend(result_list, data); to_unselect = g_slist_prepend(to_unselect, GINT_TO_POINTER(row)); } else { if (GUI_PROPERTY(gui_debug) >= 3) { const gchar *name = gtk_widget_get_name(GTK_WIDGET(clist)); printf("%s contains NULL data in row %d\n", (name != NULL) ? name : "<UNKNOWN>", row); } } } /* * Unselect the rows from which data has been sucessfully gathered. */ for (sl = to_unselect; sl != NULL; sl = g_slist_next(sl)) gtk_clist_unselect_row(clist, GPOINTER_TO_INT(sl->data), 0); g_slist_free(to_unselect); return result_list; }
static void accept_chat_clicked (GtkWidget * wid, gpointer none) { int row; struct DCC *dcc; row = gtkutil_clist_selection (dcccwin.list); if (row != -1) { dcc = gtk_clist_get_row_data (GTK_CLIST (dcccwin.list), row); gtk_clist_unselect_row (GTK_CLIST (dcccwin.list), row, 0); dcc_get (dcc); } }
static void ghack_menu_window_key(GtkWidget *menuWin, GdkEventKey *event, gpointer data) { int i, numRows; menuItem* item; MenuWinType isMenu; isMenu = (MenuWinType) GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (menuWin), "isMenu")); if (isMenu == MenuMenu) { GtkWidget *clist; gint selection_mode; clist = GTK_WIDGET(gtk_object_get_data (GTK_OBJECT (menuWin), "clist")); g_assert (clist != NULL); numRows = GPOINTER_TO_INT (gtk_object_get_data(GTK_OBJECT(clist), "numRows")); selection_mode = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT(clist), "selection_mode")); for (i = 0; i <= numRows; ++i) { item = (menuItem*) gtk_clist_get_row_data(GTK_CLIST(clist), i); if (item == NULL) continue; if (!strcmp(item->accelerator, "")) continue; if ( (!strcmp(item->accelerator, event->string)) || ((selection_mode == GTK_SELECTION_MULTIPLE) && (event->keyval == ','))) { if (item->selected) { gtk_clist_unselect_row( GTK_CLIST (clist), item->itemNumber, 0); item->selected=FALSE; } else { gtk_clist_select_row( GTK_CLIST (clist), item->itemNumber, 0); if (gtk_clist_row_is_visible(GTK_CLIST(clist), item->itemNumber) != GTK_VISIBILITY_FULL) gtk_clist_moveto(GTK_CLIST(clist), item->itemNumber, 0, 0.5, 0); item->selected=TRUE; } } } } }
void on_bt_dbupdate_clicked (GtkButton *button, gpointer user_data) { GtkWidget *widget; char *sat, *mode, *uplink, *downlink, *beacon; if(selectedrow < 0) return; widget = lookup_widget( dialog_dbedit, "tx_dbsat" ); sat=(char *)gtk_entry_get_text(GTK_ENTRY(widget)); widget = lookup_widget( dialog_dbedit, "tx_dbmode" ); mode=(char *)gtk_entry_get_text(GTK_ENTRY(widget)); widget = lookup_widget( dialog_dbedit, "tx_dbuplink" ); uplink=(char *)gtk_entry_get_text(GTK_ENTRY(widget)); widget = lookup_widget( dialog_dbedit, "tx_dbdownlink" ); downlink=(char *)gtk_entry_get_text(GTK_ENTRY(widget)); widget = lookup_widget( dialog_dbedit, "tx_dbbeacon" ); beacon=(char *)gtk_entry_get_text(GTK_ENTRY(widget)); widget=lookup_widget( dialog_dbedit, "clist_satdb" ); gtk_clist_set_text(GTK_CLIST(widget), selectedrow, 0, sat); gtk_clist_set_text(GTK_CLIST(widget), selectedrow, 1, mode); gtk_clist_set_text(GTK_CLIST(widget), selectedrow, 2, uplink); gtk_clist_set_text(GTK_CLIST(widget), selectedrow, 3, downlink); gtk_clist_set_text(GTK_CLIST(widget), selectedrow, 4, beacon); gtk_clist_unselect_row(GTK_CLIST(widget), selectedrow, 0); selectedrow=-1; widget = lookup_widget( dialog_dbedit, "tx_dbsat" ); gtk_entry_set_text(GTK_ENTRY(widget), ""); widget = lookup_widget( dialog_dbedit, "tx_dbmode" ); gtk_entry_set_text(GTK_ENTRY(widget), ""); widget = lookup_widget( dialog_dbedit, "tx_dbuplink" ); gtk_entry_set_text(GTK_ENTRY(widget), ""); widget = lookup_widget( dialog_dbedit, "tx_dbdownlink" ); gtk_entry_set_text(GTK_ENTRY(widget), ""); widget = lookup_widget( dialog_dbedit, "tx_dbbeacon" ); gtk_entry_set_text(GTK_ENTRY(widget), ""); save_sat_db(); }
static void cb_enter(GtkWidget *widget) { gchar *buf[CLIST_WIDTH]; gint i; i = 0; buf[i++] = gkrellm_gtk_entry_get_text(&label_entry); buf[i++] = gkrellm_gtk_entry_get_text(&peer_entry); buf[i++] = gkrellm_gtk_entry_get_text(&port_spin); buf[i++] = gkrellm_gtk_entry_get_text(&community_entry); buf[i++] = gkrellm_gtk_entry_get_text(&oid_entry); buf[i++] = gkrellm_gtk_entry_get_text(&unit_entry); buf[i++] = gkrellm_gtk_entry_get_text(&freq_spin); buf[i++] = gkrellm_gtk_entry_get_text(&div_spin); buf[i++] = GTK_TOGGLE_BUTTON(delta_button)->active ? "yes" : "no"; buf[i++] = GTK_TOGGLE_BUTTON(scale_button)->active ? "yes" : "no"; buf[i++] = "yes"; // GTK_TOGGLE_BUTTON(active_button)->active ? "yes" : "no"; /* validate we have input */ if (!*(buf[1]) || !*(buf[2]) || !*(buf[3]) || !*(buf[4])) { gkrellm_config_message_dialog("Entry Error", "Peer, Port, Community and OID must be entered."); return; } if (selected_row >= 0) { for (i = 0; i < CLIST_WIDTH; ++i) gtk_clist_set_text(GTK_CLIST(reader_clist), selected_row, i, buf[i]); gtk_clist_unselect_row(GTK_CLIST(reader_clist), selected_row, 0); selected_row = -1; } else gtk_clist_append(GTK_CLIST(reader_clist), buf); reset_entries(); list_modified = TRUE; }