|
|
|
|
|
#pragma once
|
|
|
|
|
|
#include "itemfocusrect.h"
|
|
|
|
|
|
#include "itemselectcurve.h"
|
|
|
|
|
|
#include "itemcurve.h"
|
|
|
|
|
|
|
|
|
|
|
|
namespace NItem
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* <EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
*/
|
|
|
|
|
|
class CItemBreakCurve : public CItemFocusRect
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CItemBreakCurve(CSigmaDoc * ppDoc);
|
|
|
|
|
|
virtual ~CItemBreakCurve(void);
|
|
|
|
|
|
|
|
|
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
int OnMouseMove(CDC *pDC, UINT nFlags, CPoint point) override;
|
|
|
|
|
|
void OnRButtonDown(UINT nFlags, CPoint point) override;
|
|
|
|
|
|
void DoLButtonUp(CDC *pDC) override;
|
|
|
|
|
|
void OnDraw(CXyDC* pDC) override;
|
|
|
|
|
|
void OnDraw(CXyDC* pXyDC, CDC *pDC) override;
|
|
|
|
|
|
virtual int ProcessCurve(CCurveEx* pCurve, COne* pOne, CPoint2D* pPoint);
|
|
|
|
|
|
int GetSubMenu() override;
|
|
|
|
|
|
virtual void Clear(void);
|
|
|
|
|
|
void BreakAllEditableCurve(CPositionList& list);
|
|
|
|
|
|
bool IsBreaked();
|
|
|
|
|
|
int GetSelectCount();
|
|
|
|
|
|
void HightLightFirstCurve();
|
|
|
|
|
|
protected:
|
|
|
|
|
|
void ProcessLButtonUp(void);
|
|
|
|
|
|
int BreakOne(COne* pBaseOne, CPtrList& allBaseCurveList);
|
|
|
|
|
|
void BreakCurve(CCurveEx* pCurve, CPositionList& list, CRect8* pRect);
|
|
|
|
|
|
void BreakCurveWithAction(CCurveEx* pCurve, CPositionList& list, CRect8* pRect);
|
|
|
|
|
|
POSITION AddCurve(COne* pBaseOne);
|
|
|
|
|
|
POSITION AddCurve(COne* pBaseOne, CCurveEx* pCurve);
|
|
|
|
|
|
void sort_location(CList<CCrossPoint,CCrossPoint> &xy,CCrossPoint &cp,int nSortIndex);
|
|
|
|
|
|
void SortLocation(CList<CCrossPoint,CCrossPoint> &xy, int nSortIndex);
|
|
|
|
|
|
CItemSelectCurve *m_pSelectCurve; // <20>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
POSITION curPos;
|
|
|
|
|
|
CList<dfPoint,dfPoint> PointList;
|
|
|
|
|
|
BOOL m_bRange;
|
|
|
|
|
|
CPositionList AddList, DelList;
|
|
|
|
|
|
UINT m_nActionID; //undo<64><6F>ϢID
|
|
|
|
|
|
BOOL m_bAutoDelete;
|
|
|
|
|
|
int m_bCountSelected;
|
|
|
|
|
|
protected:
|
|
|
|
|
|
BOOL m_bNoLineValue; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ㴦<DAB5><E3B4A6><EFBFBD><EFBFBD>
|
|
|
|
|
|
bool m_bBreak;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
class CItemBreakCurveDirect : public CItemBreakCurve
|
|
|
|
|
|
{
|
|
|
|
|
|
public:
|
|
|
|
|
|
CItemBreakCurveDirect(CSigmaDoc * ppDoc);
|
|
|
|
|
|
virtual ~CItemBreakCurveDirect(void);
|
|
|
|
|
|
|
|
|
|
|
|
void OnDraw(CXyDC* pXyDC, CDC *pDC) override;
|
|
|
|
|
|
void OnLButtonDown(CDC *pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
int OnMouseMove(CDC* pDC, UINT nFlags, CPoint point) override;// , BYTE*& destBuffer, int& destLen);
|
|
|
|
|
|
void OnLButtonUp(CDC* pDC, UINT nFlags, CPoint point, int vk) override;
|
|
|
|
|
|
void OnRButtonDown(UINT nFlags, CPoint point) override;
|
|
|
|
|
|
BOOL OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) override;
|
|
|
|
|
|
virtual void Clear(void);
|
|
|
|
|
|
protected:
|
|
|
|
|
|
CItemCurve * m_pItemCurve;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
};
|