diff options
author | Hans Goudey <h.goudey@me.com> | 2020-06-19 21:42:08 +0300 |
---|---|---|
committer | Hans Goudey <h.goudey@me.com> | 2020-06-19 21:42:08 +0300 |
commit | ec963d9d7d179e3ba12f5bdf748818939c2f17d8 (patch) | |
tree | 099996a967053ba95d14eaeaa1df8d602ebbfd23 /source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h | |
parent | fb7d8e2f4b87307a749537f16e80800af09cf5ae (diff) |
UI: Grease Pencil Modifier Drag and Drop, Layout Changes
This patch implements the list panel system D7490 for grease pencil
modifiers. It also moves their drawing to a callback in
GpencilModifierTypeInfo in line with the extensible architecture
refactoring goal T75724.
This also adds the "set_error" function for grease pencil modifiers,
which hadn't been copied from mesh modifiers yet.
The implementation is basically exactly the same as for the modifier
patch (9b099c86123fc82).
Thanks to Matias Mendiola (mendio) for providing mockups for many
of the layout changes.
Differential Revision: https://developer.blender.org/D7978
Diffstat (limited to 'source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h')
-rw-r--r-- | source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h b/source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h new file mode 100644 index 00000000000..9c6edb51d63 --- /dev/null +++ b/source/blender/gpencil_modifiers/intern/MOD_gpencil_ui_common.h @@ -0,0 +1,66 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + */ + +/** \file + * \ingroup modifiers + */ + +#ifndef __MOD_UI_COMMON__GPENCIL_H__ +#define __MOD_UI_COMMON__GPENCIL_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +#include "MOD_gpencil_modifiertypes.h" + +struct ARegionType; +struct bContext; +struct PanelType; +struct uiLayout; +typedef void (*PanelDrawFn)(const bContext *, Panel *); + +void gpencil_modifier_masking_panel_draw(const bContext *C, + Panel *panel, + bool use_material, + bool use_vertex); + +void gpencil_modifier_curve_header_draw(const bContext *C, Panel *panel); +void gpencil_modifier_curve_panel_draw(const bContext *C, Panel *panel); + +void gpencil_modifier_panel_end(struct uiLayout *layout, PointerRNA *ptr); + +void gpencil_modifier_panel_get_property_pointers(const bContext *C, + struct Panel *panel, + struct PointerRNA *r_ob_ptr, + struct PointerRNA *r_ptr); + +PanelType *gpencil_modifier_panel_register(struct ARegionType *region_type, + GpencilModifierType type, + PanelDrawFn draw); + +struct PanelType *gpencil_modifier_subpanel_register(struct ARegionType *region_type, + const char *name, + const char *label, + PanelDrawFn draw_header, + PanelDrawFn draw, + struct PanelType *parent); + +#ifdef __cplusplus +} +#endif + +#endif /* __MOD_UI_COMMON__GPENCIL_H__ */ |