diff --git a/config.c b/config.c index 6b682a0..f5bf4f0 100644 --- a/config.c +++ b/config.c @@ -193,6 +193,7 @@ particle_string_from_config(const struct yml_node *node, const struct yml_node *margin = yml_get_value(node, "margin"); const struct yml_node *left_margin = yml_get_value(node, "left_margin"); const struct yml_node *right_margin = yml_get_value(node, "right_margin"); + const struct yml_node *on_click = yml_get_value(node, "on_click"); assert(text != NULL && yml_is_scalar(text)); @@ -208,7 +209,8 @@ particle_string_from_config(const struct yml_node *node, return particle_string_new( yml_value_as_string(text), font != NULL ? font_from_config(font) : font_clone(parent_font), - fg_color, left, right); + fg_color, left, right, + on_click != NULL ? yml_value_as_string(on_click) : NULL); } static struct particle * particle_from_config( diff --git a/particles/string.c b/particles/string.c index c609e9c..276589d 100644 --- a/particles/string.c +++ b/particles/string.c @@ -164,7 +164,8 @@ instantiate(const struct particle *particle, const struct tag_set *tags) e->font = p->font; e->foreground = p->foreground; - struct exposable *exposable = exposable_common_new(particle, NULL); + struct exposable *exposable = exposable_common_new( + particle, particle->on_click_template); exposable->private = e; exposable->destroy = &exposable_destroy; exposable->begin_expose = &begin_expose; @@ -184,14 +185,16 @@ particle_destroy(struct particle *particle) struct particle * particle_string_new(const char *text, struct font *font, - struct rgba foreground, int left_margin, int right_margin) + struct rgba foreground, int left_margin, int right_margin, + const char *on_click_template) { struct private *p = malloc(sizeof(*p)); p->text = strdup(text); p->font = font; p->foreground = foreground; - struct particle *particle = particle_common_new(left_margin, right_margin); + struct particle *particle = particle_common_new( + left_margin, right_margin, on_click_template); particle->private = p; particle->destroy = &particle_destroy; diff --git a/particles/string.h b/particles/string.h index c0b88b9..570b1ae 100644 --- a/particles/string.h +++ b/particles/string.h @@ -3,4 +3,4 @@ struct particle *particle_string_new( const char *text, struct font *font, struct rgba foreground, - int left_margin, int right_margin); + int left_margin, int right_margin, const char *on_click_template);