00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef META_ICON_CACHE_H
00025 #define META_ICON_CACHE_H
00026
00027 #include "screen-private.h"
00028
00029 typedef struct _MetaIconCache MetaIconCache;
00030
00031 typedef enum
00032 {
00033
00034
00035
00036
00037 USING_NO_ICON,
00038 USING_FALLBACK_ICON,
00039 USING_KWM_WIN_ICON,
00040 USING_WM_HINTS,
00041 USING_NET_WM_ICON
00042 } IconOrigin;
00043
00044 struct _MetaIconCache
00045 {
00046 int origin;
00047 Pixmap prev_pixmap;
00048 Pixmap prev_mask;
00049 guint want_fallback : 1;
00050
00051 guint wm_hints_dirty : 1;
00052 guint kwm_win_icon_dirty : 1;
00053 guint net_wm_icon_dirty : 1;
00054 };
00055
00056 void meta_icon_cache_init (MetaIconCache *icon_cache);
00057 void meta_icon_cache_free (MetaIconCache *icon_cache);
00058 void meta_icon_cache_property_changed (MetaIconCache *icon_cache,
00059 MetaDisplay *display,
00060 Atom atom);
00061 gboolean meta_icon_cache_get_icon_invalidated (MetaIconCache *icon_cache);
00062
00063 gboolean meta_read_icons (MetaScreen *screen,
00064 Window xwindow,
00065 MetaIconCache *icon_cache,
00066 Pixmap wm_hints_pixmap,
00067 Pixmap wm_hints_mask,
00068 GdkPixbuf **iconp,
00069 int ideal_width,
00070 int ideal_height,
00071 GdkPixbuf **mini_iconp,
00072 int ideal_mini_width,
00073 int ideal_mini_height);
00074
00075 #endif
00076
00077
00078
00079