Commit: 1044dfd965a8a0b85095ce51b34eb3876701d967
Author: Antony Riakiotakis
Date:   Wed Apr 22 13:19:58 2015 +0200
Branches: master
https://developer.blender.org/rB1044dfd965a8a0b85095ce51b34eb3876701d967

Fix and simplify vertical positioning and calculation of metadata
display more.

===================================================================

M       source/blender/editors/include/ED_util.h
M       source/blender/editors/screen/area.c

===================================================================

diff --git a/source/blender/editors/include/ED_util.h 
b/source/blender/editors/include/ED_util.h
index 96d7828..9556c60 100644
--- a/source/blender/editors/include/ED_util.h
+++ b/source/blender/editors/include/ED_util.h
@@ -42,8 +42,6 @@ void    ED_editors_exit(struct bContext *C);
 
 bool    ED_editors_flush_edits(const struct bContext *C, bool for_render);
 
-void ED_draw_ibuf_meta_data(const bContext *C, struct ImBuf *ibuf);
-
 /* ************** Undo ************************ */
 
 /* undo.c */
diff --git a/source/blender/editors/screen/area.c 
b/source/blender/editors/screen/area.c
index c6de4e5..8844f34 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -2097,7 +2097,8 @@ static void metadata_draw_imbuf(ImBuf *ibuf, rcti rect, 
int fontid, const bool i
                        else {
                                len = BLI_snprintf_rlen(temp_str, 
MAX_METADATA_STR, "%s: ", meta_data_list[i + 1]);
                                if (metadata_is_valid(ibuf, temp_str, i + 1, 
len)) {
-                                       BLF_position(fontid, rect.xmax + (0.2f 
* U.widget_unit),
+                                       line_width = BLF_width(fontid, 
temp_str, BLF_DRAW_STR_DUMMY_MAX);
+                                       BLF_position(fontid, rect.xmax  - 
line_width -  (0.2f * U.widget_unit),
                                                     rect.ymax - factor * (1.5f 
* U.widget_unit - UI_UNIT_Y) - ofs_y, 0.0f);
                                        BLF_draw(fontid, temp_str, 
BLF_DRAW_STR_DUMMY_MAX);
                                        ofs_y += (height + (0.2f * 
U.widget_unit));
@@ -2112,7 +2113,7 @@ static void metadata_draw_imbuf(ImBuf *ibuf, rcti rect, 
int fontid, const bool i
                        if (metadata_is_valid(ibuf, temp_str, i, len)) {
                                const int line_height = height;
                                BLF_position(fontid, rect.xmin + (0.2f * 
U.widget_unit) + ofs_x,
-                                            rect.ymin - line_height + factor * 
(1.5f * U.widget_unit), 0.0f);
+                                            rect.ymin - line_height + factor * 
(U.widget_unit), 0.0f);
                                BLF_draw(fontid, temp_str, 
BLF_DRAW_STR_DUMMY_MAX);
        
                                ofs_x += BLF_width(fontid, temp_str, 
BLF_DRAW_STR_DUMMY_MAX) + UI_UNIT_X;
@@ -2124,26 +2125,29 @@ static void metadata_draw_imbuf(ImBuf *ibuf, rcti rect, 
int fontid, const bool i
 static float metadata_box_height_get(ImBuf *ibuf, int fontid, const bool 
is_top)
 {
        char str[MAX_METADATA_STR];
-       float height = 0;
-       short i;
+       short i, count = 0;
+       const float height = BLF_height_max(fontid) + 0.2f * U.widget_unit;
 
        if (is_top) {
-               for (i = 0; i < 5 ; i++) {
+               if (metadata_is_valid(ibuf, str, 0, 0) || 
metadata_is_valid(ibuf, str, 1, 0)) {
+                       count++;
+               }
+               for (i = 2; i < 5; i++) {
                        if (metadata_is_valid(ibuf, str, i, 0)) {
-                               height += BLF_height(fontid, str, strlen(str));
+                               count++;
                        }
                }
        }
        else {
                for (i = 5; i < 10; i++) {
                        if (metadata_is_valid(ibuf, str, i, 0)) {
-                               height += BLF_height(fontid, str, strlen(str));
+                               count = 1;
                        }
                }
        }
 
-       if (height) {
-               return (height + (0.2f * U.widget_unit));
+       if (count) {
+               return (height * count + (0.2f * U.widget_unit));
        }
 
        return 0;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to