The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
TYPEMAP

# Defaults
const char                  *   T_PV
const char                  **  T_PV
char                        **  T_PV
uchar                           T_U_CHAR
uchar                       *   T_PV
float                           T_FLOAT
const void                  *   T_PTR
int                         *   T_IPTR
const int                   *   T_IPTR
const uchar                 *   T_PV

# Enum
fltk::Flags                     T_ENUM
fltk::Color                     T_ENUM
fltk::Browser::linepos          O_FLTK
fltk::PixelType                 O_FLTK
fltk::StatusBarGroup::Position  T_ENUM
fltk::Theme                     O_FLTK

# Objects
fltk::Adjuster              *   O_FLTK_SUBCLASSY
fltk::AssociationType           O_FLTK
fltk::AssociationType       *   O_FLTK
fltk::AssociationFunctor        O_FLTK
fltk::AssociationFunctor    *   O_FLTK
fltk::AlignGroup            *   O_FLTK_SUBCLASSY
fltk::BarGroup              *   O_FLTK_SUBCLASSY
fltk::Browser               *   O_FLTK_SUBCLASSY
fltk::Browser::Mark         *   O_FLTK_SUBCLASSY
fltk::Box                   *   O_FLTK_SUBCLASSY
fltk::Button                *   O_FLTK_SUBCLASSY
fltk::Callback              *   O_FLTK
fltk::ccHueBox              *   O_FLTK_SUBCLASSY
fltk::ccValueBox            *   O_FLTK_SUBCLASSY
fltk::ccCellBox             *   O_FLTK_SUBCLASSY
fltk::CheckButton           *   O_FLTK_SUBCLASSY
fltk::Choice                *   O_FLTK_SUBCLASSY
fltk::Clock                 *   O_FLTK_SUBCLASSY
fltk::ClockOutput           *   O_FLTK_SUBCLASSY
fltk::ColorChooser          *   O_FLTK_SUBCLASSY
fltk::ComboBox              *   O_FLTK_SUBCLASSY
fltk::Cursor                *   O_FLTK
fltk::CycleButton           *   O_FLTK_SUBCLASSY
fltk::Dial                  *   O_FLTK_SUBCLASSY
fltk::Divider               *   O_FLTK_SUBCLASSY
fltk::EngravedLabel         *   O_FLTK_SUBCLASSY
fltk::FileBrowser           *   O_FLTK_SUBCLASSY
fltk::FileChooser           *   O_FLTK_SUBCLASSY
fltk::FileIcon              *   O_FLTK
fltk::FileInput             *   O_FLTK_SUBCLASSY
fltk::FillDial              *   O_FLTK_SUBCLASSY
fltk::FillSlider            *   O_FLTK_SUBCLASSY
fltk::FlatBox               *   O_FLTK_SUBCLASSY
fltk::FloatInput            *   O_FLTK_SUBCLASSY
fltk::Font                  *   O_FLTK
fltk::FrameBox              *   O_FLTK_SUBCLASSY
fltk::GlWindow              *   O_FLTK_SUBCLASSY
fltk::GLContext                 O_FLTK
fltk::Group                 *   O_FLTK_SUBCLASSY
fltk::HelpDialog            *   O_FLTK_SUBCLASSY
fltk::HelpView              *   O_FLTK_SUBCLASSY
fltk::HighlightBox          *   O_FLTK_SUBCLASSY
fltk::HighlightButton       *   O_FLTK_SUBCLASSY
fltk::Image                 *   O_FLTK
fltk::Input                 *   O_FLTK_SUBCLASSY
fltk::InputBrowser          *   O_FLTK_SUBCLASSY
fltk::IntInput              *   O_FLTK_SUBCLASSY
fltk::InvisibleBox          *   O_FLTK_SUBCLASSY
fltk::Item                  *   O_FLTK_SUBCLASSY
fltk::ItemGroup             *   O_FLTK_SUBCLASSY
fltk::LabelType             *   O_FLTK_SUBCLASSY
fltk::LightButton           *   O_FLTK_SUBCLASSY
fltk::LineDial              *   O_FLTK_SUBCLASSY
fltk::List                  *   O_FLTK
fltk::Menu                  *   O_FLTK_SUBCLASSY
fltk::MenuBar               *   O_FLTK_SUBCLASSY
fltk::MenuWindow            *   O_FLTK_SUBCLASSY
fltk::MenuSection           *   O_FLTK_SUBCLASSY
      fltk::Monitor             O_FLTK_SUBCLASSY
      fltk::Monitor         *   O_FLTK_SUBCLASSY
