2#include <afxstatusbar.h>
3#include <unordered_set>
4#include <unordered_map>
10 class FL_EXPORT CGUIStatusBar :
public CMFCStatusBar
14 virtual ~CGUIStatusBar();
17 bool Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR);
19 virtual BOOL SetPaneText(
int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);
20 void SetPaneTextColorNonUpdate(
int nIndex, COLORREF clrText = (COLORREF)-1 );
21 void SetPaneInfoNonUpdate(
int nIndex, UINT nID, UINT nStyle,
int cxWidth);
23 virtual void ShowItem(int32_t i32Index,
bool bShow);
24 virtual bool IsItemVisible(int32_t i32Index)
const;
26 virtual const CResult SetItemElasticMinimumWidth(int32_t i32Index, int32_t i32MinimumWidth);
27 virtual const CResult ClearItemElasticMinimumWidth(int32_t i32Index);
28 virtual const CResult GetItemElasticMinimumWidth(int32_t i32Index, int32_t& i32MinimumWidth)
const;
30 virtual void NeedToUpdateLayout();
31 virtual void Update();
35 virtual void RecalcLayout()
override;
38 virtual void DoPaint(CDC* pDC)
override;
39 virtual void OnDrawPane(CDC* pDC, CMFCStatusBarPaneInfo* pPane)
override;
41 virtual void JudgeUpdateAvailable();
42 virtual bool IsUpdateAvailable();
43 static unsigned __stdcall InternalThreadRemainingUpdate(
void* pParam);
44 void InitializeThreadRemainingUpdate();
45 void TerminateThreadRemainingUpdate();
48 CMFCStatusBarPaneInfo* _FLGetPanePtr(
int nIndex);
50 bool m_arrBUpdated[1024];
51 bool m_bNeedToUpdateLayout;
54 std::unordered_set<int32_t>& m_setHidedItemIndex;
55 std::unordered_map<int32_t, int32_t>& m_mapItemElasticMinimumWidth;
56 Base::CPerformanceCounter m_pcLastUpdateCounter;
57 volatile bool m_bUpdateAvailable;
58 volatile bool m_bUpdateBlocked;
59 volatile bool m_bRemainingUpdateThread;
60 HANDLE m_hThreadRemainingUpdate;
62 bool m_bWindowSizeUpdated;
69 afx_msg
void OnNcPaint();
70 afx_msg
void OnDestroy();
72 friend class CGUIViewImageBase;
Definition D2DObject.h:12