Mercurial > MadButterfly
annotate nodejs/shapes.cc @ 749:ed59e659a202
Implement binding for hide/show for shapes and coords
author | Thinker K.F. Li <thinker@codemud.net> |
---|---|
date | Wed, 25 Aug 2010 19:37:52 +0800 |
parents | 56a5e08cd8af |
children | 194e24d8ecab |
rev | line source |
---|---|
564 | 1 #include <v8.h> |
2 #include "mbfly_njs.h" | |
3 | |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
4 #include <string.h> |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
5 |
564 | 6 extern "C" { |
7 #include <mb.h> | |
8 } | |
9 | |
570
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
10 #ifndef ASSERT |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
11 #define ASSERT(x) |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
12 #endif |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
13 |
748
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
14 #define OK 0 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
15 |
564 | 16 using namespace v8; |
17 | |
684
b346e4699e55
Add more comment for JS binding
Thinker K.F. Li <thinker@branda.to>
parents:
683
diff
changeset
|
18 /*! \defgroup xnjsmb_shapes JS binding for shapes. |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
19 * \ingroup xnjsmb |
564 | 20 * |
21 * @{ | |
22 */ | |
748
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
23 /*! \brief This function is called when GC collecting a shape. |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
24 * |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
25 * It was installed by Persistent<Object>::MakeWeak(). |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
26 */ |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
27 static void |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
28 xnjsmb_shape_recycled(Persistent<Value> obj, void *parameter) { |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
29 Persistent<Object> *self_hdl = (Persistent<Object> *)parameter; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
30 Handle<Object> js_rt; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
31 redraw_man_t *rdman; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
32 shape_t *shape; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
33 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
34 shape = (shape_t *)UNWRAP(*self_hdl); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
35 if(shape == NULL) |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
36 return; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
37 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
38 WRAP(*self_hdl, NULL); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
39 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
40 js_rt = GET(*self_hdl, "mbrt")->ToObject(); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
41 rdman = xnjsmb_rt_rdman(js_rt); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
42 rdman_shape_changed(rdman, shape); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
43 rdman_shape_free(rdman, shape); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
44 } |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
45 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
46 static void |
743
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
47 xnjsmb_shape_mod(Handle<Object> self, shape_t *sh) { |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
48 Persistent<Object> *self_hdl; |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
49 |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
50 /* Keep associated js object in property store for retrieving, |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
51 * later, without create new js object. |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
52 */ |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
53 self_hdl = new Persistent<Object>(); |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
54 *self_hdl = Persistent<Object>::New(self); |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
55 mb_prop_set(&sh->obj.props, PROP_JSOBJ, self_hdl); |
748
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
56 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
57 self_hdl->MakeWeak(self_hdl, xnjsmb_shape_recycled); |
743
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
58 } |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
59 |
dd1f3382d6a4
Create a persistent handle for coords and shapes correctly
Thinker K.F. Li <thinker@codemud.net>
parents:
690
diff
changeset
|
60 static void |
689
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
61 xnjsmb_sh_stext_set_style(shape_t *sh, Handle<Object> self, |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
62 Handle<Value> blks, const char **err) { |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
63 Array *blksobj; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
64 Array *blkobj; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
65 mb_style_blk_t *mb_blks; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
66 int nblks; |
689
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
67 Handle<Object> rt; |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
68 redraw_man_t *rdman; |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
69 int r; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
70 int i; |
564 | 71 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
72 blksobj = Array::Cast(*blks); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
73 nblks = blksobj->Length(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
74 mb_blks = new mb_style_blk_t[nblks]; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
75 for(i = 0; i < nblks; i++) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
76 blkobj = Array::Cast(*blksobj->Get(i)); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
77 mb_blks[i].n_chars = blkobj->Get(0)->ToInt32()->Value(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
78 mb_blks[i].face = (mb_font_face_t *)UNWRAP(blkobj->Get(1)->ToObject()); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
79 mb_blks[i].font_sz = blkobj->Get(2)->ToNumber()->Value(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
80 } |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
81 |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
82 r = sh_stext_set_style(sh, mb_blks, nblks); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
83 if(r != 0) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
84 *err = "Unknown error"; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
85 return; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
86 } |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
87 |
689
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
88 /* |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
89 * Mark changed. |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
90 */ |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
91 rt = GET(self, "mbrt")->ToObject(); |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
92 ASSERT(rt != NULL); |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
93 rdman = xnjsmb_rt_rdman(rt); |
a05a4a27ff46
Fix bug of losting rdman in xnjsmb_sh_stext_set_style
Thinker K.F. Li <thinker@branda.to>
parents:
688
diff
changeset
|
94 |
688
cadebc13be2f
Mark stext changed when its style being changed
Thinker K.F. Li <thinker@branda.to>
parents:
687
diff
changeset
|
95 if(sh_get_coord(sh)) |
cadebc13be2f
Mark stext changed when its style being changed
Thinker K.F. Li <thinker@branda.to>
parents:
687
diff
changeset
|
96 rdman_shape_changed(rdman, sh); |
cadebc13be2f
Mark stext changed when its style being changed
Thinker K.F. Li <thinker@branda.to>
parents:
687
diff
changeset
|
97 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
98 delete mb_blks; |
564 | 99 } |
100 | |
101 static Handle<Value> | |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
102 xnjsmb_shape_stroke_width_get(Handle<Object> self, shape_t *sh, |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
103 const char **err) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
104 float stroke_width; |
564 | 105 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
106 stroke_width = sh_get_stroke_width(sh); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
107 return Number::New(stroke_width); |
564 | 108 } |
109 | |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
110 static void |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
111 xnjsmb_shape_stroke_width_set(Handle<Object> self, shape_t *sh, |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
112 Handle<Value> value, const char **err) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
113 float stroke_width; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
114 Handle<Object> rt; |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
115 redraw_man_t *rdman; |
570
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
116 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
117 stroke_width = value->Int32Value(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
118 sh_set_stroke_width(sh, stroke_width); |
570
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
119 |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
120 /* |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
121 * Mark changed. |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
122 */ |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
123 rt = GET(self, "mbrt")->ToObject(); |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
124 ASSERT(rt != NULL); |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
125 rdman = xnjsmb_rt_rdman(rt); |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
126 |
576
5a68e2bcea17
Set font styles for stext in Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
574
diff
changeset
|
127 if(sh_get_coord(sh)) |
5a68e2bcea17
Set font styles for stext in Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
574
diff
changeset
|
128 rdman_shape_changed(rdman, sh); |
570
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
129 } |
49e79253b6d3
Functions of setting/getting stroke width of a shape
Thinker K.F. Li <thinker@branda.to>
parents:
569
diff
changeset
|
130 |
690
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
131 static void |
749
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
132 xnjsmb_shape_show(shape_t *sh, Handle<Object> self) { |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
133 Handle<Object> js_rt; |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
134 redraw_man_t *rdman; |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
135 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
136 js_rt = GET(self, "mbrt")->ToObject(); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
137 ASSERT(js_rt != NULL); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
138 rdman = xnjsmb_rt_rdman(js_rt); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
139 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
140 sh_show(sh); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
141 rdman_shape_changed(rdman, sh); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
142 } |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
143 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
144 static void |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
145 xnjsmb_shape_hide(shape_t *sh, Handle<Object> self) { |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
146 Handle<Object> js_rt; |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
147 redraw_man_t *rdman; |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
148 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
149 js_rt = GET(self, "mbrt")->ToObject(); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
150 ASSERT(js_rt != NULL); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
151 rdman = xnjsmb_rt_rdman(js_rt); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
152 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
153 sh_hide(sh); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
154 rdman_shape_changed(rdman, sh); |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
155 } |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
156 |
ed59e659a202
Implement binding for hide/show for shapes and coords
Thinker K.F. Li <thinker@codemud.net>
parents:
748
diff
changeset
|
157 static void |
748
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
158 xnjsmb_shape_remove(shape_t *sh, Handle<Object> self) { |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
159 Handle<Object> js_rt; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
160 redraw_man_t *rdman; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
161 Persistent<Object> *self_hdl; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
162 int r; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
163 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
164 self_hdl = (Persistent<Object> *)mb_prop_get(&sh->obj.props, |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
165 PROP_JSOBJ); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
166 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
167 SET(*self_hdl, "valid", Boolean::New(0)); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
168 WRAP(*self_hdl, NULL); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
169 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
170 js_rt = GET(*self_hdl, "mbrt")->ToObject(); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
171 ASSERT(js_rt != NULL); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
172 rdman = xnjsmb_rt_rdman(js_rt); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
173 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
174 rdman_shape_changed(rdman, sh); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
175 r = rdman_shape_free(rdman, sh); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
176 if(r != OK) |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
177 THROW_noret("Can not free a shape for unknown reason"); |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
178 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
179 delete self_hdl; |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
180 } |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
181 |
56a5e08cd8af
Make shapes can be removed from the tree
Thinker K.F. Li <thinker@codemud.net>
parents:
743
diff
changeset
|
182 static void |
690
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
183 xnjsmb_sh_rect_set(shape_t *sh, Handle<Object> self, float x, float y, |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
184 float w, float h, float rx, float ry) { |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
185 Handle<Object> rt; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
186 redraw_man_t *rdman; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
187 |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
188 sh_rect_set(sh, x, y, w, h, rx, ry); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
189 |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
190 /* |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
191 * Mark changed. |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
192 */ |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
193 rt = GET(self, "mbrt")->ToObject(); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
194 ASSERT(rt != NULL); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
195 rdman = xnjsmb_rt_rdman(rt); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
196 |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
197 if(sh_get_coord(sh)) |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
198 rdman_shape_changed(rdman, sh); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
199 } |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
200 |
564 | 201 /* @} */ |
202 | |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
203 #include "shapes-inc.h" |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
204 |
687
da12923a789a
Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
684
diff
changeset
|
205 /*! \defgroup xnjsmb_shapes_wraps Exported wrapper makers for shapes |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
206 * \ingroup xnjsmb_shapes |
687
da12923a789a
Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
684
diff
changeset
|
207 * |
da12923a789a
Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
684
diff
changeset
|
208 * These functions are used by methods of mb_rt to wrap shape objects |
da12923a789a
Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
684
diff
changeset
|
209 * as Javascript objects. |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
210 * |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
211 * @{ |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
212 */ |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
213 Handle<Value> |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
214 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:
675
diff
changeset
|
215 return xnjsmb_auto_path_new(sh); |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
216 } |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
217 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
218 Handle<Value> |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
219 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:
675
diff
changeset
|
220 return xnjsmb_auto_stext_new(sh); |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
221 } |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
222 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
223 Handle<Value> |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
224 export_xnjsmb_auto_image_new(shape_t *sh) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
225 return xnjsmb_auto_image_new(sh); |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
226 } |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
227 |
690
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
228 Handle<Value> |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
229 export_xnjsmb_auto_rect_new(shape_t *sh) { |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
230 return xnjsmb_auto_rect_new(sh); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
231 } |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
232 |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
233 /* @} */ |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
234 |
687
da12923a789a
Migrate paints.cc to use gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
684
diff
changeset
|
235 /*! \defgroup xnjsmb_shapes_cons Constructor of shapes |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
236 * \ingroup xnjsmb_shapes |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
237 * |
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
238 * @{ |
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
239 */ |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
240 shape_t * |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
241 xnjsmb_path_new(njs_runtime_t *rt, const char *d) { |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
242 redraw_man_t *rdman; |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
243 shape_t *sh; |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
244 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
245 rdman = X_njs_MB_rdman(rt); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
246 sh = rdman_shape_path_new(rdman, d); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
247 |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
248 return sh; |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
249 } |
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
250 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
251 shape_t * |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
252 xnjsmb_stext_new(njs_runtime_t *rt, const char *txt, float x, float y) { |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
253 redraw_man_t *rdman; |
576
5a68e2bcea17
Set font styles for stext in Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
574
diff
changeset
|
254 shape_t *sh; |
5a68e2bcea17
Set font styles for stext in Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
574
diff
changeset
|
255 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
256 rdman = X_njs_MB_rdman(rt); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
257 sh = rdman_shape_stext_new(rdman, txt, x, y); |
576
5a68e2bcea17
Set font styles for stext in Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
574
diff
changeset
|
258 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
259 return sh; |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
260 } |
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
261 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
262 shape_t * |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
263 xnjsmb_image_new(njs_runtime_t *rt, float x, float y, float w, float h) { |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
264 redraw_man_t *rdman; |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
265 shape_t *sh; |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
266 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
267 rdman = X_njs_MB_rdman(rt); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
268 sh = rdman_shape_image_new(rdman, x, y, w, h); |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
269 |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
270 return sh; |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
271 } |
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
272 |
690
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
273 shape_t * |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
274 xnjsmb_rect_new(njs_runtime_t *rt, float x, float y, float w, float h, |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
275 float rx, float ry, const char **err) { |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
276 redraw_man_t *rdman; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
277 shape_t *sh; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
278 |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
279 rdman = X_njs_MB_rdman(rt); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
280 sh = rdman_shape_rect_new(rdman, x, y, w, h, rx, ry); |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
281 if(sh == NULL) { |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
282 *err = "Can not create a sh_rect_t"; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
283 return NULL; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
284 } |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
285 |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
286 return sh; |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
287 } |
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
288 |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
289 /* @} */ |
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
290 |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
291 /*! \brief Set properties of template of mb_rt. |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
292 * \ingroup xnjsmb_shapes |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
293 */ |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
294 void |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
295 xnjsmb_shapes_init_mb_rt_temp(Handle<FunctionTemplate> rt_temp) { |
574
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
296 HandleScope scope; |
a2faee809514
Implement stext type for Javascript
Thinker K.F. Li <thinker@branda.to>
parents:
570
diff
changeset
|
297 Handle<FunctionTemplate> path_new_temp, stext_new_temp; |
641
f60d8fa1c55b
Javascript binding for shape_image_t
Thinker K.F. Li <thinker@branda.to>
parents:
576
diff
changeset
|
298 Handle<FunctionTemplate> image_new_temp; |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
299 Handle<ObjectTemplate> rt_proto_temp; |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
300 static int temp_init_flag = 0; |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
301 |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
302 if(temp_init_flag == 0) { |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
303 xnjsmb_auto_shape_init(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
304 xnjsmb_auto_path_init(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
305 xnjsmb_auto_stext_init(); |
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
306 xnjsmb_auto_image_init(); |
690
86c6ebf1de25
Add JS binding for sh_rect_t
Thinker K.F. Li <thinker@branda.to>
parents:
689
diff
changeset
|
307 xnjsmb_auto_rect_init(); |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
308 temp_init_flag = 1; |
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
309 } |
683
7685c57e29d0
Migrate JS shapes binding to gen_v8_binding.m4
Thinker K.F. Li <thinker@branda.to>
parents:
675
diff
changeset
|
310 return; |
565
c0bc60448913
Constructor for path objects in Javascript domain
Thinker K.F. Li <thinker@branda.to>
parents:
564
diff
changeset
|
311 } |