ChangeGC and ListFonts requests

This commit is contained in:
Andrey Sidorov 2012-04-18 15:07:03 +10:00
parent 2678daa7b8
commit 0c2cdeb884

View file

@ -341,6 +341,36 @@ module.exports = {
}
],
ListFonts: [
function(pattern, max)
{
var req_len = 2+xutil.padded_length(pattern.length)/4;
return [ 'CxSSSp', [49, req_len, max, pattern.length, pattern] ];
},
function(buf) {
console.log(buf);
// TODO: move to buffer.unpackStringList
var res = [];
var off = 24;
while (off < buf.length)
{
var len = buf[off++];
if (len == 0)
break;
if (off + len > buf.length)
{
len = buf.length - off;
if (len <= 0)
break;
}
res.push(buf.unpackString(len, off));
off += len;
}
return res;
}
],
CreatePixmap: [
function(pid, drawable, depth, width, height) {
return [ 'CCSLLSS', [53, depth, 4, pid, drawable, width, height] ];
@ -365,6 +395,23 @@ module.exports = {
}
],
ChangeGC: [
function(cid, values) {
var format = 'CxSLL';
var packetLength = 3 + (values ? Object.keys(values).length : 0);
var args = [56, packetLength, cid];
var vals = packValueMask('CreateGC', values);
args.push(vals[0]); // values bitmask
var valArr = vals[1];
for (v in valArr)
{
format += 'L'; // TODO: we know format string length in advance and += inefficient for string
args.push(valArr[v]);
}
return [format, args];
}
],
//
CopyArea: [
function(srcDrawable, dstDrawable, gc, srcX, srcY, dstX, dstY, width, height) {