Fix a few DPI/retina scaling issues in the graph editor and movie clip editor.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Thu, 27 Jun 2013 11:29:53 +0000 (11:29 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Thu, 27 Jun 2013 11:29:53 +0000 (11:29 +0000)
Patch #35889 by David Jeske.

source/blender/editors/animation/fmodifier_ui.c
source/blender/editors/space_clip/clip_buttons.c
source/blender/editors/space_clip/clip_dopesheet_draw.c
source/blender/editors/space_graph/graph_buttons.c

index a1cb931030a5fef4cc6121344c22e36298954767..b98e4e493ffeba8535c8945fd9921433e4c07b65 100644 (file)
@@ -111,7 +111,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
        uiBlock *block;
        uiBut *but;
        PointerRNA ptr;
-       short bwidth = width - 30; /* max button width */
+       short bwidth = width - 1.5 * UI_UNIT_X; /* max button width */
        
        /* init the RNA-pointer */
        RNA_pointer_create(id, &RNA_FModifierFunctionGenerator, fcm, &ptr);
@@ -138,7 +138,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                        /* draw polynomial order selector */
                        row = uiLayoutRow(layout, FALSE);
                        block = uiLayoutGetBlock(row);
-                       but = uiDefButI(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Poly Order:"), 10, 0, bwidth, 20,
+                       but = uiDefButI(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Poly Order:"), 0.5*UI_UNIT_X, 0, bwidth, UI_UNIT_Y,
                                        &data->poly_order, 1, 100, 0, 0,
                                        TIP_("'Order' of the Polynomial (for a polynomial with n terms, 'order' is n-1)"));
                        uiButSetFunc(but, validate_fmodifier_cb, fcm, NULL);
@@ -147,11 +147,11 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                        /* calculate maximum width of label for "x^n" labels */
                        if (data->arraysize > 2) {
                                BLI_snprintf(xval, sizeof(xval), "x^%u", data->arraysize);
-                               maxXWidth = UI_GetStringWidth(xval) + 10; /* XXX: UI_GetStringWidth is not accurate */
+                               maxXWidth = UI_GetStringWidth(xval) + 0.5 * UI_UNIT_X; /* XXX: UI_GetStringWidth is not accurate */
                        }
                        else {
                                /* basic size (just "x") */
-                               maxXWidth = UI_GetStringWidth("x") + 10; 
+                               maxXWidth = UI_GetStringWidth("x") + 0.5 * UI_UNIT_X;
                        }
                        
                        /* draw controls for each coefficient and a + sign at end of row */
@@ -162,12 +162,12 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                        for (i = 0; (i < data->arraysize) && (cp); i++, cp++) {
                                /* To align with first line... */
                                if (i)
-                                       uiDefBut(block, LABEL, 1, "   ", 0, 0, 40, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, "   ", 0, 0, 2 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                else
-                                       uiDefBut(block, LABEL, 1, "y =", 0, 0, 40, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, "y =", 0, 0, 2 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                
                                /* coefficient */
-                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, bwidth / 2, 20, cp, -UI_FLT_MAX, UI_FLT_MAX,
+                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, bwidth / 2, UI_UNIT_Y, cp, -UI_FLT_MAX, UI_FLT_MAX,
                                          10, 3, TIP_("Coefficient for polynomial"));
                                
                                /* 'x' param (and '+' if necessary) */
@@ -177,10 +177,10 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                                        BLI_strncpy(xval, "x", sizeof(xval));
                                else
                                        BLI_snprintf(xval, sizeof(xval), "x^%u", i);
-                               uiDefBut(block, LABEL, 1, xval, 0, 0, maxXWidth, 20, NULL, 0.0, 0.0, 0, 0, TIP_("Power of x"));
+                               uiDefBut(block, LABEL, 1, xval, 0, 0, maxXWidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, TIP_("Power of x"));
                                
                                if ( (i != (data->arraysize - 1)) || ((i == 0) && data->arraysize == 2) ) {
-                                       uiDefBut(block, LABEL, 1, "+", 0, 0, 20, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, "+", 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                        
                                        /* next coefficient on a new row */
                                        row = uiLayoutRow(layout, TRUE);
@@ -188,7 +188,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                                }
                                else {
                                        /* For alignment in UI! */
-                                       uiDefBut(block, LABEL, 1, " ", 0, 0, 20, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, " ", 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                }
                        }
                        break;
@@ -202,7 +202,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                        /* draw polynomial order selector */
                        row = uiLayoutRow(layout, FALSE);
                        block = uiLayoutGetBlock(row);
-                       but = uiDefButI(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Poly Order:"), 0, 0, width - 30, 19,
+                       but = uiDefButI(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Poly Order:"), 0, 0, width - 1.5 * UI_UNIT_X, UI_UNIT_Y,
                                        &data->poly_order, 1, 100, 0, 0,
                                        TIP_("'Order' of the Polynomial (for a polynomial with n terms, 'order' is n-1)"));
                        uiButSetFunc(but, validate_fmodifier_cb, fcm, NULL);
@@ -216,31 +216,31 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
                        for (i = 0; (i < data->poly_order) && (cp); i++, cp += 2) {
                                /* To align with first line */
                                if (i)
-                                       uiDefBut(block, LABEL, 1, "   ", 0, 0, 50, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, "   ", 0, 0, 2.5 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                else
-                                       uiDefBut(block, LABEL, 1, "y =", 0, 0, 50, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, "y =", 0, 0, 2.5 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                /* opening bracket */
-                               uiDefBut(block, LABEL, 1, "(", 0, 0, 20, 20, NULL, 0.0, 0.0, 0, 0, "");
+                               uiDefBut(block, LABEL, 1, "(", 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                
                                /* coefficients */
-                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, 100, 20, cp, -UI_FLT_MAX, UI_FLT_MAX,
+                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y, cp, -UI_FLT_MAX, UI_FLT_MAX,
                                          10, 3, TIP_("Coefficient of x"));
                                
-                               uiDefBut(block, LABEL, 1, "x +", 0, 0, 40, 20, NULL, 0.0, 0.0, 0, 0, "");
+                               uiDefBut(block, LABEL, 1, "x +", 0, 0, 2 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                
-                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, 100, 20, cp + 1, -UI_FLT_MAX, UI_FLT_MAX,
+                               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, "", 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y, cp + 1, -UI_FLT_MAX, UI_FLT_MAX,
                                          10, 3, TIP_("Second coefficient"));
                                
                                /* closing bracket and multiplication sign */
                                if ( (i != (data->poly_order - 1)) || ((i == 0) && data->poly_order == 2) ) {
-                                       uiDefBut(block, LABEL, 1, ") \xc3\x97", 0, 0, 40, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, ") \xc3\x97", 0, 0, 2 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                                        
                                        /* set up new row for the next pair of coefficients */
                                        row = uiLayoutRow(layout, TRUE);
                                        block = uiLayoutGetBlock(row);
                                }
                                else 
-                                       uiDefBut(block, LABEL, 1, ")  ", 0, 0, 40, 20, NULL, 0.0, 0.0, 0, 0, "");
+                                       uiDefBut(block, LABEL, 1, ")  ", 0, 0, 2 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                        }
                }
                break;
@@ -438,9 +438,9 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
        row = uiLayoutRow(layout, FALSE);
        block = uiLayoutGetBlock(row);
                
-       uiDefBut(block, LABEL, 1, IFACE_("Control Points:"), 0, 0, 150, 20, NULL, 0.0, 0.0, 0, 0, "");
+       uiDefBut(block, LABEL, 1, IFACE_("Control Points:"), 0, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
                
-       but = uiDefBut(block, BUT, B_FMODIFIER_REDRAW, IFACE_("Add Point"), 0, 0, 150, 19,
+       but = uiDefBut(block, BUT, B_FMODIFIER_REDRAW, IFACE_("Add Point"), 0, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y,
                       NULL, 0, 0, 0, 0, TIP_("Add a new control-point to the envelope on the current frame"));
        uiButSetFunc(but, fmod_envelope_addpoint_cb, env, NULL);
                
@@ -451,16 +451,16 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
                block = uiLayoutGetBlock(row);
                
                uiBlockBeginAlign(block);
-               but = uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Fra:"), 0, 0, 90, 20,
+               but = uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Fra:"), 0, 0, 4.5 * UI_UNIT_X, UI_UNIT_Y,
                                &fed->time, -MAXFRAMEF, MAXFRAMEF, 10, 1, TIP_("Frame that envelope point occurs"));
                uiButSetFunc(but, validate_fmodifier_cb, fcm, NULL);
                        
-               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Min:"), 0, 0, 100, 20,
+               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Min:"), 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y,
                          &fed->min, -UI_FLT_MAX, UI_FLT_MAX, 10, 2, TIP_("Minimum bound of envelope at this point"));
-               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Max:"), 0, 0, 100, 20,
+               uiDefButF(block, NUM, B_FMODIFIER_REDRAW, IFACE_("Max:"), 0, 0, 5 * UI_UNIT_X, UI_UNIT_Y,
                          &fed->max, -UI_FLT_MAX, UI_FLT_MAX, 10, 2, TIP_("Maximum bound of envelope at this point"));
 
-               but = uiDefIconBut(block, BUT, B_FMODIFIER_REDRAW, ICON_X, 0, 0, 18, 20,
+               but = uiDefIconBut(block, BUT, B_FMODIFIER_REDRAW, ICON_X, 0, 0, 0.9 * UI_UNIT_X, UI_UNIT_Y,
                                   NULL, 0.0, 0.0, 0.0, 0.0, TIP_("Delete envelope control point"));
                uiButSetFunc(but, fmod_envelope_deletepoint_cb, env, SET_INT_IN_POINTER(i));
                uiBlockBeginAlign(block);
index c33cf68a20a9efd236ebd8420a95a9312f45088f..18248f4775be8eeec1ede5ab1fc80ad815b3e610 100644 (file)
@@ -446,7 +446,7 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
                else
                        tip = TIP_("Marker is enabled at current frame");
 
-               uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG, IFACE_("Enabled"), 10, 190, 145, 19,
+               uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG, IFACE_("Enabled"), 0.5 * UI_UNIT_X, 9.5 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y,
                             &cb->marker_flag, 0, 0, 0, 0, tip);
 
                col = uiLayoutColumn(layout, TRUE);
@@ -455,33 +455,33 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P
                block = uiLayoutAbsoluteBlock(col);
                uiBlockBeginAlign(block);
 
-               uiDefBut(block, LABEL, 0, IFACE_("Position:"), 0, 190, 300, 19, NULL, 0, 0, 0, 0, "");
-               uiDefButF(block, NUM, B_MARKER_POS, IFACE_("X:"), 10, 171, 145, 19, &cb->marker_pos[0],
+               uiDefBut(block, LABEL, 0, IFACE_("Position:"), 0, 10 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+               uiDefButF(block, NUM, B_MARKER_POS, IFACE_("X:"), 0.5 * UI_UNIT_X, 9 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_pos[0],
                          -10 * width, 10.0 * width, step, digits, TIP_("X-position of marker at frame in screen coordinates"));
-               uiDefButF(block, NUM, B_MARKER_POS, IFACE_("Y:"), 165, 171, 145, 19, &cb->marker_pos[1],
+               uiDefButF(block, NUM, B_MARKER_POS, IFACE_("Y:"), 8.25 * UI_UNIT_X, 9 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_pos[1],
                          -10 * height, 10.0 * height, step, digits,
                          TIP_("Y-position of marker at frame in screen coordinates"));
 
-               uiDefBut(block, LABEL, 0, IFACE_("Offset:"), 0, 152, 300, 19, NULL, 0, 0, 0, 0, "");
-               uiDefButF(block, NUM, B_MARKER_OFFSET, IFACE_("X:"), 10, 133, 145, 19, &cb->track_offset[0],
+               uiDefBut(block, LABEL, 0, IFACE_("Offset:"), 0, 8 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+               uiDefButF(block, NUM, B_MARKER_OFFSET, IFACE_("X:"), 0.5 * UI_UNIT_X, 7 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->track_offset[0],
                          -10 * width, 10.0 * width, step, digits, TIP_("X-offset to parenting point"));
-               uiDefButF(block, NUM, B_MARKER_OFFSET, IFACE_("Y:"), 165, 133, 145, 19, &cb->track_offset[1],
+               uiDefButF(block, NUM, B_MARKER_OFFSET, IFACE_("Y:"), 8.25 * UI_UNIT_X, 7 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->track_offset[1],
                          -10 * height, 10.0 * height, step, digits, TIP_("Y-offset to parenting point"));
 
-               uiDefBut(block, LABEL, 0, IFACE_("Pattern Area:"), 0, 114, 300, 19, NULL, 0, 0, 0, 0, "");
-               uiDefButF(block, NUM, B_MARKER_PAT_DIM, IFACE_("Width:"), 10, 95, 300, 19, &cb->marker_pat[0], 3.0f,
+               uiDefBut(block, LABEL, 0, IFACE_("Pattern Area:"), 0, 6 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+               uiDefButF(block, NUM, B_MARKER_PAT_DIM, IFACE_("Width:"), 0.5 * UI_UNIT_X, 5 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_pat[0], 3.0f,
                          10.0 * width, step, digits, TIP_("Width of marker's pattern in screen coordinates"));
-               uiDefButF(block, NUM, B_MARKER_PAT_DIM, IFACE_("Height:"), 10, 76, 300, 19, &cb->marker_pat[1], 3.0f,
+               uiDefButF(block, NUM, B_MARKER_PAT_DIM, IFACE_("Height:"), 0.5 * UI_UNIT_X, 4 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_pat[1], 3.0f,
                          10.0 * height, step, digits, TIP_("Height of marker's pattern in screen coordinates"));
 
-               uiDefBut(block, LABEL, 0, IFACE_("Search Area:"), 0, 57, 300, 19, NULL, 0, 0, 0, 0, "");
-               uiDefButF(block, NUM, B_MARKER_SEARCH_POS, IFACE_("X:"), 10, 38, 145, 19, &cb->marker_search_pos[0],
+               uiDefBut(block, LABEL, 0, IFACE_("Search Area:"), 0, 3 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "");
+               uiDefButF(block, NUM, B_MARKER_SEARCH_POS, IFACE_("X:"), 0.5 * UI_UNIT_X, 2 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_search_pos[0],
                          -width, width, step, digits, TIP_("X-position of search at frame relative to marker's position"));
-               uiDefButF(block, NUM, B_MARKER_SEARCH_POS, IFACE_("Y:"), 165, 38, 145, 19, &cb->marker_search_pos[1],
+               uiDefButF(block, NUM, B_MARKER_SEARCH_POS, IFACE_("Y:"), 8.25 * UI_UNIT_X, 2 * UI_UNIT_Y, 7.25 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_search_pos[1],
                          -height, height, step, digits, TIP_("Y-position of search at frame relative to marker's position"));
-               uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, IFACE_("Width:"), 10, 19, 300, 19, &cb->marker_search[0], 3.0f,
+               uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, IFACE_("Width:"), 0.5 * UI_UNIT_X, 1 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_search[0], 3.0f,
                          10.0 * width, step, digits, TIP_("Width of marker's search in screen coordinates"));
-               uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, IFACE_("Height:"), 10, 0, 300, 19, &cb->marker_search[1], 3.0f,
+               uiDefButF(block, NUM, B_MARKER_SEARCH_DIM, IFACE_("Height:"), 0.5 * UI_UNIT_X, 0 * UI_UNIT_Y, 15 * UI_UNIT_X, UI_UNIT_Y, &cb->marker_search[1], 3.0f,
                          10.0 * height, step, digits, TIP_("Height of marker's search in screen coordinates"));
 
                uiBlockEndAlign(block);
index 382b0b75c5e9448c2be03a2815d152a9043cc9d7..059b8ace7b909f91755226113d943e44256808c7 100644 (file)
@@ -316,7 +316,7 @@ void clip_draw_dopesheet_channels(const bContext *C, ARegion *ar)
         */
        y = (float) CHANNEL_FIRST;
 
-       BLF_size(fontid, 11.0f, U.dpi);
+       BLF_size(fontid, 11.0f * U.pixelsize, U.dpi);
 
        for (channel = dopesheet->channels.first; channel; channel = channel->next) {
                float yminc = (float) (y - CHANNEL_HEIGHT_HALF);
index f00f5d5dfdd8462cc43733112910a3d855b9491a..8f9893e3bce3f566e8340bf3ddb72a46b1da2bec 100644 (file)
@@ -775,7 +775,7 @@ static void graph_panel_modifiers(const bContext *C, Panel *pa)
                 * a menu might be nicer but would be tricky as we need some custom filtering
                 */
                uiDefButO(block, BUT, "GRAPH_OT_fmodifier_add", WM_OP_INVOKE_REGION_WIN, IFACE_("Add Modifier"),
-                         10, 0, 150, 20, TIP_("Adds a new F-Curve Modifier for the active F-Curve"));
+                         0.5 * UI_UNIT_X, 0, 7.5 * UI_UNIT_X, UI_UNIT_Y, TIP_("Adds a new F-Curve Modifier for the active F-Curve"));
                
                /* copy/paste (as sub-row)*/
                row = uiLayoutRow(row, TRUE);