tahoma2d/toonz/sources/include/tools/imagegrouping.h
Shinya Kitaoka d1f6c4e95b REFACTORING: Add final specifiers (#537)
* add final specifiers

* apply clang-format

* fix for macOS
2016-06-29 15:17:12 +09:00

69 lines
1.2 KiB
C++

#pragma once
#ifndef IMAGE_GROUPING_INCLUDED
#define IMAGE_GROUPING_INCLUDED
#include "tcommon.h"
#include <QObject>
class StrokeSelection;
class QMenu;
#undef DVAPI
#undef DVVAR
#ifdef TNZTOOLS_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
class DVAPI TGroupCommand final : public QObject {
Q_OBJECT
public:
enum {
NONE = 0,
FRONT = 1,
FORWARD = 2,
BACKWARD = 4,
BACK = 8,
GROUP = 16,
UNGROUP = 32
};
StrokeSelection *m_sel;
TGroupCommand() : m_sel(0) {}
void setSelection(StrokeSelection *sel) { m_sel = sel; }
UCHAR getGroupingOptions();
void addMenuItems(QMenu *menu);
void back() {
if (!(getGroupingOptions() & BACK)) return;
moveGroup(BACK);
}
void backward() {
if (!(getGroupingOptions() & BACKWARD)) return;
moveGroup(BACKWARD);
}
void front() {
if (!(getGroupingOptions() & FRONT)) return;
moveGroup(FRONT);
}
void forward() {
if (!(getGroupingOptions() & FORWARD)) return;
moveGroup(FORWARD);
}
void group();
void ungroup();
void enterGroup();
void exitGroup();
private:
void moveGroup(UCHAR moveType);
};
#endif