xtd 0.2.0
Loading...
Searching...
No Matches
xtd::forms::cursor Class Reference
Inheritance diagram for xtd::forms::cursor:
xtd::object xtd::iequatable< cursor > xtd::interface xtd::equality_operators< type_t, equatable_t >

Definition

Represents the image used to paint the mouse pointer.

Header
#include <xtd/forms/cursor>
Namespace
xtd::forms
Library
xtd.forms
Remarks
A cursor is a small picture whose location on the screen is controlled by a pointing device, such as a mouse, pen, or trackball. When the user moves the pointing device, the operating system moves the cursor accordingly.
Different cursor shapes are used to inform the user what operation the mouse will have. For example, when editing or selecting text, a cursors::ibeam cursor is typically displayed. A wait cursor is commonly used to inform the user that a process is currently running. Examples of processes you might have the user wait for are opening a file, saving a file, or filling a control such as a data_grid, list_box or tree_view with a large amount of data.
All controls that derive from the Control class have a Cursor property. To change the cursor displayed by the mouse pointer when it is within the bounds of the control, assign a Cursor to the Cursor property of the control. Alternatively, you can display cursors at the application level by assigning a Cursor to the Current property. For example, if the purpose of your application is to edit a text file, you might set the Current property to Cursors.WaitCursor to display a wait cursor over the application while the file loads or saves to prevent any mouse events from being processed. When the process is complete, set the Current property to Cursors.Default for the application to display the appropriate cursor over each control type.
See also
xtd::forms::cursors
Examples
The following code example demonstrates the use of cursor component.
#include <xtd/forms/application>
#include <xtd/forms/cursors>
#include <xtd/forms/form>
#include <xtd/forms/list_box>
#include <xtd/forms/panel>
#include <xtd/drawing/system_colors>
using namespace xtd;
using namespace xtd::forms;
class form1 : public form {
public:
form1() {
text("Cursor example");
start_position(form_start_position::manual);
location({200, 200});
client_size({360, 240});
list_box_loading_indicators.parent(*this);
list_box_loading_indicators.bounds({20, 20, 150, 200});
list_box_loading_indicators.anchor(anchor_styles::top | anchor_styles::left | anchor_styles::bottom);
list_box_loading_indicators.items().push_back_range({{"Default", cursors::default_cursor()}, {"Application Starting", cursors::app_starting()}, {"Arrow", cursors::arrow()}, {"Closed hand", cursors::closed_hand()}, {"Contextual menu", cursors::contextual_menu()}, {"Cell", cursors::cell()}, {"Cross", cursors::cross()}, {"Disappearing item", cursors::disappearing_item()}, {"Drag copy", cursors::drag_copy()}, {"Drag link", cursors::drag_link()}, {"Hand", cursors::hand()}, {"Help", cursors::help()}, {"Horizontal split", cursors::hsplit()}, {"I beam", cursors::ibeam()}, {"No", cursors::no()}, {"No drag", cursors::no_drag()}, {"No move 2d", cursors::no_move_2d()}, {"No move horizontal", cursors::no_move_horiz()}, {"No move vertical", cursors::no_move_vert()}, {"Open hand", cursors::open_hand()}, {"Pan east", cursors::pan_east()}, {"Pan north east", cursors::pan_ne()}, {"Pan north", cursors::pan_north()}, {"Pan north west", cursors::pan_nw()}, {"Pan south east", cursors::pan_se()}, {"Pan south", cursors::pan_south()}, {"Pan south west", cursors::pan_sw()}, {"Pan West", cursors::pan_west()}, {"Size all", cursors::size_all()}, {"Size north-east south-west", cursors::size_nesw()}, {"Size north south", cursors::size_ns()}, {"Size north-west south-east", cursors::size_nwse()}, {"Size west east", cursors::size_we()}, {"Up arrow", cursors::up_arrow()}, {"Vertical I beam", cursors::vibeam()}, {"Vertical split", cursors::vsplit()}, {"Wait", cursors::wait_cursor()}, {"Zoom in", cursors::zoom_in()}, {"Zoom out", cursors::zoom_out()}});
list_box_loading_indicators.selected_index_changed += [&] {
loading_indicator_panel.cursor(any_cast<forms::cursor>(list_box_loading_indicators.selected_item().tag()));
};
list_box_loading_indicators.selected_item("Default");
loading_indicator_panel.parent(*this);
loading_indicator_panel.border_style(border_style::fixed_3d);
loading_indicator_panel.back_color(drawing::system_colors::window());
loading_indicator_panel.bounds({190, 20, 150, 200});
loading_indicator_panel.anchor(anchor_styles::top | anchor_styles::left | anchor_styles::bottom | anchor_styles::right);
}
private:
list_box list_box_loading_indicators;
panel loading_indicator_panel;
};
auto main() -> int {
application::run(form1 {});
}
static void run()
Begins running a standard application message loop on the current thread, without a form.
Represents a window or dialog box that makes up an application's user interface.
Definition form.hpp:54
Represents a standard Windows list box.
Definition list_box.hpp:33
Used to group collections of controls.
Definition panel.hpp:32
@ location
Specifies that both the x and y coordinates of the control are defined.
@ text
The xtd::forms::status_bar_panel displays text in the standard font.
The xtd::forms namespace contains classes for creating Windows-based applications that take full adva...
Definition xtd_about_box.hpp:12
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10
Examples
circular_form.cpp.

