本文整理汇总了C++中WidgetPtr::isValid方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetPtr::isValid方法的具体用法?C++ WidgetPtr::isValid怎么用?C++ WidgetPtr::isValid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WidgetPtr
的用法示例。
在下文中一共展示了WidgetPtr::isValid方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _updateHovered
void Ui::_updateHovered( const Point& mousePos )
{
WidgetPtr lastHovered = _d->hovered.current;
WidgetPtr lastHoveredNoSubelement = _d->hovered.noSubelement;
_d->hovered.lastMousePos = mousePos;
// Get the real Hovered
_d->hovered.current = rootWidget()->getElementFromPoint( mousePos );
if( _d->tooltip.element.isValid() && _d->hovered.current == _d->tooltip.element )
{
// When the mouse is over the ToolTip we remove that so it will be re-created at a new position.
// Note that ToolTip.EnterTime does not get changed here, so it will be re-created at once.
_d->tooltip.element->deleteLater();
_d->tooltip.element->hide();
_d->tooltip.element = WidgetPtr();
_d->hovered.current = rootWidget()->getElementFromPoint( mousePos );
}
// for tooltips we want the element itself and not some of it's subelements
if( _d->hovered.current != rootWidget() )
{
_d->hovered.noSubelement = _d->hovered.current;
while ( _d->hovered.noSubelement.isValid() && _d->hovered.noSubelement->isSubElement() )
{
_d->hovered.noSubelement = _d->hovered.noSubelement->parent();
}
}
else
{
_d->hovered.noSubelement = 0;
}
if( _d->hovered.current != lastHovered )
{
if( lastHovered.isValid() )
{
lastHovered->onEvent( NEvent::Gui( lastHovered.object(), 0, guiElementLeft ) );
}
if( _d->hovered.current.isValid() )
{
_d->hovered.current->onEvent( NEvent::Gui( _d->hovered.current.object(), _d->hovered.current.object(), guiElementHovered ) );
}
}
if ( lastHoveredNoSubelement != _d->hovered.noSubelement )
{
if( _d->tooltip.element.isValid() )
{
_d->tooltip.element->deleteLater();
_d->tooltip.element = WidgetPtr();
}
if( _d->hovered.noSubelement.isValid() )
{
_d->tooltip.enterTime = DateTime::elapsedTime();
}
}
}
示例2: update
void UiTooltipWorker::update( unsigned int time, Widget& rootWidget, bool showTooltips,
WidgetPtr hovered, Point cursor )
{
// launch tooltip
if( element.isNull()
&& hovered.isValid() && hovered.object() != &rootWidget
&& (time - enterTime >= launchTime
|| (time - lastTime >= relaunchTime && time - lastTime < launchTime))
&& hovered->tooltipText().size()
)
{
if( hovered.isValid() )
{
NEvent e;
hovered->onEvent( e );
}
element = standart( rootWidget, hovered.object(), cursor );
element->addProperty( "tooltip", 1 );
element->setGeometry( element->relativeRect() + Point( 1, 1 ) );
if( element->screenBottom() > (int)rootWidget.height() ||
element->screenLeft() < (int)0 )
{
Rect geom = element->absoluteRect();
geom.constrainTo( rootWidget.absoluteRect() );
element->setGeometry( geom );
element->setVisible( showTooltips );
}
}
if( element.isValid() && element->visible() ) // (isVisible() check only because we might use visibility for ToolTip one day)
{
lastTime = time;
// got invisible or removed in the meantime?
if( hovered.isNull()
|| !hovered->visible()
|| !hovered->parent() )
{
element->deleteLater();
element = WidgetPtr();
}
}
}