Gtk2-Recent

 view release on metacpan or  search on metacpan

recent-files/egg-recent-view-gtk.c  view on Meta::CPAN


	g_object_class_install_property (object_class,
					 PROP_SHOW_NUMBERS,
					 g_param_spec_boolean ("show-numbers",
					   "Show Numbers",
					   "Whether or not to show numbers",
					   TRUE,
					   G_PARAM_READWRITE));

	g_object_class_install_property (object_class,
					 PROP_LABEL_WIDTH,
					 g_param_spec_int ("label-width",
					   "Label Width",
					   "The desired width of the menu label, in characters",
					   -1,
					   G_MAXINT,
					   DEFAULT_LABEL_WIDTH,
					   G_PARAM_READWRITE));

	klass->activate = NULL;
}

static void
egg_recent_view_init (EggRecentViewClass *iface)
{
	iface->do_get_model = egg_recent_view_gtk_get_model;
	iface->do_set_model = egg_recent_view_gtk_set_model;
}

static void
show_menus_changed_cb (GConfClient *client,
		       guint cnxn_id,
		       GConfEntry *entry,
		       EggRecentViewGtk *view)
{
	GConfValue *value;

	value = gconf_entry_get_value (entry);

	g_return_if_fail (value->type == GCONF_VALUE_BOOL);

	egg_recent_view_gtk_show_icons (view,
				gconf_value_get_bool (value));

}

static void
theme_changed_cb (GtkIconTheme *theme, EggRecentViewGtk *view)
{
	if (view->model != NULL)
		egg_recent_model_changed (view->model);
}

static void
egg_recent_view_gtk_init (EggRecentViewGtk * view)
{
	view->client = gconf_client_get_default ();

	view->show_icons =
		gconf_client_get_bool (view->client,
			"/desktop/gnome/interface/menus_have_icons",
			NULL);

	gconf_client_add_dir (view->client, "/desktop/gnome/interface",
			      GCONF_CLIENT_PRELOAD_NONE,
			      NULL);
	gconf_client_notify_add (view->client,
			"/desktop/gnome/interface/menus_have_icons",
			(GConfClientNotifyFunc)show_menus_changed_cb,
			view, NULL, NULL);


	view->leading_sep = FALSE;
	view->trailing_sep = FALSE;

	view->uid = egg_recent_util_get_unique_id ();
	view->theme = gtk_icon_theme_get_default ();
	g_signal_connect_object (view->theme, "changed",
				 G_CALLBACK (theme_changed_cb), view, 0);
	view->tooltips = gtk_tooltips_new ();
	g_object_ref (view->tooltips);
	gtk_object_sink (GTK_OBJECT (view->tooltips));
	view->tooltip_func = NULL;
	view->tooltip_func_data = NULL;

	view->icon_size = GTK_ICON_SIZE_MENU;

	view->label_width = DEFAULT_LABEL_WIDTH;
}

void
egg_recent_view_gtk_set_icon_size (EggRecentViewGtk *view,
				   GtkIconSize icon_size)
{
	if (view->icon_size != icon_size) {
		view->icon_size = icon_size;
		egg_recent_model_changed (view->model);
	} else {
		view->icon_size = icon_size;
	}
}

GtkIconSize
egg_recent_view_gtk_get_icon_size (EggRecentViewGtk *view)
{
	return view->icon_size;
}

void
egg_recent_view_gtk_show_icons (EggRecentViewGtk *view, gboolean show)
{
	view->show_icons = show;

	if (view->model)
		egg_recent_model_changed (view->model);
}

void
egg_recent_view_gtk_show_numbers (EggRecentViewGtk *view, gboolean show)
{
	view->show_numbers = show;

	if (view->model)
		egg_recent_model_changed (view->model);
}

void
egg_recent_view_gtk_set_tooltip_func (EggRecentViewGtk *view,



( run in 2.057 seconds using v1.01-cache-2.11-cpan-0bb4e1dffa6 )