mirror of
https://github.com/keymanapp/keyman.git
synced 2026-08-05 16:35:33 +00:00
118 lines
2.1 KiB
Python
118 lines
2.1 KiB
Python
import pathlib
|
|
from typing import NamedTuple, NewType, Tuple, List, Union
|
|
from enum import Enum
|
|
from collections.abc import Sequence, Mapping
|
|
|
|
USV = int
|
|
Marker = int
|
|
VirtualKey = int
|
|
|
|
|
|
class Context(Sequence):
|
|
Item = Union[USV, Marker]
|
|
|
|
def __init__(initial: str):
|
|
pass
|
|
|
|
def __del__(self):
|
|
pass
|
|
|
|
def __str__(self):
|
|
pass
|
|
|
|
def set(self, ctxt: List[Item]):
|
|
self.clear()
|
|
self.apped(ctxt)
|
|
|
|
def clear(self):
|
|
pass
|
|
|
|
def __getitem__(self, key: int) -> Item:
|
|
pass
|
|
|
|
def __len__(self):
|
|
pass
|
|
|
|
def append(self, ctxt: List[Item]):
|
|
pass
|
|
|
|
def delete(self, remove_n: int, prefix: List[Item]):
|
|
pass
|
|
|
|
|
|
Option = Tuple[str, str]
|
|
|
|
|
|
class OptionSet(Mapping):
|
|
def __getitem__(self, key: str) -> Option:
|
|
pass
|
|
|
|
def __iter__(self):
|
|
pass
|
|
|
|
def __len__(self):
|
|
pass
|
|
|
|
def __str__(self):
|
|
pass
|
|
|
|
|
|
class Keyboard(NamedTuple('__kb_attrs', version=str, id=str, folder_path=pathlib.Path, default_options=OptionSet)):
|
|
def __new__(cls, _):
|
|
return super(Keyboard, cls).__new__(cls, *[None]*4)
|
|
|
|
def __init__(self, kb_path: pathlib.Path):
|
|
pass
|
|
|
|
def __del__(self):
|
|
pass
|
|
|
|
|
|
class Action:
|
|
VKeyDown = NewType('Action.VirtualKey', VirtualKey)
|
|
# VKeyUp = VirtualKey
|
|
# VShiftDown = VirtualKey
|
|
# VShiftUp = VirtualKey
|
|
# Char = int
|
|
# Marker = int
|
|
# Bell = NewType('Bell', None)
|
|
# Back = NewType('Back', None)
|
|
# PersistOpt = str
|
|
# ResetOpt = str
|
|
|
|
|
|
ActionList = List[Action]
|
|
|
|
|
|
class State:
|
|
def __init__(self, kb: Keyboard, env: OptionSet):
|
|
pass
|
|
|
|
def __del__(self):
|
|
pass
|
|
|
|
@property
|
|
def flags(self) -> int:
|
|
pass
|
|
|
|
@property
|
|
def context(self) -> Context:
|
|
pass
|
|
|
|
@property
|
|
def environment(self) -> OptionSet:
|
|
pass
|
|
|
|
@property
|
|
def options(self) -> OptionSet:
|
|
pass
|
|
|
|
def indentify_option_src(opt: Option):
|
|
pass
|
|
|
|
|
|
def process_event(vk: VirtualKey,
|
|
modifier_state,
|
|
state: State,
|
|
acts: ActionList):
|
|
pass
|