diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-06-14 19:40:15 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-06-14 19:42:31 +0400 |
commit | ea2043eb3a31468d9afeb1d6cc140567e219565f (patch) | |
tree | 7509c73176efae489bb4aab3a8daadb755007015 /source/blender/editors/interface/interface_intern.h | |
parent | 5713d80804de8795a59fc04e95af3f50617adcfa (diff) |
UI: Add support for popups to refresh their layput (D578)
This is needed for popups to chance state once activated,
currently it makes use of operators `check` callback, after values are modified,
as the file selector does already.
Diffstat (limited to 'source/blender/editors/interface/interface_intern.h')
-rw-r--r-- | source/blender/editors/interface/interface_intern.h | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index d44aacf7e53..cd3b6390184 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -428,6 +428,19 @@ struct uiKeyNavLock { int event_xy[2]; }; +typedef uiBlock * (*uiBlockHandleCreateFunc)(struct bContext *C, struct uiPopupBlockHandle *handle, void *arg1); + +struct uiPopupBlockCreate { + uiBlockCreateFunc create_func; + uiBlockHandleCreateFunc handle_create_func; + void *arg; + + int event_xy[2]; + + /* when popup is initialized from a button */ + ARegion *butregion; +}; + struct uiPopupBlockHandle { /* internal */ struct ARegion *region; @@ -442,6 +455,9 @@ struct uiPopupBlockHandle { void (*cancel_func)(struct bContext *C, void *arg); void *popup_arg; + /* store data for refreshing popups */ + struct uiPopupBlockCreate popup_create_vars; + struct wmTimer *scrolltimer; struct uiKeyNavLock keynav_state; @@ -496,7 +512,8 @@ bool ui_searchbox_apply(uiBut *but, struct ARegion *ar); void ui_searchbox_free(struct bContext *C, struct ARegion *ar); void ui_but_search_test(uiBut *but); -typedef uiBlock * (*uiBlockHandleCreateFunc)(struct bContext *C, struct uiPopupBlockHandle *handle, void *arg1); +uiBlock *ui_popup_block_refresh(struct bContext *C, uiPopupBlockHandle *handle, + ARegion *butregion, uiBut *but); uiPopupBlockHandle *ui_popup_block_create(struct bContext *C, struct ARegion *butregion, uiBut *but, uiBlockCreateFunc create_func, uiBlockHandleCreateFunc handle_create_func, |