// SegDemoView.h : interface of the CSegDemoView class // ///////////////////////////////////////////////////////////////////////////// //{{AFX_INCLUDES() #include "leadrasterview.h" //}}AFX_INCLUDES #if !defined(AFX_SEGDEMOVIEW_H__C77D568D_B9A5_4B52_A44D_6664B23A0F3F__INCLUDED_) #define AFX_SEGDEMOVIEW_H__C77D568D_B9A5_4B52_A44D_6664B23A0F3F__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 class CSegDemoView : public CFormView { private: const CString TEXT_BACKGRND; const CString TEXT_ONECOLOR; const CString TEXT_1BIT_BW; const CString TEXT_2BIT_BW; const CString TEXT_1BIT_COLOR; const CString TEXT_2BIT_COLOR; const CString TEXT_2BIT_GRAYSCALE; const CString TEXT_8BIT_GRAYSCALE; const CString TEXT_PICTURE; BOOL m_bManual; BOOL m_bMouseMove; BOOL m_bLBDown; int m_nLineSel; BOOL m_bDrawSegment; BOOL m_bShowSegmentType; POINT m_ptClickMove; BOOL m_bUpdateSegment; POINT m_ptManualStart; POINT m_ptManualEnd; int m_nSelSeg; BOOL m_bFitToWindow; int m_nZoomPercent; protected: // create from serialization only CSegDemoView(); DECLARE_DYNCREATE(CSegDemoView) public: struct SEGMENTINFO { long nSegId; RECT rcRect; MRCSegmentTypeConstants SegType; BOOL bSelected; }; CArray m_SegInfo; //{{AFX_DATA(CSegDemoView) enum { IDD = IDD_SEGDEMO_FORM }; CLEADRasterView m_RasterView; //}}AFX_DATA // Attributes public: CSegDemoDoc* GetDocument(); // Operations public: private: void SetFileNameExt(TCHAR * pszFileName, TCHAR *pszExt); void ChangeToZoom(RECT* pRect); void ClearSegments(); int FindSelectionCount(); void UnSelectCurrentSegment(int x, int y); void SelectSegments(int x, int y); BOOL IsSegmentSelected(int nSegment); void UnSelectSegments(); void DrawSelectedLines(CDC *pDC,RECT* pRect); void LButtonUp(int x, int y); void FindSelectionLine(RECT* pRect, POINT pt); void ChangeToImage(RECT* pRect); void CheckRectCoordinates(int nLineSel, RECT* pRect, BOOL bManual, RECT* pManualSeg, int nStartRow, int nEndRow, RECT* pOldManualRect); BOOL ManualSegmentation(); void NormalizeRect(RECT* pRect); BOOL ShowCursor(); void SetZoom(int percent); int FindNextSelection(int nIndex); void UpdateSegments(); BOOL CanEnlargeFromLeft(LPRECT pLeftRc, LPRECT pSelRect); BOOL CanEnlargeFromTop(LPRECT pTopRc, LPRECT pSelRect); BOOL CanEnlargeFromRight(LPRECT pRightRc, LPRECT pSelRect); BOOL CanEnlargeFromBottom(LPRECT pBottomRc, LPRECT pSelRect); // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSegDemoView) public: virtual BOOL PreCreateWindow(CREATESTRUCT& cs); protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual void OnInitialUpdate(); // called first time after construct //}}AFX_VIRTUAL // Implementation public: virtual ~CSegDemoView(); #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif protected: // Generated message map functions protected: //{{AFX_MSG(CSegDemoView) afx_msg void OnSize(UINT nType, int cx, int cy); afx_msg void OnDestroy(); afx_msg BOOL OnEraseBkgnd(CDC* pDC); afx_msg void OnFileSaveAs(); afx_msg void OnFileSaveLeadMrc(); afx_msg void OnFileSaveMrc(); afx_msg void OnFileExportSegments(); afx_msg void OnFileImportSegments(); afx_msg void OnAutoSegmentation(); afx_msg void OnAutoManualSegmentation(); afx_msg void OnPaintLeadRasterView(long hDC); afx_msg void OnEditCopy(); afx_msg void OnClearSegments(); afx_msg void OnDrawSegment(); afx_msg void OnDrawCancelRect(); afx_msg void OnShowSegmentType(); afx_msg void OnUpdateShowSegmentType(CCmdUI* pCmdUI); afx_msg void OnOptions(); afx_msg void OnColorRes(); afx_msg void OnColorHistogram(); afx_msg void OnColorUinqueColors(); afx_msg void OnMouseDownLeadRasterView1(short Button, short Shift, float x, float y); afx_msg void OnMouseUpLeadRasterView1(short Button, short Shift, float x, float y); afx_msg void OnMouseMoveLeadRasterView1(short Button, short Shift, float x, float y); afx_msg void OnSegmenttType(); afx_msg void OnShowSegInfo(); afx_msg void OnSegmentHistogram(); afx_msg void OnSegmentUniqueColors(); afx_msg void OnZoomingNormal(); afx_msg void OnUpdateZoomingNormal(CCmdUI* pCmdUI); afx_msg void OnFittowindow(); afx_msg void OnUpdateFittowindow(CCmdUI* pCmdUI); afx_msg void OnZommingIn(); afx_msg void OnZommingOut(); afx_msg void OnShowInNewWindow(); afx_msg void OnSelectAllSegments(); afx_msg void OnDeleteSegment(); afx_msg void OnUpdateFileExportsegments(CCmdUI* pCmdUI); afx_msg void OnUpdateSelectAllSegments(CCmdUI* pCmdUI); afx_msg void OnUpdateDeleteSegment(CCmdUI* pCmdUI); afx_msg void OnUpdateClearSegments(CCmdUI* pCmdUI); afx_msg void OnUpdateDrawSegment(CCmdUI* pCmdUI); afx_msg void OnUpdateDrawCancelrect(CCmdUI* pCmdUI); afx_msg void OnUpdateAutoManualSegmentation(CCmdUI* pCmdUI); afx_msg void OnCombineSegments(); afx_msg void OnUpdateCombineSegments(CCmdUI* pCmdUI); afx_msg void OnUpdateShowInNewWindow(CCmdUI* pCmdUI); afx_msg void OnUpdateSegmentType(CCmdUI* pCmdUI); afx_msg void OnUpdateShowSegInfo(CCmdUI* pCmdUI); afx_msg void OnUpdateSegmentHistogram(CCmdUI* pCmdUI); afx_msg void OnUpdateSegmentUniqueColors(CCmdUI* pCmdUI); afx_msg void OnEnlargeSegment(); afx_msg void OnFileSavePdf(); afx_msg void OnUpdateEnlargeSegment(CCmdUI* pCmdUI); afx_msg void OnDeselectAll(); afx_msg void OnUpdateDeselectAll(CCmdUI* pCmdUI); afx_msg void OnKeyDownLeadRasterView1(short KeyCode, short Shift); DECLARE_EVENTSINK_MAP() //}}AFX_MSG DECLARE_MESSAGE_MAP() }; #ifndef _DEBUG // debug version in SegDemoView.cpp inline CSegDemoDoc* CSegDemoView::GetDocument() { return (CSegDemoDoc*)m_pDocument; } #endif ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ will insert additional declarations immediately before the previous line. #endif // !defined(AFX_SEGDEMOVIEW_H__C77D568D_B9A5_4B52_A44D_6664B23A0F3F__INCLUDED_)