[gtk/gtk-3-24] Add a color picker interface



commit 543fb6d7b6714d81aa33d97d122e289d6a113558
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Jul 26 18:45:49 2018 -0400

    Add a color picker interface
    
    This will be used in the color chooser, in subsequent commits.

 gtk/Makefile.am             |  2 ++
 gtk/gtkcolorpicker.c        | 53 ++++++++++++++++++++++++++++++++++
 gtk/gtkcolorpickerprivate.h | 69 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 124 insertions(+)
---
diff --git a/gtk/Makefile.am b/gtk/Makefile.am
index eede2c976b..40ec9f4434 100644
--- a/gtk/Makefile.am
+++ b/gtk/Makefile.am
@@ -398,6 +398,7 @@ gtk_private_h_sources =             \
        gtkclipboardprivate.h           \
        gtkcolorswatchprivate.h \
        gtkcoloreditorprivate.h \
+       gtkcolorpickerprivate.h \
        gtkcolorplaneprivate.h  \
        gtkcolorscaleprivate.h  \
        gtkcolorchooserprivate.h        \
@@ -675,6 +676,7 @@ gtk_base_c_sources =                \
        gtkcolorchooserwidget.c \
        gtkcolorchooserdialog.c \
        gtkcoloreditor.c        \
+       gtkcolorpicker.c        \
        gtkcolorplane.c         \
        gtkcolorscale.c         \
        gtkcolorswatch.c        \
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__ */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]