src/mess/osd/windows/menu.c
| r875 | r876 | |
| 1219 | 1219 | UINT16 in_cat_value = 0; |
| 1220 | 1220 | int frameskip; |
| 1221 | 1221 | int orientation; |
| 1222 | int speed; |
| 1222 | 1223 | LONG_PTR ptr = GetWindowLongPtr(wnd, GWLP_USERDATA); |
| 1223 | 1224 | win_window_info *window = (win_window_info *)ptr; |
| 1224 | 1225 | const char *view_name; |
| r875 | r876 | |
| 1238 | 1239 | |
| 1239 | 1240 | orientation = render_target_get_orientation(window->target); |
| 1240 | 1241 | |
| 1242 | speed = video_get_throttle() ? video_get_speed_factor() : 0; |
| 1243 | |
| 1241 | 1244 | has_config = input_has_input_class(INPUT_CLASS_CONFIG); |
| 1242 | 1245 | has_dipswitch = input_has_input_class(INPUT_CLASS_DIPSWITCH); |
| 1243 | 1246 | has_keyboard = input_has_input_class(INPUT_CLASS_KEYBOARD); |
| r875 | r876 | |
| 1258 | 1261 | set_command_state(menu_bar, ID_EDIT_PASTE, inputx_can_post() ? MFS_ENABLED : MFS_GRAYED); |
| 1259 | 1262 | |
| 1260 | 1263 | set_command_state(menu_bar, ID_OPTIONS_PAUSE, winwindow_ui_is_paused() ? MFS_CHECKED : MFS_ENABLED); |
| 1261 | | set_command_state(menu_bar, ID_OPTIONS_THROTTLE, video_get_throttle() ? MFS_CHECKED : MFS_ENABLED); |
| 1262 | 1264 | set_command_state(menu_bar, ID_OPTIONS_CONFIGURATION, has_config ? MFS_ENABLED : MFS_GRAYED); |
| 1263 | 1265 | set_command_state(menu_bar, ID_OPTIONS_DIPSWITCHES, has_dipswitch ? MFS_ENABLED : MFS_GRAYED); |
| 1264 | 1266 | set_command_state(menu_bar, ID_OPTIONS_MISCINPUT, has_misc ? MFS_ENABLED : MFS_GRAYED); |
| r875 | r876 | |
| 1284 | 1286 | set_command_state(menu_bar, ID_VIDEO_ROTATE_180, (orientation == ROT180) ? MFS_CHECKED : MFS_ENABLED); |
| 1285 | 1287 | set_command_state(menu_bar, ID_VIDEO_ROTATE_270, (orientation == ROT270) ? MFS_CHECKED : MFS_ENABLED); |
| 1286 | 1288 | |
| 1289 | set_command_state(menu_bar, ID_THROTTLE_50, (speed == 50) ? MFS_CHECKED : MFS_ENABLED); |
| 1290 | set_command_state(menu_bar, ID_THROTTLE_100, (speed == 100) ? MFS_CHECKED : MFS_ENABLED); |
| 1291 | set_command_state(menu_bar, ID_THROTTLE_200, (speed == 200) ? MFS_CHECKED : MFS_ENABLED); |
| 1292 | set_command_state(menu_bar, ID_THROTTLE_500, (speed == 500) ? MFS_CHECKED : MFS_ENABLED); |
| 1293 | set_command_state(menu_bar, ID_THROTTLE_1000, (speed == 1000) ? MFS_CHECKED : MFS_ENABLED); |
| 1294 | set_command_state(menu_bar, ID_THROTTLE_UNTHROTTLED, (speed == 0) ? MFS_CHECKED : MFS_ENABLED); |
| 1295 | |
| 1287 | 1296 | set_command_state(menu_bar, ID_FRAMESKIP_AUTO, (frameskip < 0) ? MFS_CHECKED : MFS_ENABLED); |
| 1288 | 1297 | for (i = 0; i < frameskip_level_count(); i++) |
| 1289 | 1298 | set_command_state(menu_bar, ID_FRAMESKIP_0 + i, (frameskip == i) ? MFS_CHECKED : MFS_ENABLED); |
| r875 | r876 | |
| 1393 | 1402 | |
| 1394 | 1403 | |
| 1395 | 1404 | //============================================================ |
| 1405 | // set_seped |
| 1406 | //============================================================ |
| 1407 | |
| 1408 | static void set_speed(int speed) |
| 1409 | { |
| 1410 | if (speed != 0) |
| 1411 | video_set_speed_factor(speed); |
| 1412 | video_set_throttle(speed != 0); |
| 1413 | } |
| 1414 | |
| 1415 | |
| 1416 | |
| 1417 | //============================================================ |
| 1396 | 1418 | // win_toggle_menubar |
| 1397 | 1419 | //============================================================ |
| 1398 | 1420 | |
| r875 | r876 | |
| 1692 | 1714 | mame_schedule_soft_reset(Machine); |
| 1693 | 1715 | break; |
| 1694 | 1716 | |
| 1695 | | case ID_OPTIONS_THROTTLE: |
| 1696 | | video_set_throttle(!video_get_throttle()); |
| 1697 | | break; |
| 1698 | | |
| 1699 | 1717 | #if HAS_PROFILER |
| 1700 | 1718 | case ID_OPTIONS_PROFILER: |
| 1701 | 1719 | ui_set_show_profiler(!ui_get_show_profiler()); |
| r875 | r876 | |
| 1760 | 1778 | help_about_thissystem(wnd); |
| 1761 | 1779 | break; |
| 1762 | 1780 | |
| 1781 | case ID_THROTTLE_50: |
| 1782 | set_speed(50); |
| 1783 | break; |
| 1784 | |
| 1785 | case ID_THROTTLE_100: |
| 1786 | set_speed(100); |
| 1787 | break; |
| 1788 | |
| 1789 | case ID_THROTTLE_200: |
| 1790 | set_speed(200); |
| 1791 | break; |
| 1792 | |
| 1793 | case ID_THROTTLE_500: |
| 1794 | set_speed(500); |
| 1795 | break; |
| 1796 | |
| 1797 | case ID_THROTTLE_1000: |
| 1798 | set_speed(1000); |
| 1799 | break; |
| 1800 | |
| 1801 | case ID_THROTTLE_UNTHROTTLED: |
| 1802 | set_speed(0); |
| 1803 | break; |
| 1804 | |
| 1763 | 1805 | default: |
| 1764 | 1806 | // quickly come up with a port count, so we can upper bound commands |
| 1765 | 1807 | // near ID_INPUT_0 |
src/mess/osd/windows/messres.h
| r875 | r876 | |
| 13 | 13 | #define ID_OPTIONS_CONFIGURATION 109 |
| 14 | 14 | #define ID_OPTIONS_DIPSWITCHES 110 |
| 15 | 15 | #define ID_OPTIONS_MISCINPUT 111 |
| 16 | | #define ID_OPTIONS_USEMOUSE 112 |
| 16 | #define ID_OPTIONS_USEMOUSE 112 |
| 17 | 17 | #define ID_OPTIONS_TOGGLEMENUBAR 113 |
| 18 | 18 | #define ID_OPTIONS_SOFTRESET 114 |
| 19 | 19 | #define ID_OPTIONS_HARDRESET 115 |
| 20 | | #define ID_OPTIONS_THROTTLE 116 |
| 21 | | #define ID_OPTIONS_FRAMESKIP 117 |
| 22 | | #define ID_OPTIONS_PAUSE 118 |
| 23 | | #define ID_OPTIONS_JOYSTICKS 119 |
| 24 | | #define ID_OPTIONS_ANALOGCONTROLS 120 |
| 25 | | #define ID_OPTIONS_FULLSCREEN 121 |
| 26 | | #define ID_OPTIONS_PROFILER 122 |
| 27 | | #define ID_OPTIONS_TOGGLEFPS 123 |
| 28 | | #define ID_OPTIONS_DEBUGGER 124 |
| 29 | | #define ID_KEYBOARD_EMULATED 125 |
| 30 | | #define ID_KEYBOARD_NATURAL 126 |
| 31 | | #define ID_KEYBOARD_CUSTOMIZE 127 |
| 32 | | #define ID_VIDEO_ROTATE_0 128 |
| 33 | | #define ID_VIDEO_ROTATE_90 129 |
| 34 | | #define ID_VIDEO_ROTATE_180 130 |
| 35 | | #define ID_VIDEO_ROTATE_270 131 |
| 36 | | #define ID_FRAMESKIP_AUTO 132 |
| 37 | | #define ID_DEVICES 133 |
| 38 | | #define ID_HELP_ABOUT 134 |
| 39 | | #define ID_HELP_ABOUTSYSTEM 135 |
| 20 | #define ID_OPTIONS_FRAMESKIP 116 |
| 21 | #define ID_OPTIONS_PAUSE 117 |
| 22 | #define ID_OPTIONS_JOYSTICKS 118 |
| 23 | #define ID_OPTIONS_ANALOGCONTROLS 119 |
| 24 | #define ID_OPTIONS_FULLSCREEN 120 |
| 25 | #define ID_OPTIONS_PROFILER 121 |
| 26 | #define ID_OPTIONS_TOGGLEFPS 122 |
| 27 | #define ID_OPTIONS_DEBUGGER 123 |
| 28 | #define ID_KEYBOARD_EMULATED 124 |
| 29 | #define ID_KEYBOARD_NATURAL 125 |
| 30 | #define ID_KEYBOARD_CUSTOMIZE 126 |
| 31 | #define ID_VIDEO_ROTATE_0 127 |
| 32 | #define ID_VIDEO_ROTATE_90 128 |
| 33 | #define ID_VIDEO_ROTATE_180 129 |
| 34 | #define ID_VIDEO_ROTATE_270 130 |
| 35 | #define ID_THROTTLE_50 131 |
| 36 | #define ID_THROTTLE_100 132 |
| 37 | #define ID_THROTTLE_200 133 |
| 38 | #define ID_THROTTLE_500 134 |
| 39 | #define ID_THROTTLE_1000 135 |
| 40 | #define ID_THROTTLE_UNTHROTTLED 136 |
| 41 | #define ID_FRAMESKIP_AUTO 137 |
| 42 | #define ID_DEVICES 138 |
| 43 | #define ID_HELP_ABOUT 139 |
| 44 | #define ID_HELP_ABOUTSYSTEM 140 |
| 40 | 45 | #define IDD_TAPEDIALOG 500 |
| 41 | 46 | #define IDI_ICON_CART 1000 |
| 42 | 47 | #define IDI_ICON_HARD 1001 |
| r875 | r876 | |
| 58 | 63 | #ifdef APSTUDIO_INVOKED |
| 59 | 64 | #ifndef APSTUDIO_READONLY_SYMBOLS |
| 60 | 65 | #define _APS_NEXT_RESOURCE_VALUE 129 |
| 61 | | #define _APS_NEXT_COMMAND_VALUE 40001 |
| 66 | #define _APS_NEXT_COMMAND_VALUE 40008 |
| 62 | 67 | #define _APS_NEXT_CONTROL_VALUE 6006 |
| 63 | 68 | #define _APS_NEXT_SYMED_VALUE 101 |
| 64 | 69 | #endif |
src/mess/osd/windows/mess.rc
| r875 | r876 | |
| 72 | 72 | BEGIN |
| 73 | 73 | MENUITEM "Auto", ID_FRAMESKIP_AUTO |
| 74 | 74 | END |
| 75 | | MENUITEM "&Throttle", ID_OPTIONS_THROTTLE |
| 76 | | MENUITEM "&Show FPS", ID_OPTIONS_TOGGLEFPS |
| 75 | POPUP "Maximum &Speed" |
| 76 | BEGIN |
| 77 | MENUITEM "50%", ID_THROTTLE_50 |
| 78 | MENUITEM "100%", ID_THROTTLE_100 |
| 79 | MENUITEM "200%", ID_THROTTLE_200 |
| 80 | MENUITEM "500%", ID_THROTTLE_500 |
| 81 | MENUITEM "1000%", ID_THROTTLE_1000 |
| 82 | MENUITEM "Unlimited", ID_THROTTLE_UNTHROTTLED |
| 83 | END |
| 84 | MENUITEM "Show &FPS", ID_OPTIONS_TOGGLEFPS |
| 77 | 85 | MENUITEM SEPARATOR |
| 78 | 86 | MENUITEM "&Hide Menubar\tScrLk", ID_OPTIONS_TOGGLEMENUBAR |
| 79 | 87 | MENUITEM "&Full Screen\tAlt+Enter", ID_OPTIONS_FULLSCREEN |