Manual pages: mcmcdiffmceditmcview

root/lib/keybind.h

/* [previous][next][first][last][top][bottom][index][help]  */

INCLUDED FROM


   1 #ifndef MC__KEYBIND_H
   2 #define MC__KEYBIND_H
   3 
   4 #include "lib/global.h"
   5 
   6 /*** typedefs(not structures) and defined constants **********************************************/
   7 
   8 /* keymap sections */
   9 #define KEYMAP_SECTION_FILEMANAGER     "filemanager"
  10 #define KEYMAP_SECTION_FILEMANAGER_EXT "filemanager:xmap"
  11 #define KEYMAP_SECTION_PANEL           "panel"
  12 #define KEYMAP_SECTION_DIALOG          "dialog"
  13 #define KEYMAP_SECTION_MENU            "menu"
  14 #define KEYMAP_SECTION_INPUT           "input"
  15 #define KEYMAP_SECTION_LISTBOX         "listbox"
  16 #define KEYMAP_SECTION_RADIO           "radio"
  17 #define KEYMAP_SECTION_TREE            "tree"
  18 #define KEYMAP_SECTION_HELP            "help"
  19 #define KEYMAP_SECTION_CHATTR          "chattr"
  20 #define KEYMAP_SECTION_EDITOR          "editor"
  21 #define KEYMAP_SECTION_EDITOR_EXT      "editor:xmap"
  22 #define KEYMAP_SECTION_VIEWER          "viewer"
  23 #define KEYMAP_SECTION_VIEWER_HEX      "viewer:hex"
  24 #define KEYMAP_SECTION_DIFFVIEWER      "diffviewer"
  25 
  26 #define KEYMAP_SHORTCUT_LENGTH         32  // FIXME: is 32 bytes enough for shortcut?
  27 
  28 #define CK_PipeBlock(i)                (10000 + (i))
  29 #define CK_Macro(i)                    (20000 + (i))
  30 #define CK_MacroLast                   CK_Macro (0x7FFF)
  31 
  32 /*** enums ***************************************************************************************/
  33 
  34 enum
  35 {
  36     // special commands
  37     CK_InsertChar = -1L,
  38     CK_IgnoreKey = 0L,
  39 
  40     // common
  41     CK_Enter = 1L,
  42     CK_ChangePanel,
  43     CK_Up,
  44     CK_Down,
  45     CK_Left,
  46     CK_Right,
  47     CK_Home,
  48     CK_End,
  49     CK_LeftQuick,
  50     CK_RightQuick,
  51     CK_PageUp,
  52     CK_PageDown,
  53     CK_HalfPageUp,
  54     CK_HalfPageDown,
  55     CK_Top,
  56     CK_Bottom,
  57     CK_TopOnScreen,
  58     CK_MiddleOnScreen,
  59     CK_BottomOnScreen,
  60     CK_WordLeft,
  61     CK_WordRight,
  62     CK_Copy,
  63     CK_Move,
  64     CK_Delete,
  65     CK_MakeDir,
  66     CK_ChangeMode,
  67     CK_ChangeOwn,
  68     CK_ChangeOwnAdvanced,
  69     CK_ChangeAttributes,
  70     CK_Remove,
  71     CK_BackSpace,
  72     CK_Redo,
  73     CK_Clear,
  74     CK_Menu,
  75     CK_MenuLastSelected,
  76     CK_UserMenu,
  77     CK_EditUserMenu,
  78     CK_Search,
  79     CK_SearchContinue,
  80     CK_Replace,
  81     CK_ReplaceContinue,
  82     CK_SearchStop,
  83     CK_Help,
  84     CK_Edit,
  85     CK_EditNew,
  86     CK_Shell,
  87     CK_SelectCodepage,
  88     CK_EditorViewerHistory,
  89     CK_History,
  90     CK_HistoryNext,
  91     CK_HistoryPrev,
  92     CK_Complete,
  93     CK_Save,
  94     CK_SaveAs,
  95     CK_Goto,
  96     CK_Reread,
  97     CK_Refresh,
  98     CK_Suspend,
  99     CK_Swap,
 100     CK_Mark,
 101     CK_HotList,
 102     CK_ScreenList,
 103     CK_ScreenNext,
 104     CK_ScreenPrev,
 105     CK_FilePrev,
 106     CK_FileNext,
 107     CK_DeleteToHome,
 108     CK_DeleteToEnd,
 109     CK_DeleteToWordBegin,
 110     CK_DeleteToWordEnd,
 111     CK_ShowNumbers,
 112     CK_Store,
 113     CK_Cut,
 114     CK_Paste,
 115     CK_MarkLeft,
 116     CK_MarkRight,
 117     CK_MarkUp,
 118     CK_MarkDown,
 119     CK_MarkToWordBegin,
 120     CK_MarkToWordEnd,
 121     CK_MarkToHome,
 122     CK_MarkToEnd,
 123     CK_ToggleNavigation,
 124     CK_Sort,
 125     CK_Options,
 126     CK_LearnKeys,
 127     CK_Bookmark,
 128     CK_Quit,
 129     CK_QuitQuiet,
 130     // C-x or similar
 131     CK_ExtendedKeyMap,
 132 
 133     // main commands
 134     CK_EditForceInternal = 100L,
 135     CK_View,
 136     CK_ViewRaw,
 137     CK_ViewFile,
 138     CK_ViewFiltered,
 139     CK_Find,
 140     CK_DirSize,
 141     CK_HotListAdd,
 142     CK_SetupListingFormat,
 143     CK_CompareDirs,
 144     CK_OptionsVfs,
 145     CK_OptionsConfirm,
 146     CK_PutCurrentLink,
 147     CK_PutOtherLink,
 148     CK_EditExtensionsFile,
 149     CK_EditFileHighlightFile,
 150     CK_LinkSymbolicEdit,
 151     CK_ExternalPanelize,
 152     CK_Filter,
 153     CK_ConnectShell,
 154     CK_ConnectFtp,
 155     CK_ConnectSftp,
 156     CK_PanelInfo,
 157     CK_Jobs,
 158     CK_OptionsLayout,
 159     CK_OptionsAppearance,
 160     CK_Link,
 161     CK_PanelListing,
 162     CK_ListMode,
 163     CK_CdQuick,
 164     CK_PanelQuickView,
 165     CK_VfsList,
 166     CK_SaveSetup,
 167     CK_LinkSymbolic,
 168     CK_ShowHidden,
 169     CK_PanelTree,
 170     CK_Tree,
 171     CK_Undelete,
 172     CK_SplitVertHoriz,
 173     CK_SplitEqual,
 174     CK_SplitMore,
 175     CK_SplitLess,
 176     CK_CompareFiles,
 177     CK_OptionsPanel,
 178     CK_LinkSymbolicRelative,
 179     CK_PutCurrentPath,
 180     CK_PutOtherPath,
 181     CK_PutCurrentSelected,
 182     CK_PutCurrentFullSelected,
 183     CK_PutCurrentTagged,
 184     CK_PutOtherTagged,
 185     CK_Select,
 186     CK_Unselect,
 187     CK_SelectExt,
 188     CK_SelectInvert,
 189 
 190     // panels
 191     CK_PanelOtherCd = 200L,
 192     CK_PanelOtherCdLink,
 193     CK_Panelize,
 194     CK_CopySingle,
 195     CK_MoveSingle,
 196     CK_DeleteSingle,
 197     CK_CdChild,
 198     CK_CdParent,
 199     CK_CdParentSmart,
 200     CK_PanelOtherSync,
 201     CK_SortNext,
 202     CK_SortPrev,
 203     CK_SortReverse,
 204     CK_SortByName,
 205     CK_SortByVersion,
 206     CK_SortByExt,
 207     CK_SortBySize,
 208     CK_SortByMTime,
 209     CK_ScrollLeft,
 210     CK_ScrollRight,
 211     CK_ScrollHome,
 212     CK_ScrollEnd,
 213     CK_CycleListingFormat,
 214 
 215     // dialog
 216     CK_Ok = 300L,
 217     CK_Cancel,
 218 
 219     // input
 220     CK_Yank = 350L,
 221 
 222     // help
 223     CK_Index = 400L,
 224     CK_Back,
 225     CK_LinkNext,
 226     CK_LinkPrev,
 227     CK_NodeNext,
 228     CK_NodePrev,
 229 
 230     // tree
 231     CK_Forget = 450L,
 232 
 233     // chattr dialog
 234     CK_MarkAndDown = 480L,
 235 
 236     // editor
 237     // cursor movements
 238     CK_Tab = 500L,
 239     CK_Undo,
 240     CK_ScrollUp,
 241     CK_ScrollDown,
 242     CK_Return,
 243     CK_ParagraphUp,
 244     CK_ParagraphDown,
 245     // file commands
 246     CK_EditFile,
 247     CK_InsertFile,
 248     CK_EditSyntaxFile,
 249     CK_Close,
 250     // block commands
 251     CK_BlockSave,
 252     CK_BlockShiftLeft,
 253     CK_BlockShiftRight,
 254     CK_DeleteLine,
 255     // bookmarks
 256     CK_BookmarkFlush,
 257     CK_BookmarkNext,
 258     CK_BookmarkPrev,
 259     // mark commands
 260     CK_MarkColumn,
 261     CK_MarkWord,
 262     CK_MarkLine,
 263     CK_MarkAll,
 264     CK_Unmark,
 265     CK_MarkPageUp,
 266     CK_MarkPageDown,
 267     CK_MarkToFileBegin,
 268     CK_MarkToFileEnd,
 269     CK_MarkToPageBegin,
 270     CK_MarkToPageEnd,
 271     CK_MarkScrollUp,
 272     CK_MarkScrollDown,
 273     CK_MarkParagraphUp,
 274     CK_MarkParagraphDown,
 275     // column mark commands
 276     CK_MarkColumnPageUp,
 277     CK_MarkColumnPageDown,
 278     CK_MarkColumnLeft,
 279     CK_MarkColumnRight,
 280     CK_MarkColumnUp,
 281     CK_MarkColumnDown,
 282     CK_MarkColumnScrollUp,
 283     CK_MarkColumnScrollDown,
 284     CK_MarkColumnParagraphUp,
 285     CK_MarkColumnParagraphDown,
 286     // macros
 287     CK_MacroStartRecord,
 288     CK_MacroStopRecord,
 289     CK_MacroStartStopRecord,
 290     CK_MacroDelete,
 291     CK_RepeatStartRecord,
 292     CK_RepeatStopRecord,
 293     CK_RepeatStartStopRecord,
 294     // window commands
 295     CK_WindowMove,
 296     CK_WindowResize,
 297     CK_WindowFullscreen,
 298     CK_WindowList,
 299     CK_WindowNext,
 300     CK_WindowPrev,
 301     // misc commands
 302     CK_SpellCheck,
 303     CK_SpellCheckCurrentWord,
 304     CK_SpellCheckSelectLang,
 305     CK_InsertOverwrite,
 306     CK_ParagraphFormat,
 307     CK_MatchBracket,
 308     CK_OptionsSaveMode,
 309     CK_About,
 310     CK_ShowMargin,
 311     CK_ShowTabTws,
 312     CK_SyntaxOnOff,
 313     CK_SyntaxChoose,
 314     CK_InsertLiteral,
 315     CK_ExternalCommand,
 316     CK_Date,
 317     CK_EditMail,
 318 
 319     // viewer
 320     CK_WrapMode = 600L,
 321     CK_MagicMode,
 322     CK_NroffMode,
 323     CK_HexMode,
 324     CK_HexEditMode,
 325     CK_BookmarkGoto,
 326     CK_Ruler,
 327     CK_SearchForward,
 328     CK_SearchBackward,
 329     CK_SearchForwardContinue,
 330     CK_SearchBackwardContinue,
 331     CK_SearchOppositeContinue,
 332 
 333     // diff viewer
 334     CK_ShowSymbols = 700L,
 335     CK_SplitFull,
 336     CK_Tab2,
 337     CK_Tab3,
 338     CK_Tab4,
 339     CK_Tab8,
 340     CK_HunkNext,
 341     CK_HunkPrev,
 342     CK_EditOther,
 343     CK_Merge,
 344     CK_MergeOther
 345 };
 346 
 347 /*** structures declarations (and typedefs of structures)*****************************************/
 348 
 349 /* The global keymaps are of this type */
 350 typedef struct global_keymap_t
 351 {
 352     long key;
 353     long command;
 354     char caption[KEYMAP_SHORTCUT_LENGTH];
 355 } global_keymap_t;
 356 
 357 /*** global variables defined in .c file *********************************************************/
 358 
 359 /*** declarations of public functions ************************************************************/
 360 
 361 void keybind_cmd_bind (GArray *keymap, const char *keybind, long action);
 362 long keybind_lookup_action (const char *name);
 363 const char *keybind_lookup_actionname (long action);
 364 const char *keybind_lookup_keymap_shortcut (const global_keymap_t *keymap, long action);
 365 long keybind_lookup_keymap_command (const global_keymap_t *keymap, long key);
 366 
 367 /*** inline functions ****************************************************************************/
 368 
 369 #endif

/* [previous][next][first][last][top][bottom][index][help]  */