Changeset 24805


Ignore:
Timestamp:
Nov 7, 2013, 4:08:50 PM (7 years ago)
Author:
nit
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • titan/titan/skin_new.h

    r24799 r24805  
    28792879}
    28802880
     2881void drawbgcolpart(int posx, int posy, int width, int height, int bgspace, long bgcol, int transparent)
     2882{
     2883        fillrect(posx + bgspace, posy + bgspace, width - (bgspace << 1), height - (bgspace << 1), bgcol, transparent);
     2884}
     2885
    28812886void drawtitle(struct skin* node)
    28822887{
     
    30503055}
    30513056
     3057int getrectdiff(int x, int y, int w, int h, int x1, int y1, int w1, int h1, int* x2, int* y2, int* w2, int* h2)
     3058{
     3059        int xx = x + w;
     3060        int xx1 = x1 + w1;
     3061        int yy = y + h;
     3062        int yy1 = y1 + h1;
     3063       
     3064        *x2 = OMAX(x, x1);
     3065        *w2 = OMIN(xx, xx1); (*w2) = (*w2) - (*x2);
     3066        *y2 = OMAX(y, y1);
     3067        *h2 = OMIN(yy, yy1); (*h2) = (*h2) - (*y2);
     3068       
     3069        if(*w2 <= 0 || *h2 <=0) return 1;
     3070        return 0;       
     3071}
     3072
     3073//flag 0: draw all parts before node
     3074//flag 1: draw all parts after node
     3075struct skin* drawnodepart(struct skin* tmp, struct skin* screen, struct skin* node, int flag)
     3076{
     3077        int posx = 0, posy = 0, width = 0, height = 0;
     3078        struct skin* child = NULL;
     3079       
     3080        if(screen == NULL || node == NULL || screen == node) return NULL;
     3081        if(checkbit(node->flag, 1) == 0 || checkbit(screen->flag, 1) == 1) return NULL;
     3082printf("drawnodepart %s %d\n", node->name, flag);       
     3083        if(flag == 0)
     3084                child = screen;
     3085        else
     3086                child = tmp;
     3087
     3088        while(child != NULL)
     3089        {
     3090                if(flag == 0 && child == node) return child->next;
     3091                if(checkbit(child->flag, 1) == 1 || child == node)
     3092                {
     3093                        if(child == screen)
     3094                                child = screen->child;
     3095                        else
     3096                                child = child->next;
     3097                        continue;
     3098                }
     3099               
     3100                if(getrectdiff(node->rposx, node->rposy, node->rwight, node->rheight, child->rposx, child->rposy, child->rwidth, child->rheight, &posx, &posy, &weight, &height) == 1)
     3101                {
     3102                        if(child == screen)
     3103                                child = screen->child;
     3104                        else
     3105                                child = child->next;
     3106                        continue;
     3107                }
     3108               
     3109                if(child->bgcol > -1)
     3110                {
     3111                        //if(node->child != NULL && status.picbordersize > 0)
     3112                        //      drawbginnercol(node);
     3113                        //else
     3114printf("drawbgcolpart %s\n", child->name);
     3115                                drawbgcolpart(posx, posy, width, height, child->bgspace, child->bgcol, child->transparent);
     3116                }
     3117               
     3118                if(child == screen)
     3119                        child = screen->child;
     3120                else
     3121                        child = child->next;
     3122        }
     3123       
     3124        return NULL;
     3125}
     3126
    30523127//flag 0: del background
    30533128//flag 1: don't del background
     
    30793154        }
    30803155
    3081 //      if(flag == 0 && node->bgcol == -1)
     3156/*
     3157        if(flag == 0 && node->bgcol == -1)
    30823158        {
    30833159                if(node->child != NULL && status.picbordersize > 0)
     
    30863162                        clearrect(node->rposx, node->rposy, node->rwidth, node->rheight);
    30873163        }
     3164*/
    30883165
    30893166        if(node->deaktivcol > -1)
     
    39724049
    39734050                if(setnodeattr(child, parent, screencalc) == 0 && screencalc == 0)
     4051                {
     4052                        struct skin* tmp = drawnodepart(NULL, node, child, 0);
    39744053                        drawnode(child, 1);
     4054                        drawnodepart(tmp, node, child, 1);
     4055                }
    39754056                child = child->next;
    39764057        }
Note: See TracChangeset for help on using the changeset viewer.