CoverArt Browser
v2.0
Browse your cover-art albums in Rhythmbox
|
00001 import gi 00002 from gi.repository import Pango 00003 from gi.repository import Gtk 00004 00005 gi.require_version("Gtk", "3.0") 00006 00007 import logging 00008 00009 LOG = logging.getLogger(__name__) 00010 00011 00012 def get_em(size=""): 00013 # calc the height of a character, use as 1em 00014 if size: 00015 m = '<%s>M</%s>' % (size, size) 00016 else: 00017 m = 'M' 00018 00019 l = Gtk.Label() 00020 l.set_markup(m) 00021 w, h = l.get_layout().get_size() 00022 return h / Pango.SCALE 00023 00024 00025 def get_small_em(): 00026 return get_em("small") 00027 00028 00029 def get_big_em(): 00030 return get_em("big") 00031 00032 00033 EM = get_em() 00034 SMALL_EM = get_small_em() 00035 BIG_EM = get_big_em() 00036 LOG.debug("EM's: %s %s %s" % (EM, SMALL_EM, BIG_EM)) 00037 00038 00039 def em(multiplier=1, min=1): 00040 return max(int(min), int(round(EM * multiplier, 0))) 00041 00042 00043 def small_em(multiplier=1, min=1): 00044 return max(int(min), int(round(SMALL_EM * multiplier, 0))) 00045 00046 00047 def big_em(multiplier=1, min=1): 00048 return max(int(min), int(round(BIG_EM * multiplier, 0))) 00049 00050 00051 # common values 00052 class StockEms: 00053 XLARGE = em(1.33, 5) 00054 LARGE = em(min=3) 00055 MEDIUM = em(0.666, 2) 00056 SMALL = em(0.333, 1)