diff options
author | Benjamin Otte <otte@redhat.com> | 2018-04-30 14:10:44 +0200 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2018-06-18 23:49:19 +0200 |
commit | f247d268d4aa02c945ed7297080b685d9df79464 (patch) | |
tree | 879b3e327a739098be808d0190a3c86b29e7e2ad /gdk/gdkdrop.h | |
parent | 841a29837e5929bd07a45081e5eec43c1bc910f5 (diff) | |
download | gtk+-f247d268d4aa02c945ed7297080b685d9df79464.tar.gz |
dnd: Add GdkDrop base class for GdkDragContext
The ultimate goal of this patch series is to split GdkDragContext into
GdkDrop + GdkDrag classes for the destination and source side of a dnd
operation.
The refactoring is meant to work something like this:
1. Introduce GdkDrop as a base class
2. Make all drop related code (like GdkEvent) use GdkDrop instead of
GdkDragContext. Move/duplicate APIs to allow that.
3. Port all drop contexts in the backends from GdkDragContext to GdkDrop
4. Delete all APIs in GdkDragContext that aren't needed anymore.
5. Make GdkDragContext no longer a GdkDrop subclass
6. Rename GdkDragContext to GdkDrag
Diffstat (limited to 'gdk/gdkdrop.h')
-rw-r--r-- | gdk/gdkdrop.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gdk/gdkdrop.h b/gdk/gdkdrop.h new file mode 100644 index 0000000000..e8a5423e91 --- /dev/null +++ b/gdk/gdkdrop.h @@ -0,0 +1,51 @@ +/* + * 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 __GDK_DROP_H__ +#define __GDK_DROP_H__ + +#if !defined (__GDK_H_INSIDE__) && !defined (GDK_COMPILATION) +#error "Only <gdk/gdk.h> can be included directly." +#endif + +#include <gdk/gdktypes.h> +#include <gdk/gdkversionmacros.h> + +G_BEGIN_DECLS + +G_DEFINE_AUTOPTR_CLEANUP_FUNC(GdkDrop, g_object_unref) + +#define GDK_TYPE_DROP (gdk_drop_get_type ()) +#define GDK_DROP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), GDK_TYPE_DROP, GdkDrop)) +#define GDK_IS_DROP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), GDK_TYPE_DROP)) + +GDK_AVAILABLE_IN_ALL +GType gdk_drop_get_type (void) G_GNUC_CONST; + +GDK_AVAILABLE_IN_ALL +GdkDisplay * gdk_drop_get_display (GdkDrop *self); +GDK_AVAILABLE_IN_ALL +GdkDevice * gdk_drop_get_device (GdkDrop *self); +GDK_AVAILABLE_IN_ALL +GdkContentFormats * gdk_drop_get_formats (GdkDrop *self); + +G_END_DECLS + +#endif /* __GDK_DROP_H__ */ |