FLImaging 7.8.25.3
GUIViewDrawing.h
1#pragma once
2
10
11#include <afxwin.h>
12
13#include "GUIViewImageBase.h"
14#include "DefinitionsGUI.h"
15#include "DefinitionsGUIViewDrawing.h"
16#include "D2DObject.h"
17
18#include <set>
19#include <map>
20
22namespace FLImaging
23{
25 namespace GUI
26 {
28 class CGUIBoxLayout;
29 class CGUIManagerView;
30 class CInternalViewManager;
31 class CGUIManagerViewDrawingObject;
32 class CGUIManagerViewImageSelectionImage;
33 class CGUIManagerContextMenuViewDrawing;
34 class CGUIManagerContextMenuViewImageObject;
35 class CInternalCanvas;
36 class CGUIViewImageMiniMap;
37 class CGUIViewToolBar;
38 class CGUIDialogImageInfo;
39 class CGUIDialogImagePageList;
40 class CGUIDialogLayerProperties;
41 class CGUIDialogLayerProperties;
42 class CGUIPaneDialog;
43
51 class FL_EXPORT CGUIViewDrawing : public CGUIViewImageBase
52 {
53 public: // serialization 에서만 만들어집니다.
61
69
77 DECLARE_DYNCREATE(CGUIViewDrawing)
78
79
85 virtual ~CGUIViewDrawing();
86
87 public:
88
97 {
105
113
121
129
137
145
153
161
169
177
185
193
201 };
202
203 enum
204 {
212 };
213
224
244 static CGUIViewDrawing* CreateView(int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B, bool bStandalone = false);
245
263 virtual const CResult Load(const wchar_t* pWcsPath = nullptr, EViewDrawingLoadOption eOption = EViewDrawingLoadOption_Load);
264
287
301 virtual const CResult Save(const wchar_t* pWcsFileNameWithPath = nullptr);
302
314 virtual const CResult ClearFile();
315
330
345
361 virtual Foundation::CFLPoint<double> ConvertClientCoordToImageCoord(int32_t i32X, int32_t i32Y) const;
362
377
392
408 virtual Foundation::CFLPoint<int32_t> ConvertImageCoordToClientCoord(double f64X, double f64Y) const;
409
424
439
455 virtual Foundation::CFLPoint<int32_t> ConvertClientCoordToCanvasCoord(int32_t i32X, int32_t i32Y) const;
456
471
486
502 virtual Foundation::CFLPoint<int32_t> ConvertCanvasCoordToClientCoord(int32_t i32X, int32_t i32Y) const;
503
504
519
534
550 virtual Foundation::CFLPoint<double> ConvertCanvasCoordToImageCoord(int32_t i32X, int32_t i32Y) const;
551
566
581
597 virtual Foundation::CFLPoint<int32_t> ConvertImageCoordToCanvasCoord(double f64X, double f64Y) const;
598
599
607 virtual void ClearAllLayers();
608
622 CGUIViewImageLayer* GetLayer(int32_t i32Index) const;
623
637 CGUIViewImageLayer* GetLayerByName(const std::wstring& strLayerName);
638
655 CGUIViewImageLayer* GetLayerByName(const std::wstring& strLayerName, const CGUIViewImageLayer* pLayerRTTI);
656
672 const CResult DeleteLayerByName(const std::wstring& strLayerName);
673
687 bool DoesLayerExist(const std::wstring& strLayerName) const;
688
700 int32_t GetNamedLayerCount() const;
701
715 CGUIViewImageLayer* GetNamedLayer(int32_t i32Index) const;
716
738 virtual const CResult SetLayerAutoClearMode(int32_t i32LayerIndex, ELayerAutoClearMode eMode, bool bSet);
739
761 virtual const CResult SetLayerAutoClearMode(CGUIViewImageLayer* pLayer, ELayerAutoClearMode eMode, bool bSet);
762
782 virtual const CResult SetLayerAutoClearMode(ELayerAutoClearMode eMode, bool bSet);
783
801 virtual bool GetLayerAutoClearMode(int32_t i32LayerIndex, ELayerAutoClearMode eMode) const;
802
820 virtual bool GetLayerAutoClearMode(const CGUIViewImageLayer* pLayer, ELayerAutoClearMode eMode) const;
821
835 virtual const CResult ZoomFitToLayer(int32_t i32LayerIndex);
836
850 virtual const CResult ZoomFitToLayer(const CGUIViewImageLayer* pLayer);
851
864
877
893 virtual const CResult SetViewCenter(const Foundation::CFLPoint<double>& flpImageCoord);
894
912 virtual const CResult SetViewCenterAndScale(const Foundation::CFLPoint<double>& flpImageCoord, double f64Scale);
913
927 virtual const CResult ZoomAtCenter(double f64Scale);
928
941
942 virtual const CResult InternalSetOffset(Foundation::CFLPoint<double> flpOffset);
943
953 virtual double GetScale() const;
954
955 virtual const CResult InternalSetScale(double f64Scale);
956
970 double GetZoomFitScale(double f64CanvasWidth, double f64CanvasHeight) const;
971
972 virtual const CResult InternalZoomIn(POINT ptCanvas, double f64Ratio = 1.25);
973
974 virtual const CResult InternalZoomOut(POINT ptCanvas, double f64Ratio = .8);
975
987 virtual const CResult ZoomFit();
988
1001
1011 virtual void SetCanvasColor(COLORREF clrCanvas);
1012
1022 virtual COLORREF GetCanvasColor() const;
1023
1033 virtual void ShowImageMiniMap(bool bShow);
1034
1044 virtual bool IsImageMiniMapVisible() const;
1045
1055 virtual void ShowCrosshair(bool bShow);
1056
1066 virtual bool IsCrosshairVisible() const;
1067
1077 virtual void ShowGrid(bool bShow);
1078
1088 virtual bool IsGridVisible() const;
1089
1099 virtual void ShowImageCoordinateOnCursor(bool bShow);
1100
1111
1125 virtual const CResult SetDecimalPlacesOfCoordinate(uint8_t u8DecimalPlaces = 2);
1126
1136 virtual uint8_t GetDecimalPlacesOfCoordinate() const;
1137
1153 const CResult SetPixelAccuracy(double f64PixelAccuracyX, double f64PixelAccuracyY);
1154
1170 const CResult GetPixelAccuracy(double* pF64PixelAccuracyX, double* pF64PixelAccuracyY) const;
1171
1187 const CResult GetPixelAccuracy(double& f64PixelAccuracyX, double& f64PixelAccuracyY) const;
1188
1202 const CResult SetPixelAccuracyX(double f64PixelAccuracyX);
1203
1213 double GetPixelAccuracyX() const;
1214
1228 const CResult SetPixelAccuracyY(double f64PixelAccuracyY);
1229
1239 double GetPixelAccuracyY() const;
1240
1257
1270
1286 virtual const CResult SelectMenuItem(EMenuItemViewDrawing eMenuItemViewDrawing);
1287
1301 bool IsSynchronized(EViewDrawingSyncOption eViewDrawingSyncOption) const;
1302
1317
1334
1349
1364
1377
1391 const CResult ShowScrollBar(bool bShow);
1392
1406 virtual const CResult ShowToolBar(bool bShow)override;
1407
1421 const CResult ShowStatusBar(bool bShow);
1422
1440 const CResult CaptureScreen(Base::CFLImage& fliImage, bool bIncludeFrame = false);
1441
1459 const CResult CaptureScreen(Base::CFLImage* pFliImage, bool bIncludeFrame = false);
1460
1474
1488
1498
1513
1527
1541
1562
1572 virtual void EnableSelection(bool bEnable);
1573
1583 virtual bool IsSelectionEnabled() const;
1584
1594 virtual void SetPanningMode(bool bSet);
1595
1605 virtual bool IsPanningMode() const;
1606
1618 virtual void SetZoomMode(EZoomMode eZoomMode);
1619
1631 virtual EZoomMode GetZoomMode() const;
1632
1649
1662
1674 virtual CGUIManagerContextMenuViewDrawing* GetManagerContextMenu() const;
1675
1687 virtual void SetManagerContextMenu(const CGUIManagerContextMenuViewDrawing* pMgr);
1688
1700 virtual CGUIManagerViewDrawingObject* GetManagerViewDrawingObject() const;
1701
1713 virtual void SetManagerViewDrawingObject(const CGUIManagerViewDrawingObject* pMgr);
1714
1725
1736
1747
1748 virtual CD2DObject* GetD2DObject();
1749
1750 public:
1751 Foundation::CFLPoint<int32_t> GetLastCursorClient() const;
1752
1753 virtual void SetTitle(LPCTSTR lpszTitle)override;
1754 void SetHitArea(EGUIViewDrawingHitArea eHitArea);
1755 CGUIViewImageMiniMap* GetMiniMap() const;
1756 virtual void UpdateTheme() override;
1757 virtual const CResult UpdateStatusBar();
1758 virtual void ChangeImageCanvasSize();
1759 virtual void ActivatedPopupMenu(CGUIPopupMenuShell* pPopupMenu)override;
1760
1761 virtual void ShowMultiSelectRect(bool bShow);
1762 virtual bool IsMultiSelectRectVisible() const;
1763
1764 virtual void ShowMultiSelectCandidateRect(bool bShow);
1765 virtual bool IsMultiSelectCandidateRectVisible() const;
1766
1767 EContextMenuFlag GetViewDrawingContextMenuFlag(EMenuItemViewDrawing eMenu) const;
1768 UINT GetViewDrawingContextMenuFlag(EMenuItemViewDrawing eMenu, UINT uAssignFlag) const;
1769 UINT GetViewDrawingContextMenuFlag(const EMenuItemViewDrawing* pArrMenuItem, int64_t i64Count) const;
1770
1771 Foundation::CFLRect<double>& GetMultiSelectRect();
1772
1773 void SetCurrentCursor(UINT nCursor);
1774 UINT GetCurrentCursor() const;
1775
1776 virtual void SetFileNameOnStatusBar(bool bSet);
1777 virtual bool IsFileNameOnStatusBar() const;
1778
1779 virtual const CResult GetPOVToFit(const Foundation::CFLFigure* pFigure, Foundation::CFLRect<double> flrCanvas, double& f64Scale, Foundation::CFLPoint<double>& flpOffset, int32_t i32WidthMargin, int32_t i32HeightMargin) const;
1780
1781 virtual void SetVisible(bool bVisible)override;
1782
1783 virtual void UpdateScrollBar();
1784
1785
1786
1787
1788 virtual void SetDialogLayerPropertiesPtr(CGUIDialogLayerProperties* pDlg);
1789 virtual void InternalDrawCustomLayers(const Foundation::CFLPoint<double>& flpOffset, const Foundation::CFLPoint<double>& flpOffsetOnBtnDown, double f64Scale, const Foundation::CFLRect<int32_t>& flrWindowRect, const D2D1::Matrix3x2F matTransform);
1790
1791 virtual const CResult InternalCreateDialogLoadFigureGbr(const std::vector<Base::CFLString<wchar_t>>& vctGbrPath, std::vector<COLORREF>& vctGbrColor);
1792 virtual const CResult InternalCreateDialogLoadFigureDxf(const std::vector<Base::CFLString<wchar_t>>& vctDxfPath);
1793
1794 virtual void HitTest(const Foundation::CFLPoint<int32_t>& flpCanvas);
1795
1796 virtual const CResult LoadFigure(EFileExtension eFileExt, const wchar_t* pWcsFileNameWithPath = nullptr, bool bErrorMsgBox = false);
1797 virtual const CResult LoadFigureDXF(const std::vector<Base::CFLString<wchar_t>>& vctFileNameWithPath, Foundation::CFLFigureArray* pFlfa = nullptr);
1798
1799 virtual const CResult InternalLoadFigure(const wchar_t* pWcsFileNameWithPath, Foundation::CFLFigureArray* pFlfa = nullptr);
1800 virtual const CResult InternalLoadFigureGBR(const wchar_t* pWcsFileNameWithPath, const wchar_t* pWcsLayerName, uint32_t u32Color, Foundation::CFLFigureArray* pFlfa = nullptr);
1801 virtual const CResult InternalLoadFigureDXF(const wchar_t* pWcsFileNameWithPath);
1802 virtual const CResult SynchronizePointOfViewFromPopupMenu(int32_t i32ViewIndex);
1803 public:
1804 DECLARE_MESSAGE_MAP()
1805 afx_msg void OnLButtonDblClk(UINT nFlags, CPoint ptClient);
1806 afx_msg void OnLButtonDown(UINT nFlags, CPoint ptClient);
1807 afx_msg void OnLButtonUp(UINT nFlags, CPoint ptClient);
1808 afx_msg void OnMButtonDblClk(UINT nFlags, CPoint ptClient);
1809 afx_msg void OnMButtonDown(UINT nFlags, CPoint ptClient);
1810 afx_msg void OnMButtonUp(UINT nFlags, CPoint ptClient);
1811 afx_msg void OnRButtonDblClk(UINT nFlags, CPoint ptClient);
1812 afx_msg void OnRButtonDown(UINT nFlags, CPoint ptClient);
1813 afx_msg void OnRButtonUp(UINT nFlags, CPoint ptClient);
1814 afx_msg BOOL OnMouseWheel(UINT nFlags, int16_t zDelta, CPoint pt);
1815 afx_msg void OnSize(UINT nType, int32_t cx, int32_t cy);
1816 virtual void PreSubclassWindow();
1817 virtual BOOL PreTranslateMessage(MSG* pMsg);
1818 virtual void OnDraw(CDC* /*pDC*/);
1819 afx_msg void OnMouseMove(UINT nFlags, CPoint ptClient);
1820 afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
1821 afx_msg void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags);
1822 afx_msg void OnTimer(UINT_PTR nIDEvent);
1823 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
1824 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
1825 afx_msg void OnDropFiles(HDROP hDropInfo);
1826 afx_msg void OnMouseLeave();
1827 afx_msg void OnMouseHover(UINT nFlags, CPoint point);
1828 afx_msg void OnEnterIdle(UINT nWhy, CWnd* pWho);
1829
1830 public:
1831 virtual void OnInitialUpdate();
1832 afx_msg void OnFileOpen();
1833 afx_msg void OnUpdateFileOpen(CCmdUI* pCmdUI);
1834 afx_msg void OnFileIO(UINT uID);
1835 afx_msg void OnUpdateFileIO(CCmdUI* pCmdUI);
1836 afx_msg void OnMoreMenu();
1837
1838 afx_msg void OnSetZoomMode(UINT uID);
1839 afx_msg void OnSetZoomFitMode();
1840 afx_msg void OnSetPanningMode();
1841 afx_msg void OnShowScrollBar();
1842 afx_msg void OnShowStatusBar();
1843 afx_msg void OnUpdateZoomIn(CCmdUI* pCmdUI);
1844 afx_msg void OnUpdateZoomOut(CCmdUI* pCmdUI);
1845 afx_msg void OnUpdateZoomFit(CCmdUI* pCmdUI);
1846 afx_msg void OnUpdatePanningMode(CCmdUI* pCmdUI);
1847 afx_msg void OnUpdateShowScrollBarMode(CCmdUI* pCmdUI);
1848 afx_msg void OnUpdateShowStatusBarMode(CCmdUI* pCmdUI);
1849
1850 afx_msg void OnMeasurementDistance();
1851 afx_msg void OnUpdateMeasurement(CCmdUI* pCmdUI);
1852 afx_msg void OnSetMeasureMode(UINT uID);
1853
1854 afx_msg void OnLayers();
1855 afx_msg void OnSetLayers(UINT uID);
1856 afx_msg void OnUpdateLayers(CCmdUI* pCmdUI);
1857
1858 afx_msg void OnSyncView();
1859 afx_msg void OnSetSyncView(UINT uID);
1860 afx_msg void OnUpdateSyncView(CCmdUI* pCmdUI);
1861
1862 afx_msg void OnSetSyncWindow(UINT uID);
1863
1864 afx_msg void OnShowGrid();
1865 afx_msg void OnUpdateShowGrid(CCmdUI* pCmdUI);
1866
1867 afx_msg void OnShowCrosshair();
1868 afx_msg void OnUpdateShowCrosshair(CCmdUI* pCmdUI);
1869
1870 afx_msg void OnShowImageCoordinateOnCursor();
1871 afx_msg void OnUpdateShowImageCoordinateOnCursor(CCmdUI* pCmdUI);
1872
1873 afx_msg void OnSetCanvasColor();
1874 afx_msg void OnUpdateSetCanvasColor(CCmdUI* pCmdUI);
1875
1876 afx_msg void OnSetPixelAccuracy();
1877 afx_msg void OnUpdateSetPixelAccuracy(CCmdUI* pCmdUI);
1878
1879 afx_msg void OnInformationHelp();
1880
1881 afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
1882 afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
1883
1884
1885 afx_msg void OnSetFocus(CWnd* pOldWnd);
1886 afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
1887 afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);
1888 afx_msg LRESULT OnMessageRunOnMainThread(WPARAM wParam, LPARAM lParam);
1889 afx_msg LRESULT OnMessageRunOnMainThreadPost(WPARAM wParam, LPARAM lParam);
1890 afx_msg void OnClipboardUpdate();
1891
1892 afx_msg void OnDestroy();
1893
1894 BOOL OnNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult);
1895 virtual void PostNcDestroy();
1896
1897 protected:
1898 virtual const CResult MoveNamedLayerUp(int32_t i32LayerIndex);
1899 virtual const CResult MoveNamedLayerDown(int32_t i32LayerIndex);
1900
1901 virtual const CResult InternalAssign(const CGUIViewBase& rhs) override;
1902
1903 virtual const CResult InternalConvertLayerToFigure(Foundation::CFLFigureArray& flfaResult);
1904
1905 virtual const CResult PreDestroy() override;
1906
1907 virtual const CResult DrawBackground();
1908
1909 virtual const CResult InitializeDIB();
1910 virtual const CResult TerminateDIB();
1911 virtual const CResult CommitDraw(CDC* pDC);
1912 virtual const CResult SetDefaultView();
1913
1914 EMenuItemViewDrawing GetLastMenuStatus() const;
1915 void SetLastMenuStatus(EMenuItemViewDrawing eMenuItemViewDrawing);
1916
1917 CGUIViewImageLayer* GetObjectLayer() const;
1918
1919 LRESULT OnCursorPosChanged(WPARAM wParam, LPARAM lParam);
1920 LRESULT OnScaleChanged(WPARAM wParam, LPARAM lParam);
1921 LRESULT OnLazyBroadcastScaleChanged(WPARAM wParam, LPARAM lParam);
1922 LRESULT OnUpdateStatusBar(WPARAM wParam, LPARAM lParam);
1923 LRESULT OnPaneDialogClosed(WPARAM wParam, LPARAM lParam);
1924
1925 void BroadcastOffsetChanged();
1926 void BroadcastScaleChanged();
1927
1928 virtual void OnReceiveBroadcast(const Base::CBroadcastMessage* pMessage) override;
1929
1930 void SetStatusBarText(CGUIViewDrawing::EStatusPaneItem eIndex, LPCTSTR lpszText);
1931 void SetStatusBarText(CGUIViewDrawing::EStatusPaneItem eIndex, int32_t i32Value);
1932 void SetStatusBarText(CGUIViewDrawing::EStatusPaneItem eIndex, int64_t i64Value);
1933 void SetStatusBarText(CGUIViewDrawing::EStatusPaneItem eIndex, double f64Value, int32_t i32DecimalPlaces = 3);
1934
1935 virtual const CResult RestoreButtonInfo();
1936 virtual void UpdateToolBarButtons() override;
1937 virtual void UpdateToolBarButtonVisible() override;
1938
1939 const CResult SetPixelAccuracy(double f64PixelAccuracyX, double f64PixelAccuracyY, Foundation::ELengthUnit eLenUnit, bool bWriteFile);
1940
1941 void SetMinMaxScale();
1942 void SetZoomFitMode(bool bSet);
1943 bool IsZoomFitMode();
1944
1945 virtual bool DrawLayerBegin();
1946 virtual bool DrawLayerEnd();
1947 virtual bool DrawGrid();
1948 virtual bool DrawLayerElements();
1949 virtual bool DrawMiniMap();
1950 virtual bool DrawCrosshair();
1951
1952 virtual const CResult CreateDialogOfSetDecimalPlacesOfCoordinate();
1953 virtual const CResult CreateDialogOfPixelAccuracy();
1954 virtual const CResult CreateDialogOfSetViewCenterAndScale();
1955 virtual const CResult CreateDialogOfSetScale();
1956 virtual const CResult CreateDialogOfLayerProperties();
1957 virtual const CResult CreateDialogLoadFigureDxf(const std::vector<Base::CFLString<wchar_t>>& vctDxfPath);
1958
1959 virtual bool IsLayerPropertiesDialogVisible() const;
1960 virtual void UpdateAllLayersGeometryFlag(bool bUpdate);
1961 virtual void ClearAllLayersOffscreenD2DGeometry();
1962 virtual void BeginOffsetOnlyChanging();
1963 virtual void EndOffsetOnlyChanging();
1964
1965 virtual const CResult SynchronizeView(CGUIViewDrawing* pTargetView, EViewDrawingSyncOption eSyncOption);
1966 virtual const CResult DesynchronizeView(CGUIViewDrawing* pTargetView, EViewDrawingSyncOption eSyncOption);
1967 virtual const CResult DesynchronizeViewAll(EViewDrawingSyncOption eSyncOption);
1968
1969 virtual void UpdateDragAndDropState();
1970
1971 DeclareGetClassType();
1972
1973 protected:
1974 CGUIViewImageMiniMap* m_pMiniMap;
1975 CGUIManagerContextMenuViewDrawing* m_pMgrContextMenu;
1976 CGUIManagerViewDrawingObject* m_pMgrViewDrawingObject;
1977
1978
1979 /* Parent Window*/
1980 CWnd* m_pParentWnd;
1981
1982 /* Scale*/
1983 double m_f64Scale;
1984 double m_f64MinScale;
1985 double m_f64MaxScale;
1986 EZoomMode m_eZoomMode;
1987 uint32_t m_u32ForceZoomFitCount;
1988
1989 /* Scale & Offset*/
1990 bool m_bZoomFitMode;
1991 bool m_bPanningMode;
1992 bool m_bRButtonDragPanningMode;
1993
1994 /* Offset*/
1995 Foundation::CFLPoint<double> m_flpOffset;
1996 Foundation::CFLPoint<double> m_flpOffsetOnBegin;
1997 bool m_bOffsetOnlyChanging;
1998
1999
2000 /* View Properties*/
2001 int32_t m_i32CanvasLeft;
2002 int32_t m_i32CanvasTop;
2003 int32_t m_i32CanvasWidth;
2004 int32_t m_i32CanvasHeight;
2005 COLORREF m_clrClientFillColor;
2006 EGUIViewDrawingTeachingMode m_eTeachingMode;
2007
2008 /* Bitmap & DC*/
2009 typedef struct sDibInfo
2010 {
2011 BITMAPINFOHEADER header;
2012 RGBQUAD acolors[256];
2013 }
2014 SDibInfo;
2015
2016 SDibInfo m_bitmapInfo;
2017 HBITMAP m_hDibSection;
2018
2019 uint8_t* m_pDibBase;
2020 uint8_t* m_pOffBuffer;
2021
2022 CDC m_dcDIB;
2023 HDC m_hdcDIB;
2024 HANDLE m_hDrawDIB;
2025 HGDIOBJ m_hPreviousSelectedGdiObj;
2026
2027 /* View Status*/
2028 bool m_bBreak;
2029 bool m_bShiftKeyDown;
2030 bool m_bNCLButtonDown;
2031 bool m_bContextMenuFromRButtonUp;
2032 bool m_bOnSize;
2033 bool m_bKeyDown;
2034 bool m_bEnableSystemMenuOnFileDialog;
2035 int16_t m_i16DownKey;
2036
2037 int32_t m_i32LastNCPointX;
2038 int32_t m_i32LastNCPointY;
2039
2040 bool m_bEnableSelection;
2041
2042 SViewImageObjectSettings m_sVioSettings;
2043 SViofSettings m_sViofSettings;
2044 Base::CFLString<wchar_t> m_strFormatForViofD;
2045 Base::CFLString<wchar_t> m_strFormatForViofF;
2046 Base::CFLString<wchar_t> m_strFormatForViofL;
2047 Base::CFLString<wchar_t> m_strFormatForViofLL;
2048
2049 bool m_bGrayFillColor;
2050 bool m_bMouseOnView;
2051 bool m_bSetFileNameOnStatusBar;
2052
2053 /* Mouse Point*/
2054 Foundation::CFLPoint<int32_t> m_flpLastCursorClient;
2055 Foundation::CFLPoint<int32_t> m_flpLastDraggingPositionClient;
2056 Foundation::CFLPoint<double> m_flpTeachingCursorImage;
2057 Foundation::CFLPoint<double> m_flpRButtonUpCursorImage;
2058 Foundation::CFLPoint<double> m_flpCursorImageLBtnDown;
2059 Foundation::CFLPoint<double> m_flpCursorImageMBtnDown;
2060 Foundation::CFLPoint<double> m_flpCursorImageRBtnDown;
2061 CPoint m_ptPrevClient;
2062 CPoint m_ptClientRBtnDown;
2063 CPoint m_ptClientLBtnDown;
2064 int32_t m_i32MouseDragDistance;
2065 int32_t m_i32MouseDragDistanceThreshold;
2066
2067 /* Cursor*/
2068 UINT m_nCursor;
2069
2070 /* Multi selection*/
2071 bool m_bShowMultiSelectRect;
2072 bool m_bShowMultiSelectCandidateRect;
2073 Foundation::CFLRect<double> m_flrMultiSelectRect;
2074 Foundation::CFLRect<double> m_flrSelectionCandidate;
2075
2076 /* Pixel Accuracy*/
2077 double m_f64PixelAccuracyX;
2078 double m_f64PixelAccuracyY;
2079 Foundation::ELengthUnit m_eLengthUnit;
2080
2081 uint8_t m_u8DecimalPlacesOfCoordinate;
2082
2083 bool m_bToBroadcastScaleChanged;
2084
2085 CD2DObject m_d2dObject;
2086
2087 /* Synchronize view*/
2088 std::map<EViewDrawingSyncOption, CGUIViewDrawing*> m_mapRootSyncView;
2089
2090 /* Layers*/
2091 std::vector<CGUIViewImageLayer*> m_vctDrawingLayers;
2092 std::vector<CGUIViewImageLayer*> m_vctDrawingLayersNamed;
2093 std::unordered_map<std::wstring, CGUIViewImageLayer*> m_mapDrawingLayers;
2094
2095 CGUIViewImageLayer* m_pLayerInfoOnCursor;
2096
2097 CGUIViewImageLayer* m_pViewObjectLayer;
2098 CGUIViewImageLayer* m_pViewObjectHoverLayer;
2099 CGUIViewImageLayer* m_pViewObjectModifyPreviewLayer;
2100
2101 /* Key */
2102 bool m_bCtrlKeyDown;
2103
2104 EGUIViewDrawingHitArea m_eHitArea;
2105 EGUIViewDrawingHitArea m_eHitAreaOnLButtonDown;
2106
2107 bool m_bShowImage;
2108 bool m_bShowGrid;
2109 bool m_bShowCrosshair;
2110 bool m_bShowImageCoordinateOnCursor;
2111 bool m_bFirstShowScrollBar;
2112 bool m_bRotateFigureZOrder;
2113
2114 /* Popup Menu*/
2115 EMenuItemViewDrawing m_eLastMenuStatus;
2116 EMenuItemViewDrawing m_eLastMenuStatusBefore;
2117
2118 /* Dialog */
2119 CGUIPaneDialog* m_pPaneDlgLayerProperties;
2120 CGUIDialogLayerProperties* m_pDlgLayerProperties;
2121 CGUIPaneDialog* m_pPaneDlgFigureGbrAttribute;
2122
2123
2124 friend class CInternalViewImage;
2125 friend class CGUIManagerContextMenuViewDrawing;
2126 friend class CGUIViewImageMiniMap;
2127 friend class CGUIPropertyGridPropertyViewImageList;
2128 friend class CGUIPropertyItemViewImageList;
2129 friend class CGUIPropertyGridPropertyViewFigure;
2130 friend class CGUIPropertyGridPropertyCategory;
2131 friend class CGUIPropertyItemViewFigure;
2132 friend class CGUIChildFrameImage;
2133 friend class CGUIViewImageLayer;
2134 friend class CGUIViewImageLayerObject;
2135 friend class CGUIManagerView;
2136 friend class CGUIManager;
2137 friend class CInternalViewManager;
2138 friend class CInternalCanvas;
2139 friend class CGUIManagerViewImageObject;
2140 friend class CGUIManagerDrawingViewImageObject;
2141 friend class CGUIManagerContextMenuViewImageObject;
2142 friend class CGUIViewImageCanvas;
2143 friend class CGUIViewToolBar;
2144 friend class CGUIMainFrame;
2145 friend class CGUIDialogCreateStencil;
2146 friend class CGUIDialogImageInfo;
2147 friend class CGUIDialogImagePageList;
2148 friend class CGUIDialogLayerProperties;
2149 friend class CGUIDialogLayerProperties;
2150 friend class CGUIDialogLoadRawImageSetting;
2151 friend class CGUIDialogLoadRawImageMultiSetting;
2152 friend class CGUIDialogHelp;
2153 friend class CGUIFixedViewDeclaration;
2154 friend class CGUIManagerViewDrawingObject;
2155 };
2156 }
2157}
2158
Template type array class.
Definition FLArray.h:71
FLIMaging's image class.
Definition FLImage.h:35
Template type string class.
Definition FLString.h:34
FLImaging module execution result object.
Definition ResultsDef.h:1704
A base class representing array of figure.
Definition FLFigureArray.h:27
A base class of classes representing figures.
Definition FLFigure.h:27
A class representing a point.
Definition FLPoint.h:24
A class representing a rectangle.
Definition FLRect.h:24
A class of fixed view declaration.
Definition GUIFixedViewDeclaration.h:31
Manager class responsible for the creation, destruction, and overall management of all GUI view insta...
Definition GUIManagerView.h:58
Image View list property item class.
Definition GUIPropertyItemViewImageList.h:31
double GetPixelAccuracyX() const
Returns the Pixel Accuracy for the X coordinate of the ImageView.
virtual const CResult Save(const wchar_t *pWcsFileNameWithPath=nullptr)
Save the drawing.
virtual FLImaging::Foundation::CFLPoint< double > GetCursorPosOnLButtonDown() const
Returns the mouse cursor position at the moment the left mouse button is pressed.
virtual const CResult ZoomAtCenter(double f64Scale)
Sets the image view scale to f64Scale while maintaining the current center coordinates.
virtual void ShowCrosshair(bool bShow)
Sets whether to show/hide the crosshair.
virtual void ShowImageCoordinateOnCursor(bool bShow)
Sets whether image coordinates are displayed at the mouse cursor position in Drawing view.
const CResult SetPixelAccuracyY(double f64PixelAccuracyY)
Sets the Pixel Accuracy Y of the ImageView.
virtual const CResult SetLayerAutoClearMode(int32_t i32LayerIndex, ELayerAutoClearMode eMode, bool bSet)
Sets the automatic clear mode of the layer.
const CResult CaptureScreen(Base::CFLImage &fliImage, bool bIncludeFrame=false)
Capture the current screen.
const CResult ClearMeasurement()
Removes all Measurement objects in the ImageView.
virtual Foundation::CFLPoint< int32_t > ConvertImageCoordToClientCoord(double f64X, double f64Y) const
Convert image coordinates to client coordinates.
virtual void SetCanvasColor(COLORREF clrCanvas)
Sets the drawing view's background color.
virtual const CResult SetLayerAutoClearMode(ELayerAutoClearMode eMode, bool bSet)
Sets the auto clear mode for all layers at once. It is applied to both Layers identified by name and ...
virtual const CResult ShowToolBar(bool bShow) override
Sets whether to show/hide ToolBar.
@ EMaxLayerCount
Maximum number of layers.
Definition GUIViewDrawing.h:211
virtual void ClearAllLayers()
Clear the drawing objects on the Layers.
const CResult SetPixelAccuracyX(double f64PixelAccuracyX)
Sets the Pixel Accuracy X of the ImageView.
const CResult ShowStatusBar(bool bShow)
Sets whether to show/hide StatusBar.
const CResult SetPixelAccuracy(double f64PixelAccuracyX, double f64PixelAccuracyY)
Sets the Pixel Accuracy X, Y of the ImageView.
Foundation::ELengthUnit GetPixelAccuracyUnit() const
Retrieves the units for Pixel Accuracy of the ImageView.
virtual Foundation::CFLPoint< double > ConvertCanvasCoordToImageCoord(int32_t i32X, int32_t i32Y) const
Convert canvas coordinates to image coordinates.
virtual void ShowGrid(bool bShow)
Sets whether to show/hide the grid on drawing view.
virtual const CResult SetLayerAutoClearMode(CGUIViewImageLayer *pLayer, ELayerAutoClearMode eMode, bool bSet)
Sets the automatic clear mode of the layer.
virtual const CResult SetDecimalPlacesOfCoordinate(uint8_t u8DecimalPlaces=2)
Sets the number of decimal places displayed when showing image coordinates at the mouse cursor positi...
CGUIViewDrawing(const CGUIViewDrawing *pRhs)
Copy constructor by pointer.
virtual uint8_t GetDecimalPlacesOfCoordinate() const
Retrieves the number of decimal places displayed for the image coordinates at the mouse cursor positi...
virtual Foundation::CFLPoint< double > ConvertClientCoordToImageCoord(const Foundation::CFLPoint< int32_t > &point) const
Convert client coordinates to image coordinates.
virtual Foundation::CFLPoint< int32_t > ConvertCanvasCoordToClientCoord(const Foundation::CFLPoint< int32_t > &flp) const
Convert canvas coordinates to client coordinates.
virtual bool IsSelectionEnabled() const
Determines whether selection is enabled or disabled.
static void GetViewDrawingContextMenuChildren(FLImaging::GUI::EMenuItemViewDrawing eMenu, Base::CFLArray< int32_t > &flaEnum)
Retrieves child menu items of the specified parent context menu item. If eMenu is a parent menu item ...
virtual const CResult SelectMenuItem(EMenuItemViewDrawing eMenuItemViewDrawing)
Performs a command on the selected menu item.
virtual Foundation::CFLRect< int32_t > ConvertImageCoordToCanvasCoord(const Foundation::CFLRect< double > &flr) const
Convert image coordinates to canvas coordinates.
bool IsViewDrawingContextMenuAvailable(FLImaging::GUI::EMenuItemViewDrawing eMenu) const
Checks whether the specified context menu item is currently available in the Image view.
const CResult ShowScrollBar(bool bShow)
Sets whether to show/hide ScrollBar.
CGUIViewImageLayer * GetNamedLayer(int32_t i32Index) const
Retrieves the layer defined by name using its index. The index is defined in the order the layers are...
const CResult SetPixelAccuracyUnit(Foundation::ELengthUnit eLenUnit)
Sets the units for the Pixel Accuracy of the ImageView.
virtual double GetScale() const
Returns the current scale of the ImageView.
CGUIViewDrawing(const CGUIViewDrawing &rhs)
Copy constructor by reference.
void EnableAvailableViewDrawingContextMenuAll(bool bEnable)
Enables or disables all items in the available context menu in the Image view.
const CResult DesynchronizePointOfView(CGUIViewDrawing *pTargetView)
Turn off viewpoint synchronization for the parameter's view.
virtual const CResult Load(Base::CFLArray< Base::CFLString< wchar_t > > &flaFilePathToLoad, EViewDrawingLoadOption eOption=EViewDrawingLoadOption_Load)
Load drawing files included in the list.
EGUIViewDrawingHitArea GetHitArea() const
Retrieves the Hit area for the current mouse position in the ImageView.
virtual Foundation::CFLPoint< double > GetViewCenterImageCoord() const
Returns the image coordinates corresponding to the center position of the image view.
void SetAvailableViewDrawingContextMenu(const FLImaging::GUI::EMenuItemViewDrawing *pArrEnum, int64_t i64Count)
Clears the current available context menu items and sets the specified items in the Image view.
virtual void SetManagerContextMenu(const CGUIManagerContextMenuViewDrawing *pMgr)
Sets the context menu manager object.
virtual bool GetLayerAutoClearMode(const CGUIViewImageLayer *pLayer, ELayerAutoClearMode eMode) const
Retrieves the auto-clear status of the layer for the specified mode.
const CResult CaptureScreen(Base::CFLImage *pFliImage, bool bIncludeFrame=false)
Capture the current screen.
virtual void EnableSelection(bool bEnable)
Sets whether to enable or disable selection when a mouse drag event occurs.
virtual Foundation::CFLRect< int32_t > ConvertCanvasCoordToClientCoord(const Foundation::CFLRect< int32_t > &flr) const
Convert canvas coordinates to client coordinates.
virtual const CResult Load(const wchar_t *pWcsPath=nullptr, EViewDrawingLoadOption eOption=EViewDrawingLoadOption_Load)
Load drawing files into the view.
virtual Foundation::CFLRect< int32_t > ConvertImageCoordToClientCoord(const Foundation::CFLRect< double > &flr) const
Convert image coordinates to client coordinates.
CGUIViewImageLayer * GetLayer(int32_t i32Index) const
Retrieves the layer pointer.
virtual EGUIViewDrawingTeachingMode GetTeachingMode() const
Return the teaching mode set for the current view.
virtual const CResult ZoomFit()
Scales the drawing view so that the image is sized to fit the drawing view.
Foundation::CFLPoint< double > GetOffset() const
Retrieves the current offset of the drawing view. When panning or changing the scale,...
virtual EZoomMode GetZoomMode() const
Return the current zoom mode set for the left mouse button click action.
const CResult GetPixelAccuracy(double &f64PixelAccuracyX, double &f64PixelAccuracyY) const
Retrieves the Pixel Accuracy X, Y of the ImageView.
virtual void SetManagerViewDrawingObject(const CGUIManagerViewDrawingObject *pMgr)
Sets the object manager object.
static CGUIViewDrawing * CreateView(int32_t i32L, int32_t i32T, int32_t i32R, int32_t i32B, bool bStandalone=false)
Create a new drawing view and return pointer.
static CGUIViewDrawing * CreateView()
Create a new drawing view and return pointer.
const CResult SynchronizePointOfView(CGUIViewDrawing *pTargetView)
Synchronizes the view point of the parameter and the current view.
int32_t GetNamedLayerCount() const
Returns the number of layers defined by name.
virtual bool IsPanningMode() const
Return whether the current mouse drag action is in panning mode.
virtual Foundation::CFLPoint< int32_t > ConvertClientCoordToCanvasCoord(const Foundation::CFLPoint< int32_t > &flp) const
Convert client coordinates to canvas coordinates.
CGUIViewImageLayer * GetLayerByName(const std::wstring &strLayerName)
Retrieves the layer pointer whose the name is same as the parameter strLayerName.
virtual const CResult SetViewCenterAndScale(const Foundation::CFLPoint< double > &flpImageCoord, double f64Scale)
Sets the view center to the specified coordinate flpImageCoord, then sets the image view scale to f64...
bool DoesLayerExist(const std::wstring &strLayerName) const
Returns whether a layer with the specified name exists.
void GetAvailableViewDrawingContextMenu(Base::CFLArray< int32_t > &flaEnum) const
Retrieves the current available context menu items in the Image view.
virtual const CResult SetViewCenter(const Foundation::CFLPoint< double > &flpImageCoord)
Sets the view center to the specified coordinate flpImageCoord.
const CResult ResignRootSyncView(EViewDrawingSyncOption eViewDrawingSyncOption)
If the root view of the synchronized views for a specific option is the current drawing view,...
virtual bool IsCrosshairVisible() const
Determines whether the crosshair is shown or hidden.
virtual CGUIManagerContextMenuViewDrawing * GetManagerContextMenu() const
Retrieves the context menu manager object.
void RemoveAvailableViewDrawingContextMenu(const FLImaging::GUI::EMenuItemViewDrawing *pArrEnum, int64_t i64Count)
Removes specified items from the current available context menu in the Image view.
const CResult DeleteLayerByName(const std::wstring &strLayerName)
Deletes the layer object with the specified name and releases its memory.
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback function. A function that receives a BroadcastMessage.
bool IsSynchronized(EViewDrawingSyncOption eViewDrawingSyncOption) const
Returns whether the current drawing view is synchronized with another drawing view for a particular o...
virtual Foundation::CFLRect< double > ConvertClientCoordToImageCoord(const Foundation::CFLRect< int32_t > &rect) const
Convert client coordinates to image coordinates.
virtual bool IsGridVisible() const
Determines whether the grid on drawing view is shown or hidden.
virtual CGUIManagerViewDrawingObject * GetManagerViewDrawingObject() const
Retrieves the object manager object.
virtual const CResult ZoomFitToLayer(int32_t i32LayerIndex)
Adjusts the scale and offset so that the shapes and text drawn over the selected layer fill the scree...
virtual void SetPanningMode(bool bSet)
Set or unset the mouse drag action to panning mode.
virtual FLImaging::Foundation::CFLPoint< double > GetCursorPosOnRButtonDown() const
Returns the mouse cursor position at the moment the right mouse button is pressed.
void AddAvailableViewDrawingContextMenu(const FLImaging::GUI::EMenuItemViewDrawing *pArrEnum, int64_t i64Count)
Adds specified items to the current available context menu in the Image view.
virtual COLORREF GetCanvasColor() const
Retrieves the background color of the drawing view.
const CResult GetPixelAccuracy(double *pF64PixelAccuracyX, double *pF64PixelAccuracyY) const
Retrieves the Pixel Accuracy X, Y of the ImageView.
const CResult DesynchronizePointOfViewAll()
Desynchronize the current view's viewpoint.
virtual FLImaging::Foundation::CFLPoint< double > GetCursorPosOnMButtonDown() const
Returns the mouse cursor position at the moment the middle mouse button is pressed.
virtual Foundation::CFLPoint< int32_t > ConvertCanvasCoordToClientCoord(int32_t i32X, int32_t i32Y) const
Convert canvas coordinates to client coordinates.
virtual Foundation::CFLRect< int32_t > ConvertClientCoordToCanvasCoord(const Foundation::CFLRect< int32_t > &flr) const
Convert client coordinates to canvas coordinates.
virtual Foundation::CFLPoint< int32_t > ConvertClientCoordToCanvasCoord(int32_t i32X, int32_t i32Y) const
Convert client coordinates to canvas coordinates.
virtual Foundation::CFLPoint< double > ConvertClientCoordToImageCoord(int32_t i32X, int32_t i32Y) const
Convert client coordinates to image coordinates.
virtual Foundation::CFLRect< double > ConvertCanvasCoordToImageCoord(const Foundation::CFLRect< int32_t > &flr) const
Convert canvas coordinates to image coordinates.
CGUIViewImageLayer * GetLayerByName(const std::wstring &strLayerName, const CGUIViewImageLayer *pLayerRTTI)
Retrieves the layer pointer whose the name is same as the parameter strLayerName. If the layer does n...
virtual const CResult ClearFile()
Clear this view.
virtual Foundation::CFLPoint< int32_t > ConvertImageCoordToCanvasCoord(const Foundation::CFLPoint< double > &flp) const
Convert image coordinates to canvas coordinates.
EStatusPaneItem
Status Pane Item.
Definition GUIViewDrawing.h:97
@ EStatusPaneItem_CursorXValue
Mouse cursor X coordinate value.
Definition GUIViewDrawing.h:176
@ EStatusPaneItem_CursorXCaption
Mouse cursor X coordinate caption.
Definition GUIViewDrawing.h:168
@ EStatusPaneItem_WidthValue
Width value.
Definition GUIViewDrawing.h:128
@ EStatusPaneItem_FileNameCaption
File name caption item.
Definition GUIViewDrawing.h:104
@ EStatusPaneItem_WidthCaption
Width caption.
Definition GUIViewDrawing.h:120
@ EStatusPaneItem_ZoomCaption
Zoom caption.
Definition GUIViewDrawing.h:152
@ EStatusPaneItem_ItemCount
enum item count
Definition GUIViewDrawing.h:200
@ EStatusPaneItem_FileNameValue
File name value item.
Definition GUIViewDrawing.h:112
@ EStatusPaneItem_ZoomValue
Zoom value.
Definition GUIViewDrawing.h:160
@ EStatusPaneItem_CursorYValue
Mouse cursor Y coordinate value.
Definition GUIViewDrawing.h:192
@ EStatusPaneItem_HeightCaption
Height caption.
Definition GUIViewDrawing.h:136
@ EStatusPaneItem_HeightValue
Height value.
Definition GUIViewDrawing.h:144
@ EStatusPaneItem_CursorYCaption
Mouse cursor Y coordinate caption.
Definition GUIViewDrawing.h:184
virtual Foundation::CFLPoint< int32_t > ConvertImageCoordToCanvasCoord(double f64X, double f64Y) const
Convert image coordinates to canvas coordinates.
double GetPixelAccuracyY() const
Retrieves the Pixel Accuracy X of the ImageView.
virtual Foundation::CFLPoint< double > ConvertCanvasCoordToImageCoord(const Foundation::CFLPoint< int32_t > &flp) const
Convert canvas coordinates to image coordinates.
CGUIViewDrawing()
Default constructor.
virtual const CResult ZoomFitToLayer(const CGUIViewImageLayer *pLayer)
Adjusts the scale and offset so that the shapes and text drawn over the selected layer fill the scree...
virtual bool IsImageCoordinateOnCursorVisible() const
Determines whether the image coordinates are displayed at the mouse cursor position in the drawing vi...
virtual const CResult SetTeachingMode(EGUIViewDrawingTeachingMode eTeachingMode)
Set or unset the current view to a mode for teaching shapes, measurements, etc.
virtual bool IsImageMiniMapVisible() const
Determines whether the minimap is shown or hidden.
virtual void SetZoomMode(EZoomMode eZoomMode)
Set or unset the Zoom mode for the left mouse button click action.
virtual void ShowImageMiniMap(bool bShow)
Sets whether to show/hide the minimap.
virtual Foundation::CFLPoint< int32_t > ConvertImageCoordToClientCoord(const Foundation::CFLPoint< double > &flp) const
Convert image coordinates to client coordinates.
double GetZoomFitScale(double f64CanvasWidth, double f64CanvasHeight) const
Retrieves the scale in zoom fit state according to the width and height of the image and the width an...
CGUIViewDrawing * GetRootSyncView(EViewDrawingSyncOption eViewDrawingSyncOption) const
Retrieves the root view synchronized with the current drawing view for a specific option.
virtual bool GetLayerAutoClearMode(int32_t i32LayerIndex, ELayerAutoClearMode eMode) const
Retrieves the auto-clear status of the layer for the specified mode.
A class of image view layer that can be drawn figures or text.
Definition GUIViewImageLayer.h:45
Definition AESCryptography.h:18
Definition AlgorithmBase.h:16
ELengthUnit
Indicates a unit of length.
Definition DefinitionsFoundation.h:77
Definition D2DObject.h:12
EMenuItemViewDrawing
Drawing View Menu Item.
Definition DefinitionsGUIViewDrawing.h:29
EViewDrawingLoadOption
Drawing View Load Options Example. The following code will load folder with recursive....
Definition DefinitionsGUIViewDrawing.h:900
@ EViewDrawingLoadOption_Load
Default Load.
Definition DefinitionsGUIViewDrawing.h:915
EGUIViewDrawingTeachingMode
Teaching mode in Drawing view.
Definition DefinitionsGUIViewDrawing.h:728
EGUIViewDrawingHitArea
The area where the mouse is located on the Drawing view.
Definition DefinitionsGUIViewDrawing.h:765
ELayerAutoClearMode
In auto clear mode of the image view layer, lists cases in which auto clear of the layer is applied a...
Definition DefinitionsGUI.h:9839
EViewDrawingSyncOption
Drawing view synchronization options.
Definition DefinitionsGUIViewDrawing.h:996
EZoomMode
Zoom in and out mode.
Definition DefinitionsGUI.h:9565