22 | 22 |
locale.bindtextdomain("xapp", applet_constants.LOCALEDIR)
|
23 | 23 |
locale.textdomain("xapp")
|
24 | 24 |
|
25 | |
ICON_SIZE_REDUCTION = 2
|
|
25 |
DEFAULT_ICON_SIZE = 22
|
|
26 |
|
26 | 27 |
VISIBLE_LABEL_MARGIN = 5 # When an icon has a label, add a margin between icon and label
|
27 | |
SYMBOLIC_ICON_SIZE = 22
|
28 | 28 |
|
29 | 29 |
statusicon_css_string = """
|
30 | 30 |
.statuswidget-horizontal {
|
|
59 | 59 |
"re-sort": (GObject.SignalFlags.RUN_LAST, None, ())
|
60 | 60 |
}
|
61 | 61 |
|
62 | |
def __init__(self, icon, orientation, size):
|
|
62 |
def __init__(self, icon, orientation, size, symbolic_icon_offset, color_icon_offset):
|
63 | 63 |
super(Gtk.ToggleButton, self).__init__()
|
64 | 64 |
self.theme = Gtk.IconTheme.get_default()
|
65 | 65 |
self.orientation = orientation
|
66 | |
self.size = size
|
|
66 |
self.icon_size = DEFAULT_ICON_SIZE
|
|
67 |
self.symbolic_icon_offset = symbolic_icon_offset
|
|
68 |
self.color_icon_offset = color_icon_offset
|
67 | 69 |
|
68 | 70 |
self.proxy = icon
|
69 | |
self.proxy.props.icon_size = size
|
|
71 |
self.proxy.props.icon_size = DEFAULT_ICON_SIZE
|
70 | 72 |
|
71 | 73 |
# this is the bus owned name
|
72 | 74 |
self.name = self.proxy.get_name()
|
|
126 | 128 |
self.connect("leave-notify-event", self.on_leave_notify)
|
127 | 129 |
|
128 | 130 |
self.update_orientation()
|
129 | |
self.update_icon()
|
|
131 |
self.update_icon(size)
|
130 | 132 |
|
131 | 133 |
def _on_icon_name_changed(self, proxy, gparamspec, data=None):
|
132 | 134 |
self.update_icon()
|
|
134 | 136 |
def _on_name_changed(self, proxy, gparamspec, data=None):
|
135 | 137 |
self.emit("re-sort")
|
136 | 138 |
|
137 | |
def update_icon(self):
|
|
139 |
def update_icon_offsets(self, symbolic, color):
|
|
140 |
self.symbolic_icon_offset = symbolic
|
|
141 |
self.color_icon_offset = color
|
|
142 |
self.update_icon()
|
|
143 |
|
|
144 |
def update_icon(self, new_size=None):
|
|
145 |
if new_size != None and new_size == self.icon_size:
|
|
146 |
return
|
|
147 |
|
|
148 |
if new_size:
|
|
149 |
self.icon_size = new_size
|
|
150 |
|
|
151 |
self.proxy.props.icon_size = self.icon_size - self.symbolic_icon_offset
|
138 | 152 |
string = self.proxy.props.icon_name
|
139 | |
self.proxy.props.icon_size = self.size
|
140 | 153 |
|
141 | 154 |
self.set_icon(string)
|
142 | 155 |
|
|
171 | 184 |
|
172 | 185 |
if string:
|
173 | 186 |
if "symbolic" in string:
|
174 | |
size = SYMBOLIC_ICON_SIZE
|
|
187 |
size = self.icon_size - self.symbolic_icon_offset
|
175 | 188 |
else:
|
176 | |
size = self.size - ICON_SIZE_REDUCTION
|
|
189 |
size = self.icon_size - self.color_icon_offset
|
177 | 190 |
|
178 | 191 |
self.image.set_pixel_size(size)
|
179 | 192 |
|
|
195 | 208 |
|
196 | 209 |
#fallback
|
197 | 210 |
if fallback:
|
198 | |
self.image.set_pixel_size(self.size - ICON_SIZE_REDUCTION)
|
|
211 |
self.image.set_pixel_size(self.icon_size - self.symbolic_icon_offset)
|
199 | 212 |
self.image.set_from_icon_name("image-missing", Gtk.IconSize.MENU)
|
200 | 213 |
|
201 | 214 |
def menu_state_changed(self, proxy, pspec, data=None):
|
|
307 | 320 |
self.applet.set_can_focus(False)
|
308 | 321 |
self.applet.set_background_widget(self.applet)
|
309 | 322 |
|
|
323 |
self.settings = Gio.Settings(schema_id="org.x.apps.mate-panel-applet")
|
|
324 |
self.settings.connect("changed", self.icon_offsets_changed)
|
|
325 |
|
310 | 326 |
self.add_about()
|
311 | 327 |
|
312 | 328 |
button_css = Gtk.CssProvider()
|
|
364 | 380 |
|
365 | 381 |
def on_applet_destroy(self, widget, data=None):
|
366 | 382 |
self.destroy_monitor()
|
|
383 |
self.settings = None
|
367 | 384 |
Gtk.main_quit()
|
368 | 385 |
|
369 | 386 |
def setup_monitor (self):
|
|
388 | 405 |
def on_icon_added(self, monitor, proxy):
|
389 | 406 |
key = self.make_key(proxy)
|
390 | 407 |
|
391 | |
self.indicators[key] = StatusWidget(proxy, self.applet.get_orient(), self.applet.get_size())
|
|
408 |
symbolic_icon_offset = self.settings.get_int("symbolic-icon-offset")
|
|
409 |
color_icon_offset = self.settings.get_int("color-icon-offset")
|
|
410 |
|
|
411 |
|
|
412 |
self.indicators[key] = StatusWidget(proxy,
|
|
413 |
self.applet.get_orient(),
|
|
414 |
self.applet.get_size(),
|
|
415 |
symbolic_icon_offset,
|
|
416 |
color_icon_offset)
|
|
417 |
|
392 | 418 |
self.indicator_box.add(self.indicators[key])
|
393 | 419 |
self.indicators[key].connect("re-sort", self.sort_icons)
|
394 | 420 |
|
|
409 | 435 |
def on_applet_size_changed(self, applet, size, data=None):
|
410 | 436 |
for key in self.indicators.keys():
|
411 | 437 |
indicator = self.indicators[key]
|
412 | |
|
413 | |
indicator.size = applet.get_size()
|
414 | |
indicator.update_icon()
|
|
438 |
indicator.update_icon(size)
|
|
439 |
|
|
440 |
self.applet.queue_resize()
|
|
441 |
|
|
442 |
def icon_offsets_changed(self, settings, key):
|
|
443 |
symbolic = self.settings.get_int("symbolic-icon-offset")
|
|
444 |
color = self.settings.get_int("color-icon-offset")
|
|
445 |
|
|
446 |
for key in self.indicators.keys():
|
|
447 |
indicator = self.indicators[key]
|
|
448 |
indicator.update_icon_offsets(symbolic, color)
|
415 | 449 |
|
416 | 450 |
self.applet.queue_resize()
|
417 | 451 |
|