Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-11-15 22:26:25 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-11-15 23:14:46 +0300
commit0d267737e23ba7032377a1aa2884d40a14025a39 (patch)
treec5d910ae1d6e39cf7b8c785dc087ccacfb2cab84 /source/blender/editors/interface/interface_regions.c
parenta70357104eb88fec5cabf61f91220a1cb44a7baf (diff)
UI: support cycling callback for non RNA menus
Diffstat (limited to 'source/blender/editors/interface/interface_regions.c')
-rw-r--r--source/blender/editors/interface/interface_regions.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 40e4da2de94..f62cb4ee68d 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -111,13 +111,19 @@ bool ui_but_menu_step_poll(const uiBut *but)
BLI_assert(but->type == UI_BTYPE_MENU);
/* currenly only RNA buttons */
- return (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM);
+ return ((but->menu_step_func != NULL) ||
+ (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_ENUM));
}
int ui_but_menu_step(uiBut *but, int direction)
{
if (ui_but_menu_step_poll(but)) {
- return rna_property_enum_step(but->block->evil_C, &but->rnapoin, but->rnaprop, direction);
+ if (but->menu_step_func) {
+ return but->menu_step_func(but->block->evil_C, direction, but->poin);
+ }
+ else {
+ return rna_property_enum_step(but->block->evil_C, &but->rnapoin, but->rnaprop, direction);
+ }
}
printf("%s: cannot cycle button '%s'\n", __func__, but->str);