73 MRVIEWER_API
static bool CustomCollapsingHeader(
const char* label, ImGuiTreeNodeFlags flags = 0,
int issueCount = 0 );
99 void setOnPressAction( std::function<
void( std::shared_ptr<RibbonMenuItem>,
const std::string& )> action ) { onPressAction_ = action; };
101 void setGetterRequirements( std::function<std::string( std::shared_ptr<RibbonMenuItem> )> getterRequirements ) { getRequirements_ = getterRequirements; };
112 void drawDropList_(
const std::shared_ptr<RibbonMenuItem>& baseDropItem )
const;
113 void drawTooltip_(
const MenuItemInfo& item,
const std::string& requirements )
const;
115 std::function<void( std::shared_ptr<RibbonMenuItem>,
const std::string& )> onPressAction_ = []( std::shared_ptr<RibbonMenuItem>,
const std::string& ) {};
116 std::function<std::string( std::shared_ptr<RibbonMenuItem> )> getRequirements_ = []( std::shared_ptr<RibbonMenuItem> ) {
return std::string(); };
117 RibbonMenu* menu_ =
nullptr;
118 const ShortcutManager* shortcutManager_ =
nullptr;
120 std::optional<Color> monochrome_;
122 static std::vector<std::unique_ptr<MR::ImGuiImage>> textures_;
Definition MRImGuiImage.h:18
Definition MRShortcutManager.h:47
static std::unique_ptr< ImGuiImage > & GetTexture(TextureType type)
TextureType
Definition MRRibbonButtonDrawer.h:58
IconType
Definition MRRibbonIcons.h:24
ImVec2 size(const ViewportRectangle &rect)
Definition MRViewport.h:32
void drawButtonItem(const MenuItemInfo &item, const DrawButtonParams ¶ms) const
draw item button
static void InitGradientTexture()
Creates GL texture for gradient UI (called on theme apply)
int pushRibbonButtonColors(bool enabled, bool active, bool forceHovered, DrawButtonParams::RootType rootType) const
void setMonochrome(const std::optional< Color > &color)
if set color then instead of multicolored icons will be drawn with this color
RootType
icon size ( = 0 - use preset according to button type), this is scale factor of cBigIcon size (should...
Definition MRRibbonButtonDrawer.h:30
float baseWidth
Definition MRRibbonButtonDrawer.h:77
static bool CustomCollapsingHeader(const char *label, ImGuiTreeNodeFlags flags=0, int issueCount=0)
void setGetterRequirements(std::function< std::string(std::shared_ptr< RibbonMenuItem >)> getterRequirements)
set function to get requirements for activate item
Definition MRRibbonButtonDrawer.h:101
ButtonItemWidth calcItemWidth(const MenuItemInfo &item, DrawButtonParams::SizeType sizeType) const
void drawCustomButtonItem(const MenuItemInfo &item, const CustomButtonParameters &customParam, const DrawButtonParams ¶ms) const
draw item button
SizeType
Definition MRRibbonButtonDrawer.h:21
void setOnPressAction(std::function< void(std::shared_ptr< RibbonMenuItem >, const std::string &)> action)
set reaction on press item button
Definition MRRibbonButtonDrawer.h:99
void setShortcutManager(const ShortcutManager *shortcutManager)
Definition MRRibbonButtonDrawer.h:104
bool drawTabArrowButton(const char *icon, const ImVec2 &size, float iconSize)
draw custom styled button
float additionalWidth
Definition MRRibbonButtonDrawer.h:78
void setMenu(RibbonMenu *menu)
Definition MRRibbonButtonDrawer.h:103
float iconSize
size of whole item group, needed for all, this should respect system scaling
Definition MRRibbonButtonDrawer.h:28
ImVec2 itemSize
type of button to draw
Definition MRRibbonButtonDrawer.h:27
bool GradientCheckboxItem(const MenuItemInfo &item, bool *value) const
draw gradient checkbox with icon (for menu item)
RibbonIcons::IconType iconType
Definition MRRibbonButtonDrawer.h:48
bool forcePressed
if true treat this item as pressed
Definition MRRibbonButtonDrawer.h:39
std::function< int(bool, bool)> pushColorsCb
if not set push default ribbon colors
Definition MRRibbonButtonDrawer.h:47
enum MR::DrawButtonParams::SizeType Big
bool * isPressed
set true if item pressed
Definition MRRibbonButtonDrawer.h:41
bool forceHovered
if true treat this item as hovered
Definition MRRibbonButtonDrawer.h:37
void drawButtonIcon(const MenuItemInfo &item, const DrawButtonParams ¶ms) const
draw item button icon
enum MR::DrawButtonParams::RootType Ribbon
@ Mono
Definition MRRibbonButtonDrawer.h:59
@ Gradient
Definition MRRibbonButtonDrawer.h:60
@ RainbowRect
Definition MRRibbonButtonDrawer.h:61
@ Count
Definition MRRibbonButtonDrawer.h:62
@ Header
button is on toolbar
Definition MRRibbonButtonDrawer.h:33
@ Toolbar
button is on main ribbon bar
Definition MRRibbonButtonDrawer.h:32
@ Ribbon
Definition MRRibbonButtonDrawer.h:31
@ Small
button is small, text is on same line
Definition MRRibbonButtonDrawer.h:24
@ SmallText
button is big, underline text is divided to 2 lines (maximum) to fit width
Definition MRRibbonButtonDrawer.h:23
@ Big
Definition MRRibbonButtonDrawer.h:22
only for bindings generation
Definition MRCameraOrientationPlugin.h:8