00001
00002
00003 #ifndef _LIBGNOMEUIMM_ICON_LOOKUP_H
00004 #define _LIBGNOMEUIMM_ICON_LOOKUP_H
00005
00006 #include <glibmm.h>
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #include <gtkmm/icontheme.h>
00028 #include <libgnomeuimm/thumbnail.h>
00029 #include <libgnomevfsmm/file-info.h>
00030
00031
00032 namespace Gnome
00033 {
00034
00035 namespace UI
00036 {
00037
00051 enum IconLookupFlags
00052 {
00053 ICON_LOOKUP_FLAGS_NONE = 0,
00054 ICON_LOOKUP_FLAGS_EMBEDDING_TEXT = 1<<0,
00055 ICON_LOOKUP_FLAGS_SHOW_SMALL_IMAGES_AS_THEMSELVES = 1<<1,
00056 ICON_LOOKUP_FLAGS_ALLOW_SVG_AS_THEMSELVES = 1<<2
00057 };
00058
00060 inline IconLookupFlags operator|(IconLookupFlags lhs, IconLookupFlags rhs)
00061 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00062
00064 inline IconLookupFlags operator&(IconLookupFlags lhs, IconLookupFlags rhs)
00065 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00066
00068 inline IconLookupFlags operator^(IconLookupFlags lhs, IconLookupFlags rhs)
00069 { return static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00070
00072 inline IconLookupFlags operator~(IconLookupFlags flags)
00073 { return static_cast<IconLookupFlags>(~static_cast<unsigned>(flags)); }
00074
00076 inline IconLookupFlags& operator|=(IconLookupFlags& lhs, IconLookupFlags rhs)
00077 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00078
00080 inline IconLookupFlags& operator&=(IconLookupFlags& lhs, IconLookupFlags rhs)
00081 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00082
00084 inline IconLookupFlags& operator^=(IconLookupFlags& lhs, IconLookupFlags rhs)
00085 { return (lhs = static_cast<IconLookupFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00086
00087
00099 enum IconLookupResultFlags
00100 {
00101 ICON_LOOKUP_RESULT_FLAGS_NONE = 0,
00102 ICON_LOOKUP_RESULT_FLAGS_THUMBNAIL = 1<<0
00103 };
00104
00106 inline IconLookupResultFlags operator|(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00107 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs)); }
00108
00110 inline IconLookupResultFlags operator&(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00111 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs)); }
00112
00114 inline IconLookupResultFlags operator^(IconLookupResultFlags lhs, IconLookupResultFlags rhs)
00115 { return static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs)); }
00116
00118 inline IconLookupResultFlags operator~(IconLookupResultFlags flags)
00119 { return static_cast<IconLookupResultFlags>(~static_cast<unsigned>(flags)); }
00120
00122 inline IconLookupResultFlags& operator|=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00123 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) | static_cast<unsigned>(rhs))); }
00124
00126 inline IconLookupResultFlags& operator&=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00127 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) & static_cast<unsigned>(rhs))); }
00128
00130 inline IconLookupResultFlags& operator^=(IconLookupResultFlags& lhs, IconLookupResultFlags rhs)
00131 { return (lhs = static_cast<IconLookupResultFlags>(static_cast<unsigned>(lhs) ^ static_cast<unsigned>(rhs))); }
00132
00133
00134 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);
00135
00136 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);
00137
00138 }
00139 }
00140
00141 #endif
00142