Provided by: padre_1.00+dfsg-1_all bug

NAME

       Padre::Wx::Role::Main - Convenience methods for children of the main window

DESCRIPTION

       This role implements the fairly common method pattern for Wx elements that are children of
       Padre::Wx::Main.

       It provides accessors for easy access to the most commonly needed elements, and shortcut
       integration with the Padre::Current context system.

METHODS

   "ide"
           my $ide = $object->ide;

       Get the Padre IDE instance that this object is a child of.

   "config"
           my $config = $object->config;

       Get the Padre::Config for the current user. Provided mainly as a convenience because it is
       needed so often.

       Please note that this method does NOT integrate with the Padre::Current context system.
       Any project-specific configuration of overrides of default behaviour will not be present
       in this configuration object.

       For a project-aware configuration, use the following instead.

         $self->current->config;

   "main"
           my $main = $object->main;

       Get the Padre::Wx::Main main window that this object is a child of.

   "aui"
           my $aui = $object->aui;

       Convenient access to the Wx Advanced User Interface (AUI) Manager object.

   current
           my $current = $object->current;

       Get a new "Padre::Current" context object, for access to other parts of the current
       context.

   lock_update
           my $lock = $object->lock_update;

       The Padre::Locker API in Padre provides a solid and extensible system for locking of IDE
       resources when large-scale change of state is to occur.

       Unfortunately, there are some cases in which this mechanism can cause problems.

       Window update locking using this API is done on the entire main window. The resulting
       "Freeze"/"Thaw" calls are recursive on Windows, and as "Thaw" calls invalidate the painted
       state of widgets, this results in a global redraw and on the non-double-bufferred Windows
       platform this causes flickering.

       When a piece of code is making very targeted changes to just the graphical state of the
       application and will only need an UPDATE lock (i.e. does not need refresh or database
       locks) the alternative "lock_update" method provides a convenience for creating a
       Wx::WindowUpdateLocker independent of the main locking API.

       By using a localised lock and avoiding a global update lock, this should remove global
       flickering on these changes, and limit flickering to just the element being update, which
       should be much less noticeable.

COPYRIGHT & LICENSE

       Copyright 2008-2013 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.

       The full text of the license can be found in the LICENSE file included with this module.