Beispiel #1
0
/**
 * gimp_page_selector_get_selected_pages:
 * @selector: Pointer to a #GimpPageSelector.
 * @n_selected_pages: Returns the number of selected pages.
 *
 * Returns: A sorted array of page numbers of selected pages. Use g_free() if
 *          you don't need the array any longer.
 *
 * Since: 2.4
 **/
gint *
gimp_page_selector_get_selected_pages (GimpPageSelector *selector,
                                       gint             *n_selected_pages)
{
    GimpPageSelectorPrivate *priv;
    GList                   *selected;
    GList                   *list;
    gint                    *array;
    gint                     i;

    g_return_val_if_fail (GIMP_IS_PAGE_SELECTOR (selector), NULL);
    g_return_val_if_fail (n_selected_pages != NULL, NULL);

    priv = GIMP_PAGE_SELECTOR_GET_PRIVATE (selector);

    selected = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->view));

    *n_selected_pages = g_list_length (selected);
    array = g_new0 (gint, *n_selected_pages);

    for (list = selected, i = 0; list; list = g_list_next (list), i++)
    {
        gint *indices = gtk_tree_path_get_indices (list->data);

        array[i] = indices[0];
    }

    qsort (array, *n_selected_pages, sizeof (gint),
           gimp_page_selector_int_compare);

    g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free);

    return array;
}
static CcBackgroundItem *
get_selected_item (CcBackgroundPanel *panel)
{
  CcBackgroundPanelPrivate *priv = panel->priv;
  GtkIconView *icon_view;
  GtkTreeIter iter;
  GtkTreeModel *model;
  GList *list;
  CcBackgroundItem *item;

  icon_view = GTK_ICON_VIEW (WID ("backgrounds-iconview"));
  item = NULL;
  list = gtk_icon_view_get_selected_items (icon_view);

  if (!list)
    return NULL;

  model = gtk_icon_view_get_model (icon_view);

  if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath*) list->data) == FALSE)
    goto bail;

  gtk_tree_model_get (model, &iter, 1, &item, -1);

bail:
  g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL);
  g_list_free (list);

  return item;
}
Beispiel #3
0
static void
ok_button_clicked_cb (GtkWidget  *widget,
		      DialogData *data)
{
	GList *list;

	list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (data->icon_view));
	if (list != NULL) {
		GtkTreePath  *path;
		GtkTreeModel *model;
		GtkTreeIter   iter;

		path = list->data;
		model = gtk_icon_view_get_model (GTK_ICON_VIEW (data->icon_view));
		if (gtk_tree_model_get_iter (model, &iter, path)) {
			GdkPixbuf *image;

			gtk_tree_model_get (model, &iter, IMAGE_COLUMN, &image, -1);
			goo_window_set_cover_image_from_pixbuf (data->window, image);

			g_object_unref (image);
		}

		g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
		g_list_free (list);
	}
}
static void
mud_connections_icon_select_cb(GtkIconView *view, MudConnections *conn)
{
    GList *selected =
	gtk_icon_view_get_selected_items(
	    GTK_ICON_VIEW(conn->priv->icon_dialog_view));
    GtkTreeIter iter;
    gchar *buf;

    if(g_list_length(selected) == 0)
	return;

    gtk_tree_model_get_iter(conn->priv->icon_dialog_view_model,
			    &iter, (GtkTreePath *)selected->data);
    gtk_tree_model_get(conn->priv->icon_dialog_view_model,
		       &iter, 0, &buf, -1);

    if(conn->priv->icon_current != NULL)
	g_free(conn->priv->icon_current);

    conn->priv->icon_current = g_strconcat(
	gtk_file_chooser_get_current_folder(
	    GTK_FILE_CHOOSER(conn->priv->icon_dialog_chooser)),
	G_DIR_SEPARATOR_S,
	buf, NULL);

    g_free(buf);

    g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL);
    g_list_free(selected);
}
Beispiel #5
0
void _fcitx_main_window_selection_changed_cb(GtkIconView* iconview, gpointer data)
{
    GtkTreeModel *model = gtk_icon_view_get_model(iconview);
    GtkTreeIter iter;
    ConfigPage* page;
    FcitxMainWindow* self = data;

    GList* list = gtk_icon_view_get_selected_items(iconview);

    if (list) {
        gchar* title;
        gtk_tree_model_get_iter(GTK_TREE_MODEL(self->pagestore), &iter, (GtkTreePath*)(list->data));
        gtk_tree_model_get(model, &iter,
                           PAGE_LIST_NAME, &title,
                           PAGE_LIST_PAGE, &page,
                           -1);

        gchar* text = g_strdup_printf("<b>%s</b>", title);
        gtk_label_set_markup(GTK_LABEL(self->pagelabel), text);
        g_free(text);
        g_free(title);

        if (self->lastpage)
            gtk_container_remove(GTK_CONTAINER(self->vbox), self->lastpage->page);
        gtk_box_pack_end(GTK_BOX(self->vbox), page->page, TRUE, TRUE, 0);
        gtk_widget_show_all(GTK_WIDGET(self));

        self->lastpage = page;
    }

    g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL);
    g_list_free (list);
}
Beispiel #6
0
/**
 * callback pour traiter les changements de sélection dans le GtkIconView
 *
 * \param le GtkIconView appellant
 *
 * \return
 *
 * */
