keyboard: Add Emoji keyboard

This keyboard works similar to GTK+'s emoji chooser (actually, both pull
from the same JSON file). Emojis are categorized in sections and variants
and kept in a "model".

The EmojiPager actor then uses this model to generate pages on-the-fly as
the user swipes around. This is an important optimization since the amount
of actors would rival with the rest of the shell otherwise.

The EmojiSelection object puts the EmojiPager, the page indicators and
a KeyContainer with the bottom row of emoji section shortcuts together to
implement the emoji panel as a whole.

The Keyboard object hooked this to an "emoji" key, which is just visible
on the Clutter.InputContentPurpose where showing an emoji would be
meaningful. Otherwise the surrounding buttons are made a bit wider to
cover up for it (i.e. as it was before).
This commit is contained in:
Carlos Garnacho 2017-12-22 16:02:51 +01:00 committed by Florian Müllner
parent fab390826e
commit 42ae052da7
4 changed files with 16246 additions and 6 deletions

15740
data/emoji.json Normal file

File diff suppressed because it is too large Load diff