const fltk::Monitor         *   O_FLTK_SUBCLASSY
fltk::MultiBrowser          *   O_FLTK_SUBCLASSY
fltk::MultiImage            *   O_FLTK_SUBCLASSY
fltk::MultiLineInput        *   O_FLTK_SUBCLASSY
fltk::MultiLineOutput       *   O_FLTK_SUBCLASSY
fltk::NamedStyle            *   O_FLTK
fltk::NumericInput          *   O_FLTK_SUBCLASSY
fltk::PackedGroup           *   O_FLTK_SUBCLASSY
fltk::pnmImage              *   O_FLTK_SUBCLASSY
fltk::PopupMenu             *   O_FLTK_SUBCLASSY
fltk::Preferences           *   O_FLTK_SUBCLASSY
fltk::Preferences::Root         T_ENUM
fltk::ProgressBar           *   O_FLTK_SUBCLASSY
fltk::Output                *   O_FLTK_SUBCLASSY
fltk::RadioButton           *   O_FLTK_SUBCLASSY
fltk::RadioItem             *   O_FLTK_SUBCLASSY
fltk::RadioLightButton      *   O_FLTK_SUBCLASSY
fltk::Rectangle             *   O_FLTK_SUBCLASSY
fltk::Rectangle                 O_FLTK_SUBCLASSY
fltk::RepeatButton          *   O_FLTK_SUBCLASSY
fltk::ReturnButton          *   O_FLTK_SUBCLASSY
fltk::Scrollbar             *   O_FLTK_SUBCLASSY
fltk::ScrollGroup           *   O_FLTK_SUBCLASSY
fltk::SecretInput           *   O_FLTK_SUBCLASSY
fltk::ShapedWindow          *   O_FLTK_SUBCLASSY
fltk::ShortcutFunctor       *   O_FLTK
fltk::Slider                *   O_FLTK_SUBCLASSY
fltk::StatusBarGroup        *   O_FLTK_SUBCLASSY
const fltk::Style           *   O_FLTK
      fltk::Style           *   O_FLTK
const fltk::Symbol          *   O_FLTK
fltk::Symbol                *   O_FLTK_SUBCLASSY
fltk::TabGroup              *   O_FLTK_SUBCLASSY
fltk::TabGroupPager         *   O_FLTK_SUBCLASSY
fltk::TextBuffer            *   O_FLTK
fltk::TextDisplay           *   O_FLTK_SUBCLASSY
fltk::TextDisplay::StyleTableEntry * O_FLTK
fltk::TextSelection         *   O_FLTK
fltk::ToggleButton          *   O_FLTK_SUBCLASSY
fltk::ToggleItem            *   O_FLTK_SUBCLASSY
fltk::Valuator              *   O_FLTK_SUBCLASSY
fltk::ValueInput            *   O_FLTK_SUBCLASSY
fltk::ValueOutput           *   O_FLTK_SUBCLASSY
fltk::ValueSlider           *   O_FLTK_SUBCLASSY
fltk::Widget                *   O_FLTK_SUBCLASSY
const Widget                *   O_FLTK_SUBCLASSY
      fltk::Window          *   O_FLTK_SUBCLASSY
const fltk::Window          *   O_FLTK_SUBCLASSY
fltk::xbmImage              *   O_FLTK
fltk::xpmImage              *   O_FLTK

# Objects that aren't members of fltk
AnsiWidget                  *   O_FLTK_SUBCLASSY

# Custom
RectangleSubclass<fltk::Widget>    * O_FLTK_RECT_SUBCLASS
RectangleSubclass<fltk::Rectangle> * O_FLTK_RECT_SUBCLASS

OUTPUT
O_FLTK_SUBCLASSY
    //warn( \"${Package}::[$func_name]() -- $var | %s\", ${var}->bless_class() );
    sv_setref_pv(
        $arg,
        //\"FLTK::${(my $ntt=$ntype)=~s'(Ptr$?|^.*\W)''g;\$ntt}\",
        ${$func_name =~ m[^new\b] ? \"CLASS" : $func_name eq 'add' ? \"${var}->bless_class()" : ($subtype=~m'<?fltk::(.+)>') ? \qq["FLTK::$1"] : ($subtype=~m'^(?:const\s+)?fltk::(.+)$') ? \qq["FLTK::$1"] : \q["BORKED!!!"]},
        ( void * ) ${($ntype=~m'Ptr$')?\'':\'&'}$var ); /* ${subtype} | ${ntype} */