void gsb_select_icon_selection_changed ( GtkIconView *icon_view,
                                         gpointer user_data )
{
    GList * liste;
    GtkTreePath *path;
    GtkTreeModel *model;
    GtkTreeIter iter;
    gchar *name_icon = NULL;

    liste = gtk_icon_view_get_selected_items ( GTK_ICON_VIEW ( icon_view ) );

    /* Could happen if selection is unset, exiting then. */
    if ( ! liste )
	return;

    path = liste -> data;

    model = gtk_icon_view_get_model ( GTK_ICON_VIEW ( icon_view ) );
    if (gtk_tree_model_get_iter ( GTK_TREE_MODEL (model), &iter, path ))
        gtk_tree_model_get (model, &iter, TEXT_COLUMN, &name_icon, -1);
    name_icon = my_strdelimit ( name_icon, "\n", "" );
    devel_debug ( name_icon );
    if ( name_icon && strlen ( name_icon ) > 0 )
    {
        new_icon = g_strconcat ( path_icon, G_DIR_SEPARATOR_S,
                                 name_icon, NULL );
        gtk_entry_set_text ( GTK_ENTRY (GTK_BIN (entry_text)->child ),
                                 new_icon );
        gtk_widget_set_sensitive (bouton_OK, TRUE );
    }
}
Beispiel #7
0
JNIEXPORT jlongArray JNICALL
Java_org_gnome_gtk_GtkIconView_gtk_1icon_1view_1get_1selected_1items
(
	JNIEnv* env,
	jclass cls,
	jlong _self
)
{
	GList* result;
	jlongArray _result;
	GtkIconView* self;

	// convert parameter self
	self = (GtkIconView*) _self;

	// call function
	result = gtk_icon_view_get_selected_items(self);

	// cleanup parameter self

	// translate return value to JNI type
	_result = (jlongArray) bindings_java_convert_glist_to_jarray(env, result);

	// and finally
	return _result;
}
Beispiel #8
0
/* Update selected project */
static void
on_druid_project_update_selected (GtkIconView* view, NPWDruid *druid)
{
	GList *selected;
	NPWHeader* header = NULL;

	/* No item can be selected when the view is mapped */
	selected = gtk_icon_view_get_selected_items (view);
	if (selected != NULL)
	{
		GtkTreeIter iter;
		GtkTreeModel *model;

		model = gtk_icon_view_get_model (view);
		if (gtk_tree_model_get_iter (model, &iter, (GtkTreePath *)selected->data))
		{
			gtk_tree_model_get	(model, &iter, DATA_COLUMN, &header, -1);
		}
		gtk_tree_path_free ((GtkTreePath *)selected->data);
		g_list_free (selected);
	}

	druid->header = header;
	gtk_assistant_set_page_complete (GTK_ASSISTANT (druid->window), druid->project_page, header != NULL);
}
static GList *
attachment_icon_view_get_selected_paths (EAttachmentView *view)
{
	GtkIconView *icon_view;

	icon_view = GTK_ICON_VIEW (view);

	return gtk_icon_view_get_selected_items (icon_view);
}
Beispiel #10
0
static VALUE
iview_get_selected_items(VALUE self)
{
    GList* list = gtk_icon_view_get_selected_items(_SELF(self));
    VALUE ret = GLIST2ARY2(list, GTK_TYPE_TREE_PATH);
    g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL);
    g_list_free(list);
    return ret;
}
Beispiel #11
0
/* A function that is called when the button for deleting the
 * selected images was clicked */
