File: mixed.pm

package info (click to toggle)
libgd-graph-perl 1.33-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 480 kB
  • ctags: 188
  • sloc: perl: 3,677; makefile: 83
file content (97 lines) | stat: -rw-r--r-- 2,206 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
#==========================================================================
#			   Copyright (c) 1995-1998 Martien Verbruggen
#--------------------------------------------------------------------------
#
#	Name:
#		GD::Graph::mixed.pm
#
# $Id: mixed.pm,v 1.9 2000/04/30 03:09:30 mgjv Exp $
#
#==========================================================================

package GD::Graph::mixed;
 
$GD::Graph::mixed::VERSION = '$Revision: 1.9 $' =~ /\s([\d.]+)/;

use strict;
 
use GD::Graph::axestype;
use GD::Graph::lines;
use GD::Graph::points;
use GD::Graph::linespoints;
use GD::Graph::bars;
use GD::Graph::area;
use Carp;
 
# Even though multiple inheritance is not really a good idea, I will
# do it here, because I need the functionality of the markers and the
# line types We'll include axestype as the first one, to make sure
# that's where we look first for methods.

@GD::Graph::mixed::ISA = qw( 
	GD::Graph::axestype 
	GD::Graph::lines 
	GD::Graph::points 
);

sub initialise
{
	my $self = shift;
	$self->SUPER::initialise();
}

sub correct_width
{
	my $self = shift;

	return $self->{correct_width} if defined $self->{correct_width};

	for my $type ($self->{default_type}, @{$self->{types}})
	{
		return 1 if $type eq 'bars';
	}
}

sub draw_data_set
{
	my $self = shift;
	my $ds   = $_[0];

	my $rc;

	my $type = $self->{types}->[$ds-1] || $self->{default_type};

	# Try to execute the draw_data_set function in the package
	# specified by type
	$rc = eval '$self->GD::Graph::'.$type.'::draw_data_set(@_)';

	# If we fail, we try it in the package specified by the
	# default_type, and warn the user
	if ($@)
	{
		carp "Set $ds, unknown type $type, assuming $self->{default_type}";

		$rc = eval '$self->GD::Graph::'.
			$self->{default_type}.'::draw_data_set(@_)';
	}

	# If even that fails, we bail out
	croak "Set $ds: unknown default type $self->{default_type}" if $@;

	return $rc;
}

sub draw_legend_marker
{
	my $self = shift;
	my $ds = $_[0];

	my $type = $self->{types}->[$ds-1] || $self->{default_type};

	eval '$self->GD::Graph::'.$type.'::draw_legend_marker(@_)';

	eval '$self->GD::Graph::'.
		$self->{default_type}.'::draw_legend_marker(@_)' if $@;
}

"Just another true value";