VirtualContainer

class labpyproject.core.pygame.core.VirtualContainer(bgcolor=None, **kwargs)[source]

Bases : labpyproject.core.pygame.core.VirtualItem

VirtualItem dôté des capacités d’un conteneur :

  • publication : ajout / suppression d’objets enfants

  • propagation du resize aux objets enfants

  • layouts basiques : via la propriété direction :

    • direction = None : layout absolu (canvas), cas par défaut

    • direction = « horizontal » : layout des éléments de position fixed ou absolute selon l’axe x

    • direction = « vertical » : respectivement selon l’axe y

Virtual indique que cet objet n’a pas de surface propre (au sens pygame). Comme VirtualItem il ne s’agit pas d’un objet de publication réel. Par contre il s’inscrit dans la gestion générique des couches et de la publication. Sa descendance sera publié réellement par un RealContainer parent (Root par défaut).

À faire

Support de la visibilité, actuellement effectif uniquement pour les composants disposant d’une surface de publication.

Constructeur

Paramètres
  • bgcolor (str) – couleur héxa

  • **kwargs – peut contenir direction ainsi que toutes les propriétés de VirtualItem.

Attributes Summary

DIRECTION_ATTR

valeurs de direction possibles

DIRECTION_HORIZONTAL

valeurs de direction équivalentes

DIRECTION_VERTICAL

valeurs de direction équivalentes

bgcolor

Couleur de fond (str héxa) convertie au format pygame.Color.

direction

Direction de layout (None par défaut)

Methods Summary

add_from_hierarchy(childlist)

Chaine de remontée des items à publier en direction du RealContainer.

add_item(*childs, **kwargs)

Ajout d’un ou plusieurs item(s) virtuel(s).

apply_parent_layout(prop, val)

Applique le layout imposé par le conteneur parent

configure_child_added(child)

Configuration au moment de l’ajout du child.

configure_child_removed(child)

Configuration au moment de la suppression du child.

create_background()

Crée un CustomSprite de fond si bgcolor != None.

discard_allocated_area()

Invalide la mise à jour des surfaces alouées aux childs.

discard_globalRect()

Invalide la position globale absolue exacte

discard_layout()

Invalide le layout des childs.

discard_layout_list()

Invalide les listes de childs liées au layout.

discard_snap()

Invalide l’éventuel calcul de snap.

get_snap_childs()

Retourne la liste des childs à prendre en compte pour les calculs de snap sauf le fond.

handle_snap()

Prise en charge des snaps à la fin du process de resize : pour éviter un bouclage sans fin du process on recalcule les rects en repositionnant au besoin les childs, sans les re resizer.

has_flexible_childs()

Indique si un ou plusieurs childs sont flexibles.

layout_childs()

Applique le layout basique (si direction != None) aux childs de position fixed ou relative.

mark_container_as_resized()

En cas de resize personnalisé, re valide tous les marqueurs de resize.

on_bgcolor_changed()

Appelée lorsque la couleur de fond a été modifiée.

on_child_display_discarded(child)

Chaine de remontée des discard d’update jusqu’au prochain RealContainer.

on_child_flex_changed(child)

Appelée par un child dont l’attribut flex a été modifié.

on_child_placement_discarded(child)

Chaine de remontée des discard d’update jusqu’au prochain RealContainer.

on_child_position_changed(child)

Appelée par un child dont l’attribut position a été modifié.

on_child_snap_changed(child)

Appelée par un child dont l’attribut snap a été modifié.

on_child_unresized(child)

Appelée lorsqu’un child n’est plus resizé.

on_direction_changed()

Appelée lorsque la propriété direction a été modifiée.

on_item_added(parent)

Appelée par le container parent lorsque l’item est ajouté.

on_item_added_to_displaylist()

Appelée lorsque l’item (via sa hiérarchie parente) est publié par le root dans la displaylist finale.

on_item_removed()

Appelée par le container parent lorsque l’item est supprimé

on_item_removed_from_displaylist()

Appelée lorsque l’item (via sa hiérarchie parente) est dé-publié par le root de la displaylist finale.

on_parent_removed()

Propagé si un parent a été supprimé sans que celui ne supprime sa hiérarchie.

on_publicationRect_coords_changed(aftersnap)

Appelée lors du process de resize quand les coordonnées seules de publicationRect ont été modifiées (pas les dimensions).

on_publicationRect_dims_changed(aftersnap)

Appelée lors du process de resize quand les dimensions (et éventuellement les coords) de publicationRect ont été modifiées

on_publicationRefRect_coords_changed()

Appelée lorsque les coordonnées du rect de publication de référence (self._publicationRefRect) ont été modifiées (mais pas les dimensions).

on_resize_achieved()

Appelée à la fin du process de resize de VirtualContainer pour post traitement éventuel.

on_snap_occured()

Indique que self.publicationRect.width et/ou self.publicationRect.height ont été modifiées lors du process de resize par application d’un snap (adaptation au contenu).

parse_direction(val)

Parse l’attribut direction

remove_from_hierarchy(childlist)

Chaine de remontée des items à supprimer en direction du RealContainer.

remove_item(*childs)

Suppression d’un ou plusieurs item(s) virtuel(s)

resize(**kwargs)

Recalcul de la taille et de la position

resize_background()

Resize le fond.

update(*args)

Appelée à chaque frame: gestion du resize.

update_backround_coords()

Met à jour les coordonnées du rect de publication du fond.

update_childs()

Redéfinition systématique de la surface alouée à chaque child et appel à sa méthode resize (recalcul au besoin).

update_layout_list()

Reconstitue les listes de childs liées au layout.

xget_childs([context])

Retourne la liste de tous les items de la hiérarchie

Attributes Documentation

DIRECTION_ATTR = [['horizontal', 'h', 'x'], ['vertical', 'v', 'y']]

valeurs de direction possibles

DIRECTION_HORIZONTAL = ['horizontal', 'h', 'x']

valeurs de direction équivalentes

DIRECTION_VERTICAL = ['vertical', 'v', 'y']

valeurs de direction équivalentes

bgcolor

Couleur de fond (str héxa) convertie au format pygame.Color.

direction

Direction de layout (None par défaut)

Methods Documentation

add_from_hierarchy(childlist)[source]

Chaine de remontée des items à publier en direction du RealContainer.

Paramètres

childlist (list) – liste de VirtualItem(s)

add_item(*childs, **kwargs)[source]

Ajout d’un ou plusieurs item(s) virtuel(s).

Paramètres

childs (list) – liste de VirtualItem(s)

apply_parent_layout(prop, val)[source]

Applique le layout imposé par le conteneur parent

Paramètres
  • prop (str) – « x » ou « y »

  • val (int) –

configure_child_added(child)[source]

Configuration au moment de l’ajout du child.

Paramètres

child (VirtualItem) –

configure_child_removed(child)[source]

Configuration au moment de la suppression du child.

Paramètres

child (VirtualItem) –

create_background()[source]

Crée un CustomSprite de fond si bgcolor != None.

discard_allocated_area()[source]

Invalide la mise à jour des surfaces alouées aux childs.

discard_globalRect()[source]

Invalide la position globale absolue exacte

discard_layout()[source]

Invalide le layout des childs.

discard_layout_list()[source]

Invalide les listes de childs liées au layout.

discard_snap()[source]

Invalide l’éventuel calcul de snap.

get_snap_childs()[source]

Retourne la liste des childs à prendre en compte pour les calculs de snap sauf le fond.

handle_snap()[source]

Prise en charge des snaps à la fin du process de resize : pour éviter un bouclage sans fin du process on recalcule les rects en repositionnant au besoin les childs, sans les re resizer.

has_flexible_childs()[source]

Indique si un ou plusieurs childs sont flexibles.

layout_childs()[source]

Applique le layout basique (si direction != None) aux childs de position fixed ou relative.

mark_container_as_resized()[source]

En cas de resize personnalisé, re valide tous les marqueurs de resize.

on_bgcolor_changed()[source]

Appelée lorsque la couleur de fond a été modifiée.

on_child_display_discarded(child)[source]

Chaine de remontée des discard d’update jusqu’au prochain RealContainer.

Paramètres

child (VirtualItem) –

on_child_flex_changed(child)[source]

Appelée par un child dont l’attribut flex a été modifié.

Paramètres

child (BoxModelObject) –

on_child_placement_discarded(child)[source]

Chaine de remontée des discard d’update jusqu’au prochain RealContainer.

Paramètres

child (BoxModelObject) –

on_child_position_changed(child)[source]

Appelée par un child dont l’attribut position a été modifié.

Paramètres

child (BoxModelObject) –

on_child_snap_changed(child)[source]

Appelée par un child dont l’attribut snap a été modifié.

Paramètres

child (BoxModelObject) –

on_child_unresized(child)[source]

Appelée lorsqu’un child n’est plus resizé.

Paramètres

child (BoxModelObject) –

on_direction_changed()[source]

Appelée lorsque la propriété direction a été modifiée.

on_item_added(parent)[source]

Appelée par le container parent lorsque l’item est ajouté.

Paramètres

parent (VirtualContainer) –

on_item_added_to_displaylist()[source]

Appelée lorsque l’item (via sa hiérarchie parente) est publié par le root dans la displaylist finale.

on_item_removed()[source]

Appelée par le container parent lorsque l’item est supprimé

on_item_removed_from_displaylist()[source]

Appelée lorsque l’item (via sa hiérarchie parente) est dé-publié par le root de la displaylist finale.

on_parent_removed()[source]

Propagé si un parent a été supprimé sans que celui ne supprime sa hiérarchie.

on_publicationRect_coords_changed(aftersnap)[source]

Appelée lors du process de resize quand les coordonnées seules de publicationRect ont été modifiées (pas les dimensions).

Paramètres

aftersnap (boolean) – True si consécutif à un calcul de snap, False sinon

on_publicationRect_dims_changed(aftersnap)[source]

Appelée lors du process de resize quand les dimensions (et éventuellement les coords) de publicationRect ont été modifiées

Paramètres

aftersnap (boolean) – True si consécutif à un calcul de snap, False sinon

on_publicationRefRect_coords_changed()[source]

Appelée lorsque les coordonnées du rect de publication de référence (self._publicationRefRect) ont été modifiées (mais pas les dimensions).

on_resize_achieved()[source]

Appelée à la fin du process de resize de VirtualContainer pour post traitement éventuel.

on_snap_occured()[source]

Indique que self.publicationRect.width et/ou self.publicationRect.height ont été modifiées lors du process de resize par application d’un snap (adaptation au contenu).

parse_direction(val)[source]

Parse l’attribut direction

Paramètres

val (str) –

remove_from_hierarchy(childlist)[source]

Chaine de remontée des items à supprimer en direction du RealContainer.

Paramètres

childlist (list) – liste de VirtualItem(s)

remove_item(*childs)[source]

Suppression d’un ou plusieurs item(s) virtuel(s)

Paramètres

childs (list) – liste de VirtualItem(s)

resize(**kwargs)[source]

Recalcul de la taille et de la position

  • direction : None (canvas), horizontal (liste h), vertical (liste v)

  • si direction != None : prise en compte des attributs flex des childs

  • snapW (boolean) : si True le container définit sa largeur par rapport à son contenu

  • snapH (boolean) : si True le container définit sa hauteur par rapport à son contenu

resize_background()[source]

Resize le fond.

update(*args)[source]

Appelée à chaque frame: gestion du resize.

update_backround_coords()[source]

Met à jour les coordonnées du rect de publication du fond.

update_childs()[source]

Redéfinition systématique de la surface alouée à chaque child et appel à sa méthode resize (recalcul au besoin).

update_layout_list()[source]

Reconstitue les listes de childs liées au layout.

xget_childs(context='publication')[source]

Retourne la liste de tous les items de la hiérarchie

Paramètres

context (str) – permet de spécifier le contexte d’usage (par défaut « publication »)