(svn r12397) -Codechange [FS#1856]: enumify widget number for time tables. Patch by Phil Sophus.

This commit is contained in:
rubidium 2008-03-23 06:56:33 +00:00
parent c7d4c0e269
commit fb755e6e87

View File

@ -21,6 +21,21 @@
#include "table/strings.h"
enum TimetableViewWindowWidgets {
TTV_WIDGET_CLOSEBOX = 0,
TTV_CAPTION,
TTV_STICKY,
TTV_TIMETABLE_PANEL,
TTV_SCROLLBAR,
TTV_SUMMARY_PANEL,
TTV_CHANGE_TIME,
TTV_CLEAR_TIME,
TTV_RESET_LATENESS,
TTV_AUTOFILL,
TTV_EMPTY,
TTV_RESIZE,
};
static int GetOrderFromTimetableWndPt(Window *w, int y, const Vehicle *v)
{
/*
@ -57,29 +72,29 @@ static void DrawTimetableWindow(Window *w)
if (v->owner == _local_player) {
if (selected == -1) {
w->DisableWidget(6);
w->DisableWidget(7);
w->DisableWidget(TTV_CHANGE_TIME);
w->DisableWidget(TTV_CLEAR_TIME);
} else if (selected % 2 == 1) {
w->EnableWidget(6);
w->EnableWidget(7);
w->EnableWidget(TTV_CHANGE_TIME);
w->EnableWidget(TTV_CLEAR_TIME);
} else {
const Order *order = GetVehicleOrder(v, (selected + 1) / 2);
bool disable = order == NULL || order->type != OT_GOTO_STATION || (_patches.new_nonstop && (order->flags & OFB_NON_STOP));
w->SetWidgetDisabledState(6, disable);
w->SetWidgetDisabledState(7, disable);
w->SetWidgetDisabledState(TTV_CHANGE_TIME, disable);
w->SetWidgetDisabledState(TTV_CLEAR_TIME, disable);
}
w->EnableWidget(8);
w->EnableWidget(9);
w->EnableWidget(TTV_RESET_LATENESS);
w->EnableWidget(TTV_AUTOFILL);
} else {
w->DisableWidget(6);
w->DisableWidget(7);
w->DisableWidget(8);
w->DisableWidget(9);
w->DisableWidget(TTV_CHANGE_TIME);
w->DisableWidget(TTV_CLEAR_TIME);
w->DisableWidget(TTV_RESET_LATENESS);
w->DisableWidget(TTV_AUTOFILL);
}
w->SetWidgetLoweredState(9, HasBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE));
w->SetWidgetLoweredState(TTV_AUTOFILL, HasBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE));
SetDParam(0, v->index);
DrawWindowWidgets(w);
@ -173,7 +188,7 @@ static void DrawTimetableWindow(Window *w)
y += 10;
}
y = w->widget[5].top + 1;
y = w->widget[TTV_SUMMARY_PANEL].top + 1;
{
uint total_time = 0;
@ -221,7 +236,7 @@ static void TimetableWndProc(Window *w, WindowEvent *we)
const Vehicle *v = GetVehicle(w->window_number);
switch (we->we.click.widget) {
case 3: { /* Main panel. */
case TTV_TIMETABLE_PANEL: { /* Main panel. */
int selected = GetOrderFromTimetableWndPt(w, we->we.click.pt.y, v);
if (selected == INVALID_ORDER || selected == WP(w, order_d).sel) {
@ -233,7 +248,7 @@ static void TimetableWndProc(Window *w, WindowEvent *we)
}
} break;
case 6: { /* "Wait For" button. */
case TTV_CHANGE_TIME: { /* "Wait For" button. */
int selected = WP(w, order_d).sel;
VehicleOrderID real = (selected + 1) / 2;
@ -255,16 +270,16 @@ static void TimetableWndProc(Window *w, WindowEvent *we)
ShowQueryString(current, STR_TIMETABLE_CHANGE_TIME, 31, 150, w, CS_NUMERAL);
} break;
case 7: { /* Clear waiting time button. */
case TTV_CLEAR_TIME: { /* Clear waiting time button. */
uint32 p1 = PackTimetableArgs(v, WP(w, order_d).sel);
DoCommandP(0, p1, 0, NULL, CMD_CHANGE_TIMETABLE | CMD_MSG(STR_CAN_T_TIMETABLE_VEHICLE));
} break;
case 8: /* Reset the vehicle's late counter. */
case TTV_RESET_LATENESS: /* Reset the vehicle's late counter. */
DoCommandP(0, v->index, 0, NULL, CMD_SET_VEHICLE_ON_TIME | CMD_MSG(STR_CAN_T_TIMETABLE_VEHICLE));
break;
case 9: /* Autofill the timetable. */
case TTV_AUTOFILL: /* Autofill the timetable. */
DoCommandP(0, v->index, HasBit(v->vehicle_flags, VF_AUTOFILL_TIMETABLE) ? 0 : 1, NULL, CMD_AUTOFILL_TIMETABLE | CMD_MSG(STR_CAN_T_TIMETABLE_VEHICLE));
break;
}
@ -287,29 +302,29 @@ static void TimetableWndProc(Window *w, WindowEvent *we)
case WE_RESIZE:
/* Update the scroll + matrix */
w->vscroll.cap = (w->widget[3].bottom - w->widget[3].top) / 10;
w->vscroll.cap = (w->widget[TTV_TIMETABLE_PANEL].bottom - w->widget[TTV_TIMETABLE_PANEL].top) / 10;
break;
}
}
static const Widget _timetable_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW},
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 387, 0, 13, STR_TIMETABLE_TITLE, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 388, 399, 0, 13, STR_NULL, STR_STICKY_BUTTON},
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // TTV_WIDGET_CLOSEBOX
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 387, 0, 13, STR_TIMETABLE_TITLE, STR_018C_WINDOW_TITLE_DRAG_THIS}, // TTV_CAPTION
{ WWT_STICKYBOX, RESIZE_LR, 14, 388, 399, 0, 13, STR_NULL, STR_STICKY_BUTTON}, // TTV_STICKY
{ WWT_PANEL, RESIZE_RB, 14, 0, 387, 14, 95, STR_NULL, STR_TIMETABLE_TOOLTIP},
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 388, 399, 14, 95, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PANEL, RESIZE_RB, 14, 0, 387, 14, 95, STR_NULL, STR_TIMETABLE_TOOLTIP}, // TTV_TIMETABLE_PANEL
{ WWT_SCROLLBAR, RESIZE_LRB, 14, 388, 399, 14, 95, STR_NULL, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // TTV_SCROLLBAR
{ WWT_PANEL, RESIZE_RTB, 14, 0, 399, 96, 117, STR_NULL, STR_NULL},
{ WWT_PANEL, RESIZE_RTB, 14, 0, 399, 96, 117, STR_NULL, STR_NULL}, // TTV_SUMMARY_PANEL
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 109, 118, 129, STR_TIMETABLE_CHANGE_TIME, STR_TIMETABLE_WAIT_TIME_TOOLTIP},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 110, 219, 118, 129, STR_CLEAR_TIME, STR_TIMETABLE_CLEAR_TIME_TOOLTIP},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 220, 337, 118, 129, STR_RESET_LATENESS, STR_TIMETABLE_RESET_LATENESS_TOOLTIP},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 338, 387, 118, 129, STR_TIMETABLE_AUTOFILL, STR_TIMETABLE_AUTOFILL_TOOLTIP},
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 109, 118, 129, STR_TIMETABLE_CHANGE_TIME, STR_TIMETABLE_WAIT_TIME_TOOLTIP}, // TTV_CHANGE_TIME
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 110, 219, 118, 129, STR_CLEAR_TIME, STR_TIMETABLE_CLEAR_TIME_TOOLTIP}, // TTV_CLEAR_TIME
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 220, 337, 118, 129, STR_RESET_LATENESS, STR_TIMETABLE_RESET_LATENESS_TOOLTIP}, // TTV_RESET_LATENESS
{ WWT_PUSHTXTBTN, RESIZE_TB, 14, 338, 387, 118, 129, STR_TIMETABLE_AUTOFILL, STR_TIMETABLE_AUTOFILL_TOOLTIP}, // TTV_AUTOFILL
{ WWT_PANEL, RESIZE_RTB, 14, 388, 387, 118, 129, STR_NULL, STR_NULL},
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 388, 399, 118, 129, STR_NULL, STR_RESIZE_BUTTON},
{ WWT_PANEL, RESIZE_RTB, 14, 388, 387, 118, 129, STR_NULL, STR_NULL}, // TTV_EMPTY
{ WWT_RESIZEBOX, RESIZE_LRTB, 14, 388, 399, 118, 129, STR_NULL, STR_RESIZE_BUTTON}, // TTV_RESIZE
{ WIDGETS_END }
};