# Cagou: desktop/mobile frontend for Salut à Toi XMPP client # Copyright (C) 2016-2019 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 . #:import _ sat.core.i18n._ #:import C cagou.core.constants.Const : text_size: self.size color: 1, 1, 1, 1 halign: "center" valign: "middle" : title_align: "center" size_hint: 0.8, 0.8 : size_hint: 1, None height: dp(30) : bg_color: 0.23, 0.23, 0.23, 1 ExtraMenuItem: text: _("About") on_press: root.onAbout() Widget: # to push content to the top : items_layout: items_layout orientation: "vertical" bg_color: app.c_prim size_hint: 1, 0.5 padding: [app.MARGIN_LEFT, 3, app.MARGIN_RIGHT, 0] spacing: dp(5) transfer_info: transfer_info upload_btn: upload_btn on_encrypted: self.updateTransferInfo() canvas.after: Color: rgba: app.c_prim_dark Line: points: 0, self.y + self.height, self.width + self.x, self.y + self.height width: 1 BoxLayout: size_hint: 1, None height: dp(50) spacing: dp(10) Widget: SymbolToggleLabel id: upload_btn symbol: "upload" text: _(u"upload") group: "transfer" state: "down" on_state: root.updateTransferInfo() SymbolToggleLabel id: send_btn symbol: "loop-alt" text: _(u"send") group: "transfer" Widget: Label: id: transfer_info size_hint: 1, None padding: 0, dp(5) markup: True text_size: root.width, None size: self.texture_size halign: 'center' canvas.before: Color: rgba: app.c_prim_dark RoundedRectangle: pos: self.pos size: self.size ScrollView: do_scroll_x: False StackLayout: size_hint: 1, None padding: 20, 0 spacing: 15, 5 id: items_layout : orientation: "vertical" size_hint: None, None size: dp(50), dp(90) IconButton: source: root.plug_info['icon_medium'] allow_stretch: True size_hint: 1, None height: dp(50) Label: color: 0, 0, 0, 1 text: root.plug_info['name'] text_size: self.size halign: "center" valign: "top" : orientation: "vertical" size_hint: self.size_hint_close canvas.before: Color: rgba: self.bg_color Rectangle: pos: self.pos size: self.size : bg_color: 0, 0, 0, 0.9 filter_input: filter_input layout: layout callback_on_close: True Label: size_hint: 1, None text_size: root.width, None size: self.texture_size padding: dp(5), dp(5) color: 1, 1, 1, 1 text: root.instructions halign: "center" TextInput: id: filter_input size_hint: 1, None height: dp(32) multiline: False hint_text: _(u"enter filter here") ScrollView: size_hint: 1, 1 BoxLayout: id: layout orientation: "vertical" size_hint: 1, None height: self.minimum_height spacing: dp(5)