summaryrefslogtreecommitdiff
path: root/gdk/gdktoplevelprivate.h
blob: 2d1f0122f36fb98d1cf8b9ef8b8d7bf25ebb0df0 (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef __GDK_TOPLEVEL_PRIVATE_H__
#define __GDK_TOPLEVEL_PRIVATE_H__

#include "gdktoplevel.h"
#include "gdktoplevelsizeprivate.h"

#include <graphene.h>

G_BEGIN_DECLS


struct _GdkToplevelInterface
{
  GTypeInterface g_iface;

  void          (* present)             (GdkToplevel       *toplevel,
                                         GdkToplevelLayout *layout);
  gboolean      (* minimize)            (GdkToplevel       *toplevel);
  gboolean      (* lower)               (GdkToplevel       *toplevel);
  void          (* focus)               (GdkToplevel       *toplevel,
                                         guint32            timestamp);
  gboolean      (* show_window_menu)    (GdkToplevel       *toplevel,
                                         GdkEvent          *event);
  gboolean      (* supports_edge_constraints) (GdkToplevel *toplevel);
  void          (* inhibit_system_shortcuts)  (GdkToplevel *toplevel,
                                               GdkEvent    *event);
  void          (* restore_system_shortcuts)  (GdkToplevel *toplevel);
  void          (* begin_resize)        (GdkToplevel       *toplevel,
                                         GdkSurfaceEdge     edge,
                                         GdkDevice         *device,
                                         int                button,
                                         double             x,
                                         double             y,
                                         guint32            timestamp);
  void          (* begin_move)          (GdkToplevel       *toplevel,
                                         GdkDevice         *device,
                                         int                button,
                                         double             x,
                                         double             y,
                                         guint32            timestamp);
  gboolean      (* titlebar_gesture)    (GdkToplevel       *toplevel,
                                         GdkTitlebarGesture gesture);
};

typedef enum
{
  GDK_TOPLEVEL_PROP_STATE,
  GDK_TOPLEVEL_PROP_TITLE,
  GDK_TOPLEVEL_PROP_STARTUP_ID,
  GDK_TOPLEVEL_PROP_TRANSIENT_FOR,
  GDK_TOPLEVEL_PROP_MODAL,
  GDK_TOPLEVEL_PROP_ICON_LIST,
  GDK_TOPLEVEL_PROP_DECORATED,
  GDK_TOPLEVEL_PROP_DELETABLE,
  GDK_TOPLEVEL_PROP_FULLSCREEN_MODE,
  GDK_TOPLEVEL_PROP_SHORTCUTS_INHIBITED,
  GDK_TOPLEVEL_NUM_PROPERTIES
} GdkToplevelProperties;

guint gdk_toplevel_install_properties (GObjectClass *object_class,
                                       guint         first_prop);

void gdk_toplevel_notify_compute_size (GdkToplevel     *toplevel,
                                       GdkToplevelSize *size);

G_END_DECLS

#endif /* __GDK_TOPLEVEL_PRIVATE_H__ */