NAME
Padre::Config::Apply - Implements on-the-fly configuration changes
SYNOPSIS
# When the view state of the directory changes we update the menu
# check status and show/hide the panel inside of an update lock.
sub main_directory {
my $main = shift;
my $new = shift;
my $item = $main->menu->view->{directory};
my $lock = $main->lock( 'UPDATE', 'AUI' );
$item->Check($new) if $new != $item->IsChecked;
$main->show_view( directory => $new );
}
DESCRIPTION
Padre::Config::Apply allows Padre to apply changes to configuration to the IDE on the fly instead of requiring a restart.
Centralising the implementation of this functionality allows loading to be delayed until dynamic config change is actually required, and allow changes to configuration to be made by several different parts of Padre, including both the simple and advanced Preferences dialogs, and the online configuration sync system.
Methodology
Functions in this module are named after the matching configuration property, and are called by "apply" in Padre::Config when the value being set is different to the current value.
Because functions are only called when the configuration value has changed, functions where are not required to do change detection of their own.
Functions are called with three parameters. The first parameter is the Padre::Wx::Main main window object, the second is the new value of the configuration property, and the third is the previous value of the configuration property.
COPYRIGHT & LICENSE
Copyright 2008-2012 The Padre development team as listed in Padre.pm.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl 5 itself.