53 |
53 |
54 enum BuildVehicleWidgets { |
54 enum BuildVehicleWidgets { |
55 BUILD_VEHICLE_WIDGET_CLOSEBOX = 0, |
55 BUILD_VEHICLE_WIDGET_CLOSEBOX = 0, |
56 BUILD_VEHICLE_WIDGET_CAPTION, |
56 BUILD_VEHICLE_WIDGET_CAPTION, |
57 BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING, |
57 BUILD_VEHICLE_WIDGET_SORT_ASSENDING_DESCENDING, |
58 BUILD_VEHICLE_WIDGET_SORT_TEXT, |
|
59 BUILD_VEHICLE_WIDGET_SORT_DROPDOWN, |
58 BUILD_VEHICLE_WIDGET_SORT_DROPDOWN, |
60 BUILD_VEHICLE_WIDGET_LIST, |
59 BUILD_VEHICLE_WIDGET_LIST, |
61 BUILD_VEHICLE_WIDGET_SCROLLBAR, |
60 BUILD_VEHICLE_WIDGET_SCROLLBAR, |
62 BUILD_VEHICLE_WIDGET_PANEL, |
61 BUILD_VEHICLE_WIDGET_PANEL, |
63 BUILD_VEHICLE_WIDGET_BUILD, |
62 BUILD_VEHICLE_WIDGET_BUILD, |
68 |
67 |
69 static const Widget _build_vehicle_widgets[] = { |
68 static const Widget _build_vehicle_widgets[] = { |
70 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
69 { WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW }, |
71 { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 239, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS }, |
70 { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 239, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS }, |
72 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, |
71 { WWT_PUSHTXTBTN, RESIZE_NONE, 14, 0, 80, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP}, |
73 { WWT_PANEL, RESIZE_RIGHT, 14, 81, 227, 14, 25, 0x0, STR_SORT_CRITERIA_TIP}, |
72 { WWT_DROPDOWN, RESIZE_RIGHT, 14, 81, 239, 14, 25, 0x0, STR_SORT_CRITERIA_TIP}, |
74 { WWT_TEXTBTN, RESIZE_LR, 14, 228, 239, 14, 25, STR_0225, STR_SORT_CRITERIA_TIP}, |
|
75 { WWT_MATRIX, RESIZE_RB, 14, 0, 227, 26, 39, 0x101, STR_NULL }, |
73 { WWT_MATRIX, RESIZE_RB, 14, 0, 227, 26, 39, 0x101, STR_NULL }, |
76 { WWT_SCROLLBAR, RESIZE_LRB, 14, 228, 239, 26, 39, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST }, |
74 { WWT_SCROLLBAR, RESIZE_LRB, 14, 228, 239, 26, 39, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST }, |
77 { WWT_PANEL, RESIZE_RTB, 14, 0, 239, 40, 161, 0x0, STR_NULL }, |
75 { WWT_PANEL, RESIZE_RTB, 14, 0, 239, 40, 161, 0x0, STR_NULL }, |
78 |
76 |
79 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 114, 162, 173, 0x0, STR_NULL }, |
77 { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 114, 162, 173, 0x0, STR_NULL }, |
980 |
978 |
981 w->SetWidgetDisabledState(BUILD_VEHICLE_WIDGET_BUILD, w->window_number <= VEH_END); |
979 w->SetWidgetDisabledState(BUILD_VEHICLE_WIDGET_BUILD, w->window_number <= VEH_END); |
982 |
980 |
983 SetVScrollCount(w, EngList_Count(&bv->eng_list)); |
981 SetVScrollCount(w, EngList_Count(&bv->eng_list)); |
984 SetDParam(0, bv->filter.railtype + STR_881C_NEW_RAIL_VEHICLES); // This should only affect rail vehicles |
982 SetDParam(0, bv->filter.railtype + STR_881C_NEW_RAIL_VEHICLES); // This should only affect rail vehicles |
|
983 |
|
984 /* Set text of sort by dropdown */ |
|
985 w->widget[BUILD_VEHICLE_WIDGET_SORT_DROPDOWN].data = _sort_listing[bv->vehicle_type][bv->sort_criteria]; |
|
986 |
985 DrawWindowWidgets(w); |
987 DrawWindowWidgets(w); |
986 |
988 |
987 DrawEngineList(bv->vehicle_type, 2, 27, bv->eng_list, w->vscroll.pos, max, bv->sel_engine, false, DEFAULT_GROUP); |
989 DrawEngineList(bv->vehicle_type, 2, 27, bv->eng_list, w->vscroll.pos, max, bv->sel_engine, false, DEFAULT_GROUP); |
988 |
990 |
989 if (bv->sel_engine != INVALID_ENGINE) { |
991 if (bv->sel_engine != INVALID_ENGINE) { |
991 int text_end = DrawVehiclePurchaseInfo(2, wi->top + 1, wi->right - wi->left - 2, bv->sel_engine); |
993 int text_end = DrawVehiclePurchaseInfo(2, wi->top + 1, wi->right - wi->left - 2, bv->sel_engine); |
992 |
994 |
993 if (text_end > wi->bottom) ExpandPurchaseInfoWidget(w, text_end - wi->bottom); |
995 if (text_end > wi->bottom) ExpandPurchaseInfoWidget(w, text_end - wi->bottom); |
994 } |
996 } |
995 |
997 |
996 DrawString(85, 15, _sort_listing[bv->vehicle_type][bv->sort_criteria], TC_BLACK); |
|
997 DoDrawString(bv->descending_sort_order ? DOWNARROW : UPARROW, 69, 15, TC_BLACK); |
998 DoDrawString(bv->descending_sort_order ? DOWNARROW : UPARROW, 69, 15, TC_BLACK); |
998 } |
999 } |
999 |
1000 |
1000 static void BuildVehicleClickEvent(Window *w, WindowEvent *e) |
1001 static void BuildVehicleClickEvent(Window *w, WindowEvent *e) |
1001 { |
1002 { |