def __init__(self, parent=None):
        """
        Constructor
        """
        QDialog.__init__(self, parent)

        self.state = 0

        self.posX = 0
        self.posY = 0
        self.posW = 0
        self.posH = 0

        self.setWindowFlags(Qt.Tool | Qt.FramelessWindowHint)
        self.setWindowFlags(self.windowFlags() | Qt.WindowStaysOnTopHint)

        # maximize window
        screen = QDesktopWidget().screenGeometry()
        self.setGeometry(screen)

        # set cross cursor
        self.setCursor(Qt.CursorShape(Qt.CrossCursor))

        # display
        self.show()

        # create rubberband
        self.rb = QRubberBand(QRubberBand.Rectangle)
        self.rb.setWindowOpacity(0.4)  # new in v18, to support pyqt5 properly

        self.snapshotResult = None

        layout = QVBoxLayout()

        self.backgroundLabel = QLabel()
        layout.addWidget(self.backgroundLabel)
        layout.setContentsMargins(0, 0, 0, 0)

        self.setLayout(layout)