Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Layout::Manager(3)    User Contributed Perl Documentation   Layout::Manager(3)

NAME
       Layout::Manager - 2D Layout Management

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 $constraints must be discerned by reading the
       documentation for the layout manager you	are using.

       The $comp 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 any 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:

       component
	   The component to be laid out.

       args
	   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.

perl v5.32.1			  2014-01-25		    Layout::Manager(3)

NAME | SYNOPSIS | USING A LAYOUT MANAGER | WRITING A LAYOUT MANAGER | TIPS | METHODS | AUTHOR | SEE ALSO | COPYRIGHT & LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Layout::Manager&sektion=3&manpath=FreeBSD+13.0-RELEASE+and+Ports>

home | help