|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef XSHROWVIEWER_H
|
|
Toshihiro Shimizu |
890ddd |
#define XSHROWVIEWER_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include <qwidget></qwidget>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
// forward declaration
|
|
Toshihiro Shimizu |
890ddd |
class XsheetViewer;
|
|
Toshihiro Shimizu |
890ddd |
class QMenu;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
namespace XsheetGUI {
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class DragTool;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//=============================================================================
|
|
Toshihiro Shimizu |
890ddd |
// RowArea
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
//! La classe si occupa della visualizzazione dell'area che gestisce le righe.
|
|
Shinya Kitaoka |
d1f6c4 |
class RowArea final : public QWidget {
|
|
Shinya Kitaoka |
120a6e |
Q_OBJECT
|
|
Shinya Kitaoka |
120a6e |
XsheetViewer *m_viewer;
|
|
Shinya Kitaoka |
120a6e |
int m_row;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
enum ShowOnionToSetFlag {
|
|
Shinya Kitaoka |
120a6e |
None = 0,
|
|
Shinya Kitaoka |
120a6e |
Fos,
|
|
shun-iwasawa |
2b24e8 |
Mos,
|
|
shun-iwasawa |
2b24e8 |
ShiftTraceGhost
|
|
shun-iwasawa |
2b24e8 |
} m_showOnionToSet;
|
|
Shinya Kitaoka |
120a6e |
|
|
jabarrera |
eb0a56 |
enum Direction { up = 0, down };
|
|
jabarrera |
eb0a56 |
|
|
Shinya Kitaoka |
120a6e |
// Play ranges
|
|
Shinya Kitaoka |
120a6e |
int m_r0;
|
|
Shinya Kitaoka |
120a6e |
int m_r1;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
QPoint m_pos;
|
|
Shinya Kitaoka |
120a6e |
bool m_playRangeActiveInMousePress;
|
|
Shinya Kitaoka |
120a6e |
int m_mousePressRow;
|
|
Shinya Kitaoka |
120a6e |
QString m_tooltip;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
// panning by middle-drag
|
|
Shinya Kitaoka |
120a6e |
bool m_isPanning;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void drawRows(QPainter &p, int r0, int r1);
|
|
manongjohn |
a21b06 |
void drawPlayRangeBackground(QPainter &p, int r0, int r1);
|
|
Shinya Kitaoka |
120a6e |
void drawPlayRange(QPainter &p, int r0, int r1);
|
|
Shinya Kitaoka |
120a6e |
void drawCurrentRowGadget(QPainter &p, int r0, int r1);
|
|
manongjohn |
d44297 |
void drawOnionSkinBackground(QPainter &p, int r0, int r1);
|
|
Shinya Kitaoka |
120a6e |
void drawOnionSkinSelection(QPainter &p);
|
|
Shinya Kitaoka |
120a6e |
void drawPinnedCenterKeys(QPainter &p, int r0, int r1);
|
|
manongjohn |
1be264 |
void drawCurrentTimeIndicator(QPainter &p);
|
|
manongjohn |
1be264 |
void drawCurrentTimeLine(QPainter &p);
|
|
shun-iwasawa |
2b24e8 |
void drawShiftTraceMarker(QPainter &p);
|
|
Shinya Kitaoka |
120a6e |
|
|
shun-iwasawa |
31accf |
#if defined(x64)
|
|
Jeremy Bullock |
f15907 |
void drawStopMotionCameraIndicator(QPainter &p);
|
|
Jeremy Bullock |
f15907 |
#endif
|
|
Jeremy Bullock |
f15907 |
|
|
Shinya Kitaoka |
120a6e |
DragTool *getDragTool() const;
|
|
Shinya Kitaoka |
120a6e |
void setDragTool(DragTool *dragTool);
|
|
Toshihiro Shimizu |
890ddd |
|
|
jabarrera |
eb0a56 |
// Return when the item-menu setAutoMarkers can be enabled.
|
|
jabarrera |
eb0a56 |
bool canSetAutoMarkers();
|
|
luz paz |
5d417b |
// Return the number of the last non-empty cell found. You can set the
|
|
jabarrera |
eb0a56 |
// direction of the search.
|
|
jabarrera |
eb0a56 |
int getNonEmptyCell(int row, int column, Direction);
|
|
jabarrera |
eb0a56 |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Toshihiro Shimizu |
890ddd |
#if QT_VERSION >= 0x050500
|
|
Shinya Kitaoka |
120a6e |
RowArea(XsheetViewer *parent, Qt::WindowFlags flags = 0);
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Shinya Kitaoka |
120a6e |
RowArea(XsheetViewer *parent, Qt::WFlags flags = 0);
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Shinya Kitaoka |
120a6e |
~RowArea();
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
protected:
|
|
Shinya Kitaoka |
473e70 |
void paintEvent(QPaintEvent *) override;
|
|
Shinya Kitaoka |
473e70 |
|
|
Shinya Kitaoka |
473e70 |
void mousePressEvent(QMouseEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
void mouseMoveEvent(QMouseEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
void mouseReleaseEvent(QMouseEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
void contextMenuEvent(QContextMenuEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
void mouseDoubleClickEvent(QMouseEvent *event) override;
|
|
Shinya Kitaoka |
473e70 |
bool event(QEvent *event) override;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void setMarker(int index);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
protected slots:
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void onSetStartMarker();
|
|
Shinya Kitaoka |
120a6e |
void onSetStopMarker();
|
|
Shinya Kitaoka |
120a6e |
void onRemoveMarkers();
|
|
Toshihiro Shimizu |
890ddd |
|
|
jabarrera |
eb0a56 |
// Set start and end marker automatically respect the current row and column.
|
|
jabarrera |
eb0a56 |
void onSetAutoMarkers();
|
|
jabarrera |
eb0a56 |
|
|
Shinya Kitaoka |
120a6e |
// set both the from and to markers at the specified row
|
|
Shinya Kitaoka |
120a6e |
void onPreviewThis();
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun-iwasawa |
6bac0f |
} // namespace XsheetGUI
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
#endif // XSHROWVIEWER_H
|