#pragma once #ifndef IMAGE_GROUPING_INCLUDED #define IMAGE_GROUPING_INCLUDED #include "tcommon.h" #include 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