// Copyright (C) 2002-2006 Nikolaus Gebhardt
// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#pragma once
#pragma unmanaged
#include "..\\..\\include\\irrlicht.h"
#pragma managed
#include "Position2D.h"
namespace Irrlicht
{
namespace GUI
{
///
/// Interface to manipulate the mouse cursor.
///
/// This class has been ported directly from the native C++ Irrlicht Engine, so it may not
/// be 100% complete yet and the design may not be 100% .NET like.
///
public __gc class ICursorControl
{
public:
///
/// You should access ICursorControl
/// through the Irrlicht::IrrlichtDevice::getCursorControl() method. Simply don't use
/// this constructor.
///
///The real, unmanaged C++ ICursorControl
ICursorControl(irr::gui::ICursorControl* realControl);
//! destructor
~ICursorControl();
///
/// Changes the visible state of the mouse cursor.
///
/// The new visible state. If true, the cursor will be visible,
/// if false, it will be invisible.
__property void set_Visible(bool visible);
///
/// Returns if the cursor is currently visible.
///
/// Returns true if the cursor is visible, false if not.
__property bool get_Visible();
///
/// Sets/Gets the new position of the cursor as float values.
/// The position must be between (0.0f, 0.0f) and (1.0f, 1.0f), where (0.0f, 0.0f) is
/// the top left corner and (1.0f, 1.0f) is the bottom right corner of the
/// render window.
///
__property void set_Positionf(Core::Position2Df pos);
///
/// Sets/Gets the new position of the cursor as float values.
/// The position must be between (0.0f, 0.0f) and (1.0f, 1.0f), where (0.0f, 0.0f) is
/// the top left corner and (1.0f, 1.0f) is the bottom right corner of the
/// render window.
///
__property Core::Position2Df get_Positionf();
///
/// Sets/Gets the new position of the cursor. The coordinates are pixel units.
///
__property void set_Position(Core::Position2D pos);
///
/// Sets/Gets the new position of the cursor. The coordinates are pixel units.
///
__property Core::Position2D get_Position();
///
/// Returns the internal pointer to the native C++ irrlicht texture.
/// Do not use this, only needed by the internal .NET wrapper.
///
__property irr::gui::ICursorControl* get_NativeCursorControl();
private:
irr::gui::ICursorControl* CursorControl;
};
}
}