gtk: Add the GtkRoot interface

So far, this doesn't do anything.
This commit is contained in:
Benjamin Otte 2018-04-06 20:21:06 +02:00
parent d65a60e0bd
commit 2e5bc9fbc3
5 changed files with 101 additions and 0 deletions

View File

@ -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>

44
gtk/gtkroot.c Normal file
View File

@ -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)
{
}

53
gtk/gtkroot.h Normal file
View File

@ -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__ */

View File

@ -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;

View File

@ -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',