def __init__(self, notify_window, functionality, partner_ip, projected_image): """Init AppProcess class.""" self.notify_window = notify_window CBasicComponent.__init__(self, 'app_process', self.notify_window, self.notify_window) self.functionality = functionality self.projected_image = projected_image self.partner_ip = partner_ip print partner_ip self.partner_res = None # control thread should receive and set this value self.control_socket = socket.socket() self.control_thread = threading.Thread(target=self.control_thread_func) self.control_thread.start() if self.functionality == 'r': global EVT_UPDATE_PICTURE_ID dispRect = wx.Display() # return rect obejct, using default screen temp = dispRect.GetClientArea()[2:] # RECT's fields [:2] not used #mods = ( wx.SystemSettings.GetMetric(wx.SYS_FRAMESIZE_Y)/2 , wx.SystemSettings.GetMetric(wx.SYS_CAPTION_Y) + wx.SystemSettings.GetMetric(wx.SYS_FRAMESIZE_Y)/2 ) mods = (wx.SystemSettings.GetMetric(wx.SYS_BORDER_X), wx.SystemSettings.GetMetric(wx.SYS_BORDER_Y) + wx.SystemSettings.GetMetric(wx.SYS_CAPTION_Y)) client_area = (temp[0] - mods[0], temp[1] - mods[1]) print client_area while self.partner_res == None: # wait for control thread to receive this value, make sure it is set before passing it to components time.sleep(0.2) print 'waiting for partner_res' self.rendererObj = Renderer.CRenderer('renderer', self, self.notify_window, EVT_UPDATE_PICTURE_ID, client_area) self.getterObj = Getter.CGetter('getter', self, self.rendererObj, (self.partner_ip, 6789)) #self.hookerObj = Hooker.CHooker('hooker', self, (self.partner_ip,4321), client_area, self.partner_res, mods) self.hookerObj = Hooker.CHooker('hooker', self, (self.partner_ip, 4321), client_area, self.partner_res) self.componentsArray = [ self.rendererObj, self.getterObj, self.hookerObj ] #self.componentsArray = [self.rendererObj, self.getterObj] #self.componentsArray = [self.hookerObj] self.notify_window.Bind(wx.EVT_KEY_DOWN, self.onKeyDown) self.notify_window.Bind(wx.EVT_KEY_UP, self.onKeyUp) self.projected_image.Bind(wx.EVT_RIGHT_UP, self.onRightMouseUp) self.projected_image.Bind(wx.EVT_LEFT_UP, self.onLeftMouseUp) self.projected_image.Bind(wx.EVT_RIGHT_DOWN, self.onRightMouseDown) self.projected_image.Bind(wx.EVT_LEFT_DOWN, self.onLeftMouseDown) self.projected_image.Bind(wx.EVT_MOUSEWHEEL, self.onMouseWheel) self.projected_image.Bind(wx.EVT_MOTION, self.onMouseMotion) elif self.functionality == 's': self.senderObj = Sender.CSender('sender', self, ('', 6789)) self.grabberObj = Grabber.CGrabber('grabber', self, self.senderObj) #self.clickerObj = Clicker.CClicker('clicker', self, ('',4321)) #self.clickerObj = Clicker1.CClicker('clicker', self, ('',4321)) self.clickerObj = Clicker.CClicker('clicker', self, ('', 4321)) self.componentsArray = [ self.grabberObj, self.senderObj, self.clickerObj ]