void BarView::draw(Painter &painter) { painter.setFillColor(Color(0,0xAA,0,255)); if((int)(width*value)>0 && dir) { painter.fillRectangle(Rect2D(0,0,width*value,height)); } else if((int)(width*value)<0 && !dir) { painter.setFillColor(Color(0xFF,0,0,255)); painter.fillRectangle(Rect2D(width-1+width*value,0,width-1,height)); } }
void EconomyGraph::draw( Painter& painter ){ Color white; white.parse( "white" ); Rect2D background( 0, 0, getWidth(), getHeight() ); int mgX = border; int mgY = 3*border; int mgW = getConfig()->monthgraphW; int mgH = getConfig()->monthgraphH; painter.setFillColor( white ); painter.fillRectangle( background ); Vector2 labelPos( 2 * border, border-1 ); //Draw HistoryLineGraph painter.drawTexture( labelTextureEconomy, labelPos ); Rect2D currentGraph( mgX, mgY, mgX + mgW, mgY + mgH ); drawHistoryLineGraph( painter, currentGraph ); //Draw Sustainability Bars labelPos.y += 2 * border + mgH; painter.drawTexture( labelTextureSustainability, labelPos ); currentGraph.move( Vector2( 0, 2 * border + mgH ) ); drawSustBarGraph( painter, currentGraph); //Draw FPS-Window labelPos.y += 2 * border + mgH; painter.drawTexture( labelTextureFPS, labelPos ); currentGraph.move( Vector2( 0, 2 * border + mgH ) ); currentGraph.setHeight( mgH/2 ); drawFPSGraph( painter, currentGraph ); }
void EconomyGraph::drawFPSGraph( Painter& painter, Rect2D fpsRect ){ Color grey, blue; blue.parse( "blue" ); grey.parse("#A9A9A9FF"); int mgX = (int) fpsRect.p1.x; int mgY = (int) fpsRect.p1.y; int mgW = (int) fpsRect.getWidth(); int mgH = (int) fpsRect.getHeight(); painter.setFillColor( grey ); painter.fillRectangle( fpsRect ); painter.setClipRectangle( fpsRect ); Vector2 a; Vector2 b; painter.setLineColor( blue ); float scale = (float) mgH / 64; //MONTHGRAPH_H ; b.y = mgY + mgH; for( int i = mgW - 1; i >= 0; i-- ){ a.x = mgX + mgW - i; a.y = mgY + mgH - scale * fps[i]; b.x = mgX + mgW - i; painter.drawLine( a, b ); } painter.clearClipRectangle(); }
void Document::draw(Painter& painter) { if(style.background.a != 0) { painter.setFillColor(style.background); painter.fillRectangle(Rect2D(0, 0, width, height)); } Component::draw(painter); }
void EconomyGraph::drawHistoryLineGraph( Painter& painter, Rect2D mg ){ // see oldgui/screen.cpp do_history_linegraph Vector2 a; Vector2 b; Color red, yellow, blue, brown, grey; red.parse( "red"); yellow.parse( "yellow" ); blue.parse( "blue" ); brown.parse( "brown" ); grey.parse("#A9A9A9FF"); painter.setClipRectangle( mg ); painter.setFillColor( grey ); painter.fillRectangle( mg ); int mgX = (int) mg.p1.x; int mgY = (int) mg.p1.y; int mgW = (int) mg.getWidth(); int mgH = (int) mg.getHeight(); float scale = (float) mgH / 64; //MONTHGRAPH_H ; b.y = mgY + mgH; for( int i = mgW - 1; i >= 0; i-- ){ painter.setLineColor( yellow ); a.x = mgX + mgW - i; a.y = mgY + mgH - scale * monthgraph_nojobs[i]; b.x = mgX + mgW - i; painter.drawLine( a, b ); painter.setLineColor( red ); a.y = mgY + mgH - scale * monthgraph_starve[i]; painter.drawLine( a, b ); } for( int i = mgW - 1; i > 0; i-- ){ painter.setLineColor( brown ); a.x = mgX + mgW - i; a.y = mgY + mgH - scale * monthgraph_pop[ i ]; b.x = mgX + mgW - i-1; b.y = mgY + mgH - scale * monthgraph_pop[ i-1 ]; painter.drawLine( a, b ); a.y = mgY + mgH - scale * monthgraph_ppool[ i ]; b.y = mgY + mgH - scale * monthgraph_ppool[ i-1 ]; painter.setLineColor( blue ); painter.drawLine( a, b ); } painter.clearClipRectangle(); }
void EconomyGraph::drawSustBarGraph( Painter& painter, Rect2D mg ){ // see oldgui/screen.cpp do_sust_barchart Color grey,yellow,orange,black,green,blue,red; grey.parse( "#A9A9A9FF" ); yellow.parse( "yellow" ); orange.parse( "orange" ); black.parse( "black" ); green.parse( "green" ); blue.parse( "blue" ); red.parse( "red" ); painter.setFillColor( grey ); painter.fillRectangle( mg ); int mgX = (int) mg.p1.x; int mgY = (int) mg.p1.y; int mgW = (int) mg.getWidth(); int mgH = (int) mg.getHeight(); Vector2 a, b, p; #define SUST_BAR_H 5 #define SUST_BAR_GAP_Y 5 /* draw the starting line */ a.x = mgX + 38; a.y = mgY; b.x = mgX + 38; b.y = mgY + mgH; p.x = mgX; p.y = mgY; painter.setLineColor( yellow ); painter.drawLine( a, b); Rect2D bar; bar.p1.x = mgX + 36; bar.p1.y = mgY + SUST_BAR_GAP_Y; bar.setHeight( SUST_BAR_H ); int maxBarLen = mgW - 40; int newLen; int len; /* ore coal */ newLen = maxBarLen * sust_dig_ore_coal_count / SUST_ORE_COAL_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( orange ); painter.fillRectangle( bar ); painter.drawTexture( labelTextureMIN, p ); /* import export */ p.y += SUST_BAR_H + SUST_BAR_GAP_Y ; newLen = maxBarLen * sust_port_count / SUST_PORT_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( black ); bar.move( Vector2( 0, SUST_BAR_H + SUST_BAR_GAP_Y ) ); painter.fillRectangle( bar ); painter.drawTexture( labelTexturePRT, p ); /* money */ p.y += SUST_BAR_H + SUST_BAR_GAP_Y ; newLen = maxBarLen * sust_old_money_count / SUST_MONEY_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( green ); bar.move( Vector2( 0, SUST_BAR_H + SUST_BAR_GAP_Y ) ); painter.fillRectangle( bar ); painter.drawTexture( labelTextureMNY, p ); /* population */ p.y += SUST_BAR_H + SUST_BAR_GAP_Y ; newLen = maxBarLen * sust_old_population_count / SUST_POP_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( blue ); bar.move( Vector2( 0, SUST_BAR_H + SUST_BAR_GAP_Y ) ); painter.fillRectangle( bar ); painter.drawTexture( labelTexturePOP, p ); /* tech */ p.y += SUST_BAR_H + SUST_BAR_GAP_Y ; newLen = maxBarLen * sust_old_tech_count / SUST_TECH_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( yellow ); bar.move( Vector2( 0, SUST_BAR_H + SUST_BAR_GAP_Y ) ); painter.fillRectangle( bar ); painter.drawTexture( labelTextureTEC, p ); /* fire */ p.y += SUST_BAR_H + SUST_BAR_GAP_Y ; newLen = maxBarLen * sust_fire_count / SUST_FIRE_YEARS_NEEDED; len = 3 + ( ( newLen > maxBarLen ) ? maxBarLen : newLen ); bar.setWidth( len ); painter.setFillColor( red ); bar.move( Vector2( 0, SUST_BAR_H + SUST_BAR_GAP_Y ) ); painter.fillRectangle( bar ); painter.drawTexture( labelTextureFIR, p ); }