# HG changeset patch # User wycc # Date 1284484663 -28800 # Node ID 379fd510ba38fcb86caa3a58e0bf5cef9ee44f96 # Parent fc035abcf82a0027d509f7ad759f8df50e5cd9e6 Define accessor for the opacity attribute of the coord diff -r fc035abcf82a -r 379fd510ba38 nodejs/coord.cc --- a/nodejs/coord.cc Wed Sep 15 01:15:58 2010 +0800 +++ b/nodejs/coord.cc Wed Sep 15 01:17:43 2010 +0800 @@ -259,19 +259,29 @@ } static void -xnjsmb_coord_set_opacity(coord_t *coord, Handle self, - float opacity) { +xnjsmb_coord_set_opacity(Handle self, coord_t *coord, Handle value, const char **str) +{ Handle js_rt; redraw_man_t *rdman; - + js_rt = GET(self, "mbrt")->ToObject(); ASSERT(js_rt != NULL); rdman = xnjsmb_rt_rdman(js_rt); - coord_set_opacity(coord, opacity); + + coord_set_opacity(coord, value->NumberValue()); rdman_coord_changed(rdman, coord); } +static Handle +xnjsmb_coord_get_opacity(Handle self, coord_t *coord, + const char **err) { + float opacity; + + opacity = coord_get_opacity(coord); + return Number::New(opacity); +} + #include "coord-inc.h" /*! \brief This function used by \ref xnjsmb_mb_rt to wrap coord object. diff -r fc035abcf82a -r 379fd510ba38 nodejs/coord.m4 --- a/nodejs/coord.m4 Wed Sep 15 01:15:58 2010 +0800 +++ b/nodejs/coord.m4 Wed Sep 15 01:17:43 2010 +0800 @@ -1,12 +1,11 @@ define([PROJ_PREFIX], [xnjsmb_auto_])dnl -STRUCT([coord], [coord_t], [], +STRUCT([coord], [coord_t], + [ACCESSOR([opacity], [xnjsmb_coord_get_opacity],[xnjsmb_coord_set_opacity])], [METHOD([add_shape], [xnjsmb_coord_add_shape], (SELF, OBJ([shape], [shape], [shape_t]), ERR), 1, []), METHOD([remove], [xnjsmb_coord_remove], (SELF), 0, []), METHOD([show], [xnjsmb_coord_show], (SELF), 0, []), - METHOD([hide], [xnjsmb_coord_hide], (SELF), 0, []), - METHOD([set_opacity], [xnjsmb_coord_set_opacity], - (SELF, NUMBER([opacity])), 1, [])], + METHOD([hide], [xnjsmb_coord_hide], (SELF), 0, [])], ((GET_INDEX, (coord_get_index, NUMBER)), (SET_INDEX, (coord_set_index, NUMBER)), ([STMOD], [xnjsmb_coord_mod])))