Use cSciLexer.h Register_Procedure CME_Find Register_Procedure CME_FindNext Register_Procedure CME_FindPrevious Register_Procedure CME_FindReplace Register_Procedure CME_GotoLine Register_Procedure CME_SelectAll Register_Function phoEditorEditView Returns Handle // it's actually a property, but this should do Register_Procedure CAPopUpFindInFiles Register_Procedure CASaveFile Register_Procedure CASaveFileAs Register_Procedure CASaveAllFiles Register_Procedure CACloseFile Register_Procedure CACloseAllFiles Register_Procedure CASelectWorkSpace Register_Procedure CABuildRun Register_Procedure CABuildRunCurrent Register_Procedure CABuildCompile Register_Procedure CABuildPreCompile Register_Procedure CABuildExecute Register_Procedure CABuildDebugRun Register_Procedure CABuildDebugRunCurrent Register_Procedure Define_EditViewHotkeys Handle hoEditView // // The hotkeys have to be defined in any object that is part of the main Editor view and as // such it is best declared in a mixin, so that it becomes easy to include. // Class cEditorHotKey_Mixin is a Mixin Procedure Define_cEditorHotKey_Mixin Send Define_EditorHotKeys End_Procedure // // If the focus is not in the editorview or editor control itself then it might even be outside of // the client area (like in one of the toolpanels). In that case we need to reroute the hotkey action // to the editor control. In that case we override this function and return true, so that we know // the action needs to be rerouted. // Function RerouteHotKeys Returns Boolean Function_Return False End_Function Function IsInEditorView Returns Boolean Boolean bInEditView Integer hoEditView Move False To bInEditView Get phoEditorEditView To hoEditView If (hoEditView=Self) Begin Move True To bInEditView End Function_Return bInEditView End_Function Procedure DefineOnKey Integer iCmd Integer iMsg Boolean bInEditView Handle hoEdit Integer iDfKey String sKey tSciCommandHotKey Command Get CMCommandToHotKeyStr iCmd To sKey If (sKey<>"") Begin Get IsInEditorView To bInEditView If (bInEditView) Begin // only run in EditorEditView Get phoCodeMaxEditor To hoEdit If (hoEdit) Begin // if we define a new keybinding, then we need to remove any old keybinding also // as otherwise you end up with both actions. Send RegisterKeyBindingToClear of hoEdit sKey End End Get FindCommand of oSciCommandHotKeys iCmd to Command If (Command.iCmd=iCmd) Begin If (SizeOfArray(Command.HotKey.VKcode)>0) Begin Get DataFlexOnKey of oSciCommandHotKeys Command.HotKey to iDfkey On_Key iDFKey Send iMsg End If (SizeOfArray(Command.HotKey2.VKcode)>0) Begin Get DataFlexOnKey of oSciCommandHotKeys Command.HotKey2 to iDfkey On_Key iDFKey Send iMsg End End End End_Procedure Procedure onPreHotKey Integer iCmd Boolean bHasAlt Get HotKeyHasAlt of oSciCommandHotKeys iCmd to bHasAlt If (bHasAlt) Begin Send DispatchHotkey End End_Procedure Procedure HKSC_GotoMatchBrace Send onPreHotKey CMD_GOTOMATCHBRACE Send GotoMatchBrace End_Procedure // HKSC => Hot Key SCintilla Procedure HKSC_OpenFile Send DispatchHotKey // don't leak a shortcut key into the text window Send CAOpenFile End_Procedure Procedure HKSC_NewFile Send DispatchHotKey // don't leak a shortcut key into the text window Send CANewFile End_Procedure Procedure HKSC_Properties Send onPreHotKey CMD_PROPERTIES Send Properties End_Procedure Procedure HKSC_LineCut Send SC_LineCut End_Procedure Procedure HKSC_LowercaseSelection Send SC_LowercaseSelection End_Procedure Procedure HKSC_UppercaseSelection Send SC_UppercaseSelection End_Procedure Procedure HKSC_BookmarkToggle Send onPreHotKey CMD_BOOKMARKTOGGLE Send BookmarkToggle End_Procedure Procedure HKSC_BookmarkNext Send onPreHotKey CMD_BOOKMARKNEXT Send BookmarkNext End_Procedure Procedure HKSC_BookmarkPrevious Send onPreHotKey CMD_BOOKMARKPREV Send BookmarkPrevious End_Procedure Procedure HKSC_BookmarkClearAll Send onPreHotKey CMD_BOOKMARKCLEARALL Send BookmarkClearAll End_Procedure Procedure HKSC_BookmarkJumpToFirst Send onPreHotKey CMD_BOOKMARKJUMPTOFIRST Send BookmarkJumpToFirst End_Procedure Procedure HKSC_BookmarkJumpToLast Send onPreHotKey CMD_BOOKMARKJUMPTOLAST Send BookmarkJumpToLast End_Procedure Procedure HKSC_MoveLineUp Send onPreHotKey CMD_MOVELINEUP Send MoveLineUp End_Procedure Procedure HKSC_MoveLineDown Send onPreHotKey CMD_MOVELINEDOWN Send MoveLineDown End_Procedure Procedure HKSC_DuplicateSelection Send onPreHotKey CMD_DUPLICATESELECTION Send DuplicateSelection End_Procedure Procedure HKSC_InsertHeaderGlobal Send onPreHotKey CMD_ToolsInsertHeaderGlobal Send InsertHeaderGlobal End_Procedure Procedure HKSC_InsertHeaderUser Send OnPreHotKey CMD_ToolsInsertHeaderUser Send InsertHeaderUser End_Procedure Procedure HKSC_OpenFileUnderCursor Send OnPreHotKey CMD_OpenFileUnderCursor Send OpenFileUnderCursor End_Procedure Procedure HKSC_InsertRevision Send OnPreHotKey CMD_InsertRevisionMark Send InsertRevision End_Procedure Procedure HKSC_InsertColorValue Send OnPreHotKey CMD_InsertColor Send InsertColorValue End_Procedure Procedure HKSC_WindowSwitchToCodeView Send OnPreHotKey CMD_WindowSwitchToCodeView Send WindowSwitchToCodeView End_Procedure Procedure HKSC_PAWindowSwitchToErrorView Send OnPreHotKey CMD_WindowSwitchToErrorView Send PAWindowSwitchToErrorView End_Procedure Procedure HKSC_SyncCodeView Send OnPreHotKey CMD_WindowSyncCodeView Send SyncCodeView End_Procedure Procedure HKSC_CASwitchToNextView Send OnPreHotKey CMD_WindowNextView Send CASwitchToNextView End_Procedure Procedure HKSC_CASwitchToPreviousView Send OnPreHotKey CMD_WindowPreviousView Send CASwitchToPreviousView End_Procedure Procedure HKSC_ListCreator Send OnPreHotKey CMD_ListCreator Send ListCreator End_Procedure Procedure HKSC_ListObjects Send OnPreHotKey CMD_ListObjects Send ListObjects End_Procedure Procedure HKSC_ListVars Send OnPreHotKey CMD_ListVars Send ListVars End_Procedure Procedure HKSC_ListKeys Send OnPreHotKey CMD_ListKeys Send ListKeys End_Procedure Procedure HKSC_ListProcedures Send OnPreHotKey CMD_ListProcedures Send ListProcedures End_Procedure Procedure HKSC_ListFunctions Send OnPreHotKey CMD_ListFunctions Send ListFunctions End_Procedure Procedure HKSC_ListClasses Send OnPreHotKey CMD_ListClasses Send ListClasses End_Procedure Procedure HKSC_ListIDETags Send OnPreHotKey CMD_ListIDETags Send ListIDETags End_Procedure Procedure HKSC_ToggleComment Send OnPreHotKey CMD_ToggleComment Send ToggleComment End_Procedure Procedure HKSC_Toggle_OnItem_AddItem Send OnPreHotKey CMD_ConvertOnItemToAddItem Send Toggle_OnItem_AddItem End_Procedure Procedure HKSC_ConvertCStructToVDF Send OnPreHotKey CMD_ConvertCStructToVDF Send ConvertCStructToVDF End_Procedure Procedure HKSC_ConvertCDllCallToVDF Send OnPreHotKey CMD_ConvertCDllCallToVDF Send ConvertCDllCallToVDF End_Procedure Procedure HKSC_ConvertVDFTypeToHandler Send OnPreHotKey CMD_ConvertVDFTypeToHandler Send ConvertVDFTypeToHandler End_Procedure Procedure HKSC_MarkScopeBlock Send OnPreHotKey CMD_MarkScopeBlock Send MarkScopeBlock End_Procedure Procedure HKSC_PerfCounters Send OnPreHotKey CMD_DEBUGPERFCOUNTERS Send DisplayPerfCounters of ghoApplication End_Procedure Procedure HKSC_RefactorDropSelf Send DispatchHotKey // don't leak a shortcut key into the text window Send RefactorDropSelf End_Procedure Procedure HKSC_RefactorObjectNeighborhood Send DispatchHotKey Send RefactorObjectNeighborhood End_Procedure Procedure HKSC_RefactorReindent Send DispatchHotKey Send RefactorReIndent End_Procedure Procedure HKSC_GotoFirstIndentMismatch Send DispatchHotKey Send GoToFirstIndentationMismatch End_Procedure Procedure HKSC_RefactorMethodExtract Send DispatchHotKey Send RefactorMethodExtract End_Procedure Procedure DefinePredefinedHotKeys Boolean bInEditView Boolean bReroute If (bInEditView=false) Begin Get RerouteHotKeys To bReroute If (bReroute) Begin Send RouteHotkeysToCurrentView End End Else Begin Send DefineOnKey CMD_FIND (RefProc(CME_Find)) Send DefineOnKey CMD_FindNext (RefProc(CME_FindNext)) Send DefineOnKey CMD_FINDPREV (RefProc(CME_FindPrevious)) Send DefineOnKey CMD_FindReplace (RefProc(CME_FindReplace)) Send DefineOnKey CMD_GOTOLINE (RefProc(CME_GotoLine)) Send DefineOnKey CMD_SELECTALL (RefProc(CME_SelectAll)) End Send DefineOnKey CMD_GOTOMATCHBRACE (RefProc(HKSC_GotoMatchBrace)) Send DefineOnKey CMD_PROPERTIES (RefProc(HKSC_Properties)) Send DefineOnKey CMD_LINECUT (RefProc(HKSC_LineCut)) Send DefineOnKey CMD_LOWERCASESELECTION (RefProc(HKSC_LowercaseSelection)) Send DefineOnKey CMD_UPPERCASESELECTION (RefProc(HKSC_UppercaseSelection)) Send DefineOnKey CMD_BOOKMARKTOGGLE (RefProc(HKSC_BookmarkToggle)) Send DefineOnKey CMD_BOOKMARKNEXT (RefProc(HKSC_BookmarkNext)) Send DefineOnKey CMD_BOOKMARKPREV (RefProc(HKSC_BookmarkPrevious)) Send DefineOnKey CMD_BOOKMARKCLEARALL (RefProc(HKSC_BookmarkClearAll)) Send DefineOnKey CMD_BOOKMARKJUMPTOFIRST (RefProc(HKSC_BookmarkJumpToFirst)) Send DefineOnKey CMD_BOOKMARKJUMPTOLAST (RefProc(HKSC_BookmarkJumpToLast)) Send DefineOnKey CMD_MOVELINEUP (RefProc(HKSC_MoveLineUp)) Send DefineOnKey CMD_MOVELINEDOWN (RefProc(HKSC_MoveLineDown)) Send DefineOnKey CMD_DUPLICATESELECTION (RefProc(HKSC_DuplicateSelection)) // Window Menu. Send DefineOnKey CMD_WindowSwitchToCodeView (RefProc(HKSC_WindowSwitchToCodeView)) Send DefineOnKey CMD_WindowSwitchToErrorView (RefProc(HKSC_PAWindowSwitchToErrorView)) Send DefineOnKey CMD_WindowSyncCodeView (RefProc(HKSC_SyncCodeView)) Send DefineOnKey CMD_WindowNextView (RefProc(HKSC_CASwitchToNextView)) Send DefineOnKey CMD_WindowPreviousView (RefProc(HKSC_CASwitchToPreviousView)) // Lists. Send DefineOnKey CMD_ListCreator (RefProc(HKSC_ListCreator)) Send DefineOnKey CMD_ListObjects (RefProc(HKSC_ListObjects)) Send DefineOnKey CMD_ListVars (RefProc(HKSC_ListVars)) Send DefineOnKey CMD_ListKeys (RefProc(HKSC_ListKeys)) Send DefineOnKey CMD_ListProcedures (RefProc(HKSC_ListProcedures)) Send DefineOnKey CMD_ListFunctions (RefProc(HKSC_ListFunctions)) Send DefineOnKey CMD_ListClasses (RefProc(HKSC_ListClasses)) Send DefineOnKey CMD_ListIDETags (RefProc(HKSC_ListIDETags)) // Mixed Send DefineOnKey CMD_ToggleComment (RefProc(HKSC_ToggleComment)) Send DefineOnKey CMD_ToolsInsertHeaderGlobal (RefProc(HKSC_InsertHeaderGlobal)) Send DefineOnKey CMD_ToolsInsertHeaderUser (RefProc(HKSC_InsertHeaderUser)) Send DefineOnKey CMD_OpenFileUnderCursor (RefProc(HKSC_OpenFileUnderCursor)) Send DefineOnKey CMD_InsertRevisionMark (RefProc(HKSC_InsertRevision)) Send DefineOnKey CMD_InsertColor (RefProc(HKSC_InsertColorValue)) // Convetion. Send DefineOnKey CMD_ConvertOnItemToAddItem (RefProc(HKSC_Toggle_OnItem_AddItem)) Send DefineOnKey CMD_ConvertCStructToVDF (RefProc(HKSC_ConvertCStructToVDF)) Send DefineOnKey CMD_ConvertCDllCallToVDF (RefProc(HKSC_ConvertCDllCallToVDF)) Send DefineOnKey CMD_ConvertVDFTypeToHandler (RefProc(HKSC_ConvertVDFTypeToHandler)) Send DefineOnKey CMD_MarkScopeBlock (RefProc(HKSC_MarkScopeBlock)) Send DefineOnKey CMD_DEBUGPERFCOUNTERS (RefProc(HKSC_PerfCounters)) Send DefineOnKey CMD_REFACTORDROPSELF (RefProc(HKSC_RefactorDropSelf)) Send DefineOnKey CMD_REFACTOROBJECTNEIGHBORHOOD (RefProc(HKSC_RefactorObjectNeighborhood)) Send DefineOnKey CMD_REFACTORREINDENT (RefProc(HKSC_RefactorReindent)) Send DefineOnKey CMD_GOTOFIRSTINDENTMISMATCH (RefProc(HKSC_GotoFirstIndentMismatch)) Send DefineOnKey CMD_REFACTORMETHODEXTRACT (RefProc(HKSC_RefactorMethodExtract)) End_Procedure Function CurrentView Returns Integer Handle hoView Handle hoClient Move 0 To hoView Get Client_ID To hoClient If (hoClient) Begin Get FindCurrentView of hoClient To hoView End Function_Return hoView End_Function Procedure CurrentViewHotKeyReroute Integer iMsg Handle hoView Get CurrentView To hoView If (hoView<>0) Begin Send DispatchHotkey Send iMsg to hoView End End_Procedure Procedure CurrentView_CAPopUpFindInFiles Send CurrentViewHotKeyReroute (RefProc(CAPopUpFindInFiles)) End_Procedure Procedure CurrentView_HKSC_OpenFile Send CurrentViewHotKeyReroute (RefProc(HKSC_OpenFile)) End_Procedure Procedure CurrentView_CASaveFile Send CurrentViewHotKeyReroute (RefProc(CASaveFile)) End_Procedure Procedure CurrentView_CASaveFileAs Send CurrentViewHotKeyReroute (RefProc(CASaveFileAs)) End_Procedure Procedure CurrentView_CASaveAllFiles Send CurrentViewHotKeyReroute (RefProc(CASaveAllFiles)) End_Procedure Procedure CurrentView_CACloseFile Send CurrentViewHotKeyReroute (RefProc(CACloseFile)) End_Procedure Procedure CurrentView_CACloseAllFiles Send CurrentViewHotKeyReroute (RefProc(CACloseAllFiles)) End_Procedure Procedure CurrentView_HKSC_NewFile Send CurrentViewHotKeyReroute (RefProc(HKSC_NewFile)) End_Procedure Procedure CurrentView_CASelectWorkSpace Send CurrentViewHotKeyReroute (RefProc(CASelectWorkSpace)) End_Procedure Procedure CurrentView_CABuildRun Send CurrentViewHotKeyReroute (RefProc(CABuildRun)) End_Procedure Procedure CurrentView_CABuildRunCurrent Send CurrentViewHotKeyReroute (RefProc(CABuildRunCurrent)) End_Procedure Procedure CurrentView_CABuildCompile Send CurrentViewHotKeyReroute (RefProc(CABuildCompile)) End_Procedure Procedure CurrentView_CABuildPreCompile Send CurrentViewHotKeyReroute (RefProc(CABuildPreCompile)) End_Procedure Procedure CurrentView_CABuildExecute Send CurrentViewHotKeyReroute (RefProc(CABuildExecute)) End_Procedure Procedure CurrentView_CABuildDebugRun Send CurrentViewHotKeyReroute (RefProc(CABuildDebugRun)) End_Procedure Procedure CurrentView_CABuildDebugRunCurrent Send CurrentViewHotKeyReroute (RefProc(CABuildDebugRunCurrent)) End_Procedure Procedure CurrentView_CME_Find Send CurrentViewHotKeyReroute (RefProc(CME_Find)) End_Procedure Procedure CurrentView_CME_FindNext Send CurrentViewHotKeyReroute (RefProc(CME_FindNext)) End_Procedure Procedure CurrentView_CME_FindPrevious Send CurrentViewHotKeyReroute (RefProc(CME_FindPrevious)) End_Procedure Procedure CurrentView_CME_FindReplace Send CurrentViewHotKeyReroute (RefProc(CME_FindReplace)) End_Procedure Procedure CurrentView_CME_GotoLine Send CurrentViewHotKeyReroute (RefProc(CME_GotoLine)) End_Procedure Procedure CurrentView_CME_SelectAll Send CurrentViewHotKeyReroute (RefProc(CME_SelectAll)) End_Procedure Procedure RouteHotKeysToCurrentView // File Menu Send DefineOnKey CMD_FileOpenFile (RefProc(CurrentView_HKSC_OpenFile)) Send DefineOnKey CMD_FileSaveFile (RefProc(CurrentView_CASaveFile)) Send DefineOnKey CMD_FileSaveFileAs (RefProc(CurrentView_CASaveFileAs)) Send DefineOnKey CMD_FileSaveAll (RefProc(CurrentView_CASaveAllFiles)) Send DefineOnKey CMD_FileCloseFile (RefProc(CurrentView_CACloseFile)) Send DefineOnKey CMD_FileCloseAllFiles (RefProc(CurrentView_CACloseAllFiles)) Send DefineOnKey CMD_FileNewFile (RefProc(CurrentView_HKSC_NewFile)) // Edit Menu Send DefineOnKey CMD_FindInFiles (RefProc(CurrentView_CAPopUpFindInFiles)) // Options Menu Send DefineOnKey CMD_SelectWorkSpace (RefProc(CurrentView_CASelectWorkSpace)) // Build Menu Send DefineOnKey CMD_BuildRun (RefProc(CurrentView_CABuildRun)) Send DefineOnKey CMD_BuildRunCurrent (RefProc(CurrentView_CABuildRunCurrent)) Send DefineOnKey CMD_BuildCompileCurrent (RefProc(CurrentView_CABuildCompile)) Send DefineOnKey CMD_BuildPreCompile (RefProc(CurrentView_CABuildPreCompile)) Send DefineOnKey CMD_BuildExecute (RefProc(CurrentView_CABuildExecute)) Send DefineOnKey CMD_BuildDebugRun (RefProc(CurrentView_CABuildDebugRun)) Send DefineOnKey CMD_BuildDebugRunCurrent (RefProc(CurrentView_CABuildDebugRunCurrent)) // Find/replace/select all/gotoline Send DefineOnKey CMD_FIND (RefProc(CurrentView_CME_Find)) Send DefineOnKey CMD_FindNext (RefProc(CurrentView_CME_FindNext)) Send DefineOnKey CMD_FINDPREV (RefProc(CurrentView_CME_FindPrevious)) Send DefineOnKey CMD_FindReplace (RefProc(CurrentView_CME_FindReplace)) Send DefineOnKey CMD_GOTOLINE (RefProc(CurrentView_CME_GotoLine)) Send DefineOnKey CMD_SELECTALL (RefProc(CurrentView_CME_SelectAll)) End_Procedure // This defines the on_key commands via editor hotkeys Procedure Define_EditorHotKeys Boolean bInEditView // Can't set the definition here as the message isn't known in the subclass // Send DefineOnKey CMD_FileNewFile msg_CANewFile Get IsInEditorView to bInEditView If (bInEditView) Begin // Calls method in clientArea object to then execute the above DefineOnKey Delegate Send Define_EditViewHotkeys Self End // Send DefinePredefinedHotkeys bInEditView // End_Procedure End_Class