1204 |
(bitmap, bits, height, width, align) |
(bitmap, bits, height, width, align) |
1205 |
Lisp_Object bitmap, bits, height, width, align; |
Lisp_Object bitmap, bits, height, width, align; |
1206 |
{ |
{ |
|
Lisp_Object len; |
|
1207 |
int n, h, i, j; |
int n, h, i, j; |
1208 |
unsigned short *b; |
unsigned short *b; |
1209 |
struct fringe_bitmap fb, *xfb; |
struct fringe_bitmap fb, *xfb; |
1211 |
|
|
1212 |
CHECK_SYMBOL (bitmap); |
CHECK_SYMBOL (bitmap); |
1213 |
|
|
1214 |
if (!STRINGP (bits) && !VECTORP (bits)) |
if (STRINGP (bits)) |
1215 |
bits = wrong_type_argument (Qstringp, bits); |
h = SCHARS (bits); |
1216 |
|
else if (VECTORP (bits)) |
1217 |
len = Flength (bits); |
h = XVECTOR (bits)->size; |
1218 |
|
else |
1219 |
|
bits = wrong_type_argument (Qsequencep, bits); |
1220 |
|
|
1221 |
if (NILP (height)) |
if (NILP (height)) |
1222 |
h = fb.height = XINT (len); |
fb.height = h; |
1223 |
else |
else |
1224 |
{ |
{ |
1225 |
CHECK_NUMBER (height); |
CHECK_NUMBER (height); |
1226 |
fb.height = min (XINT (height), 255); |
fb.height = min (XINT (height), 255); |
1227 |
if (fb.height > XINT (len)) |
if (fb.height > h) |
1228 |
{ |
{ |
|
h = XINT (len); |
|
1229 |
fill1 = (fb.height - h) / 2; |
fill1 = (fb.height - h) / 2; |
1230 |
fill2 = fb.height - h - fill1; |
fill2 = fb.height - h - fill1; |
1231 |
} |
} |