summaryrefslogtreecommitdiffstats
path: root/xlib
diff options
context:
space:
mode:
Diffstat (limited to 'xlib')
-rw-r--r--xlib/rgb.txt33
-rw-r--r--xlib/xcolors.c22
-rw-r--r--xlib/xgc.c45
-rw-r--r--xlib/xutil.c5
4 files changed, 83 insertions, 22 deletions
diff --git a/xlib/rgb.txt b/xlib/rgb.txt
index 67b979e..7a4f983 100644
--- a/xlib/rgb.txt
+++ b/xlib/rgb.txt
@@ -1,3 +1,18 @@
+! Changes compared to Xorg:rgb.txt
+! name old value new value
+! aqua - 0 255 255
+! crimson - 220 20 60
+! fuchsia - 255 0 255
+! gray 190 190 190 128 128 128
+! green 0 255 0 0 128 0
+! grey 190 190 190 128 128 128
+! indigo - 75 0 130
+! lime - 0 255 0
+! maroon 176 48 96 128 0 0
+! olive - 128 128 0
+! purple 160 32 240 128 0 128
+! silver - 192 192 192
+! teal - 0 128 128
!
240 248 255 aliceBlue
250 235 215 antiqueWhite
@@ -5,6 +20,7 @@
238 223 204 antiqueWhite2
205 192 176 antiqueWhite3
139 131 120 antiqueWhite4
+ 0 255 255 aqua
127 255 212 aquamarine
127 255 212 aquamarine1
118 238 198 aquamarine2
@@ -65,6 +81,7 @@
238 232 205 cornsilk2
205 200 177 cornsilk3
139 136 120 cornsilk4
+220 20 60 crimson
0 255 255 cyan
0 255 255 cyan1
0 238 238 cyan2
@@ -137,6 +154,7 @@
139 26 26 firebrick4
255 250 240 floralWhite
34 139 34 forestGreen
+255 0 255 fuchsia
220 220 220 gainsboro
248 248 255 ghostWhite
255 215 0 gold
@@ -149,7 +167,7 @@
238 180 34 goldenrod2
205 155 29 goldenrod3
139 105 20 goldenrod4
-190 190 190 gray
+128 128 128 gray
3 3 3 gray1
5 5 5 gray2
8 8 8 gray3
@@ -251,13 +269,13 @@
252 252 252 gray99
255 255 255 gray100
0 0 0 gray0
- 0 255 0 green
+ 0 128 0 green
0 255 0 green1
0 238 0 green2
0 205 0 green3
0 139 0 green4
173 255 47 greenYellow
-190 190 190 grey
+128 128 128 grey
3 3 3 grey1
5 5 5 grey2
8 8 8 grey3
@@ -374,6 +392,7 @@
238 99 99 indianRed2
205 85 85 indianRed3
139 58 58 indianRed4
+ 75 0 130 indigo
255 255 240 ivory
255 255 240 ivory1
238 238 224 ivory2
@@ -445,6 +464,7 @@
238 238 209 lightYellow2
205 205 180 lightYellow3
139 139 122 lightYellow4
+ 0 255 0 lime
50 205 50 limeGreen
250 240 230 linen
255 0 255 magenta
@@ -452,7 +472,7 @@
238 0 238 magenta2
205 0 205 magenta3
139 0 139 magenta4
-176 48 96 maroon
+128 0 0 maroon
255 52 179 maroon1
238 48 167 maroon2
205 41 144 maroon3
@@ -490,6 +510,7 @@
0 0 128 navy
0 0 128 navyBlue
253 245 230 oldLace
+128 128 0 olive
107 142 35 oliveDrab
192 255 62 oliveDrab1
179 238 58 oliveDrab2
@@ -544,7 +565,7 @@
205 150 205 plum3
139 102 139 plum4
176 224 230 powderBlue
-160 32 240 purple
+128 0 128 purple
155 48 255 purple1
145 44 238 purple2
125 38 205 purple3
@@ -586,6 +607,7 @@
238 121 66 sienna2
205 104 57 sienna3
139 71 38 sienna4
+192 192 192 silver
135 206 235 skyBlue
135 206 255 skyBlue1
126 192 238 skyBlue2
@@ -622,6 +644,7 @@
238 154 73 tan2
205 133 63 tan3
139 90 43 tan4
+ 0 128 128 teal
216 191 216 thistle
255 225 255 thistle1
238 210 238 thistle2
diff --git a/xlib/xcolors.c b/xlib/xcolors.c
index 497f251..8942d14 100644
--- a/xlib/xcolors.c
+++ b/xlib/xcolors.c
@@ -17,8 +17,8 @@
* Index array. For each of the characters 'a'-'y', this table gives the first color
* starting with that character in the xColors table.
*/
-static const unsigned char az[] = {0, 4, 12, 19, 43, 44, 47, 57, 59, 61,
- 62, 63, 86, 101, 104, 109, 120, 121, 124, 137, 141, 142, 144, 147, 148, 150};
+static const unsigned char az[] = {0, 5, 13, 21, 45, 46, 50, 60, 62, 65, 66,
+ 67, 91, 106, 109, 115, 126, 127, 130, 144, 149, 150, 152, 155, 156, 158};
/*
* Define an array that defines the mapping from color names to RGB values.
@@ -43,6 +43,7 @@ static const elem xColors[] = {
/* Colors starting with 'a' */
"liceBlue\0 \360\370\377",
"ntiqueWhite\0 \213\203\170\315\300\260\356\337\314\377\357\333\372\353\327\4",
+ "qua\0 \000\377\377",
"quamarine\0 \105\213\164\146\315\252\166\356\306\177\377\324\177\377\324\4",
"zure\0 \203\213\213\301\315\315\340\356\356\360\377\377\360\377\377\4",
/* Colors starting with 'b' */
@@ -61,6 +62,7 @@ static const elem xColors[] = {
"oral\0 \213\076\057\315\133\105\356\152\120\377\162\126\377\177\120\4",
"ornflowerBlue\0 \144\225\355",
"ornsilk\0 \213\210\170\315\310\261\356\350\315\377\370\334\377\370\334\4",
+ "rimson\0 \334\024\074",
"yan\0 \000\213\213\000\315\315\000\356\356\000\377\377\000\377\377\4",
/* Colors starting with 'd' */
"arkBlue\0 \000\000\213",
@@ -93,24 +95,26 @@ static const elem xColors[] = {
"irebrick\0 \213\032\032\315\046\046\356\054\054\377\060\060\262\042\042\4",
"loralWhite\0 \377\372\360",
"orestGreen\0 \042\213\042",
+ "uchsia\0 \377\000\377",
/* Colors starting with 'g' */
"ainsboro\0 \334\334\334",
"hostWhite\0 \370\370\377",
"old\0 \213\165\000\315\255\000\356\311\000\377\327\000\377\327\000\4",
"oldenrod\0 \213\151\024\315\233\035\356\264\042\377\301\045\332\245\040\4",
"ray\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
- "\010\010\010\005\005\005\003\003\003\276\276\276\10",
+ "\010\010\010\005\005\005\003\003\003\200\200\200\10",
"ray0\0 \000\000\000",
- "reen\0 \000\213\000\000\315\000\000\356\000\000\377\000\000\377\000\4",
+ "reen\0 \000\213\000\000\315\000\000\356\000\000\377\000\000\200\000\4",
"reenYellow\0 \255\377\057",
"rey\0\024\024\024\022\022\022\017\017\017\015\015\015\012\012\012"
- "\010\010\010\005\005\005\003\003\003\276\276\276\10",
+ "\010\010\010\005\005\005\003\003\003\200\200\200\10",
"rey0\0 \000\000\000",
/* Colors starting with 'h' */
"oneydew\0 \203\213\203\301\315\301\340\356\340\360\377\360\360\377\360\4",
"otPink\0 \213\072\142\315\140\220\356\152\247\377\156\264\377\151\264\4",
/* Colors starting with 'i' */
"ndianRed\0 \213\072\072\315\125\125\356\143\143\377\152\152\315\134\134\4",
+ "ndigo\0 \113\000\202",
"vory\0 \213\213\203\315\315\301\356\356\340\377\377\360\377\377\360\4",
/* Colors starting with 'j' */
"\377" /* placeholder */,
@@ -138,11 +142,12 @@ static const elem xColors[] = {
"ightSlateGrey\0 \167\210\231",
"ightSteelBlue\0 \156\173\213\242\265\315\274\322\356\312\341\377\260\304\336\4",
"ightYellow\0 \213\213\172\315\315\264\356\356\321\377\377\340\377\377\340\4",
+ "ime\0 \000\377\000",
"imeGreen\0 \062\315\062",
"inen\0 \372\360\346",
/* Colors starting with 'm' */
"agenta\0 \213\000\213\315\000\315\356\000\356\377\000\377\377\000\377\4",
- "aroon\0 \213\034\142\315\051\220\356\060\247\377\064\263\260\060\140\4",
+ "aroon\0 \213\034\142\315\051\220\356\060\247\377\064\263\200\000\000\4",
"ediumAquamarine\0 \146\315\252",
"ediumBlue\0 \000\000\315",
"ediumOrchid\0 \172\067\213\264\122\315\321\137\356\340\146\377\272\125\323\4",
@@ -162,6 +167,7 @@ static const elem xColors[] = {
"avyBlue\0 \000\000\200",
/* Colors starting with 'o' */
"ldLace\0 \375\365\346",
+ "live\0 \200\200\000",
"liveDrab\0 \151\213\042\232\315\062\263\356\072\300\377\076\153\216\043\4",
"range\0 \213\132\000\315\205\000\356\232\000\377\245\000\377\245\000\4",
"rangeRed\0 \213\045\000\315\067\000\356\100\000\377\105\000\377\105\000\4",
@@ -177,7 +183,7 @@ static const elem xColors[] = {
"ink\0 \213\143\154\315\221\236\356\251\270\377\265\305\377\300\313\4",
"lum\0 \213\146\213\315\226\315\356\256\356\377\273\377\335\240\335\4",
"owderBlue\0 \260\340\346",
- "urple\0 \125\032\213\175\046\315\221\054\356\233\060\377\240\040\360\4",
+ "urple\0 \125\032\213\175\046\315\221\054\356\233\060\377\200\000\200\4",
/* Colors starting with 'q' */
"\377" /* placeholder */,
/* Colors starting with 'r' */
@@ -191,6 +197,7 @@ static const elem xColors[] = {
"eaGreen\0 \056\213\127\103\315\200\116\356\224\124\377\237\056\213\127\4",
"eashell\0 \213\206\202\315\305\277\356\345\336\377\365\356\377\365\356\4",
"ienna\0 \213\107\046\315\150\071\356\171\102\377\202\107\240\122\055\4",
+ "ilver\0 \300\300\300",
"kyBlue\0 \112\160\213\154\246\315\176\300\356\207\316\377\207\316\353\4",
"lateBlue\0 \107\074\213\151\131\315\172\147\356\203\157\377\152\132\315\4",
"lateGray\0 \154\173\213\237\266\315\271\323\356\306\342\377\160\200\220\4",
@@ -200,6 +207,7 @@ static const elem xColors[] = {
"teelBlue\0 \066\144\213\117\224\315\134\254\356\143\270\377\106\202\264\4",
/* Colors starting with 't' */
"an\0 \213\132\053\315\205\077\356\232\111\377\245\117\322\264\214\4",
+ "eal\0 \000\200\200",
"histle\0 \213\173\213\315\265\315\356\322\356\377\341\377\330\277\330\4",
"omato\0 \213\066\046\315\117\071\356\134\102\377\143\107\377\143\107\4",
"urquoise\0 \000\206\213\000\305\315\000\345\356\000\365\377\100\340\320\4",
diff --git a/xlib/xgc.c b/xlib/xgc.c
index 6c5e31c..0cebbc8 100644
--- a/xlib/xgc.c
+++ b/xlib/xgc.c
@@ -5,23 +5,28 @@
* contexts.
*
* Copyright (c) 1995-1996 Sun Microsystems, Inc.
- * Copyright (c) 2002-2007 Daniel A. Steffen <das@users.sourceforge.net>
+ * Copyright (c) 2002-2009 Daniel A. Steffen <das@users.sourceforge.net>
+ * Copyright 2008-2009, Apple Inc.
*
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*/
-#include <tkInt.h>
+#include "tkInt.h"
#if !defined(MAC_OSX_TK)
# include <X11/Xlib.h>
-#endif
-#ifdef MAC_OSX_TK
+# define gcCacheSize 0
+# define TkpInitGCCache(gc)
+# define TkpFreeGCCache(gc)
+# define TkpGetGCCache(gc)
+#else
# include <tkMacOSXInt.h>
# include <X11/Xlib.h>
# include <X11/X.h>
# define Cursor XCursor
# define Region XRegion
+# define gcCacheSize sizeof(TkpGCCache)
#endif
#undef TkSetRegion
@@ -46,7 +51,7 @@ static TkpClipMask *AllocClipMask(GC gc) {
TkpClipMask *clip_mask = (TkpClipMask*) gc->clip_mask;
if (clip_mask == None) {
- clip_mask = (TkpClipMask*) ckalloc(sizeof(TkpClipMask));
+ clip_mask = ckalloc(sizeof(TkpClipMask));
gc->clip_mask = (Pixmap) clip_mask;
#ifdef MAC_OSX_TK
} else if (clip_mask->type == TKP_CLIP_REGION) {
@@ -79,7 +84,7 @@ static void FreeClipMask(GC gc) {
TkpReleaseRegion(((TkpClipMask*) gc->clip_mask)->value.region);
}
#endif
- ckfree((char*) gc->clip_mask);
+ ckfree(gc->clip_mask);
gc->clip_mask = None;
}
}
@@ -118,7 +123,7 @@ XCreateGC(
#define MAX_DASH_LIST_SIZE 10
- gp = (XGCValues *) ckalloc(sizeof(XGCValues) + MAX_DASH_LIST_SIZE);
+ gp = ckalloc(sizeof(XGCValues) + MAX_DASH_LIST_SIZE + gcCacheSize);
if (!gp) {
return None;
}
@@ -159,10 +164,33 @@ XCreateGC(
clip_mask->type = TKP_CLIP_PIXMAP;
clip_mask->value.pixmap = values->clip_mask;
}
+ TkpInitGCCache(gp);
return gp;
}
+#ifdef MAC_OSX_TK
+/*
+ *----------------------------------------------------------------------
+ *
+ * TkpGetGCCache --
+ *
+ * Results:
+ * Pointer to the TkpGCCache at the end of the GC.
+ *
+ * Side effects:
+ * None.
+ *
+ *----------------------------------------------------------------------
+ */
+
+TkpGCCache*
+TkpGetGCCache(GC gc) {
+ return (gc ? (TkpGCCache*)(((char*) gc) + sizeof(XGCValues) +
+ MAX_DASH_LIST_SIZE) : NULL);
+}
+#endif
+
/*
*----------------------------------------------------------------------
*
@@ -242,7 +270,8 @@ int XFreeGC(
{
if (gc != None) {
FreeClipMask(gc);
- ckfree((char *) gc);
+ TkpFreeGCCache(gc);
+ ckfree(gc);
}
return Success;
}
diff --git a/xlib/xutil.c b/xlib/xutil.c
index 267a624..0514d7a 100644
--- a/xlib/xutil.c
+++ b/xlib/xutil.c
@@ -68,7 +68,8 @@ XGetVisualInfo(
XVisualInfo *vinfo_template,
int *nitems_return)
{
- XVisualInfo *info = (XVisualInfo *) ckalloc(sizeof(XVisualInfo));
+ XVisualInfo *info = ckalloc(sizeof(XVisualInfo));
+
info->visual = DefaultVisual(display, 0);
info->visualid = info->visual->visualid;
info->screen = 0;
@@ -99,7 +100,7 @@ XGetVisualInfo(
|| ((vinfo_mask & VisualBlueMaskMask)
&& (vinfo_template->blue_mask != info->blue_mask))
) {
- ckfree((char *) info);
+ ckfree(info);
return NULL;
}