IGUIEnvironment::hasFocus has now a parameter checkSubElements as subelements are usually seen as part of an element. Default unfortunately must be false due to backward compatibility.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@4465 dfc29bdd-3216-0410-991c-e03cc46cb475master
parent
2659619e1a
commit
695abde41d
|
@ -1,6 +1,7 @@
|
|||
--------------------------
|
||||
Changes in 1.9 (not yet released)
|
||||
|
||||
|
||||
- IGUIEnvironment::hasFocus has now a parameter checkSubElements as subelements are usually seen as part of an element. Default unfortunately must be false due to backward compatibility.
|
||||
- Add IGUIElement::isTrulyVisible which works like ISceneNode::isTrulyVisible and checks for parent visibility as well.
|
||||
- Improved DDS loader and added support for DXTn (DXT1-5) compressed textures in OpenGL and Direct3D9 drivers.
|
||||
- Add function ISceneNode::getTransformedBoundingBoxEdges.
|
||||
|
|
|
@ -103,8 +103,9 @@ public:
|
|||
|
||||
//! Returns whether the element has focus
|
||||
/** \param element Pointer to the element which is tested.
|
||||
\param checkSubElements When true and focus is on a sub-element of element then it will still count as focused and return true
|
||||
\return True if the element has focus, else false. */
|
||||
virtual bool hasFocus(IGUIElement* element) const = 0;
|
||||
virtual bool hasFocus(IGUIElement* element, bool checkSubElements=false) const = 0;
|
||||
|
||||
//! Returns the current video driver.
|
||||
/** \return Pointer to the video driver. */
|
||||
|
|
|
@ -175,8 +175,8 @@ bool CGUIButton::OnEvent(const SEvent& event)
|
|||
if (Environment->hasFocus(this) &&
|
||||
!AbsoluteClippingRect.isPointInside(core::position2d<s32>(event.MouseInput.X, event.MouseInput.Y)))
|
||||
{
|
||||
Environment->removeFocus(this);
|
||||
return false;
|
||||
Environment->removeFocus(this);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!IsPushButton)
|
||||
|
|
|
@ -329,11 +329,24 @@ bool CGUIEnvironment::removeFocus(IGUIElement* element)
|
|||
}
|
||||
|
||||
|
||||
//! Returns if the element has focus
|
||||
bool CGUIEnvironment::hasFocus(IGUIElement* element) const
|
||||
//! Returns whether the element has focus
|
||||
bool CGUIEnvironment::hasFocus(IGUIElement* element, bool checkSubElements) const
|
||||
{
|
||||
_IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
|
||||
return (element == Focus);
|
||||
if (element == Focus)
|
||||
return true;
|
||||
|
||||
if ( !checkSubElements || !element )
|
||||
return false;
|
||||
|
||||
IGUIElement* f = Focus;
|
||||
while ( f && f->isSubElement() )
|
||||
{
|
||||
f = f->getParent();
|
||||
if ( f == element )
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ public:
|
|||
virtual bool removeFocus(IGUIElement* element);
|
||||
|
||||
//! Returns if the element has focus
|
||||
virtual bool hasFocus(IGUIElement* element) const;
|
||||
virtual bool hasFocus(IGUIElement* element, bool checkSubElements=false) const;
|
||||
|
||||
//! Returns the element with the focus
|
||||
virtual IGUIElement* getFocus() const;
|
||||
|
|
Loading…
Reference in New Issue