<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
               "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
<!ENTITY % local.common.attrib "xmlns:xi  CDATA  #FIXED 'http://www.w3.org/2003/XInclude'">
<!ENTITY version SYSTEM "version.xml">
<!ENTITY pi "&#960;">
<!ENTITY solidus "&#8260;">
]>
<refentry id="GtkEmojiChooser">
<refmeta>
<refentrytitle role="top_of_page" id="GtkEmojiChooser.top_of_page">GtkEmojiChooser</refentrytitle>
<manvolnum>3</manvolnum>
<refmiscinfo>GTK4 Library</refmiscinfo>
</refmeta>
<refnamediv>
<refname>GtkEmojiChooser</refname>
<refpurpose>A popover to choose an Emoji character</refpurpose>
</refnamediv>

<refsect1 id="GtkEmojiChooser.functions" role="functions_proto">
<title role="functions_proto.title">Functions</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="functions_proto_type" colwidth="150px"/>
<colspec colname="functions_proto_name"/>
<tbody>
<row><entry role="function_type"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
</entry><entry role="function_name"><link linkend="gtk-emoji-chooser-new">gtk_emoji_chooser_new</link>&#160;<phrase role="c_punctuation">()</phrase></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkEmojiChooser.signals" role="signal_proto">
<title role="signal_proto.title">Signals</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="signal_proto_type" colwidth="150px"/>
<colspec colname="signal_proto_name" colwidth="300px"/>
<colspec colname="signal_proto_flags" colwidth="200px"/>
<tbody>
<row><entry role="signal_type"><link linkend="void"><returnvalue>void</returnvalue></link></entry><entry role="signal_name"><link linkend="GtkEmojiChooser-emoji-picked">emoji-picked</link></entry><entry role="signal_flags"><link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkEmojiChooser.actions" role="actions">
<title role="actions.title">Actions</title>
<informaltable frame="none">
<tgroup cols="3">
<colspec colname="actions_none" colwidth="150px"/>
<colspec colname="actions_name" colwidth="300px"/>
<colspec colname="actions_param" colwidth="200px"/>
<tbody>
<row><entry></entry><entry role="action_name"><link linkend="GtkEmojiChooser|scroll.section">scroll.section</link></entry><entry role="parameter_type">i</entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkEmojiChooser.other" role="other_proto">
<title role="other_proto.title">Types and Values</title>
<informaltable pgwide="1" frame="none">
<tgroup cols="2">
<colspec colname="other_proto_type" colwidth="150px"/>
<colspec colname="other_proto_name"/>
<tbody>
<row><entry role="datatype_keyword"></entry><entry role="function_name"><link linkend="GtkEmojiChooser-struct">GtkEmojiChooser</link></entry></row>

</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 id="GtkEmojiChooser.object-hierarchy" role="object_hierarchy">
<title role="object_hierarchy.title">Object Hierarchy</title>
<screen>    <link linkend="GObject">GObject</link>
    <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GInitiallyUnowned">GInitiallyUnowned</link>
        <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GtkWidget">GtkWidget</link>
            <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> <link linkend="GtkPopover">GtkPopover</link>
                <phrase role="lineart">&#9584;&#9472;&#9472;</phrase> GtkEmojiChooser
</screen>
</refsect1>
<refsect1 id="GtkEmojiChooser.implemented-interfaces" role="impl_interfaces">
<title role="impl_interfaces.title">Implemented Interfaces</title>
<para>
GtkEmojiChooser implements
 <link linkend="AtkImplementorIface">AtkImplementorIface</link>,  <link linkend="GtkBuildable">GtkBuildable</link>,  <link linkend="GtkConstraintTarget">GtkConstraintTarget</link>,  <link linkend="GtkShortcutManager">GtkShortcutManager</link> and  <link linkend="GtkNative">GtkNative</link>.</para>

</refsect1>

<refsect1 id="GtkEmojiChooser.includes"><title>Includes</title><synopsis>#include &lt;gtk/gtk.h&gt;
</synopsis></refsect1>

