Browse Source

Added Gradient constructors

v1.x
Tj Holowaychuk 15 years ago
parent
commit
d0118c06a2
  1. 14
      src/gradient.cc
  2. 7
      src/gradient.h

14
src/gradient.cc

@ -29,6 +29,8 @@ Gradient::New(const Arguments &args) {
, args[1]->NumberValue()
, args[2]->NumberValue()
, args[3]->NumberValue());
grad->Wrap(args.This());
return args.This();
}
// Radial
@ -45,4 +47,14 @@ Gradient::New(const Arguments &args) {
}
return ThrowException(Exception::TypeError(String::New("invalid arguments")));
}
}
Gradient::Gradient(double x0, double y0, double x1, double y1):
_x0(x0), _y0(y0), _x1(x1), _y1(y1) {
_grad = cairo_pattern_create_linear(x0, y0, x1, y1);
}
Gradient::Gradient(double x0, double y0, double r0, double x1, double y1, double r1):
_x0(x0), _y0(y0), _x1(x1), _y1(y1), _r0(r0), _r1(r1) {
_grad = cairo_pattern_create_radial(x0, y0, r0, x1, y1, r1);
}

7
src/gradient.h

@ -16,13 +16,12 @@ class Gradient: public node::ObjectWrap {
public:
static void Initialize(Handle<Object> target);
static Handle<Value> New(const Arguments &args);
Gradient(double x0, double y0, double x1, double y1):
_x0(x0), _y0(y0), _x1(x1), _y1(y1) {};
Gradient(double x0, double y0, double r0, double x1, double y1, double r1):
_x0(x0), _y0(y0), _x1(x1), _y1(y1), _r0(r0), _r1(r1) {};
Gradient(double x0, double y0, double x1, double y1);
Gradient(double x0, double y0, double r0, double x1, double y1, double r1);
private:
double _x0, _y0, _x1, _y1, _r0, _r1;
cairo_pattern_t *_grad;
};
#endif
Loading…
Cancel
Save