### ----------------------------------------------------
### -- Gnome::Gtk3
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman
### -- File: lib/Gnome/Gtk3/StyleContext.rakumod
### ----------------------------------------------------
### -- Chunk 4 of 4
 Num $height )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height

=end pod

sub gtk_render_frame ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_expander:
=begin pod
=head2 [gtk_] render_expander

Renders an expander (as used in B<Gnome::Gtk3::TreeView> and B<Gnome::Gtk3::Expander>) in the area
defined by I<x>, I<y>, I<width>, I<height>. The state C<GTK_STATE_FLAG_CHECKED>
determines whether the expander is collapsed or expanded.

Typical expander rendering:

![](images/expanders.png)

Since: 3.0

  method gtk_render_expander ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height

=end pod

sub gtk_render_expander ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_focus:
=begin pod
=head2 [gtk_] render_focus

Renders a focus indicator on the rectangle determined by I<x>, I<y>, I<width>, I<height>.

Typical focus rendering:

![](images/focus.png)

Since: 3.0

  method gtk_render_focus ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height

=end pod

sub gtk_render_focus ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_layout:
=begin pod
=head2 [gtk_] render_layout

Renders I<layout> on the coordinates I<x>, I<y>

Since: 3.0

  method gtk_render_layout ( N-GObject $context, cairo_t $cr, Num $x, Num $y, PangoLayout $layout )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin
=item Num $y; Y origin
=item PangoLayout $layout; the I<PangoLayout> to render

=end pod

sub gtk_render_layout ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, PangoLayout $layout )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_line:
=begin pod
=head2 [gtk_] render_line

Renders a line from (x0, y0) to (x1, y1).

Since: 3.0

  method gtk_render_line ( N-GObject $context, cairo_t $cr, Num $x0, Num $y0, Num $x1, Num $y1 )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x0; X coordinate for the origin of the line
=item Num $y0; Y coordinate for the origin of the line
=item Num $x1; X coordinate for the end of the line
=item Num $y1; Y coordinate for the end of the line

=end pod

sub gtk_render_line ( N-GObject $context, cairo_t $cr, num64 $x0, num64 $y0, num64 $x1, num64 $y1 )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_slider:
=begin pod
=head2 [gtk_] render_slider

Renders a slider (as in B<Gnome::Gtk3::Scale>) in the rectangle defined by I<x>, I<y>,
I<width>, I<height>. I<orientation> defines whether the slider is vertical
or horizontal.

Typical slider rendering:

![](images/sliders.png)

Since: 3.0

  method gtk_render_slider ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height, GtkOrientation $orientation )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height
=item GtkOrientation $orientation; orientation of the slider

=end pod

sub gtk_render_slider ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height, int32 $orientation )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_extension:
=begin pod
=head2 [gtk_] render_extension

Renders a extension (as in a B<Gnome::Gtk3::Notebook> tab) in the rectangle
defined by I<x>, I<y>, I<width>, I<height>. The side where the extension
connects to is defined by I<gap_side>.

Typical extension rendering:

![](images/extensions.png)

Since: 3.0

  method gtk_render_extension ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height, GtkPositionType $gap_side )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height
=item GtkPositionType $gap_side; side where the gap is

=end pod

sub gtk_render_extension ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height, int32 $gap_side )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_handle:
=begin pod
=head2 [gtk_] render_handle

Renders a handle (as in B<Gnome::Gtk3::HandleBox>, B<Gnome::Gtk3::Paned> and
B<Gnome::Gtk3::Window>’s resize grip), in the rectangle
determined by I<x>, I<y>, I<width>, I<height>.

Handles rendered for the paned and grip classes:

![](images/handles.png)

Since: 3.0

  method gtk_render_handle ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height

=end pod

sub gtk_render_handle ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_activity:
=begin pod
=head2 [gtk_] render_activity

Renders an activity indicator (such as in B<Gnome::Gtk3::Spinner>).
The state C<GTK_STATE_FLAG_CHECKED> determines whether there is
activity going on.

