Revision: 37262
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37262
Author:   ton
Date:     2011-06-06 18:04:57 +0000 (Mon, 06 Jun 2011)
Log Message:
-----------
2.5 todo:

User setting "DPI" now works for outliner too.
(todo: color picker, brush menu, nodes, fileselect path buttons, view2d 
sliders, ...)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_outliner/outliner.c

Modified: trunk/blender/source/blender/editors/space_outliner/outliner.c
===================================================================
--- trunk/blender/source/blender/editors/space_outliner/outliner.c      
2011-06-06 17:52:57 UTC (rev 37261)
+++ trunk/blender/source/blender/editors/space_outliner/outliner.c      
2011-06-06 18:04:57 UTC (rev 37262)
@@ -106,21 +106,17 @@
 #include "outliner_intern.h"
 
 
-
-#define OL_H   19
-#define OL_X   18
-
 #define OL_Y_OFFSET    2
 
-#define OL_TOG_RESTRICT_VIEWX  54
-#define OL_TOG_RESTRICT_SELECTX        36
-#define OL_TOG_RESTRICT_RENDERX        18
+#define OL_TOG_RESTRICT_VIEWX  (UI_UNIT_X*3)
+#define OL_TOG_RESTRICT_SELECTX        (UI_UNIT_X*2)
+#define OL_TOG_RESTRICT_RENDERX        UI_UNIT_X
 
 #define OL_TOGW OL_TOG_RESTRICT_VIEWX
 
-#define OL_RNA_COLX                    300
-#define OL_RNA_COL_SIZEX       150
-#define OL_RNA_COL_SPACEX      50
+#define OL_RNA_COLX                    (UI_UNIT_X*15)
+#define OL_RNA_COL_SIZEX       (UI_UNIT_X*7.5)
+#define OL_RNA_COL_SPACEX      (UI_UNIT_X*2.5)
 
 #define TS_CHUNK       128
 
@@ -260,7 +256,7 @@
                TreeStoreElem *tselem= TREESTORE(te);
                if((tselem->flag & TSE_CLOSED)==0) 
                        outliner_height(soops, &te->subtree, h);
-               (*h) += OL_H;
+               (*h) += UI_UNIT_Y;
                te= te->next;
        }
 }
@@ -297,7 +293,7 @@
                        *w = startx+100;
 
                if((tselem->flag & TSE_CLOSED)==0)
-                       outliner_rna_width(soops, &te->subtree, w, startx+OL_X);
+                       outliner_rna_width(soops, &te->subtree, w, 
startx+UI_UNIT_X);
                te= te->next;
        }
 }
@@ -2485,13 +2481,13 @@
 static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, 
