Index: src/group_gui.cpp =================================================================== --- src/group_gui.cpp (revision 21289) +++ src/group_gui.cpp (working copy) @@ -51,6 +51,7 @@ GRP_WIDGET_DELETE_GROUP, GRP_WIDGET_RENAME_GROUP, GRP_WIDGET_REPLACE_PROTECTION, + GRP_WIDGET_GROUP_INFO, }; static const NWidgetPart _nested_group_widgets[] = { @@ -71,6 +72,7 @@ SetFill(1, 0), SetResize(0, 1), SetScrollbar(GRP_WIDGET_LIST_GROUP_SCROLLBAR), NWidget(NWID_VSCROLLBAR, COLOUR_GREY, GRP_WIDGET_LIST_GROUP_SCROLLBAR), EndContainer(), + NWidget(WWT_PANEL, COLOUR_GREY, GRP_WIDGET_GROUP_INFO), SetMinimalSize(200, 25), SetFill(1, 0), EndContainer(), NWidget(NWID_HORIZONTAL), NWidget(WWT_PUSHIMGBTN, COLOUR_GREY, GRP_WIDGET_CREATE_GROUP), SetMinimalSize(24, 25), SetFill(0, 1), SetDataTip(SPR_GROUP_CREATE_TRAIN, STR_GROUP_CREATE_TOOLTIP), @@ -221,7 +223,7 @@ this->tiny_step_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP; resize->height = this->tiny_step_height; /* Minimum height is the height of the list widget minus all and default vehicles and a bit for the bottom bar */ - size->height = 4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height) - (this->tiny_step_height > 25 ? 2 : 3) * this->tiny_step_height; + size->height = (4 * GetVehicleListHeight(this->vli.vtype, this->tiny_step_height) - (this->tiny_step_height > 25 ? 2 : 3) * this->tiny_step_height) - 25; break; case GRP_WIDGET_ALL_VEHICLES: @@ -371,6 +373,29 @@ STR_GROUP_DEFAULT_TRAINS + this->vli.vtype, IsDefaultGroupID(this->vli.index) ? TC_WHITE : TC_BLACK); break; + case GRP_WIDGET_GROUP_INFO: { + Money this_year = 0; + Money last_year = 0; + + for (uint i = 0; i < this->vehicles.Length(); i++) { + const Vehicle *v = this->vehicles[i]; + + assert(v->owner == this->owner); + + if (this->vli.index == ALL_GROUP || v->group_id == this->vli.index) { + this_year += v->GetDisplayProfitThisYear(); + last_year += v->GetDisplayProfitLastYear(); + } + } + + SetDParam(0, this_year); + DrawString(r.left + WD_FRAMERECT_LEFT + 8, r.right - WD_FRAMERECT_RIGHT - 8, r.top + WD_FRAMERECT_TOP + 1, STR_GROUP_PROFIT_THIS_YEAR, TC_BLACK); + SetDParam(0, last_year); + DrawString(r.left + WD_FRAMERECT_LEFT + 8, r.right - WD_FRAMERECT_RIGHT - 8, r.top + WD_FRAMERECT_TOP + FONT_HEIGHT_NORMAL + 2, STR_GROUP_PROFIT_LAST_YEAR, TC_BLACK); + + break; + } + case GRP_WIDGET_LIST_GROUP: { int y1 = r.top + WD_FRAMERECT_TOP + 1; int max = min(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.Length()); @@ -639,7 +664,6 @@ } }; - static WindowDesc _other_group_desc( WDP_AUTO, 460, 246, WC_INVALID, WC_NONE, Index: src/lang/english.txt =================================================================== --- src/lang/english.txt (revision 21289) +++ src/lang/english.txt (working copy) @@ -2806,6 +2806,10 @@ STR_GROUP_RENAME_CAPTION :{BLACK}Rename a group +STR_GROUP_PROFIT_THIS_YEAR :{BLACK}Profit this year: {CURRENCY} +STR_GROUP_PROFIT_LAST_YEAR :{BLACK}Profit last year: {CURRENCY} + + # Build vehicle window STR_BUY_VEHICLE_TRAIN_RAIL_CAPTION :New Rail Vehicles STR_BUY_VEHICLE_TRAIN_ELRAIL_CAPTION :New Electric Rail Vehicles