From 9f56c0e24590a1ed751258ff460b00df985eaa27 Mon Sep 17 00:00:00 2001 From: Jean-Yves Lefort Date: Wed, 31 Aug 2005 00:54:05 +0000 Subject: [PATCH] Add gnome-colorscheme. GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is useful for web creation as well as room painting. It supports 6 various types of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous, and Monochromatic. The user can lighten/darken the whole colorscheme or increase/decrease its saturation. WWW: http://home.gna.org/colorscheme/ PR: ports/85458 Submitted by: Piotr Smyrak --- graphics/Makefile | 1 + graphics/agave/Makefile | 34 ++ graphics/agave/distinfo | 2 + graphics/agave/files/patch-src_main.cc | 10 + graphics/agave/files/roundpatch | 310 ++++++++++++++++++ graphics/agave/pkg-descr | 9 + graphics/agave/pkg-plist | 11 + graphics/gnome-colorscheme/Makefile | 34 ++ graphics/gnome-colorscheme/distinfo | 2 + .../gnome-colorscheme/files/patch-src_main.cc | 10 + graphics/gnome-colorscheme/files/roundpatch | 310 ++++++++++++++++++ graphics/gnome-colorscheme/pkg-descr | 9 + graphics/gnome-colorscheme/pkg-plist | 11 + 13 files changed, 753 insertions(+) create mode 100644 graphics/agave/Makefile create mode 100644 graphics/agave/distinfo create mode 100644 graphics/agave/files/patch-src_main.cc create mode 100644 graphics/agave/files/roundpatch create mode 100644 graphics/agave/pkg-descr create mode 100644 graphics/agave/pkg-plist create mode 100644 graphics/gnome-colorscheme/Makefile create mode 100644 graphics/gnome-colorscheme/distinfo create mode 100644 graphics/gnome-colorscheme/files/patch-src_main.cc create mode 100644 graphics/gnome-colorscheme/files/roundpatch create mode 100644 graphics/gnome-colorscheme/pkg-descr create mode 100644 graphics/gnome-colorscheme/pkg-plist diff --git a/graphics/Makefile b/graphics/Makefile index 21fcad3f75eb..fc58f4c23d96 100644 --- a/graphics/Makefile +++ b/graphics/Makefile @@ -156,6 +156,7 @@ SUBDIR += gltt SUBDIR += gmt SUBDIR += gnofract4d + SUBDIR += gnome-colorscheme SUBDIR += gnomecanvas SUBDIR += gnomeiconedit SUBDIR += gnustep-slideshow diff --git a/graphics/agave/Makefile b/graphics/agave/Makefile new file mode 100644 index 000000000000..41f94c664585 --- /dev/null +++ b/graphics/agave/Makefile @@ -0,0 +1,34 @@ +# New ports collection makefile for: gnome-colorscheme +# Date created: 30 August 2005 +# Whom: Piotr Smyrak +# +# $FreeBSD$ +# + +PORTNAME= colorscheme +PORTVERSION= 0.2.1 +CATEGORIES= graphics gnome +MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/ +PKGNAMEPREFIX= gnome- + +MAINTAINER= smyru@heron.pl +COMMENT= A color scheme builder for the GNOME desktop + +LIB_DEPENDS= gtkmm-2.4.1:${PORTSDIR}/x11-toolkits/gtkmm24 \ + cppunit-1.10:${PORTSDIR}/devel/cppunit + +USE_BZIP2= yes +USE_GMAKE= yes +USE_X_PREFIX= yes +USE_GNOME= gnomeprefix gnomehack intlhack libgnomeui +GNU_CONFIGURE= yes +USE_GCC= 3.4+ +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib" + +.include + +.if ${OSVERSION} < 503001 +EXTRA_PATCHES+= ${FILESDIR}/roundpatch +.endif + +.include diff --git a/graphics/agave/distinfo b/graphics/agave/distinfo new file mode 100644 index 000000000000..2e212dfb213d --- /dev/null +++ b/graphics/agave/distinfo @@ -0,0 +1,2 @@ +MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee +SIZE (colorscheme-0.2.1.tar.bz2) = 149287 diff --git a/graphics/agave/files/patch-src_main.cc b/graphics/agave/files/patch-src_main.cc new file mode 100644 index 000000000000..090109c97ab0 --- /dev/null +++ b/graphics/agave/files/patch-src_main.cc @@ -0,0 +1,10 @@ +--- src/main.cc.orig Tue Aug 30 02:25:47 2005 ++++ src/main.cc Tue Aug 30 02:26:18 2005 +@@ -33,6 +33,7 @@ + #include + + #include "gcs-mainwindow.h" ++#include "gcs-i18n.h" + + namespace gcs + { diff --git a/graphics/agave/files/roundpatch b/graphics/agave/files/roundpatch new file mode 100644 index 000000000000..4f0fbb99b6c5 --- /dev/null +++ b/graphics/agave/files/roundpatch @@ -0,0 +1,310 @@ +--- src/core/gcs-color.cc.orig Wed Aug 31 02:18:48 2005 ++++ src/core/gcs-color.cc Wed Aug 31 02:26:33 2005 +@@ -28,7 +28,262 @@ + #include // for hex, setw, setfill, uppercase + #include // for transform + #include // for invalid_argument exception +-#include // for round, floor ++ ++/* ==================================================== ++ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. ++ * ++ * Developed at SunPro, a Sun Microsystems, Inc. business. ++ * Permission to use, copy, modify, and distribute this ++ * software is freely granted, provided that this notice ++ * is preserved. ++ * ==================================================== ++ * ++ * Copyright (c) 2003, Steven G. Kargl ++ * Copyright (c) 2003 Mike Barcroft ++ * Copyright (c) 2002, 2003 David Schultz ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice unmodified, this list of conditions, and the following ++ * disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include ++ ++/* Symbolic constants to classify floating point numbers. */ ++#define COMPAT_FP_INFINITE 0x01 ++#define COMPAT_FP_NAN 0x02 ++#define COMPAT_FP_NORMAL 0x04 ++#define COMPAT_FP_SUBNORMAL 0x08 ++#define COMPAT_FP_ZERO 0x10 ++ ++#include ++#define compat_fpclassify(x) \ ++ ((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \ ++ : (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \ ++ : compat___fpclassifyl(x)) ++ ++union compat_IEEEf2bits { ++ float f; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int man :23; ++ unsigned int exp :8; ++ unsigned int sign :1; ++#else /* _BIG_ENDIAN */ ++ unsigned int sign :1; ++ unsigned int exp :8; ++ unsigned int man :23; ++#endif ++ } bits; ++}; ++ ++union compat_IEEEd2bits { ++ double d; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int manl :32; ++ unsigned int manh :20; ++ unsigned int exp :11; ++ unsigned int sign :1; ++#else /* _BIG_ENDIAN */ ++ unsigned int sign :1; ++ unsigned int exp :11; ++ unsigned int manh :20; ++ unsigned int manl :32; ++#endif ++ } bits; ++}; ++ ++#ifdef __alpha__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :20; ++ unsigned int exp :11; ++ unsigned int sign :1; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#elif __amd64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junkl :16; ++ unsigned int junkh :32; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __arm__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junk :16; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __i386__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junk :16; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __ia64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned long junk :48; ++#else /* _BIG_ENDIAN */ ++ unsigned long junk :48; ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned int manh :32; ++ unsigned int manl :32; ++#endif ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __powerpc__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned long long manh :48; ++ unsigned long long manl :64; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#elif __sparc64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned long manh :48; ++ unsigned long manl :64; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#endif ++ ++static int ++compat___fpclassifyf(float f) ++{ ++ union compat_IEEEf2bits u; ++ ++ u.f = f; ++ if (u.bits.exp == 0) { ++ if (u.bits.man == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ if (u.bits.exp == 255) { ++ if (u.bits.man == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static int ++compat___fpclassifyd(double d) ++{ ++ union compat_IEEEd2bits u; ++ ++ u.d = d; ++ if (u.bits.exp == 0) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ if (u.bits.exp == 2047) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static int ++compat___fpclassifyl(long double e) ++{ ++ union compat_IEEEl2bits u; ++ ++ u.e = e; ++ if (u.bits.exp == 0) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ compat_mask_nbit_l(u); /* Mask normalization bit if applicable. */ ++ if (u.bits.exp == 32767) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static double ++compat_round(double x) ++{ ++ double t; ++ int i; ++ ++ i = compat_fpclassify(x); ++ if (i == COMPAT_FP_INFINITE || i == COMPAT_FP_NAN) ++ return (x); ++ ++ if (x >= 0.0) { ++ t = ceil(x); ++ if (t - x > 0.5) ++ t -= 1.0; ++ return (t); ++ } else { ++ t = ceil(-x); ++ if (t + x > 0.5) ++ t -= 1.0; ++ return (-t); ++ } ++} + + namespace gcs + { +@@ -166,9 +421,9 @@ + } + + tempHue *= maxHueValue / 6; // degrees +- tempHue = round(tempHue); +- out.saturation = static_cast(round(tempSat)); +- out.value = static_cast(round(tempVal)); ++ tempHue = compat_round(tempHue); ++ out.saturation = static_cast(compat_round(tempSat)); ++ out.value = static_cast(compat_round(tempVal)); + if(tempHue < 0) + { + out.hue += maxHueValue; +@@ -201,7 +456,7 @@ + hueSector = static_cast(floor(scaledHue)); + remainder = scaledHue - hueSector; // factorial part of scaledHue + p = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * + ( + ((float) hsv.value / 100.0) * +@@ -210,18 +465,18 @@ + ) + ); + q = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * ((float) hsv.value / 100.0 * + (1.0 - ((float) hsv.saturation / 100.0 * remainder))) + ) + ); + t = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * ((float) hsv.value / 100.0) * + (1.0 - ((float) hsv.saturation / 100.0) * (1.0 - remainder)) + ) + ); +- val = static_cast(round(maxRgbValue * hsv.value / 100)); ++ val = static_cast(compat_round(maxRgbValue * hsv.value / 100)); + + switch(hueSector) + { diff --git a/graphics/agave/pkg-descr b/graphics/agave/pkg-descr new file mode 100644 index 000000000000..c6b349ea11fe --- /dev/null +++ b/graphics/agave/pkg-descr @@ -0,0 +1,9 @@ +GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is +useful for web creation as well as room painting. It supports 6 various types +of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous, +and Monochromatic. + +The user can lighten/darken the whole colorscheme or increase/decrease its +saturation. + +WWW: http://home.gna.org/colorscheme/ diff --git a/graphics/agave/pkg-plist b/graphics/agave/pkg-plist new file mode 100644 index 000000000000..21c01b3ebc22 --- /dev/null +++ b/graphics/agave/pkg-plist @@ -0,0 +1,11 @@ +bin/colorscheme +share/gnome/applications/colorscheme.desktop +share/gnome/colorscheme/ui/colorscheme.ui +share/gnome/pixmaps/colorscheme-icon.png +share/gnome/pixmaps/colorscheme-logo.png +share/gnome/pixmaps/darken.png +share/gnome/pixmaps/desaturate.png +share/gnome/pixmaps/lighten.png +share/gnome/pixmaps/saturate.png +@dirrm share/gnome/colorscheme/ui +@dirrm share/gnome/colorscheme diff --git a/graphics/gnome-colorscheme/Makefile b/graphics/gnome-colorscheme/Makefile new file mode 100644 index 000000000000..41f94c664585 --- /dev/null +++ b/graphics/gnome-colorscheme/Makefile @@ -0,0 +1,34 @@ +# New ports collection makefile for: gnome-colorscheme +# Date created: 30 August 2005 +# Whom: Piotr Smyrak +# +# $FreeBSD$ +# + +PORTNAME= colorscheme +PORTVERSION= 0.2.1 +CATEGORIES= graphics gnome +MASTER_SITES= http://download.gna.org/${PORTNAME}/0.2/ +PKGNAMEPREFIX= gnome- + +MAINTAINER= smyru@heron.pl +COMMENT= A color scheme builder for the GNOME desktop + +LIB_DEPENDS= gtkmm-2.4.1:${PORTSDIR}/x11-toolkits/gtkmm24 \ + cppunit-1.10:${PORTSDIR}/devel/cppunit + +USE_BZIP2= yes +USE_GMAKE= yes +USE_X_PREFIX= yes +USE_GNOME= gnomeprefix gnomehack intlhack libgnomeui +GNU_CONFIGURE= yes +USE_GCC= 3.4+ +CONFIGURE_ENV= CPPFLAGS="-I${LOCALBASE}/include" LDFLAGS="-L${LOCALBASE}/lib" + +.include + +.if ${OSVERSION} < 503001 +EXTRA_PATCHES+= ${FILESDIR}/roundpatch +.endif + +.include diff --git a/graphics/gnome-colorscheme/distinfo b/graphics/gnome-colorscheme/distinfo new file mode 100644 index 000000000000..2e212dfb213d --- /dev/null +++ b/graphics/gnome-colorscheme/distinfo @@ -0,0 +1,2 @@ +MD5 (colorscheme-0.2.1.tar.bz2) = e1465624d3373b5593b7c6ca25856aee +SIZE (colorscheme-0.2.1.tar.bz2) = 149287 diff --git a/graphics/gnome-colorscheme/files/patch-src_main.cc b/graphics/gnome-colorscheme/files/patch-src_main.cc new file mode 100644 index 000000000000..090109c97ab0 --- /dev/null +++ b/graphics/gnome-colorscheme/files/patch-src_main.cc @@ -0,0 +1,10 @@ +--- src/main.cc.orig Tue Aug 30 02:25:47 2005 ++++ src/main.cc Tue Aug 30 02:26:18 2005 +@@ -33,6 +33,7 @@ + #include + + #include "gcs-mainwindow.h" ++#include "gcs-i18n.h" + + namespace gcs + { diff --git a/graphics/gnome-colorscheme/files/roundpatch b/graphics/gnome-colorscheme/files/roundpatch new file mode 100644 index 000000000000..4f0fbb99b6c5 --- /dev/null +++ b/graphics/gnome-colorscheme/files/roundpatch @@ -0,0 +1,310 @@ +--- src/core/gcs-color.cc.orig Wed Aug 31 02:18:48 2005 ++++ src/core/gcs-color.cc Wed Aug 31 02:26:33 2005 +@@ -28,7 +28,262 @@ + #include // for hex, setw, setfill, uppercase + #include // for transform + #include // for invalid_argument exception +-#include // for round, floor ++ ++/* ==================================================== ++ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. ++ * ++ * Developed at SunPro, a Sun Microsystems, Inc. business. ++ * Permission to use, copy, modify, and distribute this ++ * software is freely granted, provided that this notice ++ * is preserved. ++ * ==================================================== ++ * ++ * Copyright (c) 2003, Steven G. Kargl ++ * Copyright (c) 2003 Mike Barcroft ++ * Copyright (c) 2002, 2003 David Schultz ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice unmodified, this list of conditions, and the following ++ * disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include ++ ++/* Symbolic constants to classify floating point numbers. */ ++#define COMPAT_FP_INFINITE 0x01 ++#define COMPAT_FP_NAN 0x02 ++#define COMPAT_FP_NORMAL 0x04 ++#define COMPAT_FP_SUBNORMAL 0x08 ++#define COMPAT_FP_ZERO 0x10 ++ ++#include ++#define compat_fpclassify(x) \ ++ ((sizeof (x) == sizeof (float)) ? compat___fpclassifyf(x) \ ++ : (sizeof (x) == sizeof (double)) ? compat___fpclassifyd(x) \ ++ : compat___fpclassifyl(x)) ++ ++union compat_IEEEf2bits { ++ float f; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int man :23; ++ unsigned int exp :8; ++ unsigned int sign :1; ++#else /* _BIG_ENDIAN */ ++ unsigned int sign :1; ++ unsigned int exp :8; ++ unsigned int man :23; ++#endif ++ } bits; ++}; ++ ++union compat_IEEEd2bits { ++ double d; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int manl :32; ++ unsigned int manh :20; ++ unsigned int exp :11; ++ unsigned int sign :1; ++#else /* _BIG_ENDIAN */ ++ unsigned int sign :1; ++ unsigned int exp :11; ++ unsigned int manh :20; ++ unsigned int manl :32; ++#endif ++ } bits; ++}; ++ ++#ifdef __alpha__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :20; ++ unsigned int exp :11; ++ unsigned int sign :1; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#elif __amd64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junkl :16; ++ unsigned int junkh :32; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __arm__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junk :16; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __i386__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned int junk :16; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __ia64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++#if _BYTE_ORDER == _LITTLE_ENDIAN ++ unsigned int manl :32; ++ unsigned int manh :32; ++ unsigned int exp :15; ++ unsigned int sign :1; ++ unsigned long junk :48; ++#else /* _BIG_ENDIAN */ ++ unsigned long junk :48; ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned int manh :32; ++ unsigned int manl :32; ++#endif ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((u).bits.manh &= 0x7fffffff) ++#elif __powerpc__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned long long manh :48; ++ unsigned long long manl :64; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#elif __sparc64__ ++union compat_IEEEl2bits { ++ long double e; ++ struct { ++ unsigned int sign :1; ++ unsigned int exp :15; ++ unsigned long manh :48; ++ unsigned long manl :64; ++ } bits; ++}; ++#define compat_mask_nbit_l(u) ((void)0) ++#endif ++ ++static int ++compat___fpclassifyf(float f) ++{ ++ union compat_IEEEf2bits u; ++ ++ u.f = f; ++ if (u.bits.exp == 0) { ++ if (u.bits.man == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ if (u.bits.exp == 255) { ++ if (u.bits.man == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static int ++compat___fpclassifyd(double d) ++{ ++ union compat_IEEEd2bits u; ++ ++ u.d = d; ++ if (u.bits.exp == 0) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ if (u.bits.exp == 2047) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static int ++compat___fpclassifyl(long double e) ++{ ++ union compat_IEEEl2bits u; ++ ++ u.e = e; ++ if (u.bits.exp == 0) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_ZERO); ++ return (COMPAT_FP_SUBNORMAL); ++ } ++ compat_mask_nbit_l(u); /* Mask normalization bit if applicable. */ ++ if (u.bits.exp == 32767) { ++ if ((u.bits.manl | u.bits.manh) == 0) ++ return (COMPAT_FP_INFINITE); ++ return (COMPAT_FP_NAN); ++ } ++ return (COMPAT_FP_NORMAL); ++} ++ ++static double ++compat_round(double x) ++{ ++ double t; ++ int i; ++ ++ i = compat_fpclassify(x); ++ if (i == COMPAT_FP_INFINITE || i == COMPAT_FP_NAN) ++ return (x); ++ ++ if (x >= 0.0) { ++ t = ceil(x); ++ if (t - x > 0.5) ++ t -= 1.0; ++ return (t); ++ } else { ++ t = ceil(-x); ++ if (t + x > 0.5) ++ t -= 1.0; ++ return (-t); ++ } ++} + + namespace gcs + { +@@ -166,9 +421,9 @@ + } + + tempHue *= maxHueValue / 6; // degrees +- tempHue = round(tempHue); +- out.saturation = static_cast(round(tempSat)); +- out.value = static_cast(round(tempVal)); ++ tempHue = compat_round(tempHue); ++ out.saturation = static_cast(compat_round(tempSat)); ++ out.value = static_cast(compat_round(tempVal)); + if(tempHue < 0) + { + out.hue += maxHueValue; +@@ -201,7 +456,7 @@ + hueSector = static_cast(floor(scaledHue)); + remainder = scaledHue - hueSector; // factorial part of scaledHue + p = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * + ( + ((float) hsv.value / 100.0) * +@@ -210,18 +465,18 @@ + ) + ); + q = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * ((float) hsv.value / 100.0 * + (1.0 - ((float) hsv.saturation / 100.0 * remainder))) + ) + ); + t = static_cast( +- round( ++ compat_round( + (float) maxRgbValue * ((float) hsv.value / 100.0) * + (1.0 - ((float) hsv.saturation / 100.0) * (1.0 - remainder)) + ) + ); +- val = static_cast(round(maxRgbValue * hsv.value / 100)); ++ val = static_cast(compat_round(maxRgbValue * hsv.value / 100)); + + switch(hueSector) + { diff --git a/graphics/gnome-colorscheme/pkg-descr b/graphics/gnome-colorscheme/pkg-descr new file mode 100644 index 000000000000..c6b349ea11fe --- /dev/null +++ b/graphics/gnome-colorscheme/pkg-descr @@ -0,0 +1,9 @@ +GNOME Colorscheme is a color scheme builder for the GNOME desktop. It is +useful for web creation as well as room painting. It supports 6 various types +of color schemes: Complements, Split Complements, Triads, Tetrads, Analogous, +and Monochromatic. + +The user can lighten/darken the whole colorscheme or increase/decrease its +saturation. + +WWW: http://home.gna.org/colorscheme/ diff --git a/graphics/gnome-colorscheme/pkg-plist b/graphics/gnome-colorscheme/pkg-plist new file mode 100644 index 000000000000..21c01b3ebc22 --- /dev/null +++ b/graphics/gnome-colorscheme/pkg-plist @@ -0,0 +1,11 @@ +bin/colorscheme +share/gnome/applications/colorscheme.desktop +share/gnome/colorscheme/ui/colorscheme.ui +share/gnome/pixmaps/colorscheme-icon.png +share/gnome/pixmaps/colorscheme-logo.png +share/gnome/pixmaps/darken.png +share/gnome/pixmaps/desaturate.png +share/gnome/pixmaps/lighten.png +share/gnome/pixmaps/saturate.png +@dirrm share/gnome/colorscheme/ui +@dirrm share/gnome/colorscheme