11#include <unordered_map>
12#include "DefinitionsGUI.h"
13#include "GUIStyledCtrlBase.h"
15#define AFX_STRETCH_DELTA 2
24 class CGUIPaneProperties;
27 class CGUIPropertyGridPropertyDropdownList;
28 class CGUIPropertyGridPropertyViewGraphList;
29 class CGUIPropertyGridPropertyViewImageList;
30 class CGUIPropertyGridPropertyView3DList;
31 class CGUIPropertyGridPropertyBase;
32 class CGUIPropertyGridToolTipCtrl;
33 class CGUIPropertyGridPropertyCategory;
34 class CGUIPropertyGridPropertyRadioButtonGroup;
35 class CGUIPropertyGridPropertyRadioButton;
36 class CGUIPropertyGridPropertySliderDualHandle;
37 class CGUIScrollBarOwnerDrawn;
54 friend class CGUIPropertyGridPropertySliderDualHandle;
55 friend class CGUIPropertyGridPropertySlider;
56 friend class CGUIPropertyGridPropertyDraggableSpin;
57 friend class CGUIDialogPropertyImageFigureDrawingAttribute;
58 friend class CGUIPropertyGridPropertyCategory;
59 friend class CGUIPropertyGridPropertyCheckBox;
60 friend class CGUIPropertyGridPropertySheet;
416 virtual const CResult InsertItem(CGUIPropertyItemBase* pItem,
const CGUIPropertyItemBase* pItemNewParent,
EAppendPosition eAppendPosition,
bool bAdjustLayout,
bool bAutoLoad);
417 virtual const CResult InsertItem(CGUIPropertyItemBase* pItem,
EInsertPosition eInsertPosition,
const CGUIPropertyItemBase* pItemInsertPosition,
bool bAdjustLayout,
bool bAutoLoad);
418 virtual const CResult RemoveItem(CGUIPropertyItemBase* pItem,
bool bDeletePropertyGridProperty,
bool bAdjustLayout);
420 virtual const CResult PreDeleteProperty(CMFCPropertyGridProperty* pProperty);
422 virtual void HighlightPropertyWithBlink(CGUIPropertyItemBase* pItem, COLORREF clrHighlight = Foundation::FLLOGOCOLOR, uint32_t u32BlinkCount = 3, uint32_t u32IntervalMs = 200);
424 DeclareGetClassType();
427 virtual CMFCPropertyGridProperty* HitTest(CPoint pt, CMFCPropertyGridProperty::ClickArea* pnArea = NULL, BOOL bPropsOnly = FALSE)
const;
429 virtual BOOL RemoveProperty(CMFCPropertyGridProperty*& pProp, BOOL bDelete, BOOL bRedraw, BOOL bAdjustLayout);
431 void EnsureVisible(CMFCPropertyGridProperty* pProp, BOOL bExpandParents = FALSE);
432 virtual void SetAlphabeticMode(BOOL bSet = TRUE);
434 virtual void SetParentMainFrame(CGUIMainFrame* pMainFrame);
435 virtual CGUIMainFrame* GetParentMainFrame()
const;
438 virtual int GetTotalItemsWithExtraRows(BOOL bIncludeHidden = TRUE)
const;
440 void SetFontBold(HFONT hfont);
441 void SetFont(HFONT hfont);
442 virtual CFont* GetFontBold();
444 virtual void SetManagerPropertyItem(CGUIManagerPropertyItem* pMgr);
445 virtual const CGUIManagerPropertyItem* GetManagerPropertyItem()
const;
448 virtual void AddPendingUpdateValue(
const CMFCPropertyGridProperty* pPGP,
const COleVariant& var);
449 virtual void AddPendingUpdateValueMin(
const CGUIPropertyGridPropertySliderDualHandle* pPGP,
const COleVariant& var);
450 virtual void AddPendingUpdateValueMax(
const CGUIPropertyGridPropertySliderDualHandle* pPGP,
const COleVariant& var);
451 virtual const CResult GetPendingUpdateValue(
const CMFCPropertyGridProperty* pPGP, COleVariant& varRes)
const;
452 virtual const CResult GetPendingUpdateValueMin(
const CGUIPropertyGridPropertySliderDualHandle* pPGP, COleVariant& varRes)
const;
453 virtual const CResult GetPendingUpdateValueMax(
const CGUIPropertyGridPropertySliderDualHandle* pPGP, COleVariant& varRes)
const;
454 virtual void AddPendingUpdateVisibility(
const CMFCPropertyGridProperty* pPGP,
bool bVisibility);
455 virtual const CResult GetPendingUpdateVisibility(
const CMFCPropertyGridProperty* pPGP,
bool& bVisibility)
const;
457 virtual void OnDrawList(CDC* pDC)
override;
458 virtual void DrawPropertyDefault(CDC* pDC, CGUIPropertyGridPropertyBase* pPgp)
const;
459 virtual void DrawRadioButtonGroupBox(CDC* pDC, CGUIPropertyGridPropertyRadioButtonGroup* pPropRGB)
const;
460 virtual int OnDrawProperty(CDC* pDC, CMFCPropertyGridProperty* pProp)
const override;
461 virtual int OnDrawProperty(CDC* pDC, CGUIPropertyGridPropertyCategory* pPropCat)
const;
462 static void OnDrawComboDropButton(CDC* pDC, CRect rect, BOOL bDisabled, BOOL bDropped, BOOL bHighlighted, CMFCToolBarComboBoxButton* pButton);
463 static void OnDrawButtonBorder(CDC* pDC, CMFCToolBarButton* pButton, CRect rect, CMFCVisualManager::AFX_BUTTON_STATE state);
465 virtual CList<CMFCPropertyGridProperty*, CMFCPropertyGridProperty*>* GetTopLevelProperties();
466 virtual BOOL EndEditItem(BOOL bUpdateData = TRUE)
override;
469 virtual void SetScrollSizes();
470 virtual void ReposProperties();
478 void RecursivelySetPropertySliderWidth(CMFCPropertyGridProperty* pParent =
nullptr);
481 CMFCPropertyGridProperty* m_pPropLButtonDown;
483 CGUIPaneProperties* m_pParentPane;
484 CGUIMainFrame* m_pParentMainFrame;
485 CGUIPropertyGridPropertyBase* m_pPropertyPrevHit;
486 CGUIPropertyGridToolTipCtrl* m_pIPToolTip;
487 CGUIScrollBarOwnerDrawn* m_pOwnerDrawScrollBarVert;
488 CGUIScrollBarOwnerDrawn* m_pOwnerDrawScrollBarHorz;
489 std::unordered_map<CMFCPropertyGridProperty*, COleVariant>& m_mapPendingValue;
490 std::unordered_map<CGUIPropertyGridPropertySliderDualHandle*, COleVariant>& m_mapPendingValueMin;
491 std::unordered_map<CGUIPropertyGridPropertySliderDualHandle*, COleVariant>& m_mapPendingValueMax;
492 std::unordered_map<CMFCPropertyGridProperty*, bool>& m_mapPendingVisibility;
495 float m_f32LeftColWidthRatio;
496 int32_t m_i32LeftColWidth;
498 CGUIPropertyGridPropertyBase* m_pPropHighlightBlink;
499 COLORREF m_clrHighlight;
500 COLORREF m_clrHighlightBackup;
501 uint32_t m_u32NeedToBlinkCnt;
502 uint32_t m_u32CurrBlinkCnt;
504 bool m_bPropertySliderDeprecatedExists;
506 CGUIStyledCtrlBase m_scbCategory;
507 CGUIStyledCtrlBase m_scbRadioBtnGroup;
508 CGUIStyledCtrlBase m_scbPropBase;
510 CGUIManagerPropertyItem* m_pMgrRef;
514 friend class CGUIManagerPane;
515 friend class CGUIPaneProperties;
516 friend class CGUIMenuItemProperty;
517 friend class CGUIPropertyGridPropertyDropdownList;
518 friend class CGUIPropertyGridPropertyViewListBase;
519 friend class CGUIPropertyGridPropertyBase;
520 friend class CGUIPropertyGridPropertyColor;
521 friend class CGUIPropertyItemRadioButton;
522 friend class CGUIPropertyItemSliderDualHandle;
523 friend class CGUIPropertyItemCheckBox;
524 friend class CGUIPropertyItemCategory;
525 friend class CGUIPropertyItemText;
526 friend class CGUIPropertyItemFont;
527 friend class CGUIPropertyItemBase;
528 friend class CGUIPropertyItemRadioButtonGroup;
529 friend class CGUIPropertyGridPropertyRadioButtonGroup;
530 friend class CGUIPropertyItemCheckBox3State;
531 friend class CGUIDialogProperty;
532 friend class CGUIDialogLicenseFeatures;
533 friend class CGUIManagerPropertyItem;
536 DECLARE_MESSAGE_MAP()
537 afx_msg
void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
538 afx_msg BOOL OnMouseWheel(UINT nFlags,
short zDelta, CPoint pt);
539 afx_msg
void OnMouseHWheel(UINT nFlags,
short zDelta, CPoint pt);
540 afx_msg
void OnMouseMove(UINT nFlags, CPoint point);
541 afx_msg
void OnLButtonUp(UINT nFlags, CPoint point);
542 afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
543 afx_msg
void OnSetFocus(CWnd* pOldWnd);
544 afx_msg
void OnKillFocus(CWnd* pNewWnd);
545 afx_msg
int OnCreate(LPCREATESTRUCT lpCreateStruct);
546 afx_msg
void OnRButtonDblClk(UINT nFlags, CPoint point);
547 virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
548 virtual
void PreSubclassWindow();
549 virtual BOOL PreTranslateMessage(MSG* pMsg);
550 afx_msg
void OnEnable(BOOL bEnable);
551 afx_msg
void OnCancelMode();
552 afx_msg
void OnDestroy();
553 LRESULT OnScrollBarPosChanged(WPARAM wParam, LPARAM lParam);
554 LRESULT OnSliderOwnerDrawnPosChanged(WPARAM wParam, LPARAM lParam);
555 LRESULT OnSliderOwnerDrawnRedraw(WPARAM wParam, LPARAM lParam);
556 afx_msg BOOL OnNeedTipText(UINT
id, NMHDR* pNMH, LRESULT* pResult);
557 afx_msg
void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
558 afx_msg
void OnLButtonDown(UINT nFlags, CPoint point);
559 afx_msg
void OnRButtonDown(UINT nFlags, CPoint point);
560 afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
561 afx_msg
void OnHeaderItemChanged(NMHDR* pNMHDR, LRESULT* pResult);
562 afx_msg
void OnLButtonDblClk(UINT nFlags, CPoint point);
563 afx_msg
void OnSize(UINT nType,
int cx,
int cy);
564 afx_msg
void OnTimer(UINT_PTR nIDEvent);
565 afx_msg
void OnNMSheetCellChanged(NMHDR* pNMHDR, LRESULT* pResult);
567 void TrackToolTip(CPoint pt);
568 virtual
void Init() override;
569 virtual
void OnDraw(CDC* pDC) override;
570 virtual
void OnClickButton(CPoint point) override;
브로드캐스트 메시지 클래스
Definition BroadcastMessage.h:27
점을 표현하는 간략화된 클래스
Definition TPoint.h:37
직사각형을 표현하는 간략화된 클래스
Definition TRect.h:37
FLImaging 모듈의 수행 결과 객체
Definition ResultsDef.h:1676
CGUIPropertyItemBase 객체들을 관리하고 CGUIPropertyGridCtrl 과의 동기화를 수행하는 매니저 클래스입니다.
Definition GUIManagerPropertyItem.h:46
virtual void SetCustomColorGroupBackground(COLORREF color)
그룹 배경의 사용자 정의 색상을 설정합니다.
virtual CGUIPaneProperties * GetParentPane() const
부모 패널을 가져옵니다.
virtual void SetCustomColorGridLine(COLORREF color)
그리드 선의 사용자 정의 색상을 설정합니다.
virtual const CResult SetLeftColumnWidthRatio(float f32Ratio=0.5f, ESizeMode eSizeMode=ESizeMode_Ratio)
왼쪽 열 너비를 비율로 설정합니다.
virtual COLORREF GetCustomColorGridLine() const
그리드 선의 사용자 정의 색상을 가져옵니다.
virtual COLORREF GetCustomColorGroupSubItemBackground() const
그룹의 서브아이템 배경에 대한 사용자 정의 색상을 가져옵니다.
virtual bool IsGridLineVisible() const
그리드 선의 표시 여부를 확인합니다.
virtual COLORREF GetCustomColorGroupText() const
그룹 텍스트의 사용자 정의 색상을 가져옵니다.
virtual COLORREF GetCustomColorGroupLine() const
그룹을 묶는 라인의 사용자 정의 색상을 가져옵니다.
virtual void SetCustomColorGroupSubItemBackground(COLORREF color)
그룹의 서브아이템 배경에 대한 사용자 정의 색상을 설정합니다.
virtual void SetParentPane(CGUIPaneProperties *pParentPane)
부모 패널을 설정합니다.
virtual void OnReceiveBroadcast(const Base::CBroadcastMessage *pMessage) override
Callback 함수. BroadcastMessage를 수신받는 함수
virtual void AdjustLayoutAsync()
컨트롤의 레이아웃을 조정합니다.(비동기 함수) 프로퍼티 아이템을 새로 추가하거나 삭제, Show/Hide 하는 등 레이아웃 변경이 있을 때에만 호출합니다.
virtual const CResult SetLeftColumnWidthSizeMode(ESizeMode eSizeMode=ESizeMode_Ratio)
왼쪽 열 너비의 크기 모드를 설정합니다.
virtual float GetLeftColumnWidthRatio() const
왼쪽 열 너비 비율을 반환합니다.
virtual bool AdjustLayoutForVisibility()
CGUIPropertyItemBase::SetVisible() 호출 이후, 컨트롤의 레이아웃을 조정하기 위해 사용하는 함수입니다. 프로퍼티 아이템을 새로 추가하거나 삭제하는 경우에는...
virtual void AdjustLayout() override
컨트롤의 레이아웃을 조정합니다. 프로퍼티 아이템을 새로 추가하거나 삭제, Show/Hide 하는 등 레이아웃 변경이 있을 때에만 호출합니다.
virtual ESizeMode GetLeftColumnWidthSizeMode() const
왼쪽 열 너비의 크기 모드를 반환합니다.
virtual COLORREF GetCustomColorBackground() const
배경의 사용자 정의 색상을 가져옵니다.
virtual COLORREF GetCustomColorGroupBackground() const
그룹 배경의 사용자 정의 색상을 가져옵니다.
virtual ~CGUIPropertyGridCtrl()
속성 그리드 컨트롤의 소멸자.
virtual void ShowGridLine(bool bShow)
그리드 선의 표시 여부를 설정합니다.
virtual void SetCustomColorGroupLine(COLORREF color)
그룹을 묶는 라인의 사용자 정의 색상을 설정합니다.
virtual void SetCustomColorBackground(COLORREF color)
배경의 사용자 정의 색상을 설정합니다.
CGUIPropertyGridCtrl()
속성 그리드 컨트롤의 기본 생성자.
void GetPropertyByVisibleOrder(std::vector< CMFCPropertyGridProperty * > &vctProps, CMFCPropertyGridProperty *pParent=nullptr) const
화면 표시 순서에 따라 속성을 가져옵니다.
virtual const CResult SetLeftColumnWidth(int32_t i32LeftColumnWidth, ESizeMode eSizeMode=ESizeMode_Fixed)
왼쪽 열 너비(이름 영역)를 설정합니다.
virtual void SetCustomColorGroupText(COLORREF color)
그룹 텍스트의 사용자 정의 색상을 설정합니다.
프로퍼티 아이템 베이스 클래스
Definition GUIPropertyItemBase.h:318
Definition D2DObject.h:12
EInsertPosition
Definition DefinitionsGUI.h:12276
ESizeMode
UI 요소의 크기 지정 방식을 정의합니다.
Definition DefinitionsGUI.h:13130
@ ESizeMode_Ratio
비율 기반 크기.
Definition DefinitionsGUI.h:13162
@ ESizeMode_Fixed
고정 크기 (예: 픽셀 단위).
Definition DefinitionsGUI.h:13151
EOrientation
방향
Definition DefinitionsGUI.h:6733
@ EOrientation_Vertical
수직 방향
Definition DefinitionsGUI.h:6740
EAppendPosition
Definition DefinitionsGUI.h:12296
EGUIControlState
GUI 컨트롤 상태 열거형
Definition DefinitionsGUI.h:13033