// GaugeBrowserView.h : interface of the CGaugeBrowserView class // // (c)1998-2025 Codejock Software, All Rights Reserved. // // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN // CONSENT OF CODEJOCK SOFTWARE. // // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A // SINGLE COMPUTER. // // CONTACT INFORMATION: // support@codejock.com // http://www.codejock.com // ///////////////////////////////////////////////////////////////////////////// #if !defined(__GAUGEBROWSERVIEW_H__) # define __GAUGEBROWSERVIEW_H__ # if _MSC_VER > 1000 # pragma once # endif // _MSC_VER > 1000 # include "GaugeRepo.h" class CStringArrayEx : public CStringArray { public: BOOL Exists(LPCTSTR lpszImage) { for (int i = 0; i < GetSize(); i++) { if (GetAt(i).Compare(lpszImage) == 0) { return TRUE; } } return FALSE; } }; enum GaugeType { gtUnknown = -1, gtMeter, gtState }; class CGaugeInfo { public: CGaugeInfo() : pRepoItem(NULL) { Reset(); } void Reset() { pRepoItem = NULL; min = -1; max = -1; pos = -1; step = -1; size.cx = -1; size.cy = -1; svgList.RemoveAll(); type = gtUnknown; } const CGaugeRepo::RepoItem* pRepoItem; int min; int max; int pos; int step; CSize size; CString strStartAction; CStringArrayEx svgList; GaugeType type; }; class CGaugeBrowserView : public CView { protected: // create from serialization only CGaugeBrowserView(); DECLARE_DYNCREATE(CGaugeBrowserView) public: CGaugeBrowserDoc* GetDocument(); //{{AFX_VIRTUAL(CGaugeBrowserView) public: virtual void OnDraw(CDC* pDC); // overridden to draw this view virtual BOOL PreCreateWindow(CREATESTRUCT& cs); virtual void OnInitialUpdate(); protected: virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint); //}}AFX_VIRTUAL virtual ~CGaugeBrowserView(); BOOL LoadGauge(); BOOL LoadGaugeInfo(const CGaugeRepo::RepoItem* pRepoItem); public: CGaugeInfo& GetGaugeInfo(); protected: CGaugeInfo m_gi; CRect m_rcGauge; CXTPGaugeCtrl m_wndGauge; CGaugeRectTracker m_tracker; BOOL m_bShowCheckerboard; BOOL m_bShowResizeBox; void UpdateGaugePos(int nPos); void SetGaugeRect(CSize size); void ResizeGauge(CRect* pRect); //{{AFX_MSG(CGaugeBrowserView) afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); afx_msg void OnLButtonDown(UINT nFlags, CPoint point); afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnViewChecker(); afx_msg void OnUpdateViewChecker(CCmdUI* pCmdUI); afx_msg void OnViewResizeBox(); afx_msg void OnUpdateViewResizeBox(CCmdUI* pCmdUI); //}}AFX_MSG afx_msg LRESULT OnChangedRect(WPARAM wParam, LPARAM lParam); afx_msg void OnSliderScroll(NMHDR* pNMHDR, LRESULT* pResult); afx_msg void OnResetPos(); afx_msg void OnUpdateSlider(CCmdUI* pCmdUI); afx_msg void OnFileMin(); afx_msg void OnFileMax(); afx_msg void OnFileReset(); afx_msg void OnUpdateFileResize(CCmdUI* pCmdUI); afx_msg LRESULT OnGaugeUpdated(WPARAM wParam, LPARAM lParam); DECLARE_MESSAGE_MAP() }; # ifndef _DEBUG // debug version in GaugeBrowserView.cpp inline CGaugeBrowserDoc* CGaugeBrowserView::GetDocument() { return (CGaugeBrowserDoc*)m_pDocument; } # endif ///////////////////////////////////////////////////////////////////////////// AFX_INLINE CGaugeInfo& CGaugeBrowserView::GetGaugeInfo() { return m_gi; } //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(__GAUGEBROWSERVIEW_H__)