1
"""This file contains the Representation class."""
8
"""This class maps a device to presentation texts and icons used in
11
def load_and_scale_icon(self, path):
12
"""Helper function for loading an icon and scaling it to 16x16"""
13
orig = gtk.gdk.pixbuf_new_from_file(path)
14
icon = gtk.gdk.Pixbuf(gtk.gdk.COLORSPACE_RGB, True, 8, 16, 16)
15
orig.scale(icon, 0, 0, 16, 16,
17
16.0/orig.get_width(),
18
16.0/orig.get_height(),
23
"""Init the class and load neccessary resources."""
25
self.icons["computer"] = self.load_and_scale_icon(Const.DATADIR + "/hal-computer.png")
26
self.icons["bus_pci"] = self.load_and_scale_icon(Const.DATADIR + "/hal-bus-pci.png")
27
self.icons["bus_usb"] = self.load_and_scale_icon(Const.DATADIR + "/hal-bus-usb.png")
28
self.icons["abstract"] = self.load_and_scale_icon(Const.DATADIR + "/hal-abstract.png");
29
self.icons["harddisk"] = self.load_and_scale_icon(Const.DATADIR + "/hal-harddisk.png");
30
self.icons["cdrom"] = self.load_and_scale_icon(Const.DATADIR + "/hal-cdrom.png");
31
self.icons["floppy"] = self.load_and_scale_icon(Const.DATADIR + "/hal-floppy.png");
32
self.icons["unknown"] = self.load_and_scale_icon(Const.DATADIR + "/hal-unknown.png")
33
self.icons["mouse"] = self.load_and_scale_icon(Const.DATADIR + "/hal-cat-mouse.png")
34
self.icons["keyboard"] = self.load_and_scale_icon(Const.DATADIR + "/hal-cat-keyboard.png")
35
self.icons["cardbus"] = self.load_and_scale_icon(Const.DATADIR + "/hal-cat-cardbus.png")
36
self.icons["video"] = self.load_and_scale_icon(Const.DATADIR + "/hal-video.png")
37
self.icons["flash"] = self.load_and_scale_icon(Const.DATADIR + "/hal-flash.png")
38
self.icons["network"] = self.load_and_scale_icon(Const.DATADIR + "/hal-network.png")
39
self.icons["audio"] = self.load_and_scale_icon(Const.DATADIR + "/hal-audio.png")
40
self.icons["camera"] = self.load_and_scale_icon(Const.DATADIR + "/hal-camera.png")
41
self.icons["serial"] = self.load_and_scale_icon(Const.DATADIR + "/hal-serial-port.png")
44
def get_icon(self, device):
45
"""Given a Device object return an icon to display"""
47
# Default to abstract icon
48
icon = self.icons["abstract"]
51
product = device.properties["info.product"]
57
if product=="Computer":
58
return self.icons["computer"]
60
# First look at bus type, every device got subsystem property
61
if device.properties.has_key("info.subsystem"):
62
bus = device.properties["info.subsystem"]
64
icon = self.icons["bus_usb"]
66
icon = self.icons["bus_pci"]
70
# Then look at Category, if available
71
if not device.properties.has_key("info.category"):
73
cat = device.properties["info.category"]
74
if cat=="input.mouse":
75
icon = self.icons["mouse"]
76
elif cat=="input.keyboard":
77
icon = self.icons["keyboard"]
78
elif cat=="pcmcia_socket":
79
icon = self.icons["cardbus"]
80
elif cat=="video4linux":
81
icon = self.icons["video"]
83
icon = self.icons["video"]
85
icon = self.icons["camera"]
86
elif cat=="storage" or cat=="storage.removable":
87
if device.properties.has_key("storage.media"):
88
media = device.properties["storage.media"]
90
icon = self.icons["cdrom"]
92
icon = self.icons["floppy"]
94
icon = self.icons["harddisk"]
96
icon = self.icons["flash"]
98
icon = self.icons["network"]
99
elif cat=="multimedia.audio":
100
icon = self.icons["audio"]
102
icon = self.icons["serial"]