xtd - Reference Guide  0.1.0
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
icon.h
Go to the documentation of this file.
1
4#pragma once
5#include <cstdint>
6#include <memory>
7#include <xtd/object.h>
8#include <xtd/ustring.h>
9#include "../drawing_export.h"
10#include "bitmap.h"
11
13namespace xtd {
15 namespace drawing {
22 class drawing_export_ icon : public object {
23 public:
24 icon() = default;
25 ~icon();
26
27 explicit icon(const xtd::ustring& filename);
28
29 explicit icon(std::istream& stream);
30
31 explicit icon(const char* const* bits);
32
33 icon(const icon& icon, int32_t width, int32_t height);
34
36 icon(const icon& icon) = default;
37 icon& operator=(const icon& icon) = default;
38 bool operator==(const icon& icon) const {return data_->handle_ == icon.data_->handle_;}
39 bool operator!=(const icon& icon) const {return !operator==(icon);}
41
44 intptr_t handle() const {return data_->handle_;}
45
46 static icon empty;
47
48 void save(const xtd::ustring& filename) const;
49 void save(std::ostream& stream) const;
50
51 static icon from_bitmap(const bitmap& bitmap);
52
53 bitmap to_bitmap() const;
54
55 private:
56 explicit icon(const bitmap& bitmap);
57 struct data {
58 intptr_t handle_ = 0;
59 };
60
61 std::shared_ptr<data> data_ = std::make_shared<data>();
62 };
63 }
64}
Contains xtd::drawing::bitmap class.
Encapsulates a GDI+ bitmap, which consists of the pixel data for a graphics image and its attributes....
Definition: bitmap.h:19
Represents a Windows icon, which is a small bitmap image that is used to represent an object....
Definition: icon.h:22
intptr_t handle() const
Get the handle of this image.
Definition: icon.h:44
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition: object.h:26
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:48
#define drawing_export_
Define shared library export.
Definition: drawing_export.h:13
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition: system_report.h:17
Contains xtd::object class.
Contains xtd::ustring class.