Blob Blame Raw
#ifndef FREETYPEVIEW_H
#define FREETYPEVIEW_H

#include "view.h"

class FreeTypeView: public View {
public:
	class Params {
	public:
		std::string family;
		bool bold;
		bool italic;
		Real size;

		bool hinting;
		bool antialiasing;
		
		int alignment;
		bool justify;
		Real wrap_width;
		
		Real hor_spacing;
		Real vert_spacing;
		
		IntVector2 origin;
		Matrix matrix;
		Color color;

		std::string text;

		Params():
			bold(),
			italic(),
			size(),
			hinting(),
			antialiasing(),
			alignment(),
			justify(),
			wrap_width(),
			hor_spacing(),
			vert_spacing()
		{ }
	};
	
	View::PointPtr p0, px, py;
	Vector2 prev_p0;

	Params params;
	Cairo::RefPtr<Cairo::ImageSurface> surface;
	
	FreeTypeView();
	~FreeTypeView();
	
	bool on_timeout();
	
	void update_surface();
	void on_point_motion(const View::PointPtr &point);
	void on_draw_view(const Cairo::RefPtr<Cairo::Context> &context);
};

#endif