r13925@rob-kinyons-powerbook58: rob | 2006-06-02 14:29:05 -0400
[p5sagit/Excel-Template.git] / lib / Excel / Template / Element / Image.pm
index 5d9c97b..dd9b9dd 100644 (file)
@@ -9,6 +9,37 @@ BEGIN {
     use Excel::Template::Element;
 }
 
+sub render {
+    my $self = shift;
+    my ($context) = @_;
+
+    my ($row, $col, $path, $offset, $scale) = map {
+        $context->get($self, $_)
+    } qw( ROW COL PATH OFFSET SCALE );
+
+    my @offsets = (0,0);
+    if ( $offset =~ /^\s*([\d.]+)\s*,\s*([\d.]+)/ ) {
+        @offsets = ($1,$2);
+    }
+
+    my @scales = (0,0);
+    if ( $scale =~ /^\s*([\d.]+)\s*,\s*([\d.]+)/ ) {
+        @scales = ($1,$2);
+    }
+
+    $context->active_worksheet->insert_bitmap(
+        $row, $col, $path, @offsets, @scales,
+    );
+
+    return 1;
+}
+
+sub deltas {
+    return {
+        COL => +1,
+    };
+}
+
 1;
 __END__
 
@@ -22,19 +53,30 @@ To insert an image into the worksheet
 
 =head1 NODE NAME
 
-CELL
+IMAGE
 
 =head1 INHERITANCE
 
 L<ELEMENT|Excel::Template::Element>
 
+=head1 EFFECTS
+
+This will consume one column in the current row.
+
 =head1 DEPENDENCIES
 
 None
 
 =head1 USAGE
 
-  <image path="/Some/Full/Path"/>
+  <image path="/Some/Full/Path" />
+  <image path="/Some/Full/Path" offset="2,5" />
+  <image path="/Some/Full/Path" scale="2,0.4" />
+  <image path="/Some/Full/Path" offset="4,0" scale="0,2" />
+
+Please see L<Spreadsheet::WriteExcel/> for more information about the offset and scaling options as well as any other restrictions that might be in place. This node does B<NOT> perform any sort of validation upon your parameters. You are assumed to know what you are doing.
+
+Note that the offset and scaling values are "X,Y". You I<must> provide both values, even if the Y value is 0. If you provide a 0 value for either scaling option, L<Spreadsheet::WriteExcel/> will default that to 1.
 
 =head1 AUTHOR