docs: def DrawBox( self, dc, node, x,y,w,h, hot_map, depth=0 ):
          """Draw a model-node's box and all children nodes"""
          log.debug( 'Draw: %s to (%s,%s,%s,%s) depth %s',
              node, x,y,w,h, depth,
          )
          if self.max_depth and depth > self.max_depth:
              return
          self.max_depth_seen = max( (self.max_depth_seen,depth))
          dc.SetBrush( self.BrushForNode( node, depth ) )
          dc.SetPen( self.PenForNode( node, depth ) )
          # drawing offset by margin within the square...
          dx,dy,dw,dh = x+self.margin,y+self.margin,w-(self.margin*2),h-(self.margin*2)
          if sys.platform == 'darwin':
              # Macs don't like drawing small rounded rects...
              if w < self.padding*2 or h < self.padding*2:
                  dc.DrawRectangle( dx,dy,dw,dh )
              else:
                  dc.DrawRoundedRectangle( dx,dy,dw,dh, self.padding )
          else:
              dc.DrawRoundedRectangle( dx,dy,dw,dh, self.padding*3 )
  #        self.DrawIconAndLabel(dc, node, x, y, w, h, depth)
          children_hot_map = []
          hot_map.append( (wx.Rect( int(x),int(y),int(w),int(h)), node, children_hot_map ) )
          x += self.padding
          y += self.padding
          w -= self.padding*2
          h -= self.padding*2
          
  
          empty = self.adapter.empty( node )
          icon_drawn = False
          if self.max_depth and depth == self.max_depth:
              self.DrawIconAndLabel(dc, node, x, y, w, h, depth)
              icon_drawn = True
          elif empty:
              # is a fraction of the space which is empty...
              log.debug( '  empty space fraction: %s', empty )
              new_h = h * (1.0-empty)
              self.DrawIconAndLabel(dc, node, x, y, w, h-new_h, depth)
              icon_drawn = True
              y += (h-new_h)
              h = new_h
  
          if w >self.padding*2 and h> self.padding*2:
              children = self.adapter.children( node )
              if children:
                  log.debug( '  children: %s', children )
                  self.LayoutChildren( dc, children, node, x,y,w,h, children_hot_map, depth+1 )
              else:
                  log.debug( '  no children' )
                  if not icon_drawn:
                      self.DrawIconAndLabel(dc, node, x, y, w, h, depth)
          else:
              log.debug( '  not enough space: children skipped' )