FLImaging 7.8.25.3
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
36 virtual void SetPopupMenuItem(CGUIPopupMenu& cmenuPopup);
37 virtual void SetPopupMenuItemThumbnailView(CGUIPopupMenu& cmenuPopup, int32_t i32RealPageIndexAtCursor);
38 virtual void SetPopupMenuItemMiniMap(CGUIPopupMenu& cmenuPopup);
39 virtual void SetPopupMenuItemPageInfo(CGUIPopupMenu& cmenuPopup);
40 virtual void SetPopupMenuItemMeasure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
41
42 virtual void AppendMenuParentLoadMore(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
43 virtual void AppendMenuParentLoadDrawings(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
44 virtual void AppendMenuParentSynchronization(CGUIPopupMenu& cmenuPopup, bool bCreateSubMenu, bool& bAddedMenu);
45 virtual void AppendMenuParentImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
46 virtual void AppendMenuParentShow(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
47 virtual void AppendMenuParentPixel(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
48 virtual void AppendMenuParentPixelDisplayMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
49 virtual void AppendMenuParentImageOperation(CGUIPopupMenu& cmenuPopup, bool bImgExistRough, bool& bAddedMenu);
50 virtual void AppendMenuParentLayer(CGUIPopupMenu& cmenuPopup, bool bCreateSubMenu, bool& bAddedMenu);
51 virtual void AppendMenuParentMeasure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
52 virtual void AppendMenuParentPointOfView(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
53 virtual void AppendMenuParentPageControl(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
54
55 virtual void AppendMenuPageControl(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
56 virtual void AppendMenuCreateFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
57 virtual void AppendMenuZoomFitToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
58 virtual void AppendMenuConvertLayerToFigureObject(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
59 virtual void AppendMenuConvertSelectedFigureObjectToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
60 virtual void AppendMenuConvertAllFigureObjectsToLayer(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
61 virtual void AppendMenuParentSyncView(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
62 virtual void AppendMenuSyncView(CGUIPopupMenu& cmenuPopup, EViewImageSyncOption eSyncOption, UINT uFlag, bool& bAddedMenu);
63 virtual void AppendMenuParentSyncWindow(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
64 virtual void AppendMenuShowLayers(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu, bool bOnMiniMap);
65 virtual void AppendMenuClearLayers(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
66 virtual void AppendMenuPixelDisplayMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
67 virtual void AppendMenuFlip(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
68 virtual void AppendMenuRotate(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
69 virtual void AppendMenuClearFile(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
70 virtual void AppendMenuCreateImage(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
71 virtual void AppendMenuCopyAndPasteImage(CGUIPopupMenu& cmenuPopup, bool bImgExist, bool bImgExistRough, bool& bAddedMenu);
72 virtual void AppendMenuFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
73 virtual void AppendMenuImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
74 virtual void AppendMenuShowImageMinimap(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
75 virtual void AppendMenuShowImageThumbnail(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
76 virtual void AppendMenuShowImagePageIndex(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
77 virtual void AppendMenuShowGrid(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
78 virtual void AppendMenuShowImageCenter(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
79 virtual void AppendMenuShowPixelValue(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
80 virtual void AppendMenuShowCrosshair(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
81 virtual void AppendMenuShowImageCoordinateOnCursor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
82 virtual void AppendMenuShowImagePixelValueOnCursor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
83 virtual void AppendMenuChangeCanvasColor(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
84 virtual void AppendMenuShowToolbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
85 virtual void AppendMenuShowStatusbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
86 virtual void AppendMenuShowScrollbar(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
87
88 virtual void AppendMenuShowImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
89 virtual void AppendMenuShowImageFigureText(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
90 virtual void AppendMenuHoverImageFigure(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
91 virtual void AppendMenuSetImageFigureRealSizeTextMode(CGUIPopupMenu& cmenuPopup, bool& bAddedMenu);
92 SupportToDuplicateObject(CGUIManagerContextMenuViewImage);
93 DeclareGetClassType();
94
95 protected:
96
97 virtual inline CGUIPopupMenu* InternalAppendSubMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItemParent, const std::vector<EMenuItem>& vctMenuItem, bool& bAddedMenu, bool bCheck);
98
99 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, long uFlag, bool& bAddedMenu);
100
101 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, long uFlag, bool& bAddedMenu);
102
103 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu);
104
105 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, bool& bAddedMenu, bool bCheck);
106
107 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bCheck);
108
109 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& strMenu, long uFlag, bool& bAddedMenu, bool bCheck);
110
111 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, long uFlag, bool& bAddedMenu, bool bCheck);
112
113 virtual inline void InternalAppendMenuEnable(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bEnable);
114
115 virtual inline void InternalAppendMenuEnableCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, bool& bAddedMenu, bool bEnable, bool bCheck);
116
117 protected:
118 virtual inline CGUIPopupMenu* InternalAppendSubMenuCheck(CGUIPopupMenu* pMenu, const std::vector<EMenuItem>& vctMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bCheck);
119
120 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, const long uFlag, EResourceIdBitmap resId, bool& bAddedMenu);
121
122 virtual inline void InternalAppendMenu(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu);
123
124 virtual inline void InternalAppendMenuCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bCheck);
125
126 virtual inline void InternalAppendMenuEnableCheck(CGUIPopupMenu* pMenu, EMenuItem eMenuItem, const Base::CFLString<wchar_t>& flstrName, EResourceIdBitmap resId, bool& bAddedMenu, bool bEnable, bool bCheck);
127
128
129 bool IsAvailable(EMenuItem eMenu) const;
130 void SetAvailable(EMenuItem eMenu, bool bAvailable);
131 bool IsAnyAvailable(const EMenuItem* pArr, int64_t i64Count) const;
132 UINT GetContextMenuFlag(const CGUIViewImageContextMenuFilter& availSrc, EMenuItem eMenuItem) const;
133 UINT GetContextMenuFlag(const CGUIViewImageContextMenuFilter& availSrc, EMenuItem eMenuItem, long uFlag) const;
134
135 protected:
136 CGUIViewImage* m_pParentView;
137 CInternalViewImage* m_pParentViewInternal;
138 std::unordered_set<EMenuItem> m_setMenuItemAdded;
139 std::unordered_set<EMenuItemImageFigure> m_setMenuItemAddedImageFigure;
140 CGUIViewImageContextMenuFilter m_filterAvailableMenu;
141 EGUIViewImageHitArea m_eHitArea;
142
143 friend class CGUIViewImage;
144 };
145}
146}
A class of image view.
Definition GUIViewImage.h:360
Definition D2DObject.h:12
EGUIViewImageHitArea
The area where the mouse is located on the image view.
Definition DefinitionsGUI.h:8431
EResourceIdBitmap
Resource ID of bitmap.
Definition DefinitionsGUIResource.h:58
@ Assign
Set the value of CGUIPropertyItemView3DFigure to the specified figure.
Definition DefinitionsGUIView3D.h:3531