feature control over drawing line and area line markers
[imager-graph.git] / lib / Imager / Graph / Horizontal.pm
index 4466c6834fd80fe1219ff261d1cbe4ffc89a08ef..954cf9f109b6f99a5a9e0e232877916051891e57 100644 (file)
@@ -459,9 +459,11 @@ sub _draw_lines {
 
     my $x2 = $left + ($value_range - $data[$data_size - 1] + $min_value)/$value_range * $graph_width;
 
-    push @marker_positions, [$x2, $y2];
-    foreach my $position (@marker_positions) {
-      $self->_draw_line_marker($position->[0], $position->[1], $series_counter);
+    if ($self->_feature_enabled("linemarkers")) {
+      push @marker_positions, [$x2, $y2];
+      foreach my $position (@marker_positions) {
+       $self->_draw_line_marker($position->[0], $position->[1], $series_counter);
+      }
     }
     $series_counter++;
   }
@@ -603,6 +605,28 @@ sub set_vertical_gridline_style {
   return 1;
 }
 
+=item show_line_markers()
+
+=item show_line_markers($value)
+
+Feature: linemarkers.
+
+If $value is missing or true, draw markers on a line data series.
+
+Note: line markers are drawn by default.
+
+=cut
+
+sub show_line_markers {
+  my ($self, $value) = @_;
+
+  @_ > 1 or $value = 1;
+
+  $self->{custom_style}{features}{linemarkers} = $value;
+
+  return 1;
+}
+
 =item use_automatic_axis()
 
 Automatically scale the Y axis, based on L<Chart::Math::Axis>.  If Chart::Math::Axis isn't installed, this sets an error and returns undef.  Returns 1 if it is installed.
@@ -861,7 +885,7 @@ sub _style_defs {
   my ($self) = @_;
 
   my %work = %{$self->SUPER::_style_defs()};
-  push @{$work{features}}, qw/graph_outline graph_fill/;
+  push @{$work{features}}, qw/graph_outline graph_fill linemarkers/;
   $work{vgrid} =
     {
      color => "lookup(fg)",