Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#ifndef FUNCTIONTOOLBAR_INCLUDED
Toshihiro Shimizu 890ddd
#define FUNCTIONTOOLBAR_INCLUDED
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// TnzCore includes
Toshihiro Shimizu 890ddd
#include "tdoubleparam.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// TnzQt includes
Toshihiro Shimizu 890ddd
#include "toonzqt/lineedit.h"
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
// Qt includes
Toshihiro Shimizu 890ddd
#include <QToolBar>
Toshihiro Shimizu 890ddd
#include <QAction>
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#undef DVAPI
Toshihiro Shimizu 890ddd
#undef DVVAR
Toshihiro Shimizu 890ddd
#ifdef TOONZQT_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
//============================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//    Forward declarations
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class TDoubleParam;
Toshihiro Shimizu 890ddd
class TFrameHandle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
namespace DVGui
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
class MeasuredDoubleLineEdit;
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class FrameNavigator;
Toshihiro Shimizu 890ddd
class FunctionKeyframeNavigator;
Toshihiro Shimizu 890ddd
class FunctionSelection;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//============================================================
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
namespace DVGui
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
class ToolBar : public QToolBar
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	ToolBar(QWidget *parent = 0) : QToolBar(parent)
Toshihiro Shimizu 890ddd
	{
Toshihiro Shimizu 890ddd
		setFixedHeight(22);			// ;_;
Toshihiro Shimizu 890ddd
		setIconSize(QSize(23, 17)); //
Toshihiro Shimizu 890ddd
	}
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
}
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
//*************************************************************************
Toshihiro Shimizu 890ddd
//    FunctionToolbar  declaration
Toshihiro Shimizu 890ddd
//*************************************************************************
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
class FunctionToolbar : public DVGui::ToolBar, public TParamObserver
Toshihiro Shimizu 890ddd
{
Toshihiro Shimizu 890ddd
	Q_OBJECT
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	QToolBar *m_valueToolbar,
Toshihiro Shimizu 890ddd
		*m_keyframeToolbar;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	DVGui::MeasuredDoubleLineEdit *m_valueFld;
Toshihiro Shimizu 890ddd
	FrameNavigator *m_frameNavigator;
Toshihiro Shimizu 890ddd
	FunctionKeyframeNavigator *m_keyframeNavigator;
Toshihiro Shimizu 890ddd
	DVGui::LineEdit *m_stepFld;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	TDoubleParam *m_curve;
Toshihiro Shimizu 890ddd
	TFrameHandle *m_frameHandle;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	FunctionSelection *m_selection;
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	// in una toolbar ogni widget ha un'action associata
Toshihiro Shimizu 890ddd
	QAction *m_valueFldAction;			// brutto: da eliminare. serve solo per fare show/hide
Toshihiro Shimizu 890ddd
	QAction *m_keyframeNavigatorAction; // brutto: da eliminare. serve solo per fare show/hide
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public:
Toshihiro Shimizu 890ddd
	FunctionToolbar(QWidget *parent = 0);
Toshihiro Shimizu 890ddd
	~FunctionToolbar();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setSelection(FunctionSelection *);
Toshihiro Shimizu 890ddd
	void setFrameHandle(TFrameHandle *frameHandle);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void onChange(const TParamChange &);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	bool anyWidgetHasFocus();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
signals:
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void numericalColumnToggled();
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
public slots:
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void setCurve(TDoubleParam *curve);
Toshihiro Shimizu 890ddd
	void setFrame(double frame);
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
private slots:
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
	void onValueFieldChanged();
Toshihiro Shimizu 890ddd
	void onFrameSwitched();
Toshihiro Shimizu 890ddd
	void onNavFrameSwitched();
Toshihiro Shimizu 890ddd
	void onSelectionChanged();
Toshihiro Shimizu 890ddd
};
Toshihiro Shimizu 890ddd
Toshihiro Shimizu 890ddd
#endif // FUNCTIONTOOLBAR_INCLUDED