/[CvsGraph]/cvsgraph/cvsgraph.c
ViewVC logotype

Diff of /cvsgraph/cvsgraph.c

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.57, Wed Jun 22 19:41:10 2005 UTC revision 1.58, Wed Jun 22 22:51:51 2005 UTC
# Line 1351  Line 1351 
1351          return &clr_id[nclr_id++];          return &clr_id[nclr_id++];
1352  }  }
1353    
1354    static void zap_clr(void)
1355    {
1356            if(clr_id)
1357                    xfree(clr_id);
1358            clr_id = NULL;
1359            nclr_id = 0;
1360    }
1361    
1362  static int get_swidth(const char *s, font_t *f)  static int get_swidth(const char *s, font_t *f)
1363  {  {
1364          int n;          int n;
# Line 2041  Line 2049 
2049          }          }
2050  }  }
2051    
 static void alloc_color(gdImagePtr im, color_t *c)  
 {  
         c->id = gdImageColorAllocate(im, c->r, c->g, c->b);  
 }  
   
2052  static gdImagePtr make_image(rcsfile_t *rcs)  static gdImagePtr make_image(rcsfile_t *rcs)
2053  {  {
2054          gdImagePtr im;          gdImagePtr im;
2055          int i;          int i;
2056            int bgid;
2057          char *cptr;          char *cptr;
2058          int w, h;          int w, h;
2059          int subx = 0, suby = 0;          int subx = 0, suby = 0;
         int subw, subh;  
2060          int msgh = 0;          int msgh = 0;
2061    
2062          if(subtree_branch)          if(subtree_branch)
2063          {          {
2064                  subw = 0;                  w = 0;
2065                  subh = 0;                  h = 0;
2066                  if(subtree_rev)                  if(subtree_rev)
2067                  {                  {
2068                          for(i = 0; i < subtree_rev->nbranches; i++)                          for(i = 0; i < subtree_rev->nbranches; i++)
2069                                  calc_subtree_size(subtree_rev->branches[i], &subx, &suby, &subw, &subh);                                  calc_subtree_size(subtree_rev->branches[i], &subx, &suby, &w, &h);
2070                  }                  }
2071                  else                  else
2072                          calc_subtree_size(subtree_branch, &subx, &suby, &subw, &subh);                          calc_subtree_size(subtree_branch, &subx, &suby, &w, &h);
2073          }          }
2074          else          else
2075          {          {
2076                  subw = rcs->tw;                  w = rcs->tw;
2077                  subh = rcs->th;                  h = rcs->th;
2078          }          }
2079    
2080          cptr = expand_string(conf.title, rcs, NULL, NULL, NULL, NULL);          cptr = expand_string(conf.title, rcs, NULL, NULL, NULL, NULL);
         w = subw + conf.margin_left + conf.margin_right;  
         h = subh + conf.margin_top + conf.margin_bottom;  
2081          i = get_swidth(cptr, &conf.title_font);          i = get_swidth(cptr, &conf.title_font);
2082          if(i > w)          if(i > w)
2083                  w = i;                  w = i;
# Line 2097  Line 2098 
2098                          w = msgw;                          w = msgw;
2099          }          }
2100    
2101            w += conf.margin_left + conf.margin_right;
2102            h += conf.margin_top + conf.margin_bottom;
2103    
2104          im = gdImageCreate(w, h);          im = gdImageCreate(w, h);
2105          alloc_color(im, &conf.color_bg);        /* The background is always a unique color */          bgid = clr(im, "color_bg", NULL, NULL)->id;     /* The background is always a unique color, */
2106            zap_clr();                                      /* so clear the color ref table */
2107          clr(im, "__black_color__", NULL, NULL);          clr(im, "__black_color__", NULL, NULL);
2108    
2109          if(conf.transparent_bg)          if(conf.transparent_bg)
2110                  gdImageColorTransparent(im, conf.color_bg.id);                  gdImageColorTransparent(im, bgid);
2111    
2112          if(!conf.merge_front)          if(!conf.merge_front)
2113                  draw_merges(im, rcs, 0);                  draw_merges(im, rcs, 0);
# Line 2124  Line 2129 
2129          /* Clear the margins if we have a partial tree */          /* Clear the margins if we have a partial tree */
2130          if(subtree_branch)          if(subtree_branch)
2131          {          {
2132                  gdImageFilledRectangle(im, 0, 0, w-1, conf.margin_top-1, conf.color_bg.id);                  gdImageFilledRectangle(im, 0, 0, w-1, conf.margin_top-1, bgid);
2133                  gdImageFilledRectangle(im, 0, 0, conf.margin_left-1, h-1, conf.color_bg.id);                  gdImageFilledRectangle(im, 0, 0, conf.margin_left-1, h-1, bgid);
2134                  gdImageFilledRectangle(im, 0, h-conf.margin_bottom, w-1, h-1, conf.color_bg.id);                  gdImageFilledRectangle(im, 0, h-conf.margin_bottom, w-1, h-1, bgid);
2135                  gdImageFilledRectangle(im, w-conf.margin_right, 0, w-1, h-1, conf.color_bg.id);                  gdImageFilledRectangle(im, w-conf.margin_right, 0, w-1, h-1, bgid);
2136          }          }
2137    
2138          draw_stringnl(im, cptr, &conf.title_font, conf.title_x, conf.title_y, conf.title_align, clr(im, "title_color", NULL, NULL));          draw_stringnl(im, cptr, &conf.title_font, conf.title_x, conf.title_y, conf.title_align, clr(im, "title_color", NULL, NULL));

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.58

  ViewVC Help
Powered by ViewVC 1.1.0 with CvsGraph 1.7.0