22 PL_DECLARE_POD_TYPE();
24 plUInt32 m_uiCategory;
25 plUInt32 m_uiSortedIdx;
33 void SetScrubberPosition(
double fPosition);
34 double GetScrubberPosition()
const {
return m_fScrubberPosition; }
38 QPoint MapFromScene(
const QPointF& pos)
const;
39 QPointF MapToScene(
const QPoint& pos)
const;
41 void ClearSelection();
45 void DoubleClickEvent(
double fScenePosX,
double fEpsilon);
46 void DeleteControlPointsEvent();
47 void MoveControlPointsEvent(
double fMoveX);
48 void BeginOperationEvent(QString sName);
49 void EndOperationEvent(
bool bCommit);
50 void ScaleControlPointsEvent(
const QPointF& centerPos,
double fScaleX);
51 void ContextMenuEvent(QPoint pos, QPointF scenePos);
52 void SelectionChangedEvent();
55 virtual void paintEvent(QPaintEvent* e)
override;
56 virtual void mousePressEvent(QMouseEvent* e)
override;
57 virtual void mouseReleaseEvent(QMouseEvent* e)
override;
58 virtual void mouseMoveEvent(QMouseEvent* e)
override;
59 virtual void mouseDoubleClickEvent(QMouseEvent* e)
override;
60 virtual void wheelEvent(QWheelEvent* e)
override;
61 virtual void keyPressEvent(QKeyEvent* e)
override;
64 enum class ClickTarget
88 PL_DECLARE_POD_TYPE();
90 plUInt32 m_uiOrgIndex;
101 bool IsSelected(SelectedPoint cp)
const;
102 void SetSelection(SelectedPoint cp);
104 void ToggleSelected(SelectedPoint cp);
105 void SetSelected(SelectedPoint cp,
bool set);
107 void PaintOutsideAreaOverlay(QPainter* painter)
const;
108 void PaintControlPoints(QPainter* painter)
const;
109 void PaintMultiSelectionSquare(QPainter* painter)
const;
110 void PaintScrubber(QPainter& p)
const;
111 void RenderVerticalGrid(QPainter* painter,
const QRectF& viewportSceneRect,
double fRoughGridDensity);
112 QRectF ComputeViewportSceneRect()
const;
113 bool PickCpAt(
const QPoint& pos,
float fMaxPixelDistance, SelectedPoint& out_Result)
const;
114 ClickTarget DetectClickTarget(
const QPoint& pos);
117 void ComputeSelectionRect();
118 SelectArea WhereIsPoint(QPoint pos)
const;
120 void RecreateSortedData();
124 EditState m_State = EditState::None;
128 double m_fMaxCurveExtent = 0;
129 double m_fSceneTranslationX = 0;
130 QPointF m_SceneToPixelScale;
131 QPoint m_LastMousePos;
133 QBrush m_ControlPointBrush;
134 QBrush m_SelectedControlPointBrush;
135 QPen m_ControlPointPen;
137 bool m_bBegunChanges =
false;
138 bool m_bFrameBeforePaint =
true;
140 QPoint m_MultiSelectionStart;
141 QRect m_MultiSelectRect;
142 QRectF m_SelectionBRect;
143 QPointF m_ScaleReferencePoint;
144 QPointF m_ScaleStartPoint;
145 QPointF m_TotalPointDrag;
146 QRubberBand* m_pRubberband =
nullptr;
148 bool m_bShowScrubber =
false;
149 double m_fScrubberPosition = 0;