diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-07-26 18:45:49 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2018-07-27 14:23:19 -0400 |
commit | 0cc07143128d140328fa21f6230622d26f5c1d94 (patch) | |
tree | 5e51acbb09187405761d232eac1bb9e1ee92feab /gtk | |
parent | 766e2b1e63e23b9888257a7a838eb0ca1b831383 (diff) | |
download | gtk+-0cc07143128d140328fa21f6230622d26f5c1d94.tar.gz |
Add a color picker interface
This will be used in the color chooser, in subsequent commits.
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/gtkcolorpicker.c | 53 | ||||
-rw-r--r-- | gtk/gtkcolorpickerprivate.h | 69 | ||||
-rw-r--r-- | gtk/meson.build | 1 |
3 files changed, 123 insertions, 0 deletions
diff --git a/gtk/gtkcolorpicker.c b/gtk/gtkcolorpicker.c new file mode 100644 index 0000000000..230761ec34 --- /dev/null +++ b/gtk/gtkcolorpicker.c @@ -0,0 +1,53 @@ +/* GTK - The GIMP Toolkit + * Copyright (C) 2018, 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 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/>. + */ + +#include "config.h" + +#include "gtkcolorpickerprivate.h" +#include <gio/gio.h> + + +G_DEFINE_INTERFACE_WITH_CODE (GtkColorPicker, gtk_color_picker, G_TYPE_OBJECT, + g_type_interface_add_prerequisite (g_define_type_id, G_TYPE_INITABLE);) + +static void +gtk_color_picker_default_init (GtkColorPickerInterface *iface) +{ +} + +void +gtk_color_picker_pick (GtkColorPicker *picker, + GAsyncReadyCallback callback, + gpointer user_data) +{ + GTK_COLOR_PICKER_GET_INTERFACE (picker)->pick (picker, callback, user_data); +} + +GdkRGBA * +gtk_color_picker_pick_finish (GtkColorPicker *picker, + GAsyncResult *res, + GError **error) +{ + return GTK_COLOR_PICKER_GET_INTERFACE (picker)->pick_finish (picker, res, error); +} + +GtkColorPicker * +gtk_color_picker_new (void) +{ + return NULL; +} + diff --git a/gtk/gtkcolorpickerprivate.h b/gtk/gtkcolorpickerprivate.h new file mode 100644 index 0000000000..305d868519 --- /dev/null +++ b/gtk/gtkcolorpickerprivate.h @@ -0,0 +1,69 @@ +/* + * GTK - The GIMP Toolkit + * Copyright (C) 2018 Red Hat, Inc. + * All rights reserved. + * + * This Library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 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 + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __GTK_COLOR_PICKER_H__ +#define __GTK_COLOR_PICKER_H__ + + +#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION) +#error "Only <gtk/gtk.h> can be included directly." +#endif + +#include <gtk/gtkwindow.h> + +G_BEGIN_DECLS + + +#define GTK_TYPE_COLOR_PICKER (gtk_color_picker_get_type ()) +#define GTK_COLOR_PICKER(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTK_TYPE_COLOR_PICKER, GtkColorPicker)) +#define GTK_IS_COLOR_PICKER(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTK_TYPE_COLOR_PICKER)) +#define GTK_COLOR_PICKER_GET_INTERFACE(o) (G_TYPE_INSTANCE_GET_INTERFACE ((o), GTK_TYPE_COLOR_PICKER, GtkColorPickerInterface)) + + +typedef struct _GtkColorPicker GtkColorPicker; +typedef struct _GtkColorPickerInterface GtkColorPickerInterface; + +struct _GtkColorPickerInterface { + GTypeInterface g_iface; + + void (* pick) (GtkColorPicker *picker, + GAsyncReadyCallback callback, + gpointer user_data); + + GdkRGBA * (* pick_finish) (GtkColorPicker *picker, + GAsyncResult *res, + GError **error); +}; + +GDK_AVAILABLE_IN_ALL +GType gtk_color_picker_get_type (void) G_GNUC_CONST; +GDK_AVAILABLE_IN_ALL +GtkColorPicker * gtk_color_picker_new (void); +GDK_AVAILABLE_IN_ALL +void gtk_color_picker_pick (GtkColorPicker *picker, + GAsyncReadyCallback callback, + gpointer user_data); +GDK_AVAILABLE_IN_ALL +GdkRGBA * gtk_color_picker_pick_finish (GtkColorPicker *picker, + GAsyncResult *res, + GError **error); + +G_END_DECLS + +#endif /* __GTK_COLOR_PICKER_H__ */ diff --git a/gtk/meson.build b/gtk/meson.build index aea3b8e9b1..76c30ed834 100644 --- a/gtk/meson.build +++ b/gtk/meson.build @@ -30,6 +30,7 @@ gtk_private_sources = files([ 'gtkcellareaboxcontext.c', 'gtkcoloreditor.c', 'gtkcolorplane.c', + 'gtkcolorpicker.c', 'gtkcolorscale.c', 'gtkcolorswatch.c', 'gtkcssanimatedstyle.c', |