view libervia/desktop_kivy/kv/menu.kv @ 499:f387992d8e37

plugins: new "call" plugin for A/V calls: this is the base implementation for calls plugin, handling one2one calls. For now, the interface is very basic, call is done by specifying the bare jid of the destinee, then press the "call" button. Incoming calls are automatically accepted. rel 424
author Goffi <goffi@goffi.org>
date Wed, 04 Oct 2023 22:54:36 +0200
parents b3cedbee561d
children
line wrap: on
line source

#Libervia Desktop-Kivy
# 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 <http://www.gnu.org/licenses/>.

#:import _ libervia.backend.core.i18n._
#:import C libervia.desktop_kivy.core.constants.Const

<AboutContent>:
    text_size: self.size
    color: 1, 1, 1, 1
    halign: "center"
    valign: "middle"

<AboutPopup>:
    title_align: "center"
    size_hint: 0.8, 0.8

<ExtraMenuItem>:
    size_hint: 1, None
    height: dp(30)

<ExtraSideMenu>:
    bg_color: 0.23, 0.23, 0.23, 1
    ExtraMenuItem:
        text: _("About")
        on_press: root.on_about()
    Widget:
        # to push content to the top

<TransferMenu>:
    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.update_transfer_info()
    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.update_transfer_info()
        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: self.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

<TransferItem>:
    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"


<SideMenu>:
    orientation: "vertical"
    size_hint: self.size_hint_close
    canvas.before:
        Color:
            rgba: self.bg_color
        Rectangle:
            pos: self.pos
            size: self.size


<EntitiesSelectorMenu>:
    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)