Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
ximper-welcome
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Ximper Linux
ximper-welcome
Commits
4a1a7b18
You need to sign in or sign up before continuing.
Commit
4a1a7b18
authored
Jul 12, 2020
by
Bilal Elmoussaoui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
use hdy Deck/Carousel to simplify the code
parent
ce7b9a4e
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
299 additions
and
213 deletions
+299
-213
Cargo.lock
Cargo.lock
+137
-16
Cargo.toml
Cargo.toml
+4
-1
org.gnome.TourDevel.json
build-aux/org.gnome.TourDevel.json
+26
-2
application.rs
src/application.rs
+6
-2
main.rs
src/main.rs
+1
-0
meson.build
src/meson.build
+0
-1
headerbar.rs
src/widgets/headerbar.rs
+0
-78
mod.rs
src/widgets/mod.rs
+0
-1
welcome.rs
src/widgets/pages/welcome.rs
+20
-8
paginator.rs
src/widgets/paginator.rs
+75
-41
window.rs
src/widgets/window.rs
+30
-63
No files found.
Cargo.lock
View file @
4a1a7b18
...
@@ -19,7 +19,7 @@ version = "0.9.0"
...
@@ -19,7 +19,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"atk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"atk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -38,8 +38,18 @@ dependencies = [
...
@@ -38,8 +38,18 @@ dependencies = [
]
]
[[package]]
[[package]]
name = "atty"
version = "0.2.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "bitflags"
name = "bitflags"
version = "1.
1.0
"
version = "1.
2.1
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
...
@@ -47,7 +57,7 @@ name = "cairo-rs"
...
@@ -47,7 +57,7 @@ name = "cairo-rs"
version = "0.9.1"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -82,6 +92,18 @@ version = "1.5.3"
...
@@ -82,6 +92,18 @@ version = "1.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
name = "env_logger"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
"humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
"termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "futures"
name = "futures"
version = "0.3.5"
version = "0.3.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -172,7 +194,7 @@ name = "gdk"
...
@@ -172,7 +194,7 @@ name = "gdk"
version = "0.13.0"
version = "0.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -250,7 +272,7 @@ name = "gio"
...
@@ -250,7 +272,7 @@ name = "gio"
version = "0.9.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -281,7 +303,7 @@ name = "glib"
...
@@ -281,7 +303,7 @@ name = "glib"
version = "0.10.1"
version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
"futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -322,12 +344,15 @@ dependencies = [
...
@@ -322,12 +344,15 @@ dependencies = [
name = "gnome-tour"
name = "gnome-tour"
version = "0.0.1"
version = "0.0.1"
dependencies = [
dependencies = [
"anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gettext-rs 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gettext-rs 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)",
"libhandy 1.0.0 (git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
"pretty_env_logger 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
]
[[package]]
[[package]]
...
@@ -346,7 +371,7 @@ version = "0.9.0"
...
@@ -346,7 +371,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"atk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"atk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
"cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -393,6 +418,22 @@ dependencies = [
...
@@ -393,6 +418,22 @@ dependencies = [
]
]
[[package]]
[[package]]
name = "hermit-abi"
version = "0.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "humantime"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "itertools"
name = "itertools"
version = "0.9.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -402,7 +443,7 @@ dependencies = [
...
@@ -402,7 +443,7 @@ dependencies = [
[[package]]
[[package]]
name = "lazy_static"
name = "lazy_static"
version = "1.
3
.0"
version = "1.
4
.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
...
@@ -411,18 +452,58 @@ version = "0.2.59"
...
@@ -411,18 +452,58 @@ version = "0.2.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
name = "libhandy"
version = "1.0.0"
source = "git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git#8e83a51344d981f0cdb6a643ae3b6fc63b328d96"
dependencies = [
"bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
"libhandy-sys 1.0.0 (git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git)",
"pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "libhandy-sys"
version = "1.0.0"
source = "git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git#8e83a51344d981f0cdb6a643ae3b6fc63b328d96"
dependencies = [
"gdk 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-pixbuf-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gdk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gio-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gtk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)",
"pango-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
"system-deps 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "locale_config"
name = "locale_config"
version = "0.2.3"
version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"lazy_static 1.
3
.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.
4
.0 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
"regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
]
[[package]]
[[package]]
name = "log"
name = "log"
version = "0.4.
7
"
version = "0.4.
8
"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
"cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -443,7 +524,7 @@ name = "pango"
...
@@ -443,7 +524,7 @@ name = "pango"
version = "0.9.0"
version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"bitflags 1.
1.0
(registry+https://github.com/rust-lang/crates.io-index)",
"bitflags 1.
2.1
(registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"glib-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
"gobject-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
...
@@ -492,6 +573,15 @@ version = "0.3.14"
...
@@ -492,6 +573,15 @@ version = "0.3.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
name = "pretty_env_logger"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
"log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "proc-macro-crate"
name = "proc-macro-crate"
version = "0.1.5"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -547,6 +637,11 @@ dependencies = [
...
@@ -547,6 +637,11 @@ dependencies = [
]
]
[[package]]
[[package]]
name = "quick-error"
version = "1.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
name = "quote"
name = "quote"
version = "1.0.2"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -635,6 +730,14 @@ dependencies = [
...
@@ -635,6 +730,14 @@ dependencies = [
]
]
[[package]]
[[package]]
name = "termcolor"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "thiserror"
name = "thiserror"
version = "1.0.20"
version = "1.0.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -657,7 +760,7 @@ name = "thread_local"
...
@@ -657,7 +760,7 @@ name = "thread_local"
version = "0.3.6"
version = "0.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
dependencies = [
"lazy_static 1.
3
.0 (registry+https://github.com/rust-lang/crates.io-index)",
"lazy_static 1.
4
.0 (registry+https://github.com/rust-lang/crates.io-index)",
]
]
[[package]]
[[package]]
...
@@ -713,6 +816,14 @@ version = "0.4.0"
...
@@ -713,6 +816,14 @@ version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
[[package]]
[[package]]
name = "winapi-util"
version = "0.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
dependencies = [
"winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
]
[[package]]
name = "winapi-x86_64-pc-windows-gnu"
name = "winapi-x86_64-pc-windows-gnu"
version = "0.4.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -722,12 +833,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -722,12 +833,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
"checksum anyhow 1.0.31 (registry+https://github.com/rust-lang/crates.io-index)" = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
"checksum atk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
"checksum atk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "812b4911e210bd51b24596244523c856ca749e6223c50a7fbbba3f89ee37c426"
"checksum atk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
"checksum atk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f530e4af131d94cc4fa15c5c9d0348f0ef28bac64ba660b6b2a1cf2605dedfce"
"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
"checksum cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
"checksum cairo-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c5c0f2e047e8ca53d0ff249c54ae047931d7a6ebe05d00af73e0ffeb6e34bdb8"
"checksum cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
"checksum cairo-sys-rs 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2ed2639b9ad5f1d6efa76de95558e11339e7318426d84ac4890b86c03e828ca7"
"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
"checksum cc 1.0.37 (registry+https://github.com/rust-lang/crates.io-index)" = "39f75544d7bbaf57560d2168f28fd649ff9c76153874db88bdbdfd839b1a7e7d"
"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
"checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
"checksum futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
"checksum futures 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
...
@@ -752,11 +865,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -752,11 +865,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum gtk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3adf6adf7ba686d5e4f4dae32edfa12118af9469f67425f0afd075bf4a58ea9d"
"checksum gtk 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3adf6adf7ba686d5e4f4dae32edfa12118af9469f67425f0afd075bf4a58ea9d"
"checksum gtk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
"checksum gtk-sys 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "89acda6f084863307d948ba64a4b1ef674e8527dddab147ee4cdcc194c880457"
"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
"checksum itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
"checksum itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
"checksum lazy_static 1.
3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14
"
"checksum lazy_static 1.
4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646
"
"checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff"
"checksum libc 0.2.59 (registry+https://github.com/rust-lang/crates.io-index)" = "3262021842bf00fe07dbd6cf34ff25c99d7a7ebef8deea84db72be3ea3bb0aff"
"checksum libhandy 1.0.0 (git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git)" = "<none>"
"checksum libhandy-sys 1.0.0 (git+https://gitlab.gnome.org/World/Rust/libhandy-rs.git)" = "<none>"
"checksum locale_config 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
"checksum locale_config 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
"checksum log 0.4.
7 (registry+https://github.com/rust-lang/crates.io-index)" = "c275b6ad54070ac2d665eef9197db647b32239c9d244bfb6f041a766d00da5b3
"
"checksum log 0.4.
8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7
"
"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
"checksum pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "460dbe5ad850c46780ba61f142e966beacf5eebb09822830f796c91d7d4fec31"
"checksum pango 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "460dbe5ad850c46780ba61f142e966beacf5eebb09822830f796c91d7d4fec31"
...
@@ -765,12 +882,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -765,12 +882,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7"
"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
"checksum pkg-config 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "676e8eb2b1b4c9043511a9b7bea0915320d7e502b0a079fb03f9635a5252b18c"
"checksum pretty_env_logger 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "926d36b9553851b8b0005f1275891b392ee4d2d833852c417ed025477350fb9d"
"checksum proc-macro-crate 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
"checksum proc-macro-crate 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785"
"checksum proc-macro-error 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
"checksum proc-macro-error 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
"checksum proc-macro-error-attr 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
"checksum proc-macro-error-attr 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
"checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
"checksum proc-macro-hack 0.5.11 (registry+https://github.com/rust-lang/crates.io-index)" = "ecd45702f76d6d3c75a80564378ae228a85f0b59d2f3ed43c91b4a69eb2ebfc5"
"checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
"checksum proc-macro-nested 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "369a6ed065f249a159e06c45752c780bda2fb53c995718f9e484d08daa9eb42e"
"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
"checksum regex 1.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d9d8297cc20bbb6184f8b45ff61c8ee6a9ac56c156cec8e38c3e5084773c44ad"
"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21"
"checksum regex-syntax 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9b01330cce219c1c6b2e209e5ed64ccd587ae5c67bed91c0b49eecf02ae40e21"
...
@@ -781,6 +900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -781,6 +900,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
"checksum syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
"checksum syn-mid 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
"checksum system-deps 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
"checksum system-deps 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0f3ecc17269a19353b3558b313bba738b25d82993e30d62a18406a24aba4649b"
"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
"checksum thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
"checksum thiserror 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
"checksum thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
"checksum thiserror-impl 1.0.20 (registry+https://github.com/rust-lang/crates.io-index)" = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
...
@@ -793,4 +913,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
...
@@ -793,4 +913,5 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
Cargo.toml
View file @
4a1a7b18
...
@@ -10,4 +10,7 @@ gdk = "0.13"
...
@@ -10,4 +10,7 @@ gdk = "0.13"
gtk
=
{
version
=
"0.9"
,
features=
["v3_16"]
}
gtk
=
{
version
=
"0.9"
,
features=
["v3_16"]
}
gio
=
"0.9"
gio
=
"0.9"
log
=
"0.4"
log
=
"0.4"
gettext-rs
=
{
version
=
"0.4"
,
features
=
["gettext-system"]
}
gettext-rs
=
{
version
=
"0.4"
,
features
=
["gettext-system"]
}
libhandy
=
{
git
=
"https://gitlab.gnome.org/World/Rust/libhandy-rs.git"
}
pretty_env_logger
=
"0.4"
anyhow
=
"1.0"
build-aux/org.gnome.TourDevel.json
View file @
4a1a7b18
...
@@ -14,7 +14,11 @@
...
@@ -14,7 +14,11 @@
"--share=ipc"
,
"--share=ipc"
,
"--socket=fallback-x11"
,
"--socket=fallback-x11"
,
"--socket=wayland"
,
"--socket=wayland"
,
"--device=dri"
"--device=dri"
,
"--filesystem=xdg-run/dconf"
,
"--filesystem=~/.config/dconf:ro"
,
"--talk-name=ca.desrt.dconf"
,
"--env=DCONF_USER_CONFIG_DIR=.config/dconf"
],
],
"build-options"
:
{
"build-options"
:
{
"append-path"
:
"/usr/lib/sdk/rust-stable/bin"
,
"append-path"
:
"/usr/lib/sdk/rust-stable/bin"
,
...
@@ -26,7 +30,27 @@
...
@@ -26,7 +30,27 @@
"RUST_BACKTRACE"
:
"1"
"RUST_BACKTRACE"
:
"1"
}
}
},
},
"modules"
:
[
"modules"
:
[{
"name"
:
"libhandy"
,
"buildsystem"
:
"meson"
,
"config-opts"
:
[
"-Dintrospection=disabled"
,
"-Dgtk_doc=false"
,
"-Dtests=false"
,
"-Dexamples=false"
,
"-Dvapi=false"
,
"-Dglade_catalog=disabled"
],
"cleanup"
:
[
"/include"
,
"/lib/pkgconfig"
],
"sources"
:
[{
"type"
:
"git"
,
"url"
:
"https://gitlab.gnome.org/GNOME/libhandy.git"
,
"branch"
:
"0.83.0"
}]
},
{
{
"name"
:
"gnome-tour"
,
"name"
:
"gnome-tour"
,
"buildsystem"
:
"meson"
,
"buildsystem"
:
"meson"
,
...
...
src/application.rs
View file @
4a1a7b18
...
@@ -58,7 +58,9 @@ impl Application {
...
@@ -58,7 +58,9 @@ impl Application {
"next-page"
,
"next-page"
,
clone!
(
@
strong
application
=>
move
|
_
,
_
|
{
clone!
(
@
strong
application
=>
move
|
_
,
_
|
{
if
let
Some
(
window
)
=
&*
application
.window
.borrow
()
.clone
()
{
if
let
Some
(
window
)
=
&*
application
.window
.borrow
()
.clone
()
{
window
.next_page
();
if
window
.paginator
.borrow_mut
()
.next
()
.is_err
()
{
window
.widget
.close
();
}
}
}
}),
}),
);
);
...
@@ -67,7 +69,9 @@ impl Application {
...
@@ -67,7 +69,9 @@ impl Application {
"previous-page"
,
"previous-page"
,
clone!
(
@
strong
application
=>
move
|
_
,
_
|
{
clone!
(
@
strong
application
=>
move
|
_
,
_
|
{
if
let
Some
(
window
)
=
&*
application
.window
.borrow
()
.clone
()
{
if
let
Some
(
window
)
=
&*
application
.window
.borrow
()
.clone
()
{
window
.previous_page
();
if
window
.paginator
.borrow_mut
()
.previous
()
.is_err
()
{
window
.stop_tour
();
}
}
}
}),
}),
);
);
...
...
src/main.rs
View file @
4a1a7b18
...
@@ -15,6 +15,7 @@ use application::Application;
...
@@ -15,6 +15,7 @@ use application::Application;
use
config
::{
GETTEXT_PACKAGE
,
LOCALEDIR
};
use
config
::{
GETTEXT_PACKAGE
,
LOCALEDIR
};
fn
main
()
{
fn
main
()
{
pretty_env_logger
::
init
();
// Prepare i18n
// Prepare i18n
setlocale
(
LocaleCategory
::
LcAll
,
""
);
setlocale
(
LocaleCategory
::
LcAll
,
""
);
bindtextdomain
(
GETTEXT_PACKAGE
,
LOCALEDIR
);
bindtextdomain
(
GETTEXT_PACKAGE
,
LOCALEDIR
);
...
...
src/meson.build
View file @
4a1a7b18
...
@@ -39,7 +39,6 @@ sources = files(
...
@@ -39,7 +39,6 @@ sources = files(
'widgets/pages/image.rs',
'widgets/pages/image.rs',
'widgets/pages/mod.rs',
'widgets/pages/mod.rs',
'widgets/pages/welcome.rs',
'widgets/pages/welcome.rs',
'widgets/headerbar.rs',
'widgets/mod.rs',
'widgets/mod.rs',
'widgets/paginator.rs',
'widgets/paginator.rs',
'widgets/window.rs',
'widgets/window.rs',
...
...
src/widgets/headerbar.rs
deleted
100644 → 0
View file @
ce7b9a4e
use
gettextrs
::
gettext
;
use
gtk
::
prelude
::
*
;
pub
struct
HeaderBar
{
pub
widget
:
gtk
::
Stack
,
headerbar
:
gtk
::
HeaderBar
,
title
:
gtk
::
Label
,
next_btn
:
gtk
::
Button
,
}
impl
HeaderBar
{
pub
fn
new
()
->
Self
{
let
widget
=
gtk
::
Stack
::
new
();
let
headerbar
=
gtk
::
HeaderBar
::
new
();
let
title
=
gtk
::
Label
::
new
(
None
);
let
next_btn
=
gtk
::
Button
::
new
();
let
headerbar
=
Self
{
widget
,
headerbar
,
title
,
next_btn
};
headerbar
.init
();
headerbar
}
pub
fn
start_tour
(
&
self
)
{
self
.widget
.set_visible_child_name
(
"pages"
);
self
.headerbar
.set_show_close_button
(
false
);
}
pub
fn
set_page_nr
(
&
self
,
page_nr
:
i32
,
total_pages
:
i32
)
{
if
page_nr
==
total_pages
{
self
.next_btn
.set_label
(
&
gettext
(
"Close"
));
}
else
{
self
.next_btn
.set_label
(
&
gettext
(
"Next"
));
}
}
pub
fn
set_page_title
(
&
self
,
title
:
&
str
)
{
self
.title
.set_label
(
title
);
}
pub
fn
end_tour
(
&
self
)
{
self
.widget
.set_visible_child_name
(
"welcome"
);
self
.headerbar
.set_show_close_button
(
true
);
}
fn
init
(
&
self
)
{
self
.headerbar
.set_show_close_button
(
true
);
self
.headerbar
.set_custom_title
(
Some
(
&
self
.title
));
self
.title
.get_style_context
()
.add_class
(
"title"
);
self
.widget
.set_hexpand
(
true
);
self
.widget
.set_transition_type
(
gtk
::
StackTransitionType
::
SlideLeftRight
);
self
.widget
.set_transition_duration
(
300
);
self
.widget
.get_style_context
()
.add_class
(
"titlebar"
);
let
container
=
gtk
::
HeaderBar
::
new
();
container
.set_show_close_button
(
true
);
container
.set_title
(
Some
(
&
gettext
(
"Welcome Tour"
)));
self
.widget
.add_named
(
&
container
,
"welcome"
);
let
previous_btn
=
gtk
::
Button
::
new
();
previous_btn
.add
(
&
gtk
::
Label
::
new
(
Some
(
"Previous"
)));
previous_btn
.set_halign
(
gtk
::
Align
::
Start
);
previous_btn
.set_action_name
(
Some
(
"app.previous-page"
));
previous_btn
.set_hexpand
(
true
);
previous_btn
.set_property_width_request
(
60
);
self
.next_btn
.add
(
&
gtk
::
Label
::
new
(
Some
(
&
gettext
(
"Next"
))));
self
.next_btn
.get_style_context
()
.add_class
(
"suggested-action"
);
self
.next_btn
.set_action_name
(
Some
(
"app.next-page"
));
self
.next_btn
.set_halign
(
gtk
::
Align
::
End
);
self
.next_btn
.set_hexpand
(
true
);
self
.next_btn
.set_property_width_request
(
60
);
self
.headerbar
.pack_start
(
&
previous_btn
);
self
.headerbar
.pack_end
(
&
self
.next_btn
);
self
.widget
.add_named
(
&
self
.headerbar
,
"pages"
);
}
}
src/widgets/mod.rs
View file @
4a1a7b18
mod
headerbar
;
mod
pages
;
mod
pages
;
mod
paginator
;
mod
paginator
;
mod
window
;
mod
window
;
...
...
src/widgets/pages/welcome.rs
View file @
4a1a7b18
use
gettextrs
::
gettext
;
use
gettextrs
::
gettext
;
use
gtk
::
prelude
::
*
;
use
gtk
::
prelude
::
*
;
use
libhandy
::
prelude
::
HeaderBarExt
;
pub
struct
WelcomePageWidget
{
pub
struct
WelcomePageWidget
{
pub
widget
:
gtk
::
Box
,
pub
widget
:
gtk
::
Box
,
...
@@ -16,10 +17,14 @@ impl WelcomePageWidget {
...
@@ -16,10 +17,14 @@ impl WelcomePageWidget {
}
}
fn
init
(
&
self
)
{
fn
init
(
&
self
)
{
self
.widget
.set_valign
(
gtk
::
Align
::
Center
);
self
.widget
.set_property_expand
(
true
);
self
.widget
.set_halign
(
gtk
::
Align
::
Center
);
self
.widget
.set_margin_top
(
24
);
let
container
=
gtk
::
Box
::
new
(
gtk
::
Orientation
::
Vertical
,
0
);
self
.widget
.set_margin_bottom
(
24
);
container
.set_property_expand
(
true
);
container
.set_valign
(
gtk
::
Align
::
Center
);
container
.set_halign
(
gtk
::
Align
::
Center
);
container
.set_margin_top
(
24
);
container
.set_margin_bottom
(
24
);
let
name
=
glib
::
get_os_info
(
"NAME"
)
.unwrap_or
(
"GNOME"
.into
());
let
name
=
glib
::
get_os_info
(
"NAME"
)
.unwrap_or
(
"GNOME"
.into
());
let
version
=
glib
::
get_os_info
(
"VERSION"
)
.unwrap_or
(
"3.36"
.into
());
let
version
=
glib
::
get_os_info
(
"VERSION"
)
.unwrap_or
(
"3.36"
.into
());
...
@@ -27,17 +32,17 @@ impl WelcomePageWidget {
...
@@ -27,17 +32,17 @@ impl WelcomePageWidget {
let
logo
=
gtk
::
Image
::
from_icon_name
(
Some
(
&
icon
),
gtk
::
IconSize
::
Dialog
);
let
logo
=
gtk
::
Image
::
from_icon_name
(
Some
(
&
icon
),
gtk
::
IconSize
::
Dialog
);
logo
.set_pixel_size
(
196
);
logo
.set_pixel_size
(
196
);
self
.widget
.add
(
&
logo
);
container
.add
(
&
logo
);
let
title
=
gtk
::
Label
::
new
(
Some
(
&
gettext
(
format!
(
"Welcome to {} {}"
,
name
,
version
))));
let
title
=
gtk
::
Label
::
new
(
Some
(
&
gettext
(
format!
(
"Welcome to {} {}"
,
name
,
version
))));
title
.set_margin_top
(
36
);
title
.set_margin_top
(
36
);
title
.get_style_context
()
.add_class
(
"large-title"
);
title
.get_style_context
()
.add_class
(
"large-title"
);
self
.widget
.add
(
&
title
);
container
.add
(
&
title
);
let
text
=
gtk
::
Label
::
new
(
Some
(
&
gettext
(
"Hi there! If you are new to GNOME, you can take the tour to learn some essential features."
)));
let
text
=
gtk
::
Label
::
new
(
Some
(
&
gettext
(
"Hi there! If you are new to GNOME, you can take the tour to learn some essential features."
)));
text
.get_style_context
()
.add_class
(
"body"
);
text
.get_style_context
()
.add_class
(
"body"
);
text
.set_margin_top
(
12
);
text
.set_margin_top
(
12
);
self
.widget
.add
(
&
text
);
container
.add
(
&
text
);
let
actions_container
=
gtk
::
Box
::
new
(
gtk
::
Orientation
::
Horizontal
,
12
);
let
actions_container
=
gtk
::
Box
::
new
(
gtk
::
Orientation
::
Horizontal
,
12
);
actions_container
.set_halign
(
gtk
::
Align
::
Center
);
actions_container
.set_halign
(
gtk
::
Align
::
Center
);
...
@@ -60,6 +65,13 @@ impl WelcomePageWidget {
...
@@ -60,6 +65,13 @@ impl WelcomePageWidget {
actions_container
.add
(
&
start_tour_btn
);
actions_container
.add
(
&
start_tour_btn
);
actions_container
.set_focus_child
(
Some
(
&
start_tour_btn
));
actions_container
.set_focus_child
(
Some
(
&
start_tour_btn
));
self
.widget
.add
(
&
actions_container
);
container
.add
(
&
actions_container
);
let
headerbar
=
libhandy
::
HeaderBar
::
new
();
headerbar
.set_show_close_button
(
true
);
headerbar
.set_title
(
Some
(
&
gettext
(
"Welcome Tour"
)));
self
.widget
.add
(
&
headerbar
);
self
.widget
.add
(
&
container
);
}
}
}
}
src/widgets/paginator.rs
View file @
4a1a7b18
use
anyhow
::
Result
;
use
gettextrs
::
gettext
;
use
gtk
::
prelude
::
*
;
use
gtk
::
prelude
::
*
;
use
std
::
cell
::
RefCell
;
use
std
::
cell
::
RefCell
;
use
std
::
convert
::
TryInto
;
use
std
::
rc
::
Rc
;
use
super
::
pages
::
Pageable
;
use
super
::
pages
::
Pageable
;
use
libhandy
::
prelude
::{
CarouselExt
,
HeaderBarExt
};
pub
struct
PaginatorWidget
{
pub
struct
PaginatorWidget
{
pub
widget
:
gtk
::
Stack
,
pub
widget
:
gtk
::
Box
,
pages
:
Vec
<
Box
<
dyn
Pageable
>>
,
carousel
:
libhandy
::
Carousel
,
current_page
:
RefCell
<
i32
>
,
headerbar
:
libhandy
::
HeaderBar
,
pages
:
RefCell
<
Vec
<
Box
<
dyn
Pageable
>>>
,
current_page
:
RefCell
<
u32
>
,
next_btn
:
gtk
::
Button
,
}
}
impl
PaginatorWidget
{
impl
PaginatorWidget
{
pub
fn
new
()
->
Self
{
pub
fn
new
()
->
Rc
<
Self
>
{
let
widget
=
gtk
::
Stack
::
new
(
);
let
widget
=
gtk
::
Box
::
new
(
gtk
::
Orientation
::
Vertical
,
0
);
let
paginator
=
Self
{
let
paginator
=
Rc
::
new
(
Self
{
widget
,
widget
,
pages
:
Vec
::
new
(),
carousel
:
libhandy
::
Carousel
::
new
(),
current_page
:
RefCell
::
new
(
1
),
headerbar
:
libhandy
::
HeaderBar
::
new
(),
};
next_btn
:
gtk
::
Button
::
new
(),
paginator
.init
();
pages
:
RefCell
::
new
(
Vec
::
new
()),
current_page
:
RefCell
::
new
(
0
),
});
paginator
.init
(
paginator
.clone
());
paginator
paginator
}
}
pub
fn
get_total_pages
(
&
self
)
->
i32
{
pub
fn
next
(
&
self
)
->
Result
<
()
>
{
self
.pages
.len
()
.try_into
()
.unwrap_or
(
1
)
let
p
=
*
self
.current_page
.borrow
()
+
1
;
if
p
==
self
.carousel
.get_n_pages
()
{
anyhow
::
bail!
(
"Already at the latest page"
);
}
}
self
.set_page
(
p
);
pub
fn
get_current_page_nr
(
&
self
)
->
i32
{
Ok
(())
*
self
.current_page
.borrow
()
}
}
pub
fn
get_current_page
(
&
self
)
->
Option
<&
Box
<
dyn
Pageable
>>
{
pub
fn
previous
(
&
self
)
->
Result
<
()
>
{
let
current_page_idx
:
usize
=
(
self
.get_current_page_nr
()
-
1
)
.try_into
()
.unwrap_or
(
0
);
let
p
=
*
self
.current_page
.borrow
();
self
.pages
.get
(
current_page_idx
)
if
p
==
0
{
anyhow
::
bail!
(
"Already at the first page"
);
}
}
self
.set_page
(
p
-
1
);
pub
fn
next
(
&
self
)
{
Ok
(())
let
next_page
=
*
self
.current_page
.borrow
()
+
1
;
self
.go_to
(
next_page
);
}
}
pub
fn
previous
(
&
self
)
{
pub
fn
add_page
(
&
self
,
page
:
Box
<
dyn
Pageable
>
)
{
let
previous_page
=
*
self
.current_page
.borrow
()
-
1
;
let
page_nr
=
self
.pages
.borrow
()
.len
();
self
.go_to
(
previous_page
);
self
.carousel
.insert
(
&
page
.get_widget
(),
page_nr
as
i32
);
self
.pages
.borrow_mut
()
.push
(
page
);
}
}
pub
fn
add_page
(
&
mut
self
,
page
:
Box
<
dyn
Pageable
>
)
{
fn
init
(
&
self
,
p
:
Rc
<
Self
>
)
{
let
page_nr
=
self
.pages
.len
()
+
1
;
self
.carousel
.set_property_expand
(
true
)
;
let
page_name
=
format!
(
"page-{}"
,
page_nr
);
self
.carousel
.set_animation_duration
(
300
);
self
.widget
.add_named
(
&
page
.get_widget
(),
&
page_name
);
self
.carousel
.connect_page_changed
(
clone!
(
@
weak
p
=>
move
|
carousel
,
page_nr
|
{
self
.pages
.push
(
page
);
let
pages
=
&
p
.pages
.borrow
();
}
let
page
=
pages
.get
(
page_nr
as
usize
)
.unwrap
();
p
.headerbar
.set_title
(
Some
(
&
page
.get_title
()));
fn
init
(
&
self
)
{
if
page_nr
==
carousel
.get_n_pages
()
-
1
{
self
.widget
.set_transition_type
(
gtk
::
StackTransitionType
::
SlideLeftRight
);
p
.next_btn
.set_label
(
&
gettext
(
"Close"
));
self
.widget
.set_transition_duration
(
300
);
}
else
{
p
.next_btn
.set_label
(
&
gettext
(
"Next"
));
}
}
p
.current_page
.replace
(
page_nr
);
}));
let
previous_btn
=
gtk
::
Button
::
new
();
previous_btn
.add
(
&
gtk
::
Label
::
new
(
Some
(
"Previous"
)));
previous_btn
.set_halign
(
gtk
::
Align
::
Start
);
previous_btn
.set_action_name
(
Some
(
"app.previous-page"
));
previous_btn
.set_hexpand
(
true
);
previous_btn
.set_property_width_request
(
60
);
fn
go_to
(
&
self
,
page_nr
:
i32
)
{
self
.next_btn
.add
(
&
gtk
::
Label
::
new
(
Some
(
&
gettext
(
"Next"
))));
let
page_name
=
format!
(
"page-{}"
,
page_nr
);
self
.next_btn
.get_style_context
()
.add_class
(
"suggested-action"
);
let
total_pages
:
i32
=
self
.pages
.len
()
.try_into
()
.unwrap_or
(
0
);
self
.next_btn
.set_action_name
(
Some
(
"app.next-page"
));
self
.next_btn
.set_halign
(
gtk
::
Align
::
End
);
self
.next_btn
.set_hexpand
(
true
);
self
.next_btn
.set_property_width_request
(
60
);
self
.headerbar
.pack_start
(
&
previous_btn
);
self
.headerbar
.pack_end
(
&
self
.next_btn
);
self
.headerbar
.set_show_close_button
(
false
);
self
.widget
.add
(
&
self
.headerbar
);
self
.widget
.add
(
&
self
.carousel
);
}
if
page_nr
<=
total_pages
&&
self
.widget
.get_child_by_name
(
&
page_name
)
.is_some
()
{
pub
fn
set_page
(
&
self
,
page_nr
:
u32
)
{
self
.current_page
.replace
(
page_nr
);
if
page_nr
<
self
.carousel
.get_n_pages
()
{
self
.widget
.set_visible_child_name
(
&
page_name
);
let
pages
=
&
self
.pages
.borrow
();
let
page
=
pages
.get
(
page_nr
as
usize
)
.unwrap
();
self
.carousel
.scroll_to
(
&
page
.get_widget
());
}
}
}
}
}
}
src/widgets/window.rs
View file @
4a1a7b18
use
gettextrs
::
gettext
;
use
gettextrs
::
gettext
;
use
gtk
::
prelude
::
*
;
use
gtk
::
prelude
::
*
;
use
std
::
cell
::
RefCell
;
use
std
::
rc
::
Rc
;
use
super
::
headerbar
::
HeaderBar
;
use
super
::
pages
::{
ImagePageWidget
,
WelcomePageWidget
};
use
super
::
pages
::{
ImagePageWidget
,
WelcomePageWidget
};
use
super
::
paginator
::
PaginatorWidget
;
use
super
::
paginator
::
PaginatorWidget
;
use
crate
::
config
::
PROFILE
;
use
crate
::
config
::
PROFILE
;
use
libhandy
::
prelude
::
DeckExt
;
pub
struct
Window
{
pub
struct
Window
{
pub
widget
:
gtk
::
ApplicationWindow
,
pub
widget
:
libhandy
::
ApplicationWindow
,
container
:
gtk
::
Sta
ck
,
deck
:
libhandy
::
De
ck
,
headerbar
:
HeaderBar
,
pub
paginator
:
RefCell
<
Rc
<
PaginatorWidget
>>
,
paginator
:
Paginator
Widget
,
welcome_page
:
WelcomePage
Widget
,
}
}
impl
Window
{
impl
Window
{
pub
fn
new
(
app
:
&
gtk
::
Application
)
->
Self
{
pub
fn
new
(
app
:
&
gtk
::
Application
)
->
Self
{
let
widget
=
gtk
::
ApplicationWindow
::
new
(
app
);
let
widget
=
libhandy
::
ApplicationWindow
::
new
();
let
container
=
gtk
::
Stack
::
new
();
widget
.set_application
(
Some
(
app
));
let
headerbar
=
HeaderBar
::
new
();
let
paginator
=
PaginatorWidget
::
new
();
let
deck
=
libhandy
::
Deck
::
new
();
let
paginator
=
RefCell
::
new
(
PaginatorWidget
::
new
());
let
mut
window_widget
=
Window
{
let
mut
window_widget
=
Window
{
widget
,
widget
,
container
,
deck
,
headerbar
,
welcome_page
:
WelcomePageWidget
::
new
()
,
paginator
,
paginator
,
};
};
...
@@ -32,91 +35,55 @@ impl Window {
...
@@ -32,91 +35,55 @@ impl Window {
}
}
pub
fn
start_tour
(
&
self
)
{
pub
fn
start_tour
(
&
self
)
{
if
let
Some
(
page
)
=
self
.paginator
.get_current_page
()
{
self
.deck
.set_visible_child
(
&
self
.paginator
.borrow
()
.widget
);
self
.headerbar
.set_page_title
(
&
page
.get_title
());
self
.paginator
.borrow_mut
()
.set_page
(
0
);
}
self
.container
.set_visible_child_name
(
"pages"
);
self
.headerbar
.start_tour
();
}
fn
end_tour
(
&
self
)
{
self
.container
.set_visible_child_name
(
"welcome"
);
self
.headerbar
.end_tour
();
}
pub
fn
next_page
(
&
self
)
{
let
total_pages
=
self
.paginator
.get_total_pages
();
let
current_page
=
self
.paginator
.get_current_page_nr
();
self
.headerbar
.set_page_nr
(
current_page
+
1
,
total_pages
);
if
current_page
==
total_pages
{
self
.widget
.close
();
}
else
{
self
.paginator
.next
();
}
if
let
Some
(
page
)
=
self
.paginator
.get_current_page
()
{
self
.headerbar
.set_page_title
(
&
page
.get_title
());
}
}
}
pub
fn
previous_page
(
&
self
)
{
pub
fn
stop_tour
(
&
self
)
{
let
total_pages
=
self
.paginator
.get_total_pages
();
self
.paginator
.borrow_mut
()
.set_page
(
0
);
let
current_page
=
self
.paginator
.get_current_page_nr
();
self
.deck
.set_visible_child
(
&
self
.welcome_page.widget
);
self
.headerbar
.set_page_nr
(
current_page
-
1
,
total_pages
);
match
current_page
{
1
=>
self
.end_tour
(),
_
=>
self
.paginator
.previous
(),
}
if
let
Some
(
page
)
=
self
.paginator
.get_current_page
()
{
self
.headerbar
.set_page_title
(
&
page
.get_title
());
}
}
}
fn
init
(
&
mut
self
)
{
fn
init
(
&
mut
self
)
{
self
.widget
.set_default_size
(
920
,
640
);
self
.widget
.set_default_size
(
920
,
640
);
self
.
container
.set_transition_type
(
gtk
::
StackTransitionType
::
SlideLeftRight
);
self
.
deck
.set_transition_type
(
libhandy
::
DeckTransitionType
::
Slide
);
self
.
container
.set_transition_duration
(
300
);
self
.
deck
.set_transition_duration
(
300
);
// Devel Profile
// Devel Profile
if
PROFILE
==
"Devel"
{
if
PROFILE
==
"Devel"
{
self
.widget
.get_style_context
()
.add_class
(
"devel"
);
self
.widget
.get_style_context
()
.add_class
(
"devel"
);
}
}
self
.widget
.set_titlebar
(
Some
(
&
self
.headerbar.widget
));
self
.deck
.add
(
&
self
.welcome_page.widget
);
let
welcome_page
=
WelcomePageWidget
::
new
();
self
.container
.add_named
(
&
welcome_page
.widget
,
"welcome"
);
self
.paginator
.add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
self
.paginator
.
borrow
()
.
add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
"/org/gnome/Tour/activities.svg"
,
"/org/gnome/Tour/activities.svg"
,
gettext
(
"Activities Overview"
),
gettext
(
"Activities Overview"
),
gettext
(
"Open Activities to start apps"
),
gettext
(
"Open Activities to start apps"
),
gettext
(
"You can also view open windows, search and use workspaces."
),
gettext
(
"You can also view open windows, search and use workspaces."
),
)));
)));
self
.paginator
.add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
self
.paginator
.
borrow_mut
()
.
add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
"/org/gnome/Tour/search.svg"
,
"/org/gnome/Tour/search.svg"
,
gettext
(
"Search"
),
gettext
(
"Search"
),
gettext
(
"In the Activities Overview, just start typing to search"
),
gettext
(
"In the Activities Overview, just start typing to search"
),
gettext
(
"Search can be used to launch apps, find settings, do calculations and much more."
),
gettext
(
"Search can be used to launch apps, find settings, do calculations and much more."
),
)));
)));
self
.paginator
.add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
self
.paginator
.
borrow_mut
()
.
add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
"/org/gnome/Tour/calendar.svg"
,
"/org/gnome/Tour/calendar.svg"
,
gettext
(
"Date & Time"
),
gettext
(
"Date & Time"
),
gettext
(
"Click the time to see your now and next"
),
gettext
(
"Click the time to see your now and next"
),
gettext
(
"This includes notifications, media controls, calendar events, the weather and world clocks."
),
gettext
(
"This includes notifications, media controls, calendar events, the weather and world clocks."
),
)));
)));
self
.paginator
.add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
self
.paginator
.
borrow_mut
()
.
add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
"/org/gnome/Tour/status-menu.svg"
,
"/org/gnome/Tour/status-menu.svg"
,
gettext
(
"System Menu"
),
gettext
(
"System Menu"
),
gettext
(
"View system information and settings"
),
gettext
(
"View system information and settings"
),
gettext
(
"Get an overview of the system status and quickly change settings."
),
gettext
(
"Get an overview of the system status and quickly change settings."
),
)));
)));
self
.paginator
.add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
self
.paginator
.
borrow_mut
()
.
add_page
(
Box
::
new
(
ImagePageWidget
::
new
(
"/org/gnome/Tour/software.svg"
,
"/org/gnome/Tour/software.svg"
,
gettext
(
"Software"
),
gettext
(
"Software"
),
gettext
(
"Find and install apps"
),
gettext
(
"Find and install apps"
),
...
@@ -130,9 +97,9 @@ impl Window {
...
@@ -130,9 +97,9 @@ impl Window {
gettext
(
"The help app contains information, tips and tricks."
),
gettext
(
"The help app contains information, tips and tricks."
),
);
);
last_page
.widget
.get_style_context
()
.add_class
(
"last-page"
);
last_page
.widget
.get_style_context
()
.add_class
(
"last-page"
);
self
.paginator
.add_page
(
Box
::
new
(
last_page
));
self
.paginator
.
borrow_mut
()
.
add_page
(
Box
::
new
(
last_page
));
self
.
container
.add_named
(
&
self
.paginator.widget
,
"pages"
);
self
.
deck
.add
(
&
self
.paginator
.borrow
()
.widget
);
self
.widget
.add
(
&
self
.
container
);
self
.widget
.add
(
&
self
.
deck
);
}
}
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment