The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

#----------------------------------------------------------------------------------------------

register_action_handlers
	(
	'Change elements background color' => ['000-c', \&change_elements_colors, 0],
	'Change elements foreground color' => ['00S-C', \&change_elements_colors, 1],
	'Change AsciiO background color' => ['0A0-c', \&change_asciio_background_color],
	'Change grid color' => ['0AS-C', \&change_grid_color],
	) ;
	
#----------------------------------------------------------------------------------------------

sub change_elements_colors
{
my ($self, $is_background) = @_ ;

my ($color) = $self->get_color_from_user([0, 0, 0]) ;

$self->create_undo_snapshot() ;

for my $element($self->get_selected_elements(1))
	{
	$is_background
		? $element->set_background_color($color) 
		: $element->set_foreground_color($color) ;
		
	}
	
$self->update_display() ;
}

#----------------------------------------------------------------------------------------------

sub change_asciio_background_color
{
my ($self) = @_ ;

my ($color) = $self->get_color_from_user([0, 0, 0]) ;

$self->create_undo_snapshot() ;

$self->flush_color_cache() ;
$self->{COLORS}{background} = $color ;
	
$self->update_display() ;
}

#----------------------------------------------------------------------------------------------

sub change_grid_color
{
my ($self) = @_ ;

my ($color) = $self->get_color_from_user([0, 0, 0]) ;

$self->create_undo_snapshot() ;

$self->flush_color_cache() ;
$self->{COLORS}{grid} = $color ;
	
$self->update_display() ;
}

#----------------------------------------------------------------------------------------------