00001
00002
00003 #ifndef _LIBGNOMEUIMM_ICON_LOOKUP_H
00004 #define _LIBGNOMEUIMM_ICON_LOOKUP_H
00005
00006
00007 #include <glibmm.h>
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <gtkmm/icontheme.h>
00029 #include <libgnomeuimm/thumbnail.h>
00030 #include <libgnomevfsmm/file-info.h>
00031
00032
00033 namespace Gnome
00034 {
00035
00036 namespace UI
00037 {
00038
00052 enum IconLookupFlags
00053 {
00054 ICON_LOOKUP_FLAGS_NONE = 0,
00055 ICON_LOOKUP_FLAGS_EMBEDDING_TEXT = 1<<0,
00056 ICON_LOOKUP_FLAGS_SHOW_SMALL_IMAGES_AS_THEMSELVES = 1<<1,
00057 ICON_LOOKUP_FLAGS_ALLOW_SVG_AS_THEMSELVES = 1<<2
00058 };
00059
00061 inline IconLookupFlags operator|(IconLookupFlags lhs, IconLookupFlags rhs)
00062 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00063
00065 inline IconLookupFlags operator&(IconLookupFlags lhs, IconLookupFlags rhs)
00066 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00067
00069 inline IconLookupFlags operator^(IconLookupFlags lhs, IconLookupFlags rhs)
00070 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00071
00073 inline IconLookupFlags operator~(IconLookupFlags flags)
00074 { return static_cast<IconLookupFlags>(~static_cast<unsigned>(flags)); }
00075
00077 inline IconLookupFlags& operator|=(IconLookupFlags& lhs, IconLookupFlags rhs)
00078 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00079
00081 inline IconLookupFlags& operator&=(IconLookupFlags& lhs, IconLookupFlags rhs)
00082 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00083
00085 inline IconLookupFlags& operator^=(IconLookupFlags& lhs, IconLookupFlags rhs)
00086 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00087
00088
00100 enum IconLookupResultFlags
00101 {
00102 ICON_LOOKUP_RESULT_FLAGS_NONE = 0,
00103 ICON_LOOKUP_RESULT_FLAGS_THUMBNAIL = 1<<0
00104 };
00105
00107 inline IconLookupResultFlags operator|(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00108 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00109
00111 inline IconLookupResultFlags operator&(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00112 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00113
00115 inline IconLookupResultFlags operator^(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00116 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00117
00119 inline IconLookupResultFlags operator~(IconLookupResultFlags flags)
00120 { return static_cast<IconLookupResultFlags>(~static_cast<unsigned>(flags)); }
00121
00123 inline IconLookupResultFlags& operator|=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00124 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00125
00127 inline IconLookupResultFlags& operator&=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00128 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00129
00131 inline IconLookupResultFlags& operator^=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00132 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00133
00134
00135 Glib::ustring icon_lookup(const Glib::RefPtr<Gtk::IconTheme>& icon_theme, const Glib::RefPtr<ThumbnailFactory>& thumbnail_factory, const Glib::ustring& file_uri, const Glib::ustring& custom_icon, const Glib::RefPtr<Gnome::Vfs::FileInfo>& file_info, const Glib::ustring& mime_type, IconLookupFlags flags, IconLookupResultFlags& result);
00136
00137 Glib::ustring icon_lookup_sync(const Glib::RefPtr<Gtk::IconTheme>& icon_theme, const Glib::RefPtr<ThumbnailFactory>& thumbnail_factory, const Glib::ustring& file_uri, const Glib::ustring& custom_icon, IconLookupFlags flags, IconLookupResultFlags& result);
00138
00139 }
00140 }
00141
00142
00143 #endif
00144