Since: 3.0

  method gtk_render_activity ( N-GObject $context, cairo_t $cr, Num $x, Num $y, Num $width, Num $height )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item Num $x; X origin of the rectangle
=item Num $y; Y origin of the rectangle
=item Num $width; rectangle width
=item Num $height; rectangle height

=end pod

sub gtk_render_activity ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, num64 $width, num64 $height )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_icon:
=begin pod
=head2 [gtk_] render_icon

Renders the icon in I<pixbuf> at the specified I<x> and I<y> coordinates.

This function will render the icon in I<pixbuf> at exactly its size,
regardless of scaling factors, which may not be appropriate when
drawing on displays with high pixel densities.

You probably want to use C<gtk_render_icon_surface()> instead, if you
already have a Cairo surface.

Since: 3.2

  method gtk_render_icon ( N-GObject $context, cairo_t $cr, N-GObject $pixbuf, Num $x, Num $y )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item N-GObject $pixbuf; a B<Gnome::Gdk3::Pixbuf> containing the icon to draw
=item Num $x; X position for the I<pixbuf>
=item Num $y; Y position for the I<pixbuf>

=end pod

sub gtk_render_icon ( N-GObject $context, cairo_t $cr, N-GObject $pixbuf, num64 $x, num64 $y )
  is native(&gtk-lib)
  { * }

#-------------------------------------------------------------------------------
#TM:0:gtk_render_icon_surface:
=begin pod
=head2 [[gtk_] render_] icon_surface

Renders the icon in I<surface> at the specified I<x> and I<y> coordinates.

Since: 3.10

  method gtk_render_icon_surface ( N-GObject $context, cairo_t $cr, cairo_surface_t $surface, Num $x, Num $y )

=item N-GObject $context; a B<Gnome::Gtk3::StyleContext>
=item cairo_t $cr; a I<cairo_t>
=item cairo_surface_t $surface; a I<cairo_surface_t> containing the icon to draw
=item Num $x; X position for the I<icon>
=item Num $y; Y position for the I<incon>

=end pod

sub gtk_render_icon_surface ( N-GObject $context, cairo_t $cr, cairo_surface_t $surface, num64 $x, num64 $y )
  is native(&gtk-lib)
  { * }
}}
#`{{
#-------------------------------------------------------------------------------
#TM:0:gtk_render_insertion_cursor:
=begin pod
=head2 [gtk_] render_insertion_cursor

Draws a text caret on I<cr> at the specified index of I<layout>.

Since: 3.4

  method gtk_render_insertion_cursor ( cairo_t $cr, Num $x, Num $y, PangoLayout $layout, int32 $index, PangoDirection $direction )

=item cairo_t $cr; a C<cairo_t>
=item Num $x; X origin
=item Num $y; Y origin
=item PangoLayout $layout; the C<PangoLayout> of the text
=item int32 $index; the index in the C<PangoLayout>
=item PangoDirection $direction; the C<PangoDirection> of the text

=end pod

sub gtk_render_insertion_cursor ( N-GObject $context, cairo_t $cr, num64 $x, num64 $y, PangoLayout $layout, int32 $index, PangoDirection $direction )
  is native(&gtk-lib)
  { * }
}}

#-------------------------------------------------------------------------------
=begin pod
=begin comment

=head1 Not yet implemented methods

=head3 method gtk_style_context_get_style ( ... )
=head3 method gtk_render_check ( ... )
=head3 method gtk_render_option ( ... )
=head3 method gtk_render_arrow ( ... )
=head3 method gtk_render_background ( ... )
=head3 method gtk_render_frame ( ... )
=head3 method gtk_render_expander ( ... )
=head3 method gtk_render_focus ( ... )
=head3 method gtk_render_layout ( ... )
=head3 method gtk_render_line ( ... )
=head3 method gtk_render_slider ( ... )
=head3 method gtk_render_extension ( ... )
=head3 method gtk_render_handle ( ... )
=head3 method gtk_render_activity ( ... )
=head3 method gtk_render_icon ( ... )
=head3 method gtk_render_icon_surface ( ... )
=head3 method gtk_render_insertion_cursor ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )

