tahoma2d/toonz/sources/include/toonz/tpalettehandle.h
2017-11-07 16:24:20 +09:00

98 lines
2.2 KiB
C++

#pragma once
#ifndef TPALETTEHANDLE_H
#define TPALETTEHANDLE_H
// TnzCore includes
#include "tcommon.h"
#include "tpalette.h"
// Qt includes
#include <QObject>
#undef DVAPI
#undef DVVAR
#ifdef TOONZLIB_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
//=============================================================================
// TPaletteHandle
//-----------------------------------------------------------------------------
class DVAPI TPaletteHandle final : public QObject {
Q_OBJECT
TPalette *m_palette;
int m_styleIndex;
int m_styleParamIndex;
public:
TPaletteHandle();
~TPaletteHandle();
TPalette *getPalette() const;
int getStyleIndex() const;
int getStyleParamIndex() const;
TColorStyle *getStyle() const;
void setPalette(TPalette *palette, int styleIndex = 1);
void setStyleIndex(int index);
void setStyleParamIndex(int index);
public:
void notifyPaletteSwitched() { emit paletteSwitched(); }
void notifyPaletteChanged();
void notifyPaletteTitleChanged();
void notifyColorStyleSwitched();
// unchange the dirty flag when undo operation
void notifyColorStyleChanged(bool onDragging = true,
bool setDirtyFlag = true);
void notifyPaletteDirtyFlagChanged() { emit paletteDirtyFlagChanged(); }
void notifyPaletteLockChanged() { emit paletteLockChanged(); }
void toggleAutopaint();
public:
signals:
void paletteSwitched();
void paletteChanged();
void paletteTitleChanged();
void colorStyleSwitched();
void colorStyleChanged(bool);
void colorStyleChangedOnMouseRelease();
void paletteDirtyFlagChanged();
void paletteLockChanged();
private:
friend class PaletteController;
bool connectBroadcasts(const QObject *receiver);
bool disconnectBroadcasts(const QObject *receiver);
private:
signals:
// Internal broadcaster signals to multiple palette handles.
// Do not connect to user code.
void broadcastPaletteChanged();
void broadcastPaletteTitleChanged();
void broadcastColorStyleSwitched();
void broadcastColorStyleChanged(bool);
void broadcastColorStyleChangedOnMouseRelease();
};
#endif // TPALETTEHANDLE_H