def feed_pkt(self, pkt): pktname = Fvwm.Types[pkt.msgtype] if pktname in ('M_NEW_PAGE', 'M_NEW_DESK'): _insert(self, pkt) elif pktname in ('M_ADD_WINDOW', 'M_CONFIGURE_WINDOW', 'M_FOCUS_CHANGE', 'M_WINDOW_NAME'): _insert(self.__getwin(pkt.db_entry), pkt) elif pktname in ('M_LOWER_WINDOW', 'M_RAISE_WINDOW', 'M_DEICONIFY', 'M_MAP', 'M_END_WINDOWLIST', 'M_ERROR', 'M_CONFIG_INFO', 'M_END_CONFIG_INFO', 'M_DEFAULTICON'): pass elif pktname == 'M_DESTROY_WINDOW': try: del self.__winsbydb[pkt.db_entry] except KeyError: pass elif pktname in ('M_ICONIFY', 'M_ICON_LOCATION'): _insert(self.__getwin(pkt.db_entry), pkt, x='icon_x', y='icon_y', width='icon_width', height='icon_height') elif pktname == 'M_ICON_NAME': _insert(self.__getwin(pkt.db_entry), pkt, name='icon_name') elif pktname == 'M_ICON_FILE': _insert(self.__getwin(pkt.db_entry), pkt, name='icon_file') elif pktname == 'M_RES_CLASS': _insert(self.__getwin(pkt.db_entry), pkt, name='res_class') elif pktname == 'M_RES_NAME': _insert(self.__getwin(pkt.db_entry), pkt, name='res_name') else: Fvwm.error('Unknown packet type: %s' % pktname)
def __init__(self, master, controller, tracker, geom): self.__controller = controller self.__tracker = tracker self.__frame = Toplevel(master) if geom: try: self.__frame.geometry(geom) except TclError, msg: Fvwm.error('%s: %s' % (sys.exc_type, msg))
def __readconfig(self): geom = None for config in self.get_configinfo().get_infolines(_APPNAME): try: words = config.split() keyword = words[0] if keyword == '*PydesksDesk': # *PydesksDesk Name Number name = words[1] number = int(words[2]) if self.__desknobyname.has_key(name): Fvwm.error('Ignoring duplicate desk name: %s' % name) else: self.__desknamebyno[number] = name self.__desknobyname[name] = number elif keyword == '*PydesksAutoGrow': self.__autogrow = 1 elif keyword == '*PydesksFvwmPagerKludge': self.__pagerkludge = 1 elif keyword == '*PydesksGeometry': geom = words[1] else: Fvwm.error('Bad config line: %s' % config) except (IndexError, ValueError): Fvwm.error('%s: %s' % (sys.exc_type, config)) return geom
def __init__(self, argv): Fvwm.FvwmModule.__init__(self, argv) self.__desknamebyno = {} self.__desknobyname = {} self.__tracker = self.get_windowlist() geom = self.__readconfig() # # get the desk to start on. # starton_no = None try: starton_name = self.args[0] starton_no = self.__desknobyname[starton_name] except IndexError: pass except KeyError: Fvwm.error('Unknown start on desk name was specified: %s' % starton_name) pass # # create the GUI # master = Tk(className=_APPNAME) master.protocol('WM_DELETE_WINDOW', self.quit) master.title(_APPNAME) master.iconname(_APPNAME) master.withdraw() self.__view = View(master, self, self.__tracker, geom) # # populate the desks # desknos = self.__desknamebyno.keys() desknos.sort() for deskno in desknos: deskname = self.__desknamebyno[deskno] self.__view.add_desk(deskno, deskname) if starton_no is not None: self.send('Desk 0 %d' % starton_no) self.set_mask() # the Fvwm module's event mask