# IUP::Zbox example # # An application of a zbox could be a program requesting several entries from the user # according to a previous selection. In this example, a list of possible layouts, # each one consisting of an element, is presented, and according to the selected # option the dialog below the list is changed. use strict; use warnings; use IUP ':all'; my $fram = IUP::Frame->new( TITLE=>"List", child=>IUP::List->new( DROPDOWN=>'YES', 1=>'White', 2=>'Black', VALUE=>1) ); my $text = IUP::Text->new( VALUE=>"Enter your text here", EXPAND=>"YES" ); my $lbl = IUP::Label->new( TITLE=>"This element is a label" ); my $btn = IUP::Button->new( TITLE=>"This button does nothing" ); my $zbox = IUP::Zbox->new( child=>[$fram, $text, $lbl, $btn], ALIGNMENT=>"ACENTER", VALUE=>$fram ); my $list = IUP::List->new( items=>["frame", "text", "lbl", "btn"], VALUE=>"1"); #BEWARE: VALUE is 1-based my $ilist = [ $fram, $text, $lbl, $btn ]; sub list_action { my ($self, $t, $o, $selected) = @_; if ( $selected == 1 ) { # Sets the value of the zbox to the selected element; $zbox->VALUE($ilist->[$o-1]); #BEWARE: VALUE attribute contains index value which is 1-based } return IUP_DEFAULT; } $list->ACTION(\&list_action); my $frm = IUP::Frame->new( TITLE=>"Select an element", child=> IUP::Hbox->new( child=>[ IUP::Fill->new(), $list, IUP::Fill->new(), ] ) ); my $dlg = IUP::Dialog->new( child=>IUP::Vbox->new( "MARGIN", "7x7", child=>[$frm, $zbox] ), SIZE=>"QUARTER", TITLE=>"IupZbox Example" ); $dlg->ShowXY(); IUP->MainLoop;