diff --git a/mystic/HISTORY.txt b/mystic/HISTORY.txt index bf5ef95..718a360 100644 --- a/mystic/HISTORY.txt +++ b/mystic/HISTORY.txt @@ -4210,3 +4210,24 @@ a user realname, handle, or user perm index number. If the user exists, it will return a TRUE result or FALSE if the user does not exist. + + Enhanced standard menus to allow for HOME/END/PAGEUP/PAGEDOWN hotkeys + which execute menu commands when those keys are pressed. So the total + list of special hotkeys are: + + ESCAPE + ENTER + TAB + HOME + UP + PAGEUP + LEFT + RIGHT + END + DOWN + PAGEDOWN + + In addition these are still functional as auto-exec commands: + + FIRSTCMD - Execute only once when the menu is first loaded + EVERY - Execute each time a menu is display, before it is displayed + AFTER - Execute after the menu is displayed but before the prompt diff --git a/mystic/bbs_menus.pas b/mystic/bbs_menus.pas index fda5c16..2de2dce 100644 --- a/mystic/bbs_menus.pas +++ b/mystic/bbs_menus.pas @@ -708,10 +708,14 @@ Var If ((Temp = #27) and (MenuList[A].HotKey = 'ESCAPE')) or ((Temp = #13) and (MenuList[A].HotKey = 'ENTER')) or ((Temp = #9) and (MenuList[A].HotKey = 'TAB')) or + (Session.io.IsArrow and (Temp = #71) and (MenuList[A].HotKey = 'HOME')) or (Session.io.IsArrow and (Temp = #72) and (MenuList[A].HotKey = 'UP')) or + (Session.io.IsArrow and (Temp = #73) and (MenuList[A].HotKey = 'PAGEUP')) or (Session.io.IsArrow and (Temp = #75) and (MenuList[A].HotKey = 'LEFT')) or (Session.io.IsArrow and (Temp = #77) and (MenuList[A].HotKey = 'RIGHT')) or + (Session.io.IsArrow and (Temp = #79) and (MenuList[A].HotKey = 'END')) or (Session.io.IsArrow and (Temp = #80) and (MenuList[A].HotKey = 'DOWN')) or + (Session.io.IsArrow and (Temp = #81) and (MenuList[A].HotKey = 'PAGEDOWN')) or (Not Session.io.IsArrow and (Temp = MenuList[A].HotKey)) Then If Session.User.Access(MenuList[A].ACS) Then @@ -811,17 +815,29 @@ Begin If MenuList[A].HotKey = 'ESCAPE' Then Keys := Keys + #27 Else + If MenuList[A].HotKey = 'HOME' Then + ExtKeys := ExtKeys + #71 + Else If MenuList[A].HotKey = 'UP' Then ExtKeys := ExtKeys + #72 Else + If MenuList[A].HotKey = 'PAGEUP' Then + ExtKeys := ExtKeys + #73 + Else If MenuList[A].HotKey = 'LEFT' Then ExtKeys := ExtKeys + #75 Else If MenuList[A].HotKey = 'RIGHT' Then ExtKeys := ExtKeys + #77 Else + If MenuList[A].HotKey = 'END' Then + ExtKeys := ExtKeys + #79 + Else If MenuList[A].HotKey = 'DOWN' Then ExtKeys := ExtKeys + #80 + Else + If MenuList[A].HotKey = 'PAGEDOWN' Then + ExtKeys := ExtKeys + #81 Else Keys := Keys + MenuList[A].HotKey[1];