You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

71 lines
2.2 KiB
C

1 month ago
#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;
};
};