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
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.