From 5816aa42bf7bff9c7037b7a2bd629c8f26ed2fed Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 23 Oct 2013 06:48:36 +0000 Subject: code cleanup: minor transform refactor redraw flag were mixing up types - int/char/bool, add enum type to use instead. --- source/blender/editors/include/ED_numinput.h | 7 ++- source/blender/editors/transform/transform.c | 62 ++++++++++++---------- source/blender/editors/transform/transform.h | 23 ++++---- .../editors/transform/transform_constraints.c | 6 +-- .../blender/editors/transform/transform_generics.c | 2 +- source/blender/editors/transform/transform_input.c | 4 +- source/blender/editors/transform/transform_snap.c | 16 +++--- source/blender/editors/util/numinput.c | 8 +-- 8 files changed, 68 insertions(+), 60 deletions(-) diff --git a/source/blender/editors/include/ED_numinput.h b/source/blender/editors/include/ED_numinput.h index e7d80d96f89..f46332c9a82 100644 --- a/source/blender/editors/include/ED_numinput.h +++ b/source/blender/editors/include/ED_numinput.h @@ -27,7 +27,6 @@ #ifndef __ED_NUMINPUT_H__ #define __ED_NUMINPUT_H__ - /* * The ctrl value has different meaning: * 0 : No value has been typed @@ -59,11 +58,11 @@ typedef struct NumInput { void initNumInput(NumInput *n); #define NUM_STR_REP_LEN 20 /* str must be NUM_STR_LEN * (idx_max + 1) length. */ void outputNumInput(NumInput *n, char *str); -short hasNumInput(NumInput *n); +bool hasNumInput(const NumInput *n); void applyNumInput(NumInput *n, float *vec); -char handleNumInput(NumInput *n, const struct wmEvent *event); +bool handleNumInput(NumInput *n, const struct wmEvent *event); #define NUM_MODAL_INCREMENT_UP 18 #define NUM_MODAL_INCREMENT_DOWN 19 -#endif +#endif /* __ED_NUMINPUT_H__ */ diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index a0db93d53b8..c0fb959d6b5 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -111,11 +111,11 @@ static void postInputRotation(TransInfo *t, float values[3]); /* Transform Callbacks */ static void initWarp(TransInfo *t); -static int handleEventWarp(TransInfo *t, const struct wmEvent *event); +static eRedrawFlag handleEventWarp(TransInfo *t, const struct wmEvent *event); static void Warp(TransInfo *t, const int mval[2]); static void initShear(TransInfo *t); -static int handleEventShear(TransInfo *t, const struct wmEvent *event); +static eRedrawFlag handleEventShear(TransInfo *t, const struct wmEvent *event); static void applyShear(TransInfo *t, const int mval[2]); static void initResize(TransInfo *t); @@ -167,11 +167,11 @@ static void initBoneRoll(TransInfo *t); static void applyBoneRoll(TransInfo *t, const int mval[2]); static void initEdgeSlide(TransInfo *t); -static int handleEventEdgeSlide(TransInfo *t, const struct wmEvent *event); +static eRedrawFlag handleEventEdgeSlide(TransInfo *t, const struct wmEvent *event); static void applyEdgeSlide(TransInfo *t, const int mval[2]); static void initVertSlide(TransInfo *t); -static int handleEventVertSlide(TransInfo *t, const struct wmEvent *event); +static eRedrawFlag handleEventVertSlide(TransInfo *t, const struct wmEvent *event); static void applyVertSlide(TransInfo *t, const int mval[2]); static void initTimeTranslate(TransInfo *t); @@ -1220,8 +1220,10 @@ int transformEvent(TransInfo *t, const wmEvent *event) break; } - // Modal numinput events - t->redraw |= handleNumInput(&(t->num), event); + /* Modal numinput events */ + if (handleNumInput(&(t->num), event)) { + t->redraw |= TREDRAW_HARD; + } } /* else do non-mapped events */ else if (event->val == KM_PRESS) { @@ -1325,7 +1327,7 @@ int transformEvent(TransInfo *t, const wmEvent *event) t->flag ^= T_PROP_CONNECTED; sort_trans_data_dist(t); calculatePropRatio(t); - t->redraw = 1; + t->redraw = TREDRAW_HARD; } else { stopConstraint(t); @@ -1351,7 +1353,7 @@ int transformEvent(TransInfo *t, const wmEvent *event) t->prop_size = min_ff(t->prop_size, ((View3D *)t->view)->far); calculatePropRatio(t); } - t->redraw = 1; + t->redraw = TREDRAW_HARD; break; case PAGEUPKEY: case WHEELDOWNMOUSE: @@ -1361,14 +1363,14 @@ int transformEvent(TransInfo *t, const wmEvent *event) else { view_editmove(event->type); } - t->redraw = 1; + t->redraw = TREDRAW_HARD; break; case PADMINUS: if (event->alt && t->flag & T_PROP_EDIT) { t->prop_size *= 0.90909090f; calculatePropRatio(t); } - t->redraw = 1; + t->redraw = TREDRAW_HARD; break; case PAGEDOWNKEY: case WHEELUPMOUSE: @@ -1378,7 +1380,7 @@ int transformEvent(TransInfo *t, const wmEvent *event) else { view_editmove(event->type); } - t->redraw = 1; + t->redraw = TREDRAW_HARD; break; case LEFTALTKEY: case RIGHTALTKEY: @@ -1393,10 +1395,12 @@ int transformEvent(TransInfo *t, const wmEvent *event) break; } - // Numerical input events - t->redraw |= handleNumInput(&(t->num), event); + /* Numerical input events */ + if (handleNumInput(&(t->num), event)) { + t->redraw |= TREDRAW_HARD; + } - // Snapping key events + /* Snapping key events */ t->redraw |= handleSnapping(t, event); } @@ -2735,9 +2739,9 @@ static void initWarp(TransInfo *t) t->customData = data; } -static int handleEventWarp(TransInfo *UNUSED(t), const wmEvent *event) +static eRedrawFlag handleEventWarp(TransInfo *UNUSED(t), const wmEvent *event) { - int status = TREDRAW_NOTHING; + eRedrawFlag status = TREDRAW_NOTHING; if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) { status = TREDRAW_HARD; @@ -2898,9 +2902,9 @@ static void initShear(TransInfo *t) t->flag |= T_NO_CONSTRAINT; } -static int handleEventShear(TransInfo *t, const wmEvent *event) +static eRedrawFlag handleEventShear(TransInfo *t, const wmEvent *event) { - int status = TREDRAW_NOTHING; + eRedrawFlag status = TREDRAW_NOTHING; if (event->type == MIDDLEMOUSE && event->val == KM_PRESS) { // Use customData pointer to signal Shear direction @@ -5867,7 +5871,7 @@ static void initEdgeSlide(TransInfo *t) t->flag |= T_NO_CONSTRAINT | T_NO_PROJECT; } -static int handleEventEdgeSlide(struct TransInfo *t, const struct wmEvent *event) +static eRedrawFlag handleEventEdgeSlide(struct TransInfo *t, const struct wmEvent *event) { if (t->mode == TFM_EDGE_SLIDE) { EdgeSlideData *sld = t->customData; @@ -5877,7 +5881,7 @@ static int handleEventEdgeSlide(struct TransInfo *t, const struct wmEvent *event case EKEY: if (event->val == KM_PRESS) { sld->is_proportional = !sld->is_proportional; - return 1; + return TREDRAW_HARD; } break; case FKEY: @@ -5886,7 +5890,7 @@ static int handleEventEdgeSlide(struct TransInfo *t, const struct wmEvent *event if (sld->is_proportional == FALSE) { sld->flipped_vtx = !sld->flipped_vtx; } - return 1; + return TREDRAW_HARD; } break; } @@ -5911,7 +5915,7 @@ static int handleEventEdgeSlide(struct TransInfo *t, const struct wmEvent *event } } } - return 0; + return TREDRAW_NOTHING; } static void drawEdgeSlide(const struct bContext *C, TransInfo *t) @@ -6338,7 +6342,7 @@ void freeVertSlideVerts(TransInfo *t) recalcData(t); } -void initVertSlide(TransInfo *t) +static void initVertSlide(TransInfo *t) { VertSlideData *sld; @@ -6373,7 +6377,7 @@ void initVertSlide(TransInfo *t) t->flag |= T_NO_CONSTRAINT | T_NO_PROJECT; } -int handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) +static eRedrawFlag handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) { if (t->mode == TFM_VERT_SLIDE) { VertSlideData *sld = t->customData; @@ -6386,7 +6390,7 @@ int handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) if (sld->flipped_vtx) { calcVertSlideCustomPoints(t); } - return 1; + return TREDRAW_HARD; } break; case FKEY: @@ -6394,7 +6398,7 @@ int handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) if (event->val == KM_PRESS) { sld->flipped_vtx = !sld->flipped_vtx; calcVertSlideCustomPoints(t); - return 1; + return TREDRAW_HARD; } break; } @@ -6404,7 +6408,7 @@ int handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) if (event->val == KM_PRESS) { t->flag ^= T_ALT_TRANSFORM; calcVertSlideCustomPoints(t); - return 1; + return TREDRAW_HARD; } break; } @@ -6440,7 +6444,7 @@ int handleEventVertSlide(struct TransInfo *t, const struct wmEvent *event) } } } - return 0; + return TREDRAW_NOTHING; } static void drawVertSlide(const struct bContext *C, TransInfo *t) @@ -6557,7 +6561,7 @@ static int doVertSlide(TransInfo *t, float perc) return 1; } -void applyVertSlide(TransInfo *t, const int UNUSED(mval[2])) +static void applyVertSlide(TransInfo *t, const int UNUSED(mval[2])) { char str[MAX_INFO_LEN]; size_t ofs = 0; diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h index 7233d22756d..376847937f3 100644 --- a/source/blender/editors/transform/transform.h +++ b/source/blender/editors/transform/transform.h @@ -62,6 +62,13 @@ struct wmTimer; struct ARegion; struct ReportList; +/* transinfo->redraw */ +typedef enum { + TREDRAW_NOTHING = 0, + TREDRAW_HARD = 1, + TREDRAW_SOFT = 2, +} eRedrawFlag; + typedef struct TransSnapPoint { struct TransSnapPoint *next, *prev; float co[3]; @@ -286,7 +293,7 @@ typedef struct TransInfo { float fac; /* factor for distance based transform */ void (*transform)(struct TransInfo *, const int[2]); /* transform function pointer */ - int (*handleEvent)(struct TransInfo *, const struct wmEvent *); + eRedrawFlag (*handleEvent)(struct TransInfo *, const struct wmEvent *); /* event handler function pointer RETURN 1 if redraw is needed */ int total; /* total number of transformed data */ TransData *data; /* transformed data (array) */ @@ -296,7 +303,7 @@ typedef struct TransInfo { TransSnap tsnap; NumInput num; /* numerical input */ MouseInput mouse; /* mouse input */ - char redraw; /* redraw flag */ + eRedrawFlag redraw; /* redraw flag */ float prop_size; /* proportional circle radius */ char proptext[20]; /* proportional falloff text */ float center[3]; /* center of transformation */ @@ -372,12 +379,6 @@ typedef struct TransInfo { #define TRANS_CONFIRM 2 #define TRANS_CANCEL 3 -/* transinfo->redraw */ -#define TREDRAW_NOTHING 0 -#define TREDRAW_HARD 1 -#define TREDRAW_SOFT 2 - - /* transinfo->flag */ #define T_OBJECT (1 << 0) #define T_EDIT (1 << 1) @@ -575,14 +576,14 @@ void initSnapping(struct TransInfo *t, struct wmOperator *op); void applyProject(TransInfo *t); void applySnapping(TransInfo *t, float *vec); void resetSnapping(TransInfo *t); -bool handleSnapping(TransInfo *t, const struct wmEvent *event); +eRedrawFlag handleSnapping(TransInfo *t, const struct wmEvent *event); void drawSnapping(const struct bContext *C, TransInfo *t); bool usingSnappingNormal(TransInfo *t); bool validSnappingNormal(TransInfo *t); void getSnapPoint(TransInfo *t, float vec[3]); void addSnapPoint(TransInfo *t); -bool updateSelectedSnapPoint(TransInfo *t); +eRedrawFlag updateSelectedSnapPoint(TransInfo *t); void removeSnapPoint(TransInfo *t); /********************** Mouse Input ******************************/ @@ -605,7 +606,7 @@ typedef enum { void initMouseInput(TransInfo *t, MouseInput *mi, const float center[2], const int mval[2]); void initMouseInputMode(TransInfo *t, MouseInput *mi, MouseInputMode mode); -int handleMouseInput(struct TransInfo *t, struct MouseInput *mi, const struct wmEvent *event); +eRedrawFlag handleMouseInput(struct TransInfo *t, struct MouseInput *mi, const struct wmEvent *event); void applyMouseInput(struct TransInfo *t, struct MouseInput *mi, const int mval[2], float output[3]); void setCustomPoints(TransInfo *t, MouseInput *mi, const int start[2], const int end[2]); diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c index 4580bbefc96..4497723185f 100644 --- a/source/blender/editors/transform/transform_constraints.c +++ b/source/blender/editors/transform/transform_constraints.c @@ -569,7 +569,7 @@ void setConstraint(TransInfo *t, float space[3][3], int mode, const char text[]) t->con.applyVec = applyAxisConstraintVec; t->con.applySize = applyAxisConstraintSize; t->con.applyRot = applyAxisConstraintRot; - t->redraw = 1; + t->redraw = TREDRAW_HARD; } /* applies individual td->axismtx constraints */ @@ -590,7 +590,7 @@ void setAxisMatrixConstraint(TransInfo *t, int mode, const char text[]) t->con.applyVec = applyObjectConstraintVec; t->con.applySize = applyObjectConstraintSize; t->con.applyRot = applyObjectConstraintRot; - t->redraw = 1; + t->redraw = TREDRAW_HARD; } } @@ -911,7 +911,7 @@ void postSelectConstraint(TransInfo *t) setNearestAxis(t); startConstraint(t); - t->redraw = 1; + t->redraw = TREDRAW_HARD; } static void setNearestAxis2d(TransInfo *t) diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 94f481d8dfc..a8248cc73e1 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1066,7 +1066,7 @@ int initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *even t->flag = 0; - t->redraw = 1; /* redraw first time */ + t->redraw = TREDRAW_HARD; /* redraw first time */ if (event) { copy_v2_v2_int(t->imval, event->mval); diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c index ee993129303..39c7b4b5c1c 100644 --- a/source/blender/editors/transform/transform_input.c +++ b/source/blender/editors/transform/transform_input.c @@ -407,9 +407,9 @@ void applyMouseInput(TransInfo *t, MouseInput *mi, const int mval[2], float outp } } -int handleMouseInput(TransInfo *t, MouseInput *mi, const wmEvent *event) +eRedrawFlag handleMouseInput(TransInfo *t, MouseInput *mi, const wmEvent *event) { - int redraw = TREDRAW_NOTHING; + eRedrawFlag redraw = TREDRAW_NOTHING; switch (event->type) { case LEFTSHIFTKEY: diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c index 04bccac2a15..dfb0217dfa8 100644 --- a/source/blender/editors/transform/transform_snap.c +++ b/source/blender/editors/transform/transform_snap.c @@ -267,16 +267,16 @@ void drawSnapping(const struct bContext *C, TransInfo *t) } } -bool handleSnapping(TransInfo *t, const wmEvent *event) +eRedrawFlag handleSnapping(TransInfo *t, const wmEvent *event) { - bool status = false; + eRedrawFlag status = TREDRAW_NOTHING; #if 0 // XXX need a proper selector for all snap mode if (BIF_snappingSupported(t->obedit) && event->type == TABKEY && event->shift) { /* toggle snap and reinit */ t->settings->snap_flag ^= SCE_SNAP; initSnapping(t, NULL); - status = 1; + status = TREDRAW_HARD; } #endif if (event->type == MOUSEMOVE) { @@ -606,9 +606,10 @@ void addSnapPoint(TransInfo *t) } } -bool updateSelectedSnapPoint(TransInfo *t) +eRedrawFlag updateSelectedSnapPoint(TransInfo *t) { - bool status = false; + eRedrawFlag status = TREDRAW_NOTHING; + if (t->tsnap.status & MULTI_POINTS) { TransSnapPoint *p, *closest_p = NULL; float closest_dist = TRANSFORM_SNAP_MAX_PX; @@ -631,7 +632,10 @@ bool updateSelectedSnapPoint(TransInfo *t) } if (closest_p) { - status = (t->tsnap.selectedPoint != closest_p); + if (t->tsnap.selectedPoint != closest_p) { + status = TREDRAW_HARD; + } + t->tsnap.selectedPoint = closest_p; } } diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c index 3e5f879aa3c..0feaf936172 100644 --- a/source/blender/editors/util/numinput.c +++ b/source/blender/editors/util/numinput.c @@ -114,16 +114,16 @@ void outputNumInput(NumInput *n, char *str) } } -short hasNumInput(NumInput *n) +bool hasNumInput(const NumInput *n) { short i; for (i = 0; i <= n->idx_max; i++) { if (n->ctrl[i]) - return 1; + return true; } - return 0; + return false; } /** @@ -159,7 +159,7 @@ void applyNumInput(NumInput *n, float *vec) } } -char handleNumInput(NumInput *n, const wmEvent *event) +bool handleNumInput(NumInput *n, const wmEvent *event) { float Val = 0; short idx = n->idx, idx_max = n->idx_max; -- cgit v1.2.3