O_FLTK_RECT_SUBCLASS
    //warn( \"${Package}::[$func_name]() -- $var | %s\", ${var}->bless_class() );
    sv_setref_pv(
        $arg,
        //\"FLTK::${(my $ntt=$ntype)=~s'^.*<fltk::(.+)>.*$'$1'eg;\$ntt}\"
        ${$func_name =~ m[^new\b] ? \"CLASS" : $func_name eq 'add' ? \"${var}->bless_class()" : ($subtype=~m'<?fltk::(.+)>') ? \qq["FLTK::$1"] : ($subtype=~m'^(?:const\s+)?fltk::(.+)$') ? \qq["FLTK::$1"] : \q["BORKED!!!"]},
        ( void * ) ${($ntype=~m'Ptr$')?\'':\'&'}$var ); /* ${subtype} | ${ntype} */

O_FLTK
    sv_setref_pv(
        $arg,
        \"FLTK::${(my $ntt=$ntype)=~s'(Ptr$?|^.*\W)''g;\$ntt}\",
        ( void * ) ${($ntype=~m'Ptr$')?\'':\'&'}$var ); /* ${subtype} | ${ntype} */

INPUT
O_FLTK_SUBCLASSY
    if (SvROK($arg) && sv_isobject($arg) && sv_derived_from($arg,     \"FLTK::${(my $ntt=$ntype)=~s'(?:Ptr$?|^.*\W)''g;\$ntt}\" )) // Subclassable: ${subtype} | ${ntype}
        {IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR(RectangleSubclass<${(my $ntt=$type)=~s'\s+?\*''g;\$ntt}> *,tmp);} //$var = INT2PTR( RectangleSubclass<$type>, SvIV( ( SV * ) SvRV( $arg ) ) );
    else
        croak( \"%s: %s is not of type %s\",
            ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, \"$var\", \"FLTK::${(my $ntt=$ntype)=~s'(?:Ptr$?|^.*\W)''g;\$ntt}\" )

O_FLTK_RECT_SUBCLASS
    if (SvROK($arg) && sv_isobject($arg) && sv_derived_from($arg,     \"FLTK::${(my $ntt=$ntype)=~s'^.*<fltk::(.+)>.*$'$1'eg;\$ntt}\" )) // Subclass: ${subtype} | ${ntype}
        $var = INT2PTR( $type, SvIV( ( SV * ) SvRV( $arg ) ) ); // {IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR(RectangleSubclass<${(my $ntt=$type)=~s'\s+?\*''g;\$ntt}> *,tmp);} //$var = INT2PTR( RectangleSubclass<$type>, SvIV( ( SV * ) SvRV( $arg ) ) );
    else
        croak( \"%s: %s is not of type %s\",
            ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, \"$var\", \"FLTK::${(my $ntt=$ntype)=~s'^.*<fltk::(.+)>.*$'$1'eg;\$ntt}\" )

O_FLTK
    if (SvROK($arg) && sv_isobject($arg) && sv_derived_from($arg,     \"FLTK::${(my $ntt=$ntype)=~s'(?:Ptr$?|^.*\W)''g;\$ntt}\" )) // Non-subclassable: ${subtype} | ${ntype}
         $var = INT2PTR( $type, SvIV( ( SV * ) SvRV( $arg ) ) );
     else
        croak( \"%s: %s is not of type %s\",
            ${$ALIAS?\q[GvNAME(CvGV(cv))]:\qq[\"$pname\"]}, \"$var\", \"FLTK::${(my $ntt=$ntype)=~s'(?:Ptr$?|^.*\W)''g;\$ntt}\" )

/*

=pod

=for license Artistic License 2.0 | Copyright (C) 2009-2011 by Sanko Robinson

=for author Sanko Robinson <sanko@cpan.org> - http://sankorobinson.com/

=for abstract Type definitions for the Fast Light Toolkit

=for git $Id: type.map 90b3dd5 2011-04-15 17:20:19Z sanko@cpan.org $

=cut

*/