forked from mirror/OpenTTD
(svn r20453) -Codechange: Remove direct accesses to Window::hscroll, vscroll and vscroll2.
Note: All windows get individual members with the same names, which are initialised via Window::GetScrollbar(). This caching is not required at all, but simplifies conversion.
This commit is contained in:
@@ -240,6 +240,7 @@ struct SaveLoadWindow : public QueryStringBaseWindow {
|
||||
private:
|
||||
FiosItem o_dir;
|
||||
const FiosItem *selected;
|
||||
Scrollbar *vscroll;
|
||||
public:
|
||||
|
||||
void GenerateFileName()
|
||||
@@ -269,9 +270,10 @@ public:
|
||||
this->afilter = CS_ALPHANUMERAL;
|
||||
InitializeTextBuffer(&this->text, this->edit_str_buf, this->edit_str_size, 240);
|
||||
|
||||
this->CreateNestedTree(desc);
|
||||
this->CreateNestedTree(desc, true);
|
||||
if (mode == SLD_LOAD_GAME) this->GetWidget<NWidgetStacked>(SLWW_CONTENT_DOWNLOAD_SEL)->SetDisplayedPlane(SZSP_HORIZONTAL);
|
||||
this->GetWidget<NWidgetCore>(SLWW_WINDOWTITLE)->widget_data = saveload_captions[mode];
|
||||
this->vscroll = this->GetScrollbar(SLWW_SCROLLBAR);
|
||||
|
||||
this->FinishInitNested(desc, 0);
|
||||
|
||||
@@ -353,7 +355,7 @@ public:
|
||||
GfxFillRect(r.left + 1, r.top + 1, r.right, r.bottom, 0xD7);
|
||||
|
||||
uint y = r.top + WD_FRAMERECT_TOP;
|
||||
for (uint pos = this->vscroll.GetPosition(); pos < _fios_items.Length(); pos++) {
|
||||
for (uint pos = this->vscroll->GetPosition(); pos < _fios_items.Length(); pos++) {
|
||||
const FiosItem *item = _fios_items.Get(pos);
|
||||
|
||||
if (item == this->selected) {
|
||||
@@ -361,7 +363,7 @@ public:
|
||||
}
|
||||
DrawString(r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, y, item->title, _fios_colours[item->type]);
|
||||
y += this->resize.step_height;
|
||||
if (y >= this->vscroll.GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break;
|
||||
if (y >= this->vscroll->GetCapacity() * this->resize.step_height + r.top + WD_FRAMERECT_TOP) break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -483,7 +485,7 @@ public:
|
||||
MakeSortedSaveGameList();
|
||||
}
|
||||
|
||||
this->vscroll.SetCount(_fios_items.Length());
|
||||
this->vscroll->SetCount(_fios_items.Length());
|
||||
this->DrawWidgets();
|
||||
|
||||
if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
|
||||
@@ -534,7 +536,7 @@ public:
|
||||
break;
|
||||
|
||||
case SLWW_DRIVES_DIRECTORIES_LIST: { // Click the listbox
|
||||
int y = this->vscroll.GetScrolledRowFromWidget(pt.y, this, SLWW_DRIVES_DIRECTORIES_LIST, WD_FRAMERECT_TOP);
|
||||
int y = this->vscroll->GetScrolledRowFromWidget(pt.y, this, SLWW_DRIVES_DIRECTORIES_LIST, WD_FRAMERECT_TOP);
|
||||
if (y == INT_MAX) return;
|
||||
|
||||
const FiosItem *file = _fios_items.Get(y);
|
||||
@@ -647,7 +649,7 @@ public:
|
||||
|
||||
virtual void OnResize()
|
||||
{
|
||||
this->vscroll.SetCapacityFromWidget(this, SLWW_DRIVES_DIRECTORIES_LIST);
|
||||
this->vscroll->SetCapacityFromWidget(this, SLWW_DRIVES_DIRECTORIES_LIST);
|
||||
}
|
||||
|
||||
virtual void OnInvalidateData(int data)
|
||||
|
Reference in New Issue
Block a user