#!/usr/bin/env python
import fluxspace
import os.path
wallpapers = {}
helper = fluxspace.FluxletHelper('painter')
class Wallpaper:
def __init__(self, fname, bgcolor = None, scale = 0, center = 0, fit = 0, mirror = 0):
self.fname = fname
self.bgcolor = bgcolor
self.scale = scale
self.center = center
self.fit = fit
self.mirror = mirror
class Handler:
def __init__(self):
helper.Trace('Event handler created')
def Initialize(self):
helper.Trace('Initialize')
def WorkspaceIn(self, n):
key = str(n)
if not wallpapers.has_key(key):
key = 'default'
if wallpapers.has_key(key):
w = wallpapers[key]
helper.Trace('WorkspaceIn %d "%s"' % (n, w.fname))
helper.SetRoot(fname=w.fname, bgcolor=w.bgcolor, scale=w.scale,
center=w.center, fit=w.fit, mirror=w.mirror)
else:
helper.Trace('No wallpaper for workspace %d' % n)
def WorkspaceOut(self, n):
helper.Trace('WorkspaceOut %d' % (n))
def fluxlet_main(config):
for wallpaperNode in config.getElementsByTagName('wallpaper'):
key = wallpaperNode.getAttribute('workspace')
fname = os.path.expanduser(wallpaperNode.getAttribute('image'))
bgcolor = wallpaperNode.getAttribute('bgcolor')
scale = (wallpaperNode.getAttribute('scale').lower() == 'yes')
center = (wallpaperNode.getAttribute('center').lower() == 'yes')
fit = (wallpaperNode.getAttribute('fit').lower() == 'yes')
mirror = (wallpaperNode.getAttribute('mirror').lower() == 'yes')
if fname:
if not key:
key = 'default'
wallpapers[key] = Wallpaper(fname, bgcolor, scale, center, fit, mirror)
else:
helper.Message(2, "You must specify an image for each wallpaper.")
helper.AddHandler(Handler())
syntax highlighted by Code2HTML, v. 0.9.1