#pragma once
#ifndef CANVASSIZEPOPUP_H
#define CANVASSIZEPOPUP_H
#include "toonzqt/dvdialog.h"
#include "toonz/txshsimplelevel.h"
#include <QPixmap>
// forward declaration
class QButtonGroup;
class QComboBox;
class TMeasure;
namespace DVGui
{
class DoubleLineEdit;
class CheckBox;
}
//=============================================================================
enum PeggingPositions {
e00,
e01,
e02,
e10,
e11,
e12,
e20,
e21,
e22
};
//=============================================================================
class PeggingWidget : public QWidget
{
Q_OBJECT
QButtonGroup *m_buttonGroup;
QPushButton *m_00, *m_01, *m_02;
QPushButton *m_10, *m_11, *m_12;
QPushButton *m_20, *m_21, *m_22;
QPixmap m_topPix, m_topRightPix;
PeggingPositions m_pegging;
bool m_cutLx, m_cutLy;
public:
PeggingWidget(QWidget *parent = 0);
PeggingPositions getPeggingPosition() const { return m_pegging; }
void resetWidget();
void cutLx(bool value) { m_cutLx = value; }
void cutLy(bool value) { m_cutLy = value; }
void updateAnchor();
private:
void createButton(QPushButton **button, PeggingPositions position);
protected:
void paintEvent(QPaintEvent *);
public slots:
void on00();
void on01();
void on02();
void on10();
void on11();
void on12();
void on20();
void on21();
void on22();
};
//=============================================================================
// CanvasSizePopup
//-----------------------------------------------------------------------------
class CanvasSizePopup : public DVGui::Dialog
{
Q_OBJECT
TXshSimpleLevelP m_sl;
QLabel *m_currentXSize;
QLabel *m_currentYSize;
QComboBox *m_unit;
DVGui::DoubleLineEdit *m_xSizeFld;
DVGui::DoubleLineEdit *m_ySizeFld;
DVGui::CheckBox *m_relative;
PeggingWidget *m_pegging;
TMeasure *m_xMeasure, *m_yMeasure;
public:
CanvasSizePopup();
protected:
void showEvent(QShowEvent *e);
public slots:
void onOkBtn();
void onSizeChanged();
void onRelative(bool);
void onUnitChanged(const QString &);
};
#endif // CANVASSIZEPOPUP_H