54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
#include "xlib.h"
|
|
#include "scheme48.h"
|
|
|
|
s48_value scx_Get_Default (s48_value Xdpy, s48_value program,
|
|
s48_value option) {
|
|
char* ret;
|
|
if (ret = XGetDefault (SCX_EXTRACT_DISPLAY(Xdpy),
|
|
s48_extract_string(program),
|
|
s48_extract_string(option)))
|
|
return s48_enter_string(ret);
|
|
return S48_FALSE;
|
|
}
|
|
|
|
|
|
s48_value scx_Resource_Manager_String (s48_value Xdpy) {
|
|
char* ret;
|
|
|
|
ret = XResourceManagerString (SCX_EXTRACT_DISPLAY(Xdpy));
|
|
return ret ? s48_enter_string(ret) : S48_FALSE;
|
|
}
|
|
|
|
|
|
|
|
s48_value scx_Parse_Geometry (s48_value strg) {
|
|
s48_value ret;
|
|
int x, y, res;
|
|
unsigned int w, h;
|
|
S48_DECLARE_GC_PROTECT(1);
|
|
|
|
res = XParseGeometry (s48_extract_string(strg), &x, &y, &w, &h);
|
|
|
|
ret = s48_make_vector(6, S48_FALSE);
|
|
|
|
S48_GC_PROTECT_1(ret);
|
|
if (res & XNegative) S48_VECTOR_SET(ret, 0, S48_TRUE);
|
|
if (res & YNegative) S48_VECTOR_SET(ret, 1, S48_TRUE);
|
|
if (res & XValue) S48_VECTOR_SET(ret, 2, s48_enter_fixnum(x));
|
|
if (res & YValue) S48_VECTOR_SET(ret, 3, s48_enter_fixnum(y));
|
|
if (res & WidthValue) S48_VECTOR_SET(ret, 4, s48_enter_fixnum(w));
|
|
if (res & HeightValue) S48_VECTOR_SET(ret, 5, s48_enter_fixnum (h));
|
|
S48_GC_UNPROTECT();
|
|
|
|
return ret;
|
|
}
|
|
|
|
// scx_Parse_Color is in colormap.c
|
|
|
|
|
|
void scx_init_util(void) {
|
|
S48_EXPORT_FUNCTION(scx_Get_Default);
|
|
S48_EXPORT_FUNCTION(scx_Resource_Manager_String);
|
|
S48_EXPORT_FUNCTION(scx_Parse_Geometry);
|
|
}
|