362 break; |
362 break; |
363 } |
363 } |
364 } break; |
364 } break; |
365 |
365 |
366 case WE_PLACE_OBJ: |
366 case WE_PLACE_OBJ: |
367 VpStartPlaceSizing(e->place.tile, VPM_X_AND_Y_LIMITED); |
367 VpStartPlaceSizing(e->we.place.tile, VPM_X_AND_Y_LIMITED); |
368 VpSetPlaceSizingLimit(20); |
368 VpSetPlaceSizingLimit(20); |
369 break; |
369 break; |
370 |
370 |
371 case WE_PLACE_DRAG: |
371 case WE_PLACE_DRAG: |
372 VpSelectTilesWithMethod(e->place.pt.x, e->place.pt.y, e->place.userdata); |
372 VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.userdata); |
373 return; |
373 return; |
374 |
374 |
375 case WE_PLACE_MOUSEUP: |
375 case WE_PLACE_MOUSEUP: |
376 if (e->click.pt.x != -1) { |
376 if (e->we.click.pt.x != -1) { |
377 DoCommandP(e->place.tile, _tree_to_plant, e->place.starttile, NULL, |
377 DoCommandP(e->we.place.tile, _tree_to_plant, e->we.place.starttile, NULL, |
378 CMD_PLANT_TREE | CMD_AUTO | CMD_MSG(STR_2805_CAN_T_PLANT_TREE_HERE)); |
378 CMD_PLANT_TREE | CMD_AUTO | CMD_MSG(STR_2805_CAN_T_PLANT_TREE_HERE)); |
379 } |
379 } |
380 break; |
380 break; |
381 |
381 |
382 case WE_TIMEOUT: |
382 case WE_TIMEOUT: |
898 |
898 |
899 tb->caretpos = tb->length; |
899 tb->caretpos = tb->length; |
900 tb->caretxoffs = tb->width; |
900 tb->caretxoffs = tb->width; |
901 } |
901 } |
902 |
902 |
903 int HandleEditBoxKey(Window *w, querystr_d *string, int wid, WindowEvent *we, CharSetFilter afilter) |
903 int HandleEditBoxKey(Window *w, querystr_d *string, int wid, WindowEvent *e, CharSetFilter afilter) |
904 { |
904 { |
905 we->keypress.cont = false; |
905 e->we.keypress.cont = false; |
906 |
906 |
907 switch (we->keypress.keycode) { |
907 switch (e->we.keypress.keycode) { |
908 case WKC_ESC: return 2; |
908 case WKC_ESC: return 2; |
909 case WKC_RETURN: case WKC_NUM_ENTER: return 1; |
909 case WKC_RETURN: case WKC_NUM_ENTER: return 1; |
910 case (WKC_CTRL | 'V'): |
910 case (WKC_CTRL | 'V'): |
911 if (InsertTextBufferClipboard(&string->text)) |
911 if (InsertTextBufferClipboard(&string->text)) |
912 InvalidateWidget(w, wid); |
912 InvalidateWidget(w, wid); |
914 case (WKC_CTRL | 'U'): |
914 case (WKC_CTRL | 'U'): |
915 DeleteTextBufferAll(&string->text); |
915 DeleteTextBufferAll(&string->text); |
916 InvalidateWidget(w, wid); |
916 InvalidateWidget(w, wid); |
917 break; |
917 break; |
918 case WKC_BACKSPACE: case WKC_DELETE: |
918 case WKC_BACKSPACE: case WKC_DELETE: |
919 if (DeleteTextBufferChar(&string->text, we->keypress.keycode)) |
919 if (DeleteTextBufferChar(&string->text, e->we.keypress.keycode)) |
920 InvalidateWidget(w, wid); |
920 InvalidateWidget(w, wid); |
921 break; |
921 break; |
922 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME: |
922 case WKC_LEFT: case WKC_RIGHT: case WKC_END: case WKC_HOME: |
923 if (MoveTextBufferPos(&string->text, we->keypress.keycode)) |
923 if (MoveTextBufferPos(&string->text, e->we.keypress.keycode)) |
924 InvalidateWidget(w, wid); |
924 InvalidateWidget(w, wid); |
925 break; |
925 break; |
926 default: |
926 default: |
927 if (IsValidAsciiChar(we->keypress.ascii, afilter)) { |
927 if (IsValidAsciiChar(e->we.keypress.ascii, afilter)) { |
928 if (InsertTextBufferChar(&string->text, we->keypress.ascii)) |
928 if (InsertTextBufferChar(&string->text, e->we.keypress.ascii)) |
929 InvalidateWidget(w, wid); |
929 InvalidateWidget(w, wid); |
930 } else { // key wasn't caught. Continue only if standard entry specified |
930 } else { // key wasn't caught. Continue only if standard entry specified |
931 we->keypress.cont = (afilter == CS_ALPHANUMERAL); |
931 e->we.keypress.cont = (afilter == CS_ALPHANUMERAL); |
932 } |
932 } |
933 } |
933 } |
934 |
934 |
935 return 0; |
935 return 0; |
936 } |
936 } |
977 |
977 |
978 DrawEditBox(w, &WP(w,querystr_d), 5); |
978 DrawEditBox(w, &WP(w,querystr_d), 5); |
979 break; |
979 break; |
980 |
980 |
981 case WE_CLICK: |
981 case WE_CLICK: |
982 switch (e->click.widget) { |
982 switch (e->we.click.widget) { |
983 case 3: DeleteWindow(w); break; |
983 case 3: DeleteWindow(w); break; |
984 case 4: |
984 case 4: |
985 press_ok:; |
985 press_ok:; |
986 if (WP(w, querystr_d).orig != NULL && |
986 if (WP(w, querystr_d).orig != NULL && |
987 strcmp(WP(w, querystr_d).text.buf, WP(w, querystr_d).orig) == 0) { |
987 strcmp(WP(w, querystr_d).text.buf, WP(w, querystr_d).orig) == 0) { |
999 |
999 |
1000 parent = FindWindowById(wnd_class, wnd_num); |
1000 parent = FindWindowById(wnd_class, wnd_num); |
1001 if (parent != NULL) { |
1001 if (parent != NULL) { |
1002 WindowEvent e; |
1002 WindowEvent e; |
1003 e.event = WE_ON_EDIT_TEXT; |
1003 e.event = WE_ON_EDIT_TEXT; |
1004 e.edittext.str = buf; |
1004 e.we.edittext.str = buf; |
1005 parent->wndproc(parent, &e); |
1005 parent->wndproc(parent, &e); |
1006 } |
1006 } |
1007 } |
1007 } |
1008 break; |
1008 break; |
1009 } |
1009 } |
1106 |
1106 |
1107 DrawStringMultiCenter(90, 38, WP(w, query_d).message, 178); |
1107 DrawStringMultiCenter(90, 38, WP(w, query_d).message, 178); |
1108 break; |
1108 break; |
1109 |
1109 |
1110 case WE_CLICK: |
1110 case WE_CLICK: |
1111 switch (e->click.widget) { |
1111 switch (e->we.click.widget) { |
1112 case 3: |
1112 case 3: |
1113 case 4: |
1113 case 4: |
1114 WP(w, query_d).calledback = true; |
1114 WP(w, query_d).calledback = true; |
1115 if (WP(w, query_d).ok_cancel_callback != NULL) WP(w, query_d).ok_cancel_callback(e->click.widget == 4); |
1115 if (WP(w, query_d).ok_cancel_callback != NULL) WP(w, query_d).ok_cancel_callback(e->we.click.widget == 4); |
1116 DeleteWindow(w); |
1116 DeleteWindow(w); |
1117 break; |
1117 break; |
1118 } |
1118 } |
1119 break; |
1119 break; |
1120 |
1120 |
1377 } |
1377 } |
1378 break; |
1378 break; |
1379 } |
1379 } |
1380 |
1380 |
1381 case WE_CLICK: |
1381 case WE_CLICK: |
1382 switch (e->click.widget) { |
1382 switch (e->we.click.widget) { |
1383 case 2: /* Sort save names by name */ |
1383 case 2: /* Sort save names by name */ |
1384 _savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ? |
1384 _savegame_sort_order = (_savegame_sort_order == SORT_BY_NAME) ? |
1385 SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME; |
1385 SORT_BY_NAME | SORT_DESCENDING : SORT_BY_NAME; |
1386 _savegame_sort_dirty = true; |
1386 _savegame_sort_dirty = true; |
1387 SetWindowDirty(w); |
1387 SetWindowDirty(w); |
1486 FiosFreeSavegameList(); |
1486 FiosFreeSavegameList(); |
1487 CLRBIT(_no_scroll, SCROLL_SAVE); |
1487 CLRBIT(_no_scroll, SCROLL_SAVE); |
1488 break; |
1488 break; |
1489 case WE_RESIZE: { |
1489 case WE_RESIZE: { |
1490 /* Widget 2 and 3 have to go with halve speed, make it so obiwan */ |
1490 /* Widget 2 and 3 have to go with halve speed, make it so obiwan */ |
1491 uint diff = e->sizing.diff.x / 2; |
1491 uint diff = e->we.sizing.diff.x / 2; |
1492 w->widget[2].right += diff; |
1492 w->widget[2].right += diff; |
1493 w->widget[3].left += diff; |
1493 w->widget[3].left += diff; |
1494 w->widget[3].right += e->sizing.diff.x; |
1494 w->widget[3].right += e->we.sizing.diff.x; |
1495 |
1495 |
1496 /* Same for widget 11 and 12 in save-dialog */ |
1496 /* Same for widget 11 and 12 in save-dialog */ |
1497 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) { |
1497 if (_saveload_mode == SLD_SAVE_GAME || _saveload_mode == SLD_SAVE_SCENARIO) { |
1498 w->widget[11].right += diff; |
1498 w->widget[11].right += diff; |
1499 w->widget[12].left += diff; |
1499 w->widget[12].left += diff; |
1500 w->widget[12].right += e->sizing.diff.x; |
1500 w->widget[12].right += e->we.sizing.diff.x; |
1501 } |
1501 } |
1502 |
1502 |
1503 w->vscroll.cap += e->sizing.diff.y / 10; |
1503 w->vscroll.cap += e->we.sizing.diff.y / 10; |
1504 } break; |
1504 } break; |
1505 } |
1505 } |
1506 } |
1506 } |
1507 |
1507 |
1508 static const WindowDesc _load_dialog_desc = { |
1508 static const WindowDesc _load_dialog_desc = { |
1793 break; |
1793 break; |
1794 } |
1794 } |
1795 |
1795 |
1796 case WE_CLICK: { |
1796 case WE_CLICK: { |
1797 const CheatEntry *ce; |
1797 const CheatEntry *ce; |
1798 uint btn = (e->click.pt.y - 46) / 12; |
1798 uint btn = (e->we.click.pt.y - 46) / 12; |
1799 int32 value, oldvalue; |
1799 int32 value, oldvalue; |
1800 uint x = e->click.pt.x; |
1800 uint x = e->we.click.pt.x; |
1801 |
1801 |
1802 // not clicking a button? |
1802 // not clicking a button? |
1803 if (!IS_INT_INSIDE(x, 20, 40) || btn >= lengthof(_cheats_ui)) break; |
1803 if (!IS_INT_INSIDE(x, 20, 40) || btn >= lengthof(_cheats_ui)) break; |
1804 |
1804 |
1805 ce = &_cheats_ui[btn]; |
1805 ce = &_cheats_ui[btn]; |