SpaceOops *soops, TreeElement *te, int extend, const float mval[2])
 {
        
-       if(mval[1]>te->ys && mval[1]<te->ys+OL_H) {
+       if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
                TreeStoreElem *tselem= TREESTORE(te);
                int openclose= 0;
 
                /* open close icon */
                if((te->flag & TE_ICONROW)==0) {                                
// hidden icon, no open/close
-                       if( mval[0]>te->xs && mval[0]<te->xs+OL_X) 
+                       if( mval[0]>te->xs && mval[0]<te->xs+UI_UNIT_X) 
                                openclose= 1;
                }
 
@@ -2510,7 +2506,7 @@
                        return 1;
                }
                /* name and first icon */
-               else if(mval[0]>te->xs+OL_X && mval[0]<te->xend) {
+               else if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
                        
                        /* always makes active object */
                        if(tselem->type!=TSE_SEQUENCE && 
tselem->type!=TSE_SEQ_STRIP && tselem->type!=TSE_SEQUENCE_DUP)
@@ -2597,7 +2593,7 @@
                int row;
                
                /* get row number - 100 here is just a dummy value since we 
don't need the column */
-               UI_view2d_listview_view_to_cell(&ar->v2d, 1000, OL_H, 0.0f, 
OL_Y_OFFSET, 
+               UI_view2d_listview_view_to_cell(&ar->v2d, 1000, UI_UNIT_Y, 
0.0f, OL_Y_OFFSET, 
                                                fmval[0], fmval[1], NULL, &row);
                
                /* select relevant row */
@@ -2631,7 +2627,7 @@
 static int do_outliner_item_openclose(bContext *C, SpaceOops *soops, 
TreeElement *te, int all, const float mval[2])
 {
        
-       if(mval[1]>te->ys && mval[1]<te->ys+OL_H) {
+       if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
                TreeStoreElem *tselem= TREESTORE(te);
 
                /* all below close/open? */
@@ -2696,11 +2692,11 @@
 static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, 
TreeElement *te, const float mval[2])
 {
        
-       if(mval[1]>te->ys && mval[1]<te->ys+OL_H) {
+       if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
                TreeStoreElem *tselem= TREESTORE(te);
                
                /* name and first icon */
-               if(mval[0]>te->xs+OL_X && mval[0]<te->xend) {
+               if(mval[0]>te->xs+UI_UNIT_X && mval[0]<te->xend) {
                        
                        /* can't rename rna datablocks entries */
                        if(ELEM3(tselem->type, TSE_RNA_STRUCT, 
TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))
@@ -2861,12 +2857,12 @@
        /* store coord and continue, we need coordinates for elements outside 
view too */
        te->xs= (float)startx;
        te->ys= (float)(*starty);
-       *starty-= OL_H;
+       *starty-= UI_UNIT_Y;
        
        if((tselem->flag & TSE_CLOSED)==0) {
                TreeElement *ten;
                for(ten= te->subtree.first; ten; ten= ten->next) {
-                       outliner_set_coordinates_element(soops, ten, 
startx+OL_X, starty);
+                       outliner_set_coordinates_element(soops, ten, 
startx+UI_UNIT_X, starty);
                }
        }
        
@@ -2876,7 +2872,7 @@
 static void outliner_set_coordinates(ARegion *ar, SpaceOops *soops)
 {
        TreeElement *te;
-       int starty= (int)(ar->v2d.tot.ymax)-OL_H;
+       int starty= (int)(ar->v2d.tot.ymax)-UI_UNIT_Y;
        int startx= 0;
        
        for(te= soops->tree.first; te; te= te->next) {
@@ -3731,7 +3727,7 @@
 static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, 
SpaceOops *soops, TreeElement *te, wmEvent *event, const float mval[2])
 {
        
-       if(mval[1]>te->ys && mval[1]<te->ys+OL_H) {
+       if(mval[1]>te->ys && mval[1]<te->ys+UI_UNIT_Y) {
                int scenelevel=0, objectlevel=0, idlevel=0, datalevel=0;
                TreeStoreElem *tselem= TREESTORE(te);
                
@@ -4309,7 +4305,10 @@
        if(arg->x >= arg->xmax) 
                UI_icon_draw(arg->x, arg->y, icon);
        else {
-               uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, arg->x-4, 
arg->y, ICON_DEFAULT_WIDTH, ICON_DEFAULT_WIDTH, NULL, 0.0, 0.0, 1.0, 
arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : "");
+               /* XXX investigate: button placement of icons is way different 
than UI_icon_draw? */
+               float ufac= UI_UNIT_X/20.0f;
+               uiBut *but= uiDefIconBut(arg->block, LABEL, 0, icon, 
arg->x-3.0f*ufac, arg->y, UI_UNIT_X-4.0f*ufac, UI_UNIT_Y-4.0f*ufac, NULL, 0.0, 
0.0, 1.0, arg->alpha, (arg->id && arg->id->lib) ? arg->id->lib->name : "");
+               
                if(arg->id)
                        uiButSetDragID(but, arg->id);
        }
@@ -4572,7 +4571,7 @@
        for(te= lb->first; te; te= te->next) {
                
                /* exit drawing early */
-               if((*offsx) - OL_X > xmax)
+               if((*offsx) - UI_UNIT_X > xmax)
                        break;
 
                tselem= TREESTORE(te);
@@ -4589,19 +4588,21 @@
                        else active= tree_element_type_active(NULL, scene, 
soops, te, tselem, 0);
                        
                        if(active) {
+                               float ufac= UI_UNIT_X/20.0f;
+
                                uiSetRoundBox(15);
                                glColor4ub(255, 255, 255, 100);
-                               uiRoundBox( (float)*offsx-0.5f, (float)ys-1.0f, 
(float)*offsx+OL_H-3.0f, (float)ys+OL_H-3.0f, OL_H/2.0f-2.0f);
+                               uiRoundBox( (float)*offsx-0.5f*ufac, 
(float)ys-1.0f*ufac, (float)*offsx+UI_UNIT_Y-3.0f*ufac, 
(float)ys+UI_UNIT_Y-3.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
                                glEnable(GL_BLEND); /* roundbox disables */
                        }
                        
                        tselem_draw_icon(block, xmax, (float)*offsx, (float)ys, 
tselem, te, 0.5f);
                        te->xs= (float)*offsx;
                        te->ys= (float)ys;
-                       te->xend= (short)*offsx+OL_X;
+                       te->xend= (short)*offsx+UI_UNIT_X;
                        te->flag |= TE_ICONROW; // for click
                        
-                       (*offsx) += OL_X;
+                       (*offsx) += UI_UNIT_X;
                }
                
                /* this tree element always has same amount of branches, so 
dont draw */
@@ -4621,7 +4622,7 @@
        te->ys= (float)(*starty);
        
        for(ten= te->subtree.first; ten; ten= ten->next) {
-               outliner_set_coord_tree_element(soops, ten, startx+OL_X, 
starty);
+               outliner_set_coord_tree_element(soops, ten, startx+UI_UNIT_X, 
starty);
        }       
 }
 
@@ -4630,16 +4631,17 @@
 {
        TreeElement *ten;
        TreeStoreElem *tselem;
+       float ufac= UI_UNIT_X/20.0f;
        int offsx= 0, active=0; // active=1 active obj, else active data
        
        tselem= TREESTORE(te);
 
-       if(*starty+2*OL_H >= ar->v2d.cur.ymin && *starty<= ar->v2d.cur.ymax) {
+       if(*starty+2*UI_UNIT_Y >= ar->v2d.cur.ymin && *starty<= 
ar->v2d.cur.ymax) {
                int xmax= ar->v2d.cur.xmax;
                
                /* icons can be ui buts, we dont want it to overlap with 
restrict */
                if((soops->flag & SO_HIDE_RESTRICTCOLS)==0)
-                       xmax-= OL_TOGW+ICON_DEFAULT_WIDTH;
+                       xmax-= OL_TOGW+UI_UNIT_X;
                
                glEnable(GL_BLEND);
 
@@ -4708,7 +4710,7 @@
                /* active circle */
                if(active) {
                        uiSetRoundBox(15);
-                       uiRoundBox( (float)startx+OL_H-1.5f, 
(float)*starty+2.0f, (float)startx+2.0f*OL_H-4.0f, (float)*starty+OL_H-1.0f, 
OL_H/2.0f-2.0f);
+                       uiRoundBox( (float)startx+UI_UNIT_Y-1.5f*ufac, 
(float)*starty+2.0f*ufac, (float)startx+2.0f*UI_UNIT_Y-4.0f*ufac, 
(float)*starty+UI_UNIT_Y-1.0f*ufac, UI_UNIT_Y/2.0f-2.0f*ufac);
                        glEnable(GL_BLEND);     /* roundbox disables it */
                        
                        te->flag |= TE_ACTIVE; // for lookup in display 
hierarchies
@@ -4720,35 +4722,35 @@
                        if(tselem->type==0 && ELEM(te->idcode, ID_OB, ID_SCE))
                                icon_x = startx;
                        else
-                               icon_x = startx+5;
+                               icon_x = startx+5*ufac;
 
                                // icons a bit higher
                        if(tselem->flag & TSE_CLOSED) 
-                               UI_icon_draw((float)icon_x, (float)*starty+2, 
ICON_DISCLOSURE_TRI_RIGHT);
+                               UI_icon_draw((float)icon_x, 
(float)*starty+2*ufac, ICON_DISCLOSURE_TRI_RIGHT);
                        else
-                               UI_icon_draw((float)icon_x, (float)*starty+2, 
ICON_DISCLOSURE_TRI_DOWN);
+                               UI_icon_draw((float)icon_x, 
(float)*starty+2*ufac, ICON_DISCLOSURE_TRI_DOWN);
                }
-               offsx+= OL_X;
+               offsx+= UI_UNIT_X;
                
                /* datatype icon */
                
                if(!(ELEM(tselem->type, TSE_RNA_PROPERTY, TSE_RNA_ARRAY_ELEM))) 
{
                        // icons a bit higher
-                       tselem_draw_icon(block, xmax, (float)startx+offsx, 
(float)*starty+2, tselem, te, 1.0f);
+                       tselem_draw_icon(block, xmax, (float)startx+offsx, 
(float)*starty+2*ufac, tselem, te, 1.0f);
                        
-                       offsx+= OL_X;
+                       offsx+= UI_UNIT_X;
                }
                else
-                       offsx+= 2;
+                       offsx+= 2*ufac;
                
                if(tselem->type==0 && tselem->id->lib) {
                        glPixelTransferf(GL_ALPHA_SCALE, 0.5f);
                        if(tselem->id->flag & LIB_INDIRECT)
-                               UI_icon_draw((float)startx+offsx, 
(float)*starty+2, ICON_LIBRARY_DATA_INDIRECT);
+                               UI_icon_draw((float)startx+offsx, 
(float)*starty+2*ufac, ICON_LIBRARY_DATA_INDIRECT);
                        else
-                               UI_icon_draw((float)startx+offsx, 
(float)*starty+2, ICON_LIBRARY_DATA_DIRECT);
+                               UI_icon_draw((float)startx+offsx, 
(float)*starty+2*ufac, ICON_LIBRARY_DATA_DIRECT);
                        glPixelTransferf(GL_ALPHA_SCALE, 1.0f);
-                       offsx+= OL_X;
+                       offsx+= UI_UNIT_X;
                }               
                glDisable(GL_BLEND);
 
@@ -4757,9 +4759,9 @@
                else if(ELEM(tselem->type, TSE_RNA_PROPERTY, 
TSE_RNA_ARRAY_ELEM)) UI_ThemeColorBlend(TH_BACK, TH_TEXT, 0.75f);
                else UI_ThemeColor(TH_TEXT);
                
-               UI_DrawString(startx+offsx, *starty+5, te->name);
+               UI_DrawString(startx+offsx, *starty+5*ufac, te->name);
                
-               offsx+= (int)(OL_X + UI_GetStringWidth(te->name));
+               offsx+= (int)(UI_UNIT_X + UI_GetStringWidth(te->name));
                
                /* closed item, we draw the icons, not when it's a scene, or 
master-server list though */
                if(tselem->flag & TSE_CLOSED) {
@@ -4770,7 +4772,7 @@
                                        
                                        // divider
                                        UI_ThemeColorShade(TH_BACK, -40);
-                                       glRecti(tempx -10, *starty+4, tempx -8, 
*starty+OL_H-4);
+                                       glRecti(tempx -10, *starty+4, tempx -8, 
*starty+UI_UNIT_Y-4);
 
                                        glEnable(GL_BLEND);
                                        glPixelTransferf(GL_ALPHA_SCALE, 0.5);
@@ -4789,16 +4791,16 @@
        te->xend= startx+offsx;
                
        if((tselem->flag & TSE_CLOSED)==0) {
-               *starty-= OL_H;
+               *starty-= UI_UNIT_Y;
                
                for(ten= te->subtree.first; ten; ten= ten->next)

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to