Games-Axmud
view release on metacpan or search on metacpan
lib/Games/Axmud/Generic.pm view on Meta::CPAN
# }
# Setup
my $self = {
_objName => 'strip_' . $number,
_objClass => $class,
_parentFile => undef, # No parent file object
_parentWorld => undef, # No parent file object
_privFlag => TRUE, # All IVs are private
# Standard strip object IVs
# -------------------------
# The strip object's number within the parent window (matches
# GA::Win::Internal->stripCount, or -1 for a temporary strip object created to access
# its default IVs)
number => $number,
# The type of strip object (custom strip objects should use a ->type starting with
# 'custom_' to avoid clashing with future built-in strip objects)
type => 'generic',
# The parent window object (GA::Win::Internal). 'temp' for temporary strip objects
winObj => $winObj,
# Flag set to TRUE if the strip object is visible (has actually drawn widgets in the
# window), set to FALSE if it is not visible (has drawn no widgets in the window, but
# still exists in GA::Win::Internal->stripHash, etc)
# The flag might be set to FALSE in strip objects like GA::Strip::GaugeBox, which
# might have gauges to draw, or not, depending on current conditions. (Most strip
# objects have this flag set to TRUE all the time)
# If FALSE, GA::Win::Internal->drawWidgets and ->addStripObj don't draw any widgets when
# called by this object's functions
# NB Strip objects are created with this flag set to TRUE or FALSE, but once created,
# the flag's value shouldn't be modified by anything other than
# GA::Win::Internal->hideStripObj and ->revealStripObj (which in turn call
# $self->set_visibleFlag)
visibleFlag => TRUE,
# Flag set to TRUE is the strip object should be given its share of any extra space
# within the packing box (the extra space is divided equally between all children of
# the box whose ->expandFlag is TRUE)
expandFlag => FALSE,
# Flag set to TRUE if any space given to the strip object by the 'expand' option is
# actually allocated within the strip object, FALSE if it is used as padding outside
# it (on both sides)
fillFlag => FALSE,
# Flag set to TRUE if the strip object should be packed into its window with a small
# gap between strip objects to either side; FALSE if not (can be set to FALSE if the
# the strip object's widgets are drawn in a way, such that a gap is not necessary,
# for example in the toolbar strip object)
spacingFlag => TRUE,
# Flag set to TRUE if only one instance of this strip object should be added to the
# parent window, set to FALSE if any number of instances can be added
jealousyFlag => TRUE,
# Flag set to TRUE if this strip object can be added when $axmud::BLIND_MODE_FLAG is
# TRUE, FALSE if it can't be added (because it's not useful for visually-impaired
# users)
blindFlag => FALSE,
# Flag set to TRUE if the main container widget, stored in $self->packingBox, should be
# allowed to accept the focus, FALSE if not. The restriction is applied during the
# call to GA::Win::Internal->drawWidgets and ->addStripObj. Even if FALSE, widgets in
# the container widget can be set to accept the focus (e.g. the Gtk3::Entry in
# GA::Strip::MenuBar)
allowFocusFlag => FALSE,
# Initialisation settings stored as a hash (see the comments above)
initHash => \%modHash,
# Reference to a function to call when some widget is used. This IV is set only when
# required by this type of strip object. It can be set by a call to
# $self->set_func() or by some setting in $self->initHash, which is applied in the
# call to $self->objEnable(). To obtain a reference to an OOP method, you can use the
# generic object function Games::Axmud->getMethodRef()
funcRef => undef,
# A value passed to ->funcRef when it is called which identifies this strip object and
# its widget(s). Can be any value, including 'undef'. It can be set by a call to
# $self->set_id() or by some setting in $self->initHash, which is applied in the call
# to $self->objEnable()
funcID => undef,
# The container widget for this strip object (usually a Gtk3::HBox or Gtk3::VBox). This
# widget is the one added to the window's main Gtk3::HBox or Gtk3::VBox
packingBox => undef,
# Other IVs
# ---------
# Widgets
# button => undef, # Gtk3::Button
# Everything else
# ...
};
# Bless the object into existence
bless $self, $class;
return $self;
}
##################
# Methods
# Standard strip object functions
sub objEnable {
# Called by GA::Win::Internal->drawWidgets or ->addStripObj
# Generic function for setting up the strip object's widgets (which isn't actually called by
# anything)
# Copy this function into your own strip object code and add your own widgets
#
# Expected arguments
# $winmapObj - The winmap object (GA::Obj::Winmap) that specifies the layout of the
# parent window
#
# Return values
# 'undef' on improper arguments
# 1 on success
my ($self, $winmapObj, $check) = @_;
# Check for improper arguments
( run in 2.031 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )