diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-10 22:22:10 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-12-10 22:22:10 +0300 |
commit | f00a75272e33d2e91a394a7a2336be572e1c92f6 (patch) | |
tree | c7b084bc742c259b95a9bee49a2b8d3e72a49cb8 /source/blender/editors | |
parent | 64f9c67ca85a56fbc0a59b5c3a72c7f68c968445 (diff) |
UI:
* Added context pointer to function callbacks for buttons and blocks.
* Added a uiBlockSetHandleFunc, which will be called with the button
return value. This seems kind of redundant with uiBlockSetButmFunc,
but the latter uses a2 to pass the value.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/include/UI_interface.h | 14 | ||||
-rw-r--r-- | source/blender/editors/interface/interface.c | 38 | ||||
-rw-r--r-- | source/blender/editors/interface/interface.h | 24 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 119 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_regions.c | 10 | ||||
-rw-r--r-- | source/blender/editors/space_outliner/space_outliner.c | 12 | ||||
-rw-r--r-- | source/blender/editors/space_time/time_header.c | 29 |
7 files changed, 124 insertions, 122 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index dc48cf820f3..5b0f0bbc2bf 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -275,7 +275,7 @@ uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int i uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip); uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip); -typedef void (*uiIDPoinFuncFP) (char *str, struct ID **idpp); +typedef void (*uiIDPoinFuncFP) (struct bContext *C, char *str, struct ID **idpp); uiBut *uiDefIDPoinBut(struct uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, char *str, short x1, short y1, short x2, short y2, void *idpp, char *tip); @@ -288,7 +288,6 @@ uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockFuncFP func, void *arg, int retv void uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip); uiBut *uiDefRNABut(uiBlock *block, int retval, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, short x1, short y1, short x2, short y2); -void uiButSetFunc3(uiBut *but, void (*func)(void *arg1, void *arg2, void *arg3), void *arg1, void *arg2, void *arg3); void uiAutoBlock(struct uiBlock *block, float minx, float miny, @@ -315,14 +314,15 @@ int uiButGetRetVal (uiBut *but); void uiButSetFlag (uiBut *but, int flag); void uiButClearFlag (uiBut *but, int flag); -void uiBlockSetButmFunc (uiBlock *block, void (*butmfunc)(void *arg, int but_a2), void *arg); +void uiBlockSetHandleFunc(uiBlock *block, void (*func)(struct bContext *C, void *arg, int event), void *arg); +void uiBlockSetButmFunc (uiBlock *block, void (*func)(struct bContext *C, void *arg, int but_a2), void *arg); -void uiBlockSetFunc (uiBlock *block, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2); -void uiButSetFunc (uiBut *but, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2); +void uiBlockSetFunc (uiBlock *block, void (*func)(struct bContext *C, void *arg1, void *arg2), void *arg1, void *arg2); +void uiButSetFunc (uiBut *but, void (*func)(struct bContext *C, void *arg1, void *arg2), void *arg1, void *arg2); -void uiButSetCompleteFunc(uiBut *but, void (*func)(char *str, void *arg), void *arg); +void uiButSetCompleteFunc(uiBut *but, void (*func)(struct bContext *C, char *str, void *arg), void *arg); -void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)(struct ScrArea *sa, uiBlock *block)); +void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)(struct bContext *C, uiBlock *block)); /* Panels */ diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index c308ae63e3e..a9ea563bb6a 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -421,7 +421,6 @@ static int ui_but_equals_old(uiBut *but, uiBut *oldbut) if(but->func != oldbut->func) return 0; if(but->func_arg1 != oldbut->func_arg1) return 0; if(but->func_arg2 != oldbut->func_arg2) return 0; - if(but->func_arg3 != oldbut->func_arg3) return 0; return 1; } @@ -1942,15 +1941,15 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short if(block->themecol==TH_AUTO) but->themecol= ui_auto_themecol(but); else but->themecol= block->themecol; - - if (but->type==BUTM) { - but->butm_func= block->butm_func; - but->butm_func_arg= block->butm_func_arg; - } else { + + if(but->type != BUTM) { but->func= block->func; but->func_arg1= block->func_arg1; but->func_arg2= block->func_arg2; } + + but->handle_func= block->handle_func; + but->handle_func_arg= block->handle_func_arg; ui_set_embossfunc(but, block->dt); @@ -2075,7 +2074,7 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname) } /* autocomplete callback for ID buttons */ -static void autocomplete_id(char *str, void *arg_v) +static void autocomplete_id(bContext *C, char *str, void *arg_v) { /* int blocktype= (intptr_t)arg_v; */ ListBase *listb= NULL /* XXX 2.50 needs context, wich_libbase(G.main, blocktype) */; @@ -2468,14 +2467,19 @@ int uiButGetRetVal(uiBut *but) return but->retval; } -/* Call this function BEFORE adding buttons to the block */ -void uiBlockSetButmFunc(uiBlock *block, void (*menufunc)(void *arg, int event), void *arg) +void uiBlockSetHandleFunc(uiBlock *block, void (*func)(struct bContext *C, void *arg, int event), void *arg) +{ + block->handle_func= func; + block->handle_func_arg= arg; +} + +void uiBlockSetButmFunc(uiBlock *block, void (*func)(struct bContext *C, void *arg, int but_a2), void *arg) { - block->butm_func= menufunc; + block->butm_func= func; block->butm_func_arg= arg; } -void uiBlockSetFunc(uiBlock *block, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2) +void uiBlockSetFunc(uiBlock *block, void (*func)(struct bContext *C, void *arg1, void *arg2), void *arg1, void *arg2) { block->func= func; block->func_arg1= arg1; @@ -2487,22 +2491,14 @@ void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)()) block->drawextra= func; } -void uiButSetFunc(uiBut *but, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2) +void uiButSetFunc(uiBut *but, void (*func)(struct bContext *C, void *arg1, void *arg2), void *arg1, void *arg2) { but->func= func; but->func_arg1= arg1; but->func_arg2= arg2; } -void uiButSetFunc3(uiBut *but, void (*func)(void *arg1, void *arg2, void *arg3), void *arg1, void *arg2, void *arg3) -{ - but->func3= func; - but->func_arg1= arg1; - but->func_arg2= arg2; - but->func_arg3= arg3; -} - -void uiButSetCompleteFunc(uiBut *but, void (*func)(char *str, void *arg), void *arg) +void uiButSetCompleteFunc(uiBut *but, void (*func)(struct bContext *C, char *str, void *arg), void *arg) { but->autocomplete_func= func; but->autofunc_arg= arg; diff --git a/source/blender/editors/interface/interface.h b/source/blender/editors/interface/interface.h index f6fb929f7b1..9b2ce5680b3 100644 --- a/source/blender/editors/interface/interface.h +++ b/source/blender/editors/interface/interface.h @@ -125,16 +125,17 @@ struct uiBut { float a1, a2, hsv[3]; // hsv is temp memory for hsv buttons float aspect; - void (*func)(void *, void *); - void (*func3)(void *, void *, void *); /* XXX remove */ + void (*func)(struct bContext*, void *, void *); void *func_arg1; void *func_arg2; - void *func_arg3; /* XXX remove */ + + void (*handle_func)(struct bContext*, void *arg, int event); + void *handle_func_arg; void (*embossfunc)(int , int , float, float, float, float, float, int); void (*sliderfunc)(int , float, float, float, float, float, float, int); - void (*autocomplete_func)(char *, void *); + void (*autocomplete_func)(struct bContext*, char *, void *); void *autofunc_arg; uiLink *link; @@ -156,10 +157,6 @@ struct uiBut { /* BLOCK data */ uiBlockFuncFP block_func; - /* BUTM data */ - void (*butm_func)(void *arg, int event); - void *butm_func_arg; - /* RNA */ struct PointerRNA rnapoin; struct PropertyRNA *rnaprop; @@ -192,12 +189,15 @@ struct uiBlock { float minx, miny, maxx, maxy; float aspect; - void (*butm_func)(void *arg, int event); - void *butm_func_arg; - - void (*func)(void *arg1, void *arg2); + void (*func)(struct bContext*, void *arg1, void *arg2); void *func_arg1; void *func_arg2; + + void (*butm_func)(struct bContext*, void *arg, int but_a2); + void *butm_func_arg; + + void (*handle_func)(struct bContext*, void *arg, int event); + void *handle_func_arg; /* extra draw function for custom blocks */ void (*drawextra)(); diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 2c30b97f4ab..f2be0230969 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -139,32 +139,39 @@ static int ui_handler_window(bContext *C, wmEvent *event); /* ********************** button apply/revert ************************ */ -static void ui_apply_but_func(uiBut *but) +static void ui_apply_but_func(bContext *C, uiBut *but) { - if (but->func) - but->func(but->func_arg1, but->func_arg2); - if(but->func3) - but->func3(but->func_arg1, but->func_arg2, but->func_arg3); + uiBlock *block= but->block; + + if(but->func) + but->func(C, but->func_arg1, but->func_arg2); + + if(block) { + if(block->handle_func) + block->handle_func(C, block->handle_func_arg, but->retval); + if(but->type == BUTM && block->butm_func) + block->butm_func(C, block->butm_func_arg, but->a2); + } } -static void ui_apply_but_BUT(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_BUT(bContext *C, uiBut *but, uiHandleButtonData *data) { - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_BUTM(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_set_but_val(but, but->min); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_BLOCK(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data) { if(but->type == COL) ui_set_but_vectorf(but, data->vec); @@ -172,12 +179,12 @@ static void ui_apply_but_BLOCK(uiBut *but, uiHandleButtonData *data) ui_set_but_val(but, data->value); ui_check_but(but); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_TOG(uiBlock *block, uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_TOG(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data) { double value; int w, lvalue, push; @@ -230,22 +237,22 @@ static void ui_apply_but_TOG(uiBlock *block, uiBut *but, uiHandleButtonData *dat but->poin -= 4; } - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_ROW(uiBlock *block, uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_ROW(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data) { ui_set_but_val(but, but->max); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_TEX(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_TEX(bContext *C, uiBut *but, uiHandleButtonData *data) { if(!data->str) return; @@ -256,14 +263,14 @@ static void ui_apply_but_TEX(uiBut *but, uiHandleButtonData *data) /* give butfunc the original text too */ /* feature used for bone renaming, channels, etc */ if(but->func_arg2==NULL) but->func_arg2= data->origstr; - ui_apply_but_func(but); + ui_apply_but_func(C, but); if(but->func_arg2==data->origstr) but->func_arg2= NULL; data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_NUM(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) { if(data->str) { /* XXX 2.50 missing python api */ @@ -289,20 +296,20 @@ static void ui_apply_but_NUM(uiBut *but, uiHandleButtonData *data) ui_set_but_val(but, data->value); ui_check_but(but); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_LABEL(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_LABEL(bContext *C, uiBut *but, uiHandleButtonData *data) { - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_TOG3(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_TOG3(bContext *C, uiBut *but, uiHandleButtonData *data) { if(but->pointype==SHO ) { short *sp= (short *)but->poin; @@ -330,54 +337,54 @@ static void ui_apply_but_TOG3(uiBut *but, uiHandleButtonData *data) } ui_check_but(but); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_VEC(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_set_but_vectorf(but, data->vec); ui_check_but(but); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_COLORBAND(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_COLORBAND(bContext *C, uiBut *but, uiHandleButtonData *data) { - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_CURVE(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_CURVE(bContext *C, uiBut *but, uiHandleButtonData *data) { - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } -static void ui_apply_but_IDPOIN(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *data) { - but->idpoin_func(data->str, but->idpoin_idpp); + but->idpoin_func(C, data->str, but->idpoin_idpp); ui_check_but(but); - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } #ifdef INTERNATIONAL -static void ui_apply_but_CHARTAB(uiBut *but, uiHandleButtonData *data) +static void ui_apply_but_CHARTAB(bContext *C, uiBut *but, uiHandleButtonData *data) { - ui_apply_but_func(but); + ui_apply_but_func(C, but); data->retval= but->retval; data->applied= 1; } #endif -static void ui_apply_button(uiBlock *block, uiBut *but, uiHandleButtonData *data, int interactive) +static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, int interactive) { char *editstr; double *editval; @@ -425,10 +432,10 @@ static void ui_apply_button(uiBlock *block, uiBut *but, uiHandleButtonData *data /* handle different types */ switch(but->type) { case BUT: - ui_apply_but_BUT(but, data); + ui_apply_but_BUT(C, but, data); break; case TEX: - ui_apply_but_TEX(but, data); + ui_apply_but_TEX(C, but, data); break; case TOG: case TOGR: @@ -436,29 +443,29 @@ static void ui_apply_button(uiBlock *block, uiBut *but, uiHandleButtonData *data case ICONTOGN: case TOGN: case BUT_TOGDUAL: - ui_apply_but_TOG(block, but, data); + ui_apply_but_TOG(C, block, but, data); break; case ROW: - ui_apply_but_ROW(block, but, data); + ui_apply_but_ROW(C, block, but, data); break; case SCROLL: break; case NUM: case NUMABS: - ui_apply_but_NUM(but, data); + ui_apply_but_NUM(C, but, data); break; case SLI: case NUMSLI: - ui_apply_but_NUM(but, data); + ui_apply_but_NUM(C, but, data); break; case HSVSLI: break; case ROUNDBOX: case LABEL: - ui_apply_but_LABEL(but, data); + ui_apply_but_LABEL(C, but, data); break; case TOG3: - ui_apply_but_TOG3(but, data); + ui_apply_but_TOG3(C, but, data); break; case MENU: case ICONROW: @@ -466,27 +473,27 @@ static void ui_apply_button(uiBlock *block, uiBut *but, uiHandleButtonData *data case BLOCK: case PULLDOWN: case COL: - ui_apply_but_BLOCK(but, data); + ui_apply_but_BLOCK(C, but, data); break; case BUTM: - ui_apply_but_BUTM(but, data); + ui_apply_but_BUTM(C, but, data); break; case BUT_NORMAL: case HSVCUBE: - ui_apply_but_VEC(but, data); + ui_apply_but_VEC(C, but, data); break; case BUT_COLORBAND: - ui_apply_but_COLORBAND(but, data); + ui_apply_but_COLORBAND(C, but, data); break; case BUT_CURVE: - ui_apply_but_CURVE(but, data); + ui_apply_but_CURVE(C, but, data); break; case IDPOIN: - ui_apply_but_IDPOIN(but, data); + ui_apply_but_IDPOIN(C, but, data); break; #ifdef INTERNATIONAL case CHARTAB: - ui_apply_but_CHARTAB(but, data); + ui_apply_but_CHARTAB(C, but, data); break; #endif case LINK: @@ -906,13 +913,13 @@ static int ui_textedit_delete(uiBut *but, uiHandleButtonData *data, int directio return changed; } -static int ui_textedit_autocomplete(uiBut *but, uiHandleButtonData *data) +static int ui_textedit_autocomplete(bContext *C, uiBut *but, uiHandleButtonData *data) { char *str; int changed= 1; str= data->str; - but->autocomplete_func(str, but->autofunc_arg); + but->autocomplete_func(C, str, but->autofunc_arg); but->pos= strlen(str); return changed; @@ -1179,7 +1186,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle case TABKEY: /* there is a key conflict here, we can't tab with autocomplete */ if(but->autocomplete_func) { - changed= ui_textedit_autocomplete(but, data); + changed= ui_textedit_autocomplete(C, but, data); retval= WM_UI_HANDLER_BREAK; } /* the hotkey here is not well defined, was G.qual so we check all */ @@ -1202,7 +1209,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle } if(changed) { - if(data->interactive) ui_apply_button(block, but, data, 1); + if(data->interactive) ui_apply_button(C, block, but, data, 1); else ui_check_but(but); } @@ -1286,7 +1293,7 @@ static void ui_numedit_end(uiBut *but, uiHandleButtonData *data) static void ui_numedit_apply(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data) { - if(data->interactive) ui_apply_button(block, but, data, 1); + if(data->interactive) ui_apply_button(C, block, but, data, 1); else ui_check_but(but); WM_event_add_notifier(C, WM_NOTE_WINDOW_REDRAW, 0, NULL); @@ -2791,7 +2798,7 @@ static void button_activate_exit(bContext *C, uiHandleButtonData *data, uiBut *b } /* apply the button action or value */ - ui_apply_button(block, but, data, 0); + ui_apply_button(C, block, but, data, 0); /* disable tooltips until mousemove */ ui_blocks_set_tooltips(data->region, 0); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 251db907bf4..a25e99e0d88 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1024,7 +1024,7 @@ static void ui_update_block_buts_hex(uiBlock *block, char *hexcol) /* bt1 is palette but, col1 is original color */ /* callback to copy from/to palette */ -static void do_palette_cb(void *bt1, void *col1) +static void do_palette_cb(bContext *C, void *bt1, void *col1) { uiBut *but1= (uiBut *)bt1; float *col= (float *)col1; @@ -1048,7 +1048,7 @@ static void do_palette_cb(void *bt1, void *col1) /* bt1 is num but, hsv1 is pointer to original color in hsv space*/ /* callback to handle changes in num-buts in picker */ -static void do_palette1_cb(void *bt1, void *hsv1) +static void do_palette1_cb(bContext *C, void *bt1, void *hsv1) { uiBut *but1= (uiBut *)bt1; float *hsv= (float *)hsv1; @@ -1067,7 +1067,7 @@ static void do_palette1_cb(void *bt1, void *hsv1) /* bt1 is num but, col1 is pointer to original color */ /* callback to handle changes in num-buts in picker */ -static void do_palette2_cb(void *bt1, void *col1) +static void do_palette2_cb(bContext *C, void *bt1, void *col1) { uiBut *but1= (uiBut *)bt1; float *rgb= (float *)col1; @@ -1084,7 +1084,7 @@ static void do_palette2_cb(void *bt1, void *col1) ui_update_block_buts_hsv(but1->block, fp); } -static void do_palette_hex_cb(void *bt1, void *hexcl) +static void do_palette_hex_cb(bContext *C, void *bt1, void *hexcl) { uiBut *but1= (uiBut *)bt1; char *hexcol= (char *)hexcl; @@ -1093,7 +1093,7 @@ static void do_palette_hex_cb(void *bt1, void *hexcl) } /* used for both 3d view and image window */ -static void do_palette_sample_cb(void *bt1, void *col1) /* frontbuf */ +static void do_palette_sample_cb(bContext *C, void *bt1, void *col1) /* frontbuf */ { /* XXX 2.50 this should become an operator? */ #if 0 diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c index 37d9ce2906a..4e497ee7b79 100644 --- a/source/blender/editors/space_outliner/space_outliner.c +++ b/source/blender/editors/space_outliner/space_outliner.c @@ -159,9 +159,9 @@ typedef struct CellRNA { CollectionPropertyIterator iter; } CellRNA; -static void rna_back_cb(void *arg_buts, void *arg_unused) +static void rna_back_cb(bContext *C, void *arg_unused, void *arg_unused2) { - SpaceOops *soutliner= arg_buts; + SpaceOops *soutliner= C->area->spacedata.first; char *newpath; newpath= RNA_path_back(soutliner->rnapath); @@ -170,9 +170,9 @@ static void rna_back_cb(void *arg_buts, void *arg_unused) soutliner->rnapath= newpath; } -static void rna_pointer_cb(void *arg_buts, void *arg_prop, void *arg_index) +static void rna_pointer_cb(bContext *C, void *arg_prop, void *arg_index) { - SpaceOops *soutliner= arg_buts; + SpaceOops *soutliner= C->area->spacedata.first; PropertyRNA *prop= arg_prop; char *newpath; int index= GET_INT_FROM_POINTER(arg_index);; @@ -240,7 +240,7 @@ static void rna_collection_but(CellRNA *cell, rcti *rct, uiBlock *block) if(nameptr != name) MEM_freeN(nameptr); - uiButSetFunc3(but, rna_pointer_cb, cell->space, cell->prop, SET_INT_IN_POINTER(cell->index)); + uiButSetFunc(but, rna_pointer_cb, cell->prop, SET_INT_IN_POINTER(cell->index)); } static void rna_but(CellRNA *cell, rcti *rct, uiBlock *block) @@ -267,7 +267,7 @@ static void rna_but(CellRNA *cell, rcti *rct, uiBlock *block) but= uiDefRNABut(block, 0, &cell->ptr, prop, index, rct->xmin, rct->ymin, rct->xmax-rct->xmin, rct->ymax-rct->ymin); if(type == PROP_POINTER) - uiButSetFunc3(but, rna_pointer_cb, cell->space, prop, SET_INT_IN_POINTER(0)); + uiButSetFunc(but, rna_pointer_cb, prop, SET_INT_IN_POINTER(0)); } } } diff --git a/source/blender/editors/space_time/time_header.c b/source/blender/editors/space_time/time_header.c index a3cf93c9630..2552f26256e 100644 --- a/source/blender/editors/space_time/time_header.c +++ b/source/blender/editors/space_time/time_header.c @@ -90,9 +90,9 @@ static void end_animated_screen(SpaceTime *stime) #define B_TL_INSERTKEY 758 #define B_TL_DELETEKEY 759 -void do_time_buttons(ScrArea *sa, unsigned short event) +void do_time_buttons(bContext *C, void *arg, int event) { - SpaceTime *stime= sa->spacedata.first; + SpaceTime *stime= C->area->spacedata.first; switch(event) { @@ -149,10 +149,9 @@ void do_time_buttons(ScrArea *sa, unsigned short event) } } -static void do_time_redrawmenu(void *arg, int event) +static void do_time_redrawmenu(bContext *C, void *arg, int event) { - ScrArea *curarea; - SpaceTime *stime= curarea->spacedata.first; + SpaceTime *stime= C->area->spacedata.first; if(event < 1001) { @@ -169,9 +168,9 @@ static void do_time_redrawmenu(void *arg, int event) } -static uiBlock *time_redrawmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_area) +static uiBlock *time_redrawmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused) { - ScrArea *curarea= arg_area; + ScrArea *curarea= C->area; SpaceTime *stime= curarea->spacedata.first; uiBlock *block; short yco= 0, menuwidth=120, icon; @@ -231,9 +230,9 @@ static uiBlock *time_redrawmenu(bContext *C, uiMenuBlockHandle *handle, void *ar return block; } -static void do_time_viewmenu(void *arg, int event) +static void do_time_viewmenu(bContext *C, void *arg, int event) { - ScrArea *curarea; + ScrArea *curarea= C->area; SpaceTime *stime= curarea->spacedata.first; int first; @@ -284,9 +283,9 @@ static void do_time_viewmenu(void *arg, int event) //allqueue(REDRAWVIEW3D, 0); } -static uiBlock *time_viewmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_area) +static uiBlock *time_viewmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused) { - ScrArea *curarea= arg_area; + ScrArea *curarea= C->area; SpaceTime *stime= curarea->spacedata.first; uiBlock *block; short yco= 0, menuwidth=120; @@ -340,7 +339,7 @@ static uiBlock *time_viewmenu(bContext *C, uiMenuBlockHandle *handle, void *arg_ return block; } -static void do_time_framemenu(void *arg, int event) +static void do_time_framemenu(bContext *C, void *arg, int event) { switch(event) { case 1: /*Set as Start */ @@ -386,9 +385,9 @@ static void do_time_framemenu(void *arg, int event) //allqueue(REDRAWSOUND, 0); } -static uiBlock *time_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg_area) +static uiBlock *time_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg_unused) { - ScrArea *curarea= arg_area; + ScrArea *curarea= C->area; uiBlock *block; short yco= 0, menuwidth=120; @@ -436,7 +435,6 @@ static uiBlock *time_framemenu(bContext *C, uiMenuBlockHandle *handle, void *arg #define AUTOKEY_ON 0 #define B_DIFF 0 - void time_header_buttons(const bContext *C, ARegion *ar) { ScrArea *sa= C->area; @@ -445,6 +443,7 @@ void time_header_buttons(const bContext *C, ARegion *ar) int xco, yco= 3; block= uiBeginBlock(C, ar, "header buttons", UI_EMBOSS, UI_HELV); + uiBlockSetHandleFunc(block, do_time_buttons, NULL); if(ED_screen_area_active(C)) uiBlockSetCol(block, TH_HEADER); else uiBlockSetCol(block, TH_HEADERDESEL); |