summaryrefslogtreecommitdiff
path: root/plugins/python/welcome/board.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/python/welcome/board.py')
-rw-r--r--plugins/python/welcome/board.py102
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)