xtd - Reference Guide  0.1.2
Modern c++17/20 framework to create console, GUI and unit test applications on Windows, macOS, Linux, iOS and android.
Loading...
Searching...
No Matches
cursor.h
Go to the documentation of this file.
1
4#pragma once
5#include <any>
6#include <cstdint>
7#include <memory>
8#include <xtd/object.h>
10#include <xtd/drawing/point.h>
11#include <xtd/drawing/size.h>
12#include "../forms_export.h"
13
15namespace xtd {
17 namespace forms {
19 class cursors;
21
35 class forms_export_ cursor : public object {
36 public:
42 explicit cursor(intptr_t handle) : cursor(handle, false, "") {}
43
45 cursor(const cursor& value) = default;
46 ~cursor();
48
56 static void current(const xtd::forms::cursor& cursor);
57
61 intptr_t handle() const {return data_->handle_;}
62
66 drawing::point hot_spot() const {return data_->hot_spot_;}
67
75 static void position(const drawing::point& position);
76
79 drawing::size size() const {return data_->size_;}
80
84 std::any tag() const {return data_->tag_;}
85
89 void tag(std::any tag) {data_->tag_ = tag;}
90
94 intptr_t copy_handle() const;
95
100 static cursor from_bitmap(const xtd::drawing::bitmap& bitmap, const xtd::drawing::point& hot_spot) {return cursor(bitmap, hot_spot);}
105 static cursor from_bitmap(const xtd::drawing::bitmap& bitmap) {return from_bitmap(bitmap, {});}
106
109 static void hide();
110
113 static void show();
114
117 xtd::ustring to_string() const noexcept override;
118
120 friend std::ostream& operator<<(std::ostream& os, const cursor& value) noexcept {return os << value.to_string();}
121 bool operator==(const cursor& value) const {return data_ == value.data_;}
122 bool operator!=(const cursor& value) const {return !operator==(value);}
124
126 static cursor none;
127
128 private:
129 friend class xtd::forms::cursors;
130 cursor(const xtd::drawing::bitmap& bitmap, const xtd::drawing::point& hot_spot);
131 cursor(intptr_t handle, bool destroyable, const xtd::ustring& name);
132
133 struct data {
134 intptr_t handle_ = 0;
135 bool destroyable_ = true;
136 xtd::drawing::point hot_spot_;
137 xtd::ustring name_;
138 xtd::drawing::size size_;
139 std::any tag_;
140 };
141 std::shared_ptr<data> data_ = std::make_shared<data>();
142 };
143 }
144}
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 an ordered pair of integer x- and y-coordinates that defines a point in a two-dimensional ...
Definition point.h:48
Stores an ordered pair of integers, which specify a height and width.
Definition size.h:25
Represents the image used to paint the mouse pointer.
Definition cursor.h:35
static drawing::point position()
Gets the cursor's position.
static xtd::forms::cursor current()
Gets a cursor object that represents the mouse cursor.
cursor()
Initializes a new instance of the cursor class.
intptr_t copy_handle() const
Copies the handle of this cursor.
static void show()
Displays the cursor.
xtd::ustring to_string() const noexcept override
Returns a string containing the name of the cursor.
std::any tag() const
Gets the object that contains data about the control.
Definition cursor.h:84
static void hide()
Hides the cursor.
cursor(intptr_t handle)
Initializes a new instance of the Cursor class from the specified Windows handle.
Definition cursor.h:42
static cursor from_bitmap(const xtd::drawing::bitmap &bitmap)
Create a cursor form a specified bitmap.
Definition cursor.h:105
static cursor none
Represent none cursor.
Definition cursor.h:126
static void current(const xtd::forms::cursor &cursor)
Sets a cursor object that represents the mouse cursor.
static void position(const drawing::point &position)
Sets the cursor's position.
drawing::size size() const
Gets the size of the cursor object.
Definition cursor.h:79
drawing::point hot_spot() const
Gets the cursor hot spot.
Definition cursor.h:66
intptr_t handle() const
Gets the handle of the cursor.
Definition cursor.h:61
void tag(std::any tag)
Sets the object that contains data about the control.
Definition cursor.h:89
static cursor from_bitmap(const xtd::drawing::bitmap &bitmap, const xtd::drawing::point &hot_spot)
Create a cursor form a specified bitmap with specified hot spot.
Definition cursor.h:100
Provides a collection of xtd::forms::cursor objects for use by a Windows Forms application.
Definition cursors.h:21
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
ustring to_string() const noexcept override
Returns a std::string that represents the current object.
#define forms_export_
Define shared library export.
Definition forms_export.h:13
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition about_box.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::drawing::point class.
Contains xtd::drawing::size class.