Changeset - r26552:7634261ba1e2
[Not reviewed]
master
0 3 0
Peter Nelson - 20 months ago 2022-10-17 18:25:33
peter1138@openttd.org
Change: Align picker previews to button centre.
3 files changed with 77 insertions and 33 deletions:
0 comments (0 inline, 0 general)
src/dock_gui.cpp
Show inline comments
 
@@ -531,25 +531,35 @@ public:
 
		switch (widget) {
 
			case WID_BDD_X:
 
			case WID_BDD_Y:
 
				size->width  = ScaleGUITrad(96) + 2;
 
				size->height = ScaleGUITrad(64) + 2;
 
				size->width  = ScaleGUITrad(96) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
				size->height = ScaleGUITrad(64) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
				break;
 
		}
 
	}
 

	
 
	void OnPaint() override
 
	void DrawWidget(const Rect &r, int widget) const override
 
	{
 
		this->DrawWidgets();
 
		DrawPixelInfo tmp_dpi;
 

	
 
		switch (widget) {
 
			case WID_BDD_X:
 
			case WID_BDD_Y: {
 
				Axis axis = widget == WID_BDD_X ? AXIS_X : AXIS_Y;
 

	
 
		int x1 = ScaleGUITrad(63) + 1;
 
		int x2 = ScaleGUITrad(31) + 1;
 
		int y1 = ScaleGUITrad(17) + 1;
 
		int y2 = ScaleGUITrad(33) + 1;
 

	
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + x1, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + y1, AXIS_X, DEPOT_PART_NORTH);
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_x + x2, this->GetWidget<NWidgetBase>(WID_BDD_X)->pos_y + y2, AXIS_X, DEPOT_PART_SOUTH);
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_x + x2, this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_y + y1, AXIS_Y, DEPOT_PART_NORTH);
 
		DrawShipDepotSprite(this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_x + x1, this->GetWidget<NWidgetBase>(WID_BDD_Y)->pos_y + y2, AXIS_Y, DEPOT_PART_SOUTH);
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = (r.Width()  - ScaleGUITrad(96)) / 2;
 
					int y = (r.Height() - ScaleGUITrad(64)) / 2;
 
					int x1 = ScaleGUITrad(63);
 
					int x2 = ScaleGUITrad(31);
 
					DrawShipDepotSprite(x + (axis == AXIS_X ? x1 : x2), y + ScaleGUITrad(17), axis, DEPOT_PART_NORTH);
 
					DrawShipDepotSprite(x + (axis == AXIS_X ? x2 : x1), y + ScaleGUITrad(33), axis, DEPOT_PART_SOUTH);
 
					_cur_dpi = old_dpi;
 
				}
 
				break;
 
			}
 
		}
 
	}
 

	
 
	void OnClick(Point pt, int widget, int click_count) override
src/rail_gui.cpp
Show inline comments
 
@@ -1232,8 +1232,8 @@ public:
 
			case WID_BRAS_PLATFORM_DIR_X:
 
			case WID_BRAS_PLATFORM_DIR_Y:
 
			case WID_BRAS_IMAGE:
 
				size->width  = ScaleGUITrad(64) + 2;
 
				size->height = ScaleGUITrad(58) + 2;
 
				size->width  = ScaleGUITrad(64) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
				size->height = ScaleGUITrad(58) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
				break;
 

	
 
			case WID_BRAS_COVERAGE_TEXTS:
 
@@ -1257,8 +1257,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
					int y = (r.Height() + ScaleGUITrad(58)) / 2 - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, AXIS_X, _railstation.station_class, _railstation.station_type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 2);
 
					}
 
@@ -1271,8 +1271,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
					int y = (r.Height() + ScaleGUITrad(58)) / 2 - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, AXIS_Y, _railstation.station_class, _railstation.station_type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 3);
 
					}
 
@@ -1308,8 +1308,8 @@ public:
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = ScaleGUITrad(31) + 1;
 
					int y = r.bottom - r.top - ScaleGUITrad(31);
 
					int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
					int y = (r.Height() + ScaleGUITrad(58)) / 2 - ScaleGUITrad(31);
 
					if (!DrawStationTile(x, y, _cur_railtype, _railstation.orientation, _railstation.station_class, type)) {
 
						StationPickerDrawSprite(x, y, STATION_RAIL, _cur_railtype, INVALID_ROADTYPE, 2 + _railstation.orientation);
 
					}
 
@@ -1929,15 +1929,23 @@ struct BuildRailDepotWindow : public Pic
 
	{
 
		if (!IsInsideMM(widget, WID_BRAD_DEPOT_NE, WID_BRAD_DEPOT_NW + 1)) return;
 

	
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
		size->width  = ScaleGUITrad(64) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
		size->height = ScaleGUITrad(48) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
	}
 

	
 
	void DrawWidget(const Rect &r, int widget) const override
 
	{
 
		if (!IsInsideMM(widget, WID_BRAD_DEPOT_NE, WID_BRAD_DEPOT_NW + 1)) return;
 

	
 
		DrawTrainDepotSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), widget - WID_BRAD_DEPOT_NE + DIAGDIR_NE, _cur_railtype);
 
		DrawPixelInfo tmp_dpi;
 
		if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
			DrawPixelInfo *old_dpi = _cur_dpi;
 
			_cur_dpi = &tmp_dpi;
 
			int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
			int y = (r.Height() + ScaleGUITrad(48)) / 2 - ScaleGUITrad(31);
 
			DrawTrainDepotSprite(x, y, widget - WID_BRAD_DEPOT_NE + DIAGDIR_NE, _cur_railtype);
 
			_cur_dpi = old_dpi;
 
		}
 
	}
 

	
 
	void OnClick(Point pt, int widget, int click_count) override
 
