Changeset - r22927:c74ea0b45d3e
[Not reviewed]
master
0 3 0
Jonathan G Rennison - 6 years ago 2018-06-24 11:00:41
j.g.rennison@gmail.com
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.
3 files changed with 44 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/lang/english.txt
Show inline comments
 
@@ -2288,6 +2288,7 @@ STR_LINKGRAPH_LEGEND_CAPTION            
 
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
src/linkgraph/linkgraph_gui.cpp
Show inline comments
 
@@ -319,7 +319,7 @@ void LinkGraphOverlay::SetCompanyMask(ui
 
/** 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(c
 
	}
 
}
 

	
 
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.
 
 */
src/linkgraph/linkgraph_gui.h
Show inline comments
 
@@ -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 */
0 comments (0 inline, 0 general)