# Cagou: desktop/mobile frontend for Salut à Toi XMPP client
# Copyright (C) 2016-2021 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 IconButton cagou.core.common.IconButton
#:import C cagou.core.constants.Const
# :
# source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_32.png")
# size_hint: None, None
# size: self.texture_size
:
text: self.message
text_size: self.parent.size if self.parent else (100, 100)
halign: 'center'
padding_x: dp(5)
shorten: True
shorten_from: 'right'
:
orientation: 'horizontal'
size_hint: 1, None
height: max(label.height, dp(45))
symbol: symbol
canvas.before:
BorderImage:
pos: self.pos
size: self.size
source: 'atlas://data/images/defaulttheme/button'
Widget:
size_hint: None, 1
width: dp(20)
Symbol:
id: symbol
size_hint: None, 1
width: dp(30)
padding_y: dp(10)
valign: 'top'
haligh: 'right'
symbol: root.symbol or root.level
color:
C.COLOR_PRIM_LIGHT if root.symbol is None else \
{C.XMLUI_DATA_LVL_INFO: app.c_prim_light,\
C.XMLUI_DATA_LVL_WARNING: C.COLOR_WARNING,\
C.XMLUI_DATA_LVL_ERROR: C.COLOR_ERROR}[root.level]
Label:
id: label
size_hint: 1, None
color: 1, 1, 1, 1
text: root.message
text_size: self.width, None
halign: 'center'
size: self.texture_size
padding: dp(2), dp(10)
:
clear_btn: clear_btn.__self__
auto_width: False
size_hint: 0.9, None
size_hint_max_x: dp(400)
canvas.before:
Color:
rgba: 0.8, 0.8, 0.8, 1
Rectangle:
pos: self.pos
size: self.size
Button:
id: clear_btn
text: "clear"
bold: True
size_hint: 1, None
height: dp(50)
on_release: del root.notes[:]; root.dismiss()
:
manager: manager
notifs_icon: notifs_icon
size_hint: 1, None
height: self.HEIGHT
padding: app.MARGIN_LEFT, 0, app.MARGIN_RIGHT, 0
IconButton:
source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_48.png")
allow_stretch: True
size_hint: None, None
pos_hint: {'center_y': .5}
height: dp(25)
width: dp(35) if root.notes else 0
opacity: 1 if root.notes else 0
on_release: root.notes_drop.open(self) if root.notes else None
ScreenManager:
id: manager
NotifsIcon:
id: notifs_icon
allow_stretch: True
source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_miroir_48.png")
size_hint: None, None
pos_hint: {'center_y': .5}
height: dp(25)
width: dp(35) if self.notifs else 0
opacity: 1 if self.notifs else 0
Symbol:
id: disconnected_icon
size_hint: None, 1
pos_hint: {'center_y': .5}
font_size: dp(23)
width: 0 if app.connected else dp(30)
opacity: 0 if app.connected else 1
symbol: "plug"
color: 0.80, 0.0, 0.0, 1
:
root_body: root_body
RootBody:
id: root_body
orientation: "vertical"