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.
nmWATI/Include/iPlot/iPlotCurveT/Objects/ZxObjRect.h

106 lines
2.5 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#pragma once
#include <QTextEdit>
#include "ZxObjBase.h"
class I_PLOTCURVE_T_EXPORT ZxObjRect
: public ZxObjBase
{
Q_OBJECT
ZX_DECLARE_DYNAMIC
public:
ZxObjRect();
ZxObjRect(const QString& sName,
ZxSubAxisX* pAxisX,
ZxSubAxisY* pAxisY);
~ZxObjRect();
virtual void init(const QString& sName,
ZxSubAxisX* pAxisX,
ZxSubAxisY* pAxisY);
// 击中
virtual bool hitTest(const QPointF& pt);
// 具体击中实现的函数,单纯击中,不做选项的改变
// nOption用int是因为Rect类的击中选项不一致
// nOption为负值表示未击中此时返回false
virtual bool _runHitTest(const QPointF& pt, int& nOption, int& nSubIndex);
// 为了方便而再次封装,仅仅判断位置
virtual RectPos _getPtPosOfRect(const QPointF& pt);
// 击中后ButtonUp后的处理
// pt1:鼠标Down点pt2鼠标Up点
virtual bool runMove(const QPointF& pt1, const QPointF& pt2);
// 封装
virtual void initTools();
protected:
// 设置图元对象的属性标志
virtual void initFlags();
protected:
public:
virtual void paintBack(QPainter* painter,
const ZxPaintParam& param);
virtual void paintFrame(QPainter* painter);
virtual void onSerialize(ZxSerializer* ser);
virtual void onDeserialize(ZxSerializer* ser);
virtual void onLoadTempl(ZxSerializer* ser);
virtual void onSaveTempl(ZxSerializer* ser);
virtual void fillPtyPano(IxPtyPano* sheet);
public:
// 边界
virtual double getL() const;
virtual void setL(double f);
virtual double getR() const;
virtual void setR(double f);
virtual double getT() const;
virtual void setT(double f);
virtual double getB() const;
virtual void setB(double f);
virtual void setValueByPos(const QPointF& ptTL, const QPointF& ptRB);
virtual void setValueByPos(const double& l, const double& r,
const double& t, const double& b);
// 是否显示边框
bool isFrameVisible(void) const;
void setFrameVisible(bool bIsShow);
// 背景色
QColor getBackgroundColor();
void setBackgroundColor(QColor color);
// 背景透明度
int getBackgroundAlpha();
void setBackgroundAlpha(int nAlpha);
protected:
bool m_bFrameVisible; //是否显示边框
QColor m_clrBackgrd; //背景色
public:
RectPos m_oHitPos;
// 临时变量
bool m_bAsBand;
bool m_bBanded;
};