changeset 203:dbd2274fc78b

core: new core.dialog module with a ConfirmDialog
author Goffi <goffi@goffi.org>
date Fri, 25 May 2018 11:58:06 +0200
parents e20796eea873
children 37638765c97b
files cagou/core/dialog.py cagou/kv/dialog.kv
diffstat 2 files changed, 93 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cagou/core/dialog.py	Fri May 25 11:58:06 2018 +0200
@@ -0,0 +1,36 @@
+#!/usr//bin/env python2
+# -*- coding: utf-8 -*-
+
+# Cagou: desktop/mobile frontend for Salut à Toi XMPP client
+# Copyright (C) 2016-2018 Jérôme Poisson (goffi@goffi.org)
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+"""generic dialogs"""
+
+from sat.core.i18n import _
+from kivy.uix.boxlayout import BoxLayout
+from kivy import properties
+from sat.core import log as logging
+
+log = logging.getLogger(__name__)
+
+
+class ConfirmDialog(BoxLayout):
+    title = properties.StringProperty()
+    message = properties.StringProperty(_(u"Are you sure?"))
+    # callback for no/cancel
+    no_cb = properties.ObjectProperty()
+    # callback for yes/ok
+    yes_cb = properties.ObjectProperty()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/cagou/kv/dialog.kv	Fri May 25 11:58:06 2018 +0200
@@ -0,0 +1,57 @@
+# Cagou: desktop/mobile frontend for Salut à Toi XMPP client
+# Copyright (C) 2016-2018 Jérôme Poisson (goffi@goffi.org)
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Affero General Public License for more details.
+
+# You should have received a copy of the GNU Affero General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#:import _ sat.core.i18n._
+
+<ConfirmDialog>:
+    orientation: "vertical"
+    spacing: dp(5)
+    canvas.before:
+        Color:
+            rgba: 0, 0, 0, 1
+        Rectangle:
+            pos: self.pos
+            size: self.size
+    Label:
+        size_hint: 1, None
+        text_size: root.width, None
+        size: self.texture_size
+        font_size: sp(20)
+        padding: dp(5), dp(5)
+        color: 1, 1, 1, 1
+        text: root.title
+        halign: "center"
+        italic: True
+        bold: True
+    Label:
+        text: root.message
+        text_size: root.width, None
+        size: self.texture_size
+        font_size: sp(20)
+        color: 1, 1, 1, 1
+    Button:
+        size_hint: 1, None
+        height: dp(50)
+        background_color: 0.33, 1.0, 0.0, 1
+        text: _("Yes")
+        bold: True
+        on_release: root.yes_cb() if root.yes_cb is not None else None
+    Button:
+        size_hint: 1, None
+        height: dp(50)
+        text: _("No")
+        bold: True
+        on_release: root.no_cb() if root.no_cb is not None else None