#--------------------------------------------------------------------
#
#   PyGUI - ViewBase - Win32
#
#--------------------------------------------------------------------

import win32gui as gui 
from GUI import export
from GUI import application
from GUI.GViewBases import ViewBase as GViewBase

class ViewBase(GViewBase):
    
    _win_captures_mouse = True
    
    _cursor = None

#	def track_mouse(self):
#		#print "ViewBase.track_mouse: enter" ###
#		self._win_tracking_mouse = True
#		try:
#			while 1:
#				application().event_loop()
#				event = self._win_mouse_event
#				yield event
#				if event.kind == 'mouse_up':
#					break
#		finally:
#			self._win_tracking_mouse = False
#		#print "ViewBase.track_mouse: exit" ###
        
    def track_mouse(self):
        self._win_tracking_mouse = True
        while 1:
            application().event_loop()
            event = self._win_mouse_event
            yield event
            if event.kind == 'mouse_up':
                break
        self._win_tracking_mouse = False

    def get_cursor(self):
        return self._cursor
    
    def set_cursor(self, c):
        self._cursor = c

    def OnSetCursor(self, wnd, hit, message):
        if hit == 1: # HTCLIENT
            cursor = self._cursor
            if cursor:
                gui.SetCursor(cursor._win_cursor)
                return
        self._win.OnSetCursor(wnd._win, hit, message)

export(ViewBase)
