diff options
Diffstat (limited to 'gio/src/bytesicon.hg')
-rw-r--r-- | gio/src/bytesicon.hg | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/gio/src/bytesicon.hg b/gio/src/bytesicon.hg new file mode 100644 index 00000000..0c8f61e9 --- /dev/null +++ b/gio/src/bytesicon.hg @@ -0,0 +1,64 @@ +/* Copyright (C) 2022 The gtkmm Development Team + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <glibmm/object.h> +#include <giomm/icon.h> +#include <giomm/loadableicon.h> +#include <glibmm/bytes.h> + +_DEFS(giomm,gio) +_PINCLUDE(glibmm/private/object_p.h) + +namespace Gio +{ + +/** An icon stored in memory as a Glib::Bytes. + * + * %Gio::BytesIcon specifies an image held in memory in a common format + * (usually png) to be used as icon. + * + * @see Icon, LoadableIcon, Glib::Bytes + * @newin{2,76} + */ +class GIOMM_API BytesIcon : public Glib::Object, public Icon, public LoadableIcon +{ + _CLASS_GOBJECT(BytesIcon, GBytesIcon, G_BYTES_ICON, Glib::Object, GObject, , , GIOMM_API) + _IMPLEMENTS_INTERFACE(Icon) + _IMPLEMENTS_INTERFACE(LoadableIcon) + +protected: + _WRAP_CTOR(BytesIcon(const Glib::RefPtr<const Glib::Bytes>& bytes), g_bytes_icon_new) + +public: + /** Creates a new icon for a Glib::Bytes. + * + * This cannot fail, but loading and interpreting the bytes may fail later on + * (for example, if Gio::LoadableIcon::load() is called) if the image is invalid. + * + * @newin{2,76} + * + * @param bytes A Glib::Bytes. + * @return A Icon for the given @a bytes. + */ + _WRAP_CREATE(const Glib::RefPtr<const Glib::Bytes>& bytes) + + _WRAP_METHOD(Glib::RefPtr<const Glib::Bytes> get_bytes() const, + g_bytes_icon_get_bytes, refreturn, newin "2,76") + + _WRAP_PROPERTY("bytes", Glib::RefPtr<Glib::Bytes>, newin "2,76") +}; + +} // namespace Gio |