FLImaging 6.9.12.2
GUIPropertyItemFigure.h
1#pragma once
9
10#include "GUIPropertyItemBase.h"
11#include "DefinitionsGUI.h"
12
13#include <future>
14#include <deque>
15
17namespace FLImaging
18{
20 namespace GUI
21 {
24
33 {
44
55
66
77
88
99
110
121
132
143
154
165
176
187
198
209
220
231
239
247
248
259
270
281
292
303
314
322
330 };
331
333 {
334 return static_cast<EAvailableFigureDeclType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
335 }
336
338 {
339 return static_cast<EAvailableFigureDeclType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
340 }
341
343 {
344 return a = a | b;
345 }
346
348 {
349 return a = a & b;
350 }
351
353 {
354 return static_cast<EAvailableFigureDeclType>(~static_cast<int64_t>(a));
355 }
356
357 inline bool operator!(EAvailableFigureDeclType a)
358 {
359 return static_cast<bool>(!static_cast<int64_t>(a));
360 }
361
370 {
378
386
394
402
410
418
426 };
427
429 {
430 return static_cast<EAvailableFigureTemplateType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
431 }
432
434 {
435 return static_cast<EAvailableFigureTemplateType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
436 }
437
439 {
440 return a = a | b;
441 }
442
444 {
445 return a = a & b;
446 }
447
449 {
450 return static_cast<EAvailableFigureTemplateType>(~static_cast<int64_t>(a));
451 }
452
453 inline bool operator!(EAvailableFigureTemplateType a)
454 {
455 return static_cast<bool>(!static_cast<int64_t>(a));
456 }
457
466 {
474
482
484 // Not supported yet
485
493
502
510
518
526
534
542 };
543
545 {
546 return static_cast<EAvailableFigureTransformType>(static_cast<int64_t>(a) | static_cast<int64_t>(b));
547 }
548
550 {
551 return static_cast<EAvailableFigureTransformType>(static_cast<int64_t>(a) & static_cast<int64_t>(b));
552 }
553
555 {
556 return a = a | b;
557 }
558
560 {
561 return a = a & b;
562 }
563
565 {
566 return static_cast<EAvailableFigureTransformType>(~static_cast<int64_t>(a));
567 }
568
569 inline bool operator!(EAvailableFigureTransformType a)
570 {
571 return static_cast<bool>(!static_cast<int64_t>(a));
572 }
573
582 {
583 public:
591
599
611
619
633
645
657
670 virtual bool SetAvailableFigureDeclType(EAvailableFigureDeclType eAvailableFigureDeclType);
671
683
696 virtual bool SetAvailableFigureTemplateType(EAvailableFigureTemplateType eAvailableFigureTemplateType);
697
709
722 virtual bool SetAvailableFigureTransformType(EAvailableFigureTransformType eAvailableFigureTransformType);
723
735
748 virtual bool IsValidValue(Base::CFLString<wchar_t> flstrValue) const;
749
762 virtual bool IsValidValue(const FLImaging::Foundation::CFLFigure* pFlf) const;
763
781
794 virtual bool IsValidValue(FLImaging::Foundation::EFigureDeclType eFigureDeclType) const;
795
808 virtual bool IsValidValue(FLImaging::Foundation::EFigureTemplateType eFigureTemplateType) const;
809
829 virtual const CResult MakeValidFigure(Base::CFLString<wchar_t> strValue, Base::CFLString<wchar_t>& strValidFigure, bool bMsgBox = false);
830
844
856
871 virtual bool SetRealtimeEventCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
872
883 virtual CPropertyCallback* GetRealtimeEventCallback() const;
884
899 virtual bool SetShowCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
900
911 virtual CPropertyCallback* GetShowCallback() const;
912
927 virtual bool SetConfirmCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
928
939 virtual CPropertyCallback* GetConfirmCallback() const;
940
955 virtual bool SetCancelCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
956
967 virtual CPropertyCallback* GetCancelCallback() const;
968
983 virtual bool SetDeleteCallback(CPropertyCallback* pCallback, bool bAutoDestroy = true);
984
995 virtual CPropertyCallback* GetDeleteCallback() const;
996
1007 virtual void SetInstantApplyMode(bool bSet, bool bFixMode);
1008
1017 virtual bool IsInstantApplyMode() const;
1018
1027 virtual bool IsInstantApplyModeFixed() const;
1028
1041 virtual const CResult LoadFigure(const wchar_t* pWcsPath = nullptr);
1042
1055 virtual const CResult SaveFigure(const wchar_t* pWcsFileNameWithPath = nullptr) const;
1056
1065 virtual void SetFigureAutoHideMode(bool bAutoHide);
1066
1075 virtual bool GetFigureAutoHideMode() const;
1076
1087 virtual void ShowFigure(bool bShow, bool bCreate = true);
1088
1097 virtual bool IsFigureVisible() const;
1098
1107 virtual void SetView(const CGUIViewImageBase* pView);
1108
1132
1142 virtual void ShowUnavailableContextMenu(bool bShow = false);
1143
1154
1164 virtual void EnableValueEdit(bool bEnable);
1165
1175 virtual bool IsValueEditEnabled() const;
1176
1177 virtual bool SetOrigValue(const Base::CFLString<wchar_t>& strValue) override;
1178 virtual bool SetValue(Base::CFLString<wchar_t> strValue, bool bInvokeCallback = true) override;
1179 virtual void Enable(bool bEnable) override;
1180
1181 protected:
1182 void InternalSetInstantApplyMode(bool bSet, bool bFixMode);
1183 virtual bool GetValidFigureType(Base::CFLString<wchar_t>& strValue);
1184 virtual const CResult CreateFigure(const Foundation::CFLFigure* pFlf, Foundation::EFigureTemplateType eTemplateType, Foundation::CFLFigure** ppFlfOut) const;
1185 Foundation::CFLFigure* GetValidFigure(const Foundation::CFLFigure* pFlf) const;
1186 const CResult InitializeThread();
1187 bool IsThreadInitialized();
1188 static void RunThread(CGUIPropertyItemFigure* pFigureProperty, std::future<void>** pContext);
1189
1190 public:
1191 const CResult TerminateThread();
1192
1193 enum ECallbackType
1194 {
1195 ECallbackType_None = 0,
1196 ECallbackType_Confirm,
1197 ECallbackType_Delete,
1198 ECallbackType_Cancel,
1199 ECallbackType_RealtimeEvent,
1200 ECallbackType_Show,
1201 };
1202
1203 protected:
1204 Base::CFLString<wchar_t> m_strLastOKValue;
1206 EAvailableFigureDeclType m_eAvailableFigureDeclType;
1207 EAvailableFigureTemplateType m_eAvailableFigureTemplateType;
1208 EAvailableFigureTransformType m_eAvailableFigureTransformType;
1209
1210 CPropertyCallback* m_pRealtimeCallback;
1211 bool m_bRealtimeCallbackAutoDestroy;
1212
1213 CPropertyCallback* m_pShowCallback;
1214 bool m_bShowCallbackAutoDestroy;
1215
1216 CPropertyCallback* m_pConfirmCallback;
1217 bool m_bConfirmCallbackAutoDestroy;
1218
1219 CPropertyCallback* m_pCancelCallback;
1220 bool m_bCancelCallbackAutoDestroy;
1221
1222 CPropertyCallback* m_pDeleteCallback;
1223 bool m_bDeleteCallbackAutoDestroy;
1224
1225 std::deque<Base::CFLString<wchar_t>>& m_deqProcedureParameterString;
1226 std::future<void>* m_pProcedureThread;
1227
1228 volatile bool m_bThreadRunning;
1229 volatile bool m_bThreadInitialized;
1230 volatile bool m_bThreadTerminated;
1231
1232 CGUIViewImageBase* m_pView;
1233
1234 bool m_bEnableValueEdit;
1235 bool m_bEnableInstantApplyMode;
1236 bool m_bFixInstantApplyMode;
1237 bool m_bFigureAutoHideMode;
1238 bool m_bShowUnavailableContextMenu;
1239
1240 friend class CGUIViewImage;
1241 };
1242 }
1243}
Template type 의 문자열 클래스
Definition FLString.h:34
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1605
도형을 표현하는 클래스의 기저 클래스
Definition FLFigure.h:27
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 bool IsValueEditEnabled() const
현재 값(Value) 필드가 편집 가능한 상태인지 여부를 반환합니다.
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 bool SetShowCallback(CPropertyCallback *pCallback, bool bAutoDestroy=true)
Figure 를 Show 하여 View 에 띄웠을 때 실행되는 함수 콜백을 지정합니다.
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 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 void EnableValueEdit(bool bEnable)
항목의 활성화(Enable)나 읽기 전용 상태(ReadOnly)와는 별개로, 값(Value) 필드의 편집 가능 여부만을 설정합니다.
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:357
Definition D2DObject.h:12
EAvailableFigureDeclType
사용 가능한 Figure의 형태를 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureDeclType() 함수를 통해 설정할 수 있습니다.
Definition GUIPropertyItemFigure.h:33
@ EAvailableFigureDeclType_ComplexRegion
다각형
Definition GUIPropertyItemFigure.h:153
@ EAvailableFigureDeclType_PointArray
점 배열
Definition GUIPropertyItemFigure.h:208
@ EAvailableFigureDeclType_QuadrilateralSolid3
비정형 육면체
Definition GUIPropertyItemFigure.h:313
@ EAvailableFigureDeclType_Default_3D
EAvailableFigureDeclType_Default_3D 는 모든 3D 객체와 Rect 를 포함합니다.
Definition GUIPropertyItemFigure.h:329
@ EAvailableFigureDeclType_Point3
3차원 점
Definition GUIPropertyItemFigure.h:258
@ EAvailableFigureDeclType_Triangle3
3차원 삼각형
Definition GUIPropertyItemFigure.h:280
@ EAvailableFigureDeclType_Doughnut
도넛
Definition GUIPropertyItemFigure.h:175
@ EAvailableFigureDeclType_Circle
Definition GUIPropertyItemFigure.h:87
@ EAvailableFigureDeclType_BezierQuarticCurve
베지에 4차 곡선
Definition GUIPropertyItemFigure.h:142
@ EAvailableFigureDeclType_BezierCubicCurve
베지에 3차 곡선
Definition GUIPropertyItemFigure.h:131
@ EAvailableFigureDeclType_Array
도형 배열
Definition GUIPropertyItemFigure.h:164
@ EAvailableFigureDeclType_Quad3
3차원 사각형
Definition GUIPropertyItemFigure.h:291
@ EAvailableFigureDeclType_Ellipse
타원
Definition GUIPropertyItemFigure.h:98
@ EAvailableFigureDeclType_Quad
사각형
Definition GUIPropertyItemFigure.h:76
@ EAvailableFigureDeclType_Text
특정 좌표에서 문자열을 나타내는 도형
Definition GUIPropertyItemFigure.h:230
@ EAvailableFigureDeclType_All
All 값은 모든 Figure DeclType이 유효합니다.
Definition GUIPropertyItemFigure.h:238
@ EAvailableFigureDeclType_Rect
직사각형
Definition GUIPropertyItemFigure.h:65
@ EAvailableFigureDeclType_CubicSpline
큐빅 곡선
Definition GUIPropertyItemFigure.h:109
@ EAvailableFigureDeclType_Triangle
2차원 삼각형
Definition GUIPropertyItemFigure.h:219
@ EAvailableFigureDeclType_TriangularSolid3
비정형 오면체
Definition GUIPropertyItemFigure.h:302
@ EAvailableFigureDeclType_All_3D
EAvailableFigureDeclType_All_3D 는 모든 3D 객체와 Rect 를 포함합니다.
Definition GUIPropertyItemFigure.h:321
@ EAvailableFigureDeclType_BezierQuadraticCurve
베지에 2차 곡선
Definition GUIPropertyItemFigure.h:120
@ EAvailableFigureDeclType_Region
영역
Definition GUIPropertyItemFigure.h:186
@ EAvailableFigureDeclType_Line
직선
Definition GUIPropertyItemFigure.h:54
@ EAvailableFigureDeclType_RoundRect
둥근 직사각형
Definition GUIPropertyItemFigure.h:197
@ EAvailableFigureDeclType_Default
EAvailableFigureDeclType_Default 는 3D 객체와 Text 를 제외한 모든 Figure DeclType 입니다.
Definition GUIPropertyItemFigure.h:246
@ EAvailableFigureDeclType_Frustum3
절두체
Definition GUIPropertyItemFigure.h:269
@ EAvailableFigureDeclType_Point
Definition GUIPropertyItemFigure.h:43
EAvailableFigureTemplateType
사용 가능한 Figure의 자료형을 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureTemplateType() 함수를 통해 설정할 수 있습니다...
Definition GUIPropertyItemFigure.h:370
@ EAvailableFigureTemplateType_Mixed
Mixed
Definition GUIPropertyItemFigure.h:409
@ EAvailableFigureTemplateType_Default
Default
Definition GUIPropertyItemFigure.h:425
@ EAvailableFigureTemplateType_All
모든 Template Type
Definition GUIPropertyItemFigure.h:417
@ EAvailableFigureTemplateType_Float
Float
Definition GUIPropertyItemFigure.h:393
@ EAvailableFigureTemplateType_Double
Double
Definition GUIPropertyItemFigure.h:401
@ EAvailableFigureTemplateType_Int64
Int64
Definition GUIPropertyItemFigure.h:385
@ EAvailableFigureTemplateType_Int32
Int32
Definition GUIPropertyItemFigure.h:377
EAvailableFigureTransformType
사용 가능한 Figure의 변형 타입을 설정합니다. CGUIPropertyItemFigure::SetAvailableFigureTransformType() 함수를 통해 설정할 수 있...
Definition GUIPropertyItemFigure.h:466
@ EAvailableFigureTransformType_Inflate
확대 (현재 지원하지 않음)
Definition GUIPropertyItemFigure.h:492
@ EAvailableFigureTransformType_Warp
Warp 기능
Definition GUIPropertyItemFigure.h:525
@ EAvailableFigureTransformType_All
모든 변형 타입
Definition GUIPropertyItemFigure.h:533
@ EAvailableFigureTransformType_Reduce
Region 및 PointArray 를 근사화하여 점 개수 줄이기 연산
Definition GUIPropertyItemFigure.h:509
@ EAvailableFigureTransformType_Split
Rect를 쪼개서 FigureArray로 만드는 기능
Definition GUIPropertyItemFigure.h:517
@ EAvailableFigureTransformType_None
아무 변형도 허용하지 않음
Definition GUIPropertyItemFigure.h:473
@ EAvailableFigureTransformType_Default
기본값
Definition GUIPropertyItemFigure.h:541
@ EAvailableFigureTransformType_Rotate
회전
Definition GUIPropertyItemFigure.h:481
@ EAvailableFigureTransformType_Scale
크기 변형 (현재 지원하지 않음)
Definition GUIPropertyItemFigure.h:500