<refsect1 id="GtkEmojiChooser.description" role="desc">
<title role="desc.title">Description</title>
<para>The <link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link> popover is used by text widgets such as <link linkend="GtkEntry"><type>GtkEntry</type></link> or
<link linkend="GtkTextView"><type>GtkTextView</type></link> to offer users a convenient way to insert Emoji characters.</para>
<para>GtkEmojiChooser emits the <link linkend="GtkEmojiChooser-emoji-picked"><type>“emoji-picked”</type></link> signal when an
Emoji is selected.</para>
<refsect2><title>CSS nodes</title><informalexample><programlisting role="example"><![CDATA[
popover
╰── box.emoji-toolbar
    ├── button.iamge-button.emoji-section
    ├── ...
    ╰── button.image-button.emoji-section
]]></programlisting></informalexample>
<para></para>
<para>Every <link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link> consists of a main node called popover.
The contents of the popover are largely implementation defined
and supposed to inherit general styles.
The bottom toolbar used to switch between different emoji categories
consists of buttons with the .emoji-section style class and gets the
.emoji-toolbar style class itself.</para>
</refsect2>

</refsect1>
<refsect1 id="GtkEmojiChooser.functions_details" role="details">
<title role="details.title">Functions</title>
<refsect2 id="gtk-emoji-chooser-new" role="function">
<title>gtk_emoji_chooser_new&#160;()</title>
<indexterm zone="gtk-emoji-chooser-new"><primary>gtk_emoji_chooser_new</primary></indexterm>
<programlisting language="C"><link linkend="GtkWidget"><returnvalue>GtkWidget</returnvalue></link>&#160;*
gtk_emoji_chooser_new (<parameter><type>void</type></parameter>);</programlisting>
<para>Creates a new <link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link>.</para>
<refsect3 id="gtk-emoji-chooser-new.returns" role="returns">
<title>Returns</title>
<para> a new <link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link></para>
</refsect3></refsect2>

</refsect1>
<refsect1 id="GtkEmojiChooser.other_details" role="details">
<title role="details.title">Types and Values</title>
<refsect2 id="GtkEmojiChooser-struct" role="struct">
<title>GtkEmojiChooser</title>
<indexterm zone="GtkEmojiChooser-struct"><primary>GtkEmojiChooser</primary></indexterm>
<programlisting language="C">typedef struct _GtkEmojiChooser GtkEmojiChooser;</programlisting>
</refsect2>

</refsect1>
<refsect1 id="GtkEmojiChooser.signal-details" role="signals">
<title role="signals.title">Signal Details</title>
<refsect2 id="GtkEmojiChooser-emoji-picked" role="signal"><title>The <literal>“emoji-picked”</literal> signal</title>
<indexterm zone="GtkEmojiChooser-emoji-picked"><primary>GtkEmojiChooser::emoji-picked</primary></indexterm>
<programlisting language="C"><link linkend="void"><returnvalue>void</returnvalue></link>
user_function (<link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link> *chooser,
               <link linkend="gchar"><type>gchar</type></link>           *text,
               <link linkend="gpointer"><type>gpointer</type></link>         user_data)</programlisting>
<para>The ::emoji-picked signal is emitted when the user selects an
Emoji.</para>
<refsect3 id="GtkEmojiChooser-emoji-picked.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>chooser</para></entry>
<entry role="parameter_description"><para>the <link linkend="GtkEmojiChooser"><type>GtkEmojiChooser</type></link></para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><para>text</para></entry>
<entry role="parameter_description"><para>the Unicode sequence for the picked Emoji, in UTF-8</para></entry>
<entry role="parameter_annotations"></entry></row>
<row><entry role="parameter_name"><simpara>user_data</simpara></entry>
<entry role="parameter_description"><simpara>user data set when the signal handler was connected.</simpara></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3><para>Flags: <link linkend="G-SIGNAL-RUN-LAST:CAPS">Run Last</link></para>
</refsect2>
</refsect1>
<refsect1 id="GtkEmojiChooser.action-details" role="action_details">
<title role="action_details.title">Action Details</title>
<refsect2 id="GtkEmojiChooser|scroll.section" role="action"><title>The <literal>“scroll.section”</literal> action</title>
<indexterm zone="GtkEmojiChooser|scroll.section"><primary>GtkEmojiChooser|scroll.section</primary></indexterm>
<para>Scrolls to the next or previous section.</para>
<para>Parameter type: i</para>
<refsect3 id="GtkEmojiChooser|scroll.section.parameters" role="parameters">
<title>Parameters</title>
<informaltable role="parameters_table" pgwide="1" frame="none">
<tgroup cols="3">
<colspec colname="parameters_name" colwidth="150px"/>
<colspec colname="parameters_description"/>
<colspec colname="parameters_annotations" colwidth="200px"/>
<tbody>
<row><entry role="parameter_name"><para>direction</para></entry>
<entry role="parameter_description"><para>1 to scroll forward, -1 to scroll back</para></entry>
<entry role="parameter_annotations"></entry></row>
</tbody></tgroup></informaltable>
</refsect3></refsect2>

</refsect1>

</refentry>
