docs: def popup(self, pos=None):
          """
          Pops up this widget at the inputed position.  The inputed point should \
          be in global space.
          
          :param      pos | <QPoint>
          
          :return     <bool> success
          """
          if self._first and self.centralWidget() is not None:
              self.adjustSize()
              self._first = False
          
          if not self.signalsBlocked():
              self.aboutToShow.emit()
          
          if not pos:
              pos = QCursor.pos()
          
          if self.currentMode() == XPopupWidget.Mode.Dialog and \
               self.isVisible():
              return False
          
          elif self.currentMode() == XPopupWidget.Mode.Dialog:
              self.setPopupMode()
          
          # auto-calculate the point
          if self.autoCalculateAnchor():
              self.setAnchor(self.mapAnchorFrom(self.parent(), pos))
          
          pad = self.popupPadding()
          
          # determine where to move based on the anchor
          anchor = self.anchor()
          
          # MODIFY X POSITION
          # align x-left
          if ( anchor & (XPopupWidget.Anchor.TopLeft |
                         XPopupWidget.Anchor.BottomLeft) ):
              pos.setX(pos.x() - pad)
          
          # align x-center
          elif ( anchor & (XPopupWidget.Anchor.TopCenter |
                           XPopupWidget.Anchor.BottomCenter) ):
              pos.setX(pos.x() - self.width() / 2)
          
          # align x-right
          elif ( anchor & (XPopupWidget.Anchor.TopRight |
                           XPopupWidget.Anchor.BottomRight) ):
              pos.setX(pos.x() - self.width() + pad)
          
          # align x-padded
          elif ( anchor & (XPopupWidget.Anchor.RightTop |
                           XPopupWidget.Anchor.RightCenter |
                           XPopupWidget.Anchor.RightBottom) ):
              pos.setX(pos.x() - self.width())
          
          # MODIFY Y POSITION
          # align y-top
          if ( anchor & (XPopupWidget.Anchor.LeftTop |
                         XPopupWidget.Anchor.RightTop) ):
              pos.setY(pos.y() - pad)
          
          # align y-center
          elif ( anchor & (XPopupWidget.Anchor.LeftCenter |
                           XPopupWidget.Anchor.RightCenter) ):
              pos.setY(pos.y() - self.height() / 2)
          
          # align y-bottom
          elif ( anchor & (XPopupWidget.Anchor.LeftBottom |
                           XPopupWidget.Anchor.RightBottom) ):
              pos.setY(pos.y() - self.height() + pad)
          
          # align y-padded
          elif ( anchor & (XPopupWidget.Anchor.BottomLeft |
                           XPopupWidget.Anchor.BottomCenter |
                           XPopupWidget.Anchor.BottomRight) ):
              pos.setY(pos.y() - self.height())
          
          self.adjustMask()
          self.move(pos)
          self.update()
          self.setUpdatesEnabled(True)
          
          if self.isAnimated():
              anim = QPropertyAnimation(self, 'windowOpacity')
              anim.setParent(self)
              anim.setStartValue(0.0)
              anim.setEndValue(self.windowOpacity())
              anim.setDuration(500)
              anim.finished.connect(anim.deleteLater)
              self.setWindowOpacity(0.0)
          else:
              anim = None
              
          
          self.show()
          
          if self.currentMode() != XPopupWidget.Mode.ToolTip:
              self.activateWindow()
              
              widget = self.centralWidget()
              if widget:
                  self.centralWidget().setFocus()
              
          
          if anim:
              anim.start()
          
          if not self.signalsBlocked():
              self.shown.emit()
          
          return True