src/vehicle_gui.cpp
changeset 10117 dd9f49319539
parent 9993 56936d41c036
child 10118 6b418b016a89
equal deleted inserted replaced
10116:d21d0a0902a4 10117:dd9f49319539
   686 	{    WWT_CAPTION,  RESIZE_RIGHT,  COLOUR_GREY,    11,   247,     0,    13, 0x0,                  STR_018C_WINDOW_TITLE_DRAG_THIS},
   686 	{    WWT_CAPTION,  RESIZE_RIGHT,  COLOUR_GREY,    11,   247,     0,    13, 0x0,                  STR_018C_WINDOW_TITLE_DRAG_THIS},
   687 	{  WWT_STICKYBOX,     RESIZE_LR,  COLOUR_GREY,   248,   259,     0,    13, 0x0,                  STR_STICKY_BUTTON},
   687 	{  WWT_STICKYBOX,     RESIZE_LR,  COLOUR_GREY,   248,   259,     0,    13, 0x0,                  STR_STICKY_BUTTON},
   688 	{ WWT_PUSHTXTBTN,   RESIZE_NONE,  COLOUR_GREY,     0,    80,    14,    25, STR_SORT_BY,          STR_SORT_ORDER_TIP},
   688 	{ WWT_PUSHTXTBTN,   RESIZE_NONE,  COLOUR_GREY,     0,    80,    14,    25, STR_SORT_BY,          STR_SORT_ORDER_TIP},
   689 	{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    81,   247,    14,    25, 0x0,                  STR_SORT_CRITERIA_TIP},
   689 	{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    81,   247,    14,    25, 0x0,                  STR_SORT_CRITERIA_TIP},
   690 	{      WWT_PANEL,  RESIZE_RIGHT,  COLOUR_GREY,   248,   259,    14,    25, 0x0,                  STR_NULL},
   690 	{      WWT_PANEL,  RESIZE_RIGHT,  COLOUR_GREY,   248,   259,    14,    25, 0x0,                  STR_NULL},
   691 	{     WWT_MATRIX,     RESIZE_RB,  COLOUR_GREY,     0,   247,    26,   169, 0x0,                  STR_NULL},
   691 	{     WWT_MATRIX,     RESIZE_RB,  COLOUR_GREY,     0,   247,    26,   181, 0x0,                  STR_NULL},
   692 	{  WWT_SCROLLBAR,    RESIZE_LRB,  COLOUR_GREY,   248,   259,    26,   169, 0x0,                  STR_0190_SCROLL_BAR_SCROLLS_LIST},
   692 	{  WWT_SCROLLBAR,    RESIZE_LRB,  COLOUR_GREY,   248,   259,    26,   181, 0x0,                  STR_0190_SCROLL_BAR_SCROLLS_LIST},
   693 	/* Widget to be shown for other players hiding the following 6 widgets */
   693 	/* Widget to be shown for other players hiding the following 6 widgets */
   694 	{      WWT_PANEL,    RESIZE_RTB,  COLOUR_GREY,     0,   247,   170,   181, 0x0,                  STR_NULL},
   694 	{      WWT_PANEL,    RESIZE_RTB,  COLOUR_GREY,     0,   247,   182,   193, 0x0,                  STR_NULL},
   695 
   695 
   696 	{ WWT_PUSHTXTBTN,     RESIZE_TB,  COLOUR_GREY,     0,   105,   170,   181, 0x0,                  STR_AVAILABLE_ENGINES_TIP},
   696 	{ WWT_PUSHTXTBTN,     RESIZE_TB,  COLOUR_GREY,     0,   105,   182,   193, 0x0,                  STR_AVAILABLE_ENGINES_TIP},
   697 	{   WWT_DROPDOWN,     RESIZE_TB,  COLOUR_GREY,   106,   223,   170,   181, STR_MANAGE_LIST,      STR_MANAGE_LIST_TIP},
   697 	{   WWT_DROPDOWN,     RESIZE_TB,  COLOUR_GREY,   106,   223,   182,   193, STR_MANAGE_LIST,      STR_MANAGE_LIST_TIP},
   698 
   698 
   699 	{ WWT_PUSHIMGBTN,     RESIZE_TB,  COLOUR_GREY,   224,   235,   170,   181, SPR_FLAG_VEH_STOPPED, STR_MASS_STOP_LIST_TIP},
   699 	{ WWT_PUSHIMGBTN,     RESIZE_TB,  COLOUR_GREY,   224,   235,   182,   193, SPR_FLAG_VEH_STOPPED, STR_MASS_STOP_LIST_TIP},
   700 	{ WWT_PUSHIMGBTN,     RESIZE_TB,  COLOUR_GREY,   236,   247,   170,   181, SPR_FLAG_VEH_RUNNING, STR_MASS_START_LIST_TIP},
   700 	{ WWT_PUSHIMGBTN,     RESIZE_TB,  COLOUR_GREY,   236,   247,   182,   193, SPR_FLAG_VEH_RUNNING, STR_MASS_START_LIST_TIP},
   701 	{      WWT_PANEL,    RESIZE_RTB,  COLOUR_GREY,   248,   247,   170,   181, 0x0,                  STR_NULL},
   701 	{      WWT_PANEL,    RESIZE_RTB,  COLOUR_GREY,   248,   247,   182,   193, 0x0,                  STR_NULL},
   702 	{  WWT_RESIZEBOX,   RESIZE_LRTB,  COLOUR_GREY,   248,   259,   170,   181, 0x0,                  STR_RESIZE_BUTTON},
   702 	{  WWT_RESIZEBOX,   RESIZE_LRTB,  COLOUR_GREY,   248,   259,   182,   193, 0x0,                  STR_RESIZE_BUTTON},
   703 	{   WIDGETS_END},
   703 	{   WIDGETS_END},
   704 };
   704 };
   705 
   705 
   706 void DrawSmallOrderList(const Vehicle *v, int x, int y)
   706 void DrawSmallOrderList(const Vehicle *v, int x, int y)
   707 {
   707 {
   829 		switch (this->vehicle_type) {
   829 		switch (this->vehicle_type) {
   830 			case VEH_TRAIN:
   830 			case VEH_TRAIN:
   831 				this->resize.step_width = 1;
   831 				this->resize.step_width = 1;
   832 				/* Fallthrough */
   832 				/* Fallthrough */
   833 			case VEH_ROAD:
   833 			case VEH_ROAD:
   834 				this->vscroll.cap = 7;
   834 				this->vscroll.cap = 6;
   835 				this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_SMALL;
   835 				this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_SMALL;
   836 				this->resize.height = 220 - (PLY_WND_PRC__SIZE_OF_ROW_SMALL * 3); // Minimum of 4 vehicles
       
   837 				break;
   836 				break;
   838 			case VEH_SHIP:
   837 			case VEH_SHIP:
   839 			case VEH_AIRCRAFT:
   838 			case VEH_AIRCRAFT:
   840 				this->vscroll.cap = 4;
   839 				this->vscroll.cap = 4;
   841 				this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG;
   840 				this->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG;
  1100 		}
  1099 		}
  1101 	}
  1100 	}
  1102 };
  1101 };
  1103 
  1102 
  1104 static const WindowDesc _player_vehicle_list_train_desc = {
  1103 static const WindowDesc _player_vehicle_list_train_desc = {
  1105 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,
  1104 	WDP_AUTO, WDP_AUTO, 260, 194, 325, 246,
  1106 	WC_TRAINS_LIST, WC_NONE,
  1105 	WC_TRAINS_LIST, WC_NONE,
  1107 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1106 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1108 	_vehicle_list_widgets,
  1107 	_vehicle_list_widgets,
  1109 };
  1108 };
  1110 
  1109 
  1111 static const WindowDesc _player_vehicle_list_road_veh_desc = {
  1110 static const WindowDesc _player_vehicle_list_road_veh_desc = {
  1112 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,
  1111 	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
  1113 	WC_ROADVEH_LIST, WC_NONE,
  1112 	WC_ROADVEH_LIST, WC_NONE,
  1114 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1113 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1115 	_vehicle_list_widgets,
  1114 	_vehicle_list_widgets,
  1116 };
  1115 };
  1117 
  1116 
  1118 static const WindowDesc _player_vehicle_list_ship_desc = {
  1117 static const WindowDesc _player_vehicle_list_ship_desc = {
  1119 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,
  1118 	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
  1120 	WC_SHIPS_LIST, WC_NONE,
  1119 	WC_SHIPS_LIST, WC_NONE,
  1121 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1120 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1122 	_vehicle_list_widgets,
  1121 	_vehicle_list_widgets,
  1123 };
  1122 };
  1124 
  1123 
  1125 static const WindowDesc _player_vehicle_list_aircraft_desc = {
  1124 static const WindowDesc _player_vehicle_list_aircraft_desc = {
  1126 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,
  1125 	WDP_AUTO, WDP_AUTO, 260, 194, 260, 246,
  1127 	WC_AIRCRAFT_LIST, WC_NONE,
  1126 	WC_AIRCRAFT_LIST, WC_NONE,
  1128 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1127 	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE,
  1129 	_vehicle_list_widgets,
  1128 	_vehicle_list_widgets,
  1130 };
  1129 };
  1131 
  1130 
  1143 	 * some of the windows to the correct size */
  1142 	 * some of the windows to the correct size */
  1144 	switch (vehicle_type) {
  1143 	switch (vehicle_type) {
  1145 		default: NOT_REACHED();
  1144 		default: NOT_REACHED();
  1146 		case VEH_TRAIN:
  1145 		case VEH_TRAIN:
  1147 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_train_desc, num);
  1146 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_train_desc, num);
  1148 			if (w != NULL) ResizeWindow(w, 65, 38);
       
  1149 			break;
  1147 			break;
  1150 		case VEH_ROAD:
  1148 		case VEH_ROAD:
  1151 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_road_veh_desc, num);
  1149 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_road_veh_desc, num);
  1152 			if (w != NULL) ResizeWindow(w, 0, 38);
       
  1153 			break;
  1150 			break;
  1154 		case VEH_SHIP:
  1151 		case VEH_SHIP:
  1155 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_ship_desc, num);
  1152 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_ship_desc, num);
  1156 			break;
  1153 			break;
  1157 		case VEH_AIRCRAFT:
  1154 		case VEH_AIRCRAFT:
  1158 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_aircraft_desc, num);
  1155 			w = AllocateWindowDescFront<VehicleListWindow>(&_player_vehicle_list_aircraft_desc, num);
  1159 			break;
  1156 			break;
  1160 	}
       
  1161 
       
  1162 	if (w != NULL) {
       
  1163 		/* Set the minimum window size to the current window size */
       
  1164 		w->resize.width = w->width;
       
  1165 		w->resize.height = w->height;
       
  1166 	}
  1157 	}
  1167 }
  1158 }
  1168 
  1159 
  1169 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type)
  1160 void ShowVehicleListWindow(PlayerID player, VehicleType vehicle_type)
  1170 {
  1161 {