dialogs: add the ability to show dialogs without buttons for fullscreen view (click to close)
This commit is contained in:
parent
b1e71283a6
commit
a18b198bf2
@ -196,30 +196,37 @@ class KlippyGtk:
|
|||||||
spinner.hide()
|
spinner.hide()
|
||||||
widget.set_sensitive(True)
|
widget.set_sensitive(True)
|
||||||
|
|
||||||
|
def dialog_content_decouple(self, widget, event, dialog):
|
||||||
|
self.remove_dialog(dialog)
|
||||||
|
|
||||||
def Dialog(self, title, buttons, content, callback=None, *args):
|
def Dialog(self, title, buttons, content, callback=None, *args):
|
||||||
dialog = Gtk.Dialog(title=title, modal=True, transient_for=self.screen,
|
dialog = Gtk.Dialog(title=title, modal=True, transient_for=self.screen,
|
||||||
default_width=self.width, default_height=self.height)
|
default_width=self.width, default_height=self.height)
|
||||||
if not self.screen.windowed:
|
if not self.screen.windowed:
|
||||||
dialog.fullscreen()
|
dialog.fullscreen()
|
||||||
|
|
||||||
max_buttons = 3 if self.screen.vertical_mode else 4
|
if buttons:
|
||||||
if len(buttons) > max_buttons:
|
max_buttons = 3 if self.screen.vertical_mode else 4
|
||||||
buttons = buttons[:max_buttons]
|
if len(buttons) > max_buttons:
|
||||||
if len(buttons) > 2:
|
buttons = buttons[:max_buttons]
|
||||||
dialog.get_action_area().set_layout(Gtk.ButtonBoxStyle.EXPAND)
|
if len(buttons) > 2:
|
||||||
button_hsize = -1
|
dialog.get_action_area().set_layout(Gtk.ButtonBoxStyle.EXPAND)
|
||||||
else:
|
button_hsize = -1
|
||||||
button_hsize = int((self.width / 3))
|
|
||||||
for button in buttons:
|
|
||||||
if 'style' in button:
|
|
||||||
style = button['style']
|
|
||||||
else:
|
else:
|
||||||
style = 'dialog-default'
|
button_hsize = int((self.width / 3))
|
||||||
dialog.add_button(button['name'], button['response'])
|
for button in buttons:
|
||||||
button = dialog.get_widget_for_response(button['response'])
|
style = button['style'] if 'style' in button else 'dialog-default'
|
||||||
button.set_size_request(button_hsize, self.dialog_buttons_height)
|
dialog.add_button(button['name'], button['response'])
|
||||||
button.get_style_context().add_class(style)
|
button = dialog.get_widget_for_response(button['response'])
|
||||||
format_label(button, 2)
|
button.set_size_request(button_hsize, self.dialog_buttons_height)
|
||||||
|
button.get_style_context().add_class(style)
|
||||||
|
format_label(button, 2)
|
||||||
|
else:
|
||||||
|
# No buttons means clicking anywhere closes the dialog
|
||||||
|
content.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK)
|
||||||
|
content.connect("button-release-event", self.dialog_content_decouple, dialog)
|
||||||
|
dialog.add_events(Gdk.EventMask.BUTTON_RELEASE_MASK)
|
||||||
|
dialog.connect("button-release-event", self.remove_dialog)
|
||||||
|
|
||||||
dialog.connect("response", self.screen.reset_screensaver_timeout)
|
dialog.connect("response", self.screen.reset_screensaver_timeout)
|
||||||
dialog.connect("response", callback, *args)
|
dialog.connect("response", callback, *args)
|
||||||
|
@ -35,11 +35,8 @@ class HeaterGraph(Gtk.DrawingArea):
|
|||||||
return self.fullscreen
|
return self.fullscreen
|
||||||
|
|
||||||
def show_fullscreen_graph(self):
|
def show_fullscreen_graph(self):
|
||||||
buttons = [
|
|
||||||
{"name": _("Close"), "response": Gtk.ResponseType.CANCEL}
|
|
||||||
]
|
|
||||||
self.fs_graph = HeaterGraph(self._screen, self.printer, self.font_size * 2, fullscreen=True, store=self.store)
|
self.fs_graph = HeaterGraph(self._screen, self.printer, self.font_size * 2, fullscreen=True, store=self.store)
|
||||||
self._gtk.Dialog(_("Temperature"), buttons, self.fs_graph, self.close_fullscreen_graph)
|
self._gtk.Dialog(_("Temperature"), None, self.fs_graph, self.close_fullscreen_graph)
|
||||||
|
|
||||||
def close_fullscreen_graph(self, dialog, response_id):
|
def close_fullscreen_graph(self, dialog, response_id):
|
||||||
logging.info("Closing graph")
|
logging.info("Closing graph")
|
||||||
|
@ -749,15 +749,12 @@ class Panel(ScreenPanel):
|
|||||||
image.set_from_pixbuf(pixbuf)
|
image.set_from_pixbuf(pixbuf)
|
||||||
|
|
||||||
def show_fullscreen_thumbnail(self, widget):
|
def show_fullscreen_thumbnail(self, widget):
|
||||||
buttons = [
|
|
||||||
{"name": _("Close"), "response": Gtk.ResponseType.CANCEL}
|
|
||||||
]
|
|
||||||
pixbuf = self.get_file_image(self.filename, self._screen.width * .9, self._screen.height * .75)
|
pixbuf = self.get_file_image(self.filename, self._screen.width * .9, self._screen.height * .75)
|
||||||
if pixbuf is None:
|
if pixbuf is None:
|
||||||
return
|
return
|
||||||
image = Gtk.Image.new_from_pixbuf(pixbuf)
|
image = Gtk.Image.new_from_pixbuf(pixbuf)
|
||||||
image.set_vexpand(True)
|
image.set_vexpand(True)
|
||||||
self._gtk.Dialog(self.filename, buttons, image, self.close_fullscreen_thumbnail)
|
self._gtk.Dialog(self.filename, None, image, self.close_fullscreen_thumbnail)
|
||||||
|
|
||||||
def close_fullscreen_thumbnail(self, dialog, response_id):
|
def close_fullscreen_thumbnail(self, dialog, response_id):
|
||||||
self._gtk.remove_dialog(dialog)
|
self._gtk.remove_dialog(dialog)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user