void gui_movedown_station(GtkButton *button, gpointer *userdata) { close_station_editor(); if (gui_station_selected >= 0 && gui_station_selected < gui_station_count-1) { gtk_clist_swap_rows(GTK_CLIST(gui_station_list), gui_station_selected, gui_station_selected+1); gui_station_selected++; } }
static void editlist_gui_moveup (GtkWidget * igad) { int row; row = gtkutil_clist_selection (editlist_gui_list); if (row != -1 && row > 0) { gtk_clist_freeze (GTK_CLIST (editlist_gui_list)); gtk_clist_swap_rows (GTK_CLIST (editlist_gui_list), row - 1, row); gtk_clist_thaw (GTK_CLIST (editlist_gui_list)); row--; if (gtk_clist_row_is_visible (GTK_CLIST (editlist_gui_list), row) != GTK_VISIBILITY_FULL) gtk_clist_moveto (GTK_CLIST (editlist_gui_list), row, 0, 0.1, 0); } }
static void editlist_gui_movedown (GtkWidget * igad) { int row; char *temp; row = gtkutil_clist_selection (editlist_gui_list); if (row != -1) { if (!gtk_clist_get_text (GTK_CLIST (editlist_gui_list), row + 1, 0, &temp)) return; gtk_clist_freeze (GTK_CLIST (editlist_gui_list)); gtk_clist_swap_rows (GTK_CLIST (editlist_gui_list), row, row + 1); gtk_clist_thaw (GTK_CLIST (editlist_gui_list)); row++; if (!gtk_clist_row_is_visible (GTK_CLIST (editlist_gui_list), row) != GTK_VISIBILITY_FULL) gtk_clist_moveto (GTK_CLIST (editlist_gui_list), row, 0, 0.9, 0); } }
static void move_up_down_pattern_callback (GtkWidget *widget, int dir) { int row = current_row; debug(5,"move_up_down_pattern_callback(widget=%x, dir=%d) row=%d",widget,dir,row); if ((dir != -1 || row <= 0) && (dir != 1 || row < 0 || row == g_slist_length (curplrs) - 1)) { return; } /* link = g_slist_nth (curplrs, row + dir); pp = (struct player_pattern *) link->data; curplrs = g_slist_remove_link (curplrs, link); curplrs = g_slist_insert (curplrs, pp, row); */ debug(5,"gtk_clist_swap_rows(..., %d,%d)",row,row+dir); gtk_clist_swap_rows (GTK_CLIST (pattern_clist), row, row + dir); // adjust current_row because pattern_clist_row_move_callback // does not know about the direction current_row = row+dir; pattern_clist_adjust_visibility (current_row, dir); }