misc_gui.c
changeset 2750 f682b3cc8ff1
parent 2748 21bbb96a6467
child 2753 b25bd313785e
equal deleted inserted replaced
2749:c9312a4a1efe 2750:f682b3cc8ff1
  1091 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_4001_LOAD_GAME,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1091 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_4001_LOAD_GAME,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1092 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,		STR_SORT_ORDER_TIP},
  1092 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,		STR_SORT_ORDER_TIP},
  1093 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,		STR_SORT_ORDER_TIP},
  1093 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,		STR_SORT_ORDER_TIP},
  1094 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,								STR_NULL},
  1094 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,								STR_NULL},
  1095 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   293, 0x0,								STR_NULL},
  1095 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   293, 0x0,								STR_NULL},
       
  1096 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,			STR_SAVELOAD_HOME_BUTTON},
  1096 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   291, 0x0,								STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1097 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   291, 0x0,								STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1097 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,			STR_SAVELOAD_HOME_BUTTON},
       
  1098 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   281, 0x0,								STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1098 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   281, 0x0,								STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1099 {  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   245,   256,   282,   293, 0x0,								STR_RESIZE_BUTTON},
  1099 {  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   245,   256,   282,   293, 0x0,								STR_RESIZE_BUTTON},
  1100 {   WIDGETS_END},
  1100 {   WIDGETS_END},
  1101 };
  1101 };
  1102 
  1102 
  1105 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_0298_LOAD_SCENARIO,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1105 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_0298_LOAD_SCENARIO,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1106 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,				STR_SORT_ORDER_TIP},
  1106 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,				STR_SORT_ORDER_TIP},
  1107 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,				STR_SORT_ORDER_TIP},
  1107 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,				STR_SORT_ORDER_TIP},
  1108 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,										STR_NULL},
  1108 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,										STR_NULL},
  1109 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   293, 0x0,										STR_NULL},
  1109 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   293, 0x0,										STR_NULL},
       
  1110 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,					STR_SAVELOAD_HOME_BUTTON},
  1110 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   291, 0x0,										STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1111 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   291, 0x0,										STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1111 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,					STR_SAVELOAD_HOME_BUTTON},
       
  1112 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   281, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1112 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   281, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1113 {  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   245,   256,   282,   293, 0x0,										STR_RESIZE_BUTTON},
  1113 {  WWT_RESIZEBOX,   RESIZE_LRTB,    14,   245,   256,   282,   293, 0x0,										STR_RESIZE_BUTTON},
  1114 {   WIDGETS_END},
  1114 {   WIDGETS_END},
  1115 };
  1115 };
  1116 
  1116 
  1119 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_4000_SAVE_GAME,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1119 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_4000_SAVE_GAME,	STR_018C_WINDOW_TITLE_DRAG_THIS},
  1120 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,		STR_SORT_ORDER_TIP},
  1120 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,		STR_SORT_ORDER_TIP},
  1121 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,		STR_SORT_ORDER_TIP},
  1121 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,		STR_SORT_ORDER_TIP},
  1122 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,								STR_NULL},
  1122 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,								STR_NULL},
  1123 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   291, 0x0,								STR_NULL},
  1123 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   291, 0x0,								STR_NULL},
       
  1124 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,			STR_SAVELOAD_HOME_BUTTON},
  1124 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   290, 0x0,								STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1125 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   290, 0x0,								STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1125 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,			STR_SAVELOAD_HOME_BUTTON},
       
  1126 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   291, 0x0,								STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1126 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   291, 0x0,								STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1127 {     WWT_IMGBTN,    RESIZE_RTB,    14,     0,   256,   292,   307, 0x0,								STR_NULL},
  1127 {     WWT_IMGBTN,    RESIZE_RTB,    14,     0,   256,   292,   307, 0x0,								STR_NULL},
  1128 {     WWT_IMGBTN,    RESIZE_RTB,    14,     2,   254,   294,   305, 0x0,								STR_400B_CURRENTLY_SELECTED_NAME},
  1128 {     WWT_IMGBTN,    RESIZE_RTB,    14,     2,   254,   294,   305, 0x0,								STR_400B_CURRENTLY_SELECTED_NAME},
  1129 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   127,   308,   319, STR_4003_DELETE,		STR_400C_DELETE_THE_CURRENTLY_SELECTED},
  1129 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   127,   308,   319, STR_4003_DELETE,		STR_400C_DELETE_THE_CURRENTLY_SELECTED},
  1130 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,   128,   244,   308,   319, STR_4002_SAVE,			STR_400D_SAVE_THE_CURRENT_GAME_USING},
  1130 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,   128,   244,   308,   319, STR_4002_SAVE,			STR_400D_SAVE_THE_CURRENT_GAME_USING},
  1137 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_0299_SAVE_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS},
  1137 {    WWT_CAPTION,  RESIZE_RIGHT,    14,    11,   256,     0,    13, STR_0299_SAVE_SCENARIO, STR_018C_WINDOW_TITLE_DRAG_THIS},
  1138 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,				STR_SORT_ORDER_TIP},
  1138 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,     0,   127,    14,    25, STR_SORT_BY_NAME,				STR_SORT_ORDER_TIP},
  1139 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,				STR_SORT_ORDER_TIP},
  1139 { WWT_PUSHTXTBTN,   RESIZE_NONE,    14,   128,   256,    14,    25, STR_SORT_BY_DATE,				STR_SORT_ORDER_TIP},
  1140 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,										STR_NULL},
  1140 {     WWT_IMGBTN,  RESIZE_RIGHT,    14,     0,   256,    26,    47, 0x0,										STR_NULL},
  1141 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   291, 0x0,										STR_NULL},
  1141 {     WWT_IMGBTN,     RESIZE_RB,    14,     0,   256,    48,   291, 0x0,										STR_NULL},
       
  1142 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,					STR_SAVELOAD_HOME_BUTTON},
  1142 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   290, 0x0,										STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1143 {          WWT_6,     RESIZE_RB,    14,     2,   243,    50,   290, 0x0,										STR_400A_LIST_OF_DRIVES_DIRECTORIES},
  1143 { WWT_PUSHIMGBTN,     RESIZE_LR,    14,   245,   256,    48,    59, SPR_HOUSE_ICON,					STR_SAVELOAD_HOME_BUTTON},
       
  1144 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   291, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1144 {  WWT_SCROLLBAR,    RESIZE_LRB,    14,   245,   256,    60,   291, 0x0,										STR_0190_SCROLL_BAR_SCROLLS_LIST},
  1145 {     WWT_IMGBTN,    RESIZE_RTB,    14,     0,   256,   292,   307, 0x0,										STR_NULL},
  1145 {     WWT_IMGBTN,    RESIZE_RTB,    14,     0,   256,   292,   307, 0x0,										STR_NULL},
  1146 {     WWT_IMGBTN,    RESIZE_RTB,    14,     2,   254,   294,   305, 0x0,										STR_400B_CURRENTLY_SELECTED_NAME},
  1146 {     WWT_IMGBTN,    RESIZE_RTB,    14,     2,   254,   294,   305, 0x0,										STR_400B_CURRENTLY_SELECTED_NAME},
  1147 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   127,   308,   319, STR_4003_DELETE,				STR_400C_DELETE_THE_CURRENTLY_SELECTED},
  1147 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,     0,   127,   308,   319, STR_4003_DELETE,				STR_400C_DELETE_THE_CURRENTLY_SELECTED},
  1148 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,   128,   244,   308,   319, STR_4002_SAVE,					STR_400D_SAVE_THE_CURRENT_GAME_USING},
  1148 { WWT_PUSHTXTBTN,     RESIZE_TB,    14,   128,   244,   308,   319, STR_4002_SAVE,					STR_400D_SAVE_THE_CURRENT_GAME_USING},
  1260 		if (_savegame_sort_dirty) {
  1260 		if (_savegame_sort_dirty) {
  1261 			_savegame_sort_dirty = false;
  1261 			_savegame_sort_dirty = false;
  1262 			MakeSortedSaveGameList();
  1262 			MakeSortedSaveGameList();
  1263 		}
  1263 		}
  1264 
  1264 
  1265 		GfxFillRect(w->widget[6].left + 1, w->widget[6].top + 1, w->widget[6].right, w->widget[6].bottom, 0xD7);
  1265 		GfxFillRect(w->widget[7].left + 1, w->widget[7].top + 1, w->widget[7].right, w->widget[7].bottom, 0xD7);
  1266 		DoDrawString(
  1266 		DoDrawString(
  1267 			_savegame_sort_order & SORT_DESCENDING ? DOWNARROW : UPARROW,
  1267 			_savegame_sort_order & SORT_DESCENDING ? DOWNARROW : UPARROW,
  1268 			_savegame_sort_order & SORT_BY_NAME ? w->widget[2].right - 9 : w->widget[3].right - 9,
  1268 			_savegame_sort_order & SORT_BY_NAME ? w->widget[2].right - 9 : w->widget[3].right - 9,
  1269 			15, 16
  1269 			15, 16
  1270 		);
  1270 		);
  1271 
  1271 
  1272 		y = w->widget[6].top + 1;
  1272 		y = w->widget[7].top + 1;
  1273 		pos = w->vscroll.pos;
  1273 		pos = w->vscroll.pos;
  1274 		while (pos < _fios_num) {
  1274 		while (pos < _fios_num) {
  1275 			item = _fios_list + pos;
  1275 			item = _fios_list + pos;
  1276 			DoDrawStringTruncated(item->title, 4, y, _fios_colors[item->type], w->width - 18);
  1276 			DoDrawStringTruncated(item->title, 4, y, _fios_colors[item->type], w->width - 18);
  1277 			pos++;
  1277 			pos++;
  1278 			y += 10;
  1278 			y += 10;
  1279 			if (y >= w->vscroll.cap * 10 + w->widget[6].top + 1) break;
  1279 			if (y >= w->vscroll.cap * 10 + w->widget[7].top + 1) break;
  1280 		}
  1280 		}
  1281 
  1281 
  1282 		if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
  1282 		if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) {
  1283 			DrawEditBox(w, 10);
  1283 			DrawEditBox(w, 10);
  1284 		}
  1284 		}
  1298 				SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
  1298 				SORT_BY_DATE | SORT_DESCENDING : SORT_BY_DATE;
  1299 			_savegame_sort_dirty = true;
  1299 			_savegame_sort_dirty = true;
  1300 			SetWindowDirty(w);
  1300 			SetWindowDirty(w);
  1301 			break;
  1301 			break;
  1302 
  1302 
  1303 		case 6: { /* Click the listbox */
  1303 		case 6: /* OpenTTD 'button', jumps to OpenTTD directory */
  1304 			int y = (e->click.pt.y - w->widget[6].top - 1) / 10;
  1304 			FiosBrowseTo(&o_dir);
       
  1305 			SetWindowDirty(w);
       
  1306 			BuildFileList();
       
  1307 			break;
       
  1308 
       
  1309 		case 7: { /* Click the listbox */
       
  1310 			int y = (e->click.pt.y - w->widget[e->click.widget].top - 1) / 10;
  1305 			char *name;
  1311 			char *name;
  1306 			const FiosItem *file;
  1312 			const FiosItem *file;
  1307 
  1313 
  1308 			if (y < 0 || (y += w->vscroll.pos) >= w->vscroll.count) return;
  1314 			if (y < 0 || (y += w->vscroll.pos) >= w->vscroll.count) return;
  1309 
  1315 
  1330 				SetWindowDirty(w);
  1336 				SetWindowDirty(w);
  1331 				BuildFileList();
  1337 				BuildFileList();
  1332 			}
  1338 			}
  1333 			break;
  1339 			break;
  1334 		}
  1340 		}
  1335 		case 7: /* OpenTTD 'button', jumps to OpenTTD directory */
       
  1336 			FiosBrowseTo(&o_dir);
       
  1337 			SetWindowDirty(w);
       
  1338 			BuildFileList();
       
  1339 			break;
       
  1340 
  1341 
  1341 		case 11: case 12: /* Delete, Save game */
  1342 		case 11: case 12: /* Delete, Save game */
  1342 			break;
  1343 			break;
  1343 		}
  1344 		}
  1344 		break;
  1345 		break;
  1460 	w = AllocateWindowDesc(_saveload_dialogs[mode]);
  1461 	w = AllocateWindowDesc(_saveload_dialogs[mode]);
  1461 	w->vscroll.cap = 24;
  1462 	w->vscroll.cap = 24;
  1462 	w->resize.step_width = 2;
  1463 	w->resize.step_width = 2;
  1463 	w->resize.step_height = 10;
  1464 	w->resize.step_height = 10;
  1464 	w->resize.height = w->height - 14 * 10; // Minimum of 10 items
  1465 	w->resize.height = w->height - 14 * 10; // Minimum of 10 items
  1465 	SETBIT(w->click_state, 6);
  1466 	SETBIT(w->click_state, 7);
  1466 	WP(w,querystr_d).text.caret = false;
  1467 	WP(w,querystr_d).text.caret = false;
  1467 	WP(w,querystr_d).text.maxlength = lengthof(_edit_str_buf) - 1;
  1468 	WP(w,querystr_d).text.maxlength = lengthof(_edit_str_buf) - 1;
  1468 	WP(w,querystr_d).text.maxwidth = 240;
  1469 	WP(w,querystr_d).text.maxwidth = 240;
  1469 	WP(w,querystr_d).text.buf = _edit_str_buf;
  1470 	WP(w,querystr_d).text.buf = _edit_str_buf;
  1470 	UpdateTextBufferSize(&WP(w, querystr_d).text);
  1471 	UpdateTextBufferSize(&WP(w, querystr_d).text);