flutter_flutter/shell/platform/windows/window_binding_handler_delegate.h
stuartmorgan efe7683311
Add an explicit API for font change notification (#21164)
Originally font change notification was handled by forwarding
WM_FONTCHANGE to the Flutter HWND, to avoid adding new API surface, but
that's not a good solution in a multi-window scenario, and it would
require a completely different solution for UWP. It also requires
non-obvious plumbing in the runner.

This replaces that with an explicit API, so that there's a clean and
obvious way for the runner to trigger this event.
2020-09-16 09:47:21 -07:00

58 lines
2.4 KiB
C++

// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOW_BINDING_HANDLER_DELEGATE_H_
#define FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOW_BINDING_HANDLER_DELEGATE_H_
#include "flutter/shell/platform/embedder/embedder.h"
namespace flutter {
class WindowBindingHandlerDelegate {
public:
// Notifies delegate that backing window size has changed.
// Typically called by currently configured WindowBindingHandler
virtual void OnWindowSizeChanged(size_t width, size_t height) const = 0;
// Notifies delegate that backing window mouse has moved.
// Typically called by currently configured WindowBindingHandler
virtual void OnPointerMove(double x, double y) = 0;
// Notifies delegate that backing window mouse pointer button has been
// pressed. Typically called by currently configured WindowBindingHandler
virtual void OnPointerDown(double x,
double y,
FlutterPointerMouseButtons button) = 0;
// Notifies delegate that backing window mouse pointer button has been
// released. Typically called by currently configured WindowBindingHandler
virtual void OnPointerUp(double x,
double y,
FlutterPointerMouseButtons button) = 0;
// Notifies delegate that backing window mouse pointer has left the window.
// Typically called by currently configured WindowBindingHandler
virtual void OnPointerLeave() = 0;
// Notifies delegate that backing window has received text.
// Typically called by currently configured WindowBindingHandler
virtual void OnText(const std::u16string&) = 0;
// Notifies delegate that backing window size has received key press.
// Typically called by currently configured WindowBindingHandler
virtual void OnKey(int key, int scancode, int action, char32_t character) = 0;
// Notifies delegate that backing window size has recevied scroll.
// Typically called by currently configured WindowBindingHandler
virtual void OnScroll(double x,
double y,
double delta_x,
double delta_y,
int scroll_offset_multiplier) = 0;
};
} // namespace flutter
#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_WINDOW_BINDING_HANDLER_DELEGATE_H_