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