(svn r20216) -Fix: Increase scrolling speed of industry cargoes window, enlarge height slightly so small chains fit by default.

This commit is contained in:
alberth 2010-07-25 12:38:06 +00:00
parent 43b4d23b07
commit b59a6a53de
1 changed files with 10 additions and 7 deletions

View File

@ -1290,7 +1290,7 @@ static const NWidgetPart _nested_industry_cargoes_widgets[] = {
NWidget(WWT_STICKYBOX, COLOUR_BROWN),
EndContainer(),
NWidget(NWID_HORIZONTAL),
NWidget(WWT_PANEL, COLOUR_BROWN, ICW_PANEL), SetResize(1, 1), SetMinimalSize(200, 90), EndContainer(),
NWidget(WWT_PANEL, COLOUR_BROWN, ICW_PANEL), SetResize(1, 10), SetMinimalSize(200, 90), EndContainer(),
NWidget(NWID_VERTICAL),
NWidget(WWT_SCROLLBAR, COLOUR_BROWN, ICW_SCROLLBAR),
NWidget(WWT_RESIZEBOX, COLOUR_BROWN),
@ -1300,7 +1300,7 @@ static const NWidgetPart _nested_industry_cargoes_widgets[] = {
/** Window description for the industry cargoes window. */
static const WindowDesc _industry_cargoes_desc(
WDP_AUTO, 300, 200,
WDP_AUTO, 300, 210,
WC_INDUSTRY_CARGOES, WC_NONE,
0,
_nested_industry_cargoes_widgets, lengthof(_nested_industry_cargoes_widgets)
@ -2147,7 +2147,8 @@ struct IndustryCargoesWindow : public Window {
this->ShortenCargoColumn(1, 1, num_indrows);
this->ShortenCargoColumn(3, 1, num_indrows);
this->vscroll.SetCount(WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + CargoesField::small_height + num_indrows * CargoesField::normal_height);
const NWidgetBase *nwp = this->GetWidget<NWidgetBase>(ICW_PANEL);
this->vscroll.SetCount(CeilDiv(WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + CargoesField::small_height + num_indrows * CargoesField::normal_height, nwp->resize_y));
this->SetDirty();
}
@ -2210,7 +2211,8 @@ struct IndustryCargoesWindow : public Window {
}
this->ShortenCargoColumn(1, 1, num_indrows);
this->vscroll.SetCount(WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + CargoesField::small_height + num_indrows * CargoesField::normal_height);
const NWidgetBase *nwp = this->GetWidget<NWidgetBase>(ICW_PANEL);
this->vscroll.SetCount(CeilDiv(WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM + CargoesField::small_height + num_indrows * CargoesField::normal_height, nwp->resize_y));
this->SetDirty();
}
@ -2239,7 +2241,8 @@ struct IndustryCargoesWindow : public Window {
if (this->ind_cargo >= NUM_INDUSTRYTYPES) left_pos += (CargoesField::industry_width + CargoesField::CARGO_FIELD_WIDTH) / 2;
int last_column = (this->ind_cargo < NUM_INDUSTRYTYPES) ? 4 : 2;
int vpos = -this->vscroll.GetPosition();
const NWidgetBase *nwp = this->GetWidget<NWidgetBase>(ICW_PANEL);
int vpos = -this->vscroll.GetPosition() * nwp->resize_y;
for (uint i = 0; i < this->fields.Length(); i++) {
int row_height = (i == 0) ? CargoesField::small_height : CargoesField::normal_height;
if (vpos + row_height >= 0) {
@ -2274,11 +2277,11 @@ struct IndustryCargoesWindow : public Window {
*/
bool CalculatePositionInWidget(Point pt, Point *fieldxy, Point *xy)
{
NWidgetBase *nw = this->GetWidget<NWidgetBase>(ICW_PANEL);
const NWidgetBase *nw = this->GetWidget<NWidgetBase>(ICW_PANEL);
pt.x -= nw->pos_x;
pt.y -= nw->pos_y;
int vpos = WD_FRAMERECT_TOP + CargoesField::small_height - this->vscroll.GetPosition();
int vpos = WD_FRAMERECT_TOP + CargoesField::small_height - this->vscroll.GetPosition() * nw->resize_y;
if (pt.y < vpos) return false;
int row = (pt.y - vpos) / CargoesField::normal_height; // row is relative to row 1.