MeshLib C++ Docs
Loading...
Searching...
No Matches
MRRibbonMenuItem.h
Go to the documentation of this file.
1#pragma once
3#include <string>
4#include <memory>
5
6namespace MR
7{
10
11
12using MenuItemsList = std::vector<std::string>;
13
15{
16 Button,
18};
19
22class MRVIEWER_CLASS RibbonMenuItem : virtual public ISceneStateCheck
23{
24public:
26
27 MRVIEWER_API RibbonMenuItem( std::string name );
28
29 virtual ~RibbonMenuItem() = default;
30
32 virtual bool action() = 0;
34 virtual bool isActive() const { return false; }
36 virtual bool blocking() const { return false; }
37
38 const std::string& name() const { return name_; }
39
43 virtual const std::string& uiName() const { return name_; }
44
45 void setRibbonItemType( RibbonItemType type ) { type_ = type; }
46
48 virtual RibbonItemType type() const { return type_; }
49
50 using DropItemsList = std::vector<std::shared_ptr<RibbonMenuItem>>;
51
54 MRVIEWER_API void setDropItemsFromItemList( const MenuItemsList& itemsList );
55
58 virtual const DropItemsList& dropItems() const { return dropList_; }
59
61 virtual std::string getDynamicTooltip() const { return {}; }
62
63protected:
64 RibbonItemType type_{ RibbonItemType::Button };
66
67private:
68 std::string name_;
69};
70
71}
Interface for checking scene state, to determine availability, also can return string with requiremen...
Definition MRISceneStateCheck.h:17
Definition MRRibbonMenuItem.h:23
virtual const DropItemsList & dropItems() const
Definition MRRibbonMenuItem.h:58
RibbonItemType
Definition MRRibbonMenuItem.h:15
virtual RibbonItemType type() const
type of this item, base RibbonMenuItem can be only button
Definition MRRibbonMenuItem.h:48
DropItemsList dropList_
Definition MRRibbonMenuItem.h:65
virtual const std::string & uiName() const
Definition MRRibbonMenuItem.h:43
virtual bool isActive() const
for state items returns true if activated
Definition MRRibbonMenuItem.h:34
std::vector< std::shared_ptr< RibbonMenuItem > > DropItemsList
Definition MRRibbonMenuItem.h:50
virtual bool action()=0
returns true if state of item changed
std::vector< std::string > MenuItemsList
Definition MRRibbonMenuItem.h:12
virtual std::string getDynamicTooltip() const
return not-empty string with tooltip that shall replace the static tooltip from json
Definition MRRibbonMenuItem.h:61
MR_DELETE_MOVE(RibbonMenuItem)
void setRibbonItemType(RibbonItemType type)
Definition MRRibbonMenuItem.h:45
const std::string & name() const
Definition MRRibbonMenuItem.h:38
virtual ~RibbonMenuItem()=default
virtual bool blocking() const
true if this item is blocking (only one blocking item can be active at once)
Definition MRRibbonMenuItem.h:36
MRVIEWER_API RibbonMenuItem(std::string name)
MRVIEWER_API void setDropItemsFromItemList(const MenuItemsList &itemsList)
only for bindings generation
Definition MRCameraOrientationPlugin.h:8