diff options
author | Joshua Leung <aligorith@gmail.com> | 2014-10-10 14:22:57 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2014-10-10 14:22:57 +0400 |
commit | ae65857471ed8bd5c3ccbe45c68a59eeac18df84 (patch) | |
tree | 1f91c55bfe9fc777043d751d702ceeed07462fef /source/blender | |
parent | 97f9b3c05f736f9a09f642285c835a408027185e (diff) |
GPencil RNA: Changing "select" setting on strokes selects/deselects all points in stroke
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/makesrna/intern/rna_gpencil.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_gpencil.c b/source/blender/makesrna/intern/rna_gpencil.c index db9718e5a63..5069a623b50 100644 --- a/source/blender/makesrna/intern/rna_gpencil.c +++ b/source/blender/makesrna/intern/rna_gpencil.c @@ -245,6 +245,27 @@ static void rna_GPencil_stroke_remove(bGPDframe *frame, ReportList *reports, Poi WM_main_add_notifier(NC_GPENCIL | NA_EDITED, NULL); } +static void rna_GPencil_stroke_select_set(PointerRNA *ptr, const int value) +{ + bGPDstroke *gps = ptr->data; + bGPDspoint *pt; + int i; + + /* set new value */ + if (value) + gps->flag |= GP_STROKE_SELECT; + else + gps->flag &= ~GP_STROKE_SELECT; + + /* ensure that the stroke's points are selected in the same way */ + for (i = 0, pt = gps->points; i < gps->totpoints; i++, pt++) { + if (value) + pt->flag |= GP_SPOINT_SELECT; + else + pt->flag &= ~GP_SPOINT_SELECT; + } +} + static bGPDframe *rna_GPencil_frame_new(bGPDlayer *layer, ReportList *reports, int frame_number) { bGPDframe *frame; @@ -419,6 +440,7 @@ static void rna_def_gpencil_stroke(BlenderRNA *brna) prop = RNA_def_property(srna, "select", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", GP_STROKE_SELECT); + RNA_def_property_boolean_funcs(prop, NULL, "rna_GPencil_stroke_select_set"); RNA_def_property_ui_text(prop, "Select", "Stroke is selected for viewport editing"); RNA_def_property_update(prop, 0, "rna_GPencil_update"); } |