UI::Various::Curses::base - abstract helper class for Curses's UI elements
# This module should only be used by the UI::Various::Curses UI # element classes!
This module provides some helper functions for the UI elements of the Curses::UI GUI.
The documentation of this module is only intended for developers of the package itself.
All functions of the module will be included as second "base class" (in @ISA). Note that this is not a diamond pattern as this "base class" does not import anything besides Exporter, though it add a common private attribute to all UI::Various::Curses classes:
@ISA
Exporter
UI::Various::Curses
a reference to the main Curses::UI element used for the implementation of the UI element
Note that usually this should only be used within UI::Various::Curses.
a unique ID needed for accessing some Curses::UI methods, most notably delete
delete
Note that we can't simply use our own object ($self) as Curses::UI uses the class-name if it encounters an object as ID.
$self
The module also provides the following common (internal) methods for all UI::Various::Curses UI element classes:
$ui_element->cleanup;
This method prepares a UI element for destruction by removing all of the references it is holding (including its parent reference). An object will therefore only survive if it is additionally still referenced outside of UI::Various, e.g. a variable used to create it in the first place.
UI::Various
$self->_reference($scalar, $update);
$self reference to derived object $scalar reference to SCALAR $update flag to initiate update of objects using same SCALAR
This method stores all SCALAR references for later updates when the content of a SCALAR is changes. If the optional update flag is set (to any true value) all other references are updated (by calling their _update method).
_update
$self->_update_all_references();
$self unused reference object
This method updates all stored SCALAR references for all objects. Currently it's only used after destroying a UI::Various::Curses::Dialog.
Curses::UI
my @attributes = $ui_element->_common_attributes();
This method returns an array of attributes of a UI element that are common to all Curses::UI widgets.
$ui_element->_needed_width();
This method updates determines the width a UI element needs, which is either specified explicitly or the maximum width of its text lines (with possible embedded newlines).
Copyright (C) Thomas Dorner.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See LICENSE file for more details.
Thomas Dorner <dorner (at) cpan (dot) org>
To install UI::Various, copy and paste the appropriate command in to your terminal.
cpanm
cpanm UI::Various
CPAN shell
perl -MCPAN -e shell install UI::Various
For more information on module installation, please visit the detailed CPAN module installation guide.