Example #1
0
static void
gimp_container_combo_box_remove_item (GimpContainerView *view,
                                      GimpViewable      *viewable,
                                      gpointer           insert_data)
{
  GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX (view));
  GtkTreeIter  *iter  = insert_data;

  if (iter)
    {
      gtk_list_store_remove (GTK_LIST_STORE (model), iter);

      /*  If the store is now empty, clear out renderers from all cells
       *  so that they don't reference the viewables.  See bug #149906.
       */
      if (gtk_tree_model_iter_n_children (model, NULL) == 0)
        {
          g_object_set (GIMP_CONTAINER_COMBO_BOX (view)->viewable_renderer,
                        "renderer", NULL,
                        NULL);

          gtk_widget_set_sensitive (GTK_WIDGET (view), FALSE);
        }
    }
}
Example #2
0
static gpointer
gimp_container_combo_box_insert_item (GimpContainerView *view,
                                      GimpViewable      *viewable,
                                      gint               index)
{
  GtkTreeModel *model = gtk_combo_box_get_model (GTK_COMBO_BOX (view));
  GtkTreeIter   iter;

  if (index == -1)
    gtk_list_store_append (GTK_LIST_STORE (model), &iter);
  else
    gtk_list_store_insert (GTK_LIST_STORE (model), &iter, index);

  if (gtk_tree_model_iter_n_children (model, NULL) == 1)
    {
      /*  GimpContainerViews don't select items by default  */
      gtk_combo_box_set_active (GTK_COMBO_BOX (view), -1);

      gtk_widget_set_sensitive (GTK_WIDGET (view), TRUE);
    }

  gimp_container_combo_box_set (GIMP_CONTAINER_COMBO_BOX (view),
                                &iter, viewable);

  return gtk_tree_iter_copy (&iter);
}
static void
gimp_container_combo_box_get_property (GObject    *object,
                                       guint       property_id,
                                       GValue     *value,
                                       GParamSpec *pspec)
{
  GimpContainerComboBox *combo = GIMP_CONTAINER_COMBO_BOX (object);

  switch (property_id)
    {
    case PROP_ELLIPSIZE:
      g_object_get_property (G_OBJECT (combo->text_renderer),
                             pspec->name, value);
      break;

    default:
      gimp_container_view_get_property (object, property_id, value, pspec);
      break;
    }
}