=end comment
=end pod

#-------------------------------------------------------------------------------
=begin pod
=begin comment

=head1 Not implemented methods

=head3 method gtk_style_context_get_valist ( ... )
=head3 method gtk_style_context_get ( ... )
=head3 method gtk_style_context_get_style_valist ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )
=head3 method  ( ... )

=end comment
=end pod

#-------------------------------------------------------------------------------
=begin pod
=head1 List of deprecated (not implemented!) methods

=head2 Since 3.4
=head3 method gtk_draw_insertion_cursor ( ... )

=head2 Since 3.6
=head3 method gtk_style_context_state_is_running ( ... )
=head3 method gtk_style_context_notify_state_change ( ... )
=head3 method gtk_style_context_cancel_animations ( ... )
=head3 method gtk_style_context_scroll_animations ( ... )
=head3 method gtk_style_context_push_animatable_region ( ... )
=head3 method gtk_style_context_pop_animatable_region ( ... )

=head2 Since 3.8.
=head3 method gtk_style_context_set_direction ( ... )
=head3 method gtk_style_context_get_direction ( ... )
=head3 method PangoFontDescription ( ... )

=head2 Since 3.10
=head3 method gtk_icon_set_render_icon_pixbuf ( ... )
=head3 method gtk_icon_set_render_icon_surface ( ... )
=head3 method gtk_style_context_lookup_icon_set ( ... )
=head3 method gtk_render_icon_pixbuf ( ... )

=head2 Since 3.12
=head3 method gtk_style_context_invalidate ( ... )

=head2 Since 3.14
=head3 method gtk_style_context_list_regions ( ... )
=head3 method gtk_style_context_add_region ( ... )
=head3 method gtk_style_context_remove_region ( ... )
=head3 method gtk_style_context_has_region ( ... )

=head2 Since 3.16.
=head3 method gtk_style_context_get_background_color ( ... )
=head3 method gtk_style_context_get_border_color ( ... )

=head2 Since 3.18.
=head3 method gtk_style_context_set_background ( ... )

=head2 Since 3.24.
=head3 method gtk_render_frame_gap ( ... )
=end pod

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

Register any signal as follows. See also B<Gnome::GObject::Object>.

  my Bool $is-registered = $my-widget.register-signal (
    $handler-object, $handler-name, $signal-name,
    :$user-option1, ..., :$user-optionN
  )

=begin comment
=head2 Supported signals
=head2 Unsupported signals
=end comment

=head2 Not yet supported signals


=head3 changed

The sig I<changed> signal is emitted when there is a change in the
B<Gnome::Gtk3::StyleContext>.

For a B<Gnome::Gtk3::StyleContext> returned by C<gtk_widget_get_style_context()>, the
sig C<style-updated> signal/vfunc might be more convenient to use.

This signal is useful when using the theming layer standalone.

Since: 3.0

  method handler (
    :$user-option1, ..., :$user-optionN
  );


=end pod

#-------------------------------------------------------------------------------
=begin pod
=head1 Properties

An example of using a string type property of a B<Gnome::Gtk3::Label> object. This is just showing how to set/read a property, not that it is the best way to do it. This is because a) The class initialization often provides some options to set some of the properties and b) the classes provide many methods to modify just those properties. In the case below one can use B<new(:label('my text label'))> or B<gtk_label_set_text('my text label')>.

  my Gnome::Gtk3::Label $label .= new;
  my Gnome::GObject::Value $gv .= new(:init(G_TYPE_STRING));
  $label.g-object-get-property( 'label', $gv);
  $gv.g-value-set-string('my text label');

=begin comment

=head2 Supported properties

=head2 Unsupported properties

=end comment

=head2 Not yet supported properties

=head3 parent

The B<Gnome::GObject::Value> type of property I<parent> is C<G_TYPE_OBJECT>.

Sets or gets the style context’s parent. See C<gtk_style_context_set_parent()>
for details.

Since: 3.4

=end pod