static void
del_image_call (GtkWidget *widget,
                gpointer   icon_view)
{
  GList                *list;
  GtkTreeRowReference **items;
  GtkTreePath          *item_path;
  GtkTreeIter           item;
  guint32               i;
  gpointer              temp;

  guint32               len;

  GdkPixbuf            *thumb;
  gchar*                name;

  dnd_remove = FALSE;

  list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));

  len = g_list_length (list);
  if (len > 0)
    {
      items = g_newa (GtkTreeRowReference*, len);

      for (i = 0; i < len; i++)
        {
          temp = g_list_nth_data (list, i);
          items[i] = gtk_tree_row_reference_new (model, temp);
          gtk_tree_path_free (temp);
        }
      g_list_free (list);

      for (i = 0; i < len; i++)
        {
          item_path = gtk_tree_row_reference_get_path (items[i]);
          gtk_tree_model_get_iter (model, &item, item_path);

          /* Get the data that should be freed */
          gtk_tree_model_get (model, &item,
                              THUMB, &thumb, IMAGE_NAME, &name, -1);

          /* Only after you have the pointers, remove them from the tree */
          gtk_list_store_remove (GTK_LIST_STORE (model), &item);

          /* Now you can free the data */
          g_object_unref(thumb);
          g_free (name);

          gtk_tree_path_free (item_path);
          gtk_tree_row_reference_free (items[i]);
          multi_page.image_count--;
        }

      g_free (items);
    }
Beispiel #12
0
static void
do_popup_menu (GtkWidget      *icon_list, 
	       GdkEventButton *event)
{
  GtkIconView *icon_view = GTK_ICON_VIEW (icon_list); 
  GtkWidget *menu;
  GtkWidget *menuitem;
  GtkTreePath *path = NULL;
  int button, event_time;
  ItemData *data;
  GList *list;

  if (event)
    path = gtk_icon_view_get_path_at_pos (icon_view, event->x, event->y);
  else
    {
      list = gtk_icon_view_get_selected_items (icon_view);

      if (list)
        {
          path = (GtkTreePath*)list->data;
          g_list_foreach (list->next, (GFunc) gtk_tree_path_free, NULL);
          g_list_free (list);
        }
    }

  if (!path)
    return;

  menu = gtk_menu_new ();

  data = g_new0 (ItemData, 1);
  data->icon_list = icon_view;
  data->path = path;
  g_object_set_data_full (G_OBJECT (menu), "item-path", data, (GDestroyNotify)free_item_data);

  menuitem = gtk_menu_item_new_with_label ("Activate");
  gtk_widget_show (menuitem);
  gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
  g_signal_connect (menuitem, "activate", G_CALLBACK (item_cb), data);

  if (event)
    {
      button = event->button;
      event_time = event->time;
    }
  else
    {
      button = 0;
      event_time = gtk_get_current_event_time ();
    }

  gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, NULL, 
                  button, event_time);
}
Beispiel #13
0
static void icon_view_select__(GtkIconView *view, const char* code3 = NULL, void* shangji = NULL, void* ce = NULL) {
	GtkTreeModel *model = gtk_icon_view_get_model (view);

	GList *list = gtk_icon_view_get_selected_items (view);
	if (list == NULL) return;

	for (GList *cur = g_list_first(list); cur != NULL; cur = g_list_next(cur)) {
		call_item__(get_id__(model, (GtkTreePath *)cur->data), code3 ? 2 : 0, code3, shangji, ce);
	}

	g_list_free (list);
}
Beispiel #14
0
static void
icon_view_selection_changed_cb (GtkIconView *icon_view,
				DialogData  *data)
{
	GList *list;

	list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (data->icon_view));
	gtk_widget_set_sensitive (GET_WIDGET ("ok_button"), list != NULL);

	g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
	g_list_free (list);
}
Beispiel #15
0
static void
gimp_page_selector_selection_changed (GtkIconView      *icon_view,
                                      GimpPageSelector *selector)
{
    GimpPageSelectorPrivate *priv = GIMP_PAGE_SELECTOR_GET_PRIVATE (selector);
    GList                   *selected;
    gint                     n_selected;
    gchar                   *range;

    selected = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->view));
    n_selected = g_list_length (selected);
    g_list_free_full (selected, (GDestroyNotify) gtk_tree_path_free);

    if (n_selected == 0)
    {
        gtk_label_set_text (GTK_LABEL (priv->count_label),
                            _("Nothing selected"));
    }
    else if (n_selected == 1)
    {
        gtk_label_set_text (GTK_LABEL (priv->count_label),
                            _("One page selected"));
    }
    else
    {
        gchar *text;

        if (n_selected == priv->n_pages)
            text = g_strdup_printf (ngettext ("%d page selected",
                                              "All %d pages selected", n_selected),
                                    n_selected);
        else
            text = g_strdup_printf (ngettext ("%d page selected",
                                              "%d pages selected",
                                              n_selected),
                                    n_selected);

        gtk_label_set_text (GTK_LABEL (priv->count_label), text);
        g_free (text);
    }

    range = gimp_page_selector_get_selected_range (selector);
    gtk_entry_set_text (GTK_ENTRY (priv->range_entry), range);
    g_free (range);

    gtk_editable_set_position (GTK_EDITABLE (priv->range_entry), -1);

    g_signal_emit (selector, selector_signals[SELECTION_CHANGED], 0);
}
Beispiel #16
0
void icon_item___::store_add__(callback_item___* si, GdkPixbuf *pixbuf, int posi) {
	switch(posi) {
	case -2: case -3:
	{
		GList *list = gtk_icon_view_get_selected_items (icon_view__());
		if (list) {
			GtkTreeModel *m = model__();
			int id_first = get_id__(m, (GtkTreePath *)(g_list_last(list)->data));
			int id_last = g_list_length(list) > 1 ? get_id__(m, (GtkTreePath *)(g_list_first(list)->data)) : id_first;
			/*for(GList *l = g_list_first(list); l; l = g_list_next(l)) {
				int id = get_id__(m, (GtkTreePath *)l->data);
				cout << id << endl;
			}*/
			g_list_free (list);

			GtkTreeIter i;
			if (gtk_tree_model_get_iter_first(m, &i)) {
				int posi2 = posi;
				for(int i2 = 1;; i2++) {
					int id = 0;
					gtk_tree_model_get(m, &i, ID_COLUMN, &id, -1);
					if(posi == -3) {
						if(id == id_first) {
							posi2 = i2 - 1;
							break;
						}
					} else {
						if(id == id_last) {
							posi2 = i2;
							break;
						}
					}
					if(!gtk_tree_model_iter_next(m, &i))
						break;
				}
				posi = posi2;
			}
		}
		break;
	}
	}
	GtkTreeIter iter;
	gtk_list_store_insert (store_, &iter, posi);
	gtk_list_store_set (store_, &iter,
			ID_COLUMN, si->id_,
			PIXBUF_COLUMN, pixbuf,
			TITLE_COLUMN, si->title_.c_str(),
			-1);
}
Beispiel #17
0
char *
cheese_thumb_view_get_selected_image (CheeseThumbView *thumb_view)
{
  GList *list;
  char  *filename = NULL;

  list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (thumb_view));
  if (list)
  {
    filename = cheese_thumb_view_get_url_from_path (thumb_view, (GtkTreePath *) list->data);
    g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
    g_list_free (list);
  }

  return filename;
}
/**
 * ppg_add_instrument_dialog_selection_changed:
 * @dialog: (in): A #PpgAddInstrumentDialog.
 *
 * Handle the "selection-changed" signal of @icon_view. If there is only one
 * item available in the model, then it is selected.
 *
 * Returns: None.
 * Side effects: None.
 */
