def setup_graph_measurements
@marker_caps_height = calculate_caps_height(@marker_font_size)
@title_caps_height = calculate_caps_height(@title_font_size)
@legend_caps_height = calculate_caps_height(@legend_font_size)
if @hide_line_markers
(@graph_left,
@graph_right_margin,
@graph_bottom_margin) = [LEFT_MARGIN, RIGHT_MARGIN, BOTTOM_MARGIN]
else
longest_left_label_width = 0
if @has_left_labels
longest_left_label_width = calculate_width(@marker_font_size,
labels.values.inject('') { |value, memo| (value.to_s.length > memo.to_s.length) ? value : memo }) * 1.25
else
longest_left_label_width = calculate_width(@marker_font_size,
label(@maximum_value.to_f))
end
line_number_width = @hide_line_numbers && !@has_left_labels ?
0.0 :
(longest_left_label_width + LABEL_MARGIN * 2)
@graph_left = LEFT_MARGIN +
line_number_width +
(@y_axis_label.nil? ? 0.0 : @marker_caps_height + LABEL_MARGIN * 2)
last_label = @labels.keys.sort.last.to_i
extra_room_for_long_label = (last_label >= (@column_count-1) && @center_labels_over_point) ?
calculate_width(@marker_font_size, @labels[last_label])/2.0 :
0
@graph_right_margin = RIGHT_MARGIN + extra_room_for_long_label
@graph_bottom_margin = BOTTOM_MARGIN +
@marker_caps_height + LABEL_MARGIN
end
@graph_right = @raw_columns - @graph_right_margin
@graph_width = @raw_columns - @graph_left - @graph_right_margin
@graph_top = TOP_MARGIN +
(@hide_title ? TITLE_MARGIN : @title_caps_height + TITLE_MARGIN * 2) +
(@hide_legend ? LEGEND_MARGIN : @legend_caps_height + LEGEND_MARGIN * 2)
@graph_bottom = @raw_rows - @graph_bottom_margin -
(@x_axis_label.nil? ? 0.0 : @marker_caps_height + LABEL_MARGIN)
@graph_height = @graph_bottom - @graph_top
end