FLImaging 6.5.8.1
GUIPropertyItemFigure.h
1#pragma once
10#include "GUIPropertyItemBase.h"
11#include "GUIDefinitions.h"
12
13#include <future>
14#include <deque>
15
17namespace FLImaging
18{
20 namespace GUI
21 {
22 class CGUIPropertyItemViewListBase;
23 class CGUIViewImageBase;
24
33 {
41
49
57
65
73
81
89
97
105
113
121
129
137
145
153
161
169
177
185
186
194
202
210
218 };
219
221 {
222 return static_cast<EAvailableFigureDeclType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
223 }
224
226 {
227 return static_cast<EAvailableFigureDeclType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
228 }
229
231 {
232 return a = a | b;
233 }
234
236 {
237 return a = a & b;
238 }
239
241 {
242 return static_cast<EAvailableFigureDeclType>(~static_cast<int64_t>(a));
243 }
244
245 inline bool operator!(EAvailableFigureDeclType a)
246 {
247 return static_cast<bool>(!static_cast<int64_t>(a));
248 }
249
258 {
266
274
282
290
298
306
314 };
315
317 {
318 return static_cast<EAvailableFigureTemplateType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
319 }
320
322 {
323 return static_cast<EAvailableFigureTemplateType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
324 }
325
327 {
328 return a = a | b;
329 }
330
332 {
333 return a = a & b;
334 }
335
337 {
338 return static_cast<EAvailableFigureTemplateType>(~static_cast<int64_t>(a));
339 }
340
341 inline bool operator!(EAvailableFigureTemplateType a)
342 {
343 return static_cast<bool>(!static_cast<int64_t>(a));
344 }
345
354 {
362
370
372 // Not supported yet
373
381
390
398
406
414
422
430 };
431
433 {
434 return static_cast<EAvailableFigureTransformType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
435 }
436
438 {
439 return static_cast<EAvailableFigureTransformType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
440 }
441
443 {
444 return a = a | b;
445 }
446
448 {
449 return a = a & b;
450 }
451
453 {
454 return static_cast<EAvailableFigureTransformType>(~static_cast<int64_t>(a));
455 }
456
457 inline bool operator!(EAvailableFigureTransformType a)
458 {
459 return static_cast<bool>(!static_cast<int64_t>(a));
460 }
461
470 {
471 public:
479
487
499
507
521
533
545
558 virtual bool SetAvailableFigureDeclType(EAvailableFigureDeclType eAvailableFigureDeclType);
559
571
584 virtual bool SetAvailableFigureTemplateType(EAvailableFigureTemplateType eAvailableFigureTemplateType);
585
597
610 virtual bool SetAvailableFigureTransformType(EAvailableFigureTransformType eAvailableFigureTransformType);
611
623
636 virtual bool IsValidValue(Base::CFLString<wchar_t> flstrValue) const;
637
650 virtual bool IsValidValue(const FLImaging::Foundation::CFLFigure* pFlf) const;
651
669
682 virtual bool IsValidValue(FLImaging::Foundation::EFigureDeclType eFigureDeclType) const;
683
696 virtual bool IsValidValue(FLImaging::Foundation::EFigureTemplateType eFigureTemplateType) const;
697
717 virtual const CResult MakeValidFigure(Base::CFLString<wchar_t> strValue, Base::CFLString<wchar_t>& strValidFigure, bool bMsgBox = false);
718
732
744
759 virtual bool SetRealtimeEventCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
760
771 virtual CPropertyCallback* GetRealtimeEventCallback() const;
772
787 virtual bool ShowCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
788
799 virtual CPropertyCallback* GetShowCallback() const;
800
815 virtual bool SetConfirmCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
816
827 virtual CPropertyCallback* GetConfirmCallback() const;
828
843 virtual bool SetCancelCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
844
855 virtual CPropertyCallback* GetCancelCallback() const;
856
871 virtual bool SetDeleteCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
872
883 virtual CPropertyCallback* GetDeleteCallback() const;
884
895 virtual void SetInstantApplyMode(bool bSet, bool bFixMode);
896
905 virtual bool IsInstantApplyMode() const;
906
915 virtual bool IsInstantApplyModeFixed() const;
916
929 virtual const CResult LoadFigure(const wchar_t* pWcsPath = nullptr);
930
943 virtual const CResult SaveFigure(const wchar_t* pWcsFileNameWithPath = nullptr) const;
944
953 virtual void SetFigureAutoHideMode(bool bAutoHide);
954
963 virtual bool GetFigureAutoHideMode() const;
964
975 virtual void ShowFigure(bool bShow, bool bCreate = true);
976
985 virtual bool IsFigureVisible() const;
986
995 virtual void SetView(const CGUIViewImageBase* pView);
996
1020
1030 virtual void ShowUnavailableContextMenu(bool bShow = false);
1031
1042
1043 virtual bool SetOrigValue(const Base::CFLString<wchar_t>& strValue) override;
1044 virtual bool SetValue(Base::CFLString<wchar_t> strValue, bool bInvokeCallback = true) override;
1045 virtual void Enable(bool bEnable) override;
1046
1047 protected:
1048 void InternalSetInstantApplyMode(bool bSet, bool bFixMode);
1049 virtual bool GetValidFigureType(Base::CFLString<wchar_t>& strValue);
1050 virtual const CResult CreateFigure(const Foundation::CFLFigure* pFlf, Foundation::EFigureTemplateType eTemplateType, Foundation::CFLFigure** ppFlfOut) const;
1051 Foundation::CFLFigure* GetValidFigure(const Foundation::CFLFigure* pFlf) const;
1052 const CResult InitializeThread();
1053 bool IsThreadInitialized();
1054 static void RunThread(CGUIPropertyItemFigure* pFigureProperty, std::future<void>** pContext);
1055
1056 public:
1057 const CResult TerminateThread();
1058
1059 enum ECallbackType
1060 {
1061 ECallbackType_None = 0,
1062 ECallbackType_Confirm,
1063 ECallbackType_Delete,
1064 ECallbackType_Cancel,
1065 ECallbackType_RealtimeEvent,
1066 ECallbackType_Show,
1067 };
1068
1069 protected:
1070 Base::CFLString<wchar_t> m_strLastOKValue;
1072 EAvailableFigureDeclType m_eAvailableFigureDeclType;
1073 EAvailableFigureTemplateType m_eAvailableFigureTemplateType;
1074 EAvailableFigureTransformType m_eAvailableFigureTransformType;
1075
1076 CPropertyCallback* m_pRealtimeCallback;
1077 bool m_bRealtimeCallbackAutoDestroy;
1078
1079 CPropertyCallback* m_pShowCallback;
1080 bool m_bShowCallbackAutoDestroy;
1081
1082 CPropertyCallback* m_pConfirmCallback;
1083 bool m_bConfirmCallbackAutoDestroy;
1084
1085 CPropertyCallback* m_pCancelCallback;
1086 bool m_bCancelCallbackAutoDestroy;
1087
1088 CPropertyCallback* m_pDeleteCallback;
1089 bool m_bDeleteCallbackAutoDestroy;
1090
1091 std::deque<Base::CFLString<wchar_t>>& m_deqProcedureParameterString;
1092 std::future<void>* m_pProcedureThread;
1093
1094 volatile bool m_bThreadRunning;
1095 volatile bool m_bThreadInitialized;
1096 volatile bool m_bThreadTerminated;
1097
1098 CGUIViewImageBase* m_pView;
1099
1100 bool m_bEnableInstantApplyMode;
1101 bool m_bFixInstantApplyMode;
1102 bool m_bFigureAutoHideMode;
1103 bool m_bShowUnavailableContextMenu;
1104
1105 friend class CGUIViewImage;
1106 };
1107 }
1108}
Template type 의 문자열 클래스
Definition INIUtilities.h:20
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1514
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
프로퍼티 아이템 베이스 클래스
Definition GUIPropertyItemBase.h:37
UI 상의 프로퍼티 창에서 Figure 설정 시 사용되는 클래스
Definition GUIPropertyItemFigure.h:470
virtual bool SetAvailableFigureTransformType(EAvailableFigureTransformType eAvailableFigureTransformType)
이용 가능한 Figure 변형 타입을 지정합니다.
virtual const CResult SaveFigure(const wchar_t *pWcsFileNameWithPath=nullptr) const
Figure Property 의 값을 .fig 파일로 저장합니다. 만약 nullptr 일 경우 GUI 상에서 file dialog 를 열어 파일 경로를 지정합니다.
virtual bool IsValidValue(Base::CFLString< wchar_t > flstrValue) const
매개변수의 문자열이 해당 객체에서 이용 가능한 Figure 인지 여부를 나타냅니다.
virtual ~CGUIPropertyItemFigure()
기본 소멸자
virtual bool SetOrigValue(const Base::CFLString< wchar_t > &strValue) override
this의 원래 값을 설정합니다.
virtual EAvailableFigureDeclType GetAvailableFigureDeclType() const
이용 가능한 Figure 의 형태를 얻어 옵니다.
virtual CPropertyCallback * GetShowCallback() const
Figure 를 Show 하여 View 에 띄웠을 때 실행되는 함수 콜백 포인터를 얻어 옵니다.
virtual EAvailableFigureTemplateType GetAvailableFigureTemplateType() const
이용 가능한 Figure 변수 자료형을 얻어 옵니다.
virtual bool SetAvailableFigureTemplateType(EAvailableFigureTemplateType eAvailableFigureTemplateType)
이용 가능한 Figure 의 변수 자료형을 지정합니다.
virtual bool SetLastOKValue(Base::CFLString< wchar_t > strValue)
가장 최근에 OK 로 확정한 Figure 값을 지정합니다.
virtual bool IsValidValue(FLImaging::Foundation::EFigureDeclType eFigureDeclType, FLImaging::Foundation::EFigureTemplateType eFigureTemplateType) const
매개변수의 EFigureDeclType, EFigureTemplateType 값이 해당 객체에서 이용 가능한 Figure 인지 여부를 나타냅니다.
virtual const CResult MakeValidFigure(Base::CFLString< wchar_t > strValue, Base::CFLString< wchar_t > &strValidFigure, bool bMsgBox=false)
매개변수의 Figure String 값을 해당 객체에서 이용 가능한 Figure Figure String 으로 변환하여 반환합니다. 예를 들어 Template Type 을 Int T...
virtual bool IsUnavailableContextMenuVisible() const
비활성화된 컨텍스트 메뉴의 숨김 또는 보이기 처리 여부를 반환합니다.
CGUIPropertyItemFigure(const CGUIPropertyItemFigure &rhs)
복사 생성자
virtual CPropertyCallback * GetDeleteCallback() const
Figure 가 삭제될 때 실행되는 함수 콜백 포인터를 얻어 옵니다.
virtual bool IsValidValue(FLImaging::Foundation::EFigureTemplateType eFigureTemplateType) const
매개변수의 EFigureTemplateType 값이 해당 객체에서 이용 가능한 Figure인지 여부를 나타냅니다.
virtual CGUIViewImageBase * GetSelectedView() const
연결된 뷰 리스트에서 선택된 뷰를 얻어 옵니다.
virtual bool SetConfirmCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 변경 사항을 확정할 때 실행되는 함수 콜백을 지정합니다.
virtual CPropertyCallback * GetConfirmCallback() const
Figure 변경 사항을 확정할 때 실행되는 함수 콜백 포인터를 얻어 옵니다.
virtual bool IsInstantApplyModeFixed() const
뷰에서 Instant Apply Mode 속성 변경을 허용할 경우 true, 허용하지 않을 경우 false 입니다.
virtual bool IsInstantApplyMode() const
Instant Apply 모드로 설정한 경우 true, 설정하지 않은 경우 false 입니다.
virtual void SetInstantApplyMode(bool bSet, bool bFixMode)
Figure 의 Instant Apply 모드를 지정합니다. 기본값 false 입니다. Instant Apply 모드가 true 로 지정된 경우, OK 메뉴를 누르지 않아도 뷰 위에...
virtual bool SetDeleteCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 가 삭제될 때 실행되는 함수 콜백을 지정합니다.
virtual Base::CFLString< wchar_t > GetLastOKValue() const
가장 최근에 OK 로 확정한 Figure 값을 얻어 옵니다.
virtual void SetView(const CGUIViewImageBase *pView)
뷰를 설정합니다.
virtual void ShowFigure(bool bShow, bool bCreate=true)
virtual bool GetFigureAutoHideMode() const
부모 프로퍼티 창이 kill focus 상태가 되었을 때 뷰 위에 띄워진 Figure 객체에 대한 자동 숨김 처리 여부를 반환합니다. 기본 설정값은 true 입니다.
virtual CPropertyCallback * GetCancelCallback() const
Figure 변경 사항을 취소할 때 실행되는 함수 콜백 포인터를 얻어 옵니다.
virtual bool SetRealtimeEventCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 의 이동, 회전 등의 변화가 일어날 때마다 실행되는 함수 콜백을 지정합니다.
CGUIPropertyItemViewListBase * GetViewList()
Figure 가 지정될 뷰 리스트 포인터를 얻어 옵니다.
virtual void SetFigureAutoHideMode(bool bAutoHide)
부모 프로퍼티 창이 kill focus 상태가 되었을 때 뷰 위에 띄워진 Figure 객체에 대한 자동 숨김 처리 여부를 지정합니다. 기본 설정값은 true 입니다.
virtual bool SetViewList(CGUIPropertyItemViewListBase *pPIIVL)
Figure 가 지정될 뷰 리스트를 설정합니다.
virtual bool ShowCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 를 Show 하여 View 에 띄웠을 때 실행되는 함수 콜백을 지정합니다.
virtual void Enable(bool bEnable) override
객체를 활성화 또는 비활성화합니다.
virtual EAvailableFigureTransformType GetAvailableFigureTransformType() const
이용 가능한 Figure 변형 타입을 얻어 옵니다.
virtual const CResult UpdateFigureObjectOnView()
virtual bool IsFigureVisible() const
Figure 객체가 뷰에서 보이는 상태인지, 숨겨진 상태인지 여부를 반환합니다.
virtual CPropertyCallback * GetRealtimeEventCallback() const
Figure 의 이동, 회전 등의 변화가 일어날 때마다 실행되는 함수 콜백 포인터를 얻어 옵니다.
CGUIPropertyItemFigure(CGUIPropertyItemViewListBase *pPIIVL)
생성자
virtual bool IsValidValue(FLImaging::Foundation::EFigureDeclType eFigureDeclType) const
매개변수의 EFigureDeclType 값이 해당 객체에서 이용 가능한 Figure인지 여부를 나타냅니다.
virtual bool IsValidValue(const FLImaging::Foundation::CFLFigure *pFlf) const
매개변수의 CFLFigure 객체가 해당 객체에서 이용 가능한 Figure 인지 여부를 나타냅니다.
virtual bool SetValue(Base::CFLString< wchar_t > strValue, bool bInvokeCallback=true) override
this에 값을 설정합니다.
virtual const CResult LoadFigure(const wchar_t *pWcsPath=nullptr)
.fig 확장자를 가진 파일을 불러옵니다.
virtual bool SetCancelCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 변경 사항을 취소할 때 실행되는 함수 콜백을 지정합니다.
virtual void ShowUnavailableContextMenu(bool bShow=false)
비활성화된 컨텍스트 메뉴의 숨김 또는 보이기 처리 여부를 설정합니다. SetAvailableView3DContextMenu()` 등으로 할 수 있습니다.
virtual bool SetAvailableFigureDeclType(EAvailableFigureDeclType eAvailableFigureDeclType)
이용 가능한 Figure 의 형태를 지정합니다.
뷰 리스트 프로퍼티 아이템 베이스 클래스
Definition GUIPropertyItemViewListBase.h:28
뷰의 기반 클래스
Definition GUIViewImageBase.h:43
이미지 뷰 클래스
Definition GUIViewImage.h:319
EFigureDeclType
도형의 타입
Definition DefinitionsFigure.h:33
EFigureTemplateType
도형의 변수 자료형
Definition DefinitionsFigure.h:302
EAvailableFigureDeclType
사용 가능한 Figure의 형태를 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureDeclType() 함수를 통해 설정할 수 있습니다.
Definition GUIPropertyItemFigure.h:33
@ EAvailableFigureDeclType_ComplexRegion
ComplexRegion
Definition GUIPropertyItemFigure.h:120
@ EAvailableFigureDeclType_PointArray
PointArray
Definition GUIPropertyItemFigure.h:160
@ EAvailableFigureDeclType_Frustum
CFLFrustum (3D)
Definition GUIPropertyItemFigure.h:201
@ EAvailableFigureDeclType_Default_3D
EAvailableFigureDeclType_Default_3D 는 모든 3D 객체와 Rect 를 포함합니다.
Definition GUIPropertyItemFigure.h:217
@ EAvailableFigureDeclType_Point3
CFLPoint3 (3D)
Definition GUIPropertyItemFigure.h:193
@ EAvailableFigureDeclType_Doughnut
Doughnut
Definition GUIPropertyItemFigure.h:136
@ EAvailableFigureDeclType_Circle
Circle
Definition GUIPropertyItemFigure.h:72
@ EAvailableFigureDeclType_BezierQuarticCurve
BezierQuarticCurve
Definition GUIPropertyItemFigure.h:112
@ EAvailableFigureDeclType_BezierCubicCurve
BezierCubicCurve
Definition GUIPropertyItemFigure.h:104
@ EAvailableFigureDeclType_Array
FigureArray
Definition GUIPropertyItemFigure.h:128
@ EAvailableFigureDeclType_Ellipse
Ellipse
Definition GUIPropertyItemFigure.h:80
@ EAvailableFigureDeclType_Quad
Quad
Definition GUIPropertyItemFigure.h:64
@ EAvailableFigureDeclType_Text
Text
Definition GUIPropertyItemFigure.h:168
@ EAvailableFigureDeclType_All
All 값은 모든 Figure DeclType이 유효합니다.
Definition GUIPropertyItemFigure.h:176
@ EAvailableFigureDeclType_Rect
Rect
Definition GUIPropertyItemFigure.h:56
@ EAvailableFigureDeclType_CubicSpline
CubicSpline
Definition GUIPropertyItemFigure.h:88
@ EAvailableFigureDeclType_All_3D
EAvailableFigureDeclType_All_3D 는 모든 3D 객체와 Rect 를 포함합니다.
Definition GUIPropertyItemFigure.h:209
@ EAvailableFigureDeclType_BezierQuadraticCurve
BezierQuadraticCurve
Definition GUIPropertyItemFigure.h:96
@ EAvailableFigureDeclType_Region
Region
Definition GUIPropertyItemFigure.h:144
@ EAvailableFigureDeclType_Line
Line
Definition GUIPropertyItemFigure.h:48
@ EAvailableFigureDeclType_RoundRect
RoundRect
Definition GUIPropertyItemFigure.h:152
@ EAvailableFigureDeclType_Default
EAvailableFigureDeclType_Default 는 3D 객체와 Text 를 제외한 모든 Figure DeclType 입니다.
Definition GUIPropertyItemFigure.h:184
@ EAvailableFigureDeclType_Point
Point
Definition GUIPropertyItemFigure.h:40
EAvailableFigureTemplateType
사용 가능한 Figure의 자료형을 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureTemplateType() 함수를 통해 설정할 수 있습니다...
Definition GUIPropertyItemFigure.h:258
@ EAvailableFigureTemplateType_Mixed
Mixed
Definition GUIPropertyItemFigure.h:297
@ EAvailableFigureTemplateType_Default
Default
Definition GUIPropertyItemFigure.h:313
@ EAvailableFigureTemplateType_All
모든 Template Type
Definition GUIPropertyItemFigure.h:305
@ EAvailableFigureTemplateType_Float
Float
Definition GUIPropertyItemFigure.h:281
@ EAvailableFigureTemplateType_Double
Double
Definition GUIPropertyItemFigure.h:289
@ EAvailableFigureTemplateType_Int64
Int64
Definition GUIPropertyItemFigure.h:273
@ EAvailableFigureTemplateType_Int32
Int32
Definition GUIPropertyItemFigure.h:265
EAvailableFigureTransformType
사용 가능한 Figure의 변형 타입을 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureTransformType() 함수를 통해 설정할 수 있...
Definition GUIPropertyItemFigure.h:354
@ EAvailableFigureTransformType_Inflate
확대 (현재 지원하지 않음)
Definition GUIPropertyItemFigure.h:380
@ EAvailableFigureTransformType_Warp
Warp 기능
Definition GUIPropertyItemFigure.h:413
@ EAvailableFigureTransformType_All
모든 변형 타입
Definition GUIPropertyItemFigure.h:421
@ EAvailableFigureTransformType_Reduce
Region 및 PointArray 를 근사화하여 점 개수 줄이기 연산
Definition GUIPropertyItemFigure.h:397
@ EAvailableFigureTransformType_Split
Rect를 쪼개서 FigureArray로 만드는 기능
Definition GUIPropertyItemFigure.h:405
@ EAvailableFigureTransformType_None
아무 변형도 허용하지 않음
Definition GUIPropertyItemFigure.h:361
@ EAvailableFigureTransformType_Default
기본값
Definition GUIPropertyItemFigure.h:429
@ EAvailableFigureTransformType_Rotate
회전
Definition GUIPropertyItemFigure.h:369
@ EAvailableFigureTransformType_Scale
크기 변형 (현재 지원하지 않음)
Definition GUIPropertyItemFigure.h:388