GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  LAYOUT::MANAGER (3)

.ds Aq ’

NAME

Layout::Manager - 2D Layout Management

CONTENTS

SYNOPSIS

Layout::Manager provides a simple interface for creating layout managers, or classes that size and position components within a container.

A few managers are provided for reference, but this module is primarily meant to serve as a base for outside implementations.



    use Layout::Manager;

    my $foo = Layout::Manager->new;
    $foo->do_layout($component);



USING A LAYOUT MANAGER

Layout::Manager relies on Graphics::Primitive::Container as a source for it’s components.

Various implementations of Layout::Manager will require you do add components with slightly different second arguments, but the general case will be:



  $lm->add_component($comp, $constraints);



The contents of <B>B>$constraints<B>B> must be discerned by reading the documentation for the layout manager you are using.

The <B>B>$comp<B>B> argument must be a Graphics::Primitive::Component.

Layout manager works hand-in-hand with Graphics::Primitive, so you’ll want to check out the lifecyle documented in Graphics::Primitive::Component. It will look something like this:



  $cont->add_component($foo, { some => metadata });
  $driver->prepare($cont);
  my $lm = new Layout::Manager::SomeImplementation;
  $lm->do_layout($cont);
  $driver->pack($cont);
  $driver->draw($cont);



When you are ready to lay out your container, you’ll need to call the do_layout method with a single argument: the component in which you are laying things out. When do_layout returns all of the components should be resized and repositioned according to the rules of the Layout::Manager implementation.

    PREPARATION

Subsequent calls to do_layout will be ignored if the Container is prepared. The Container’s prepared flag and the flags of all it’s children are checked, so any modifications to <B>anyB> child component will cause the entire container (and any container children) to be laid out again.

WRITING A LAYOUT MANAGER

Layout::Manager provides all the methods necessary for your implementation, save the do_layout method. This method will be called when it is time to layout the components.

The add_component method takes two arguments: the component and a second, abritrary piece of data. If your layout manager is simple, like Compass, you may only require a simple variable like NORTH. If you create something more complex the second argument may be a hashref or an object.

The value of the components method is an arrayref of hashrefs. The hashrefs have two keys:
<B>componentB> The component to be laid out.
<B>argsB> The argument provided to add_component.

TIPS

Layout manager implementations should honor the visible attribute of a component, as those components need to be ignored.

METHODS

    do_layout

Lays out this manager’s components in the specified container.

AUTHOR

Cory Watson, <gphat@cpan.org>

SEE ALSO

perl(1), Graphics::Primitive

COPYRIGHT & LICENSE

Copyright 2008 - 2010 Cory G Watson

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 LAYOUT::MANAGER (3) 2014-01-25

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.