NAME

Prima::Cairo - Prima extension for Cairo drawing

DESCRIPTION

The module allows for programming Cairo library together with Prima widgets.

SYNOPSIS

use strict;
use warnings;
use Cairo;
use Prima qw(Application);
use Prima::Cairo;

my $w = Prima::MainWindow->new( onPaint => sub {
    my ( $self, $canvas ) = @_;
    $canvas->clear;

        my $cr = $canvas->cairo_context;

        $cr->rectangle (10, 10, 40, 40);
        $cr->set_source_rgb (0, 0, 0);
        $cr->fill;

        $cr->rectangle (50, 50, 40, 40);
        $cr->set_source_rgb (1, 1, 1);
        $cr->fill;

        $cr->show_page;
});
run Prima;

Prima::Drawable API

cairo_context %options

Returns the Cairo context bound to the Prima drawable - widget, bitmap etc or an undef.

Options:

transform 'prima' || 'native'

Prima coordinate system is such that lower left pixel is (0,0), while cairo system is that (0,0) is upper left pixel. By default cairo_context returns a context adapted for Prima, but if you want native cairo coordinate system call it like this:

$canvas->cairo_context( transform => 0 );

Installation on Strawberry win32

Before installing the module, you need to install Cairo perl wrapper. That requires libcairo binaries, includes, and pkg-config.

In case you don't have cairo binaries and include files, grab them here:

http://karasik.eu.org/misc/cairo/cairo-win32.zip .

Hack lib/pkgconfig/cairo.pc and point PKG_CONFIG_PATH to the directory where it is located.

Strawberry 5.20 is shipped with a broken pkg-config ( https://rt.cpan.org/Ticket/Display.html?id=96315, https://rt.cpan.org/Ticket/Display.html?id=96317 ), if you need a working one grab it here:

http://karasik.eu.org/misc/cairo/pkgconfig.zip

This setup is needed both for Cairo and Prima-Cairo.

AUTHOR

Dmitry Karasik, <dmitry@karasik.eu.org>.

SEE ALSO

Prima, Cairo

git clone git@github.com:dk/Prima-Cairo.git

LICENSE

This software is distributed under the BSD License.