annotate src/cagou/kv/cagou_widget.kv @ 38:9f45098289cc

widgets handler, core: hidden widgets can now be shown with swipes: - a couple of methods have been added to handle visible and hidden widgets - a new getOrClone method allow to recreate a widget if it already has a parent (can happen even if the widget is not shown, e.g. in a carousel) - handler now display hidden widgets of the same class as the displayed one when swiping. For instance, if a chat widget is displayed, and header input is used to show an other one, it's now possible to go back to the former by swiping. QuickWidget.onDelete method can be used to handle if a widget must be really deleted (return True) or just hidden (any other value). - handler use a subclass of Carousel for this new feature, with some adjustement so event can be passed to children without too much delay (and frustration). This may need to be adjusted again in the future. - handler.cagou_widget now give the main displayed widget in the handler - handler.changeWidget must be used when widget need to be changed (it's better to use host.switchWidget which will call it itself)
author Goffi <goffi@goffi.org>
date Sun, 28 Aug 2016 15:27:48 +0200
parents bd3ecac18870
children 35abe494e6c7
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
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
2 # Copyright (C) 2016 Jérôme Poisson (goffi@goffi.org)
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
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
17
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
18 <HeaderWidgetChoice>:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
19 canvas.before:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
20 Color:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
21 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
22 BorderImage:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
23 pos: self.pos
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
24 size: self.size
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
25 source: 'atlas://data/images/defaulttheme/button'
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
26 size_hint_y: None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 27
diff changeset
27 height: dp(44)
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
28 Image:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
29 size_hint: None, 1
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
30 source: root.plugin_info['icon_medium']
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
31 allow_stretch: True
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
32 width: self.texture_size[0]*self.height/self.texture_size[1]
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
33 Label:
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
34 size_hint: 1, 1
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
35 text: root.plugin_info['name']
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
36 bold: True
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
37 text_size: self.size
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
38 halign: "center"
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
39 valign: "middle"
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
40
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 <HeaderWidgetSelector>:
27
e77b616d3fae cagou widget (selector): fixed size of selector, choices now appear in the correct position
Goffi <goffi@goffi.org>
parents: 25
diff changeset
42 size_hint: 0.3, None
14
21a432afd06d plugin system, first draft:
Goffi <goffi@goffi.org>
parents: 10
diff changeset
43 auto_width: False
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
44
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
45 <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
46 header_input: header_input
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
47 BoxLayout:
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
48 size_hint: 1, None
36
bd3ecac18870 cagou widget, root widget: used of dp to specify distances
Goffi <goffi@goffi.org>
parents: 27
diff changeset
49 height: dp(32)
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
50 HeaderWidgetCurrent:
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
51 on_release: root.selector.open(self)
25
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
52 source: root.plugin_info['icon_small']
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
53 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
54 allow_stretch: True
d09bd16dbbe2 code (cagou widget), selector: icons handling + use of new muchoslava icon set
Goffi <goffi@goffi.org>
parents: 20
diff changeset
55 width: self.texture_size[0]*self.height/self.texture_size[1]
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
56 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
57 id: header_input
10
8b2836b5b6c7 added CagouWidget:
Goffi <goffi@goffi.org>
parents:
diff changeset
58 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
59 on_text_validate: root.onHeaderInput()