diff options
author | Alessio Treglia <quadrispro@ubuntu.com> | 2010-02-11 17:43:11 +0100 |
---|---|---|
committer | Alessio Treglia <quadrispro@ubuntu.com> | 2010-02-11 17:43:11 +0100 |
commit | d136f8f7d28ea86f3f040e95aef4c7a95ea8b7e2 (patch) | |
tree | 286ff861eca93f6a1ccb5248bef34b3f03fbe200 /snd-marks.c | |
parent | f369f1bdb2b9efc5b7ed3b74a0b4b51642086e18 (diff) |
Imported Upstream version 11.3
Diffstat (limited to 'snd-marks.c')
-rw-r--r-- | snd-marks.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/snd-marks.c b/snd-marks.c index b70db2a..dbca50c 100644 --- a/snd-marks.c +++ b/snd-marks.c @@ -2062,7 +2062,7 @@ static XEN g_xen_mark_to_string(XEN obj) #endif -#if (!HAVE_S7) +#if (!HAVE_SCHEME) static bool xen_mark_equalp(xen_mark *v1, xen_mark *v2) { return((v1 == v2) || @@ -2097,7 +2097,7 @@ XEN new_xen_mark(int n) } -#if HAVE_S7 +#if HAVE_SCHEME static bool s7_xen_mark_equalp(void *obj1, void *obj2) { return((obj1 == obj2) || @@ -2121,7 +2121,7 @@ static XEN s7_xen_mark_copy(s7_scheme *sc, s7_pointer obj) static void init_xen_mark(void) { -#if HAVE_S7 +#if HAVE_SCHEME xen_mark_tag = XEN_MAKE_OBJECT_TYPE("<mark>", print_xen_mark, free_xen_mark, s7_xen_mark_equalp, NULL, NULL, NULL, NULL, s7_xen_mark_copy, NULL); #else #if HAVE_RUBY @@ -2929,6 +2929,17 @@ static XEN g_set_mark_properties(XEN n, XEN val) } +static XEN g_mark_property(XEN key, XEN id) +{ + #define H_mark_property "(" S_mark_property " key id) returns the value associated with 'key' in the given mark's property list, or #f" + return(XEN_ASSOC_REF(key, g_mark_properties(id))); +} + +static XEN g_set_mark_property(XEN key, XEN id, XEN val) +{ + g_set_mark_properties(id, XEN_ASSOC_SET(key, val, g_mark_properties(id))); + return(val); +} @@ -2958,6 +2969,8 @@ XEN_NARGIFY_1(g_integer_to_mark_w, g_integer_to_mark) XEN_NARGIFY_1(g_mark_to_integer_w, g_mark_to_integer) XEN_NARGIFY_1(g_mark_properties_w, g_mark_properties) XEN_NARGIFY_2(g_set_mark_properties_w, g_set_mark_properties) +XEN_NARGIFY_2(g_mark_property_w, g_mark_property) +XEN_NARGIFY_3(g_set_mark_property_w, g_set_mark_property) #if MUS_DEBUGGING && HAVE_SCHEME XEN_NARGIFY_3(g_test_control_drag_mark_w, g_test_control_drag_mark) #endif @@ -2987,6 +3000,8 @@ XEN_NARGIFY_2(g_set_mark_properties_w, g_set_mark_properties) #define g_mark_to_integer_w g_mark_to_integer #define g_mark_properties_w g_mark_properties #define g_set_mark_properties_w g_set_mark_properties +#define g_mark_property_w g_mark_property +#define g_set_mark_property_w g_set_mark_property #if MUS_DEBUGGING && HAVE_SCHEME #define g_test_control_drag_mark_w g_test_control_drag_mark #endif @@ -3035,6 +3050,9 @@ void g_init_marks(void) XEN_DEFINE_PROCEDURE_WITH_SETTER(S_mark_properties, g_mark_properties_w, H_mark_properties, S_setB S_mark_properties, g_set_mark_properties_w, 1, 0, 2, 0); + XEN_DEFINE_PROCEDURE_WITH_SETTER(S_mark_property, g_mark_property_w, H_mark_property, + S_setB S_mark_property, g_set_mark_property_w, 2, 0, 3, 0); + #define H_draw_mark_hook S_draw_mark_hook " (mark-id): called before a mark is drawn (in XOR mode). \ If the hook returns " PROC_TRUE ", the mark is not drawn." |