Update of /cvsroot/scsh/scx/c/xlib
In directory usw-pr-cvs1:/tmp/cvs-serv3929/c/xlib
Modified Files:
colormap.c
Log Message:
- removed direct calls to scx_Create_Color
- renamed save-color-cell to store-color
- added store-colors, copy-colormap-and-free,
respect. scx_Store_Colors, scx_Copy_Colormap
- renamed alloc-named-color to query/alloc-named-color
- added new alloc-named-color that can be used like alloc-color!
- changed my-floor definition (color.scm)
- added parse-color
- updated calls to make-pixel
Index: colormap.c
===================================================================
RCS file: /cvsroot/scsh/scx/c/xlib/colormap.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** colormap.c 2001/09/20 14:41:01 1.8
--- colormap.c 2001/10/09 15:31:33 1.9
***************
*** 51,56 ****
SCX_EXTRACT_COLORMAP(cmap),
s48_extract_string(spec),
! &ret))
! return scx_Create_Color (ret.red, ret.green, ret.blue);
return S48_FALSE;
}
--- 51,64 ----
SCX_EXTRACT_COLORMAP(cmap),
s48_extract_string(spec),
! &ret)) {
! s48_value res = s48_make_vector(3, S48_FALSE);
! S48_DECLARE_GC_PROTECT(1);
! S48_GC_PROTECT_1(res);
! S48_VECTOR_SET(res, 0, s48_enter_integer(ret.red));
! S48_VECTOR_SET(res, 1, s48_enter_integer(ret.green));
! S48_VECTOR_SET(res, 2, s48_enter_integer(ret.blue));
! S48_GC_UNPROTECT();
! return res;
! }
return S48_FALSE;
}
***************
*** 94,100 ****
}
! s48_value scx_Set_Color_Cell(s48_value Xdisplay, s48_value Xcolormap,
! s48_value Xpixel, s48_value Xcolor,
! s48_value flags) {
XColor t;
XColor* c;
--- 102,108 ----
}
! s48_value scx_Store_Color(s48_value Xdisplay, s48_value Xcolormap,
! s48_value Xpixel, s48_value Xcolor,
! s48_value flags) {
XColor t;
XColor* c;
***************
*** 113,116 ****
--- 121,153 ----
}
+ s48_value scx_Store_Colors(s48_value Xdisplay, s48_value Xcolormap,
+ s48_value cells) {
+ int n = S48_VECTOR_LENGTH(cells);
+ XColor colors[n];
+ XColor* c;
+ int i;
+
+ for (i = 0; i < n; i++) {
+ s48_value def = S48_VECTOR_REF(cells, i);
+ colors[i].pixel = SCX_EXTRACT_PIXEL(S48_VECTOR_REF(def, 0));
+ c = SCX_EXTRACT_COLOR(S48_VECTOR_REF(def, 1));
+ colors[i].red = c->red;
+ colors[i].green = c->green;
+ colors[i].blue = c->blue;
+ colors[i].flags = Symbols_To_Bits(S48_VECTOR_REF(def, 2),
Color_Flags_Syms);
+ }
+
+ XStoreColors(SCX_EXTRACT_DISPLAY(Xdisplay), SCX_EXTRACT_COLORMAP(Xcolormap),
+ colors, n);
+
+ return S48_UNSPECIFIC;
+ }
+
+ s48_value scx_Copy_Colormap_And_Free(s48_value Xdisplay, s48_value Xcolormap)
{
+ Colormap cm = XCopyColormapAndFree(SCX_EXTRACT_DISPLAY(Xdisplay),
+ SCX_EXTRACT_COLORMAP(Xcolormap));
+ return SCX_ENTER_COLORMAP(cm);
+ }
+
void scx_init_colormap(void) {
S48_EXPORT_FUNCTION(scx_Free_Colormap);
***************
*** 120,123 ****
S48_EXPORT_FUNCTION(scx_Create_Colormap);
S48_EXPORT_FUNCTION(scx_Alloc_Color_Cells);
! S48_EXPORT_FUNCTION(scx_Set_Color_Cell);
}
--- 157,162 ----
S48_EXPORT_FUNCTION(scx_Create_Colormap);
S48_EXPORT_FUNCTION(scx_Alloc_Color_Cells);
! S48_EXPORT_FUNCTION(scx_Store_Color);
! S48_EXPORT_FUNCTION(scx_Store_Colors);
! S48_EXPORT_FUNCTION(scx_Copy_Colormap_And_Free);
}
|