eflxx/evasxx/src/Gradient.cpp

122 lines
2.3 KiB
C++

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include "../include/evasxx/Canvas.h"
#include "../include/evasxx/Gradient.h"
using namespace Eflxx;
namespace Evasxx {
Gradient::Gradient( Canvas &canvas )
{
o = evas_object_gradient_add( canvas.obj() );
init();
}
Gradient::Gradient( Canvas &canvas, const Rect &rect )
{
o = evas_object_gradient_add( canvas.obj() );
init();
setGeometry( rect );
}
Gradient::~Gradient()
{
evas_object_del( o );
}
void Gradient::addColorStop( const Color &c, int delta )
{
evas_object_gradient_color_stop_add( o, c.red (), c.green (), c.blue (), c.alpha (), delta );
}
void Gradient::addAlphaStop (int alpha, int delta)
{
evas_object_gradient_alpha_stop_add (o, alpha, delta);
}
void Gradient::setColorData (void *color_data, int len, bool has_alpha)
{
evas_object_gradient_color_data_set (o, color_data, len, has_alpha);
}
void Gradient::setAlphaData (void *alpha_data, int len)
{
evas_object_gradient_alpha_data_set (o, alpha_data, len);
}
void Gradient::clear()
{
evas_object_gradient_clear( o );
}
void Gradient::setFill (const Rect &rect)
{
evas_object_gradient_fill_set (o, rect.x (), rect.y (), rect.width (), rect.height ());
}
const Rect Gradient::getFill ()
{
Evas_Coord x, y, w, h;
evas_object_gradient_fill_get (o, &x, &y, &w, &h);
Rect rect (x, y, w, h);
return rect;
}
void Gradient::setFillAngle (Evas_Angle angle)
{
evas_object_gradient_fill_angle_set (o, angle);
}
Evas_Angle Gradient::getFillAngle ()
{
return evas_object_gradient_fill_angle_get (o);
}
void Gradient::setFillSpread (int tile_mode)
{
evas_object_gradient_fill_spread_set (o, tile_mode);
}
int Gradient::getFillSpread ()
{
return evas_object_gradient_fill_spread_get (o);
}
void Gradient::setAngle( Evas_Angle angle )
{
evas_object_gradient_angle_set( o, angle );
}
Evas_Angle Gradient::getAngle()
{
return evas_object_gradient_angle_get( o );
}
void Gradient::setDirection (int direction)
{
evas_object_gradient_direction_set (o, direction);
}
int Gradient::getDirection ()
{
return evas_object_gradient_direction_get (o);
}
void Gradient::setOffset (float offset)
{
evas_object_gradient_offset_set (o, offset);
}
float Gradient::getOffset ()
{
return evas_object_gradient_offset_get (o);
}
} // end namespace Evasxx