Blob Blame Raw


#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 : 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