5#ifndef RIME_KEY_BINDING_PROCESSOR_H_
6#define RIME_KEY_BINDING_PROCESSOR_H_
16template <
class T,
int N = 1>
37 : action_definitions_(action_definitions) {}
41 int keymap_selector = 0,
44 const string& section,
45 int kemap_selector = 0);
48 struct Keymap : map<KeyEvent, HandlerPtr> {
ProcessResult
Definition processor.h:18
Definition config_component.h:21
bool Accept(const KeyEvent &key_event, Context *ctx, Keymap &keymap)
Definition key_binding_processor_impl.h:56
Keymap & get_keymap(int keymap_selector=0)
Definition key_binding_processor_impl.h:50
bool(T::*)(Context *ctx) HandlerPtr
Definition key_binding_processor.h:20
void LoadConfig(Config *config, const string §ion, int kemap_selector=0)
Definition key_binding_processor_impl.h:81
KeyBindingProcessor(ActionDef *action_definitions)
Definition key_binding_processor.h:36
FallbackOptions
Definition key_binding_processor.h:22
@ ShiftAsControl
Definition key_binding_processor.h:24
@ IgnoreShift
Definition key_binding_processor.h:25
@ None
Definition key_binding_processor.h:23
@ All
Definition key_binding_processor.h:26
bool Handler(Context *ctx)
Definition key_binding_processor.h:19
static const ActionDef kActionNoop
Definition key_binding_processor.h:34
ProcessResult ProcessKeyEvent(const KeyEvent &key_event, Context *ctx, int keymap_selector=0, int fallback_options=FallbackOptions::None)
Definition key_binding_processor_impl.h:13
Definition key_binding_processor.h:29
HandlerPtr action
Definition key_binding_processor.h:31
const char * name
Definition key_binding_processor.h:30
Definition key_binding_processor.h:48
void Bind(KeyEvent key_event, HandlerPtr action)
Definition key_binding_processor_impl.h:71
Definition key_event.h:17