Blame synfig-studio/src/gui/waypointrenderer.h

Rodolfo Ribeiro Gomes 1cd07c
/* === S Y N F I G ========================================================= */
Rodolfo Ribeiro Gomes 1cd07c
/*!	\file waypointrenderer.h
Rodolfo Ribeiro Gomes 1cd07c
**
Rodolfo Ribeiro Gomes 1cd07c
**	$Id$
Rodolfo Ribeiro Gomes 1cd07c
**
Rodolfo Ribeiro Gomes 1cd07c
**	\legal
Rodolfo Ribeiro Gomes 1cd07c
**	Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley
Rodolfo Ribeiro Gomes 1cd07c
**	......... ... 2019 Rodolfo R. Gomes
Rodolfo Ribeiro Gomes 1cd07c
**
Rodolfo Ribeiro Gomes 1cd07c
**	This package is free software; you can redistribute it and/or
Rodolfo Ribeiro Gomes 1cd07c
**	modify it under the terms of the GNU General Public License as
Rodolfo Ribeiro Gomes 1cd07c
**	published by the Free Software Foundation; either version 2 of
Rodolfo Ribeiro Gomes 1cd07c
**	the License, or (at your option) any later version.
Rodolfo Ribeiro Gomes 1cd07c
**
Rodolfo Ribeiro Gomes 1cd07c
**	This package is distributed in the hope that it will be useful,
Rodolfo Ribeiro Gomes 1cd07c
**	but WITHOUT ANY WARRANTY; without even the implied warranty of
Rodolfo Ribeiro Gomes 1cd07c
**	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Rodolfo Ribeiro Gomes 1cd07c
**	General Public License for more details.
Rodolfo Ribeiro Gomes 1cd07c
**	\endlegal
Rodolfo Ribeiro Gomes 1cd07c
*/
Rodolfo Ribeiro Gomes 1cd07c
/* ========================================================================= */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
/* === S T A R T =========================================================== */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
#ifndef __SYNFIG_STUDIO_WAYPOINTRENDERER_H
Rodolfo Ribeiro Gomes 1cd07c
#define __SYNFIG_STUDIO_WAYPOINTRENDERER_H
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
/* === H E A D E R S ======================================================= */
Rodolfo Ribeiro Gomes 1cd07c
#include <gdkmm rectangle.h=""></gdkmm>
Rodolfo Ribeiro Gomes 1cd07c
#include <cairomm context.h=""></cairomm>
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
#include <synfig node.h=""></synfig>
Rodolfo Ribeiro Gomes c89a4c
Rodolfo Ribeiro Gomes c89a4c
#include "synfigapp/value_desc.h"
Rodolfo Ribeiro Gomes c89a4c
#include "gui/timeplotdata.h"
Rodolfo Ribeiro Gomes c89a4c
Rodolfo Ribeiro Gomes 1cd07c
/* === M A C R O S ========================================================= */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
/* === T Y P E D E F S ===================================================== */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
/* === C L A S S E S & S T R U C T S ======================================= */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
namespace studio {
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
class WaypointRenderer
Rodolfo Ribeiro Gomes 1cd07c
{
Rodolfo Ribeiro Gomes 1cd07c
public:
Rodolfo Ribeiro Gomes 1cd07c
	static void
Rodolfo Ribeiro Gomes 1cd07c
	render_time_point_to_window(
Rodolfo Ribeiro Gomes 1cd07c
		const Cairo::RefPtr<cairo::context> &cr,</cairo::context>
Rodolfo Ribeiro Gomes 1cd07c
		const Gdk::Rectangle& area,
Rodolfo Ribeiro Gomes 1cd07c
		const synfig::TimePoint &tp,
Rodolfo Ribeiro Gomes d4f2ba
		bool selected,
Rodolfo Ribeiro Gomes d4f2ba
		bool hover);
Rodolfo Ribeiro Gomes c89a4c
Rodolfo Ribeiro Gomes c89a4c
	//! Callback called at every iteration of \ref foreach_visible_waypoint
Rodolfo Ribeiro Gomes c89a4c
	//! \param tp A visible TimePoint
Rodolfo Ribeiro Gomes c89a4c
	//! \param t The current time (including effects of layers: offset and zoom)
Rodolfo Ribeiro Gomes c89a4c
	//! \param data Custom data passed to \ref foreach_visible_waypoint
Rodolfo Ribeiro Gomes c89a4c
	/// \return Callback should return true to stop for-each loop
Rodolfo Ribeiro Gomes c89a4c
	typedef bool ForeachCallback(const synfig::TimePoint &tp, const synfig::Time &t, void *data);
Rodolfo Ribeiro Gomes c89a4c
Rodolfo Ribeiro Gomes c89a4c
	static void foreach_visible_waypoint(
Rodolfo Ribeiro Gomes c89a4c
		const synfigapp::ValueDesc &value_desc,
Rodolfo Ribeiro Gomes c89a4c
		const studio::TimePlotData &time_plot_data,
Rodolfo Ribeiro Gomes c89a4c
		std::function<foreachcallback> foreach_callback,</foreachcallback>
Rodolfo Ribeiro Gomes c89a4c
		void* data = nullptr);
Rodolfo Ribeiro Gomes c89a4c
Rodolfo Ribeiro Gomes 7879dc
	static const synfig::Node::time_set & get_times_from_valuedesc(const synfigapp::ValueDesc &v);
Rodolfo Ribeiro Gomes 7879dc
Rodolfo Ribeiro Gomes 1cd07c
}; // END of class WaypointRenderer
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
}; // END of namespace studio
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
/* === E N D =============================================================== */
Rodolfo Ribeiro Gomes 1cd07c
Rodolfo Ribeiro Gomes 1cd07c
#endif // WAYPOINTRENDERER_H