annotate cagou/kv/cagou_widget.kv @ 354:aa860c10acfc

chat: new chat selector: Using the new ScreenManager feature, a widget to select a chat to display is shown when a user opens the chat (except if an entity jid is specified, in which case it opens directly the Chat widget), or when user presses ESC. When on ChatSelector, pressing ESC brings to the root widget (i.e. default widget). The ChatSelect is a first draft, it is planned to show opened chats, rooms, and a way to create new chats.
author Goffi <goffi@goffi.org>
date Fri, 17 Jan 2020 18:44:35 +0100
parents 1b835bcfa663
children 9ef01266e3fe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 # Cagou: desktop/mobile frontend for Salut à Toi XMPP client
282
1b835bcfa663 date update
Goffi <goffi@goffi.org>
parents: 274
diff changeset
2 # Copyright (C) 2016-2019 Jérôme Poisson (goffi@goffi.org)
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
3
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # This program is free software: you can redistribute it and/or modify
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
5 # it under the terms of the GNU Affero General Public License as published by
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # the Free Software Foundation, either version 3 of the License, or
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # (at your option) any later version.
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
8
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # This program is distributed in the hope that it will be useful,
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # GNU Affero General Public License for more details.
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
13
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # You should have received a copy of the GNU Affero General Public License
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
16
274
7d5297984191 core, chat: UI improvments:
Goffi <goffi@goffi.org>
parents: 222
diff changeset
17 #:import C cagou.core.constants.Const
7d5297984191 core, chat: UI improvments:
Goffi <goffi@goffi.org>
parents: 222
diff changeset
18
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
19
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
20 <HeaderWidgetChoice>:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
21 canvas.before:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
22 Color:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
23 rgba: 1, 1, 1, 1
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
24 BorderImage:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
25 pos: self.pos
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
26 size: self.size
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
27 source: 'atlas://data/images/defaulttheme/button'
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
28 size_hint_y: None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 27
diff changeset
29 height: dp(44)
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
30 spacing: dp(20)
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
31 padding: dp(5), dp(3), dp(10), dp(3)
179
7177fe2d9725 common: new ActionIcon widget which display symbol or image icon according to what is specified in plugin_info
Goffi <goffi@goffi.org>
parents: 175
diff changeset
32 ActionIcon:
7177fe2d9725 common: new ActionIcon widget which display symbol or image icon according to what is specified in plugin_info
Goffi <goffi@goffi.org>
parents: 175
diff changeset
33 plugin_info: root.plugin_info
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
34 size_hint: None, 1
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
35 width: self.height
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
36 Label:
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
37 size_hint: None, 1
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
38 text: root.plugin_info['name']
137
b9139c87f393 core: label color fix following background color change
Goffi <goffi@goffi.org>
parents: 126
diff changeset
39 color: 1, 1, 1, 1
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
40 bold: True
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
41 size: self.texture_size
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
42 halign: "center"
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
43 valign: "middle"
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
44
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
45 <HeaderWidgetSelector>:
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
46 size_hint: None, None
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
47 auto_width: False
113
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
48 canvas.before:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
49 Color:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
50 rgba: 0, 0, 0, 1
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
51 Rectangle:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
52 pos: self.pos
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
53 size: self.size
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
54
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
55 <CagouWidget>:
20
29b507826eed header's input field is now accessible with self.header_input and call onHeaderInput() on text entered
Goffi <goffi@goffi.org>
parents: 15
diff changeset
56 header_input: header_input
115
e0c41f209c28 CagouWidget: instances can now add their own extra widgets in header with headerInputAddExtra
Goffi <goffi@goffi.org>
parents: 113
diff changeset
57 header_box: header_box
222
a676cb07c1cb core (menu): TouchMenuBehaviour:
Goffi <goffi@goffi.org>
parents: 179
diff changeset
58 orientation: "vertical"
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
59 BoxLayout:
115
e0c41f209c28 CagouWidget: instances can now add their own extra widgets in header with headerInputAddExtra
Goffi <goffi@goffi.org>
parents: 113
diff changeset
60 id: header_box
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
61 size_hint: 1, None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 27
diff changeset
62 height: dp(32)
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
63 spacing: dp(3)
274
7d5297984191 core, chat: UI improvments:
Goffi <goffi@goffi.org>
parents: 222
diff changeset
64 padding: app.MARGIN_LEFT, 0, app.MARGIN_RIGHT, 0
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
65 HeaderWidgetCurrent:
179
7177fe2d9725 common: new ActionIcon widget which display symbol or image icon according to what is specified in plugin_info
Goffi <goffi@goffi.org>
parents: 175
diff changeset
66 plugin_info: root.plugin_info
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
67 size_hint: None, 1
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
68 width: self.height
179
7177fe2d9725 common: new ActionIcon widget which display symbol or image icon according to what is specified in plugin_info
Goffi <goffi@goffi.org>
parents: 175
diff changeset
69 on_release: root.selector.open(self)
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
70 TextInput:
20
29b507826eed header's input field is now accessible with self.header_input and call onHeaderInput() on text entered
Goffi <goffi@goffi.org>
parents: 15
diff changeset
71 id: header_input
175
d65a51fa00b9 core: use hollow borders for TextInput (except for XMLUI, for now)
Goffi <goffi@goffi.org>
parents: 164
diff changeset
72 background_normal: app.expand('{media}/misc/borders/border_hollow_light.png')
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
73 multiline: False
20
29b507826eed header's input field is now accessible with self.header_input and call onHeaderInput() on text entered
Goffi <goffi@goffi.org>
parents: 15
diff changeset
74 on_text_validate: root.onHeaderInput()
108
953ddf817b8a cagou widget: added onHeaderInputComplete method which is called when text is changed, and should be used for completion
Goffi <goffi@goffi.org>
parents: 60
diff changeset
75 on_text: root.onHeaderInputComplete(*args)