1 #ifndef NAUTILUS_ICON_INFO_H
2 #define NAUTILUS_ICON_INFO_H
4 #include <glib-object.h>
5 #include <gdk-pixbuf/gdk-pixbuf.h>
6 #include <gdk/gdktypes.h>
12 /* Names for Nautilus's different zoom levels, from tiniest items to largest items */
14 NAUTILUS_ZOOM_LEVEL_SMALLEST
,
15 NAUTILUS_ZOOM_LEVEL_SMALLER
,
16 NAUTILUS_ZOOM_LEVEL_SMALL
,
17 NAUTILUS_ZOOM_LEVEL_STANDARD
,
18 NAUTILUS_ZOOM_LEVEL_LARGE
,
19 NAUTILUS_ZOOM_LEVEL_LARGER
,
20 NAUTILUS_ZOOM_LEVEL_LARGEST
23 /* Nominal icon sizes for each Nautilus zoom level.
24 * This scheme assumes that icons are designed to
25 * fit in a square space, though each image needn't
26 * be square. Since individual icons can be stretched,
27 * each icon is not constrained to this nominal size.
29 #define NAUTILUS_ICON_SIZE_SMALLEST 16
30 #define NAUTILUS_ICON_SIZE_SMALLER 24
31 #define NAUTILUS_ICON_SIZE_SMALL 32
32 #define NAUTILUS_ICON_SIZE_STANDARD 48
33 #define NAUTILUS_ICON_SIZE_LARGE 72
34 #define NAUTILUS_ICON_SIZE_LARGER 96
35 #define NAUTILUS_ICON_SIZE_LARGEST 192
37 /* Maximum size of an icon that the icon factory will ever produce */
38 #define NAUTILUS_ICON_MAXIMUM_SIZE 320
40 typedef struct _NautilusIconInfo NautilusIconInfo
;
41 typedef struct _NautilusIconInfoClass NautilusIconInfoClass
;
44 #define NAUTILUS_TYPE_ICON_INFO (nautilus_icon_info_get_type ())
45 #define NAUTILUS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NAUTILUS_TYPE_ICON_INFO, NautilusIconInfo))
46 #define NAUTILUS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NAUTILUS_TYPE_ICON_INFO, NautilusIconInfoClass))
47 #define NAUTILUS_IS_ICON_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NAUTILUS_TYPE_ICON_INFO))
48 #define NAUTILUS_IS_ICON_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NAUTILUS_TYPE_ICON_INFO))
49 #define NAUTILUS_ICON_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NAUTILUS_TYPE_ICON_INFO, NautilusIconInfoClass))
52 GType
nautilus_icon_info_get_type (void) G_GNUC_CONST
;
54 NautilusIconInfo
* nautilus_icon_info_new_for_pixbuf (GdkPixbuf
*pixbuf
);
55 NautilusIconInfo
* nautilus_icon_info_lookup (GIcon
*icon
,
57 NautilusIconInfo
* nautilus_icon_info_lookup_from_name (const char *name
,
59 GdkPixbuf
* nautilus_icon_info_get_pixbuf (NautilusIconInfo
*icon
);
60 GdkPixbuf
* nautilus_icon_info_get_pixbuf_nodefault (NautilusIconInfo
*icon
);
61 GdkPixbuf
* nautilus_icon_info_get_pixbuf_nodefault_at_size (NautilusIconInfo
*icon
,
63 GdkPixbuf
* nautilus_icon_info_get_pixbuf_at_size (NautilusIconInfo
*icon
,
65 gboolean
nautilus_icon_info_get_embedded_rect (NautilusIconInfo
*icon
,
66 GdkRectangle
*rectangle
);
67 gboolean
nautilus_icon_info_get_attach_points (NautilusIconInfo
*icon
,
70 G_CONST_RETURN
char *nautilus_icon_info_get_display_name (NautilusIconInfo
*icon
);
71 G_CONST_RETURN
char *nautilus_icon_info_get_used_name (NautilusIconInfo
*icon
);
73 void nautilus_icon_info_clear_caches (void);
75 /* Relationship between zoom levels and icons sizes. */
76 guint
nautilus_get_icon_size_for_zoom_level (NautilusZoomLevel zoom_level
);
77 float nautilus_get_relative_icon_size_for_zoom_level (NautilusZoomLevel zoom_level
);
79 guint
nautilus_icon_get_larger_icon_size (guint size
);
80 guint
nautilus_icon_get_smaller_icon_size (guint size
);
82 gint
nautilus_get_icon_size_for_stock_size (GtkIconSize size
);
83 char *nautilus_icon_get_emblem_icon_by_name (const char *emblem_name
);
84 guint
nautilus_icon_get_emblem_size_for_icon_size (guint size
);
89 #endif /* NAUTILUS_ICON_INFO_H */