Messaging · Stickers and GIFs: a sticker picker and a GIF picker
StickerPicker shows stickers a pack at a time, chosen above with a segmented control; a search spans every pack and keeps the stickers whose names hold it. Arrows move, Enter or a press picks. It reuses the glyph grid, now forms::picks, which takes its columns and cell size and titles from the host, so emoji, icons and stickers share one searchable grid; forms::glyphs keeps the emoji and icon pickers. GifPicker packs host GIFs in two columns, each moving, under a search it owns; the host hears the trimmed words only when they change, and categories fill the search while it is empty. Waiting, it shows tiles in GIF shapes; finding nothing, it says so. Each GIF is a Tab stop that a press, Enter or Space picks. The share toggle now shows its state, as the microphone and camera do. The gallery ships line-drawn stickers and small GIFs made from its own pictures.
This commit is contained in:
1 parent
dd465fedb7
commit
1700a72753
27 files changed
+1212
-288
No files matched your search
@@ -10,6 +10,7 @@ use jiff::{SignedDuration, Timestamp};
|
||||
mod calls;
|
||||
mod messages;
|
||||
mod people;
|
||||
mod pickers;
|
||||
|
||||
use super::Page;
|
||||
use crate::{
|
||||
@@ -61,6 +62,19 @@ const SCRIPT: &[Step] = &[
|
||||
Step::UpAt("messaging-incoming", 24.0, 14.0),
|
||||
Step::Wait(300),
|
||||
Step::Shot("incoming-call"),
|
||||
Step::Key("escape"),
|
||||
Step::Wait(200),
|
||||
Step::DownAt("messaging-stickers", 96.0, 105.0),
|
||||
Step::UpAt("messaging-stickers", 96.0, 105.0),
|
||||
Step::Wait(200),
|
||||
Step::Shot("sticker-sent"),
|
||||
Step::DownAt("messaging-gifs", 127.0, 48.0),
|
||||
Step::UpAt("messaging-gifs", 127.0, 48.0),
|
||||
Step::Wait(300),
|
||||
Step::DownAt("messaging-gifs", 78.0, 120.0),
|
||||
Step::UpAt("messaging-gifs", 78.0, 120.0),
|
||||
Step::Wait(300),
|
||||
Step::Shot("gif-sent"),
|
||||
];
|
||||
|
||||
/// The demo's chats: which is open and what waits unread in each.
|
||||
@@ -252,5 +266,7 @@ fn render(window: &mut Window, cx: &mut App) -> AnyElement {
|
||||
.child(calls::grid(window, cx))
|
||||
.child(calls::share(window, cx))
|
||||
.child(calls::incoming(window, cx))
|
||||
.child(pickers::stickers(window, cx))
|
||||
.child(pickers::gifs(window, cx))
|
||||
.into_any_element()
|
||||
}
|
||||
Reference in new issue
Block a user