Ejemplo n.º 1
0
int
get_property_page (ThunarxProviderFactory* f,
		   GList *flist,
		   const char *class_name,
		   GtkWidget **pp,
		   char *title,
		   int tlen,
		   GtkWindow *win)
{
  GList *ps, *lp;

  ps = thunarx_provider_factory_list_providers(f, THUNARX_TYPE_PROPERTY_PAGE_PROVIDER);

  *pp = NULL;
  for (lp = ps; lp != NULL; lp = lp->next) {
    GList *pgs, *lpg;

    pgs = thunarx_property_page_provider_get_pages(lp->data, flist);
    for (lpg = pgs; lpg != NULL && *pp == NULL; lpg = lpg->next) {
      if (strncmp(class_name, G_OBJECT_TYPE_NAME(lpg->data), 256) == 0) {
	*pp = GTK_WIDGET(g_object_ref(lpg->data));
      }
    }

    g_list_foreach (pgs, (GFunc) g_object_ref_sink, NULL);
    g_list_foreach (pgs, (GFunc) g_object_unref, NULL);
    g_list_free (pgs);
  }

  g_list_foreach (ps, (GFunc) g_object_unref, NULL);
  g_list_free (ps);

  if (*pp != NULL)
    {
      if (g_list_length(flist) == 1)
	{
	  snprintf(title,
		   tlen,
		   "%s: %s",
		   gtk_label_get_text(GTK_LABEL(thunarx_property_page_get_label_widget(THUNARX_PROPERTY_PAGE(*pp)))),
		   thunarx_file_info_get_name(THUNARX_FILE_INFO(flist->data)));
      }
    else
      {
	snprintf(title,
		 tlen,
		 "%s",
		 gtk_label_get_text(GTK_LABEL(thunarx_property_page_get_label_widget(THUNARX_PROPERTY_PAGE(*pp)))));
      }

      /* Try to adjust some buttons to close the window on click */
      gtk_container_foreach (*pp, adjust_destroy, win);
    }

  return *pp != NULL;
}
Ejemplo n.º 2
0
static void
thunarx_property_page_get_property (GObject    *object,
                                    guint       prop_id,
                                    GValue     *value,
                                    GParamSpec *pspec)
{
  ThunarxPropertyPage *property_page = THUNARX_PROPERTY_PAGE (object);

  switch (prop_id)
    {
    case PROP_LABEL:
      g_value_set_string (value, thunarx_property_page_get_label (property_page));
      break;

    case PROP_LABEL_WIDGET:
      g_value_set_object (value, thunarx_property_page_get_label_widget (property_page));
      break;

    default:
      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
      break;
    }
}