static void
ppg_add_instrument_dialog_selection_changed (GtkWidget              *icon_view,
                                             PpgAddInstrumentDialog *dialog)
{
	PpgAddInstrumentDialogPrivate *priv;
	GList *list;

	g_return_if_fail(PPG_IS_ADD_INSTRUMENT_DIALOG(dialog));

	priv = dialog->priv;

	list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(icon_view));
	gtk_widget_set_sensitive(priv->add_button, !!list);
	g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL);
	g_list_free(list);
}
Beispiel #19
0
static void
cheese_thumb_view_on_drag_data_get_cb (GtkIconView      *thumb_view,
                                       GdkDragContext   *drag_context,
                                       GtkSelectionData *data,
                                       guint             info,
                                       guint             time,
                                       gpointer          user_data)
{
  GList        *list, *l;
  GtkTreeIter   iter;
  GtkTreeModel *model;
  char         *str;
  char         *uris = NULL;
  char         *tmp_str;

  list  = gtk_icon_view_get_selected_items (thumb_view);
  model = gtk_icon_view_get_model (thumb_view);

  for (l = list; l != NULL; l = l->next)
  {
    gtk_tree_model_get_iter (model, &iter, l->data);
    gtk_tree_model_get (model, &iter, 1, &str, -1);
    gtk_tree_path_free (l->data);

    /* we always store local paths in the model, but DnD
     * needs URIs, so we must add file:// to the path.
     */

    /* build the "text/uri-list" string */
    if (uris)
    {
      tmp_str = g_strconcat (uris, "file://", str, "\r\n", NULL);
      g_free (uris);
    }
    else
    {
      tmp_str = g_strconcat ("file://", str, "\r\n", NULL);
    }
    uris = tmp_str;

    g_free (str);
  }
  gtk_selection_data_set (data, gtk_selection_data_get_target (data),
                          8, (guchar *) uris, strlen (uris));
  g_free (uris);
  g_list_free (list);
}
Beispiel #20
0
static void
mud_connections_properties_cb(GtkWidget *widget, MudConnections *conn)
{
    GList *selected =
	gtk_icon_view_get_selected_items(
	    GTK_ICON_VIEW(conn->priv->iconview));
    GtkTreeIter iter;
    gchar *buf;

    if(g_list_length(selected) == 0)
	return;

    gtk_tree_model_get_iter(conn->priv->icon_model, &iter,
			    (GtkTreePath *)selected->data);
    gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1);

    mud_connections_show_properties(conn, buf);
}
static gchar *
theme_get_selected_name (GtkIconView *icon_view, AppearanceData *data)
{
  gchar *name = NULL;
  GList *selected = gtk_icon_view_get_selected_items (icon_view);

  if (selected) {
    GtkTreePath *path = selected->data;
    GtkTreeModel *model = gtk_icon_view_get_model (icon_view);
    GtkTreeIter iter;

    if (gtk_tree_model_get_iter (model, &iter, path))
      gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);

    g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL);
    g_list_free (selected);
  }

  return name;
}
Beispiel #22
0
static void
mud_connections_popup(MudConnections *conn, GdkEventButton *event)
{
    GladeXML *glade;
    GtkWidget *popup;
    GList *selected =
	gtk_icon_view_get_selected_items(
	    GTK_ICON_VIEW(conn->priv->iconview));

    if(g_list_length(selected) == 0)
	return;

    glade = glade_xml_new(GLADEDIR "/muds.glade", "popupmenu", NULL);
    popup = glade_xml_get_widget(glade, "popupmenu");

    g_signal_connect(glade_xml_get_widget(glade, "connect"), "activate",
		     G_CALLBACK(mud_connections_connect_cb),
		     conn);
    g_signal_connect(glade_xml_get_widget(glade, "add"), "activate",
		     G_CALLBACK(mud_connections_add_cb),
		     conn);
    g_signal_connect(glade_xml_get_widget(glade, "delete"), "activate",
		     G_CALLBACK(mud_connections_delete_cb),
		     conn);
    g_signal_connect(glade_xml_get_widget(glade, "properties"), "activate",
		     G_CALLBACK(mud_connections_properties_cb),
		     conn);

    g_object_unref(glade);

    gtk_menu_attach_to_widget(GTK_MENU(popup), conn->priv->iconview,
			      NULL);
    gtk_widget_show_all(popup);
    gtk_menu_popup(GTK_MENU(popup), NULL, NULL, NULL, NULL,
		   event ? event->button : 0,
		   event ? event->time : gtk_get_current_event_time());

    g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL);
    g_list_free(selected);
}
static void
theme_selection_changed_cb (GtkWidget *icon_view, AppearanceData *data)
{
  GList *selection;
  MateThemeMetaInfo *theme = NULL;
  gboolean is_custom = FALSE;

  selection = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (icon_view));

  if (selection) {
    GtkTreeModel *model;
    GtkTreeIter iter;
    gchar *name;

    model = gtk_icon_view_get_model (GTK_ICON_VIEW (icon_view));
    gtk_tree_model_get_iter (model, &iter, selection->data);
    gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);

    is_custom = !strcmp (name, CUSTOM_THEME_NAME);

    if (is_custom)
      theme = data->theme_custom;
    else
      theme = mate_theme_meta_info_find (name);

    if (theme) {
      mate_meta_theme_set (theme);
      theme_message_area_update (data);
    }

    g_free (name);
    g_list_foreach (selection, (GFunc) gtk_tree_path_free, NULL);
    g_list_free (selection);
  }

  gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_delete"),
			    theme_is_writable (theme));
  gtk_widget_set_sensitive (appearance_capplet_get_widget (data, "theme_save"), is_custom);
}
Beispiel #24
0
static void
foreach_selected_remove (GtkWidget *button, GtkIconView *icon_list)
{
  GtkTreeIter iter;
  GtkTreeModel *model;

  GList *list, *selected;

  selected = gtk_icon_view_get_selected_items (icon_list);
  model = gtk_icon_view_get_model (icon_list);
  
  for (list = selected; list; list = list->next)
    {
      GtkTreePath *path = list->data;

      gtk_tree_model_get_iter (model, &iter, path);
      gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
      
      gtk_tree_path_free (path);
    } 
  
  g_list_free (selected);
}
/**
 * ppg_add_instrument_dialog_response:
 * @dialog: (in): A #PpgAddInstrumentDialog.
 * @response_id: (in): The dialog response id.
 *
 * Handle the "response" signal for the dialog. If @response_id is
 * GTK_RESPONSE_OK, then the currently selected item is added to the session.
 *
 * The signal is also blocked if it was handled.
 *
 * Returns: None.
 * Side effects: None.
 */
