annotate cagou/kv/root_widget.kv @ 247:cf61a011f731

core (notes), common (symbol): added an icon showing note level: because of Symbol binding, it was difficult to precisely set the icon position, so Symbol has been modified to remove bindings. Added consts for INFO, WARNING and ERROR colors.
author Goffi <goffi@goffi.org>
date Sat, 26 Jan 2019 20:24:48 +0100
parents c5c1dd7f88e1
children ff1efdeff53f
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
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
36 height: label.height
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
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
48 size_hint: None, None
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 height: label.height
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
51 padding_y: dp(10)
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
52 valign: 'top'
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
53 haligh: 'right'
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
54 symbol: root.level
cf61a011f731 core (notes), common (symbol): added an icon showing note level:
Goffi <goffi@goffi.org>
parents: 208
diff changeset
55 color:
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