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

NAME

  UAV::Pilot::SDL::Window

SYNOPSIS

    my $window = UAV::Pilot::SDL::Window->new;
    $window->add_child( $window_event_handler );

    # In the child's draw method
    $window->clear_screen;
    $window->draw_line( [0, 0], [128, 128], $color );
    $window->draw_circle( [ 512, 512 ], 10, $color );

DESCRIPTION

A basic windowing system for drawing widgets. Currently only supports adding new widgets on top or below an existing widget.

Does the UAV::Pilot::EventHandler role.

METHODS

add_child

    add_child( $handler, $float ).

Pass a child that does the UAV::Pilot::SDL::WindowEventHandler role. Float should be <$window-TOP>> or <$window-BOTTOM>> for the location to draw this child. The window will be expanded to fit the child's width/height.

add_child_with_yuv_overlay

    add_child_with_yuv_overlay( $handle, $overlay_flag, $float )

Pass a child that does the UAV::Pilot::SDL::WindowEventHandler role. The $overlay_flag will be the flag passed to SDL::Overlay (see that module's docs for details). The $float param is the same as add_child().

sdl

Returns the SDLx::App object for the given SDL window.

yuv_overlay

If a child was added with add_child_with_yuv_overlay(), returns the SDL::Overlay object.

yuv_overlay_rect

If a child was added with add_child_with_yuv_overlay(), returns an SDL::Rect object that covers the overlay area.

DRAWING METHODS

The should only be used by widgets when their draw() method is called.

All $x, $y coordinates are relative to the widgets's drawing area.

clear_screen

Blanks the area that the current widget is being drawn in.

draw_txt

    draw_txt( $string, $x, $y, $sdl_text )

Draws text to the screen. Params:

$string: The string to write

$x, $y: The coords to draw at

$sdl_text: An SDLx::Text object

draw_line

    draw_line( [$x0,$y0], [$x1,$y1], $color )

Draws a line. The $color param is an SDL::Color object.

draw_circle

    draw_circle( [$x,$y], $radius, $color )

Draws a circle. The $color param is an SDL::Color object.

draw_rect

    draw_rect( [$x, $y, $width, $height], $color )

Draws a rect. The $color param is an SDL::Color object.

update_rect

    update_rect( $width, $height )

Updates the draw area for the active window.