static void
ppg_add_instrument_dialog_response (PpgAddInstrumentDialog *dialog,
                                    gint                    response_id,
                                    gpointer                user_data)
{
	PpgAddInstrumentDialogPrivate *priv;
	GList *list;

	g_return_if_fail(PPG_IS_ADD_INSTRUMENT_DIALOG(dialog));

	priv = dialog->priv;

	if (response_id == GTK_RESPONSE_OK) {
		g_signal_stop_emission_by_name(dialog, "response");
		list = gtk_icon_view_get_selected_items(GTK_ICON_VIEW(priv->icon_view));
		if (list) {
			gtk_icon_view_item_activated(GTK_ICON_VIEW(priv->icon_view),
			                             list->data);
		}
		g_list_foreach(list, (GFunc)gtk_tree_path_free, NULL);
		g_list_free(list);
		gtk_widget_grab_focus(priv->entry);
	}
}
static void
theme_delete_cb (GtkWidget *button, AppearanceData *data)
{
  GtkIconView *icon_view = GTK_ICON_VIEW (appearance_capplet_get_widget (data, "theme_list"));
  GList *selected = gtk_icon_view_get_selected_items (icon_view);

  if (selected) {
    GtkTreePath *path = selected->data;
    GtkTreeModel *model = gtk_icon_view_get_model (icon_view);
    GtkTreeIter iter;
    gchar *name = NULL;

    if (gtk_tree_model_get_iter (model, &iter, path))
      gtk_tree_model_get (model, &iter, COL_NAME, &name, -1);

    if (name != NULL &&
        strcmp (name, data->theme_custom->name) &&
        theme_delete (name, THEME_TYPE_META)) {
      /* remove theme from the model, too */
      GtkTreeIter child;

      if (gtk_tree_model_iter_next (model, &iter) ||
          theme_model_iter_last (model, &iter))
        theme_select_iter (icon_view, &iter);

      gtk_tree_model_get_iter (model, &iter, path);
      gtk_tree_model_sort_convert_iter_to_child_iter (
          GTK_TREE_MODEL_SORT (model), &child, &iter);
      gtk_list_store_remove (data->theme_store, &child);
    }

    g_list_foreach (selected, (GFunc) gtk_tree_path_free, NULL);
    g_list_free (selected);
    g_free (name);
  }
}
static MateWPItem* get_selected_item(AppearanceData* data, GtkTreeIter* iter)
{
	MateWPItem* item = NULL;
	GList* selected;

	selected = gtk_icon_view_get_selected_items (data->wp_view);

	if (selected != NULL)
	{
		GtkTreeIter sel_iter;

		gtk_tree_model_get_iter(data->wp_model, &sel_iter, selected->data);

		g_list_foreach(selected, (GFunc) gtk_tree_path_free, NULL);
		g_list_free(selected);

		if (iter)
			*iter = sel_iter;

		gtk_tree_model_get(data->wp_model, &sel_iter, 1, &item, -1);
	}

	return item;
}
Beispiel #28
0
GList *
cheese_thumb_view_get_selected_images_list (CheeseThumbView *thumb_view)
{
  GList *l, *item;
  GList *list = NULL;
  GFile *file;

  GtkTreePath *path;

  l = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (thumb_view));

  for (item = l; item != NULL; item = item->next)
  {
    path = (GtkTreePath *) item->data;
    file = g_file_new_for_path (cheese_thumb_view_get_url_from_path (thumb_view, path));
    list = g_list_prepend (list, file);
    gtk_tree_path_free (path);
  }

  g_list_free (l);
  list = g_list_reverse (list);

  return list;
}
Beispiel #29
0
static void
mud_connections_delete_cb(GtkWidget *widget, MudConnections *conn)
{
    GList *selected =
	gtk_icon_view_get_selected_items(
	    GTK_ICON_VIEW(conn->priv->iconview));
    GtkTreeIter iter;
    gchar *buf, *mud_name, *key, *strip_name,
          *strip_char_name,  *char_name;
    gchar **mud_tuple;
    gint len;
    GConfClient *client = gconf_client_get_default();

    if(g_list_length(selected) == 0)
	return;

    char_name = strip_name = NULL;

    gtk_tree_model_get_iter(conn->priv->icon_model, &iter,
			    (GtkTreePath *)selected->data);
    gtk_tree_model_get(conn->priv->icon_model, &iter, 0, &buf, -1);
	
    mud_tuple = g_strsplit(buf, "\n", -1);
    g_free(buf);

    len = g_strv_length(mud_tuple);

    switch(len)
    {
        /* Delete Mud */
        case 1:
            mud_name = g_strdup(mud_tuple[0]);
            break;

        /* Delete Character */
        case 2:
            char_name = g_strdup(mud_tuple[0]);
            mud_name = g_strdup(mud_tuple[1]);
            break;

        default:
            g_warning("Malformed mud name passed to delete.");
            return;
    }

    if(!mud_connections_delete_confirm(mud_tuple[0]))
    {
        g_free(mud_name);

        if(char_name)
            g_free(char_name);

        g_strfreev(mud_tuple);
        g_object_unref(client);

        g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL);
        g_list_free(selected);

        return;
    }

    g_strfreev(mud_tuple);

    if(len == 1)
    {
        strip_name = gconf_escape_key(mud_name, -1);
        
        key = g_strdup_printf("/apps/gnome-mud/muds/%s", strip_name);
        gconf_client_recursive_unset(client, key, 0, NULL);
        
        g_free(key);
        
        gconf_client_suggest_sync(client, NULL);
    }
    else if(len == 2)
    {
        strip_name = gconf_escape_key(mud_name, -1);
        strip_char_name = gconf_escape_key(char_name, -1);

        key = g_strdup_printf("/apps/gnome-mud/muds/%s/characters/%s",
                strip_name, strip_char_name);

        gconf_client_recursive_unset(client, key, 0, NULL);

        g_free(key);
        g_free(strip_char_name);
        g_free(char_name);

        gconf_client_suggest_sync(client, NULL);
    }

    g_free(mud_name);
    g_free(strip_name);
    g_object_unref(client);

    g_list_foreach(selected, (GFunc)gtk_tree_path_free, NULL);
    g_list_free(selected);
}
Beispiel #30
0
static void
ok_clicked_cb (GtkWidget  *widget,
	       DialogData *data)
{
	char            *s_value;
	GFile           *destination;
	int              i_value;
	const char      *header;
	const char      *footer;
	const char      *image_page_header;
	const char      *image_page_footer;
	char            *thumbnail_caption;
	char            *image_attributes;
	GtkTreeIter      iter;
	char            *theme_name;
	GthFileDataSort *sort_type;
	GthTask         *task;

	/* save the options */

	s_value = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton")));
	destination = g_file_new_for_uri (s_value);
	_g_settings_set_uri (data->settings, PREF_WEBALBUMS_DESTINATION, s_value);
	g_free (s_value);

	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_COPY_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("copy_images_checkbutton"))));
	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_RESIZE_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("resize_images_checkbutton"))));

	i_value = gtk_combo_box_get_active (GTK_COMBO_BOX (GET_WIDGET ("resize_images_combobox")));
	g_settings_set_int (data->settings, PREF_WEBALBUMS_RESIZE_WIDTH, ImageSizeValues[i_value].width);
	g_settings_set_int (data->settings, PREF_WEBALBUMS_RESIZE_HEIGHT, ImageSizeValues[i_value].height);

	g_settings_set_int (data->settings, PREF_WEBALBUMS_IMAGES_PER_INDEX, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (GET_WIDGET ("images_per_index_spinbutton"))));
	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_SINGLE_INDEX, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("single_index_checkbutton"))));
	g_settings_set_int (data->settings, PREF_WEBALBUMS_COLUMNS, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (GET_WIDGET ("cols_spinbutton"))));
	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ADAPT_TO_WIDTH, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("adapt_column_checkbutton"))));

	if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (GET_WIDGET ("sort_combobox")), &iter)) {
		GthFileDataSort *sort_type;

		gtk_tree_model_get (GTK_TREE_MODEL (GET_WIDGET ("sort_liststore")),
				    &iter,
				    SORT_TYPE_COLUMN_DATA, &sort_type,
				    -1);
		g_settings_set_string (data->settings, PREF_WEBALBUMS_SORT_TYPE, sort_type->name);
	}

	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_SORT_INVERSE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("reverse_order_checkbutton"))));

	header = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("header_entry")));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_HEADER, header);

	footer = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("footer_entry")));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_FOOTER, footer);

	image_page_header = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("image_page_header_entry")));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_PAGE_HEADER, image_page_header);

	image_page_footer = gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("image_page_footer_entry")));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_PAGE_FOOTER, image_page_footer);

	theme_name = NULL;
	{
		GList *list;

		list = gtk_icon_view_get_selected_items (GTK_ICON_VIEW (GET_WIDGET ("theme_iconview")));
		if (list != NULL) {
			GtkTreePath *path;
			GtkTreeIter  iter;

			path = g_list_first (list)->data;
			gtk_tree_model_get_iter (GTK_TREE_MODEL (GET_WIDGET ("theme_liststore")), &iter, path);
			gtk_tree_model_get (GTK_TREE_MODEL (GET_WIDGET ("theme_liststore")), &iter,
					    THEME_COLUMN_NAME, &theme_name,
					    -1);
		}

		g_list_foreach (list, (GFunc) gtk_tree_path_free, NULL);
		g_list_free (list);
	}
	g_return_if_fail (theme_name != NULL);
	g_settings_set_string (data->settings, PREF_WEBALBUMS_THEME, theme_name);

	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_THUMBNAIL_CAPTION, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("thumbnail_caption_checkbutton"))));

	thumbnail_caption = gth_metadata_chooser_get_selection (GTH_METADATA_CHOOSER (data->thumbnail_caption_chooser));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_THUMBNAIL_CAPTION, thumbnail_caption);

	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_IMAGE_ATTRIBUTES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_attributes_checkbutton"))));

	g_settings_set_boolean (data->settings, PREF_WEBALBUMS_ENABLE_IMAGE_DESCRIPTION, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_description_checkbutton"))));

	image_attributes = gth_metadata_chooser_get_selection (GTH_METADATA_CHOOSER (data->image_attributes_chooser));
	g_settings_set_string (data->settings, PREF_WEBALBUMS_IMAGE_ATTRIBUTES, image_attributes);

	/* exec the task */

	task = gth_web_exporter_new (data->browser, data->file_list);

	gth_web_exporter_set_header (GTH_WEB_EXPORTER (task), header);
	gth_web_exporter_set_footer (GTH_WEB_EXPORTER (task), footer);
	gth_web_exporter_set_image_page_header (GTH_WEB_EXPORTER (task), image_page_header);
	gth_web_exporter_set_image_page_footer (GTH_WEB_EXPORTER (task), image_page_footer);
	gth_web_exporter_set_style (GTH_WEB_EXPORTER (task), theme_name);
	gth_web_exporter_set_destination (GTH_WEB_EXPORTER (task), destination);
	gth_web_exporter_set_copy_images (GTH_WEB_EXPORTER (task),
					  g_settings_get_boolean (data->settings, PREF_WEBALBUMS_COPY_IMAGES));
	gth_web_exporter_set_resize_images (GTH_WEB_EXPORTER (task),
					    g_settings_get_boolean (data->settings, PREF_WEBALBUMS_RESIZE_IMAGES),
					    g_settings_get_int (data->settings, PREF_WEBALBUMS_RESIZE_WIDTH),
					    g_settings_get_int (data->settings, PREF_WEBALBUMS_RESIZE_HEIGHT));

	s_value = g_settings_get_string (data->settings, PREF_WEBALBUMS_SORT_TYPE);
	sort_type = gth_main_get_sort_type (s_value);
	gth_web_exporter_set_sort_order (GTH_WEB_EXPORTER (task),
					 sort_type,
					 g_settings_get_boolean (data->settings, PREF_WEBALBUMS_SORT_INVERSE));
	g_free (s_value);

	gth_web_exporter_set_images_per_index (GTH_WEB_EXPORTER (task),
					       g_settings_get_int (data->settings, PREF_WEBALBUMS_IMAGES_PER_INDEX));
	gth_web_exporter_set_single_index (GTH_WEB_EXPORTER (task),
					   g_settings_get_boolean (data->settings, PREF_WEBALBUMS_SINGLE_INDEX));
	gth_web_exporter_set_columns (GTH_WEB_EXPORTER (task),
				      g_settings_get_int (data->settings, PREF_WEBALBUMS_COLUMNS));
	gth_web_exporter_set_adapt_to_width (GTH_WEB_EXPORTER (task),
					     g_settings_get_boolean (data->settings, PREF_WEBALBUMS_ADAPT_TO_WIDTH));
	gth_web_exporter_set_thumbnail_caption (GTH_WEB_EXPORTER (task),
						gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("thumbnail_caption_checkbutton"))) ? thumbnail_caption : "");
	gth_web_exporter_set_image_attributes (GTH_WEB_EXPORTER (task),
					       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_description_checkbutton"))),
					       gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("image_attributes_checkbutton"))) ? image_attributes : "");

	gth_browser_exec_task (data->browser, task, FALSE);
	gtk_widget_destroy (data->dialog);

	g_object_unref (task);
	g_free (image_attributes);
	g_free (thumbnail_caption);
	g_free (theme_name);
	g_object_unref (destination);
}