MeshLib C++ Docs
Loading...
Searching...
No Matches
MRDrawViewportWidgetsItem.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRCommonPlugins/exports.h"
6#include "MRMesh/MRSignal.h"
7
8#include <boost/signals2/connection.hpp>
9
10namespace MR
11{
14
15
18{
19public:
20 MRCOMMONPLUGINS_API ProvidesViewportWidget();
23 virtual ~ProvidesViewportWidget() = default;
24
25
27 {
28 virtual ~ViewportWidgetInterface() = default;
29
31 [[nodiscard]] virtual ViewportId viewportId() const = 0;
32
36 virtual void addButton( float order, std::string name, bool active, std::string icon, std::string tooltip, std::function<void()> onClick ) = 0;
37 };
38
40
41private:
42 boost::signals2::scoped_connection providedWidgetsConnection_;
43};
44
47{
48public:
49 MRCOMMONPLUGINS_API DrawViewportWidgetsItem();
50
51 bool action() override { return false; }
52
53private:
54 void handleViewport( Viewport& viewport );
55
56 boost::signals2::scoped_connection preDrawConnection_;
57
58 using HandleViewportSignal = boost::signals2::signal<void( ProvidesViewportWidget::ViewportWidgetInterface& in )>;
59 static HandleViewportSignal& getHandleViewportSignal_();
60
62};
63
64}
This sits in the background and renders various per-viewport buttons.
Definition MRDrawViewportWidgetsItem.h:47
Inherit your plugin from this to draw viewport widgets from there.
Definition MRDrawViewportWidgetsItem.h:18
Definition MRRibbonMenuItem.h:23
Definition MRViewportId.h:16
Definition MRViewport.h:49
ProvidesViewportWidget(const ProvidesViewportWidget &)=delete
bool action() override
returns true if state of item changed
Definition MRDrawViewportWidgetsItem.h:51
MRCOMMONPLUGINS_API DrawViewportWidgetsItem()
virtual ~ProvidesViewportWidget()=default
ProvidesViewportWidget & operator=(const ProvidesViewportWidget &)=delete
virtual ViewportId viewportId() const =0
Don't strictly need this, but MSVC warns otherwise.
virtual void addButton(float order, std::string name, bool active, std::string icon, std::string tooltip, std::function< void()> onClick)=0
MRCOMMONPLUGINS_API ProvidesViewportWidget()
virtual void providedViewportWidgets(ViewportWidgetInterface &in)=0
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Don't strictly need this, but MSVC warns otherwise.
Definition MRDrawViewportWidgetsItem.h:27