src/station_gui.cpp
changeset 9116 f2491d3c321b
parent 9111 48ce04029fe4
child 9143 029e126e3439
equal deleted inserted replaced
9115:47ae980bace3 9116:f2491d3c321b
   193 
   193 
   194 	FOR_ALL_WINDOWS(wz) {
   194 	FOR_ALL_WINDOWS(wz) {
   195 		Window *w = *wz;
   195 		Window *w = *wz;
   196 		if (w->window_class == WC_STATION_LIST) {
   196 		if (w->window_class == WC_STATION_LIST) {
   197 			WP(w, plstations_d).flags |= sl_flag;
   197 			WP(w, plstations_d).flags |= sl_flag;
   198 			SetWindowDirty(w);
   198 			w->SetDirty();
   199 		}
   199 		}
   200 	}
   200 	}
   201 }
   201 }
   202 
   202 
   203 /**
   203 /**
   447 						SetBit(facilities, e->we.click.widget - SLW_TRAIN);
   447 						SetBit(facilities, e->we.click.widget - SLW_TRAIN);
   448 						w->LowerWidget(e->we.click.widget);
   448 						w->LowerWidget(e->we.click.widget);
   449 					}
   449 					}
   450 					w->SetWidgetLoweredState(SLW_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
   450 					w->SetWidgetLoweredState(SLW_FACILALL, facilities == (FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK));
   451 					sl->flags |= SL_REBUILD;
   451 					sl->flags |= SL_REBUILD;
   452 					SetWindowDirty(w);
   452 					w->SetDirty();
   453 					break;
   453 					break;
   454 
   454 
   455 				case SLW_FACILALL:
   455 				case SLW_FACILALL:
   456 					for (uint i = 0; i < 5; i++) {
   456 					for (uint i = 0; i < 5; i++) {
   457 						w->LowerWidget(i + SLW_TRAIN);
   457 						w->LowerWidget(i + SLW_TRAIN);
   458 					}
   458 					}
   459 					w->LowerWidget(SLW_FACILALL);
   459 					w->LowerWidget(SLW_FACILALL);
   460 
   460 
   461 					facilities = FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK;
   461 					facilities = FACIL_TRAIN | FACIL_TRUCK_STOP | FACIL_BUS_STOP | FACIL_AIRPORT | FACIL_DOCK;
   462 					sl->flags |= SL_REBUILD;
   462 					sl->flags |= SL_REBUILD;
   463 					SetWindowDirty(w);
   463 					w->SetDirty();
   464 					break;
   464 					break;
   465 
   465 
   466 				case SLW_CARGOALL: {
   466 				case SLW_CARGOALL: {
   467 					uint i = 0;
   467 					uint i = 0;
   468 					for (CargoID c = 0; c < NUM_CARGO; c++) {
   468 					for (CargoID c = 0; c < NUM_CARGO; c++) {
   474 					w->LowerWidget(SLW_CARGOALL);
   474 					w->LowerWidget(SLW_CARGOALL);
   475 
   475 
   476 					_cargo_filter = _cargo_mask;
   476 					_cargo_filter = _cargo_mask;
   477 					include_empty = true;
   477 					include_empty = true;
   478 					sl->flags |= SL_REBUILD;
   478 					sl->flags |= SL_REBUILD;
   479 					SetWindowDirty(w);
   479 					w->SetDirty();
   480 					break;
   480 					break;
   481 				}
   481 				}
   482 
   482 
   483 				case SLW_SORTBY: // flip sorting method asc/desc
   483 				case SLW_SORTBY: // flip sorting method asc/desc
   484 					sl->flags ^= SL_ORDER; //DESC-flag
   484 					sl->flags ^= SL_ORDER; //DESC-flag
   485 					station_sort.order = HasBit(sl->flags, 0);
   485 					station_sort.order = HasBit(sl->flags, 0);
   486 					sl->flags |= SL_RESORT;
   486 					sl->flags |= SL_RESORT;
   487 					w->flags4 |= 5 << WF_TIMEOUT_SHL;
   487 					w->flags4 |= 5 << WF_TIMEOUT_SHL;
   488 					w->LowerWidget(SLW_SORTBY);
   488 					w->LowerWidget(SLW_SORTBY);
   489 					SetWindowDirty(w);
   489 					w->SetDirty();
   490 					break;
   490 					break;
   491 
   491 
   492 				case SLW_SORTDROPBTN: // select sorting criteria dropdown menu
   492 				case SLW_SORTDROPBTN: // select sorting criteria dropdown menu
   493 					ShowDropDownMenu(w, _station_sort_listing, sl->sort_type, SLW_SORTDROPBTN, 0, 0);
   493 					ShowDropDownMenu(w, _station_sort_listing, sl->sort_type, SLW_SORTDROPBTN, 0, 0);
   494 					break;
   494 					break;
   507 
   507 
   508 						w->LowerWidget(SLW_NOCARGOWAITING);
   508 						w->LowerWidget(SLW_NOCARGOWAITING);
   509 					}
   509 					}
   510 					sl->flags |= SL_REBUILD;
   510 					sl->flags |= SL_REBUILD;
   511 					w->SetWidgetLoweredState(SLW_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
   511 					w->SetWidgetLoweredState(SLW_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
   512 					SetWindowDirty(w);
   512 					w->SetDirty();
   513 					break;
   513 					break;
   514 
   514 
   515 				default:
   515 				default:
   516 					if (e->we.click.widget >= SLW_CARGOSTART) { // change cargo_filter
   516 					if (e->we.click.widget >= SLW_CARGOSTART) { // change cargo_filter
   517 						/* Determine the selected cargo type */
   517 						/* Determine the selected cargo type */
   538 							SetBit(_cargo_filter, c);
   538 							SetBit(_cargo_filter, c);
   539 							w->LowerWidget(e->we.click.widget);
   539 							w->LowerWidget(e->we.click.widget);
   540 						}
   540 						}
   541 						sl->flags |= SL_REBUILD;
   541 						sl->flags |= SL_REBUILD;
   542 						w->SetWidgetLoweredState(SLW_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
   542 						w->SetWidgetLoweredState(SLW_CARGOALL, _cargo_filter == _cargo_mask && include_empty);
   543 						SetWindowDirty(w);
   543 						w->SetDirty();
   544 					}
   544 					}
   545 					break;
   545 					break;
   546 			}
   546 			}
   547 			break;
   547 			break;
   548 
   548 
   551 				/* value has changed -> resort */
   551 				/* value has changed -> resort */
   552 				sl->sort_type = e->we.dropdown.index;
   552 				sl->sort_type = e->we.dropdown.index;
   553 				station_sort.criteria = sl->sort_type;
   553 				station_sort.criteria = sl->sort_type;
   554 				sl->flags |= SL_RESORT;
   554 				sl->flags |= SL_RESORT;
   555 			}
   555 			}
   556 			SetWindowDirty(w);
   556 			w->SetDirty();
   557 			break;
   557 			break;
   558 
   558 
   559 		case WE_TICK:
   559 		case WE_TICK:
   560 			if (_pause_game != 0) break;
   560 			if (_pause_game != 0) break;
   561 			if (--sl->resort_timer == 0) {
   561 			if (--sl->resort_timer == 0) {
   562 				DEBUG(misc, 3, "Periodic rebuild station list player %d", owner);
   562 				DEBUG(misc, 3, "Periodic rebuild station list player %d", owner);
   563 				sl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
   563 				sl->resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS;
   564 				sl->flags |= SL_REBUILD;
   564 				sl->flags |= SL_REBUILD;
   565 				SetWindowDirty(w);
   565 				w->SetDirty();
   566 			}
   566 			}
   567 			break;
   567 			break;
   568 
   568 
   569 		case WE_TIMEOUT:
   569 		case WE_TIMEOUT:
   570 			w->RaiseWidget(SLW_SORTBY);
   570 			w->RaiseWidget(SLW_SORTBY);
   571 			SetWindowDirty(w);
   571 			w->SetDirty();
   572 			break;
   572 			break;
   573 
   573 
   574 		case WE_RESIZE:
   574 		case WE_RESIZE:
   575 			w->vscroll.cap += e->we.sizing.diff.y / 10;
   575 			w->vscroll.cap += e->we.sizing.diff.y / 10;
   576 			break;
   576 			break;
   947 						ScrollMainWindowToTile(GetStation(w->window_number)->xy);
   947 						ScrollMainWindowToTile(GetStation(w->window_number)->xy);
   948 					}
   948 					}
   949 					break;
   949 					break;
   950 
   950 
   951 				case SVW_RATINGS:
   951 				case SVW_RATINGS:
   952 					SetWindowDirty(w);
   952 					w->SetDirty();
   953 
   953 
   954 					if (w->widget[SVW_RATINGS].data == STR_3032_RATINGS) {
   954 					if (w->widget[SVW_RATINGS].data == STR_3032_RATINGS) {
   955 						/* Switch to ratings view */
   955 						/* Switch to ratings view */
   956 						w->widget[SVW_RATINGS].data = STR_3033_ACCEPTS;
   956 						w->widget[SVW_RATINGS].data = STR_3033_ACCEPTS;
   957 						w->widget[SVW_RATINGS].tooltips = STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO;
   957 						w->widget[SVW_RATINGS].tooltips = STR_3056_SHOW_LIST_OF_ACCEPTED_CARGO;
   961 						w->widget[SVW_RATINGS].data = STR_3032_RATINGS;
   961 						w->widget[SVW_RATINGS].data = STR_3032_RATINGS;
   962 						w->widget[SVW_RATINGS].tooltips = STR_3054_SHOW_STATION_RATINGS;
   962 						w->widget[SVW_RATINGS].tooltips = STR_3054_SHOW_STATION_RATINGS;
   963 						ResizeWindowForWidget(w, SVW_ACCEPTLIST, 0, -100);
   963 						ResizeWindowForWidget(w, SVW_ACCEPTLIST, 0, -100);
   964 					}
   964 					}
   965 
   965 
   966 					SetWindowDirty(w);
   966 					w->SetDirty();
   967 					break;
   967 					break;
   968 
   968 
   969 				case SVW_RENAME:
   969 				case SVW_RENAME:
   970 					SetDParam(0, w->window_number);
   970 					SetDParam(0, w->window_number);
   971 					ShowQueryString(STR_STATION, STR_3030_RENAME_STATION_LOADING, 31, 180, w, CS_ALPHANUMERAL);
   971 					ShowQueryString(STR_STATION, STR_3030_RENAME_STATION_LOADING, 31, 180, w, CS_ALPHANUMERAL);