/* * Copyright 2017 Google Inc. * * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #ifndef ImGuiLayer_DEFINED #define ImGuiLayer_DEFINED #include "SkPaint.h" #include "SkTArray.h" #include "sk_app/Window.h" #include "imgui.h" class ImGuiLayer : public sk_app::Window::Layer { public: ImGuiLayer(); ~ImGuiLayer() override; typedef std::function SkiaWidgetFunc; void skiaWidget(const ImVec2& size, SkiaWidgetFunc func); void onAttach(sk_app::Window* window) override; void onPrePaint() override; void onPaint(SkCanvas* canvas) override; bool onMouse(int x, int y, sk_app::Window::InputState state, uint32_t modifiers) override; bool onMouseWheel(float delta, uint32_t modifiers) override; bool onKey(sk_app::Window::Key key, sk_app::Window::InputState state, uint32_t modifiers) override; bool onChar(SkUnichar c, uint32_t modifiers) override; private: sk_app::Window* fWindow; SkPaint fFontPaint; SkTArray fSkiaWidgetFuncs; }; #endif