Ejemplo n.º 1
0
 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)
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
    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))
Ejemplo n.º 4
0
 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))
Ejemplo n.º 5
0
    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
Ejemplo n.º 6
0
 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
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
 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
Ejemplo n.º 9
0
for details.

Copyright 1996 Barry A. Warsaw <*****@*****.**>

"""
__version__ = '1.0'

import os
import sys
import tempfile
import Fvwm
import Dialog
from Tkinter import *

if __name__ == '__main__':
    fvwm = Fvwm.FvwmModule(sys.argv)
    # the Dialog object doesn't do a proper global server grab, so we
    # need to use this kludge instead.  Yes, this is bogus, the
    # tempfile module doesn't exactly have the interface we want. :-(
    tempdir = os.path.split(tempfile.mktemp())[0]
    file = os.path.join(tempdir, 'Pyquiter-' + os.environ['DISPLAY'])
    if os.path.exists(file):
        fvwm.send('Beep', cont=0)
        sys.exit(0)
    #
    # create the lock file
    #
    try:
        fp = open(file, 'w')
        master = Tk(className='Pyquiter')
        master.withdraw()