@@ -2028,8 +2036,8 @@ struct BuildRailWaypointWindow : PickerW
 
				break;
 

	
 
			case WID_BRW_WAYPOINT:
 
				size->width  = ScaleGUITrad(64) + 2;
 
				size->height = ScaleGUITrad(58) + 2;
 
				size->width  = ScaleGUITrad(64) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
				size->height = ScaleGUITrad(58) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
				break;
 
		}
 
	}
 
@@ -2040,7 +2048,16 @@ struct BuildRailWaypointWindow : PickerW
 
			case WID_BRW_WAYPOINT: {
 
				byte type = GB(widget, 16, 16);
 
				const StationSpec *statspec = StationClass::Get(STAT_CLASS_WAYP)->GetSpec(type);
 
				DrawWaypointSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), type, _cur_railtype);
 

	
 
				DrawPixelInfo tmp_dpi;
 
				if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
					DrawPixelInfo *old_dpi = _cur_dpi;
 
					_cur_dpi = &tmp_dpi;
 
					int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
					int y = (r.Height() + ScaleGUITrad(58)) / 2 - ScaleGUITrad(31);
 
					DrawWaypointSprite(x, y, type, _cur_railtype);
 
					_cur_dpi = old_dpi;
 
				}
 

	
 
				if (!IsStationAvailable(statspec)) {
 
					GfxFillRect(r.Shrink(WD_BEVEL_LEFT, WD_BEVEL_TOP, WD_BEVEL_RIGHT, WD_BEVEL_BOTTOM), PC_BLACK, FILLRECT_CHECKER);
src/road_gui.cpp
Show inline comments
 
@@ -974,15 +974,23 @@ struct BuildRoadDepotWindow : public Pic
 
	{
 
		if (!IsInsideMM(widget, WID_BROD_DEPOT_NE, WID_BROD_DEPOT_NW + 1)) return;
 

	
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
		size->width  = ScaleGUITrad(64) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
		size->height = ScaleGUITrad(48) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
	}
 

	
 
	void DrawWidget(const Rect &r, int widget) const override
 
	{
 
		if (!IsInsideMM(widget, WID_BROD_DEPOT_NE, WID_BROD_DEPOT_NW + 1)) return;
 

	
 
		DrawRoadDepotSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), (DiagDirection)(widget - WID_BROD_DEPOT_NE + DIAGDIR_NE), _cur_roadtype);
 
		DrawPixelInfo tmp_dpi;
 
		if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
			DrawPixelInfo *old_dpi = _cur_dpi;
 
			_cur_dpi = &tmp_dpi;
 
			int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
			int y = (r.Height() + ScaleGUITrad(48)) / 2 - ScaleGUITrad(31);
 
			DrawRoadDepotSprite(x, y, (DiagDirection)(widget - WID_BROD_DEPOT_NE + DIAGDIR_NE), _cur_roadtype);
 
			_cur_dpi = old_dpi;
 
		}
 
	}
 

	
 
	void OnClick(Point pt, int widget, int click_count) override
 
@@ -1099,8 +1107,8 @@ struct BuildRoadStationWindow : public P
 
	{
 
		if (!IsInsideMM(widget, WID_BROS_STATION_NE, WID_BROS_STATION_Y + 1)) return;
 

	
 
		size->width  = ScaleGUITrad(64) + 2;
 
		size->height = ScaleGUITrad(48) + 2;
 
		size->width  = ScaleGUITrad(64) + WD_BEVEL_LEFT + WD_BEVEL_RIGHT;
 
		size->height = ScaleGUITrad(48) + WD_BEVEL_TOP + WD_BEVEL_BOTTOM;
 
	}
 

	
 
	void DrawWidget(const Rect &r, int widget) const override
 
@@ -1108,7 +1116,16 @@ struct BuildRoadStationWindow : public P
 
		if (!IsInsideMM(widget, WID_BROS_STATION_NE, WID_BROS_STATION_Y + 1)) return;
 

	
 
		StationType st = (this->window_class == WC_BUS_STATION) ? STATION_BUS : STATION_TRUCK;
 
		StationPickerDrawSprite(r.left + 1 + ScaleGUITrad(31), r.bottom - ScaleGUITrad(31), st, INVALID_RAILTYPE, _cur_roadtype, widget - WID_BROS_STATION_NE);
 

	
 
		DrawPixelInfo tmp_dpi;
 
		if (FillDrawPixelInfo(&tmp_dpi, r.left, r.top, r.Width(), r.Height())) {
 
			DrawPixelInfo *old_dpi = _cur_dpi;
 
			_cur_dpi = &tmp_dpi;
 
			int x = (r.Width()  - ScaleGUITrad(64)) / 2 + ScaleGUITrad(31);
 
			int y = (r.Height() + ScaleGUITrad(48)) / 2 - ScaleGUITrad(31);
 
			StationPickerDrawSprite(x, y, st, INVALID_RAILTYPE, _cur_roadtype, widget - WID_BROS_STATION_NE);
 
			_cur_dpi = old_dpi;
 
		}
 
	}
 

	
 
	void OnClick(Point pt, int widget, int click_count) override
0 comments (0 inline, 0 general)