annotate cagou/kv/cagou_widget.kv @ 376:9ef01266e3fe

core: new extra menu: a new "extra" menu is added in CagouWidget's header selector (at the end). This activate a side menu with global actions, like showing the "about" screen. Platform specific menus can be added with `local_platform.on_extra_menu_init`.
author Goffi <goffi@goffi.org>
date Mon, 27 Jan 2020 21:17:09 +0100
parents 1b835bcfa663
children d61bbbac4160
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
376
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
20 <HeaderChoice>:
25
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)
376
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
32
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
33 <HeaderChoiceWidget>:
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
34 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
35 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
36 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
37 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
38 Label:
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
39 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
40 text: root.plugin_info['name']
137
b9139c87f393 core: label color fix following background color change
Goffi <goffi@goffi.org>
parents: 126
diff changeset
41 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
42 bold: True
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
43 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
44 halign: "center"
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
45 valign: "middle"
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
46
376
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
47 <HeaderChoiceExtraMenu>:
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
48 ActionSymbol:
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
49 symbol: "dot-3-vert"
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
50 size_hint: None, 1
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
51 width: self.height
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
52 Label:
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
53 size_hint: None, 1
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
54 text: _("extra")
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
55 color: 1, 1, 1, 1
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
56 bold: True
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
57 size: self.texture_size
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
58 halign: "center"
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
59 valign: "middle"
9ef01266e3fe core: new extra menu:
Goffi <goffi@goffi.org>
parents: 282
diff changeset
60
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
61 <HeaderWidgetSelector>:
164
60b2b2bad747 core (widget selector): adjusted selector size to content, and added some spacing
Goffi <goffi@goffi.org>
parents: 137
diff changeset
62 size_hint: None, None
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
63 auto_width: False
113
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
64 canvas.before:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
65 Color:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
66 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
67 Rectangle:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
68 pos: self.pos
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 108
diff changeset
69 size: self.size
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
70
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
71 <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
72 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
73 header_box: header_box
222
a676cb07c1cb core (menu): TouchMenuBehaviour:
Goffi <goffi@goffi.org>
parents: 179
diff changeset
74 orientation: "vertical"
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
75 BoxLayout:
115
e0c41f209c28 CagouWidget: instances can now add their own extra widgets in header with headerInputAddExtra
Goffi <goffi@goffi.org>
parents: 113
diff changeset
76 id: header_box
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
77 size_hint: 1, None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 27
diff changeset
78 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
79 spacing: dp(3)
274
7d5297984191 core, chat: UI improvments:
Goffi <goffi@goffi.org>
parents: 222
diff changeset
80 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
81 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
82 plugin_info: root.plugin_info
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
83 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
84 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
85 on_release: root.selector.open(self)
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
86 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
87 id: header_input
175
d65a51fa00b9 core: use hollow borders for TextInput (except for XMLUI, for now)
Goffi <goffi@goffi.org>
parents: 164
diff changeset
88 background_normal: app.expand('{media}/misc/borders/border_hollow_light.png')
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
89 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
90 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
91 on_text: root.onHeaderInputComplete(*args)