from qtvcp.core import Status
from PyQt5.QtCore import Qt

STATUS = Status()

class HandlerClass:
	def __init__(self, halcomp, widgets, paths):
		self.w = widgets
		self.popup = widgets['vacuum_popup']
		
		# Fenster Eigenschaften implementieren
		self.popup.setWindowModality(Qt.NonModal)
		self.popup.setWindowFlag(Qt.Window, True)
		self.popup.hide()
		
		# HAL-Pin für Popup-Trigger
		self.hal.newpin('vacuum.popum.show', halcomp.HAL_BIT, halcomp.HAL_IN)
		
		# interner Zustand, für saubere Flanken erkennung
		self._last_show = False
		
		# zyklischer Check
		STATUS.connect('periodic',self._poll_hal)
		
	def _poll_hal(self):
		show = self.hal['vacuum.popup.show']
		
		# bei ansteigender Flanke
		if show and not self._last_show:
			self._show_popup()
			
		self._last_show = show
		
	def _show_popup(self):
		if not self.popup.isVisible():
			self.popup.show()
			self.popup.raise_()
			self.popup.activateWindow()
		
	def initialized__(self):
		pass
