|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TPALETTE_H
|
|
Toshihiro Shimizu |
890ddd |
#define TPALETTE_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tpersist.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "timage.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tfilepath.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tpixel.h"
|
|
Toshihiro Shimizu |
890ddd |
#include "tcolorstyles.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include <qmutex></qmutex>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TVRENDER_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 |
|
|
Shinya Kitaoka |
9f5a1b |
#ifdef _WIN32
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(push)
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(disable : 4251)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
class TPixelRGBM32;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
typedef TSmartPointerT<tpalette> TPaletteP;</tpalette>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//*****************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
//*****************************************************************************************
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/*!
|
|
Toshihiro Shimizu |
890ddd |
\brief The class representing a Toonz palette object.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
\par Rationale
|
|
Shinya Kitaoka |
120a6e |
A palette is a collection of color styles that adds a level of
|
|
Shinya Kitaoka |
120a6e |
indirection
|
|
Toshihiro Shimizu |
890ddd |
on color selections when drawing certain graphical objects.
|
|
Toshihiro Shimizu |
890ddd |
\n
|
|
Shinya Kitaoka |
120a6e |
Palette-based objects store style identifiers into an associated
|
|
Shinya Kitaoka |
120a6e |
palette object,
|
|
Shinya Kitaoka |
120a6e |
rather than the colors directly. When a color needs to be accessed, the
|
|
Shinya Kitaoka |
120a6e |
palette
|
|
Shinya Kitaoka |
120a6e |
objects is queried for a style id, and the associated \a style is
|
|
Shinya Kitaoka |
120a6e |
returned.
|
|
Toshihiro Shimizu |
890ddd |
\n
|
|
Shinya Kitaoka |
120a6e |
A TColorStyle instance generalizes the notion of \a color, providing the
|
|
Shinya Kitaoka |
120a6e |
ability to
|
|
Toshihiro Shimizu |
890ddd |
reduce a style instance to a color, \a and specialized drawing functions for
|
|
Toshihiro Shimizu |
890ddd |
vector graphics objects.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
\par Reserved colors
|
|
Shinya Kitaoka |
120a6e |
A palette object has two fixed \a reserved styles - which cannot be
|
|
Shinya Kitaoka |
120a6e |
removed - at
|
|
Shinya Kitaoka |
120a6e |
indexes \p 0 and \p1. Index \p 0 is reserved for the \b transparent color.
|
|
Shinya Kitaoka |
120a6e |
Index \p 1
|
|
Toshihiro Shimizu |
890ddd |
is reserved for the \b ink color, initialized by default to black.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
\par Syntax
|
|
Shinya Kitaoka |
120a6e |
A palette is supposedly created on the heap, to the point that, in
|
|
Shinya Kitaoka |
120a6e |
current
|
|
Shinya Kitaoka |
120a6e |
implementation, copy and assignment are \a forbidden. This behavior is
|
|
Shinya Kitaoka |
120a6e |
somewhat
|
|
Shinya Kitaoka |
120a6e |
inconsitent since a palette \b is currently \a clonable and \a assignable
|
|
Shinya Kitaoka |
120a6e |
with the
|
|
Shinya Kitaoka |
120a6e |
appropriate functions. Normalization to common C++ syntax should be enforced
|
|
Shinya Kitaoka |
120a6e |
ASAP.
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
\sa The TColorStyle class.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
d1f6c4 |
class DVAPI TPalette final : public TPersist, public TSmartObject {
|
|
Shinya Kitaoka |
120a6e |
DECLARE_CLASS_CODE
|
|
Shinya Kitaoka |
120a6e |
PERSIST_DECLARATION(TPalette);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\brief A palette page is a restricted view of a palette instance.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
class DVAPI Page {
|
|
Shinya Kitaoka |
120a6e |
friend class TPalette;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
private:
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_name;
|
|
Shinya Kitaoka |
120a6e |
int m_index;
|
|
Shinya Kitaoka |
120a6e |
TPalette *m_palette;
|
|
Shinya Kitaoka |
120a6e |
std::vector<int> m_styleIds;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
public:
|
|
Shinya Kitaoka |
120a6e |
Page(std::wstring name);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
std::wstring getName() const {
|
|
Shinya Kitaoka |
120a6e |
return m_name;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
void setName(std::wstring name) {
|
|
Shinya Kitaoka |
120a6e |
m_name = name;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TPalette *getPalette() const {
|
|
Shinya Kitaoka |
120a6e |
return m_palette;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getIndex() const {
|
|
Shinya Kitaoka |
120a6e |
return m_index;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getStyleCount() const {
|
|
Shinya Kitaoka |
120a6e |
return (int)m_styleIds.size();
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getStyleId(int indexInPage) const;
|
|
Shinya Kitaoka |
38fd86 |
//! id in the page, or \p -1 if not
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
TColorStyle *getStyle(int indexInPage) const;
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
//! if not found.
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
//! \return The insertion index in the page, or \p -1 on failure
|
|
Shinya Kitaoka |
120a6e |
int addStyle(int styleId);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\warning The supplied style must have been allocated with \a new.
|
|
Shinya Kitaoka |
120a6e |
\warning Style ownership is surrendered to the palette.
|
|
Shinya Kitaoka |
120a6e |
\return The insertion index in the page, or \p -1 on failure.
|
|
Shinya Kitaoka |
120a6e |
In case of failure, the supplied style is \a deleted.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
int addStyle(TColorStyle *style);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
//! \return The insertion index in the page, or \p -1 on failure
|
|
Shinya Kitaoka |
120a6e |
int addStyle(TPixel32 color);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void insertStyle(int indexInPage, int styleId);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void insertStyle(int indexInPage, TColorStyle *style);
|
|
Shinya Kitaoka |
38fd86 |
//! supplied style in
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void insertStyle(int indexInPage, TPixel32 color);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void removeStyle(int indexInPage);
|
|
Shinya Kitaoka |
38fd86 |
//! position from this page.
|
|
Shinya Kitaoka |
120a6e |
int search(int styleId)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p -1 if it cannot be found on the page.
|
|
Shinya Kitaoka |
120a6e |
int search(TColorStyle *style)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p -1 if it cannot be found on the page.
|
|
Shinya Kitaoka |
120a6e |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
typedef std::map<int, tcolorstylep=""></int,>
|
|
Shinya Kitaoka |
120a6e |
StyleAnimation;
|
|
Shinya Kitaoka |
120a6e |
typedef std::map<int, styleanimation=""></int,>
|
|
Shinya Kitaoka |
120a6e |
StyleAnimationTable;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
friend class Page;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_globalName;
|
|
Shinya Kitaoka |
120a6e |
std::wstring m_paletteName;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int m_version;
|
|
Shinya Kitaoka |
120a6e |
std::vector<page *=""> m_pages;
|
|
Shinya Kitaoka |
120a6e |
std::vector<std::pair<page *,="" tcolorstylep="">> m_styles;
|
|
Shinya Kitaoka |
120a6e |
std::map<int, int=""> m_shortcuts;</int,>
|
|
Shinya Kitaoka |
120a6e |
StyleAnimationTable
|
|
Shinya Kitaoka |
120a6e |
m_styleAnimationTable;
|
|
Shinya Kitaoka |
120a6e |
int m_currentFrame;
|
|
Shinya Kitaoka |
120a6e |
bool m_isCleanupPalette;
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TImageP m_refImg;
|
|
Shinya Kitaoka |
120a6e |
TFilePath m_refImgPath;
|
|
Shinya Kitaoka |
120a6e |
std::vector<tframeid> m_refLevelFids;</tframeid>
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool m_dirtyFlag;
|
|
Shinya Kitaoka |
120a6e |
QMutex m_mutex; //!< Synchronization mutex for multithreading purposes.
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool m_isLocked;
|
|
Shinya Kitaoka |
120a6e |
bool m_askOverwriteFlag; //!< This variable is quite unique. This flag is to
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
shun_iwasawa |
4635d8 |
|
|
shun_iwasawa |
4635d8 |
int m_shortcutScopeIndex;
|
|
shun_iwasawa |
4635d8 |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
TPalette();
|
|
Shinya Kitaoka |
120a6e |
~TPalette();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TPalette *clone()
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
static void setRootDir(const TFilePath &fp);
|
|
Shinya Kitaoka |
38fd86 |
//! save textures in \e
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
static TFilePath getRootDir();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
std::wstring getGlobalName() const {
|
|
Shinya Kitaoka |
120a6e |
return m_globalName;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
void setGlobalName(std::wstring name) {
|
|
Shinya Kitaoka |
120a6e |
m_globalName = name;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setDirtyFlag(bool dirtyFlag)
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
{
|
|
Shinya Kitaoka |
120a6e |
m_dirtyFlag = dirtyFlag;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
m_askOverwriteFlag = dirtyFlag;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
bool getDirtyFlag() {
|
|
Shinya Kitaoka |
120a6e |
return m_dirtyFlag;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TColorStyle *getStyle(int styleId)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p 0 if said id is not stored in the palette.
|
|
Shinya Kitaoka |
120a6e |
int getStyleCount() const {
|
|
Shinya Kitaoka |
120a6e |
return (int)m_styles.size();
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
int getStyleInPagesCount()
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getFirstUnpagedStyle() const;
|
|
Shinya Kitaoka |
38fd86 |
//! not in a page (\p -1 if none).
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\remark Style ownserhip is \a surrendered to the palette
|
|
Shinya Kitaoka |
120a6e |
\return The styleId associated to the inserted style, or \a -1 on
|
|
Shinya Kitaoka |
120a6e |
failure.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
int addStyle(TColorStyle *style);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
int addStyle(const TPixelRGBM32 &color);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\remark Style ownserhip is \a surrendered to the palette.
|
|
Shinya Kitaoka |
120a6e |
\remark Any existing style's animation will be discarded.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
void setStyle(
|
|
Shinya Kitaoka |
120a6e |
int styleId,
|
|
Shinya Kitaoka |
120a6e |
TColorStyle *style);
|
|
Shinya Kitaoka |
120a6e |
void setStyle(int styleId, const TPixelRGBM32 &color);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
int getPageCount() const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
Page *getPage(int pageIndex);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
const Page *getPage(int pageIndex) const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\return A pointer to the newly created page.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
Page *addPage(
|
|
Shinya Kitaoka |
120a6e |
std::wstring name);
|
|
Shinya Kitaoka |
120a6e |
void erasePage(int index);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
void movePage(Page *page, int dstPageIndex);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
Page *getStylePage(int styleId)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\note The distance between colors is calculated with the usual sphrical norm
|
|
Shinya Kitaoka |
120a6e |
between RGBA color components.
|
|
Shinya Kitaoka |
120a6e |
\return The style id of the nearest style, or \p -1 if none was found.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
int getClosestStyle(const TPixelRGBM32 &color)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
473e70 |
void loadData(TIStream &is) override;
|
|
Shinya Kitaoka |
473e70 |
void saveData(TOStream &os) override;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getVersion() const {
|
|
Shinya Kitaoka |
120a6e |
return m_version;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
void setVersion(int v) {
|
|
Shinya Kitaoka |
120a6e |
m_version = v;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setRefLevelFids(const std::vector<tframeid> fids);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
std::vector<tframeid> getRefLevelFids();
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void assign(const TPalette *src,
|
|
Shinya Kitaoka |
120a6e |
bool isFromStudioPalette = false);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
//! if the palette is copied from studio palette, this function will modify
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void merge(const TPalette *src,
|
|
Shinya Kitaoka |
120a6e |
bool isFromStudioPalette =
|
|
Shinya Kitaoka |
120a6e |
false);
|
|
Shinya Kitaoka |
120a6e |
//! if the palette is merged from studio palette, this function will modify
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setAskOverwriteFlag(
|
|
Shinya Kitaoka |
120a6e |
bool askOverwriteFlag) {
|
|
Shinya Kitaoka |
120a6e |
m_askOverwriteFlag = askOverwriteFlag;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
bool getAskOverwriteFlag() {
|
|
Shinya Kitaoka |
120a6e |
return m_askOverwriteFlag;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setIsCleanupPalette(
|
|
Shinya Kitaoka |
120a6e |
bool on);
|
|
Shinya Kitaoka |
120a6e |
bool isCleanupPalette() const {
|
|
Shinya Kitaoka |
120a6e |
return m_isCleanupPalette;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
const TImageP &getRefImg() const {
|
|
Shinya Kitaoka |
120a6e |
return m_refImg;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
void setRefImg(const TImageP &img);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
//! builded or modified using this palette.
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
const TFilePath getRefImgPath() const {
|
|
Shinya Kitaoka |
120a6e |
return m_refImgPath;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
void setRefImgPath(
|
|
Shinya Kitaoka |
120a6e |
const TFilePath &fp);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool isAnimated() const;
|
|
Shinya Kitaoka |
120a6e |
//!(styles change through time).
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getFrame() const;
|
|
Shinya Kitaoka |
120a6e |
void setFrame(int frame);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool isKeyframe(int styleId, int frame) const;
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
//! keyframe in styleId's
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
int getKeyframeCount(int styleId)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
int getKeyframe(int styleId, int index)
|
|
Shinya Kitaoka |
120a6e |
const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p -1 if it couldn't be found.
|
|
Shinya Kitaoka |
38fd86 |
void setKeyframe(int styleId, int frame);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
void clearKeyframe(int styleId, int frame);
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
38fd86 |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Shinya Kitaoka |
120a6e |
\note Key is an integer between 0 and 9 included.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
int getShortcutValue(
|
|
Shinya Kitaoka |
120a6e |
int key) const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p -1 if it couldn't be found.
|
|
Shinya Kitaoka |
120a6e |
/*!
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Shinya Kitaoka |
120a6e |
int getStyleShortcut(
|
|
Shinya Kitaoka |
120a6e |
int styleId) const;
|
|
Shinya Kitaoka |
120a6e |
//! or \p -1 if it couldn't be found.
|
|
Shinya Kitaoka |
120a6e |
void setShortcutValue(
|
|
Shinya Kitaoka |
120a6e |
int key, int styleId);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
void setPaletteName(std::wstring name) {
|
|
Shinya Kitaoka |
120a6e |
m_paletteName = name;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
std::wstring getPaletteName() const {
|
|
Shinya Kitaoka |
120a6e |
return m_paletteName;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
QMutex *mutex() { return &m_mutex; }
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool isLocked() const {
|
|
Shinya Kitaoka |
120a6e |
return m_isLocked;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Shinya Kitaoka |
120a6e |
void setIsLocked(bool lock)
|
|
Shinya Kitaoka |
120a6e |
{
|
|
Shinya Kitaoka |
120a6e |
m_isLocked = lock;
|
|
Shinya Kitaoka |
120a6e |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
shun_iwasawa |
9cbd0e |
bool hasPickedPosStyle(); // Returns true if there is at least one style with
|
|
shun_iwasawa |
9cbd0e |
|
|
shun_iwasawa |
9cbd0e |
|
|
shun_iwasawa |
beb305 |
void nextShortcutScope(bool invert);
|
|
shun_iwasawa |
4635d8 |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
// Deprecated functions
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
bool getFxRects(const TRect &rect, TRect &rectIn, TRect &rectOut);
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
private:
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
TPalette(const TPalette &);
|
|
Shinya Kitaoka |
120a6e |
TPalette &operator=(const TPalette &);
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
9f5a1b |
#ifdef _WIN32
|
|
Toshihiro Shimizu |
890ddd |
template class DVAPI TSmartPointerT<tpalette>;</tpalette>
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
9f5a1b |
#ifdef _WIN32
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(pop)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
#endif
|