src/vehicle_gui.cpp
changeset 10621 3edd349d9c14
parent 10596 0ee9eba64c9c
child 10639 0091368fe9fc
equal deleted inserted replaced
10619:73c3e4d60426 10621:3edd349d9c14
    84 	STR_SORT_BY_VALUE,
    84 	STR_SORT_BY_VALUE,
    85 	STR_SORT_BY_LENGTH,
    85 	STR_SORT_BY_LENGTH,
    86 	INVALID_STRING_ID
    86 	INVALID_STRING_ID
    87 };
    87 };
    88 
    88 
    89 /**
       
    90  * Set sort list flag for all vehicle list windows
       
    91  * @param sl_flag Sort list flag to set
       
    92  */
       
    93 static void SetVehicleListsFlag(SortListFlags sl_flag)
       
    94 {
       
    95 	Window* const *wz;
       
    96 
       
    97 	FOR_ALL_WINDOWS(wz) {
       
    98 		Window *w = *wz;
       
    99 
       
   100 		switch (w->window_class) {
       
   101 			case WC_TRAINS_LIST:
       
   102 			case WC_ROADVEH_LIST:
       
   103 			case WC_SHIPS_LIST:
       
   104 			case WC_AIRCRAFT_LIST:
       
   105 				dynamic_cast<VehicleListBase*>(w)->vehicles.flags |= sl_flag;
       
   106 				w->SetDirty();
       
   107 				break;
       
   108 
       
   109 			default: break;
       
   110 		}
       
   111 	}
       
   112 }
       
   113 
       
   114 /**
       
   115  * Rebuild all vehicle list windows
       
   116  */
       
   117 void RebuildVehicleLists()
       
   118 {
       
   119 	SetVehicleListsFlag(VL_REBUILD);
       
   120 }
       
   121 
       
   122 /**
       
   123  * Resort all vehicle list windows
       
   124  */
       
   125 void ResortVehicleLists()
       
   126 {
       
   127 	SetVehicleListsFlag(VL_RESORT);
       
   128 }
       
   129 
       
   130 void BuildVehicleList(VehicleListBase *vl, PlayerID owner, uint16 index, uint16 window_type)
    89 void BuildVehicleList(VehicleListBase *vl, PlayerID owner, uint16 index, uint16 window_type)
   131 {
    90 {
   132 	if (!(vl->vehicles.flags & VL_REBUILD)) return;
    91 	if (!(vl->vehicles.flags & VL_REBUILD)) return;
   133 
    92 
   134 	DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, index);
    93 	DEBUG(misc, 3, "Building vehicle list for player %d at station %d", owner, index);
  1184 
  1143 
  1185 	virtual void OnResize(Point new_size, Point delta)
  1144 	virtual void OnResize(Point new_size, Point delta)
  1186 	{
  1145 	{
  1187 		this->vscroll.cap += delta.y / (int)this->resize.step_height;
  1146 		this->vscroll.cap += delta.y / (int)this->resize.step_height;
  1188 		this->widget[VLW_WIDGET_LIST].data = (this->vscroll.cap << 8) + 1;
  1147 		this->widget[VLW_WIDGET_LIST].data = (this->vscroll.cap << 8) + 1;
       
  1148 	}
       
  1149 
       
  1150 	virtual void OnInvalidateData(int data)
       
  1151 	{
       
  1152 		this->vehicles.flags |= (data == 0 ? VL_REBUILD : VL_RESORT);
  1189 	}
  1153 	}
  1190 };
  1154 };
  1191 
  1155 
  1192 static const WindowDesc _player_vehicle_list_train_desc = {
  1156 static const WindowDesc _player_vehicle_list_train_desc = {
  1193 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,
  1157 	WDP_AUTO, WDP_AUTO, 260, 182, 260, 182,