当前位置: 首页>>代码示例>>C++>>正文


C++ WidgetPtr::object方法代码示例

本文整理汇总了C++中WidgetPtr::object方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetPtr::object方法的具体用法?C++ WidgetPtr::object怎么用?C++ WidgetPtr::object使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在WidgetPtr的用法示例。


在下文中一共展示了WidgetPtr::object方法的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();
    }
  }
}
开发者ID:binakot,项目名称:caesaria-game,代码行数:60,代码来源:environment.cpp

示例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();
    }
  }
}
开发者ID:binakot,项目名称:caesaria-game,代码行数:44,代码来源:environment.cpp


注:本文中的WidgetPtr::object方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。