summaryrefslogtreecommitdiff
path: root/gtk/gtknativeprivate.h
blob: 31e1335e9b44e9c45d365de2c7261529562d95f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#pragma once

#include "gtknative.h"

G_BEGIN_DECLS

/**
 * GtkNativeIface:
 *
 * The list of functions that must be implemented for the `GtkNative` interface.
 */
struct _GtkNativeInterface
{
  /*< private >*/
  GTypeInterface g_iface;

  /*< public >*/
  GdkSurface *  (* get_surface)           (GtkNative    *self);
  GskRenderer * (* get_renderer)          (GtkNative    *self);

  void          (* get_surface_transform) (GtkNative    *self,
                                           double       *x,
                                           double       *y);

  void          (* layout)                (GtkNative    *self,
                                           int           width,
                                           int           height);
};

void    gtk_native_queue_relayout         (GtkNative    *native);
void    gtk_native_update_opaque_region   (GtkNative    *native,
                                           GtkWidget    *contents,
                                           gboolean      subtract_decoration_corners,
                                           gboolean      subtract_shadow,
                                           int           resize_handle_size);

G_END_DECLS