mirror of https://github.com/OpenTTD/OpenTTD
Add: Hover tool-tips to cargo dest flow legend window.
This is to improve the usability of the window. The two-letter abbreviations are not always clear, in particular when using a large number of cargoes. The company colours can be ambiguous when there are a large number of companies.pull/6841/head
parent
6298b96571
commit
dc8fff2c4d
|
@ -2288,6 +2288,7 @@ STR_LINKGRAPH_LEGEND_CAPTION :{BLACK}Cargo Fl
|
|||
STR_LINKGRAPH_LEGEND_ALL :{BLACK}All
|
||||
STR_LINKGRAPH_LEGEND_NONE :{BLACK}None
|
||||
STR_LINKGRAPH_LEGEND_SELECT_COMPANIES :{BLACK}Select companies to be displayed
|
||||
STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP :{BLACK}{STRING}{}{COMPANY}
|
||||
|
||||
# Linkgraph legend window and linkgraph legend in smallmap
|
||||
STR_LINKGRAPH_LEGEND_UNUSED :{TINY_FONT}{BLACK}unused
|
||||
|
|
|
@ -319,7 +319,7 @@ void LinkGraphOverlay::SetCompanyMask(uint32 company_mask)
|
|||
/** Make a number of rows with buttons for each company for the linkgraph legend window. */
|
||||
NWidgetBase *MakeCompanyButtonRowsLinkGraphGUI(int *biggest_index)
|
||||
{
|
||||
return MakeCompanyButtonRows(biggest_index, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST, 3, STR_LINKGRAPH_LEGEND_SELECT_COMPANIES);
|
||||
return MakeCompanyButtonRows(biggest_index, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST, 3, STR_NULL);
|
||||
}
|
||||
|
||||
NWidgetBase *MakeSaturationLegendLinkGraphGUI(int *biggest_index)
|
||||
|
@ -500,6 +500,44 @@ void LinkGraphLegendWindow::DrawWidget(const Rect &r, int widget) const
|
|||
}
|
||||
}
|
||||
|
||||
bool LinkGraphLegendWindow::OnHoverCommon(Point pt, int widget, TooltipCloseCondition close_cond)
|
||||
{
|
||||
if (IsInsideMM(widget, WID_LGL_COMPANY_FIRST, WID_LGL_COMPANY_LAST + 1)) {
|
||||
if (this->IsWidgetDisabled(widget)) {
|
||||
GuiShowTooltips(this, STR_LINKGRAPH_LEGEND_SELECT_COMPANIES, 0, NULL, close_cond);
|
||||
} else {
|
||||
uint64 params[2];
|
||||
CompanyID cid = (CompanyID)(widget - WID_LGL_COMPANY_FIRST);
|
||||
params[0] = STR_LINKGRAPH_LEGEND_SELECT_COMPANIES;
|
||||
params[1] = cid;
|
||||
GuiShowTooltips(this, STR_LINKGRAPH_LEGEND_COMPANY_TOOLTIP, 2, params, close_cond);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (IsInsideMM(widget, WID_LGL_CARGO_FIRST, WID_LGL_CARGO_LAST + 1)) {
|
||||
if (this->IsWidgetDisabled(widget)) return false;
|
||||
CargoSpec *cargo = CargoSpec::Get(widget - WID_LGL_CARGO_FIRST);
|
||||
uint64 params[1];
|
||||
params[0] = cargo->name;
|
||||
GuiShowTooltips(this, STR_BLACK_STRING, 1, params, close_cond);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
void LinkGraphLegendWindow::OnHover(Point pt, int widget)
|
||||
{
|
||||
this->OnHoverCommon(pt, widget, TCC_HOVER);
|
||||
}
|
||||
|
||||
bool LinkGraphLegendWindow::OnRightClick(Point pt, int widget)
|
||||
{
|
||||
if (_settings_client.gui.hover_delay_ms == 0) {
|
||||
return this->OnHoverCommon(pt, widget, TCC_RIGHT_CLICK);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the overlay with the new company selection.
|
||||
*/
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
#include "../company_func.h"
|
||||
#include "../station_base.h"
|
||||
#include "../widget_type.h"
|
||||
#include "../window_gui.h"
|
||||
#include "linkgraph_base.h"
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
@ -101,6 +102,8 @@ public:
|
|||
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize);
|
||||
virtual void DrawWidget(const Rect &r, int widget) const;
|
||||
virtual void OnHover(Point pt, int widget);
|
||||
virtual bool OnRightClick(Point pt, int widget);
|
||||
virtual void OnClick(Point pt, int widget, int click_count);
|
||||
virtual void OnInvalidateData(int data = 0, bool gui_scope = true);
|
||||
|
||||
|
@ -109,6 +112,7 @@ private:
|
|||
|
||||
void UpdateOverlayCompanies();
|
||||
void UpdateOverlayCargoes();
|
||||
bool OnHoverCommon(Point pt, int widget, TooltipCloseCondition close_cond);
|
||||
};
|
||||
|
||||
#endif /* LINKGRAPH_GUI_H */
|
||||
|
|
Loading…
Reference in New Issue