void GuiInfoGranary::paint() { //Font &font_red = FontCollection::instance().getFont(FONT_2_RED); Font font = Font::create( FONT_2 ); // summary: total stock, free capacity int _paintY = _d->lbTitle->getBottom(); int currentQty = _gd->building->getGoodStore().getCurrentQty(); int maxQty = _gd->building->getGoodStore().getMaxQty(); std::string desc = StringHelper::format( 0xff, _("%d unites en stock. Espace pour %d unites."), currentQty, maxQty-currentQty); font.draw( *_d->bgPicture, desc, 16, _paintY+5, false ); _paintY+=40; int _col2PaintY = _paintY; drawGood(G_WHEAT, 0, _paintY); drawGood(G_MEAT, 0, _paintY); drawGood(G_FRUIT, 1, _col2PaintY); drawGood(G_VEGETABLE, 1, _col2PaintY); _paintY+=12; GuiPaneling::instance().draw_black_frame(*_d->bgPicture, 16, _paintY, getWidth()-32, 62); _paintY+=12; drawWorkers( _paintY ); }
void InfoBoxHouse::_paint() { int lbHeight = 20; GuiPaneling::instance().draw_black_frame( *_d->bgPicture, 16, 150, _d->btnExit->getRight() - _d->btnHelp->getLeft(), _d->btnExit->getTop() - 150 - 5 ); drawHabitants(); int taxes = -1; // _house->getMonthlyTaxes(); Label* taxesLb = new Label( this, Rect( 16 + 15, _ed->lbHabitants->getBottom(), getWidth() - 16, _ed->lbHabitants->getBottom() + lbHeight ) ); char buffer[200]; if (taxes == -1) { sprintf(buffer, _("Aucun percepteur ne passe ici. Ne paye pas de taxes")); taxesLb->setFont( Font::create( FONT_2_RED ) ); } else { sprintf(buffer, _("Paye %d Denarii de taxes par mois"), taxes); } taxesLb->setText( buffer ); //_paintY+=22; _ed->lbCrime = new Label( this, taxesLb->getRelativeRect() + Point( 0, 22 ) ); sprintf(buffer, _("Inhabitants didn't report about crimes")); _ed->lbCrime->setText( buffer ); int startY = _ed->lbCrime->getBottom() + 10; if( _ed->house->getLevelSpec().getHouseLevel() > 2 ) { drawGood(G_WHEAT, 0, 0, startY ); } else { Label* lb = new Label( this, _ed->lbCrime->getRelativeRect() + Point( 0, 30 ) ); lb->setHeight( 40 ); lb->setLineIntervalOffset( -6 ); lb->setText( _("Inabitants of tents provide food themselves, conducting a subsistence economy") ); lb->setWordWrap( true ); startY = lb->getTop(); } drawGood(G_POTTERY, 0, 1, startY); drawGood(G_FURNITURE, 1, 1, startY); drawGood(G_OIL, 2, 1, startY); drawGood(G_WINE, 3, 1, startY); }
AboutGranary::AboutGranary(Widget* parent, PlayerCityPtr city, const Tile& tile ) : AboutConstruction( parent, Rect( 0, 0, 510, 280 ), Rect( 16, 130, 510 - 16, 130 + 62) ) { setupUI( ":/gui/granaryinfo.gui" ); _granary = ptr_cast<Granary>( tile.overlay() ); setBase( ptr_cast<Construction>( _granary ) ); _setWorkingVisible( true ); PushButton* btnOrders; Label* lbUnits; GET_WIDGET_FROM_UI( btnOrders ) GET_WIDGET_FROM_UI( lbUnits ) CONNECT( btnOrders, onClicked(), this, AboutGranary::showSpecialOrdersWindow ); std::string title = MetaDataHolder::findPrettyName( _granary->type() ); setTitle( _(title) ); if( lbUnits ) { // summary: total stock, free capacity std::string desc = utils::format( 0xff, "%d %s, %s %d", _granary->store().qty(), _("##units_in_stock##"), _("##freespace_for##"), _granary->store().freeQty() ); lbUnits->setPosition( _lbTitleRef()->leftbottom() + Point( 0, 5 ) ); lbUnits->setText( desc ); drawGood(good::wheat, 0, lbUnits->bottom() ); drawGood(good::meat, 0, lbUnits->bottom() + 25); drawGood(good::fruit, 1, lbUnits->bottom() ); drawGood(good::vegetable, 1, lbUnits->bottom() + 25); } _updateWorkersLabel( Point( 32, lbUnits->bottom() + 60 ), 542, _granary->maximumWorkers(), _granary->numberWorkers() ); }
void GuiInfoMarket::paint() { if( _md->market->getWorkers() > 0 ) { GoodStore& goods = _md->market->getGoodStore(); int furageSum = 0; // for all furage types of good for (int goodType = 0; goodType<G_OLIVE; ++goodType) { furageSum += goods.getCurrentQty( (GoodType)goodType ); } int paintY = 78; if( 0 < furageSum ) { drawGood(G_WHEAT, 0, paintY ); drawGood(G_FISH, 1, paintY); drawGood(G_MEAT, 2, paintY); drawGood(G_FRUIT, 3, paintY); drawGood(G_VEGETABLE, 4, paintY); _md->lbAbout->setHeight( 25 ); } else { _md->lbAbout->setHeight( 50 ); } paintY += 24; drawGood(G_POTTERY, 0, paintY); drawGood(G_FURNITURE, 1, paintY); drawGood(G_OIL, 2, paintY); drawGood(G_WINE, 3, paintY); _md->lbAbout->setText( 0 == furageSum ? _("##market_search_food_source##") : _("##market_about##")); } else { _md->lbAbout->setHeight( 50 ); _md->lbAbout->setText( _("##market_not_work##") ); } drawWorkers(); }
InfoBoxWarehouse::InfoBoxWarehouse( Widget* parent, const Tile& tile ) : InfoBoxSimple( parent, Rect( 0, 0, 510, 360 ), Rect( 16, 225, 510 - 16, 225 + 62 ) ) { _warehouse = tile.getOverlay().as<Warehouse>(); Size btnOrdersSize( 350, 20 ); PushButton* btnOrders = new PushButton( this, Rect( Point( (getWidth() - btnOrdersSize.getWidth()) / 2, getHeight() - 34 ), btnOrdersSize ), _("##special_orders##"), -1, false, PushButton::whiteBorderUp ); CONNECT( btnOrders, onClicked(), this, InfoBoxWarehouse::showSpecialOrdersWindow ); setTitle( MetaDataHolder::getPrettyName( _warehouse->getType() ) ); // summary: total stock, free capacity int _paintY = _getTitle()->getBottom(); drawGood(Good::wheat, 0, _paintY+25); drawGood(Good::vegetable, 0, _paintY+50); drawGood(Good::fruit, 0, _paintY+75); drawGood(Good::olive, 0, _paintY+100); drawGood(Good::grape, 0, _paintY+125); drawGood(Good::fish, 0, _paintY+150); drawGood(Good::meat, 1, _paintY+25); drawGood(Good::wine, 1, _paintY+50); drawGood(Good::oil, 1, _paintY+75); drawGood(Good::iron, 1, _paintY+100); drawGood(Good::timber, 1, _paintY+125); drawGood(Good::clay, 2, _paintY+25); drawGood(Good::marble, 2, _paintY+50); drawGood(Good::weapon, 2, _paintY+75); drawGood(Good::furniture, 2, _paintY+100); drawGood(Good::pottery, 2, _paintY+125); _drawWorkers( Point( 16 + 20, 225 + 10 ), 542, _warehouse->getMaxWorkers(), _warehouse->getWorkersCount() ); }
AboutWarehouse::AboutWarehouse(Widget* parent, PlayerCityPtr city, const Tile& tile ) : AboutConstruction( parent, Rect( 0, 0, 510, 360 ), Rect( 16, 225, 510 - 16, 225 + 62 ) ) { setupUI( ":/gui/warehouseinfo.gui" ); _warehouse = ptr_cast<Warehouse>( tile.overlay() ); setBase( ptr_cast<Construction>( _warehouse ) ); _setWorkingVisible( true ); /*StringArray warnings; if( _warehouse->onlyDispatchGoods() ) { warnings << "##warehouse_low_personal_warning##"; } if( _warehouse->getGoodStore().freeQty() == 0 ) { warnings << "##warehouse_full_warning##"; } if( !warnings.empty() ) { Label* lb = new Label( this, Rect( 20, height() - 54, width() - 20, height() - 34 ), _(warnings.rand()) ); lb->setTextAlignment( alignCenter, alignCenter ); }*/ PushButton* btnOrders; GET_WIDGET_FROM_UI( btnOrders ); CONNECT( btnOrders, onClicked(), this, AboutWarehouse::showSpecialOrdersWindow ); std::string title = MetaDataHolder::findPrettyName( _warehouse->type() ); setTitle( _(title) ); // summary: total stock, free capacity int _paintY = _lbTitleRef() ? _lbTitleRef()->bottom() : 50; drawGood(good::wheat, 0, _paintY+0); drawGood(good::vegetable, 0, _paintY+25); drawGood(good::fruit, 0, _paintY+50); drawGood(good::olive, 0, _paintY+75); drawGood(good::grape, 0, _paintY+100); drawGood(good::fish, 0, _paintY+125); drawGood(good::meat, 1, _paintY+0); drawGood(good::wine, 1, _paintY+25); drawGood(good::oil, 1, _paintY+50); drawGood(good::iron, 1, _paintY+75); drawGood(good::timber, 1, _paintY+100); drawGood(good::clay, 2, _paintY+0); drawGood(good::marble, 2, _paintY+25); drawGood(good::weapon, 2, _paintY+50); drawGood(good::furniture, 2, _paintY+75); drawGood(good::pottery, 2, _paintY+100); _updateWorkersLabel( Point( 20, 10 ), 542, _warehouse->maximumWorkers(), _warehouse->numberWorkers() ); }
void InfoBoxWarehouse::paint() { //Font &font_red = FontCollection::instance().getFont(FONT_2_RED); Font font = Font::create( FONT_2 ); // summary: total stock, free capacity int _paintY = _d->lbTitle->getBottom(); int _col2PaintY = _paintY; drawGood(G_WHEAT, 0, _paintY); drawGood(G_VEGETABLE, 0, _paintY); drawGood(G_FRUIT, 0, _paintY); drawGood(G_OLIVE, 0, _paintY); drawGood(G_GRAPE, 0, _paintY); _paintY = _col2PaintY; drawGood(G_MEAT, 1, _paintY); drawGood(G_WINE, 1, _paintY); drawGood(G_OIL, 1, _paintY); drawGood(G_IRON, 1, _paintY); drawGood(G_TIMBER, 1, _paintY); _paintY = _col2PaintY; drawGood(G_CLAY, 2, _paintY); drawGood(G_MARBLE, 2, _paintY); drawGood(G_WEAPON, 2, _paintY); drawGood(G_FURNITURE, 2, _paintY); drawGood(G_POTTERY, 2, _paintY); _wd->workerFramePos = Point( 16, 170 ); GuiPaneling::instance().draw_black_frame(*_d->bgPicture, _wd->workerFramePos.getX(), _wd->workerFramePos.getY(), getWidth()-32, 62); drawWorkers(); }