### ----------------------------------------------------
### -- Gnome::Gtk3
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman
### -- File: lib/Gnome/Gtk3/Entry.rakumod
### ----------------------------------------------------
### -- Chunk 4 of 5
Object $completion; (allow-none): The B<Gnome::Gtk3::EntryCompletion> or C<Any>

=end pod

sub gtk_entry_set_completion ( N-GObject $entry, N-GObject $completion )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_completion:
=begin pod
=head2 [[gtk_] entry_] get_completion

Returns the auxiliary completion object currently in use by I<entry>.

Returns: (transfer none): The auxiliary completion object currently
in use by I<entry>.

Since: 2.4

  method gtk_entry_get_completion ( --> N-GObject  )


=end pod

sub gtk_entry_get_completion ( N-GObject $entry )
  returns N-GObject
  is native(&gtk-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gtk_entry_layout_index_to_text_index:
=begin pod
=head2 [[gtk_] entry_] layout_index_to_text_index

Converts from a position in the entry contents (returned
by C<gtk_entry_get_text()>) to a position in the
entry’s B<PangoLayout> (returned by C<gtk_entry_get_layout()>,
with text retrieved via C<pango_layout_get_text()>).

Returns: byte index into the entry contents

  method gtk_entry_layout_index_to_text_index ( Int $layout_index --> Int  )

=item Int $layout_index; byte index into the entry layout text

=end pod

sub gtk_entry_layout_index_to_text_index ( N-GObject $entry, int32 $layout_index )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_text_index_to_layout_index:
=begin pod
=head2 [[gtk_] entry_] text_index_to_layout_index

Converts from a position in the entry’s B<PangoLayout> (returned by
C<gtk_entry_get_layout()>) to a position in the entry contents
(returned by C<gtk_entry_get_text()>).

Returns: byte index into the entry layout text

  method gtk_entry_text_index_to_layout_index ( Int $text_index --> Int  )

=item Int $text_index; byte index into the entry contents

=end pod

sub gtk_entry_text_index_to_layout_index ( N-GObject $entry, int32 $text_index )
  returns int32
  is native(&gtk-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_cursor_hadjustment:
=begin pod
=head2 [[gtk_] entry_] set_cursor_hadjustment

Hooks up an adjustment to the cursor position in an entry, so that when
the cursor is moved, the adjustment is scrolled to show that position.
See C<gtk_scrolled_window_get_hadjustment()> for a typical way of obtaining
the adjustment.

The adjustment has to be in pixel units and in the same coordinate system
as the entry.

Since: 2.12

  method gtk_entry_set_cursor_hadjustment ( N-GObject $adjustment )

=item N-GObject $adjustment; (nullable): an adjustment which should be adjusted when the cursor is moved, or C<Any>

=end pod

sub gtk_entry_set_cursor_hadjustment ( N-GObject $entry, N-GObject $adjustment )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_cursor_hadjustment:
=begin pod
=head2 [[gtk_] entry_] get_cursor_hadjustment

Retrieves the horizontal cursor adjustment for the entry.
See C<gtk_entry_set_cursor_hadjustment()>.

Returns: (transfer none) (nullable): the horizontal cursor adjustment, or C<Any>
if none has been set.

Since: 2.12

  method gtk_entry_get_cursor_hadjustment ( --> N-GObject  )


=end pod

sub gtk_entry_get_cursor_hadjustment ( N-GObject $entry )
  returns N-GObject
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_progress_fraction:
=begin pod
=head2 [[gtk_] entry_] set_progress_fraction

Causes the entry’s progress indicator to “fill in” the given
fraction of the bar. The fraction should be between 0.0 and 1.0,
inclusive.

Since: 2.16

  method gtk_entry_set_progress_fraction ( Num $fraction )

=item Num $fraction; fraction of the task that’s been completed

=end pod

sub gtk_entry_set_progress_fraction ( N-GObject $entry, num64 $fraction )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_progress_fraction:
=begin pod
=head2 [[gtk_] entry_] get_progress_fraction

Returns the current fraction of the task that’s been completed.
See C<gtk_entry_set_progress_fraction()>.

Returns: a fraction from 0.0 to 1.0

Since: 2.16

  method gtk_entry_get_progress_fraction ( --> Num  )


=end pod

sub gtk_entry_get_progress_fraction ( N-GObject $entry )
  returns num64
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_progress_pulse_step:
=begin pod
=head2 [[gtk_] entry_] set_progress_pulse_step

Sets the fraction of total entry width to move the progress
bouncing block for each call to C<gtk_entry_progress_pulse()>.

Since: 2.16

  method gtk_entry_set_progress_pulse_step ( Num $fraction )

=item Num $fraction; fraction between 0.0 and 1.0

=end pod

sub gtk_entry_set_progress_pulse_step ( N-GObject $entry, num64 $fraction )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_progress_pulse_step:
=begin pod
=head2 [[gtk_] entry_] get_progress_pulse_step

Retrieves the pulse step set with C<gtk_entry_set_progress_pulse_step()>.

Returns: a fraction from 0.0 to 1.0

Since: 2.16

  method gtk_entry_get_progress_pulse_step ( --> Num  )


=end pod

sub gtk_entry_get_progress_pulse_step ( N-GObject $entry )
  returns num64
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_progress_pulse:
=begin pod
=head2 [[gtk_] entry_] progress_pulse

Indicates that some progress is made, but you don’t know how much.
Causes the entry’s progress indicator to enter “activity mode,”
where a block bounces back and forth. Each call to
C<gtk_entry_progress_pulse()> causes the block to move by a little bit
(the amount of movement per pulse is determined by
C<gtk_entry_set_progress_pulse_step()>).

Since: 2.16

  method gtk_entry_progress_pulse ( )


=end pod

sub gtk_entry_progress_pulse ( N-GObject $entry )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_placeholder_text:
=begin pod
=head2 [[gtk_] entry_] get_placeholder_text

Retrieves the text that will be displayed when I<entry> is empty and unfocused

Returns: a pointer to the placeholder text as a string. This string points to internally allocated
storage in the widget and must not be freed, modified or stored.

Since: 3.2

  method gtk_entry_get_placeholder_text ( --> Str  )


=end pod

sub gtk_entry_get_placeholder_text ( N-GObject $entry )
  returns Str
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_placeholder_text:
=begin pod
=head2 [[gtk_] entry_] set_placeholder_text

Sets text to be displayed in I<entry> when it is empty and unfocused.
This can be used to give a visual hint of the expected contents of
the B<Gnome::Gtk3::Entry>.

Note that since the placeholder text gets removed when the entry
received focus, using this feature is a bit problematic if the entry
is given the initial focus in a window. Sometimes this can be
worked around by delaying the initial focus setting until the
first key event arrives.

Since: 3.2

  method gtk_entry_set_placeholder_text ( Str $text )

=item Str $text; (nullable): a string to be displayed when I<entry> is empty and unfocused, or C<Any>

=end pod

sub gtk_entry_set_placeholder_text ( N-GObject $entry, Str $text )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_from_pixbuf:
=begin pod
=head2 [[gtk_] entry_] set_icon_from_pixbuf

Sets the icon shown in the specified position using a pixbuf.

If I<pixbuf> is C<Any>, no icon will be shown in the specified position.

Since: 2.16

  method gtk_entry_set_icon_from_pixbuf (
    GtkEntryIconPosition $icon_pos, N-GObject $pixbuf
  )

=item GtkEntryIconPosition $icon_pos; Icon position
=item N-GObject $pixbuf; (allow-none): A B<Gnome::Gdk3::Pixbuf>, or C<Any>

=end pod

sub gtk_entry_set_icon_from_pixbuf ( N-GObject $entry, int32 $icon_pos, N-GObject $pixbuf )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_from_icon_name:
=begin pod
=head2 [[gtk_] entry_] set_icon_from_icon_name

Sets the icon shown in the entry at the specified position
from the current icon theme.

If the icon name isn’t known, a “broken image” icon will be displayed
instead.

If I<icon_name> is C<Any>, no icon will be shown in the specified position.

Since: 2.16

  method gtk_entry_set_icon_from_icon_name (
    GtkEntryIconPosition $icon_pos, Str $icon_name
  )

=item GtkEntryIconPosition $icon_pos; The position at which to set the icon
=item Str $icon_name; (allow-none): An icon name, or C<Any>

=end pod

sub gtk_entry_set_icon_from_icon_name ( N-GObject $entry, int32 $icon_pos, Str $icon_name )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_from_gicon:
=begin pod
=head2 [[gtk_] entry_] set_icon_from_gicon

Sets the icon shown in the entry at the specified position
from the current icon theme.
If the icon isn’t known, a “broken image” icon will be displayed
instead.

If I<icon> is C<Any>, no icon will be shown in the specified position.

Since: 2.16

  method gtk_entry_set_icon_from_gicon (
    GtkEntryIconPosition $icon_pos, N-GObject $icon
  )

=item GtkEntryIconPosition $icon_pos; The position at which to set the icon
=item N-GObject $icon; (allow-none): The icon to set, or C<Any>

=end pod

sub gtk_entry_set_icon_from_gicon ( N-GObject $entry, int32 $icon_pos, N-GObject $icon )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_storage_type:
=begin pod
=head2 [[gtk_] entry_] get_icon_storage_type

Gets the type of representation being used by the icon
to store image data. If the icon has no image data,
the return value will be C<GTK_IMAGE_EMPTY>.

Returns: image representation being used

Since: 2.16

  method gtk_entry_get_icon_storage_type (
    GtkEntryIconPosition $icon_pos
    --> GtkImageType
  )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_storage_type ( N-GObject $entry, int32 $icon_pos )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_pixbuf:
=begin pod
=head2 [[gtk_] entry_] get_icon_pixbuf

Retrieves the image used for the icon.

Unlike the other methods of setting and getting icon data, this
method will work regardless of whether the icon was set using a
B<Gnome::Gdk3::Pixbuf>, a B<GIcon>, a stock item, or an icon name.

Returns: (transfer none) (nullable): A B<Gnome::Gdk3::Pixbuf>, or C<Any> if no icon is
set for this position.

Since: 2.16

  method gtk_entry_get_icon_pixbuf (
    GtkEntryIconPosition $icon_pos --> N-GObject
  )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_pixbuf ( N-GObject $entry, int32 $icon_pos )
  returns N-GObject
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_name:
=begin pod
=head2 [[gtk_] entry_] get_icon_name

Retrieves the icon name used for the icon, or C<Any> if there is
no icon or if the icon was set by some other method (e.g., by
pixbuf, stock or gicon).

Returns: (nullable): An icon name, or C<Any> if no icon is set or if the icon
wasn’t set from an icon name

Since: 2.16

  method gtk_entry_get_icon_name ( GtkEntryIconPosition $icon_pos --> Str )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_name ( N-GObject $entry, int32 $icon_pos )
  returns Str
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_gicon:
=begin pod
=head2 [[gtk_] entry_] get_icon_gicon

Retrieves the B<GIcon> used for the icon, or C<Any> if there is
no icon or if the icon was set by some other method (e.g., by
stock, pixbuf, or icon name).

Returns: (transfer none) (nullable): A B<GIcon>, or C<Any> if no icon is set
or if the icon is not a B<GIcon>

Since: 2.16

  method gtk_entry_get_icon_gicon (
    GtkEntryIconPosition $icon_pos --> N-GObject
  )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_gicon ( N-GObject $entry, int32 $icon_pos )
  returns N-GObject
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_activatable:
=begin pod
=head2 [[gtk_] entry_] set_icon_activatable

Sets whether the icon is activatable.

Since: 2.16

  method gtk_entry_set_icon_activatable (
    GtkEntryIconPosition $icon_pos, Int $activatable
  )

=item GtkEntryIconPosition $icon_pos; Icon position
=item Int $activatable; C<1> if the icon should be activatable

=end pod

sub gtk_entry_set_icon_activatable ( N-GObject $entry, int32 $icon_pos, int32 $activatable )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_activatable:
=begin pod
=head2 [[gtk_] entry_] get_icon_activatable

Returns whether the icon is activatable.

Returns: C<1> if the icon is activatable.

Since: 2.16

  method gtk_entry_get_icon_activatable (
    GtkEntryIconPosition $icon_pos --> Int
  )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_activatable ( N-GObject $entry, int32 $icon_pos )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_sensitive:
=begin pod
=head2 [[gtk_] entry_] set_icon_sensitive

Sets the sensitivity for the specified icon.

Since: 2.16

  method gtk_entry_set_icon_sensitive (
    GtkEntryIconPosition $icon_pos, Int $sensitive
  )

=item GtkEntryIconPosition $icon_pos; Icon position
=item Int $sensitive; Specifies whether the icon should appear sensitive or insensitive

=end pod

sub gtk_entry_set_icon_sensitive ( N-GObject $entry, int32 $icon_pos, int32 $sensitive )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_sensitive:
=begin pod
=head2 [[gtk_] entry_] get_icon_sensitive

Returns whether the icon appears sensitive or insensitive.

Returns: C<1> if the icon is sensitive.

Since: 2.16

  method gtk_entry_get_icon_sensitive (
    GtkEntryIconPosition $icon_pos --> Int
  )

=item GtkEntryIconPosition $icon_pos; Icon position

=end pod

sub gtk_entry_get_icon_sensitive ( N-GObject $entry, int32 $icon_pos )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_at_pos:
=begin pod
=head2 [[gtk_] entry_] get_icon_at_pos

Finds the icon at the given position and return its index. The
position’s coordinates are relative to the I<entry>’s top left corner.
If I<x>, I<y> doesn’t lie inside an icon, -1 is returned.
This function is intended for use in a  I<query-tooltip>
signal handler.

Returns: the index of the icon at the given position, or -1

Since: 2.16

  method gtk_entry_get_icon_at_pos ( Int $x, Int $y --> Int  )

=item Int $x; the x coordinate of the position to find
=item Int $y; the y coordinate of the position to find

=end pod

sub gtk_entry_get_icon_at_pos ( N-GObject $entry, int32 $x, int32 $y )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_tooltip_text:
=begin pod
=head2 [[gtk_] entry_] set_icon_tooltip_text

Sets I<tooltip> as the contents of the tooltip for the icon
at the specified position.

Use C<Any> for I<tooltip> to remove an existing tooltip.

See also C<gtk_widget_set_tooltip_text()> and
C<gtk_entry_set_icon_tooltip_markup()>.

Since: 2.16

  method gtk_entry_set_icon_tooltip_text (
    GtkEntryIconPosition $icon_pos, Str $tooltip
  )

=item GtkEntryIconPosition $icon_pos; the icon position
=item Str $tooltip; (allow-none): the contents of the tooltip for the icon, or C<Any>

=end pod

sub gtk_entry_set_icon_tooltip_text ( N-GObject $entry, int32 $icon_pos, Str $tooltip )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_tooltip_text:
=begin pod
=head2 [[gtk_] entry_] get_icon_tooltip_text

Gets the contents of the tooltip on the icon at the specified
position in I<entry>.

Returns: (nullable): the tooltip text, or C<Any>. Free the returned
string with C<g_free()> when done.

Since: 2.16

  method gtk_entry_get_icon_tooltip_text (
    GtkEntryIconPosition $icon_pos --> Str
  )

=item GtkEntryIconPosition $icon_pos; the icon position

=end pod

sub gtk_entry_get_icon_tooltip_text ( N-GObject $entry, int32 $icon_pos )
  returns Str
  is native(&gtk-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_tooltip_markup:
=begin pod
=head2 [[gtk_] entry_] set_icon_tooltip_markup

Sets I<tooltip> as the contents of the tooltip for the icon at
the specified position. I<tooltip> is assumed to be marked up with
the [Pango text markup language][PangoMarkupFormat].

Use C<Any> for I<tooltip> to remove an existing tooltip.

See also C<gtk_widget_set_tooltip_markup()> and
C<gtk_entry_set_icon_tooltip_text()>.

Since: 2.16

  method gtk_entry_set_icon_tooltip_markup ( GtkEntryIconPosition $icon_pos, Str $tooltip )

=item GtkEntryIconPosition $icon_pos; the icon position
=item Str $tooltip; (allow-none): the contents of the tooltip for the icon, or C<Any>

=end pod

sub gtk_entry_set_icon_tooltip_markup ( N-GObject $entry, int32 $icon_pos, Str $tooltip )
  is native(&gtk-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_tooltip_markup:
=begin pod
=head2 [[gtk_] entry_] get_icon_tooltip_markup

Gets the contents of the tooltip on the icon at the specified
position in I<entry>.

Returns: (nullable): the tooltip text, or C<Any>. Free the returned
string with C<g_free()> when done.

Since: 2.16

  method gtk_entry_get_icon_tooltip_markup (
    GtkEntryIconPosition $icon_pos --> Str
  )

=item GtkEntryIconPosition $icon_pos; the icon position

=end pod

sub gtk_entry_get_icon_tooltip_markup ( N-GObject $entry, int32 $icon_pos )
  returns Str
  is native(&gtk-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_icon_drag_source:
=begin pod
=head2 [[gtk_] entry_] set_icon_drag_source

Sets up the icon at the given position so that GTK+ will start a drag
operation when the user clicks and drags the icon.

To handle the drag operation, you need to connect to the usual
 I<drag-data-get> (or possibly  I<drag-data-delete>)
signal, and use C<gtk_entry_get_current_icon_drag_source()> in
your signal handler to find out if the drag was started from
an icon.

By default, GTK+ uses the icon as the drag icon. You can use the
 I<drag-begin> signal to set a different icon. Note that you
have to use C<g_signal_connect_after()> to ensure that your signal handler
gets executed after the default handler.

Since: 2.16

  method gtk_entry_set_icon_drag_source (
    GtkEntryIconPosition $icon_pos, N-GtkTargetList $target_list,
    GdkDragAction $actions
  )

=item GtkEntryIconPosition $icon_pos; icon position
=item N-GtkTargetList $target_list; the targets (data formats) in which the data can be provided
=item GdkDragAction $actions; a bitmask of the allowed drag actions

=end pod

sub gtk_entry_set_icon_drag_source ( N-GObject $entry, int32 $icon_pos, N-GtkTargetList $target_list, GdkDragAction $actions )
  is native(&gtk-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_current_icon_drag_source:
=begin pod
=head2 [[gtk_] entry_] get_current_icon_drag_source

Returns the index of the icon which is the source of the current
DND operation, or -1.

This function is meant to be used in a  I<drag-data-get>
callback.

Returns: index of the icon which is the source of the current
DND operation, or -1.

Since: 2.16

  method gtk_entry_get_current_icon_drag_source ( --> Int  )


=end pod

sub gtk_entry_get_current_icon_drag_source ( N-GObject $entry )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_icon_area:
=begin pod
=head2 [[gtk_] entry_] get_icon_area

Gets the area where entry’s icon at I<icon_pos> is drawn.
This function is useful when drawing something to the
entry in a draw callback.

If the entry is not realized or has no icon at the given position,
I<icon_area> is filled with zeros.

See also C<gtk_entry_get_text_area()>

Since: 3.0

  method gtk_entry_get_icon_area (
    GtkEntryIconPosition $icon_pos, N-GObject $icon_area
  )

=item GtkEntryIconPosition $icon_pos; Icon position
=item N-GObject $icon_area; (out): Return location for the icon’s area

=end pod

sub gtk_entry_get_icon_area ( N-GObject $entry, int32 $icon_pos, N-GObject $icon_area )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_im_context_filter_keypress:
=begin pod
=head2 [[gtk_] entry_] im_context_filter_keypress

Allow the B<Gnome::Gtk3::Entry> input method to internally handle key press
and release events. If this function returns C<1>, then no further
processing should be done for this key event. See
C<gtk_im_context_filter_keypress()>.

Note that you are expected to call this function from your handler
when overriding key event handling. This is needed in the case when
you need to insert your own key handling between the input method
and the default key event handling of the B<Gnome::Gtk3::Entry>.
See C<gtk_text_view_reset_im_context()> for an example of use.

Returns: C<1> if the input method handled the key event.

Since: 2.22

  method gtk_entry_im_context_filter_keypress ( N-GdkEventKey $event --> Int  )

=item N-GdkEventKey $event; (type B<Gnome::Gdk3::.EventKey>): the key event

=end pod

sub gtk_entry_im_context_filter_keypress ( N-GObject $entry, N-GdkEventKey $event )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_reset_im_context:
=begin pod
=head2 [[gtk_] entry_] reset_im_context

Reset the input method context of the entry if needed.

This can be necessary in the case where modifying the buffer
would confuse on-going input method behavior.

Since: 2.22

  method gtk_entry_reset_im_context ( )


=end pod

sub gtk_entry_reset_im_context ( N-GObject $entry )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_input_purpose:
=begin pod
=head2 [[gtk_] entry_] set_input_purpose

Sets the  I<input-purpose> property which
can be used by on-screen keyboards and other input
methods to adjust their behaviour.

Since: 3.6

  method gtk_entry_set_input_purpose ( GtkInputPurpose $purpose )

=item GtkInputPurpose $purpose; the purpose

=end pod

sub gtk_entry_set_input_purpose ( N-GObject $entry, int32 $purpose )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_input_purpose:
=begin pod
=head2 [[gtk_] entry_] get_input_purpose

Gets the value of the  I<input-purpose> property.

Since: 3.6

  method gtk_entry_get_input_purpose ( --> GtkInputPurpose  )


=end pod

sub gtk_entry_get_input_purpose ( N-GObject $entry )
  returns int32
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_input_hints:
=begin pod
=head2 [[gtk_] entry_] set_input_hints

Sets the  I<input-hints> property, which
allows input methods to fine-tune their behaviour.

Since: 3.6

  method gtk_entry_set_input_hints ( GtkInputHints $hints )

=item GtkInputHints $hints; the hints

=end pod

sub gtk_entry_set_input_hints ( N-GObject $entry, int32 $hints )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_input_hints:
=begin pod
=head2 [[gtk_] entry_] get_input_hints

Gets the value of the  I<input-hints> property.

Since: 3.6

  method gtk_entry_get_input_hints ( --> GtkInputHints  )


=end pod

sub gtk_entry_get_input_hints ( N-GObject $entry )
  returns int32
  is native(&gtk-lib)
  { * }

#`{{
#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_attributes:
=begin pod
=head2 [[gtk_] entry_] set_attributes

Sets a B<PangoAttrList>; the attributes in the list are applied to the
entry text.

Since: 3.6

  method gtk_entry_set_attributes ( PangoAttrList $attrs )

=item PangoAttrList $attrs; a B<PangoAttrList>

=end pod

sub gtk_entry_set_attributes ( N-GObject $entry, PangoAttrList $attrs )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_attributes:
=begin pod
=head2 [[gtk_] entry_] get_attributes

Gets the attribute list that was set on the entry using
C<gtk_entry_set_attributes()>, if any.

Returns: (transfer none) (nullable): the attribute list, or C<Any>
if none was set.

Since: 3.6

  method gtk_entry_get_attributes ( --> PangoAttrList  )


=end pod

sub gtk_entry_get_attributes ( N-GObject $entry )
  returns PangoAttrList
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_set_tabs:
=begin pod
=head2 [[gtk_] entry_] set_tabs

Sets a B<PangoTabArray>; the tabstops in the array are applied to the entry
text.

Since: 3.10

  method gtk_entry_set_tabs ( PangoTabArray $tabs )

=item PangoTabArray $tabs; a B<PangoTabArray>

=end pod

sub gtk_entry_set_tabs ( N-GObject $entry, PangoTabArray $tabs )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_get_tabs:
=begin pod
=head2 [[gtk_] entry_] get_tabs

Gets the tabstops that were set on the entry using C<gtk_entry_set_tabs()>, if
any.

Returns: (nullable) (transfer none): the tabstops, or C<Any> if none was set.

Since: 3.10

  method gtk_entry_get_tabs ( --> PangoTabArray  )


=end pod

sub gtk_entry_get_tabs ( N-GObject $entry )
  returns PangoTabArray
  is native(&gtk-lib)
  { * }
}}

#-------------------------------------------------------------------------------
#TM:0:gtk_entry_grab_focus_without_selecting:
=begin pod
=head2 [[gtk_] entry_] grab_focus_without_selecting

Causes I<entry> to have keyboard focus.

It behaves like C<gtk_widget_grab_focus()>,
except that it doesn't select the contents of the entry.
You only want to call this on some special entries
which the user usually doesn't want to replace all text in,
such as search-as-you-type entries.

Since: 3.16

  method gtk_entry_grab_focus_without_selecting ( )


=end pod

sub gtk_entry_grab_focus_without_selecting ( N-GObject $entry )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
=begin pod
=head1 Signals

There are two ways to connect to a signal. The first option you have is to use C<register-signal()> from B<Gnome::GObject::Object>. The second option is to use C<g_signal_connect_object()> directly from B<Gnome::GObject::Signal>.

=head2 First method

The positional arguments of the signal handler are all obligatory as well as their types. The named attributes C<:$widget> and user data are optional.

  # handler method
  method mouse-event ( N-GdkEvent $event, :$widget ) { ... }

  # connect a signal on window object
  my Gnome::Gtk3::Window $w .= new( ... );
  $w.register-signal( self, 'mouse-event', 'button-press-event');

=head2 Second method

  my Gnome::Gtk3::Window $w .= new( ... );
  my Callable $handler = sub (
    N-GObject $native, N-GdkEvent $event, OpaquePointer $data
  ) {
    ...
  }

  $w.connect-object( 'button-press-event', $handler);

Also here, the types of positional arguments in the signal handler are important. This is because both methods C<register-signal()> and C<g_signal_connect_object()> are using the signatures of the handler routines to setup the native call interface.

=head2 Supported signals


=comment #TS:0:tabs:
=head3 tabs

A list of tabstops to apply to the text of the entry.

Since: 3.8

  method handler (
    ,
    *%user-options
  );


=comment #TS:0:populate-popup:
=head3 populate-popup

The I<populate-popup> signal gets emitted before showing the
context menu of the entry.

If you need to add items to the context menu, connect
to this signal and append your items to the I<widget>, which
will be a B<Gnome::Gtk3::Menu> in this case.

If  I<populate-all> is C<1>, this signal will
also be emitted to populate touch popups. In this case,
I<widget> will be a different container, e.g. a B<Gnome::Gtk3::Toolbar>.
The signal handler should not make assumptions about the
type of I<widget>.

  method handler (
    - $popup,
    Int :$_handler_id,
    Gnome::GObject::Object :_widget($entry),
    *%user-options
  );

=item $entry; The entry on which the signal is emitted

=item $popup; the container that is being populated


=comment #TS:0:activate:
=head3 activate

The I<activate> signal is emitted when the user hits
the Enter key.

While this signal is used as a
[keybinding signal][B<Gnome::Gtk3::BindingSignal>],
it is also commonly used by applications to intercept
activation of entries.

The default bindings for this signal are all forms of the Enter key.

  method handler (
    Int :$_handler_id,
    Gnome::GObject::Object :_widget($entry),
    *%user-options
  );

=item $entry; The entry on which the signal is emitted


=comment #TS:0:move-cursor:
=head3 move-cursor

The I<move-cursor> signal is a
[keybinding signal][B<Gnome::Gtk3::BindingSignal>]
which gets emitted when the user initiates a cursor movement.
If the cursor is not visible in I<entry>, this signal causes
the viewport to be moved instead.

Applications should not connect to it, but may emit it with
C<g_signal_emit_by_name()> if they need to control the cursor
programmatically.

The default bindings for this signal come in two variants,
the variant with the Shift modifier extends the selection,
the variant without the Shift modifer does not.
There are too many key combinations to list them all here.
- Arrow keys move by individual characters/lines
- Ctrl-arrow key combinations move by words/paragraphs
- Home/End keys move to the ends of the buffer

  method handler (
    Str $step,
    - $count,
    - $extend_selection,
    Int :$_handler_id,
    Gnome::GObject::Object :_widget($entry),
    *%user-options
  );

=item $entry; the object which received the signal

=item $step; the granularity of the move, as a B<Gnome::Gtk3::MovementStep>

=item $count; the number of I<step> units to move

=item $extend_selection; C<1> if the move should extend the selection


=comment #TS:0:insert-at-cursor:
=head3 insert-at-cursor

The I<insert-at-cursor> signal is a
[keybinding signal][B<Gnome::Gtk3::BindingSignal>]
which gets emitted when the user initiates the insertion of a
fixed string at the cursor.

This signal has no default bindings.

  method handler (
    Unknown type GTK_TYPE_DELETE_TYPE $string,
    Int :$_handler_id,
    Gnome::GObject::Object :_widget($entry),
    *%user-options
  );

=item $entry; the object which received the signal

=item $string; the string to insert


=comment #TS:0:delete-from-cursor:
=head3 delete-from-cursor

The I<delete-from-cursor> signal is a
[keybinding signal][B<Gnome::Gtk3::BindingSignal>]
which gets emitted when the user initiates a text deletion.

If the I<type> is C<GTK_DELETE_CHARS>, GTK+ deletes the selection
if there is one, otherwise it deletes the requested number
of characters.

The default bindings for this signal are
Delete for deleting a character and Ctrl-Delete for
deleting a word.

  method handler (
    - $type,
    - $count,
    Int :$_handler_id,
    Gnome::GObject::Object :_widget($entry),
    *%user-options
  );

=item $entry; the object which received the signal

=item $type; the granularity of the deletion, as a B<Gnome::Gtk3::DeleteType>

=item $count; the number of I<type> units to delete


=comment #TS:0:backspace:
=head3 backspace

The I<backspace> signal is a
[keybinding signal][B<Gnome::Gtk3::BindingSignal>