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 )