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:
authorHans Goudey <h.goudey@me.com>2020-08-14 04:33:47 +0300
committerHans Goudey <h.goudey@me.com>2020-08-14 04:33:47 +0300
commit0ab21bf06ae021539c91d24d772813b6132ba382 (patch)
treed39e4e539f58e8d45e834592b660847992c7604b /source/blender/editors
parent570044e9f412d37fbf1523652034afe5d87a3d4e (diff)
UI Code Quality: Use derived struct for curve mapping buttons
The same changes as in rB570044e9f412.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/interface/interface.c5
-rw-r--r--source/blender/editors/interface/interface_draw.c11
-rw-r--r--source/blender/editors/interface/interface_handlers.c33
-rw-r--r--source/blender/editors/interface/interface_intern.h9
4 files changed, 38 insertions, 20 deletions
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index d7e33a37204..d49beaf2ed4 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -768,7 +768,6 @@ static bool ui_but_update_from_old_block(const bContext *C,
but->editval = oldbut->editval;
but->editvec = oldbut->editvec;
but->editcoba = oldbut->editcoba;
- but->editcumap = oldbut->editcumap;
but->selsta = oldbut->selsta;
but->selend = oldbut->selend;
but->softmin = oldbut->softmin;
@@ -3797,6 +3796,10 @@ static void ui_but_alloc_info(const eButType type,
alloc_size = sizeof(uiButHSVCube);
alloc_str = "uiButHSVCube";
break;
+ case UI_BTYPE_CURVE:
+ alloc_size = sizeof(uiButCurveMapping);
+ alloc_str = "uiButCurveMapping";
+ break;
case UI_BTYPE_CURVEPROFILE:
alloc_size = sizeof(uiButCurveProfile);
alloc_str = "uiButCurveProfile";
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index aad3b4d15a1..1ed43697cd1 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -1888,14 +1888,9 @@ static void gl_shaded_color(const uchar *color, int shade)
void ui_draw_but_CURVE(ARegion *region, uiBut *but, const uiWidgetColors *wcol, const rcti *rect)
{
- CurveMapping *cumap;
-
- if (but->editcumap) {
- cumap = but->editcumap;
- }
- else {
- cumap = (CurveMapping *)but->poin;
- }
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ CurveMapping *cumap = (but_cumap->edit_cumap == NULL) ? (CurveMapping *)but->poin :
+ but_cumap->edit_cumap;
float clip_size_x = BLI_rctf_size_x(&cumap->curr);
float clip_size_y = BLI_rctf_size_y(&cumap->curr);
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 63cd30ba1ff..3bec861568d 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -2087,8 +2087,11 @@ static void ui_apply_but(
editval = but->editval;
editvec = but->editvec;
editcoba = but->editcoba;
- editcumap = but->editcumap;
- if (but->type == UI_BTYPE_CURVEPROFILE) {
+ if (but->type == UI_BTYPE_CURVE) {
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ editcumap = but_cumap->edit_cumap;
+ }
+ else if (but->type == UI_BTYPE_CURVEPROFILE) {
uiButCurveProfile *but_profile = (uiButCurveProfile *)but;
editprofile = but_profile->edit_profile;
}
@@ -2096,8 +2099,11 @@ static void ui_apply_but(
but->editval = NULL;
but->editvec = NULL;
but->editcoba = NULL;
- but->editcumap = NULL;
- if (but->type == UI_BTYPE_CURVEPROFILE) {
+ if (but->type == UI_BTYPE_CURVE) {
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ but_cumap->edit_cumap = NULL;
+ }
+ else if (but->type == UI_BTYPE_CURVEPROFILE) {
uiButCurveProfile *but_profile = (uiButCurveProfile *)but;
but_profile->edit_profile = NULL;
}
@@ -2210,8 +2216,11 @@ static void ui_apply_but(
but->editval = editval;
but->editvec = editvec;
but->editcoba = editcoba;
- but->editcumap = editcumap;
- if (but->type == UI_BTYPE_CURVEPROFILE) {
+ if (but->type == UI_BTYPE_CURVE) {
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ but_cumap->edit_cumap = editcumap;
+ }
+ else if (but->type == UI_BTYPE_CURVEPROFILE) {
uiButCurveProfile *but_profile = (uiButCurveProfile *)but;
but_profile->edit_profile = editprofile;
}
@@ -3857,9 +3866,10 @@ static void ui_do_but_textedit_select(
static void ui_numedit_begin(uiBut *but, uiHandleButtonData *data)
{
if (but->type == UI_BTYPE_CURVE) {
- but->editcumap = (CurveMapping *)but->poin;
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ but_cumap->edit_cumap = (CurveMapping *)but->poin;
}
- if (but->type == UI_BTYPE_CURVEPROFILE) {
+ else if (but->type == UI_BTYPE_CURVEPROFILE) {
uiButCurveProfile *but_profile = (uiButCurveProfile *)but;
but_profile->edit_profile = (CurveProfile *)but->poin;
}
@@ -3952,8 +3962,11 @@ static void ui_numedit_end(uiBut *but, uiHandleButtonData *data)
but->editval = NULL;
but->editvec = NULL;
but->editcoba = NULL;
- but->editcumap = NULL;
- if (but->type == UI_BTYPE_CURVEPROFILE) {
+ if (but->type == UI_BTYPE_CURVE) {
+ uiButCurveMapping *but_cumap = (uiButCurveMapping *)but;
+ but_cumap->edit_cumap = NULL;
+ }
+ else if (but->type == UI_BTYPE_CURVEPROFILE) {
uiButCurveProfile *but_profile = (uiButCurveProfile *)but;
but_profile->edit_profile = NULL;
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index ad34649a5ec..6cd4571e2ab 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -33,6 +33,7 @@
struct AnimationEvalContext;
struct ARegion;
+struct CurveMapping;
struct CurveProfile;
struct ID;
struct ImBuf;
@@ -268,7 +269,6 @@ struct uiBut {
double *editval;
float *editvec;
void *editcoba;
- void *editcumap;
uiButPushedStateFunc pushed_state_func;
void *pushed_state_arg;
@@ -342,6 +342,13 @@ typedef struct uiButCurveProfile {
struct CurveProfile *edit_profile;
} uiButCurveProfile;
+/** Derived struct for #UI_BTYPE_CURVE. */
+typedef struct uiButCurveMapping {
+ uiBut but;
+
+ struct CurveMapping *edit_cumap;
+} uiButCurveMapping;
+
/**
* Additional, superimposed icon for a button, invoking an operator.
*/