annotate cagou/kv/root_widget.kv @ 250:ff1efdeff53f

core: notifs can now have a custom icon and be clickable: - new host.doAction method, to open a specific widget/target (chat only for now) - when adding a notif, symbol can now be specified - an action can be linked to a notification - notifs design improvments - plugins contact list and chat use the new doAction/notif action - if None is given as old widget in SwitchWidget, the new getWidgetToSwitch method is used to select one to switch.
author Goffi <goffi@goffi.org>
date Sat, 26 Jan 2019 20:24:48 +0100
parents cf61a011f731
children 7d5297984191
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
1 # Cagou: desktop/mobile frontend for Salut à Toi XMPP client
126
cd99f70ea592 global file reorganisation:
Goffi <goffi@goffi.org>
parents: 114
diff changeset
2 # Copyright (C) 2016-2018 Jérôme Poisson (goffi@goffi.org)
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
3
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # This program is free software: you can redistribute it and/or modify
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
5 # it under the terms of the GNU Affero General Public License as published by
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
6 # the Free Software Foundation, either version 3 of the License, or
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # (at your option) any later version.
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
8
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # This program is distributed in the hope that it will be useful,
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # GNU Affero General Public License for more details.
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
13
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # You should have received a copy of the GNU Affero General Public License
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
16
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
17 #:import IconButton cagou.core.common.IconButton
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
18 #:import C cagou.core.constants.Const
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
19
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 # <NotifIcon>:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
21 # source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_32.png")
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 # size_hint: None, None
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
23 # size: self.texture_size
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
24
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
25 <Note>:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
26 text: self.message
208
c5c1dd7f88e1 root widget: improved notes:
Goffi <goffi@goffi.org>
parents: 207
diff changeset
27 text_size: self.parent.size if self.parent else (100, 100)
c5c1dd7f88e1 root widget: improved notes:
Goffi <goffi@goffi.org>
parents: 207
diff changeset
28 halign: 'center'
c5c1dd7f88e1 root widget: improved notes:
Goffi <goffi@goffi.org>
parents: 207
diff changeset
29 padding_x: dp(5)
c5c1dd7f88e1 root widget: improved notes:
Goffi <goffi@goffi.org>
parents: 207
diff changeset
30 shorten: True
c5c1dd7f88e1 root widget: improved notes:
Goffi <goffi@goffi.org>
parents: 207
diff changeset
31 shorten_from: 'right'
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
32
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
33 <NoteDrop>:
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
34 orientation: 'horizontal'
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
35 size_hint: 1, None
250
ff1efdeff53f core: notifs can now have a custom icon and be clickable:
Goffi <goffi@goffi.org>
parents: 247
diff changeset
36 height: max(label.height, dp(45))
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
37 symbol: symbol
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
38 canvas.before:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
39 BorderImage:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
40 pos: self.pos
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 size: self.size
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
42 source: 'atlas://data/images/defaulttheme/button'
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
43 Widget:
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
44 size_hint: None, 1
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
45 width: dp(20)
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
46 Symbol:
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
47 id: symbol
250
ff1efdeff53f core: notifs can now have a custom icon and be clickable:
Goffi <goffi@goffi.org>
parents: 247
diff changeset
48 size_hint: None, 1
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
49 width: dp(30)
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
50 padding_y: dp(10)
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
51 valign: 'top'
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
52 haligh: 'right'
250
ff1efdeff53f core: notifs can now have a custom icon and be clickable:
Goffi <goffi@goffi.org>
parents: 247
diff changeset
53 symbol: root.symbol or root.level
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
54 color:
250
ff1efdeff53f core: notifs can now have a custom icon and be clickable:
Goffi <goffi@goffi.org>
parents: 247
diff changeset
55 C.COLOR_PRIM_LIGHT if root.symbol is None else \
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
56 {C.XMLUI_DATA_LVL_INFO: app.c_prim_light,\
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
57 C.XMLUI_DATA_LVL_WARNING: C.COLOR_WARNING,\
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
58 C.XMLUI_DATA_LVL_ERROR: C.COLOR_ERROR}[root.level]
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
59 Label:
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
60 id: label
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
61 size_hint: 1, None
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
62 color: 1, 1, 1, 1
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
63 text: root.message
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
64 text_size: self.width, None
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
65 halign: 'center'
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
66 size: self.texture_size
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
67 padding: dp(2), dp(10)
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
68
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
69 <NotesDrop>:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
70 clear_btn: clear_btn.__self__
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
71 auto_width: False
247
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
72 size_hint: 0.9, None
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
73 size_hint_max_x: dp(400)
113
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
74 canvas.before:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
75 Color:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
76 rgba: 0.8, 0.8, 0.8, 1
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
77 Rectangle:
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
78 pos: self.pos
c439c271ecdd core (notifications), CagouWidget: a backround rectangle is drawned behind drop boxes
Goffi <goffi@goffi.org>
parents: 85
diff changeset
79 size: self.size
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
80 Button:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
81 id: clear_btn
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
82 text: "clear"
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
83 bold: True
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
84 size_hint: 1, None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 33
diff changeset
85 height: dp(50)
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
86 on_release: del root.notes[:]; root.dismiss()
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
87
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
88 <RootHeadWidget>:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
89 manager: manager
33
c21d1be2e54c core: XMLUI notifications coming from backend are handled:
Goffi <goffi@goffi.org>
parents: 29
diff changeset
90 notifs_icon: notifs_icon
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
91 size_hint: 1, None
172
7103655647aa core: hide notifications header on M-n
Goffi <goffi@goffi.org>
parents: 166
diff changeset
92 height: self.HEIGHT
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
93 IconButton:
147
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
94 source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_48.png") if root.notes else ''
62
1922506846be design fixes:
Goffi <goffi@goffi.org>
parents: 36
diff changeset
95 allow_stretch: True
147
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
96 size_hint: None, None
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
97 pos_hint: {'center_y': .5}
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
98 height: dp(25)
81
3608fef1857d core: use norm_image_size for headers'icons
Goffi <goffi@goffi.org>
parents: 62
diff changeset
99 width: self.norm_image_size[0]
29
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
100 on_release: root.notes_drop.open(self) if root.notes else None
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
101 ScreenManager:
8b5827c43155 notes first draft:
Goffi <goffi@goffi.org>
parents:
diff changeset
102 id: manager
33
c21d1be2e54c core: XMLUI notifications coming from backend are handled:
Goffi <goffi@goffi.org>
parents: 29
diff changeset
103 NotifsIcon:
c21d1be2e54c core: XMLUI notifications coming from backend are handled:
Goffi <goffi@goffi.org>
parents: 29
diff changeset
104 id: notifs_icon
62
1922506846be design fixes:
Goffi <goffi@goffi.org>
parents: 36
diff changeset
105 allow_stretch: True
207
a8190aecdd79 root widget: use mirror version of cagou profile for NotifsIcon
Goffi <goffi@goffi.org>
parents: 183
diff changeset
106 source: app.expand("{media}/icons/muchoslava/png/cagou_profil_bleu_miroir_48.png") if self.notifs else ''
147
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
107 size_hint: None, None
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
108 pos_hint: {'center_y': .5}
11d134eb51d7 core: fixed icon size hiding when notifs are reset + size adjust
Goffi <goffi@goffi.org>
parents: 131
diff changeset
109 height: dp(25)
183
6f09bc00a9e7 root widget: fixed notif icon width
Goffi <goffi@goffi.org>
parents: 172
diff changeset
110 width: self.norm_image_size[0]
33
c21d1be2e54c core: XMLUI notifications coming from backend are handled:
Goffi <goffi@goffi.org>
parents: 29
diff changeset
111
85
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
112 <RootMenus>:
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
113 size_hint: 1, None
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
114 pos_hint: {'top': 1}
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
115
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
116 <CagouRootWidget>:
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
117 root_body: root_body
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
118 root_menus: root_menus
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
119 # main body
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
120 RootBody:
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
121 id: root_body
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
122 orientation: "vertical"
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
123 size_hint: 1, None
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
124 height: root.height - root_menus.height
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
125 # general menus
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
126 # need to be added at the end so it's drawed above other widgets
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
127 RootMenus:
c2a7234d13d2 menu: use of garden's contextmenu for menus
Goffi <goffi@goffi.org>
parents: 81
diff changeset
128 id: root_menus
166
37220459e93d core: hide/show menu on M-m + disable menu on Android
Goffi <goffi@goffi.org>
parents: 151
diff changeset
129 height: self.HEIGHT