Screenshots of marks: http://www.flickr.com/photos/netkuy/4196892737/sizes/o/ http://www.flickr.com/photos/netkuy/4196892721/sizes/o/ http://www.flickr.com/photos/netkuy/4196892761/sizes/o/
On Sun, Dec 20, 2009 at 00:46, Yuki KODAMA <endflow....@gmail.com> wrote: > # HG changeset patch > # User Yuki KODAMA <endflow....@gmail.com> > # Date 1261233976 -32400 > # Node ID 2f853eb12f36428003f61941c094e1f58b682414 > # Parent a8addc74ec485fb050d1fdbe21d51dda6e1c86d2 > logview: improve drawing of arrow and star marks > > diff --git a/tortoisehg/hgtk/logview/graphcell.py > b/tortoisehg/hgtk/logview/graphcell.py > --- a/tortoisehg/hgtk/logview/graphcell.py > +++ b/tortoisehg/hgtk/logview/graphcell.py > @@ -181,45 +181,53 @@ > box_size / 5, 0, 2 * math.pi) > self.set_colour(ctx, colour, 0.0, 0.5) > ctx.stroke_preserve() > + self.set_colour(ctx, colour, 0.5, 1.0) > + ctx.fill() > > # Possible node status > if status != 0: > - def draw_arrow(x, y, inc): > - ctx.move_to(x - 2, y) > - ctx.line_to(x + 4, y) > - ctx.line_to(x + 1, y + inc) > - ctx.line_to(x - 2, y) > + def draw_arrow(x, y, dir): > + self.set_colour(ctx, '#2e3436', 0.0, 1.0) > + ctx.rectangle(x, y, 2, 5) > + ax, ay = x, y + (dir == 'down' and 5 or 0) > + inc = 3 * (dir == 'up' and -1 or 1) > + ctx.move_to(ax - 2, ay) > + ctx.line_to(ax + 4, ay) > + ctx.line_to(ax + 1, ay + inc) > + ctx.line_to(ax - 2, ay) > ctx.stroke_preserve() > - > - def draw_star(x, y, radius, nodes): > + fillcolor = dir == 'up' and '#feaf3e' or '#8ae234' > + self.set_colour(ctx, fillcolor, 0.0, 1.0) > + ctx.fill() > + > + def draw_star(x, y, radius, nodes, offset=False): > + self.set_colour(ctx, '#2e3436', 0.0, 1.0) > total_nodes = nodes * 2 #inner + outer nodes > angle = 2 * math.pi / total_nodes; > + offset = offset and angle / 2 or 0 > for value in range(total_nodes + 1): # + 1 = backing > to the start to close > radius_point = radius > if value % 2: > radius_point = 0.4 * radius_point; > - arc_y = y - math.sin(angle * value) * radius_point > - arc_x = x - math.cos(angle * value) * radius_point > + arc_y = y - math.sin(angle * value + offset) * > radius_point > + arc_x = x - math.cos(angle * value + offset) * > radius_point > if value == 0: > ctx.move_to(arc_x,arc_y) > else: > ctx.line_to(arc_x, arc_y) > - > + ctx.stroke_preserve() > + self.set_colour(ctx, '#fce94f', 0.0, 1.0) > + ctx.fill() > + > arrow_y = arc_start_position_y - box_size / 4 > arrow_x = arc_start_position_x + 7; > if status == 1: # Outgoing arrow > - ctx.rectangle(arrow_x, arrow_y, 2, 5) > - draw_arrow(arrow_x, arrow_y, -3) > + draw_arrow(arrow_x, arrow_y, 'up') > elif status == 2: # New changeset, recently added to tip > - ctx.set_source_rgb(0, 1, 0) > - draw_star(arrow_x + box_size / 4, arc_start_position_y , 4, > 6) > + draw_star(arrow_x + box_size / 4 - 1, > + arc_start_position_y, 4, 5, True) > elif status == 3: # Incoming (bundle preview) arrow > - ctx.rectangle(arrow_x, arrow_y, 2, 5) > - draw_arrow(arrow_x, arrow_y + 5, 3) > - ctx.stroke_preserve() > - > - self.set_colour(ctx, colour, 0.5, 1.0) > - ctx.fill() > + draw_arrow(arrow_x, arrow_y, 'down') > > def render_line (self, ctx, cell_area, box_size, mid, > height, start, end, colour, style): > -- Yuki KODAMA ------------------------------------------------------------------------------ This SF.Net email is sponsored by the Verizon Developer Community Take advantage of Verizon's best-in-class app development support A streamlined, 14 day to market process makes app distribution fast and easy Join now and get one step closer to millions of Verizon customers http://p.sf.net/sfu/verizon-dev2dev _______________________________________________ Tortoisehg-develop mailing list Tortoisehg-develop@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tortoisehg-develop