mirror of
https://github.com/minetest/irrlicht.git
synced 2024-11-09 01:03:51 +01:00
Add ICursorControl::getReferenceRect
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6455 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
parent
f989112dcb
commit
a23af985e4
@ -1,6 +1,7 @@
|
|||||||
--------------------------
|
--------------------------
|
||||||
Changes in 1.9 (not yet released)
|
Changes in 1.9 (not yet released)
|
||||||
|
|
||||||
|
- Add ICursorControl::getReferenceRect
|
||||||
- Fix: Listbox no longer sending EGET_LISTBOX_SELECTED_AGAIN instead of EGET_LISTBOX_CHANGED when pressed mouse was moved over item before releasing the mouse button
|
- Fix: Listbox no longer sending EGET_LISTBOX_SELECTED_AGAIN instead of EGET_LISTBOX_CHANGED when pressed mouse was moved over item before releasing the mouse button
|
||||||
- Listbox items can now change individual background colors
|
- Listbox items can now change individual background colors
|
||||||
- Fix some bitfield sizes in SMaterial which were chosen too small for enums (PolygonOffsetDirection, ZWriteEnable, BlendOperation)
|
- Fix some bitfield sizes in SMaterial which were chosen too small for enums (PolygonOffsetDirection, ZWriteEnable, BlendOperation)
|
||||||
|
@ -160,6 +160,12 @@ namespace gui
|
|||||||
\param rect: A pointer to an reference rectangle or 0 to disable the reference rectangle.*/
|
\param rect: A pointer to an reference rectangle or 0 to disable the reference rectangle.*/
|
||||||
virtual void setReferenceRect(core::rect<s32>* rect=0) = 0;
|
virtual void setReferenceRect(core::rect<s32>* rect=0) = 0;
|
||||||
|
|
||||||
|
//! Returns the current absolute reference rect used for the cursor position
|
||||||
|
/** \param rect Will receive the reference rectangle when the function returns true
|
||||||
|
When the result is false drivers can still write some platform specific values in there.
|
||||||
|
Generally at least the width/height of the returned rect will correspond to the current window size.
|
||||||
|
\return Return true when a reference rectangle has been set and is used by this driver */
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) { return false; }
|
||||||
|
|
||||||
//! Sets the active cursor icon
|
//! Sets the active cursor icon
|
||||||
/** Setting cursor icons is so far only supported on Win32 and Linux */
|
/** Setting cursor icons is so far only supported on Win32 and Linux */
|
||||||
|
@ -197,6 +197,20 @@ namespace irr
|
|||||||
UseReferenceRect = false;
|
UseReferenceRect = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) IRR_OVERRIDE
|
||||||
|
{
|
||||||
|
if ( UseReferenceRect )
|
||||||
|
{
|
||||||
|
rect = ReferenceRect;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner = core::vector2di(0,0);
|
||||||
|
rect.LowerRightCorner.X = (irr::s32)WindowSize.Width;
|
||||||
|
rect.LowerRightCorner.Y = (irr::s32)WindowSize.Height;
|
||||||
|
}
|
||||||
|
return UseReferenceRect;
|
||||||
|
}
|
||||||
|
|
||||||
//! Updates the internal cursor position
|
//! Updates the internal cursor position
|
||||||
void setInternalCursorPosition(const core::position2di &pos)
|
void setInternalCursorPosition(const core::position2di &pos)
|
||||||
|
@ -160,6 +160,14 @@ namespace irr
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) IRR_OVERRIDE
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner = core::vector2di(0,0);
|
||||||
|
rect.LowerRightCorner.X = (irr::s32)Device->CreationParams.WindowSize.Width;
|
||||||
|
rect.LowerRightCorner.Y = (irr::s32)Device->CreationParams.WindowSize.Height;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void updateCursorPos()
|
void updateCursorPos()
|
||||||
|
@ -327,6 +327,21 @@ namespace irr
|
|||||||
UseReferenceRect = false;
|
UseReferenceRect = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) IRR_OVERRIDE
|
||||||
|
{
|
||||||
|
if ( UseReferenceRect )
|
||||||
|
{
|
||||||
|
rect = ReferenceRect;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner = core::vector2di(0,0);
|
||||||
|
rect.LowerRightCorner.X = (irr::s32)Device->Width;
|
||||||
|
rect.LowerRightCorner.Y = (irr::s32)Device->Height;
|
||||||
|
}
|
||||||
|
return UseReferenceRect;
|
||||||
|
}
|
||||||
|
|
||||||
//! Sets the active cursor icon
|
//! Sets the active cursor icon
|
||||||
virtual void setActiveIcon(gui::ECURSOR_ICON iconId) IRR_OVERRIDE;
|
virtual void setActiveIcon(gui::ECURSOR_ICON iconId) IRR_OVERRIDE;
|
||||||
|
|
||||||
|
@ -168,6 +168,14 @@ namespace irr
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) IRR_OVERRIDE
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner = core::vector2di(0,0);
|
||||||
|
rect.LowerRightCorner.X = (irr::s32)Device->Width;
|
||||||
|
rect.LowerRightCorner.Y = (irr::s32)Device->Height;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void updateCursorPos()
|
void updateCursorPos()
|
||||||
|
@ -275,6 +275,30 @@ namespace irr
|
|||||||
UseReferenceRect = false;
|
UseReferenceRect = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual bool getReferenceRect(core::rect<s32>& rect) IRR_OVERRIDE
|
||||||
|
{
|
||||||
|
if ( UseReferenceRect )
|
||||||
|
{
|
||||||
|
rect = ReferenceRect;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RECT wndRect;
|
||||||
|
if (GetWindowRect(HWnd, &wndRect))
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner.X = wndRect.left+BorderX;
|
||||||
|
rect.UpperLeftCorner.Y = wndRect.top+BorderY;
|
||||||
|
}
|
||||||
|
else // error case - not sure if it matters what we set here as coordinates returned will be -1, -1
|
||||||
|
{
|
||||||
|
rect.UpperLeftCorner = core::vector2di(0,0);
|
||||||
|
}
|
||||||
|
rect.LowerRightCorner.X = rect.UpperLeftCorner.X + (irr::s32)WindowSize.Width;
|
||||||
|
rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + (irr::s32)WindowSize.Height;
|
||||||
|
}
|
||||||
|
return UseReferenceRect;
|
||||||
|
}
|
||||||
|
|
||||||
/** Used to notify the cursor that the window was resized. */
|
/** Used to notify the cursor that the window was resized. */
|
||||||
void OnResize(const core::dimension2d<u32>& size)
|
void OnResize(const core::dimension2d<u32>& size)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user