3bfa549e8b
- using std::string; - using std::wstring; - using std::ostream; - using std::istream; - using std::iostream; - using std::ostrstream; - using std::istrstream; - using std::fstream;
103 lines
No EOL
2.9 KiB
C++
103 lines
No EOL
2.9 KiB
C++
#ifndef RGBPICKERTOOL_H
|
|
#define RGBPICKERTOOL_H
|
|
|
|
#include "tools/tool.h"
|
|
#include "tproperty.h"
|
|
#include "toonz/strokegenerator.h"
|
|
#include "tools/tooloptions.h"
|
|
|
|
#include <QCoreApplication>
|
|
|
|
class RGBPickerTool : public TTool
|
|
{
|
|
Q_DECLARE_TR_FUNCTIONS(RGBPickerTool)
|
|
|
|
bool m_firstTime;
|
|
int m_currentStyleId;
|
|
TPixel32 m_oldValue, m_currentValue;
|
|
|
|
TRectD m_selectingRect;
|
|
TRectD m_drawingRect;
|
|
TPropertyGroup m_prop;
|
|
TEnumProperty m_pickType;
|
|
|
|
TBoolProperty m_passivePick;
|
|
std::vector<RGBPickerToolOptionsBox *> m_toolOptionsBox;
|
|
|
|
//Aggiunte per disegnare il lazzo a la polyline
|
|
StrokeGenerator m_drawingTrack;
|
|
StrokeGenerator m_workingTrack;
|
|
TPointD m_firstDrawingPos, m_firstWorkingPos;
|
|
TPointD m_mousePosition;
|
|
double m_thick;
|
|
TStroke *m_stroke;
|
|
TStroke *m_firstStroke;
|
|
std::vector<TPointD> m_drawingPolyline;
|
|
std::vector<TPointD> m_workingPolyline;
|
|
bool m_makePick;
|
|
|
|
public:
|
|
RGBPickerTool();
|
|
|
|
/*-- ToolOptionBox上にPassiveに拾った色を表示するため --*/
|
|
void setToolOptionsBox(RGBPickerToolOptionsBox *toolOptionsBox);
|
|
|
|
ToolType getToolType() const { return TTool::LevelReadTool; }
|
|
|
|
void updateTranslation();
|
|
|
|
// Used to notify and set the currentColor outside the draw() methods:
|
|
// using special style there was a conflict between the draw() methods of the tool
|
|
// and the genaration of the icon inside the style editor (makeIcon()) which use
|
|
// another glContext
|
|
|
|
void onImageChanged();
|
|
|
|
void draw();
|
|
|
|
void leftButtonDown(const TPointD &pos, const TMouseEvent &e);
|
|
|
|
void leftButtonDrag(const TPointD &pos, const TMouseEvent &e);
|
|
|
|
void leftButtonUp(const TPointD &pos, const TMouseEvent &);
|
|
|
|
void leftButtonDoubleClick(const TPointD &pos, const TMouseEvent &e);
|
|
|
|
void mouseMove(const TPointD &pos, const TMouseEvent &e);
|
|
|
|
void pick(TPoint pos);
|
|
|
|
void pickRect();
|
|
|
|
void pickStroke();
|
|
|
|
bool onPropertyChanged(std::string propertyName);
|
|
|
|
void onActivate();
|
|
|
|
TPropertyGroup *getProperties(int targetType);
|
|
|
|
int getCursorId() const;
|
|
|
|
void doPolylinePick();
|
|
|
|
//!Viene aggiunto \b pos a \b m_track e disegnato il primo pezzetto del lazzo. Viene inizializzato \b m_firstPos
|
|
void startFreehand(const TPointD &drawingPos, const TPointD &workingPos);
|
|
|
|
//!Viene aggiunto \b pos a \b m_track e disegnato un altro pezzetto del lazzo.
|
|
void freehandDrag(const TPointD &drawingPos, const TPointD &workingPos);
|
|
|
|
//!Viene chiuso il lazzo (si aggiunge l'ultimo punto ad m_track) e viene creato lo stroke rappresentante il lazzo.
|
|
void closeFreehand();
|
|
|
|
//!Viene aggiunto un punto al vettore m_polyline.
|
|
void addPointPolyline(const TPointD &drawingPos, const TPointD &workingPos);
|
|
|
|
//!Agginge l'ultimo pos a \b m_polyline e chiude la spezzata (aggiunge \b m_polyline.front() alla fine del vettore)
|
|
void closePolyline(const TPointD &drawingPos, const TPointD &workingPos);
|
|
|
|
/*--- RGBPickerToolをFlipbookで有効にする ---*/
|
|
void showFlipPickedColor(const TPixel32 &pix);
|
|
};
|
|
|
|
#endif |