App-Asciio
view release on metacpan or search on metacpan
lib/App/Asciio.pm view on Meta::CPAN
MODIFIED => 0,
DO_STACK_POINTER => 0,
DO_STACK => [] ,
}, $class ;
return($self) ;
}
#-----------------------------------------------------------------------------
sub event_options_changed
{
my ($self) = @_;
my $number_of_group_colors = scalar(@{$self->{COLORS}{group_colors}}) ;
$self->{GROUP_COLORS} = [0 .. $number_of_group_colors - 1] ,
$self->{CURRENT_ACTIONS} = $self->{ACTIONS} ;
$self->set_font($self->{FONT_FAMILY}, $self->{FONT_SIZE});
}
#-----------------------------------------------------------------------------
sub set_title
{
my ($self, $title) = @_;
if(defined $title)
{
$self->{TITLE} = $title ;
}
}
sub get_title
{
my ($self) = @_;
$self->{TITLE} ;
}
#-----------------------------------------------------------------------------
sub set_font
{
my ($self, $font_family, $font_size) = @_;
$self->{FONT_FAMILY} = $font_family || 'Monospace';
$self->{FONT_SIZE} = $font_size || 10 ;
}
sub get_font
{
my ($self) = @_;
return($self->{FONT_FAMILY}, $self->{FONT_SIZE}) ;
}
#-----------------------------------------------------------------------------
sub update_display
{
my ($self) = @_;
$self->call_hook('CANONIZE_CONNECTIONS', $self->{CONNECTIONS}, $self->get_character_size()) ;
}
sub get_grid_usage
{
my ($self) = @_;
my %cost_map ;
# todo: keep previous cost map and update only changed elements
for my $element (@{$self->{ELEMENTS}})
{
for my $mask_and_element_strip ($element->get_mask_and_element_stripes())
{
my $x_offset = $element->{X} + $mask_and_element_strip->{X_OFFSET} ;
my $y_offset = $element->{Y} + $mask_and_element_strip->{Y_OFFSET} ;
my $string_offset = 0 ;
for my $string ( split /\n/, $mask_and_element_strip->{TEXT})
{
for (0 .. length($string) - 1 )
{
my $x_offset_line = $x_offset + $_ ;
my $y_offset_line = ($y_offset + $string_offset) ;
$cost_map{"$x_offset_line.$y_offset_line"} = 0 ;
}
$string_offset++ ;
}
}
}
return \%cost_map ;
}
#-----------------------------------------------------------------------------
sub call_hook
{
my ($self, $hook_name, @arguments) = @_;
$self->{HOOKS}{$hook_name}->(@arguments) if (exists $self->{HOOKS}{$hook_name}) ;
}
#-----------------------------------------------------------------------------
sub button_release_event
{
my ($self, $event) = @_ ;
my $modifiers = $event->{MODIFIERS} ;
if($self->exists_action("${modifiers}-button_release"))
( run in 1.629 second using v1.01-cache-2.11-cpan-9581c071862 )