mirror of
https://github.com/danbulant/node-x11
synced 2026-05-19 20:39:03 +00:00
client.atoms - std atoms (hardcoded) + atoms cache
This commit is contained in:
parent
318b1afd1f
commit
783ac4b416
2 changed files with 89 additions and 15 deletions
72
lib/x11/stdatoms.js
Normal file
72
lib/x11/stdatoms.js
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
// pre-defined atoms. generated automatically with genstdatoms.js
|
||||
|
||||
module.exports = {
|
||||
PRIMARY: 1,
|
||||
SECONDARY: 2,
|
||||
ARC: 3,
|
||||
ATOM: 4,
|
||||
BITMAP: 5,
|
||||
CARDINAL: 6,
|
||||
COLORMAP: 7,
|
||||
CURSOR: 8,
|
||||
CUT_BUFFER0: 9,
|
||||
CUT_BUFFER1: 10,
|
||||
CUT_BUFFER2: 11,
|
||||
CUT_BUFFER3: 12,
|
||||
CUT_BUFFER4: 13,
|
||||
CUT_BUFFER5: 14,
|
||||
CUT_BUFFER6: 15,
|
||||
CUT_BUFFER7: 16,
|
||||
DRAWABLE: 17,
|
||||
FONT: 18,
|
||||
INTEGER: 19,
|
||||
PIXMAP: 20,
|
||||
POINT: 21,
|
||||
RECTANGLE: 22,
|
||||
RESOURCE_MANAGER: 23,
|
||||
RGB_COLOR_MAP: 24,
|
||||
RGB_BEST_MAP: 25,
|
||||
RGB_BLUE_MAP: 26,
|
||||
RGB_DEFAULT_MAP: 27,
|
||||
RGB_GRAY_MAP: 28,
|
||||
RGB_GREEN_MAP: 29,
|
||||
RGB_RED_MAP: 30,
|
||||
STRING: 31,
|
||||
VISUALID: 32,
|
||||
WINDOW: 33,
|
||||
WM_COMMAND: 34,
|
||||
WM_HINTS: 35,
|
||||
WM_CLIENT_MACHINE: 36,
|
||||
WM_ICON_NAME: 37,
|
||||
WM_ICON_SIZE: 38,
|
||||
WM_NAME: 39,
|
||||
WM_NORMAL_HINTS: 40,
|
||||
WM_SIZE_HINTS: 41,
|
||||
WM_ZOOM_HINTS: 42,
|
||||
MIN_SPACE: 43,
|
||||
NORM_SPACE: 44,
|
||||
MAX_SPACE: 45,
|
||||
END_SPACE: 46,
|
||||
SUPERSCRIPT_X: 47,
|
||||
SUPERSCRIPT_Y: 48,
|
||||
SUBSCRIPT_X: 49,
|
||||
SUBSCRIPT_Y: 50,
|
||||
UNDERLINE_POSITION: 51,
|
||||
UNDERLINE_THICKNESS: 52,
|
||||
STRIKEOUT_ASCENT: 53,
|
||||
STRIKEOUT_DESCENT: 54,
|
||||
ITALIC_ANGLE: 55,
|
||||
X_HEIGHT: 56,
|
||||
QUAD_WIDTH: 57,
|
||||
WEIGHT: 58,
|
||||
POINT_SIZE: 59,
|
||||
RESOLUTION: 60,
|
||||
COPYRIGHT: 61,
|
||||
NOTICE: 62,
|
||||
FONT_NAME: 63,
|
||||
FAMILY_NAME: 64,
|
||||
FULL_NAME: 65,
|
||||
CAP_HEIGHT: 66,
|
||||
WM_CLASS: 67,
|
||||
WM_TRANSIENT_FOR: 68
|
||||
}
|
||||
|
|
@ -15,6 +15,7 @@ require('./unpackbuffer').addUnpack(Buffer);
|
|||
|
||||
var xerrors = require('./xerrors');
|
||||
var coreRequests = require('./corereqs');
|
||||
var stdatoms = require('./corereqs');
|
||||
|
||||
function XClient(stream)
|
||||
{
|
||||
|
|
@ -50,30 +51,31 @@ function XClient(stream)
|
|||
this.seq_num = 0; // incremented in each request. (even if we don't expect reply)
|
||||
|
||||
// in/out packets indexed by sequence ID
|
||||
this.requests = {};
|
||||
//this.requests = {};
|
||||
this.replies = {};
|
||||
this.events = {};
|
||||
|
||||
//this.events = {};
|
||||
this.atoms = stdatoms;
|
||||
this.event_consumers = {}; // maps window id to eventemitter TODO: bad name
|
||||
this.importRequestsFromTemplates(this, coreRequests);
|
||||
this.startHandshake();
|
||||
|
||||
// TODO: bad name
|
||||
this.event_consumers = {}; // maps window id to eventemitter
|
||||
|
||||
// TODO: this is potentially async and probably has to be synchronised with 'connect' event
|
||||
/*
|
||||
// import available extentions
|
||||
// TODO: lazy import on first call?
|
||||
/*
|
||||
this.ext = {};
|
||||
this.ListExtensions( function(err, extentionsList ) {
|
||||
for (ext in extentionsList) {
|
||||
var extRequests = require('./ext/' + extentionsList[ext]);
|
||||
// TODO: need to call QueryExtention to get [major opcode, first event, first error]
|
||||
importRequestsFromTemplates(this, extRequests);
|
||||
try {
|
||||
X.QueryExtension(ext, function(e) {
|
||||
var extRequests = require('./ext/' + extentionsList[ext]);
|
||||
importRequestsFromTemplates(this, extRequests);
|
||||
});
|
||||
} catch (e) {
|
||||
// do not import if module not defined
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
*/
|
||||
// init comon extentions
|
||||
|
||||
this.startHandshake();
|
||||
}
|
||||
util.inherits(XClient, EventEmitter);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue