File indexing completed on 2024-03-24 04:02:32

0001 /* -*- c++ -*- */
0002 
0003 #ifndef krulertest_h
0004 #define krulertest_h
0005 
0006 #include <QCheckBox>
0007 #include <QFrame>
0008 #include <QRadioButton>
0009 
0010 class KRuler;
0011 class QWidget;
0012 class QGridLayout;
0013 class QGroupBox;
0014 class QLabel;
0015 class QSpinBox;
0016 class QDoubleSpinBox;
0017 
0018 class MouseWidget : public QFrame
0019 {
0020     Q_OBJECT
0021 public:
0022     MouseWidget(QWidget *parent = nullptr);
0023 
0024 Q_SIGNALS:
0025     void newXPos(int);
0026     void newYPos(int);
0027     void newWidth(int);
0028     void newHeight(int);
0029 
0030 protected:
0031     void mousePressEvent(QMouseEvent *) override;
0032     void mouseReleaseEvent(QMouseEvent *) override;
0033     void mouseMoveEvent(QMouseEvent *) override;
0034     void resizeEvent(QResizeEvent *) override;
0035 
0036 private:
0037     bool mouseButtonDown;
0038 };
0039 
0040 class KRulerTest : public QWidget
0041 {
0042     Q_OBJECT
0043 public:
0044     KRulerTest();
0045     ~KRulerTest() override;
0046 
0047 private Q_SLOTS:
0048     void slotNewWidth(int);
0049     void slotNewHeight(int);
0050 
0051     void slotSetTinyMarks(bool);
0052     void slotSetLittleMarks(bool);
0053     void slotSetMediumMarks(bool);
0054     void slotSetBigMarks(bool);
0055     void slotSetEndMarks(bool);
0056     void slotSetRulerPointer(bool);
0057 
0058     void slotSetRulerLength(int);
0059     void slotFixRulerLength(bool);
0060     void slotSetMStyle(int);
0061     void slotUpdateShowMarks();
0062     void slotCheckLength(bool);
0063 
0064     void slotSetRotate(double);
0065     void slotSetXTrans(double);
0066     void slotSetYTrans(double);
0067 
0068 private:
0069     KRuler *hruler, *vruler;
0070     QGridLayout *layout;
0071     QFrame *mainframe = nullptr;
0072     MouseWidget *bigwidget = nullptr;
0073     QFrame *miniwidget = nullptr;
0074 
0075     QLabel *mouse_message;
0076     QGroupBox *showMarks, *lineEdit, *vertrot;
0077     QCheckBox *showTM, *showLM, *showMM, *showBM, *showEM, *showPT, *fixLen;
0078     QSpinBox *beginMark, *endMark, *lengthInput;
0079     QDoubleSpinBox *transX, *transY, *rotV;
0080     QGroupBox *metricstyle;
0081     QRadioButton *pixelmetric, *inchmetric, *mmmetric, *cmmetric, *mmetric;
0082 };
0083 #endif