annotate nodejs/mbfly_njs.h @ 776:77b561bb7929

Implement new algorithm to calculate the origin of the SVG elemnts so that we can implement object resize without changing the position of the object. However, the image does not work here since it does not use the transformation of the group.
author wycc
date Mon, 30 Aug 2010 08:56:44 +0800
parents 163f0d9e6382
children 586e50f82c1f
rev   line source
559
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
1 #ifndef __MBFLY_NJS_H_
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
2 #define __MBFLY_NJS_H_
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
3
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
4 #include <v8.h>
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
5 extern "C" {
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
6 #include <mb.h>
683
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
7 #include "X_supp_njs.h"
559
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
8 }
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
9
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
10 #define THROW(x) \
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
11 do { \
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
12 v8::Handle<v8::Value> exc; \
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
13 exc = v8::Exception::Error(v8::String::New(x)); \
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
14 return v8::ThrowException(exc); \
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
15 } while(0)
675
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
16 #define THROW_noret(x) \
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
17 do { \
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
18 v8::Handle<v8::Value> exc; \
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
19 exc = v8::Exception::Error(v8::String::New(x)); \
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
20 v8::ThrowException(exc); \
683
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
21 return; \
675
c643af2095c5 Keep and retrieve respective js object to/from property store
Thinker K.F. Li <thinker@branda.to>
parents: 667
diff changeset
22 } while(0)
559
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
23 #define UNWRAP(o) v8::External::Unwrap((o)->GetInternalField(0))
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
24 #define WRAP(o, v) (o)->SetInternalField(0, v8::External::Wrap(v))
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
25 #define SET(o, n, v) (o)->Set(v8::String::New(n), v)
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
26 #define GET(o, n) (o)->Get(v8::String::New(n))
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
27
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
28 redraw_man_t *xnjsmb_rt_rdman(v8::Handle<v8::Object> mbrt);
562
1b6402f07cd4 Make root coord availabe for Javascript code
Thinker K.F. Li <thinker@branda.to>
parents: 561
diff changeset
29
1b6402f07cd4 Make root coord availabe for Javascript code
Thinker K.F. Li <thinker@branda.to>
parents: 561
diff changeset
30 /* From coord.cc */
1b6402f07cd4 Make root coord availabe for Javascript code
Thinker K.F. Li <thinker@branda.to>
parents: 561
diff changeset
31 void xnjsmb_coord_mkroot(v8::Handle<v8::Object> js_rt);
666
b6fb543d69ee Use binding generator to implement mb_rt
Thinker K.F. Li <thinker@branda.to>
parents: 639
diff changeset
32 v8::Handle<v8::Value> export_xnjsmb_auto_coord_new(coord_t *coord);
559
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
33
565
c0bc60448913 Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents: 562
diff changeset
34 /* From shapes.cc */
c0bc60448913 Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents: 562
diff changeset
35 void xnjsmb_shapes_init_mb_rt_temp(v8::Handle<v8::FunctionTemplate> rt_temp);
683
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
36 shape_t *xnjsmb_path_new(njs_runtime_t *rt, const char *d);
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
37 shape_t *xnjsmb_stext_new(njs_runtime_t *rt, const char *txt,
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
38 float x, float y);
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
39 shape_t *xnjsmb_image_new(njs_runtime_t *rt, float x, float y,
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
40 float w, float h);
690
86c6ebf1de25 Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents: 687
diff changeset
41 shape_t *xnjsmb_rect_new(njs_runtime_t *rt, float x, float y,
86c6ebf1de25 Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents: 687
diff changeset
42 float w, float h,
86c6ebf1de25 Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents: 687
diff changeset
43 float rx, float ry, const char **err);
683
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
44 v8::Handle<v8::Value> export_xnjsmb_auto_path_new(shape_t *sh);
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
45 v8::Handle<v8::Value> export_xnjsmb_auto_stext_new(shape_t *sh);
7685c57e29d0 Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 676
diff changeset
46 v8::Handle<v8::Value> export_xnjsmb_auto_image_new(shape_t *sh);
690
86c6ebf1de25 Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents: 687
diff changeset
47 v8::Handle<v8::Value> export_xnjsmb_auto_rect_new(shape_t *sh);
565
c0bc60448913 Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents: 562
diff changeset
48
567
a12c3448afb6 Add dummy paint_color templates
Thinker K.F. Li <thinker@branda.to>
parents: 565
diff changeset
49 /* From paints.cc */
a12c3448afb6 Add dummy paint_color templates
Thinker K.F. Li <thinker@branda.to>
parents: 565
diff changeset
50 void xnjsmb_paints_init_mb_rt_temp(v8::Handle<v8::FunctionTemplate> rt_temp);
687
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
51 paint_t *xnjsmb_paint_color_new(njs_runtime_t *rt,
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
52 float r, float g, float b, float a,
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
53 const char **err);
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
54 paint_t *xnjsmb_paint_image_new(njs_runtime_t *rt, mb_img_data_t *img,
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
55 const char **err);
733
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
56 paint_t *xnjsmb_paint_linear_new(njs_runtime_t *rt,
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
57 float x1, float y1, float x2, float y2,
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
58 const char **err);
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
59 paint_t *xnjsmb_paint_radial_new(njs_runtime_t *rt,
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
60 float cx, float cy, float r,
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
61 const char **err);
687
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
62 v8::Handle<v8::Value> export_xnjsmb_auto_paint_color_new(paint_t *paint);
da12923a789a Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents: 683
diff changeset
63 v8::Handle<v8::Value> export_xnjsmb_auto_paint_image_new(paint_t *paint);
733
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
64 v8::Handle<v8::Value> export_xnjsmb_auto_paint_linear_new(paint_t *sh);
163f0d9e6382 Add binding for linear and radial paints for JS
Thinker K.F. Li <thinker@branda.to>
parents: 690
diff changeset
65 v8::Handle<v8::Value> export_xnjsmb_auto_paint_radial_new(paint_t *sh);
565
c0bc60448913 Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents: 562
diff changeset
66
575
97159102f886 Function of query font face in Javascript
Thinker K.F. Li <thinker@branda.to>
parents: 567
diff changeset
67 /* From font.cc */
97159102f886 Function of query font face in Javascript
Thinker K.F. Li <thinker@branda.to>
parents: 567
diff changeset
68 void xnjsmb_font_init_mb_rt_temp(v8::Handle<v8::FunctionTemplate> mb_rt_temp);
97159102f886 Function of query font face in Javascript
Thinker K.F. Li <thinker@branda.to>
parents: 567
diff changeset
69
638
683889344459 Skeleton of image loader for nodejs
Thinker K.F. Li <thinker@branda.to>
parents: 575
diff changeset
70 /* From image_ldr.cc */
683889344459 Skeleton of image loader for nodejs
Thinker K.F. Li <thinker@branda.to>
parents: 575
diff changeset
71 void
639
dc32c1c140ae First compilable image loader binding for Javascript
Thinker K.F. Li <thinker@branda.to>
parents: 638
diff changeset
72 xnjsmb_img_ldr_init_mb_rt_temp(v8::Handle<v8::Object> mb_rt_temp);
638
683889344459 Skeleton of image loader for nodejs
Thinker K.F. Li <thinker@branda.to>
parents: 575
diff changeset
73
676
f264b50c469c Bind subject of mouse_event to JS object of coord
Thinker K.F. Li <thinker@branda.to>
parents: 675
diff changeset
74 /* From observer.cc */
f264b50c469c Bind subject of mouse_event to JS object of coord
Thinker K.F. Li <thinker@branda.to>
parents: 675
diff changeset
75 v8::Handle<v8::Value> export_xnjsmb_auto_subject_new(subject_t *subject);
f264b50c469c Bind subject of mouse_event to JS object of coord
Thinker K.F. Li <thinker@branda.to>
parents: 675
diff changeset
76 void xnjsmb_observer_init(void);
f264b50c469c Bind subject of mouse_event to JS object of coord
Thinker K.F. Li <thinker@branda.to>
parents: 675
diff changeset
77
559
ef078d7c57b4 Use internal field to store njs_runtime_t object.
Thinker K.F. Li <thinker@branda.to>
parents:
diff changeset
78 #endif /* __MBFLY_NJS_H_ */