Debug: Add auto-refresh functionality to the debug window

pull/211/head
Jonathan G Rennison 4 years ago
parent c82f31bf03
commit 3ea0ffa46b

@ -3659,6 +3659,8 @@ STR_NEWGRF_PARAMETERS_NUM_PARAM :{LTBLUE}Number
STR_NEWGRF_INSPECT_CAPTION :{WHITE}Inspect - {STRING5}
STR_NEWGRF_INSPECT_PARENT_BUTTON :{BLACK}Parent
STR_NEWGRF_INSPECT_PARENT_TOOLTIP :{BLACK}Inspect the object of the parent scope
STR_NEWGRF_INSPECT_REFRESH :{BLACK}R
STR_NEWGRF_INSPECT_REFRESH_TOOLTIP :{BLACK}Toggle whether to refresh the contents every frame
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT :{STRING1} at {HEX}
STR_NEWGRF_INSPECT_CAPTION_OBJECT_AT_OBJECT :Object

@ -298,6 +298,8 @@ struct NewGRFInspectWindow : Window {
int first_variable_line_index = 0;
bool auto_refresh = false;
/**
* Check whether the given variable has a parameter.
* @param variable the variable to check.
@ -628,6 +630,13 @@ struct NewGRFInspectWindow : Window {
this->current_edit_param = niv->var;
ShowQueryString(STR_EMPTY, STR_NEWGRF_INSPECT_QUERY_CAPTION, 9, this, CS_HEXADECIMAL, QSF_NONE);
}
break;
}
case WID_NGRFI_REFRESH: {
this->auto_refresh = !this->auto_refresh;
this->SetWidgetLoweredState(WID_NGRFI_REFRESH, this->auto_refresh);
break;
}
}
}
@ -660,6 +669,11 @@ struct NewGRFInspectWindow : Window {
this->SetWidgetDisabledState(WID_NGRFI_VEH_NEXT, v == nullptr || v->Next() == nullptr);
}
}
void OnRealtimeTick(uint delta_ms) override
{
if (this->auto_refresh) this->SetDirty();
}
};
/* static */ uint32 NewGRFInspectWindow::var60params[GSF_FAKE_END][0x20] = { {0} }; // Use spec to have 0s in whole array
@ -668,6 +682,7 @@ static const NWidgetPart _nested_newgrf_inspect_chain_widgets[] = {
NWidget(NWID_HORIZONTAL),
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_NGRFI_CAPTION), SetDataTip(STR_NEWGRF_INSPECT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_NGRFI_REFRESH), SetDataTip(STR_NEWGRF_INSPECT_REFRESH, STR_NEWGRF_INSPECT_REFRESH_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),
@ -693,6 +708,7 @@ static const NWidgetPart _nested_newgrf_inspect_widgets[] = {
NWidget(WWT_CLOSEBOX, COLOUR_GREY),
NWidget(WWT_CAPTION, COLOUR_GREY, WID_NGRFI_CAPTION), SetDataTip(STR_NEWGRF_INSPECT_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
NWidget(WWT_PUSHTXTBTN, COLOUR_GREY, WID_NGRFI_PARENT), SetDataTip(STR_NEWGRF_INSPECT_PARENT_BUTTON, STR_NEWGRF_INSPECT_PARENT_TOOLTIP),
NWidget(WWT_TEXTBTN, COLOUR_GREY, WID_NGRFI_REFRESH), SetDataTip(STR_NEWGRF_INSPECT_REFRESH, STR_NEWGRF_INSPECT_REFRESH_TOOLTIP),
NWidget(WWT_SHADEBOX, COLOUR_GREY),
NWidget(WWT_DEFSIZEBOX, COLOUR_GREY),
NWidget(WWT_STICKYBOX, COLOUR_GREY),

@ -19,6 +19,7 @@ enum NewGRFInspectWidgets {
WID_NGRFI_VEH_CHAIN, ///< Display for vehicle chain.
WID_NGRFI_MAINPANEL, ///< Panel widget containing the actual data.
WID_NGRFI_SCROLLBAR, ///< Scrollbar.
WID_NGRFI_REFRESH, ///< Refresh toggle.
};
/** Widgets of the #SpriteAlignerWindow class. */

Loading…
Cancel
Save