4 template< 
class ChildT >
 
    7     cm( inst, this, 
"OneChildElem" ),
 
    8     child( &this->cm, nullptr ),
 
    9     heap( inst, &this->cm )
 
   11     this->cm.inherits( this->Elem::cm );
 
   14 template< 
class ChildT >
 
   17     if( this->child.Get() )
 
   23         this->child.Get()->elem()->input_treeRefresh();
 
   24         this->child.Get()->elem()->input_deactivate();
 
   25         this->child.Get()->elem()->input_setParent( 
nullptr );
 
   29 template< 
class ChildT >
 
   30 template< 
class T, 
class ... CArgs >
 
   33     static_assert( std::is_base_of< ChildT, T >::value, 
"Child must inherit ChildT." );
 
   34     auto t = this->heap.template createClient< T >( cargs ... );
 
   39 template< 
class ChildT >
 
   40 template< 
class T, 
class ... CArgs >
 
   43     static_assert( std::is_base_of< ChildT, T >::value, 
"Child must inherit ChildT." );
 
   44     auto t = this->heap.template createInstance< T >( name, cargs ... );
 
   49 template< 
class ChildT >
 
   52     if( this->child.Get() )
 
   62     this->child.Set( child );
 
   65     child->elem()->input_setParent( 
this );
 
   66     this->input_treeRefresh();
 
   69     child->elem()->elem_setParent( 
this );
 
   72 template< 
class ChildT >
 
   75     if( !this->child.Get() )
 
   80     this->child.Get()->elem()->input_setParent( 
nullptr );
 
   81     this->input_treeRefresh();
 
   84     this->child.Get()->elem()->elem_setParent( 
nullptr );
 
   87     this->child.Set( 
nullptr );
 
   90 template< 
class ChildT >
 
   93     if( this->child.Get() )
 
   94         f( this->child.Get()->elem() );
 
   97 template< 
class ChildT >
 
  100     if( this->child.Get()->elem() == node )
 
  104 template< 
class ChildT >
 
  107     this->Elem::input_eachChild( f );
 
  109     if( this->child.Get() )
 
  110         f( this->child.Get()->elem() );
 
  113 template< 
class ChildT >
 
  116     this->Elem::input_childDisconnect( child );
 
  118     if( this->child.Get()->elem() == child )