void AdvisorFinanceWindow::draw( GfxEngine& painter )
{
  if( !isVisible() )
    return;

  painter.drawPicture( *_d->background, getScreenLeft(), getScreenTop() );

  Widget::draw( painter );
}
void AdvisorsWindow::draw( GfxEngine& engine )
{
  if( !isVisible() )
    return;

  engine.drawPicture( *_d->background, Point( 0, 0 ) );

  Widget::draw( engine );
}
void PopupMessageBox::draw( GfxEngine& painter )
{
  if( !isVisible() )
    return;

  painter.drawPicture( *_d->background, getScreenLeft(), getScreenTop() );

  Widget::draw( painter );
}
Beispiel #4
0
//! draws the element and its children
void GroupBox::draw( GfxEngine& painter )
{
    if (!isVisible())
        return;

    painter.drawPicture( *_d->texture, getScreenLeft(), getScreenTop(), &getAbsoluteClippingRectRef() );

    Widget::draw( painter );
}
Beispiel #5
0
//! draws the element and its children
void ScrollBar::draw( GfxEngine& painter )
{
	if (!isVisible())
		return;

  //draw background
  if( _d->texture.isValid() )
  {
      painter.drawPicture( _d->texture, getAbsoluteRect().UpperLeftCorner );
  }

  //draw slider
  if( _d->sliderTexture.isValid() )
  {
    painter.drawPicture( _d->sliderTexture, _d->sliderRect.UpperLeftCorner );
  }

	// draw buttons
	Widget::draw( painter );
}
void Minimap::draw(GfxEngine& painter)
{
  if( !isVisible() )
    return;

  if( DateTime::getElapsedTime() - _d->lastTimeUpdate > 500 )
  {
    _d->updateImage();
    _d->lastTimeUpdate = DateTime::getElapsedTime();
  }

  painter.drawPicture( *_d->minimap, getScreenLeft(), getScreenTop() ); // 152, 145

  Widget::draw( painter );
}
void SenatePopupInfo::draw( GfxEngine& painter )
{
  Point cursorPos = getEnvironment()->getCursorPos();

  Tile* tile = _d->mapRenderer->getTile( cursorPos, false );

  if( tile )
  {
    SmartPtr< Senate > senate = tile->getOverlay().as< Senate >();

    if( senate.isValid() )
    {
      if( DateTime::getElapsedTime() - _d->lastUpdateTime > 2000 )
      {
        _d->updateRatings();
      }

      painter.drawPicture( *_d->background, cursorPos );     
    }
  }
}
Beispiel #8
0
void LayerHealth::drawTile(GfxEngine& engine, Tile& tile, Point offset)
{
  Point screenPos = tile.getXY() + offset;

  tile.setWasDrawn();

  bool needDrawAnimations = false;
  if( tile.getOverlay().isNull() )
  {
    //draw background
    engine.drawPicture( tile.getPicture(), screenPos );
  }
  else
  {
    TileOverlayPtr overlay = tile.getOverlay();

    int healthLevel = -1;
    switch( overlay->getType() )
    {
      //fire buildings and roads
    case construction::road:
    case construction::B_PLAZA:
      needDrawAnimations = true;
      engine.drawPicture( tile.getPicture(), screenPos );
    break;

    case building::B_DOCTOR:
    case building::B_HOSPITAL:
    case building::B_BARBER:
    case building::B_BATHS:
      needDrawAnimations = _flags.count( overlay->getType() );
      if( needDrawAnimations )
      {
        engine.drawPicture( tile.getPicture(), screenPos );
      }
      else
      {
        CityHelper helper( _city );
        drawArea( engine, helper.getArea( overlay ), offset, ResourceGroup::foodOverlay, OverlayPic::base );
      }
    break;

      //houses
    case building::house:
      {
        HousePtr house = overlay.as< House >();

        if( _flags.count( building::B_DOCTOR ) ) { healthLevel = house->getHealthLevel(); }
        else if( _flags.count( building::B_HOSPITAL ) ) { healthLevel = house->getServiceValue( Service::hospital ); }
        else if( _flags.count( building::B_BARBER ) ) { healthLevel = house->getServiceValue( Service::barber ); }
        else if( _flags.count( building::B_BATHS ) ) { healthLevel = house->getServiceValue( Service::baths ); }

        needDrawAnimations = (house->getSpec().getLevel() == 1) && (house->getHabitants().size() == 0);

        CityHelper helper( _city );
        drawArea( engine, helper.getArea( overlay ), offset, ResourceGroup::foodOverlay, OverlayPic::inHouseBase );
      }
    break;

      //other buildings
    default:
      {
        CityHelper helper( _city );
        drawArea( engine, helper.getArea( overlay ), offset, ResourceGroup::foodOverlay, OverlayPic::base );
      }
    break;
    }

    if( needDrawAnimations )
    {
      _renderer->registerTileForRendering( tile );
    }
    else if( healthLevel > 0 )
    {
      drawColumn( engine, screenPos, 9, healthLevel );
    }
  }
}
void GuiInfoBox::draw( GfxEngine& engine )
{
  engine.drawPicture( getBgPicture(), getScreenLeft(), getScreenTop() );
  Widget::draw( engine );
}
void BaseSpecialOrdersWindow::draw( GfxEngine& engine )
{
  engine.drawPicture( *_d->bgPicture, getScreenLeft(), getScreenTop() );
  Widget::draw( engine );
}