equal
deleted
inserted
replaced
261 /** |
261 /** |
262 * Update/redraw the group action dropdown |
262 * Update/redraw the group action dropdown |
263 * @param w the window the dropdown belongs to |
263 * @param w the window the dropdown belongs to |
264 * @param gid the currently selected group in the window |
264 * @param gid the currently selected group in the window |
265 */ |
265 */ |
266 static void UpdateGroupActionDropdown(Window *w, GroupID gid, bool refresh = true) |
266 static void ShowGroupActionDropdown(Window *w, GroupID gid) |
267 { |
267 { |
268 if (refresh && !w->IsWidgetLowered(GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN)) return; |
|
269 |
|
270 static StringID action_str[] = { |
268 static StringID action_str[] = { |
271 STR_REPLACE_VEHICLES, |
269 STR_REPLACE_VEHICLES, |
272 STR_SEND_FOR_SERVICING, |
270 STR_SEND_FOR_SERVICING, |
273 STR_SEND_TRAIN_TO_DEPOT, |
271 STR_SEND_TRAIN_TO_DEPOT, |
274 STR_NULL, |
272 STR_NULL, |
297 |
295 |
298 switch(e->event) { |
296 switch(e->event) { |
299 case WE_INVALIDATE_DATA: |
297 case WE_INVALIDATE_DATA: |
300 gv->l.flags |= VL_REBUILD; |
298 gv->l.flags |= VL_REBUILD; |
301 gl->l.flags |= VL_REBUILD; |
299 gl->l.flags |= VL_REBUILD; |
302 if (!IsValidGroupID(gv->group_sel)) gv->group_sel = ALL_GROUP; |
300 if (!IsValidGroupID(gv->group_sel)) { |
303 UpdateGroupActionDropdown(w, gv->group_sel); |
301 gv->group_sel = ALL_GROUP; |
|
302 HideDropDownMenu(w); |
|
303 } |
304 SetWindowDirty(w); |
304 SetWindowDirty(w); |
305 break; |
305 break; |
306 |
306 |
307 case WE_CREATE: |
307 case WE_CREATE: |
308 CreateVehicleGroupWindow(w); |
308 CreateVehicleGroupWindow(w); |
511 |
511 |
512 case GRP_WIDGET_ALL_VEHICLES: // All vehicles button |
512 case GRP_WIDGET_ALL_VEHICLES: // All vehicles button |
513 if (!IsAllGroupID(gv->group_sel)) { |
513 if (!IsAllGroupID(gv->group_sel)) { |
514 gv->group_sel = ALL_GROUP; |
514 gv->group_sel = ALL_GROUP; |
515 gv->l.flags |= VL_REBUILD; |
515 gv->l.flags |= VL_REBUILD; |
516 UpdateGroupActionDropdown(w, gv->group_sel); |
|
517 SetWindowDirty(w); |
516 SetWindowDirty(w); |
518 } |
517 } |
519 break; |
518 break; |
520 |
519 |
521 case GRP_WIDGET_DEFAULT_VEHICLES: // Ungrouped vehicles button |
520 case GRP_WIDGET_DEFAULT_VEHICLES: // Ungrouped vehicles button |
522 if (!IsDefaultGroupID(gv->group_sel)) { |
521 if (!IsDefaultGroupID(gv->group_sel)) { |
523 gv->group_sel = DEFAULT_GROUP; |
522 gv->group_sel = DEFAULT_GROUP; |
524 gv->l.flags |= VL_REBUILD; |
523 gv->l.flags |= VL_REBUILD; |
525 UpdateGroupActionDropdown(w, gv->group_sel); |
|
526 SetWindowDirty(w); |
524 SetWindowDirty(w); |
527 } |
525 } |
528 break; |
526 break; |
529 |
527 |
530 case GRP_WIDGET_LIST_GROUP: { // Matrix Group |
528 case GRP_WIDGET_LIST_GROUP: { // Matrix Group |
537 if (id_g >= gl->l.list_length) return; |
535 if (id_g >= gl->l.list_length) return; |
538 |
536 |
539 gv->group_sel = gl->sort_list[id_g]->index;; |
537 gv->group_sel = gl->sort_list[id_g]->index;; |
540 |
538 |
541 gv->l.flags |= VL_REBUILD; |
539 gv->l.flags |= VL_REBUILD; |
542 UpdateGroupActionDropdown(w, gv->group_sel); |
|
543 SetWindowDirty(w); |
540 SetWindowDirty(w); |
544 break; |
541 break; |
545 } |
542 } |
546 |
543 |
547 case GRP_WIDGET_LIST_VEHICLE: { // Matrix Vehicle |
544 case GRP_WIDGET_LIST_VEHICLE: { // Matrix Vehicle |
592 ShowBuildVehicleWindow(0, gv->vehicle_type); |
589 ShowBuildVehicleWindow(0, gv->vehicle_type); |
593 break; |
590 break; |
594 |
591 |
595 case GRP_WIDGET_MANAGE_VEHICLES: |
592 case GRP_WIDGET_MANAGE_VEHICLES: |
596 case GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN: { |
593 case GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN: { |
597 UpdateGroupActionDropdown(w, gv->group_sel, false); |
594 ShowGroupActionDropdown(w, gv->group_sel); |
598 break; |
595 break; |
599 } |
596 } |
600 |
597 |
601 |
598 |
602 case GRP_WIDGET_START_ALL: |
599 case GRP_WIDGET_START_ALL: |