Ejemplo n.º 1
0
extern void GTKPopMoveRecord( moverecord *pmr ) {

    GtkCList *pcl = GTK_CLIST( pwGameList );
    gamelistrow *pglr = NULL;
    
    gtk_clist_freeze( pcl );

    while( pcl->rows ) {
	pglr = gtk_clist_get_row_data( pcl, pcl->rows - 1 );
	
	if( pglr->apmr[ 0 ] != pmr && pglr->apmr[ 1 ] != pmr )
	    gtk_clist_remove( pcl, pcl->rows - 1);
	else
	    break;
    }

    if( pcl->rows ) {
	if( pglr->apmr[ 0 ] == pmr )
	    /* the left column matches; delete the row */
	    gtk_clist_remove( pcl, pcl->rows - 1 );
	else {
	    /* the right column matches; delete that column only */
	    gtk_clist_set_text( pcl, pcl->rows - 1, 2, NULL );
	    pglr->apmr[ 1 ] = NULL;
	}
    }
    
    gtk_clist_thaw( pcl );
}
Ejemplo n.º 2
0
void widget_table_removeselected(variable *var)
{
	gchar            *string;
	gchar            *value;
	gint              column = 0;
	gint              count;
	gint              row;
	gint              selectionmode = GTK_SELECTION_SINGLE;

#ifdef DEBUG_TRANSITS
	fprintf(stderr, "%s(): Entering.\n", __func__);
#endif

#if !GTK_CHECK_VERSION(3,0,0)	/* gtk3: Deprecated in gtk2 and now gone */
	if (var->widget_tag_attr) {
		/* Get current selection-mode (there's no function to do this) */
		if ((value = get_tag_attribute(var->widget_tag_attr, "selection-mode")))
			selectionmode = atoi(value);
		/* Get exported-column */
		if ((value = get_tag_attribute(var->widget_tag_attr, "exported-column")))
			column = atoi(value);
	}

#ifdef DEBUG_CONTENT
	fprintf(stderr, "%s(): widget=%p selectionmode=%i column=%i\n",
		__func__, var->Widget, selectionmode, column);
#endif

	if (selectionmode == GTK_SELECTION_NONE) {
		/* Nothing to do */
	} else if (selectionmode == GTK_SELECTION_MULTIPLE) {
		/* I'm assuming that selection is updated on row removal so
		 * it's likely not a good idea to iterate in a for loop */
		count = g_list_length(GTK_CLIST(var->Widget)->selection);
		while (count) {
			row = (gint)g_list_nth_data(GTK_CLIST(var->Widget)->selection, 0);
			gtk_clist_remove(GTK_CLIST(var->Widget), row);
			count = g_list_length(GTK_CLIST(var->Widget)->selection);
		}
	} else {
		/* Default GTK_SELECTION_SINGLE and GTK_SELECTION_BROWSE.
		 * 
		 * There does not appear to be a way to get the selected item(s)
		 * outside of the select-row signal callback but I found this
		 * recommended technique from here:
		 * https://mail.gnome.org/archives/gtk-app-devel-list/1999-April/msg00033.html */
		if (g_list_length(GTK_CLIST(var->Widget)->selection)) {
			row = (gint)g_list_nth_data(GTK_CLIST(var->Widget)->selection, 0);
			gtk_clist_remove(GTK_CLIST(var->Widget), row);
		}
	}
#endif

#ifdef DEBUG_TRANSITS
	fprintf(stderr, "%s(): Exiting.\n", __func__);
#endif
}
Ejemplo n.º 3
0
static void prefs_summary_column_remove(void)
{
	GtkCList *stock_clist = GTK_CLIST(summary_col.stock_clist);
	GtkCList *shown_clist = GTK_CLIST(summary_col.shown_clist);
	gint row;
	SummaryColumnType type;
	gchar *name;

	if (!shown_clist->selection) return;

	row = GPOINTER_TO_INT(shown_clist->selection->data);
	type = GPOINTER_TO_INT(gtk_clist_get_row_data(shown_clist, row));
	gtk_clist_remove(shown_clist, row);
	if (shown_clist->rows == row)
		gtk_clist_select_row(shown_clist, row - 1, -1);

	if (!stock_clist->selection)
		row = 0;
	else
		row = GPOINTER_TO_INT(stock_clist->selection->data) + 1;

	name = gettext(col_name[type]);
	row = gtk_clist_insert(stock_clist, row, (gchar **)&name);
	gtk_clist_set_row_data(stock_clist, row, GINT_TO_POINTER(type));
	gtk_clist_select_row(stock_clist, row, -1);
}
Ejemplo n.º 4
0
gint gw_categories_edit_box_remove_category ( GtkWindow *w) {
	GWCatalogPlugin *plugin = NULL;
	GWDBContext *context = gw_am_get_current_catalog_context ( );
	GWDBCategory *category = NULL;
	GtkCList *list = NULL;
	/* Remove category isn't implemented yet. */
	gint result = -1;


#ifdef GW_DEBUG_GUI_COMPONENT
		g_print ( "*** GW - %s (%d) :: %s()\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
#endif

	if ( w != NULL ) {
		if ( (category = gw_categories_edit_box_get_category ( w)) != NULL ) {
			if ( (list = gtk_object_get_data ( GTK_OBJECT ( w), GW_REF_CATEGORIES_EDIT_BOX_CATEGORIES_LIST)) != NULL ) {
				if ( list->selection != NULL ) {
					if ( context != NULL) {
						plugin = (GWCatalogPlugin*)gw_db_context_get_plugin ( context);

						gtk_clist_remove ( list, (gint)(list->selection->data));

						plugin->gw_db_catalog_remove_db_category ( context, gw_db_category_get_ref ( category));

						result = 0;
					}
				}
			}
		}
	}

	return result;
}
Ejemplo n.º 5
0
static void prefs_display_items_add(GtkWidget *widget, gpointer data)
{
	PrefsDisplayItemsDialog *dialog = data;
	GtkCList *stock_clist = GTK_CLIST(dialog->stock_clist);
	GtkCList *shown_clist = GTK_CLIST(dialog->shown_clist);
	PrefsDisplayItem *item;
	gint row;
	gchar *name;

	if (!stock_clist->selection) return;

	row = GPOINTER_TO_INT(stock_clist->selection->data);
	item = (PrefsDisplayItem *)gtk_clist_get_row_data(stock_clist, row);
	if (!item->allow_multiple) {
		gtk_clist_remove(stock_clist, row);
		if (stock_clist->rows == row)
			gtk_clist_select_row(stock_clist, row - 1, -1);
	}

	if (!shown_clist->selection)
		row = 0;
	else
		row = GPOINTER_TO_INT(shown_clist->selection->data);

	item->in_use = TRUE;

	name = gettext(item->label);
	row = gtk_clist_insert(shown_clist, row, (gchar **)&name);
	gtk_clist_set_row_data(shown_clist, row, item);

	prefs_display_items_set_sensitive(dialog);
}
static void
notify_cb (const char       *name,
	   XSettingsAction   action,
	   XSettingsSetting *setting,
	   void             *data)
{
  int row;
  char *text[4];
  
  switch (action)
    {
    case XSETTINGS_ACTION_NEW:
      text[NAME] = (char *)name;
      text[TYPE] = text[VALUE] = text[SERIAL] = "";
      row = gtk_clist_insert (GTK_CLIST (settings_clist), 0, text);
      gtk_clist_set_row_data_full (GTK_CLIST (settings_clist), row,
				   g_strdup (name), (GDestroyNotify)g_free);
      update_row (row, setting);
      break;
    case XSETTINGS_ACTION_CHANGED:
      row = find_row (name);
      update_row (row, setting);
      break;
    case XSETTINGS_ACTION_DELETED:
      row = find_row (name);
      gtk_clist_remove (GTK_CLIST (settings_clist), row);
      break;
    }
}
Ejemplo n.º 7
0
/**
 * Removes all references to the given node handle in the gui.
 */
void
nodes_gui_remove_node(const struct nid *node_id)
{
    GtkWidget *clist_nodes;
    gint row;

    clist_nodes = gui_main_window_lookup("clist_nodes");

    /*
     * Make sure node is remove from the "changed" hash table so
     * we don't try an update.
     */
    g_assert(NULL != hs_node_info_changed);
    g_assert(NULL != hs_node_flags_changed);

    remove_item(hs_node_info_changed, node_id);
    remove_item(hs_node_flags_changed, node_id);

	row = gtk_clist_find_row_from_data(GTK_CLIST(clist_nodes),
				deconstify_gpointer(node_id));
    if (row != -1) {
        gtk_clist_remove(GTK_CLIST(clist_nodes), row);
		nid_unref(node_id);
	} else {
        g_warning("%s(): no matching row found", G_STRFUNC);
	}
}
static void __verboser(const char *stuff, int opos, int replacelast, int complete)
{
	char *s2[2];
	struct timeval tv;
	int ms;
	s2[0] = (char *)stuff;
	s2[1] = NULL;
	gtk_clist_freeze(GTK_CLIST(verb));
	if (replacelast) 
		gtk_clist_remove(GTK_CLIST(verb), GTK_CLIST(verb)->rows - 1);
	gtk_clist_append(GTK_CLIST(verb), s2);
	if (!ast_tvzero(last)) {
		gdk_threads_leave();
		gettimeofday(&tv, NULL);
		if (cleanupid > -1)
			gtk_timeout_remove(cleanupid);
		ms = ast_tvdiff_ms(tv, last);
		if (ms < 100) {
			/* We just got a message within 100ms, so just schedule an update
			   in the near future */
			cleanupid = gtk_timeout_add(200, cleanup, NULL);
		} else {
			cleanup(&cleanupid);
		}
		last = tv;
	} else {
		gettimeofday(&last, NULL);
	}
}
Ejemplo n.º 9
0
static void imp_ldif_update_row( GtkCList *clist ) {
	Ldif_FieldRec *rec;
	gchar *text[ FIELDS_N_COLS ];
	gint row;

	if( impldif_dlg.rowIndSelect < 0 ) return;
	row = impldif_dlg.rowIndSelect;

	rec = gtk_clist_get_row_data( clist, row );
	text[ FIELD_COL_SELECT ] = "";
	text[ FIELD_COL_FIELD  ] = rec->tagName;
	text[ FIELD_COL_ATTRIB ] = rec->userName;

	gtk_clist_freeze( clist );
	gtk_clist_remove( clist, row );
	if( row == impldif_dlg.rowCount - 1 ) {
		gtk_clist_append( clist, text );
	}
	else {
		gtk_clist_insert( clist, row, text );
	}
	if( rec->selected )
		gtk_clist_set_pixmap( clist, row, FIELD_COL_SELECT, markxpm, markxpmmask );

	gtk_clist_set_row_data( clist, row, rec );
	gtk_clist_thaw( clist );
}
Ejemplo n.º 10
0
void
on_bt_dbdelete_clicked                 (GtkButton       *button,
                                        gpointer         user_data)
{
  GtkWidget *widget;

  if(selectedrow < 0)
    return;

  widget=lookup_widget( dialog_dbedit, "clist_satdb" );
  gtk_clist_remove(GTK_CLIST(widget), selectedrow);

  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();
}
Ejemplo n.º 11
0
void gui_delete_station(GtkButton *button, gpointer *userdata) {
  close_station_editor();
  if (gui_station_selected >= 0 && gui_station_selected < gui_station_count) {
    gtk_clist_remove(GTK_CLIST(gui_station_list), gui_station_selected);
    gui_station_selected = -1;
    gui_station_count--;
  }
}
Ejemplo n.º 12
0
static void
cb_delete(GtkWidget *widget)
{
  reset_entries();
  if (selected_row >= 0)
    {
      gtk_clist_remove(GTK_CLIST(reader_clist), selected_row);
      list_modified = TRUE;
      selected_row = -1;
    }
}
Ejemplo n.º 13
0
static void
editlist_gui_delete (GtkWidget * igad)
{
	int row;

	row = gtkutil_clist_selection (editlist_gui_list);
	if (row != -1)
	{
		gtk_clist_unselect_all (GTK_CLIST (editlist_gui_list));
		gtk_clist_remove (GTK_CLIST (editlist_gui_list), row);
	}
}
Ejemplo n.º 14
0
void remove_minilist_item(GtkWidget * button, gpointer data)
{
    struct fnlist *current, *to_free;
    struct slist_gui *the_gui = (struct slist_gui *) data;

    if (!the_gui) {
	NE_DEBUG(DEBUG_GNOME, "Warning! gui thingy was null.\n");
	return;
    }
    if (the_gui->chosen_row < 0)
	return;
    current = gtk_clist_get_row_data(GTK_CLIST(the_gui->list),
				     the_gui->chosen_row);
    gtk_clist_remove(GTK_CLIST(the_gui->list), the_gui->chosen_row);

    to_free = current;
    if (current->prev) {
	current->prev->next = current->next;
	if (current->next) {
	    current->next->prev = current->next->prev->prev;
	}
    } else {
	/* ick */
	/* Small memory leak alert */
	switch (the_gui->type) {
	case list_exclude:
	    selected_site->excludes = the_gui->data->next;
	    the_gui->data = selected_site->excludes;
	    NE_DEBUG(DEBUG_GNOME, "Removing an item from the excludes list.\n");
	    break;
	case list_ascii:
	    selected_site->asciis = the_gui->data->next;
	    the_gui->data = selected_site->asciis;
	    NE_DEBUG(DEBUG_GNOME, "Removing an item from the ASCIIs list.\n");
	    break;
	case list_ignore:
	    selected_site->ignores = the_gui->data->next;
	    the_gui->data = selected_site->ignores;
	    NE_DEBUG(DEBUG_GNOME, "Removing an item from the ignores list.\n");
	    break;
	default:
	    ;
	}
	if (the_gui->data)
	    the_gui->data->prev = NULL;
    }

    the_gui->chosen_row = -1;
    gtk_entry_set_text(GTK_ENTRY(the_gui->entry), "");
    free(to_free);
}
static void prefs_display_header_delete_cb(GtkButton *btn, gpointer clist_data)
{
    GtkCList *clist = GTK_CLIST(clist_data);
    DisplayHeaderProp *dp;
    gint row;

    if (!clist->selection) return;
    row = GPOINTER_TO_INT(clist->selection->data);

    dp = gtk_clist_get_row_data(clist, row);
    display_header_prop_free(dp);
    gtk_clist_remove(clist, row);
    prefs_common.disphdr_list =
        g_slist_remove(prefs_common.disphdr_list, dp);
}
Ejemplo n.º 16
0
void remove_breakpoint_by_row( int row )
{
	int i=0;
	uint32 address;
	
	address = (uint32) gtk_clist_get_row_data( GTK_CLIST(clBreakpoints), row);
	while(bp_addresses[i]!=address)
	{
		i++;
	}
	nb_breakpoints--;
	bp_addresses[i]=bp_addresses[nb_breakpoints];

	gtk_clist_remove( GTK_CLIST(clBreakpoints), row);
}
Ejemplo n.º 17
0
void
gradient_select_delete_all (gradient_t *gradient)
{
  GradientSelect *gsp; 
  GSList         *list;
  gint            row;

  for (list = gradient_active_dialogs; list; list = g_slist_next (list))
    {
      gsp = (GradientSelect *) list->data;
      
      row = gtk_clist_find_row_from_data (GTK_CLIST (gsp->clist), gradient);
      if (row > -1)
	gtk_clist_remove (GTK_CLIST (gsp->clist), row);
    }
}
Ejemplo n.º 18
0
void del_back_end_server(advertised_service *a, back_end_server *be){
   GList *l;
   gint i;

   extern GtkWidget *back_end_server_clist;

   _del_back_end_server(be);
   
   for(i=0,l=a->back_end_servers;l;l=l->next,i++){
      if(l->data==be){
         gtk_clist_select_row(GTK_CLIST(back_end_server_clist), i + 1, 0);
         gtk_clist_remove(GTK_CLIST(back_end_server_clist), i);
         break;
      }
   }
   a->back_end_servers = g_list_remove(a->back_end_servers, be);
}
Ejemplo n.º 19
0
void del_ipvs_server(advertised_service *a, ipvs_server *ipvs){
   GList *l;
   gint i;

   extern GtkWidget *ipvs_server_clist;

   _del_ipvs_server(ipvs);
   
   for(i=0,l=a->ipvs_servers;l;l=l->next,i++){
      if(l->data==ipvs){
         gtk_clist_select_row(GTK_CLIST(ipvs_server_clist), i + 1, 0);
         gtk_clist_remove(GTK_CLIST(ipvs_server_clist), i);
         break;
      }
   }
   a->ipvs_servers = g_list_remove(a->ipvs_servers, ipvs);
}
Ejemplo n.º 20
0
/*
 *Add a packet to the packet list
 */
void
packet_list_add(char *type, char *from, char *length)
{
  gchar *nfo[3] = { type, from, length };

  //if(!freeze_packets)
  //{
  if (packet_list_size >= MAXPACKS)
    gtk_clist_remove(GTK_CLIST(packet_list), MAXPACKS - 1);
  else
    packet_list_size++;

  gtk_clist_prepend(GTK_CLIST(packet_list), nfo);

  //}

}
Ejemplo n.º 21
0
void
filter(GtkWidget *file_list)
{
  gchar *text;
  gchar *type;
  gint i;

  gtk_clist_freeze (GTK_CLIST (file_list));
  for ( i = 0; gtk_clist_get_text (GTK_CLIST (file_list), i, 0, &text) ; i++) {
	type = strstr (text, ".pml");
	if (!type) {
		gtk_clist_remove (GTK_CLIST(file_list), i);
		i = -1;
 	}
  } 
  gtk_clist_thaw (GTK_CLIST (file_list));
}
Ejemplo n.º 22
0
/*
 *Remove a node from the list
 */
int
remove_nodes_list(union olsr_ip_addr *node)
{
  char *ip;
  char *in_ip = ip_to_string(node);
  int i;

  for (i = 0; i < node_list_size; i++) {
    gtk_clist_get_text(GTK_CLIST(node_list), i, 0, (gchar **) & ip);
    if (strcmp(in_ip, ip) == 0) {
      //printf("Found entry!\n");
      gtk_clist_remove(GTK_CLIST(node_list), i);
      node_list_size--;
      return 1;
    }
  }

  return 0;
}
Ejemplo n.º 23
0
void DownloadUI::RemoveItem(DownloadItem *dli)
{
    if (!dli || !m_List || !isVisible)
        return;

    int row = gtk_clist_find_row_from_data(GTK_CLIST(m_List), (gpointer)dli);

    if (row < 0)
        return;

    gtk_clist_remove(GTK_CLIST(m_List), row);

    vector<DownloadItem *>::iterator i = downloadList.begin();
    for (; i != downloadList.end(); i++) {
        if ((*i) == dli) 
            break;
    }
    if (i != downloadList.end())
        downloadList.erase(i);
}
Ejemplo n.º 24
0
void del_advertised_service(advertised_service *a){
   GList *l;
   gint i;

   extern GList *service;
   extern GtkWidget *advertised_service_clist;

   /* Delete back end servers */
   for(l=a->back_end_servers;l;l=l->next){
      _del_back_end_server((back_end_server *)l->data);
   }
   if(a->back_end_servers){
      g_list_free(a->back_end_servers);
   }

   /* Delete IPVS servers */
   for(l=a->ipvs_servers;l;l=l->next){
      _del_ipvs_server((ipvs_server *)l->data);
   }
   if(a->ipvs_servers){
      g_list_free(a->ipvs_servers);
   }

   /* Delete the rest of the advertised service */
   if(a->address){
      g_free(a->address);
   }
   if(a->port){
      g_free(a->port);
   }
   g_free(a);
   for(l=service,i=0;l;l=l->next,i++){
      if(l->data==a){
         gtk_clist_select_row(GTK_CLIST(advertised_service_clist), i + 1, 0);
         gtk_clist_remove(GTK_CLIST(advertised_service_clist), i);
         break;
      }
   }
   service = g_list_remove(service, a);
}
Ejemplo n.º 25
0
/*
 *Delete a node from the node list
 */
int
route_list_del(char *dest)
{
  int i = 0;
  char *ip;

  gtk_clist_freeze(GTK_CLIST(route_list));

  for (i = 0; i < route_list_size; i++) {
    gtk_clist_get_text(GTK_CLIST(route_list), i, 0, (gchar **) & ip);
    if (strcmp(dest, ip) == 0) {
      //printf("Found %d\n", i);
      gtk_clist_remove(GTK_CLIST(route_list), i);
      route_list_size--;
      gtk_clist_thaw(GTK_CLIST(route_list));
      return 1;
    }
  }

  gtk_clist_thaw(GTK_CLIST(route_list));
  return 0;
}
Ejemplo n.º 26
0
static void
file_list_cb(GtkWidget *widget, gint row, gint column,
	     GdkEventButton *event, gpointer data)
{
    gint	retval;
    gchar	*fname;

    if(event && (event->button == 3)) {
	if(event->type == GDK_2BUTTON_PRESS) {
	    gtk_clist_remove(GTK_CLIST(clist), row);
	}
	else {
	    return;
	}
    }
    retval = gtk_clist_get_text(GTK_CLIST(widget), row, 0, &fname);
    if(retval) {
	gtk_pipe_int_write(GTK_PLAY_FILE);
	gtk_pipe_string_write(fname);
	file_number_to_play=row;
    }
}
Ejemplo n.º 27
0
Archivo: fkeys.c Proyecto: n2i/xvnkb
static void
key_dialog_delete (GtkWidget * button, GtkCList * list)
{
	struct key_binding *kb, *cur, *last;
	int row = gtkutil_clist_selection ((GtkWidget *) list);

	if (row != -1)
	{
		kb = gtk_clist_get_row_data (list, row);
		cur = keys_root;
		last = NULL;
		while (cur)
		{
			if (cur == kb)
			{
				if (last)
					last->next = kb->next;
				else
					keys_root = kb->next;

				if (kb->data1)
					free (kb->data1);
				if (kb->data2)
					free (kb->data2);
				free (kb);
				gtk_clist_remove (list, row);
				return;
			}
			last = cur;
			cur = cur->next;
		}
		printf ("*** key_dialog_delete: couldn't find kb in list!\n");
		/*if (getenv ("XCHAT_DEBUG"))
			abort ();*/
	}
}
Ejemplo n.º 28
0
static void delete_pattern_callback (GtkWidget *widget, gpointer data) {
  GSList *link;
  struct player_pattern *pp;
  int row;

  debug(5,"delete_pattern_callback(widget=%x,data=%x)",widget,data);

  if (current_row < 0)
    return;

  link = g_slist_nth (curplrs, current_row);
  pp = (struct player_pattern *) link->data;

  curplrs = g_slist_remove_link (curplrs, link);
  if (pp->dirty)
    free_player_pattern (pp);

  row = current_row;
  current_row = -1;
  gtk_clist_remove (GTK_CLIST (pattern_clist), row);

  if (current_row < 0)
    pattern_clist_sync_selection ();
}
Ejemplo n.º 29
0
static void prefs_display_items_remove(GtkWidget *widget, gpointer data)
{
	PrefsDisplayItemsDialog *dialog = data;
	GtkCList *shown_clist = GTK_CLIST(dialog->shown_clist);
	PrefsDisplayItem *item;
	gint row;

	if (!shown_clist->selection) return;

	row = GPOINTER_TO_INT(shown_clist->selection->data);
	item = (PrefsDisplayItem *)gtk_clist_get_row_data(shown_clist, row);
	if (!item)
		return;
	gtk_clist_remove(shown_clist, row);
	if (shown_clist->rows == row)
		gtk_clist_select_row(shown_clist, row - 1, -1);

	if (!item->allow_multiple) {
		item->in_use = FALSE;
		prefs_display_items_update_available(dialog);
	}

	prefs_display_items_set_sensitive(dialog);
}
Ejemplo n.º 30
0
gint gw_plugin_settings_quick_search_btn_hide_click ( GtkButton *btn, GtkWidget *pane)
{
    gint result = -1;
    GtkCList *list_visible = NULL;
    GtkCList *list_hidden = NULL;
    gchar *text = NULL;
    GtkWindow *settings = NULL;
    gint row = -1;
    GWSettingsExplorerField **fields = NULL;
    GWSettingsExplorerField *field = NULL;


#ifdef GW_DEBUG_PLUGIN_SETTINGS_COMPONENT
    g_print ( "*** GW - %s (%d) :: %s()\n", __FILE__, __LINE__, __PRETTY_FUNCTION__);
#endif

    if ( pane != NULL)
    {
        list_visible = GTK_CLIST ( gtk_object_get_data ( GTK_OBJECT ( pane), GW_PLUGIN_SETTINGS_QUICK_SEARCH_LIST_VISIBLE));
        list_hidden = GTK_CLIST ( gtk_object_get_data ( GTK_OBJECT ( pane), GW_PLUGIN_SETTINGS_QUICK_SEARCH_LIST_HIDDEN));
        fields = (GWSettingsExplorerField**)gtk_object_get_data ( GTK_OBJECT ( pane), GW_PLUGIN_SETTINGS_QUICK_SEARCH_FIELDS_TABLE);

        if ( (list_visible != NULL) && (list_hidden != NULL) )
        {
            if ( list_visible->selection != NULL )
            {
                row = GPOINTER_TO_INT ( ((GList*)(list_visible->selection))->data);

                if ( row >= 0 )
                {
                    gtk_clist_freeze ( list_visible);
                    gtk_clist_freeze ( list_hidden);

                    /* Move the column to the hidden list. */
                    gtk_clist_get_text ( list_visible, row, 0, &text);
                    gtk_clist_append ( list_hidden, &text);
                    field = gw_settings_explorer_field_find_by_name ( fields, text);
                    if ( field != NULL )
                    {
#ifdef GW_DEBUG_PLUGIN_SETTINGS_COMPONENT
                        g_print ( "*** GW - %s (%d) :: %s() : %s is hidden now\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, field->name);
#endif

                        field->visible = FALSE;
                    }
                    gtk_clist_remove ( list_visible, row);

                    gtk_clist_thaw ( list_visible);
                    gtk_clist_thaw ( list_hidden);

                    if ( (settings = GTK_WINDOW ( gtk_object_get_data ( GTK_OBJECT ( pane), GW_PLUGIN_SETTINGS_WINDOW))) != NULL )
                    {
                        gw_settings_window_box_set_modified ( settings, TRUE);

                        result = 0;
                    }
                }
            }
        }
    }

    return result;
}