xtd 0.2.0
icon.h
Go to the documentation of this file.
1 #pragma once
5 #include "../drawing_export.h"
6 #include "bitmap.h"
7 #include <xtd/iequatable>
8 #include <xtd/object>
9 #include <xtd/ustring>
10 #include <cstdint>
11 #include <memory>
12 
14 namespace xtd {
16  namespace drawing {
28  class drawing_export_ icon : public xtd::object, public xtd::iequatable<icon> {
29  struct data;
30 
31  public:
33 
35  static icon empty;
37 
39 
48  explicit icon(const xtd::ustring& filename);
54  icon(const xtd::ustring& filename, const xtd::drawing::size& size);
61  icon(const xtd::ustring& filename, int32 width, int32 height);
69  explicit icon(std::istream& stream);
73  icon(std::istream& stream, const xtd::drawing::size& size);
78  icon(std::istream& stream, int32 width, int32 height);
87  explicit icon(const char* const* bits);
92  icon(const char* const* bits, const xtd::drawing::size& size);
98  icon(const char* const* bits, int32 width, int32 height);
103  icon(const icon& original, const xtd::drawing::size& size);
109  icon(const icon& original, int32 width, int32 height);
111 
113  icon();
114  icon(const icon& icon) = default;
115  icon& operator =(const icon& icon) = default;
116  ~icon();
118 
120 
124  intptr handle() const noexcept;
125 
128  int32 height() const noexcept;
129 
132  const xtd::drawing::size& size() const noexcept;
133 
136  int32 width() const noexcept;
138 
140 
142  bool equals(const icon& icon) const noexcept override;
143 
148  static icon from_handle(intptr handle);
149 
153  static icon from_bitmap(const xtd::drawing::bitmap& bitmap);
154 
157  void save(const xtd::ustring& filename) const;
160  void save(std::ostream& stream) const;
161 
165  xtd::drawing::bitmap to_bitmap() const;
166 
169  xtd::ustring to_string() const noexcept override;
171 
172  private:
173  explicit icon(const bitmap& bitmap);
174 
175  std::shared_ptr<data> data_;
176  };
177  }
178 }
intmax_t intptr
Represent a pointer or a handle.
Definition: types.h:151
Stores an ordered pair of integers, which specify a height and width.
Definition: size.h:31
The xtd namespace contains all fundamental classes to access Hardware, Os, System, and more.
Definition: system_report.h:17
Represents text as a sequence of UTF-8 code units.
Definition: ustring.h:46
std::string to_string(const date_time &value, const std::string &fmt, const std::locale &loc)
Convert a specified value into a string with specified format and locale.
Definition: date_time.h:1063
Encapsulates a GDI+ bitmap, which consists of the pixel data for a graphics image and its attributes...
Definition: bitmap.h:26
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition: iequatable.h:18
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes...
Definition: object.h:32
Contains xtd::drawing::bitmap class.
int_least32_t int32
Represents a 32-bit signed integer.
Definition: types.h:129
Represents a Windows icon, which is a small bitmap image that is used to represent an object...
Definition: icon.h:28
size_t size
Represents a size of any object in bytes.
Definition: types.h:195