docs: def rebuild(self):
          """
          Rebuilds the widget based on the position and current size/location
          of its parent.
          """
          if not self.isVisible():
              return
          
          self.raise_()
          
          max_size = self.maximumPixmapSize()
          min_size = self.minimumPixmapSize()
          widget   = self.window()
          rect     = widget.rect()
          rect.setBottom(rect.bottom() - widget.statusBar().height())
          rect.setTop(widget.menuBar().height())
          offset   = self.padding()
          
          # align this widget to the north
          if self.position() == XDockToolbar.Position.North:
              self.move(rect.left(), rect.top())
              self.resize(rect.width(), min_size.height() + offset)
          
          # align this widget to the east
          elif self.position() == XDockToolbar.Position.East:
              self.move(rect.left(), rect.top())
              self.resize(min_size.width() + offset, rect.height())
          
          # align this widget to the south
          elif self.position() == XDockToolbar.Position.South:
              self.move(rect.left(), rect.top() - min_size.height() - offset)
              self.resize(rect.width(), min_size.height() + offset)
          
          # align this widget to the west
          else:
              self.move(rect.right() - min_size.width() - offset, rect.top())
              self.resize(min_size.width() + offset, rect.height())