diff options
Diffstat (limited to 'plugins/python/welcome/board.py')
-rw-r--r-- | plugins/python/welcome/board.py | 102 |
1 files changed, 102 insertions, 0 deletions
diff --git a/plugins/python/welcome/board.py b/plugins/python/welcome/board.py new file mode 100644 index 0000000..ebebbc3 --- /dev/null +++ b/plugins/python/welcome/board.py @@ -0,0 +1,102 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- + +from gi.repository import Gtk + + +class SmallBoard(Gtk.EventBox): + """Représente une tuile de support pour le panneau de bienvenue.""" + + + css = """ + +#classic { + + border-color: rgba(255, 255, 255, 0.2); + border-style: solid; + border-width: 1px; + +} + +#hover { + + border-color: rgba(255, 255, 255, 0.6); + border-style: solid; + border-width: 1px; + +} +""" + + + def __init__(self): + """Construit le panneau avec son contenu.""" + + super(SmallBoard, self).__init__() + + #self.set_size_request(250, 150) + self.set_has_window(True) + + self.props.opacity = 0.6 + + self._manager = None + + + def on_enter(self, widget, event): + """Réagit à un survol de la zone par la souris.""" + + self.set_name('hover') + + self._manager.define_selected_area(self.get_allocation()) + + self.props.opacity = 1.0 + + return False + + + def on_leave(self, widget, event): + """Réagit à une sortie de la zone par la souris.""" + + self.set_name('classic') + + if self._manager != None: + self._manager.define_selected_area(None) + + self.props.opacity = 0.6 + + return False + + + def get_location(self): + """Fournit la localisation souhaitée pour la plache.""" + + pass + + + def attach(self, manager): + """Lie partiellement la plache à son support et suit les survols.""" + + child = self.get_child() + + if child != None: + + child.props.margin = 20 + + self.set_name('classic') + + self._manager = manager + + + def track_children(widget, owner): + + widget.connect('enter-notify-event', self.on_enter) + widget.connect('leave-notify-event', self.on_leave) + + if isinstance(widget, Gtk.Container): + + children = widget.get_children() + + for child in children: + track_children(child, owner) + + + track_children(self, self) |