App-Asciio
view release on metacpan or search on metacpan
setup/actions/context_menu_box.pl view on Meta::CPAN
}
],
[
'/Box type/star',
\&change_box_type,
{
ELEMENT => $element,
TYPE => 'star',
}
] ;
push @context_menu_entries,
[
$element->is_autoconnect_enabled() ? '/disable autoconnection' : '/enable autoconnection',
sub
{
$self->create_undo_snapshot() ;
$element->enable_autoconnect(! $element->is_autoconnect_enabled()) ;
$self->update_display() ;
}
] ;
if($element->is_border_connection_allowed())
{
push @context_menu_entries, ["/Disable border connection", sub {$element->allow_border_connection(0) ;}] ;
}
else
{
push @context_menu_entries, ["/Enable border connection", sub {$element->allow_border_connection(1) ;}] ;
}
if($element->is_auto_shrink())
{
push @context_menu_entries, ["/Disable auto shrink", sub {$element->flip_auto_shrink() ;}] ;
}
else
{
push @context_menu_entries, ["/Enable auto shrink", sub {$element->shrink() ; $element->flip_auto_shrink() ; }] ;
}
}
return(@context_menu_entries) ;
}
#----------------------------------------------------------------------------------------------
sub change_box_type
{
my ($self, $data) = @_ ;
use Clone ;
if(exists $box_types{$data->{TYPE}})
{
$self->create_undo_snapshot() ;
my $element_type = $data->{ELEMENT}->get_box_type() ;
my $new_type = Clone::clone($box_types{$data->{TYPE}}) ;
for (my $frame_element_index = 0 ; $frame_element_index < @{$new_type} ; $frame_element_index++)
{
$new_type->[$frame_element_index][$DISPLAY] = $element_type->[$frame_element_index][$DISPLAY]
}
$data->{ELEMENT}->set_box_type($new_type) ;
$self->update_display() ;
}
}
#----------------------------------------------------------------------------------------------
sub box_selected_element
{
my ($self, $data) = @_ ;
$self->create_undo_snapshot() ;
my $element_type = $data->{ELEMENT}->get_box_type() ;
my ($title, $text) = $data->{ELEMENT}->get_text() ;
for (0 .. $#$element_type)
{
next if $_ == $TITLE_SEPARATOR && $title eq '' ;
$element_type->[$_][$DISPLAY] = 1 ;
}
$data->{ELEMENT}->set_box_type($element_type) ;
$self->update_display() ;
}
#----------------------------------------------------------------------------------------------
( run in 0.707 second using v1.01-cache-2.11-cpan-e1769b4cff6 )