Доки
This commit is contained in:
61
wayland/docs/uml/diagram-sequence-keyboard.puml
Normal file
61
wayland/docs/uml/diagram-sequence-keyboard.puml
Normal file
@@ -0,0 +1,61 @@
|
||||
@startuml
|
||||
title Обработка клавиатурного ввода
|
||||
|
||||
actor User
|
||||
participant "Wayland Server" as Server
|
||||
participant "input" as Input
|
||||
participant "input-handle" as Handler
|
||||
participant "wayland-runtime" as Runtime
|
||||
participant "window" as Window
|
||||
|
||||
User -> Server: Нажатие клавиши
|
||||
Server -> Input: keyboard_key(key, state)
|
||||
activate Input
|
||||
|
||||
Input -> Input: xkb_state_key_get_one_sym()
|
||||
note right: Преобразование keycode в keysym
|
||||
|
||||
Input -> Handler: keyboard_key_handle(kc, ks, state, window)
|
||||
activate Handler
|
||||
|
||||
alt Клавиша Enter
|
||||
Handler -> Runtime: run_window()
|
||||
note right: Создание нового окна
|
||||
else Клавиша '1'
|
||||
Handler -> Window: figure.type = CIRCLE
|
||||
else Клавиша '2'
|
||||
Handler -> Window: figure.type = TRIANGLE
|
||||
else Клавиша '3'
|
||||
Handler -> Window: figure.type = SQUARE
|
||||
else Клавиша '-'
|
||||
Handler -> Handler: pthread_mutex_lock()
|
||||
Handler -> Window: figure.speed -= 0.5
|
||||
Handler -> Handler: Ограничить [1, 30]
|
||||
Handler -> Handler: pthread_mutex_unlock()
|
||||
else Клавиша '+' или '='
|
||||
Handler -> Handler: pthread_mutex_lock()
|
||||
Handler -> Window: figure.speed += 0.5
|
||||
Handler -> Handler: Ограничить [1, 30]
|
||||
Handler -> Handler: pthread_mutex_unlock()
|
||||
else Клавиша Up
|
||||
Handler -> Handler: pthread_mutex_lock()
|
||||
Handler -> Window: figure.radius += 2.0
|
||||
Handler -> Handler: Ограничить [1, max]
|
||||
Handler -> Handler: pthread_mutex_unlock()
|
||||
else Клавиша Down
|
||||
Handler -> Handler: pthread_mutex_lock()
|
||||
Handler -> Window: figure.radius -= 2.0
|
||||
Handler -> Handler: Ограничить [1, max]
|
||||
Handler -> Handler: pthread_mutex_unlock()
|
||||
end
|
||||
|
||||
deactivate Handler
|
||||
deactivate Input
|
||||
|
||||
note over Window
|
||||
Изменения параметров фигуры
|
||||
влияют на следующий frame
|
||||
анимации и отрисовки
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Reference in New Issue
Block a user