From b37ba531f786edb89ae01f95331bb5ffec02e41a Mon Sep 17 00:00:00 2001 From: Jordan Ruthe Date: Fri, 4 Dec 2020 14:02:06 -0500 Subject: [PATCH] screen: add popup message capability --- screen.py | 32 ++++++++++++++++++++++++++++++++ style.css | 9 +++++++++ 2 files changed, 41 insertions(+) diff --git a/screen.py b/screen.py index 1c00b84c..04b195fb 100644 --- a/screen.py +++ b/screen.py @@ -183,6 +183,38 @@ class KlipperScreen(Gtk.Window): self._cur_panels.append(panel_name) logger.debug("Current panel hierarchy: %s", str(self._cur_panels)) + def show_popup_message(self, message): + box = Gtk.Box() + box.get_style_context().add_class("message_popup") + box.set_size_request(self.width, 50) + label = Gtk.Label() + label.set_text(message) + + close = Gtk.Button.new_with_label("X") + close.set_can_focus(False) + close.props.relief = Gtk.ReliefStyle.NONE + close.connect("clicked", self.close_popup_message) + + box.pack_start(label, True, True, 10) + box.pack_end(close, False, False, 10) + box.set_halign(Gtk.Align.CENTER) + + self.panels[self._cur_panels[-1]].get().put(box, 0,0) + self.show_all() + self.popup_message = box + + GLib.timeout_add(10000, self.close_popup_message) + + return False + + def close_popup_message(self, widget=None): + if self.popup_message == None: + return + + self.panels[self._cur_panels[-1]].get().remove(self.popup_message) + self.popup_message = None + self.show_all() + def show_error_modal(self, err): _ = self.lang.gettext logger.exception("Showing error modal: %s", err) diff --git a/style.css b/style.css index 618a9584..e37c442b 100644 --- a/style.css +++ b/style.css @@ -46,6 +46,15 @@ progress { font-weight: lighter; } +.message_popup { + background-color: #367554; + border-bottom: 2px solid #fff; +} + +.message_popup button { + background-color: #367554; +} + .printing-progress-bar { font-size: 25px; color: #00C9B4;