Shinya Kitaoka 810553
#pragma once
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef RULER_INCLUDED
Toshihiro Shimizu 890ddd
#define RULER_INCLUDED
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#include <qwidget></qwidget>
Toshihiro Shimizu 890ddd
#include "toonz/sceneproperties.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// forward declaration
Toshihiro Shimizu 890ddd
class SceneViewer;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//=============================================================================
Toshihiro Shimizu 890ddd
// Ruler
Toshihiro Shimizu 890ddd
//-----------------------------------------------------------------------------
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
/*! La classe si occupa della visualizzazione e della gestione
Toshihiro Shimizu 890ddd
    di una linea guida (puo' essere orizzontale o verticale)
Toshihiro Shimizu 890ddd
*/
Shinya Kitaoka d1f6c4
class Ruler final : public QWidget {
Shinya Kitaoka 120a6e
  Q_OBJECT
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  QColor m_parentBgColor;
Shinya Kitaoka 120a6e
  Q_PROPERTY(QColor ParentBGColor READ getParentBGColor WRITE setParentBGColor)
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  QColor m_scaleColor;
Shinya Kitaoka 120a6e
  Q_PROPERTY(QColor ScaleColor READ getScaleColor WRITE setScaleColor)
Toshihiro Shimizu 890ddd
Kite 521c84
  QColor m_borderColor;
Kite 521c84
  Q_PROPERTY(QColor BorderColor READ getBorderColor WRITE setBorderColor)
Kite 521c84
Kite 521c84
  QColor m_handleColor;
Kite 521c84
  Q_PROPERTY(QColor HandleColor READ getHandleColor WRITE setHandleColor)
Kite 521c84
Kite 521c84
  QColor m_handleDragColor;
Kite 521c84
  Q_PROPERTY(
Kite 521c84
      QColor HandleDragColor READ getHandleDragColor WRITE setHandleDragColor)
Kite 521c84
Shinya Kitaoka 120a6e
  void setParentBGColor(const QColor &color) { m_parentBgColor = color; }
Shinya Kitaoka 120a6e
  QColor getParentBGColor() const { return m_parentBgColor; }
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void setScaleColor(const QColor &color) { m_scaleColor = color; }
Shinya Kitaoka 120a6e
  QColor getScaleColor() const { return m_scaleColor; }
Toshihiro Shimizu 890ddd
Kite 521c84
  void setBorderColor(const QColor &color) { m_borderColor = color; }
Kite 521c84
  QColor getBorderColor() const { return m_borderColor; }
Kite 521c84
Kite 521c84
  void setHandleColor(const QColor &color) { m_handleColor = color; }
Kite 521c84
  QColor getHandleColor() const { return m_handleColor; }
Kite 521c84
Kite 521c84
  void setHandleDragColor(const QColor &color) { m_handleDragColor = color; }
Kite 521c84
  QColor getHandleDragColor() const { return m_handleDragColor; }
Kite 521c84
Shinya Kitaoka 120a6e
  SceneViewer *m_viewer;
Shinya Kitaoka 120a6e
  bool m_vertical;
Shinya Kitaoka 120a6e
  bool m_moving;
Shinya Kitaoka 120a6e
  bool m_hiding;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  typedef TSceneProperties::Guides Guides;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Shinya Kitaoka 120a6e
  Ruler(QWidget *parent, SceneViewer *viewer, bool vertical);
Shinya Kitaoka 120a6e
  Guides &getGuides() const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  int getGuideCount() const;
Shinya Kitaoka 120a6e
  double getGuide(int index) const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  double getUnit() const;
Shinya Kitaoka 120a6e
  void getIndices(double origin, double iunit, int size, int &i0, int &i1,
Shinya Kitaoka 120a6e
                  int &ic) const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  double getZoomScale() const;
Shinya Kitaoka 120a6e
  double getPan() const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  void drawVertical(QPainter &);
Shinya Kitaoka 120a6e
  void drawHorizontal(QPainter &);
Shinya Kitaoka 473e70
  void paintEvent(QPaintEvent *) override;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 120a6e
  double posToValue(const QPoint &p) const;
Toshihiro Shimizu 890ddd
Shinya Kitaoka 473e70
  void mousePressEvent(QMouseEvent *e) override;
Shinya Kitaoka 473e70
  void mouseMoveEvent(QMouseEvent *e) override;
Shinya Kitaoka 473e70
  void mouseReleaseEvent(QMouseEvent *e) override;
shun-iwasawa 86528d
  void contextMenuEvent(QContextMenuEvent *event) override;
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif