MeshLib
 
Loading...
Searching...
No Matches
MRToolbar.h
Go to the documentation of this file.
1#pragma once
2#include "MRMesh/MRMeshFwd.h"
3#include "MRMesh/MRColor.h"
4#include "MRPch/MRJson.h"
5
6namespace MR
7{
8using MenuItemsList = std::vector<std::string>;
9using MenuItemsListMigration = std::function<void ( MenuItemsList& )>;
10using MenuItemsListMigrations = std::map<int, MenuItemsListMigration>;
11
12class RibbonMenu;
13
16{
17public:
19 void setRibbonMenu( RibbonMenu* ribbonMenu );
20
26 float getCurrentToolbarWidth() const { return currentWidth_; }
27 // enable toolbar customize window rendering
32
34 void readItemsList( const Json::Value& root );
39 const MenuItemsList& getItemsList() const { return itemsList_; }
41 int getItemsListVersion() const { return itemsListVersion_; }
43 void setItemsListVersion( int version ) { itemsListVersion_ = version; }
45 void setItemsListMigrations( const MenuItemsListMigrations& migrations ) { itemsListMigrations_ = migrations; }
46
47 void setScaling( float scale ) { scaling_ = scale; }
48
49private:
51 void drawCustomizeModal_();
53 void drawCustomizeTabsList_();
55 void drawCustomizeItemsList_();
56
57 void dashedLine_( const Vector2f& org, const Vector2f& dest, float periodLength = 10.f, float fillRatio = 0.5f, const Color& color = Color::gray(), float periodStart = 0.f );
58 void dashedRect_( const Vector2f& leftTop, const Vector2f& rightBottom, float periodLength = 10.f, float fillRatio = 0.5f, const Color& color = Color::gray() );
59
60 RibbonMenu* ribbonMenu_;
61
62 float scaling_ = 1.f;
63
64 MenuItemsList itemsList_; // toolbar items list
65 MenuItemsList itemsListCustomize_; // toolbar preview items list for Toolbar Customize window
66 int itemsListVersion_{ 1 }; // items list version
67 MenuItemsListMigrations itemsListMigrations_; // items list's upgrade rules
68
69 float currentWidth_{ 0.0f };
70 bool dragDrop_ = false; // active drag&drop in Toolbar Customize window
71 bool openCustomizeFlag_ = false; // flag to open Toolbar Customize window
72 int customizeTabNum_ = 0; // number active tab
73 std::string searchString_;
74 std::vector<std::vector<std::string>> searchResult_;
75};
76
77}
Definition MRRibbonMenu.h:25
class to draw toolbar and toolbar customize windows
Definition MRToolbar.h:16
void drawCustomize()
void setItemsListVersion(int version)
set item list version
Definition MRToolbar.h:43
float getCurrentToolbarWidth() const
Definition MRToolbar.h:26
const MenuItemsList & getItemsList() const
get acces to items
Definition MRToolbar.h:39
void setItemsListMigrations(const MenuItemsListMigrations &migrations)
set item list's upgrade rules
Definition MRToolbar.h:45
void resetItemsList()
void readItemsList(const Json::Value &root)
read toolbar items from json
void openCustomize()
void setRibbonMenu(RibbonMenu *ribbonMenu)
set pointer on ribbon menu to access it
void drawToolbar()
int getItemsListVersion() const
get item list version
Definition MRToolbar.h:41
void setScaling(float scale)
Definition MRToolbar.h:47
Definition MRCameraOrientationPlugin.h:7
std::function< void(MenuItemsList &)> MenuItemsListMigration
Definition MRToolbar.h:9
std::vector< std::string > MenuItemsList
Definition MRRibbonMenuItem.h:9
std::map< int, MenuItemsListMigration > MenuItemsListMigrations
Definition MRToolbar.h:10
Definition MRColor.h:9
static constexpr Color gray() noexcept
Definition MRColor.h:29