tahoma2d/toonz/sources/include/toonzqt/tselectionhandle.h

60 lines
1.3 KiB
C
Raw Normal View History

2016-05-17 03:04:11 +12:00
#pragma once
2016-03-19 06:57:51 +13:00
#ifndef TSELECTIONHANDLE_H
#define TSELECTIONHANDLE_H
#include <QObject>
#include <string>
#include <vector>
#include "toonzqt/menubarcommand.h"
#include "tcommon.h"
#undef DVAPI
#undef DVVAR
#ifdef TOONZQT_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
// forward declaration
class TSelection;
class CommandHandlerInterface;
//=============================================================================
// TSelectionHandle
//-----------------------------------------------------------------------------
class DVAPI TSelectionHandle final : public QObject {
2016-06-15 18:43:10 +12:00
Q_OBJECT
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
std::vector<TSelection *> m_selectionStack;
std::vector<std::string> m_enabledCommandIds;
2016-03-19 06:57:51 +13:00
public:
2016-06-15 18:43:10 +12:00
TSelectionHandle();
~TSelectionHandle();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
TSelection *getSelection() const;
void setSelection(TSelection *selection);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void pushSelection();
void popSelection();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
// called by TSelection::enableCommand
void enableCommand(std::string cmdId, CommandHandlerInterface *handler);
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
void notifySelectionChanged();
2016-03-19 06:57:51 +13:00
2016-06-15 18:43:10 +12:00
static TSelectionHandle *getCurrent();
2016-03-19 06:57:51 +13:00
signals:
2016-06-15 18:43:10 +12:00
void selectionSwitched(TSelection *oldSelection, TSelection *newSelection);
void selectionChanged(TSelection *selection);
2016-03-19 06:57:51 +13:00
};
2016-06-15 18:43:10 +12:00
#endif // TSELECTIONHANDLE_H