use just the battery icon in systray

This commit is contained in:
Daniel Pavel 2013-06-01 21:09:41 +02:00
parent f938b29040
commit 39862034e1
1 changed files with 5 additions and 40 deletions

View File

@ -4,7 +4,7 @@
from __future__ import absolute_import, division, print_function, unicode_literals
from gi.repository import Gtk, GdkPixbuf
from gi.repository import Gtk
from solaar import NAME
from . import action as _action, icons as _icons
@ -61,10 +61,7 @@ try:
def _update_icon(ind, image, tooltip):
if isinstance(image, GdkPixbuf.Pixbuf):
pass
else:
ind.set_icon_full(image, tooltip)
ind.set_icon_full(image, tooltip)
except ImportError:
@ -92,10 +89,7 @@ except ImportError:
def _update_icon(icon, image, tooltip):
if isinstance(image, GdkPixbuf.Pixbuf):
icon.set_from_pixbuf(image)
else:
icon.set_from_icon_name(image)
icon.set_from_icon_name(image)
icon.set_tooltip_markup(tooltip)
#
@ -126,32 +120,6 @@ def _generate_tooltip_lines(devices_info):
yield ''
_PIXMAPS = {}
def _icon_with_battery(level, active):
battery_icon = _icons.battery(level)
name = '%s-%s' % (battery_icon, active)
if name not in _PIXMAPS:
mask = _icons.icon_file(_icons.APP_ICON[2], 128)
if not mask:
return
mask = GdkPixbuf.Pixbuf.new_from_file(mask)
assert mask.get_width() == 128 and mask.get_height() == 128
mask.saturate_and_pixelate(mask, 0.7, False)
battery = _icons.icon_file(battery_icon, 128)
assert battery, "faild to find file for %s" % battery_icon
battery = GdkPixbuf.Pixbuf.new_from_file(battery)
assert battery.get_width() == 128 and battery.get_height() == 128
if not active:
battery.saturate_and_pixelate(battery, 0, True)
# TODO can the masking be done at runtime?
battery.composite(mask, 0, 7, 80, 121, -32, 7, 1, 1, GdkPixbuf.InterpType.NEAREST, 255)
_PIXMAPS[name] = mask
return _PIXMAPS[name]
def _generate_image(icon):
if not icon._devices_info:
return _icons.APP_ICON[-1]
@ -170,11 +138,8 @@ def _generate_image(icon):
if battery_status is None:
return _icons.APP_ICON[1]
else:
pixbuf = _icon_with_battery(battery_level, bool(battery_status))
if pixbuf:
return pixbuf
else:
return _icons.APP_ICON[1]
charging = battery_status.get(_status.BATTERY_CHARGING)
return _icons.battery(battery_level, charging) or _icons.APP_ICON[1]
#
#