void empathy_smiley_manager_add (EmpathySmileyManager *manager, const gchar *icon_name, const gchar *first_str, ...) { GdkPixbuf *pixbuf; va_list var_args; g_return_if_fail (EMPATHY_IS_SMILEY_MANAGER (manager)); g_return_if_fail (!TPAW_STR_EMPTY (icon_name)); g_return_if_fail (!TPAW_STR_EMPTY (first_str)); pixbuf = tpaw_pixbuf_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); if (pixbuf) { gchar *path; va_start (var_args, first_str); path = tpaw_filename_from_icon_name (icon_name, GTK_ICON_SIZE_MENU); smiley_manager_add_valist (manager, pixbuf, path, first_str, var_args); va_end (var_args); g_object_unref (pixbuf); g_free (path); } }
static gboolean model_find_name (EmpathyGroupsWidget *self, const gchar *name, GtkTreeIter *iter) { EmpathyGroupsWidgetPriv *priv = GET_PRIV (self); FindNameData data; if (TPAW_STR_EMPTY (name)) return FALSE; data.widget = self; data.name = name; data.found = FALSE; gtk_tree_model_foreach (GTK_TREE_MODEL (priv->group_store), (GtkTreeModelForeachFunc) model_find_name_foreach, &data); if (data.found == TRUE) { *iter = data.found_iter; return TRUE; } return FALSE; }
static void add_group_entry_changed_cb (GtkEditable *editable, EmpathyGroupsWidget *self) { EmpathyGroupsWidgetPriv *priv = GET_PRIV (self); GtkTreeIter iter; const gchar *group; group = gtk_entry_get_text (GTK_ENTRY (priv->add_group_entry)); if (model_find_name (self, group, &iter)) { gtk_widget_set_sensitive (GTK_WIDGET (priv->add_group_button), FALSE); } else { gtk_widget_set_sensitive (GTK_WIDGET (priv->add_group_button), !TPAW_STR_EMPTY (group)); } }
static void search_text_notify_cb (TpawLiveSearch *search, GParamSpec *pspec, TpawIrcNetworkChooserDialog *self) { GtkTreeIter filter_iter; gboolean sensitive = FALSE; gtk_tree_model_filter_refilter (self->priv->filter); /* Is there at least one network in the view ? */ if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->filter), &filter_iter)) { const gchar *text; text = tpaw_live_search_get_text ( TPAW_LIVE_SEARCH (self->priv->search)); if (!TPAW_STR_EMPTY (text)) { /* We are doing a search, select the first matching network */ select_iter (self, &filter_iter, TRUE); } else { /* Search has been cancelled. Scroll to the selected network */ GtkTreeSelection *selection; selection = gtk_tree_view_get_selection ( GTK_TREE_VIEW (self->priv->treeview)); if (gtk_tree_selection_get_selected (selection, NULL, &filter_iter)) scroll_to_iter (self, &filter_iter); } sensitive = TRUE; } gtk_widget_set_sensitive (self->priv->select_button, sensitive); }