Public Fields

static cursor none
 Represent none cursor.
 

Public Constructors

 cursor ()
 Initializes a new instance of the cursor class.
 
 cursor (intptr handle)
 Initializes a new instance of the Cursor class from the specified Windows handle.
 

Public Properties

intptr handle () const noexcept
 Gets the handle of the cursor.
 
drawing::point hot_spot () const noexcept
 Gets the cursor hot spot.
 
drawing::size size () const noexcept
 Gets the size of the cursor object.
 
std::any tag () const noexcept
 Gets the object that contains data about the control.
 
void tag (std::any tag)
 Sets the object that contains data about the control.
 

Methodds

intptr copy_handle () const
 Copies the handle of this cursor.
 
bool equals (const cursor &value) const noexcept override
 
xtd::string to_string () const noexcept override
 Returns a string containing the name of the cursor.
 
virtual bool equals (const object &obj) const noexcept
 Determines whether the specified object is equal to the current object.
 
template<typename object_a_t , typename object_b_t >
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
 

Public Static Properties

static xtd::forms::cursor current ()
 Gets a cursor object that represents the mouse cursor.
 
static void current (const xtd::forms::cursor &cursor)
 Sets a cursor object that represents the mouse cursor.
 
static drawing::point position ()
 Gets the cursor's position.
 
static void position (const drawing::point &position)
 Sets the cursor's position.
 

Static methodds

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.
 
static cursor from_bitmap (const xtd::drawing::bitmap &bitmap)
 Create a cursor form a specified bitmap.
 
static void hide ()
 Hides the cursor.
 
static void show ()
 Displays the cursor.
 

Additional Inherited Members

- Public Member Functions inherited from xtd::object
 object ()=default
 Create a new instance of the ultimate base class object.
 
virtual size_t get_hash_code () const noexcept
 Serves as a hash function for a particular type.
 
virtual type_object get_type () const noexcept
 Gets the type of the current instance.
 
template<typename object_t >
xtd::uptr< object_t > memberwise_clone () const
 Creates a shallow copy of the current object.
 
- Public Member Functions inherited from xtd::iequatable< cursor >
virtual bool equals (const cursor &) const noexcept=0
 Indicates whether the current object is equal to another object of the same type.
 
- Static Public Member Functions inherited from xtd::object
template<typename object_a_t , typename object_b_t >
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
 
template<typename object_a_t , typename object_b_t >
static bool reference_equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are the same instance.
 

Constructor & Destructor Documentation

◆ cursor() [1/2]

xtd::forms::cursor::cursor ( )

Initializes a new instance of the cursor class.

◆ cursor() [2/2]

xtd::forms::cursor::cursor ( intptr  handle)
explicit

Initializes a new instance of the Cursor class from the specified Windows handle.

Parameters
handleAn IntPtr that represents the Windows handle of the cursor to create.
Remarks
You must free the cursor handle when you are done with it.

Member Function Documentation

◆ handle()

intptr xtd::forms::cursor::handle ( ) const
noexcept

Gets the handle of the cursor.

Returns
An intptr that represents the cursor's handle.
Remarks
This is not a copy of the handle; do not destroy it.

◆ hot_spot()

drawing::point xtd::forms::cursor::hot_spot ( ) const
noexcept

Gets the cursor hot spot.

Returns
A point representing the cursor hot spot.
Remarks
The hot_spot is the point in the cursor that interacts with other elements on the screen.

◆ size()

drawing::size xtd::forms::cursor::size ( ) const
noexcept

Gets the size of the cursor object.

Returns
A size that represents the width and height of the cursor.

◆ tag() [1/2]

std::any xtd::forms::cursor::tag ( ) const
noexcept

Gets the object that contains data about the control.

Returns
A std::any that contains data about the control. The default is empty.
Remarks
Any type of class can be assigned to this property.

◆ tag() [2/2]

void xtd::forms::cursor::tag ( std::any  tag)

Sets the object that contains data about the control.

Parameters
tagA std::any that contains data about the control. The default is empty.
Remarks
Any type of class can be assigned to this property.

◆ current() [1/2]

static xtd::forms::cursor xtd::forms::cursor::current ( )
static

Gets a cursor object that represents the mouse cursor.

