The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
=for comment based on iup-3.5 - http://www.tecgraf.puc-rio.br/iup/en/elem/iupsplit.html

=head1 NAME

IUP::Split - [GUI element] container that split its client area in two

=head1 DESCRIPTION

Creates a void container that split its client area in two. Allows the
provided controls to be enclosed in a box that allows expanding and
contracting the element B<size> in one direction, but when one is
expanded the other is contracted.

It does not have a native representation, but it contains also a
L<IUP::Canvas|IUP::Canvas> to implement the bar handler.

=begin HTML

<p>
  <table border="1">
    <tbody align="center">    
        <tr>
		<th>Natural Size</th>
		<th>After Moving the Split Bar</th>
	</tr>
	<tr>
		<td><img src="http://kmx.github.io/perl-iup/img-3.9/elem/iupsplit1.png"></td>
		<td><img src="http://kmx.github.io/perl-iup/img-3.9/elem/iupsplit2.png"></td>
	</tr>
    </tbody>
  </table>
</p>

=end HTML

=head1 USAGE

=head2 CREATION - new() method

 $split = IUP::Split->new($child1, $child2);

B<$child1:> Identifier of an interface element that will be at left or
top. It can be C<undef>.

B<$child2:> Identifier of an interface element that will be at right or
bottom. It can be C<undef>.

B<Returns:> the identifier of the created element, or C<undef> if an error occurs.

NOTE: You can pass to C<new()> other C<ATTRIBUTE=E<gt>'value'> or C<CALLBACKNAME=E<gt>\&func> pairs relevant
to this element - see L<IUP::Manual::02_Elements|IUP::Manual::02_Elements/"new()">.

=head2 ATTRIBUTES

For more info about concept of attributes (setting/getting values etc.)
see L<IUP::Manual::03_Attributes|IUP::Manual::03_Attributes>. Attributes specific to this element:

=over

=item B<AUTOHIDE>

I<(non inheritable)>

If the child client area is smaller than
the bar size, then automatically hide the child. Default: NO.

=item B<BARSIZE>

I<(non inheritable)>

Controls the size of the bar handler. Default: 5.

=item B<COLOR>

Changes the color of the bar grip affordance. The value
should be given in "R G B" color style. Default: "192 192 192".

=item B<ORIENTATION>

I<(creation only)>

Indicates the orientation of the bar
handler. The direction of the resize is perpendicular to the
orientation. Possible values are "VERTICAL" or "HORIZONTAL". Default:
"VERTICAL".

=item L<EXPAND|IUP::Manual::03_Attributes/EXPAND>

I<(non inheritable)>

The default value is "YES".

=item B<LAYOUTDRAG>

I<(non inheritable)>

When the bar is moved automatically
update the children layout. Default: YES. If set to NO then the layout
will be updated only when the mouse drag is released.

=item B<MINMAX>

I<(non inheritable)>

Sets minimum and maximum crop values for
VALUE, in the format "%d:%d" [min:max]. The min value can not be less
than 0, and the max value can not be larger than 1000. This will
constrain the interactive change of the bar handler. Default: "0:1000".
(Since iup-3.2)

=item B<SHOWGRIP>

I<(non inheritable)>

Shows the bar grip affordance. Default:
YES. When set to NO, the BARSIZE is changed from 5 to 3.

=item B<VALUE>

I<(non inheritable)>

The proportion of the left or top (child1)
client area relative to the full available area. It is an integer
between 0 and 1000. If not defined or set to C<undef>, the Native size of
the two children will define its initial size.

=item B<WID>

I<(read-only)>

Returns -1 if mapped.

=back

The following L<common attributes|IUP::Manual::03_Attributes/Common Attributes> are also accepted:

=over

=item * L<FONT|IUP::Manual::03_Attributes/FONT>, L<SIZE|IUP::Manual::03_Attributes/SIZE>,
L<RASTERSIZE|IUP::Manual::03_Attributes/RASTERSIZE>,
L<CLIENTSIZE|IUP::Manual::03_Attributes/CLIENTSIZE>,
L<CLIENTOFFSET|IUP::Manual::03_Attributes/CLIENTOFFSET>,
L<POSITION|IUP::Manual::03_Attributes/POSITION>,
L<MINSIZE|IUP::Manual::03_Attributes/MINSIZE>,
L<MAXSIZE|IUP::Manual::03_Attributes/MAXSIZE>

=back

=head1 NOTES

The controls that you want to be resized must have the EXPAND=YES
attribute set. The control inside the split will not be resized with a
size lesser than its B<Natural> size. See the L<IUP::Manual::05_DialogLayout> for mode details on sizes.

L<IUP::Split|IUP::Split> is not capable of detecting a child minimum size, so if a
child has a minimum size, then manually set the B<MINMAX> attribute to
avoid invalid positioning of the L<IUP::Split|IUP::Split> bar.

The L<IUP::Canvas|IUP::Canvas> bar handler is always the first child of the split. It
can be obtained using L<GetChild|IUP::Manual::02_Elements/"GetChild()"> or L<GetNextChild|IUP::Manual::02_Elements/"GetNextChild()">.

The L<IUP::Split|IUP::Split> control looks just like the L<IUP::Sbox|IUP::Sbox>, but internally
is very different. While sbox controls only one element and can push
other elements outside the dialog, split balance its internal size and
never push other elements outside its boundaries.

The container can be created with no elements and be dynamic filled
using L<Append|IUP::Manual::02_Elements/"Append()"> or L<Insert|IUP::Manual::02_Elements/"Insert()">.

=head1 EXAMPLES


Unfortunately there are no sample scripts using this element.



=head1 SEE ALSO

The original doc: L<iupsplit.html|http://www.tecgraf.puc-rio.br/iup/en/elem/iupsplit.html>
 

=cut