summaryrefslogtreecommitdiff
path: root/bin/pychart/axis.py
diff options
context:
space:
mode:
authorStephane Wirtel <stephane@tinyerp.com>2008-11-14 16:06:02 +0100
committerStephane Wirtel <stephane@tinyerp.com>2008-11-14 16:06:02 +0100
commit3dae09ac14990a82aa9ef8afc2a0429b877ab123 (patch)
treefd4e64f6f37c8f23f54119197fad7ea69de418e2 /bin/pychart/axis.py
parent882cd7027feca65405cfdf1337064aa676830d4b (diff)
Remove pydot, pychart and reportlab.
bzr revid: stephane@tinyerp.com-20081114150602-cpp1eeo3d0837fev
Diffstat (limited to 'bin/pychart/axis.py')
-rw-r--r--bin/pychart/axis.py241
1 files changed, 0 insertions, 241 deletions
diff --git a/bin/pychart/axis.py b/bin/pychart/axis.py
deleted file mode 100644
index 64d3fd2409d..00000000000
--- a/bin/pychart/axis.py
+++ /dev/null
@@ -1,241 +0,0 @@
-#
-# Copyright (C) 2000-2005 by Yasushi Saito (yasushi.saito@gmail.com)
-#
-# Jockey is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
-# later version.
-#
-# Jockey is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-import font
-import pychart_util
-import chart_object
-import line_style
-import math
-import theme
-import axis_doc
-from pychart_types import *
-from types import *
-
-class T(chart_object.T):
- keys = {
- "tic_interval" : (IntervalType, None,
- pychart_util.interval_desc("tick marks")),
- "tic_len" : (UnitType, 6, """The length of tick lines. The value can be negative, in which case the tick lines are drawn right of (or above) the axis."""),
- "minor_tic_interval" : (IntervalType, None,
- pychart_util.interval_desc("minor tick marks")),
- "minor_tic_len" : (UnitType, 3, """The length of minor tick marks. The value can be negative, in which case the tick lines are drawn right of (or above) the axis."""),
- "line_style": (line_style.T, line_style.default,
- "Specifies the style of axis and tick lines."),
- "label": (types.StringType, "axis label",
- "The descriptive string displayed below (or to the left of) the axis. <<font>>."),
- "format": (FormatType, "%s",
- """The format string for tick labels.
- It can be a `printf' style format string, or
- a single-parameter function that takes an X (or Y) value
- and returns a string. """ +
- pychart_util.string_desc),
- "label_offset": (CoordOrNoneType, (None,None),
- """The location for drawing the axis label,
- relative to the middle point of the axis.
- If the value is None, the label is displayed
- below (or to the left of) of axis at the middle."""),
- "tic_label_offset": (CoordType, (0,0),
- """The location for drawing tick labels,
- relative to the tip of the tick line."""),
- "offset": (UnitType, 0,
- """The location of the axis.
- The value of 0 draws the
- axis at the left (for the Y axis) or bottom (for the X axis)
- edge of the drawing area.
- """)
- }
-
-class X(T):
- keys = pychart_util.union_dict(T.keys,
- {"draw_tics_above": (IntType, 0,
- "If true, tick lines and labels are drawn above the axis line.")})
- __doc__ = axis_doc.doc_x
-##AUTOMATICALLY GENERATED
-
-##END AUTOMATICALLY GENERATED
- def draw_below(self, ar, can):
- self.type_check()
- self.tic_interval = self.tic_interval or ar.x_grid_interval
- y_base = ar.loc[1] + self.offset
-
- can.line(self.line_style, ar.loc[0], y_base,
- ar.loc[0]+ ar.size[0], y_base)
-
- tic_dic = {}
- max_tic_height = 0
-
- for i in ar.x_tic_points(self.tic_interval):
- tic_dic[i] = 1
- ticx = ar.x_pos(i)
-
- str = "/hC" + pychart_util.apply_format(self.format, (i, ), 0)
-
- (total_height, base_height) = font.text_height(str)
- max_tic_height = max(max_tic_height, total_height)
-
- can.line(self.line_style, ticx, y_base, ticx, y_base-self.tic_len)
- can.show(ticx+self.tic_label_offset[0],
- y_base-self.tic_len-base_height+self.tic_label_offset[1],
- str)
-
- if self.minor_tic_interval:
- for i in ar.x_tic_points(self.minor_tic_interval):
- if tic_dic.has_key(i):
- # a major tic was drawn already.
- pass
- else:
- ticx = ar.x_pos(i)
- can.line(self.line_style, ticx, y_base, ticx,
- y_base-self.minor_tic_len)
-
- self.draw_label(ar, can, y_base - self.tic_len - max_tic_height - 10)
-
- def draw_above(self, ar, can):
- y_base = ar.loc[1] + self.offset
-
- tic_dic = {}
- max_tic_height = 0
-
- for i in ar.x_tic_points(self.tic_interval):
- tic_dic[i] = 1
- ticx = ar.x_pos(i)
-
- str = "/hC" + pychart_util.apply_format(self.format, (i, ), 0)
-
- (total_height, base_height) = font.text_height(str)
- max_tic_height = max(max_tic_height, total_height)
-
- can.line(self.line_style, ticx, y_base, ticx, y_base + self.tic_len)
- can.show(ticx+self.tic_label_offset[0],
- y_base + self.tic_len + base_height + self.tic_label_offset[1],
- str)
-
- if self.minor_tic_interval:
- for i in ar.x_tic_points(self.minor_tic_interval):
- if tic_dic.has_key(i):
- # a major tic was drawn already.
- pass
- else:
- ticx = ar.x_pos(i)
- can.line(self.line_style, ticx, y_base, ticx,
- y_base + self.minor_tic_len)
- self.draw_label(ar, can, y_base + self.tic_len + max_tic_height + 10)
-
- def draw_label(self, ar, can, ylabel):
- if self.label == None: return
-
- str = "/hC/vM" + self.label
- (label_height, base_height) = font.text_height(str)
- xlabel = ar.loc[0] + ar.size[0]/2.0
- if self.label_offset[0] != None:
- xlabel += self.label_offset[0]
- if self.label_offset[1] != None:
- ylabel += self.label_offset[1]
- can.show(xlabel, ylabel, str)
-
- def draw(self, ar, can):
- self.type_check()
- self.tic_interval = self.tic_interval or ar.x_grid_interval
- y_base = ar.loc[1] + self.offset
- can.line(self.line_style, ar.loc[0], y_base,
- ar.loc[0]+ ar.size[0], y_base)
- if self.draw_tics_above:
- self.draw_above(ar, can)
- else:
- self.draw_below(ar, can)
-class Y(T):
- __doc__ = axis_doc.doc_y
- keys = pychart_util.union_dict(T.keys,
- {"draw_tics_right": (IntType, 0,
- "If true, tick lines and labels are drawn right of the axis line.")})
-
- def draw_left(self, ar, can):
- x_base = ar.loc[0] + self.offset
- xmin = 999999
- tic_dic = {}
- for i in ar.y_tic_points(self.tic_interval):
- y_tic = ar.y_pos(i)
- tic_dic[i] = 1
- can.line(self.line_style, x_base, y_tic,
- x_base - self.tic_len, y_tic)
- str = pychart_util.apply_format(self.format, (i,), 0)
- if self.tic_len > 0: str = "/hR" + str
-
- tic_height, base_height = font.text_height(str)
- x = x_base - self.tic_len + self.tic_label_offset[0]
- can.show(x, y_tic - tic_height/2.0 + self.tic_label_offset[1],
- str)
- xmin = min(xmin, x - font.text_width(str))
-
- if self.minor_tic_interval:
- for i in ar.y_tic_points(self.minor_tic_interval):
- if tic_dic.has_key(i):
- # a major tic line was drawn already.
- pass
- else:
- y_tic = ar.y_pos(i)
- can.line(self.line_style, x_base, y_tic,
- x_base - self.minor_tic_len, y_tic)
-
- self.draw_label(ar, can, xmin - theme.default_font_size/2.0)
-
- def draw_right(self, ar, can):
- x_base = ar.loc[0] + self.offset
- xmax = 0
- tic_dic = {}
- for i in ar.y_tic_points(self.tic_interval):
- y_tic = ar.y_pos(i)
- tic_dic[i] = 1
- can.line(self.line_style, x_base, y_tic,
- x_base + self.tic_len, y_tic)
- str = pychart_util.apply_format(self.format, (i,), 0)
- if self.tic_len > 0: str = "/hL" + str
-
- tic_height, base_height = font.text_height(str)
- x = x_base + self.tic_len + self.tic_label_offset[0]
- can.show(x, y_tic - tic_height/2.0 + self.tic_label_offset[1],
- str)
- xmax = max(xmax, x + font.text_width(str))
-
- if self.minor_tic_interval:
- for i in ar.y_tic_points(self.minor_tic_interval):
- if tic_dic.has_key(i):
- # a major tic line was drawn already.
- pass
- else:
- y_tic = ar.y_pos(i)
- can.line(self.line_style, x_base, y_tic,
- x_base + self.minor_tic_len, y_tic)
-
- self.draw_label(ar, can, xmax + theme.default_font_size)
-
- def draw_label(self, ar, can, xlabel):
- if self.label == None:
- return
- ylabel = ar.loc[1] + ar.size[1] / 2
- if self.label_offset[0] != None:
- xlabel += self.label_offset[0]
- if self.label_offset[1] != None:
- ylabel += self.label_offset[1]
- can.show(xlabel, ylabel, "/a90/hC" + self.label)
-
- def draw(self, ar, can):
- self.type_check()
- self.tic_interval = self.tic_interval or ar.y_grid_interval
-
- x_base = ar.loc[0] + self.offset
- can.line(self.line_style, x_base, ar.loc[1], x_base, ar.loc[1]+ar.size[1])
- if self.draw_tics_right:
- self.draw_right(ar, can)
- else:
- self.draw_left(ar, can)