Returns
A cursor that represents the mouse cursor. The default is cursor::none.
Remarks
Setting the current property changes the cursor currently displayed. The application may or may not continue to listen for mouse events. To signal that the application should not respond to mouse events during a long-running operation, use the application::use_wait_cursor property. In most cases, however, it's better to use a background thread to manage a long-running operation, and leave your user interface accessible to the user.

◆ current() [2/2]

static void xtd::forms::cursor::current ( const xtd::forms::cursor cursor)
static

Sets a cursor object that represents the mouse cursor.

Parameters
cursorA cursor that represents the mouse cursor. The default is cursor::none.
Remarks
Setting the current property changes the cursor currently displayed. The application may or may not continue to listen for mouse events. To signal that the application should not respond to mouse events during a long-running operation, use the application::use_wait_cursor property. In most cases, however, it's better to use a background thread to manage a long-running operation, and leave your user interface accessible to the user.

◆ position() [1/2]

static drawing::point xtd::forms::cursor::position ( )
static

Gets the cursor's position.

Returns
A point that represents the cursor's position in screen coordinates.
Remarks
The position property is identical to the control::mouse_position property.

◆ position() [2/2]

static void xtd::forms::cursor::position ( const drawing::point position)
static

Sets the cursor's position.

Parameters
positionA point that represents the cursor's position in screen coordinates.
Remarks
The position property is identical to the control::mouse_position property.

◆ copy_handle()

intptr xtd::forms::cursor::copy_handle ( ) const

Copies the handle of this cursor.

Returns
An intptr that represents the cursor's handle.
Remarks
The handle created as a result of calling this method must be deleted of when you are done with it.

◆ to_string()

xtd::string xtd::forms::cursor::to_string ( ) const
overridevirtualnoexcept

Returns a string containing the name of the cursor.

Returns
A string containing the name of the cursor.

Reimplemented from xtd::object.

◆ from_bitmap() [1/2]

static cursor xtd::forms::cursor::from_bitmap ( const xtd::drawing::bitmap bitmap,
const xtd::drawing::point hot_spot 
)
static

Create a cursor form a specified bitmap with specified hot spot.

Parameters
bitmapA xtd::drawing::bitmap image will be use by cursor.
hot_spotA xtd::drawing::point hot spot location.
Returns
A new cursor instance.

◆ from_bitmap() [2/2]

static cursor xtd::forms::cursor::from_bitmap ( const xtd::drawing::bitmap bitmap)
static

Create a cursor form a specified bitmap.

Parameters
bitmapA xtd::drawing::bitmap image will be use by cursor.
Returns
A new cursor instance.
Remarks
The hot spot location is top left (0, 0).

◆ hide()

static void xtd::forms::cursor::hide ( )
static

Hides the cursor.

The show and hide method calls must be balanced. For every call to the hide method there must be a corresponding call to the show method.

◆ show()

static void xtd::forms::cursor::show ( )
static

Displays the cursor.

The show and hide method calls must be balanced. For every call to the hide method there must be a corresponding call to the show method.

◆ equals() [1/2]

virtual bool xtd::object::equals ( const object obj) const
virtualnoexcept

Determines whether the specified object is equal to the current object.

Parameters
objThe object to compare with the current object.
Returns
true if the specified object is equal to the current object. otherwise, false.
Examples
The following code example compares the current instance with another object.
#include <xtd/console>
using namespace xtd;
auto main() -> int {
auto object1 = new_ptr<object>();
auto object2 = new_ptr<object>();
auto object3 = object2;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
object3 = object1;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
}
// This code produces the following output :
//
// false
// false
// true
// true
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...

Reimplemented from xtd::object.

◆ equals() [2/2]

template<typename object_a_t , typename object_b_t >
static bool xtd::object::equals ( const object_a_t &  object_a,
const object_b_t &  object_b 
)
inlinestaticnoexcept

Determines whether the specified object instances are considered equal.

Parameters
object_aThe first object to compare.
object_bThe second object to compare.
Returns
true if object_a is the same instance as object_b or if both are null references or if object_a(object_b) returns true. otherwise, false.
Examples
The following code example compares different objects.
#include <xtd/console>
using namespace xtd;
auto main() -> int {
string s1 = "Tom";
string s2 = "Carol";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "Tom";
s2 = "Tom";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "";
s2 = "Tom";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "Carol";
s2 = "";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "";
s2 = "";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
}
// This code produces the following output :
//
// object::equals("Tom", "Carol") => false
// object::equals("Tom", "Tom") => true
// object::equals("", "Tom") => false
// object::equals("Carol", "") => false
// object::equals("", "") => true
virtual bool equals(const object &obj) const noexcept
Determines whether the specified object is equal to the current object.

Member Data Documentation

◆ none

cursor xtd::forms::cursor::none
static

Represent none cursor.


The documentation for this class was generated from the following file: