1 #pragma once
2 
3 #ifndef SCENE_VIEWER_CONTEXT_MENU
4 #define SCENE_VIEWER_CONTEXT_MENU
5 
6 #include <QMenu>
7 #include "tgeometry.h"
8 
9 class TStageObjectId;
10 class SceneViewer;
11 class TXshColumn;
12 
13 class SceneViewerContextMenu final : public QMenu {
14   Q_OBJECT
15   SceneViewer *m_viewer;
16   int m_groupIndexToBeEntered;
17 
18   void addShowHideCommand(QMenu *menu, TXshColumn *column);
19   void addSelectCommand(QMenu *menu, const TStageObjectId &id);
20 
21 public:
22   SceneViewerContextMenu(SceneViewer *parent);
23   ~SceneViewerContextMenu();
24 
25   void addEnterGroupCommands(const TPointD &pos);
26   void addLevelCommands(std::vector<int> &indices);
27 
28 public slots:
29 
30   void savePreviewedFrames();
31 
32   void enterVectorImageGroup();
33   void exitVectorImageGroup();
34   void setGuidedDrawingType(QAction *);
35   void setGuidedAutoInbetween();
36   void setGuidedInterpolationState(QAction *);
37 
38   void onShowHide();
39   void onSetCurrent();
40 };
41 
42 namespace ZeroThickToggleGui {
43 void addZeroThickCommand(QMenu *menu);
44 
45 class ZeroThickToggleHandler : public QObject {
46   Q_OBJECT
47 
48 public slots:
49   void activate();
50   void deactivate();
51 };
52 
53 }  // Namespace ZeroThickToggleGui
54 
55 namespace CursorOutlineToggleGui {
56 void addCursorOutlineCommand(QMenu *menu);
57 
58 class CursorOutlineToggleHandler : public QObject {
59   Q_OBJECT
60 
61 public slots:
62   void activate();
63   void deactivate();
64 };
65 
66 }  // Namespace CursorOutlineToggleGui
67 
68 #endif
69