summaryrefslogtreecommitdiffstats
path: root/libgimpbase/gimpchecks.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgimpbase/gimpchecks.c')
-rw-r--r--libgimpbase/gimpchecks.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/libgimpbase/gimpchecks.c b/libgimpbase/gimpchecks.c
new file mode 100644
index 0000000..589bf6f
--- /dev/null
+++ b/libgimpbase/gimpchecks.c
@@ -0,0 +1,73 @@
+/* LIBGIMP - The GIMP Library
+ * Copyright (C) 1995-1997 Spencer Kimball and Peter Mattis
+ *
+ * gimpchecks.c
+ * Copyright (C) 2004 Sven Neumann <sven@gimp.org>
+ *
+ * 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 3 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
+ * <https://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+
+#include <glib-object.h>
+
+#include "gimpbasetypes.h"
+
+#include "gimpchecks.h"
+
+
+/**
+ * SECTION: gimpchecks
+ * @title: gimpchecks
+ * @short_description: Constants and functions related to rendering
+ * checkerboards.
+ *
+ * Constants and functions related to rendering checkerboards.
+ **/
+
+
+/**
+ * gimp_checks_get_shades:
+ * @type: the checkerboard type
+ * @light: return location for the light shade
+ * @dark: return location for the dark shade
+ *
+ * Retrieves the actual shades of gray to use when drawing a
+ * checkerboard for a certain #GimpCheckType.
+ *
+ * Since: 2.2
+ **/
+void
+gimp_checks_get_shades (GimpCheckType type,
+ guchar *light,
+ guchar *dark)
+{
+ const guchar shades[6][2] =
+ {
+ { 204, 255 }, /* LIGHT_CHECKS */
+ { 102, 153 }, /* GRAY_CHECKS */
+ { 0, 51 }, /* DARK_CHECKS */
+ { 255, 255 }, /* WHITE_ONLY */
+ { 127, 127 }, /* GRAY_ONLY */
+ { 0, 0 } /* BLACK_ONLY */
+ };
+
+ type = MIN (type, 5);
+
+ if (light)
+ *light = shades[type][1];
+ if (dark)
+ *dark = shades[type][0];
+}