diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-04-22 18:16:39 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-04-22 18:45:14 +0300 |
commit | e6d1fb87c6b0184416ce202ccba6a96a3ee04552 (patch) | |
tree | 39e1e321364129dfae355ecff938f0bafb5eae33 /source/blender/makesrna/intern/rna_wm.c | |
parent | b8e7991811dcf6fa698077f850fef17be83d2abb (diff) |
UI: Initial popover support for panels
- UILayout.popover(.. panel_type ..)
A single panel
- UILayout.popover_group(.. panel categories ..)
Expands all panels matching args.
Currently used in the topbar for redo and paint options.
Diffstat (limited to 'source/blender/makesrna/intern/rna_wm.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_wm.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_wm.c b/source/blender/makesrna/intern/rna_wm.c index d7718d2e0f2..0fa7f53da9b 100644 --- a/source/blender/makesrna/intern/rna_wm.c +++ b/source/blender/makesrna/intern/rna_wm.c @@ -629,6 +629,17 @@ static PointerRNA rna_PopupMenu_layout_get(PointerRNA *ptr) return rptr; } +static PointerRNA rna_PopoverMenu_layout_get(PointerRNA *ptr) +{ + struct uiPopover *pup = ptr->data; + uiLayout *layout = UI_popover_layout(pup); + + PointerRNA rptr; + RNA_pointer_create(ptr->id.data, &RNA_UILayout, layout, &rptr); + + return rptr; +} + static PointerRNA rna_PieMenu_layout_get(PointerRNA *ptr) { struct uiPieMenu *pie = ptr->data; @@ -1978,6 +1989,11 @@ static void rna_def_popupmenu(BlenderRNA *brna) rna_def_popup_menu_wrapper(brna, "UIPopupMenu", "uiPopupMenu", "rna_PopupMenu_layout_get"); } +static void rna_def_popovermenu(BlenderRNA *brna) +{ + rna_def_popup_menu_wrapper(brna, "UIPopover", "uiPopover", "rna_PopoverMenu_layout_get"); +} + static void rna_def_piemenu(BlenderRNA *brna) { rna_def_popup_menu_wrapper(brna, "UIPieMenu", "uiPieMenu", "rna_PieMenu_layout_get"); @@ -2415,6 +2431,7 @@ void RNA_def_wm(BlenderRNA *brna) rna_def_event(brna); rna_def_timer(brna); rna_def_popupmenu(brna); + rna_def_popovermenu(brna); rna_def_piemenu(brna); rna_def_window(brna); rna_def_windowmanager(brna); |