FLImaging 7.10.21.1
GUIManagerContextMenuViewImage.h
1#pragma once
2#include "GUIManagerContextMenuBase.h"
3#include "DefinitionsGUI.h"
4#include "GUIViewImageContextMenuFilter.h"
5#include <unordered_set>
6
7namespace FLImaging
8{
9 namespace GUI
10 {
11 class CGUIViewImage;
12 class CInternalViewImage;
13 class CGUIPopupMenu;
14
15 class FL_EXPORT CGUIManagerContextMenuViewImage : public CGUIManagerContextMenuBase
16 {
17 public:
18 CGUIManagerContextMenuViewImage();
19 CGUIManagerContextMenuViewImage(CGUIViewImage* pParentView);
20 virtual ~CGUIManagerContextMenuViewImage();
21 virtual const CResult Assign(const CGUIManagerContextMenuViewImage& rhs);
22 virtual const CResult Assign(const CGUIManagerContextMenuViewImage* pRhs);
23 CGUIManagerContextMenuViewImage& operator=(const CGUIManagerContextMenuViewImage& rhs);
24
25 virtual const CResult Initialize();
26
27 static bool IsStaticArrayInitialized();
28 static void InitializeStaticArray();
29 static const Base::CFLString<wchar_t> GetMenuItemString(int64_t i64MenuItem);
30 static EResourceIdBitmap GetMenuItemBmpResourceId(int64_t i64MenuItem);
31 static const Base::CFLString<wchar_t> GetMenuItemString(EMenuItem eMenuItem);
32 static EResourceIdBitmap GetMenuItemBmpResourceId(EMenuItem eMenuItem);
33 static const Base::CFLString<wchar_t> GetMenuItemString(EMenuItemImageFigure eMenuItem);
34 static EResourceIdBitmap GetMenuItemBmpResourceId(EMenuItemImageFigure eMenuItem);
35 static EMenuItem NormalizeVariableMenuItem(EMenuItem eMenu);
36
37 virtual void SetPopupMenuItem(CGUIPopupMenu& cmenuPopup);
38 virtual void SetPopupMenuItemThumbnailView(CGUIPopupMenu& cmenuPopup, int32_t i32RealPageIndexAtCursor);
39 virtual void SetPopupMenuItemMiniMap(CGUIPopupMenu& cmenuPopup);
40 virtual void SetPopupMenuItemPageInfo(CGUIPopupMenu& cmenuPopup);
41 virtual void SetPopupMenuItemMeasure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
42
43 virtual void AppendMenuParentLoadMore(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
44 virtual void AppendMenuParentLoadDrawings(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
45 virtual void AppendMenuParentSynchronization(CGUIPopupMenu& cmenuPopup, bool bCreateSubMenu, bool& bAddedMenu);
46 virtual void AppendMenuParentImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
47 virtual void AppendMenuParentShow(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
48 virtual void AppendMenuParentPixel(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
49 virtual void AppendMenuParentPixelDisplayMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
50 virtual void AppendMenuParentImageOperation(CGUIPopupMenu& cmenuPopup, bool bImgExistRough, bool& bAddedMenu);
51 virtual void AppendMenuParentLayer(CGUIPopupMenu& cmenuPopup, bool bCreateSubMenu, bool& bAddedMenu);
52 virtual void AppendMenuParentMeasure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
53 virtual void AppendMenuParentPointOfView(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
54 virtual void AppendMenuParentPageControl(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
55
56 virtual void AppendMenuPageControl(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
57 virtual void AppendMenuCreateFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
58 virtual void AppendMenuZoomFitToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
59 virtual void AppendMenuConvertLayerToFigureObject(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
60 virtual void AppendMenuConvertSelectedFigureObjectToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
61 virtual void AppendMenuConvertAllFigureObjectsToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
62 virtual void AppendMenuParentSyncView(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
63 virtual void AppendMenuSyncView(CGUIPopupMenu& cmenuPopup, EViewImageSyncOption eSyncOption, UINT uFlag, bool& bAddedMenu);
64 virtual void AppendMenuParentSyncWindow(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
65 virtual void AppendMenuShowLayers(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu, bool bOnMiniMap);
66 virtual void AppendMenuClearLayers(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
67 virtual void AppendMenuPixelDisplayMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
68 virtual void AppendMenuFlip(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
69 virtual void AppendMenuRotate(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
70 virtual void AppendMenuClearFile(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
71 virtual void AppendMenuCreateImage(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
72 virtual void AppendMenuCopyAndPasteImage(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
73 virtual void AppendMenuFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
74 virtual void AppendMenuImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
75 virtual void AppendMenuShowImageMinimap(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
76 virtual void AppendMenuShowImageThumbnail(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
77 virtual void AppendMenuShowImagePageIndex(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
78 virtual void AppendMenuShowGrid(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
79 virtual void AppendMenuShowImageCenter(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
80 virtual void AppendMenuShowPixelValue(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
81 virtual void AppendMenuShowCrosshair(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
82 virtual void AppendMenuShowImageCoordinateOnCursor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
83 virtual void AppendMenuShowImagePixelValueOnCursor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
84 virtual void AppendMenuChangeCanvasColor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
85 virtual void AppendMenuShowToolbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
86 virtual void AppendMenuShowStatusbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
87 virtual void AppendMenuShowScrollbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
88
89 virtual void AppendMenuShowImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
90 virtual void AppendMenuShowImageFigureText(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
91 virtual void AppendMenuHoverImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
92 virtual void AppendMenuSetImageFigureRealSizeTextMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
93 SupportToDuplicateObject(CGUIManagerContextMenuViewImage);
94 DeclareGetClassType();
95
96 protected:
97
98 virtual inline CGUIPopupMenu* InternalAppendSubMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItemParent, const std::vector<EMenuItem>& vctMenuItem, bool& bAddedMenu, bool bCheck);
99
100 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, long uFlag, bool& bAddedMenu);
101
102 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, long uFlag, bool& bAddedMenu);
103
104 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu);
105
106 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, bool& bAddedMenu, bool bCheck);
107
108 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bCheck);
109
110 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, long uFlag, bool& bAddedMenu, bool bCheck);
111
112 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, long uFlag, bool& bAddedMenu, bool bCheck);
113
114 virtual inline void InternalAppendMenuEnable(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bEnable);
115
116 virtual inline void InternalAppendMenuEnableCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bEnable, bool bCheck);
117
118 protected:
119 virtual inline CGUIPopupMenu* InternalAppendSubMenuCheck(CGUIPopupMenu* pMenu, const std::vector<EMenuItem>& vctMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bCheck);
120
121 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, const long uFlag, EResourceIdBitmap resId, bool& bAddedMenu);
122
123 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu);
124
125 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bCheck);
126
127 virtual inline void InternalAppendMenuEnableCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bEnable, bool bCheck);
128
129
130 bool IsAvailable(EMenuItem eMenu) const;
131 void SetAvailable(EMenuItem eMenu, bool bAvailable);
132 bool IsAllAvailable(const EMenuItem* pArr, int64_t i64Count) const;
133 bool IsAnyAvailable(const EMenuItem* pArr, int64_t i64Count) const;
134 bool IsAnyAvailable(const CGUIViewImageContextMenuFilter& availSrc) const;
135 UINT GetContextMenuFlag(const CGUIViewImageContextMenuFilter& availSrc, EMenuItem eMenuItem) const;
136 UINT GetContextMenuFlag(const CGUIViewImageContextMenuFilter& availSrc, EMenuItem eMenuItem, long uFlag) const;
137
138 protected:
139 CGUIViewImage* m_pParentView;
140 CInternalViewImage* m_pParentViewInternal;
141 std::unordered_set<EMenuItem> m_setMenuItemAdded;
142 std::unordered_set<EMenuItemImageFigure> m_setMenuItemAddedImageFigure;
143 CGUIViewImageContextMenuFilter m_filterAvailableMenu;
144 EGUIViewImageHitArea m_eHitArea;
145
146 friend class CGUIViewImage;
147 };
148}
149}
A class of image view.
Definition FLImagingGUI/GUIViewImage.h:361
Definition D2DObject.h:12
EGUIViewImageHitArea
The area where the mouse is located on the image view.
Definition FLImagingGUI/DefinitionsGUI.h:8403
EResourceIdBitmap
Resource ID of bitmap.
Definition DefinitionsGUIResource.h:58
EMenuItem
Image view menu item.
Definition FLImagingGUI/DefinitionsGUI.h:827
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition FLImagingGUICLR/DefinitionsGUIView3D.h:3539