FLImaging 6.5.8.1
GUIStatusBar.h
1#pragma once
2#include <afxstatusbar.h>
3
4namespace FLImaging
5{
6 namespace GUI
7 {
8 class FL_EXPORT CGUIStatusBar : public CMFCStatusBar
9 {
10 public:
11 CGUIStatusBar();
12 virtual ~CGUIStatusBar();
13
14 public:
15 bool Create(CWnd* pParentWnd, DWORD dwStyle = WS_CHILD | WS_VISIBLE | CBRS_BOTTOM, UINT nID = AFX_IDW_STATUS_BAR);
16
17 virtual BOOL SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);
18 void SetPaneTextColorNonUpdate(int nIndex, COLORREF clrText = (COLORREF)-1 /* Default*/);
19 void SetPaneInfoNonUpdate(int nIndex, UINT nID, UINT nStyle, int cxWidth);
20
21 virtual void NeedToUpdateLayout();
22 virtual void Update();
23
24 void LockUpdate();
25 void UnlockUpdate();
26
27 protected:
28 virtual void DoPaint(CDC* pDC) override;
29
30 virtual void JudgeUpdateAvailable();
31 virtual bool IsUpdateAvailable();
32 static unsigned __stdcall InternalThreadRemainingUpdate(void* pParam);
33 void InitializeThreadRemainingUpdate();
34 void TerminateThreadRemainingUpdate();
35
36 protected:
37 CMFCStatusBarPaneInfo* _FLGetPanePtr(int nIndex);
38
39 bool m_arrBUpdated[1024];
40 bool m_bNeedToUpdateLayout;
41 bool m_bLockUpdate;
42
43 Base::CPerformanceCounter m_pcLastUpdateCounter;
44 volatile bool m_bUpdateAvailable;
45 volatile bool m_bUpdateBlocked;
46 volatile bool m_bRemainingUpdateThread;
47 HANDLE m_hThreadRemainingUpdate;
48
49 bool m_bWindowSizeUpdated;
50
51 public:
52
53 bool m_bTerminateApp;
54
55 DECLARE_MESSAGE_MAP()
56 afx_msg void OnNcPaint();
57 afx_msg void OnDestroy();
58
59 friend class CGUIViewImageBase;
60 };
61 }
62}
63