33 struct CustomContextMenuCheckbox
35 using Setter = std::function<void( std::shared_ptr<Object>
object,
ViewportId id,
bool checked )>;
36 using Getter = std::function<bool( std::shared_ptr<Object>
object,
ViewportId id )>;
48 const std::string& name,
49 CustomContextMenuCheckbox customContextMenuCheckbox );
58 MRVIEWER_API
virtual void load_font(
int font_size = 13 )
override;
82 Vector2i
getSceneSize() {
return Vector2i(
int( sceneSize_.x ),
int( sceneSize_.y ) ); };
90 bool hasAnyActiveItem()
const {
return bool( activeBlockingItem_.item ) || !activeNonBlockingItems_.empty(); }
121 MRVIEWER_API
static void cloneTree(
const std::vector<std::shared_ptr<Object>>& selectedObjects );
150 MRVIEWER_API
virtual void drawSmallButtonsSet_(
const std::vector<std::string>& group,
int setFrontIndex,
int setLength,
157 int numSmallText{ 0 };
163 MRVIEWER_API
virtual void setupItemsGroup_(
const std::vector<std::string>& groupsInTab,
const std::string& tabName );
164 MRVIEWER_API
virtual void drawItemsGroup_(
const std::string& tabName,
const std::string& groupName,
167 MRVIEWER_API
virtual void itemPressed_(
const std::shared_ptr<RibbonMenuItem>& item,
bool available );
175 MRVIEWER_API
virtual void postResize_(
int width,
int height )
override;
180 std::shared_ptr<RibbonMenuItem>
item;
182 bool dialogPositionFixed{
false };
189 MRVIEWER_API
virtual void drawTopPanel_(
bool drawTabs =
true,
bool centerItems =
false );
228 void changeTab_(
int newTab );
230 std::string getRequirements_(
const std::shared_ptr<RibbonMenuItem>& item )
const;
233 void drawSearchButton_();
234 void drawCollapseButton_();
235 void drawHelpButton_();
237 void sortObjectsRecursive_( std::shared_ptr<Object>
object );
240 void drawHeaderQuickAccess_();
241 void drawHeaderPannel_();
242 void drawActiveListButton_(
float btnSize );
244 ImVec2 activeListPos_{ 0,0 };
245 bool activeListPressed_{
false };
247 void beginTopPanel_();
249 void drawTopPanelOpened_(
bool drawTabs,
bool centerItems );
251 std::string transformClipboardText_;
253 int currentTopPanelHeight_ = 113;
254 int topPanelOpenedHeight_ = 113;
255 int topPanelHiddenHeight_ = 33;
257 ImVec2 sceneSize_{ 310, 0 };
258 float informationHeight_{ 0.f };
259 float transformHeight_{ 0.f };
262 float blockingHighlightTimer_{ 0.0f };
265 float tabPanelScroll_{ 0.0f };
267 bool autoCloseBlockingPlugins_{
true };
269 enum class CollapseState
274 } collapseState_{ CollapseState::Pinned };
276 float openedMaxSecs_{ 2.0f };
277 float openedTimer_{ openedMaxSecs_ };
279 int activeTabIndex_{ 0 };
280 RibbonFontManager fontManager_;
281 RibbonButtonDrawer buttonDrawer_;
283 std::unordered_map<std::string, CustomContextMenuCheckbox> customCheckBox_;
286 RibbonNotifier notifier_;
287#ifndef __EMSCRIPTEN__
288 AsyncRequest asyncRequest_;