Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::view::win_input::InputRouterHost Class Referenceabstract

The native operations the router needs but must not perform itself. More...

#include <win_plugin_input_router.hpp>

Public Member Functions

virtual ~InputRouterHost ()=default
virtual View & input_root () noexcept=0
 Root of the view tree events are dispatched into.
virtual void input_capture_pointer ()=0
 SetCapture(hwnd) — route pointer input here until capture is released.
virtual void input_release_pointer_capture ()=0
 ReleaseCapture(), but ONLY if this host currently holds it.
virtual void input_take_keyboard_focus ()=0
 SetFocus(hwnd) — take native keyboard focus for the editor window.
virtual bool input_begin_mouse_leave_tracking ()=0
 TrackMouseEvent(TME_LEAVE).
virtual void input_request_repaint ()=0
 Coalesced repaint request, called after any input that can change pixels.

Detailed Description

The native operations the router needs but must not perform itself.

Every method is a side effect on the owning HWND, and every one of them can re-enter the router synchronously on Windows — input_capture_pointer() and input_release_pointer_capture() both deliver WM_CAPTURECHANGED before they return, and input_take_keyboard_focus() delivers WM_SETFOCUS. The router is written to tolerate that; an implementation must not try to hide it by deferring the call.

Constructor & Destructor Documentation

◆ ~InputRouterHost()

virtual pulp::view::win_input::InputRouterHost::~InputRouterHost ( )
virtualdefault

Member Function Documentation

◆ input_begin_mouse_leave_tracking()

virtual bool pulp::view::win_input::InputRouterHost::input_begin_mouse_leave_tracking ( )
pure virtual

TrackMouseEvent(TME_LEAVE).

Returns whether tracking is now armed; a false return makes the router retry on the next move rather than assume a leave will arrive.

◆ input_capture_pointer()

virtual void pulp::view::win_input::InputRouterHost::input_capture_pointer ( )
pure virtual

SetCapture(hwnd) — route pointer input here until capture is released.

◆ input_release_pointer_capture()

virtual void pulp::view::win_input::InputRouterHost::input_release_pointer_capture ( )
pure virtual

ReleaseCapture(), but ONLY if this host currently holds it.

Releasing capture we do not own would steal it from whoever does.

◆ input_request_repaint()

virtual void pulp::view::win_input::InputRouterHost::input_request_repaint ( )
pure virtual

Coalesced repaint request, called after any input that can change pixels.

◆ input_root()

virtual View & pulp::view::win_input::InputRouterHost::input_root ( )
pure virtualnoexcept

Root of the view tree events are dispatched into.

◆ input_take_keyboard_focus()

virtual void pulp::view::win_input::InputRouterHost::input_take_keyboard_focus ( )
pure virtual

SetFocus(hwnd) — take native keyboard focus for the editor window.


The documentation for this class was generated from the following file: