Phoc.ChildRoot
Description: Reference for Phoc.ChildRoot

### Interface

# PhocChildRoot

#### Description [src]

    interface Phoc.ChildRoot : GObject.Object

Implementations of the `PhocChildRoot` interface. Implemented by `PhocView` and `PhocLayerSurface` so both surfaces roles can use the same handling for subsurfaces and popups.

#### Prerequisite

In order to implement ChildRoot, your type must inherit from`GObject`.

#### Implementations

- PhocLayerSurface
- PhocView
- PhocXWaylandSurface
- PhocXdgToplevel

#### Instance methods

###### phoc_child_root_add_child

No description available.

###### phoc_child_root_apply_damage

No description available.

###### phoc_child_root_get_box

No description available.

###### phoc_child_root_is_mapped

No description available.

###### phoc_child_root_remove_child

No description available.

###### phoc_child_root_unconstrain_popup

No description available.

#### Interface structure

    struct PhocChildRootInterface {
      GTypeInterface parent_iface;
      void (* get_box) (
        PhocChildRoot* root,
        wlr_box* box
      );
      gboolean (* is_mapped) (
        PhocChildRoot* root
      );
      void (* apply_damage) (
        PhocChildRoot* root
      );
      void (* add_child) (
        PhocChildRoot* root,
        PhocViewChild* child
      );
      void (* remove_child) (
        PhocChildRoot* root,
        PhocViewChild* child
      );
      gboolean (* unconstrain_popup) (
        PhocChildRoot* root,
        wlr_box* box
      );

    }

The list of virtual functions for the `PhocChildRoot` interface. Interfaces are required to implement all virtual functions.

###### Interface members

`parent_iface` |
    GTypeInterface
| The parent interface.
`get_box` |
    void (* get_box) (
        PhocChildRoot* root,
        wlr_box* box
      )
| Get the root’s surface box.
`is_mapped` |
    gboolean (* is_mapped) (
        PhocChildRoot* root
      )
| Check whether the root is mapped.
`apply_damage` |
    void (* apply_damage) (
        PhocChildRoot* root
      )
| Submit the accumulated damage for the root and its children.
`add_child` |
    void (* add_child) (
        PhocChildRoot* root,
        PhocViewChild* child
      )
| Invoked when a new child should is added.
`remove_child` |
    void (* remove_child) (
        PhocChildRoot* root,
        PhocViewChild* child
      )
| Invoked when a child should no longer be tracked by the root.
`unconstrain_popup` |
    gboolean (* unconstrain_popup) (
        PhocChildRoot* root,
        wlr_box* box
      )
| Get a box that the popup can use to unconstrain itself. Coordinates are relative to the toplevel’s top, left corner.

#### Virtual methods

###### Phoc.ChildRoot.add_child

Invoked when a new child should is added.

###### Phoc.ChildRoot.apply_damage

Submit the accumulated damage for the root and its children.

###### Phoc.ChildRoot.get_box

Get the root’s surface box.

###### Phoc.ChildRoot.is_mapped

Check whether the root is mapped.

###### Phoc.ChildRoot.remove_child

Invoked when a child should no longer be tracked by the root.

###### Phoc.ChildRoot.unconstrain_popup

Get a box that the popup can use to unconstrain itself. Coordinates are relative to the toplevel’s top, left corner.