[gtk/wip/otte/boxes: 5/20] gtk: Add the GtkRoot interface
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/otte/boxes: 5/20] gtk: Add the GtkRoot interface
- Date: Fri, 15 Feb 2019 05:20:16 +0000 (UTC)
commit 2c9c43545fc3ebba9d24229f24c9bca87e45fdc5
Author: Benjamin Otte <otte redhat com>
Date: Fri Apr 6 20:21:06 2018 +0200
gtk: Add the GtkRoot interface
So far, this doesn't do anything.
gtk/gtk.h | 1 +
gtk/gtkroot.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
gtk/gtkroot.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++
gtk/gtktypes.h | 1 +
gtk/meson.build | 2 ++
5 files changed, 101 insertions(+)
---
diff --git a/gtk/gtk.h b/gtk/gtk.h
index c79f1a9dfb..368ce0ca69 100644
--- a/gtk/gtk.h
+++ b/gtk/gtk.h
@@ -176,6 +176,7 @@
#include <gtk/gtkrecentmanager.h>
#include <gtk/gtkrender.h>
#include <gtk/gtkrevealer.h>
+#include <gtk/gtkroot.h>
#include <gtk/gtkscale.h>
#include <gtk/gtkscalebutton.h>
#include <gtk/gtkscrollable.h>
diff --git a/gtk/gtkroot.c b/gtk/gtkroot.c
new file mode 100644
index 0000000000..3eecc97ec6
--- /dev/null
+++ b/gtk/gtkroot.c
@@ -0,0 +1,44 @@
+/*
+ * Copyright © 2018 Benjamin Otte
+ *
+ * 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: Benjamin Otte <otte gnome org>
+ */
+
+#include "config.h"
+
+#include "gtkroot.h"
+
+/**
+ * SECTION:root
+ * @Title: GtkRoot
+ * @Short_description: Root widgets
+ * @See_also: #GtkWindow
+ *
+ * #GtkRoot is the interface implemented by all widgets that can act as a toplevel
+ * widget to a hierarchy of widgets. The root widget takes care of providing the
+ * connection to the windowing system and manages layout, drawing and event delivery
+ * for its widget hierarchy.
+ *
+ * The obvious example of a #GtkRoot is #GtkWindow.
+ */
+
+G_DEFINE_INTERFACE (GtkRoot, gtk_root, GTK_TYPE_WIDGET)
+
+static void
+gtk_root_default_init (GtkRootInterface *iface)
+{
+}
+
diff --git a/gtk/gtkroot.h b/gtk/gtkroot.h
new file mode 100644
index 0000000000..e4894ee46b
--- /dev/null
+++ b/gtk/gtkroot.h
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2018 Benjamin Otte
+ *
+ * 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: Benjamin Otte <otte gnome org>
+ */
+
+#ifndef __GTK_ROOT_H__
+#define __GTK_ROOT_H__
+
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
+#include <gdk/gdk.h>
+#include <gtk/gtkwidget.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_ROOT (gtk_root_get_type ())
+
+GDK_AVAILABLE_IN_ALL
+G_DECLARE_INTERFACE (GtkRoot, gtk_root, GTK, ROOT, GtkWidget)
+
+/**
+ * GtkRootIface:
+ *
+ * The list of functions that must be implemented for the #GtkRoot interface.
+ */
+struct _GtkRootInterface
+{
+ /*< private >*/
+ GTypeInterface g_iface;
+
+ /*< public >*/
+};
+
+
+G_END_DECLS
+
+#endif /* __GTK_ROOT_H__ */
diff --git a/gtk/gtktypes.h b/gtk/gtktypes.h
index fc58058821..5d1218f189 100644
--- a/gtk/gtktypes.h
+++ b/gtk/gtktypes.h
@@ -39,6 +39,7 @@ typedef struct _GtkClipboard GtkClipboard;
typedef struct _GtkEventController GtkEventController;
typedef struct _GtkGesture GtkGesture;
typedef struct _GtkRequisition GtkRequisition;
+typedef struct _GtkRoot GtkRoot;
typedef struct _GtkSelectionData GtkSelectionData;
typedef struct _GtkSettings GtkSettings;
typedef GdkSnapshot GtkSnapshot;
diff --git a/gtk/meson.build b/gtk/meson.build
index 3ebb1b5867..558232b9e7 100644
--- a/gtk/meson.build
+++ b/gtk/meson.build
@@ -314,6 +314,7 @@ gtk_public_sources = files([
'gtkrendericon.c',
'gtkrendernodepaintable.c',
'gtkrevealer.c',
+ 'gtkroot.c',
'gtkroundedbox.c',
'gtkscale.c',
'gtkscalebutton.c',
@@ -551,6 +552,7 @@ gtk_public_headers = files([
'gtkrecentmanager.h',
'gtkrender.h',
'gtkrevealer.h',
+ 'gtkroot.h',
'gtkscale.h',
'gtkscalebutton.h',
'gtkscrollable.h',
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]