26 struct CustomContextMenuCheckbox
28 using Setter = std::function<void( std::shared_ptr<Object>
object,
ViewportId id,
bool checked )>;
29 using Getter = std::function<bool( std::shared_ptr<Object>
object,
ViewportId id )>;
41 const std::string& name,
42 CustomContextMenuCheckbox customContextMenuCheckbox );
51 MRVIEWER_API
virtual void load_font(
int font_size = 13 )
override;
78 Vector2i
getSceneSize() {
return Vector2i(
int( sceneSize_.x ),
int( sceneSize_.y ) ); };
86 bool hasAnyActiveItem()
const {
return bool( activeBlockingItem_.item ) || !activeNonBlockingItems_.empty(); }
105 MRVIEWER_API
static void cloneTree(
const std::vector<std::shared_ptr<Object>>& selectedObjects );
128 MRVIEWER_API
virtual void drawSmallButtonsSet_(
const std::vector<std::string>& group,
int setFrontIndex,
int setLength,
135 int numSmallText{ 0 };
141 MRVIEWER_API
virtual void setupItemsGroup_(
const std::vector<std::string>& groupsInTab,
const std::string& tabName );
142 MRVIEWER_API
virtual void drawItemsGroup_(
const std::string& tabName,
const std::string& groupName,
145 MRVIEWER_API
virtual void itemPressed_(
const std::shared_ptr<RibbonMenuItem>& item,
bool available );
150 MRVIEWER_API
virtual void postResize_(
int width,
int height )
override;
155 std::shared_ptr<RibbonMenuItem>
item;
157 bool dialogPositionFixed{
false };
207 void changeTab_(
int newTab );
209 std::string getRequirements_(
const std::shared_ptr<RibbonMenuItem>& item )
const;
212 void drawSearchButton_();
213 void drawCollapseButton_();
214 void drawHelpButton_();
216 void sortObjectsRecursive_( std::shared_ptr<Object>
object );
219 void drawHeaderQuickAccess_();
220 void drawHeaderPannel_();
221 void drawActiveListButton_(
float btnSize );
223 ImVec2 activeListPos_{ 0,0 };
224 bool activeListPressed_{
false };
225 void drawActiveList_();
227 void beginTopPanel_();
229 void drawTopPanelOpened_();
231 std::string transformClipboardText_;
233 int currentTopPanelHeight_ = 113;
234 int topPanelOpenedHeight_ = 113;
235 int topPanelHiddenHeight_ = 33;
237 ImVec2 sceneSize_{ 310, 0 };
238 float informationHeight_{ 0.f };
239 float transformHeight_{ 0.f };
242 float blockingHighlightTimer_{ 0.0f };
245 float tabPanelScroll_{ 0.0f };
247 bool autoCloseBlockingPlugins_{
true };
249 enum class CollapseState
254 } collapseState_{ CollapseState::Pinned };
256 float openedMaxSecs_{ 2.0f };
257 float openedTimer_{ openedMaxSecs_ };
258 float openedLastOperationTimeTimer_{ openedMaxSecs_ };
260 int activeTabIndex_{ 0 };
261 RibbonFontManager fontManager_;
262 RibbonButtonDrawer buttonDrawer_;
264 std::unordered_map<std::string, CustomContextMenuCheckbox> customCheckBox_;
267 RibbonNotifier notifier_;
268#ifndef __EMSCRIPTEN__
269 AsyncRequest asyncRequest_;