summaryrefslogtreecommitdiff
path: root/gdk/gdktoplevel.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-02-29 10:07:43 -0500
committerMatthias Clasen <mclasen@redhat.com>2020-03-12 14:56:20 -0400
commitdfbde3da4f53b750c2dbe321ac1b70f6063241fa (patch)
treeb24eaa6fc944c87095d9f15b000fee15ecd74ec7 /gdk/gdktoplevel.h
parentc0c387020b3be2033e6a78cb77640c3e61c13283 (diff)
downloadgtk+-dfbde3da4f53b750c2dbe321ac1b70f6063241fa.tar.gz
Introduce GdkToplevel
This is a new interface for toplevel surfaces.
Diffstat (limited to 'gdk/gdktoplevel.h')
-rw-r--r--gdk/gdktoplevel.h108
1 files changed, 108 insertions, 0 deletions
diff --git a/gdk/gdktoplevel.h b/gdk/gdktoplevel.h
new file mode 100644
index 0000000000..e513ad9adf
--- /dev/null
+++ b/gdk/gdktoplevel.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright © 2020 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors: Matthias Clasen <mclasen@redhat.com>
+ */
+
+#ifndef __GDK_TOPLEVEL_H__
+#define __GDK_TOPLEVEL_H__
+
+#if !defined(__GDK_H_INSIDE__) && !defined(GTK_COMPILATION)
+#error "Only <gdk/gdk.h> can be included directly."
+#endif
+
+#include <gdk/gdksurface.h>
+#include <gdk/gdktoplevellayout.h>
+
+G_BEGIN_DECLS
+
+#define GDK_TYPE_TOPLEVEL (gdk_toplevel_get_type ())
+
+GDK_AVAILABLE_IN_ALL
+G_DECLARE_INTERFACE (GdkToplevel, gdk_toplevel, GDK, TOPLEVEL, GObject)
+
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_toplevel_present (GdkToplevel *toplevel,
+ int width,
+ int height,
+ GdkToplevelLayout *layout);
+
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_toplevel_minimize (GdkToplevel *toplevel);
+
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_toplevel_lower (GdkToplevel *toplevel);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_focus (GdkToplevel *toplevel,
+ guint32 timestamp);
+
+GDK_AVAILABLE_IN_ALL
+GdkSurfaceState gdk_toplevel_get_state (GdkToplevel *toplevel);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_title (GdkToplevel *toplevel,
+ const char *title);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_startup_id (GdkToplevel *toplevel,
+ const char *startup_id);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_transient_for (GdkToplevel *toplevel,
+ GdkSurface *parent);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_modal (GdkToplevel *toplevel,
+ gboolean modal);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_icon_list (GdkToplevel *toplevel,
+ GList *surfaces);
+
+GDK_AVAILABLE_IN_ALL
+gboolean gdk_toplevel_show_window_menu (GdkToplevel *toplevel,
+ GdkEvent *event);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_sticky (GdkToplevel *toplevel,
+ gboolean sticky);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_keep_above (GdkToplevel *toplevel,
+ gboolean above);
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_keep_below (GdkToplevel *toplevel,
+ gboolean below);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_accept_focus (GdkToplevel *toplevel,
+ gboolean accept_focus);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_focus_on_map (GdkToplevel *toplevel,
+ gboolean focus_on_map);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_decorated (GdkToplevel *toplevel,
+ gboolean decorated);
+
+GDK_AVAILABLE_IN_ALL
+void gdk_toplevel_set_deletable (GdkToplevel *toplevel,
+ gboolean deletable);
+G_END_DECLS
+
+#endif /* __GDK_TOPLEVEL_H__ */