| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- // This file is part of libigl, a simple c++ geometry processing library.
- //
- // Copyright (C) 2022 Alec Jacobson <[email protected]>
- //
- // This Source Code Form is subject to the terms of the Mozilla Public License
- // v. 2.0. If a copy of the MPL was not distributed with this file, You can
- // obtain one at http://mozilla.org/MPL/2.0/.
- #ifndef IGL_OPENGL_GLFW_IMGUI_IMGUIWIDGET_H
- #define IGL_OPENGL_GLFW_IMGUI_IMGUIWIDGET_H
- #include "ImGuiPlugin.h"
- #include "ImGuiWidget.h"
- #include "../../../igl_inline.h"
- #include <memory>
- namespace igl
- {
- namespace opengl
- {
- namespace glfw
- {
- class Viewer;
- namespace imgui
- {
- // Forward declaration of the parent plugin
- class ImGuiPlugin;
- /// Abstract class for imgui "widgets". A widget is something that uses
- /// imgui, but doesn't own the entire imgui IO stack: the single
- /// ImGuiPlugin owns that and widgets are registered with it.
- class ImGuiWidget
- {
- public:
- IGL_INLINE ImGuiWidget(){ name = "dummy"; }
- virtual ~ImGuiWidget(){}
- IGL_INLINE virtual void init(Viewer *_viewer, ImGuiPlugin *_plugin)
- { viewer = _viewer; plugin = _plugin; }
- IGL_INLINE virtual void shutdown() {}
- IGL_INLINE virtual void draw() {}
- IGL_INLINE virtual bool mouse_down(int /*button*/, int /*modifier*/)
- { return false;}
- IGL_INLINE virtual bool mouse_up(int /*button*/, int /*modifier*/)
- { return false;}
- IGL_INLINE virtual bool mouse_move(int /*mouse_x*/, int /*mouse_y*/)
- { return false;}
- IGL_INLINE virtual bool key_pressed(unsigned int /*key*/, int /*modifiers*/)
- { return false;}
- IGL_INLINE virtual bool key_down(int /*key*/, int /*modifiers*/)
- { return false;}
- IGL_INLINE virtual bool key_up(int /*key*/, int /*modifiers*/)
- { return false;}
- std::string name;
- protected:
- // Pointer to ImGuiPlugin's parent viewer
- Viewer *viewer;
- // Pointer to parent ImGuiPlugin class
- ImGuiPlugin *plugin;
- };
- }
- }
- }
- }
- #endif
|